Removing files not present on branch REL7_1_STABLE:
authorbranch-fixup <branch-fixup>
Sun, 6 May 2001 17:21:11 +0000 (17:21 +0000)
committerbranch-fixup <branch-fixup>
Sun, 6 May 2001 17:21:11 +0000 (17:21 +0000)
ChangeLogs/ChangeLog-7.1-7.1.1
src/backend/parser/gram.c
src/interfaces/ecpg/preproc/pgc.c
src/interfaces/ecpg/preproc/preproc.c
src/interfaces/ecpg/preproc/y.tab.h

ChangeLogs/ChangeLog-7.1-7.1.1 [deleted file]
src/backend/parser/gram.c [deleted file]
src/interfaces/ecpg/preproc/pgc.c [deleted file]
src/interfaces/ecpg/preproc/preproc.c [deleted file]
src/interfaces/ecpg/preproc/y.tab.h [deleted file]

diff --git a/ChangeLogs/ChangeLog-7.1-7.1.1 b/ChangeLogs/ChangeLog-7.1-7.1.1
deleted file mode 100644 (file)
index 9ebd902..0000000
+++ /dev/null
@@ -1,609 +0,0 @@
-2001-05-04 22:57  momjian
-
-       * HISTORY, register.txt, doc/src/sgml/release.sgml: UPdate for
-       release tomorrow.
-
-2001-05-04 19:11  tgl
-
-       * doc/src/sgml/runtime.sgml: COMMIT_DELAY and COMMIT_SIBLINGS were
-       missing from the list of WAL configuration parameters in chapter 3.
-
-2001-05-04 18:01  tgl
-
-       * src/backend/parser/Makefile: Makefile should have automatic
-       dependency for parser.o too, if it's going to have any at all.
-
-2001-05-04 14:39  tgl
-
-       * src/backend/access/transam/xact.c: Seems like we should not hold
-       off cancel/die interrupts while we are running deferred triggers. 
-       They are really part of the regular transaction, and they could
-       take awhile.
-
-2001-05-03 22:54  momjian
-
-       * doc/src/sgml/runtime.sgml: Add missing tag.
-
-2001-05-03 18:53  tgl
-
-       * src/: backend/utils/adt/datetime.c,
-       backend/utils/adt/formatting.c, backend/utils/adt/timestamp.c,
-       include/utils/datetime.h: Consolidate several near-identical uses
-       of mktime() into a single routine DetermineLocalTimeZone().  In
-       that routine, be more wary of broken mktime() implementations than
-       the original code was: don't allow mktime to change the already-set
-       y/m/d/h/m/s information, and don't use tm_gmtoff if mktime failed. 
-       Possibly this will resolve some of the complaints we've been
-       hearing from users of Middle Eastern timezones on RedHat.
-
-2001-05-03 17:38  momjian
-
-       * doc/src/sgml/charset.sgml,
-       src/backend/utils/mb/Unicode/KOI8_to_utf8.map,
-       src/backend/utils/mb/Unicode/utf8_to_KOI8.map,
-       src/include/mb/pg_wchar.h, src/interfaces/odbc/multibyte.h: BTW it
-       does not add encodign it just patches existing one (KOI8) to
-       support two - KOI8-R and KOI8-U (latter is superset of the former
-       if not to take to the account pseudographics)
-       
-       Andy Rysin
-
-2001-05-03 17:16  tgl
-
-       * src/backend/rewrite/rewriteDefine.c: Permission checking wasn't
-       quite right for insert/update/delete rules, either :-(.
-
-2001-05-03 16:39  momjian
-
-       * HISTORY, doc/src/sgml/release.sgml: pg_dump can dump 7.0
-       databases.
-
-2001-05-03 15:20  momjian
-
-       * src/test/locale/test-ctype.c: apply a little patch:
-       
-       Oleg Bartunov
-
-2001-05-03 15:00  tgl
-
-       * src/: backend/access/nbtree/nbtcompare.c,
-       backend/utils/adt/date.c, backend/utils/adt/float.c,
-       backend/utils/adt/nabstime.c, backend/utils/adt/numeric.c,
-       backend/utils/adt/timestamp.c, backend/utils/adt/varbit.c,
-       backend/utils/adt/varchar.c, backend/utils/adt/varlena.c,
-       include/utils/nabstime.h,
-       test/regress/expected/abstime-solaris-1947.out,
-       test/regress/expected/abstime.out,
-       test/regress/expected/timestamp.out: Ensure that btree sort
-       ordering functions and boolean comparison operators give consistent
-       results for all datatypes.  Types float4, float8, and numeric were
-       broken for NaN values; abstime, timestamp, and interval were broken
-       for INVALID values; timetz was just plain broken (some possible
-       pairs of values were neither < nor = nor >).  Also clean up text,
-       bpchar, varchar, and bit/varbit to eliminate duplicate code and
-       thereby reduce the probability of similar inconsistencies arising
-       in the future.
-
-2001-05-03 13:50  tgl
-
-       * doc/src/sgml/ref/create_table.sgml: Describe handling of
-       multiply-inherited fields correctly.
-
-2001-05-03 13:47  tgl
-
-       * src/backend/rewrite/rewriteHandler.c: Permissions were not
-       checked correctly when one view invokes another.  Per bug report
-       from Lieven Van Acker, 5/2/01.
-
-2001-05-03 13:28  momjian
-
-       * doc/src/sgml/runtime.sgml: Update shared memory docs.
-
-2001-05-03 13:20  momjian
-
-       * src/tools/RELEASE_CHANGES: Improve list.
-
-2001-05-03 13:17  momjian
-
-       * HISTORY, doc/src/sgml/release.sgml: Final stamp for 7.1.1.  All
-       done.
-
-2001-05-03 12:47  momjian
-
-       * src/: include/config.h.win32, interfaces/libpq/libpq.rc,
-       tools/RELEASE_CHANGES: Updates for 7.1.1.  Not done yet.
-
-2001-05-03 12:43  momjian
-
-       * configure: autoconf
-
-2001-05-03 12:26  momjian
-
-       * HISTORY, README, configure.in, register.txt, doc/bug.template,
-       doc/src/sgml/release.sgml: Some updates for 7.1.1.
-
-2001-05-03 12:18  tgl
-
-       * src/include/catalog/pg_type.h: Correct pg_description entry for
-       type macaddr.
-
-2001-05-03 12:07  tgl
-
-       * src/: interfaces/ecpg/include/sqlca.h,
-       interfaces/ecpg/test/Makefile, makefiles/Makefile.win: Fixes to
-       make ecpg work on Cygwin, from Jason Tishler
-       <Jason.Tishler@dothill.com>.
-
-2001-05-03 08:32  darcy
-
-       * contrib/chkpass/: Makefile, README.chkpass, chkpass.c,
-       chkpass.sql: Initial checkin of a contributed type that handles
-       passwords efficiently.
-
-2001-05-02 16:35  momjian
-
-       * doc/src/sgml/ref/drop_aggregate.sgml: In the outputs section the
-       NOTICE reads: aggregate 'agg' for 'type' does not exist.
-       
-       Mismatch with synopsis, agg must be name here.
-       
-       Frank Wegmann
-
-2001-05-02 13:04  momjian
-
-       * doc/src/sgml/runtime.sgml: Added mention of SHMALL and removed
-       BSD/OS-specific table.
-
-2001-05-02 10:46  momjian
-
-       * doc/src/sgml/ref/createuser.sgml: description of the command line
-       option echo should read:
-       
-       Echo the queries that createuser generates and sends to the
-       backend.                        ^^^^^^^^^^
-       
-       Frank Wegmann
-
-2001-05-02 10:23  tgl
-
-       * src/interfaces/odbc/win32.mak: Previous commit mistakenly
-       converted all newlines to DOS style (CR/LF).  Convert back to Unix
-       style --- it seems some versions of nmake insist on this.
-
-2001-05-02 07:21  darcy
-
-       * src/interfaces/python/README: Add note explaining why inserts
-       take longer as tables grow.  Also suggest the way to handle this.
-
-2001-05-02 07:17  darcy
-
-       * src/interfaces/python/pgmodule.c: Change "|zzlzzzz" argument
-       specification to "|zzizzzz" so that the code works properly on 64
-       bit systems.
-       
-       Change submitted by Marc Poinot (Marc.Poinot@onera.fr)
-
-2001-05-01 06:50  petere
-
-       * doc/src/sgml/version.sgml: Bump version to 7.1.1.  Now run over
-       to hub to rebuild documentation before release...
-
-2001-05-01 06:48  petere
-
-       * doc/src/sgml/: libpq++.sgml, libpq.sgml: More markup fixes
-
-2001-04-30 23:00  tgl
-
-       * doc/src/sgml/runtime.sgml: Fix slightly confused description of
-       debug options.
-
-2001-04-30 22:33  tgl
-
-       * src/interfaces/ecpg/preproc/preproc.y: Synced gram.y and
-       preproc.y.
-
-2001-04-30 21:36  thomas
-
-       * src/backend/parser/gram.y: Allow a string argument to the
-       EXTRACT() function.   This is an extension to the SQL9x standard,
-       but is consistant with usage   of the underlying date_part()
-       function used to implement it.   Example: EXTRACT('YEAR',...)  No
-       impact on regression tests.
-
-2001-04-30 20:47  inoue
-
-       * src/interfaces/odbc/: parse.c, psqlodbc.h, psqlodbc.rc,
-       qresult.c: 1) fix bugs reported by Andrea Aime.  2) fix a bug
-       reported by Jan Wieck.  psqlodbc is 7.01.0005 now.
-
-2001-04-30 19:55  tgl
-
-       * doc/FAQ_HPUX: Update FAQ_HPUX now that we have reports of
-       out-of-the-box build on HPUX 11.
-
-2001-04-30 18:22  tgl
-
-       * doc/src/sgml/pltcl.sgml: Document pltcl's return_null command.
-
-2001-04-30 18:21  tgl
-
-       * doc/src/sgml/: libpq++.sgml, libpq.sgml: Repair freshly-broken
-       markup.
-
-2001-04-30 16:05  tgl
-
-       * src/pl/plpgsql/src/pl_exec.c: exec_move_row() should be more
-       forgiving of tuples with a different number of columns than it was
-       expecting, for reasons that are now documented in the code...
-
-2001-04-30 15:24  tgl
-
-       * src/backend/optimizer/plan/planner.c: Suppress pull-up of
-       subqueries that are in the nullable side of an outer join.  This is
-       needed to avoid improper evaluation of expressions that should be
-       nulled out, as in Victor Wagner's bug report of 4/27/01.  Pretty
-       ugly solution, but no time to do anything better for 7.1.1.
-
-2001-04-30 13:38  momjian
-
-       * doc/src/sgml/: libpq++.sgml, libpq.sgml: Break up PQexec() result
-       functions into subsections to be clearer.  Both libpq and libpq++
-       reorganized.
-
-2001-04-30 00:26  momjian
-
-       * doc/src/sgml/: libpgtcl.sgml, libpq++.sgml: Add mention of
-       libpgtcl's options to manual, libpq++ markup fixes.
-
-2001-04-29 03:27  ishii
-
-       * src/backend/utils/mb/: conv.c, Unicode/ALT_to_utf8.map,
-       Unicode/KOI8_to_utf8.map, Unicode/Makefile,
-       Unicode/UCS_to_cyrillic.pl, Unicode/WIN_to_utf8.map,
-       Unicode/utf8_to_ALT.map, Unicode/utf8_to_KOI8.map,
-       Unicode/utf8_to_WIN.map: Add missing Unicode support for Cyrillic
-       encodings.  Patches contributed by Victor Wagner.
-
-2001-04-28 09:59  momjian
-
-       * doc/src/sgml/ref/: create_function.sgml, drop_function.sgml: In
-       create_function there is a remark concerning SQL/PSM not being
-       ratified as yet. This is certainly no longer true, it wasn't even
-       true in Q2/1998 when I did a little research for Date's book. 
-       SQL/PSM had been published on 1996-12-15 as ISO/IEC 9075:4. So you
-       might want to update that section.
-       
-       Frank Wegmann
-
-2001-04-26 21:31  momjian
-
-       * doc/src/sgml/ref/pg_ctl-ref.sgml: A small patch for a small
-       option (for rel. 7.1).
-       
-       Jimmy Olgeni
-
-2001-04-26 20:55  momjian
-
-       * doc/: FAQ, src/FAQ/FAQ.html: Update FAQ.
-
-2001-04-26 20:21  momjian
-
-       * doc/: FAQ, src/FAQ/FAQ.html, FAQ, src/FAQ/FAQ.html: Update FAQ.
-
-2001-04-26 17:52  tgl
-
-       * src/backend/utils/adt/nabstime.c: Remove bogus Assert from
-       AbsoluteTimeIsBefore().  (If you don't think it's bogus, try
-       building a btree index on the regress tests' abstime_tbl.)
-
-2001-04-25 18:04  tgl
-
-       * src/backend/optimizer/path/costsize.c: Tweak nestloop costing to
-       weight restart cost of inner path more heavily.  Without this, it
-       was making some pretty silly decisions about whether an expensive
-       sub-SELECT should be the inner or outer side of a join...
-
-2001-04-25 03:03  pjw
-
-       * src/bin/pg_dump/: pg_backup.h, pg_backup_archiver.c,
-       pg_backup_archiver.h, pg_backup_custom.c, pg_backup_db.c,
-       pg_backup_tar.c, pg_dump.c, pg_dump.h: - Fixed CONSTRAINT TRIGGER
-       dump to record tgconstrelid properly - pgsql v7.0 compatbility
-
-2001-04-24 16:05  petere
-
-       * doc/FAQ_MSWIN: typological errors
-
-2001-04-23 20:08  tgl
-
-       * src/include/nodes/nodes.h: Undo pgindent brain damage, so that
-       node type numbers can once again be counted off by lines ...
-
-2001-04-23 19:36  tgl
-
-       * src/bin/pg_dump/pg_dump.c: Behave sanely when database name is
-       omitted from command line.
-
-2001-04-23 16:27  petere
-
-       * src/backend/Makefile: Send 'cd' output to /dev/null.
-
-2001-04-23 11:14  tgl
-
-       * configure, configure.in: Defend against ancient versions of zlib
-       by checking that zlib.h defines z_streamp.
-
-2001-04-23 00:32  tgl
-
-       * src/backend/parser/parse_oper.c: compatible_oper needs to do
-       ReleaseSysCache in one path to avoid complaints about 'Cache
-       reference leak'.  Per report from Don Baccus.
-
-2001-04-22 21:41  inoue
-
-       * src/interfaces/odbc/: columninfo.c, connection.c, convert.c,
-       execute.c, qresult.c: 1) Decrease the size of needlessly large
-       buffers. For example, it    resolved the stack over flow errors
-       reported by Johann Zuschlag.  2) Support {oj syntax for 71.
-       servers.
-
-2001-04-22 21:00  inoue
-
-       * src/interfaces/odbc/: bind.c, convert.c, execute.c, pgtypes.c,
-       pgtypes.h, statement.c, statement.h: A patch to fix the following
-       bugs.  1) [ODBC] Psqlodbc and Centura: here it is a patch        
-       posted by Matteo Cavalleli 2) [ODBC] pgsqODBC binding parameters II
-               posted by Ludek Finstrle 3) Invalid Page Fault in
-       PSQLODBC.DLL         personal mail from Johann Zuschlag
-       
-          Hiroki Kataoka   kataoka@interwiz.koganei.tokyo.jp
-
-2001-04-22 17:34  tgl
-
-       * src/bin/pg_dump/pg_dump.c: Don't bomb out on indexes on system
-       attributes other than 'oid'.  (Not sure such an index is actually
-       useful, but just because it's useless doesn't mean pg_dump should
-       coredump.)
-
-2001-04-21 14:29  tgl
-
-       * src/backend/: main/main.c, utils/init/findbe.c,
-       utils/init/postinit.c: Remove useless setuid() call, instead add a
-       check that real and effective userids are the same.  Per today's
-       pghackers discussion.
-
-2001-04-21 07:23  petere
-
-       * src/bin/pg_ctl/pg_ctl.sh: Make sure that the postmaster options
-       (from postmaster.opts[.default] or -o option) are properly
-       dequoted.  Also, always pass an explicit -D option to postmaster,
-       don't rely on it being set in postmaster.opts.
-
-2001-04-20 11:52  thomas
-
-       * doc/src/sgml/: Makefile, biblio.sgml, catalogs.sgml,
-       charset.sgml, docguide.sgml, func.sgml, geqo.sgml, libpgeasy.sgml,
-       mvcc.sgml, user-manag.sgml: Final markup for 7.1 hardcopy release.
-       Mostly typo and table-fitting  adjustments. Note that many tables
-       are being abused with *really* long  description columns. Should
-       probably shrink those columns to be more  concise, and move some of
-       the info to follow-on reference notes.
-
-2001-04-20 11:50  thomas
-
-       * doc/src/sgml/fixrtf: Add option --refentry to change \keepn (keep
-       with next paragraph) to  \keep (keep current paragraph together).
-       This fixes most troubles with  reference pages marked up with
-       <refentry> tags.  Use on reference.rtf, generated by "make
-       reference.rtf".
-
-2001-04-19 16:27  petere
-
-       * configure, configure.in: Remove libsfio check.
-
-2001-04-19 15:17  petere
-
-       * contrib/start-scripts/: freebsd, linux: Pass -D option to pg_ctl
-       because export PGDATA won't be preserved across 'su -l'.
-       
-       Reported by <VASQUEZ_JASON@LILLY.COM>.
-
-2001-04-19 15:09  petere
-
-       * src/backend/postmaster/postmaster.c: Add extern int optreset
-       declaration, per bug report from <info@decc.nl>.
-
-2001-04-19 15:01  petere
-
-       * src/backend/utils/adt/varchar.c: Fix "off by VARHDRSZ" bug in
-       (Cyrillic) recode support.
-
-2001-04-19 00:29  tgl
-
-       * src/backend/executor/execQual.c: Kluge solution for Alex
-       Pilosov's report of problems with whole-tuple function arguments in
-       join queries: copy the tuples into TransactionCommandContext so
-       they don't get recycled too soon.  This is horrid, but not any
-       worse than 7.0 or before, which also leaked such tuples until end
-       of query.  A proper fix will require allowing tuple datums to be
-       physically stored inside larger tuple datums, which opens up a
-       bunch of issues that can't realistically be solved for 7.1.1.
-
-2001-04-18 22:34  ishii
-
-       * src/backend/utils/mb/wchar.c: Add a crash gurard to
-       pg_encoding_mblen in case of an invalid encoding given.
-
-2001-04-18 18:25  tgl
-
-       * src/backend/parser/parse_func.c: Further tweaking of error
-       messages for cases involving attributes & functions of join or
-       subselect aliases.  It'd be awfully nice if this code knew for sure
-       whether it was dealing with 'x.f' or 'f(x)' syntax; maybe we can
-       fix that in a future cycle.
-
-2001-04-18 16:53  petere
-
-       * src/bin/psql/command.c: Repair misbehavior of \! with immediately
-       following argument that contains spaces (e.g., '\!ls -l').  Also
-       correct a comment.
-
-2001-04-18 16:42  tgl
-
-       * src/: backend/optimizer/plan/planner.c,
-       backend/optimizer/util/var.c, backend/rewrite/rewriteManip.c,
-       include/optimizer/var.h, pl/plpgsql/src/gram.y,
-       pl/plpgsql/src/pl_comp.c, pl/plpgsql/src/scan.l: Make the world
-       safe for passing whole rows of views to functions.  This already
-       worked fine for whole rows of tables, but not so well for views...
-
-2001-04-18 13:04  tgl
-
-       * src/backend/: parser/parse_relation.c, utils/adt/ruleutils.c:
-       Make rule lister do the right thing with Vars representing whole
-       tuples.
-
-2001-04-17 03:30  inoue
-
-       * src/interfaces/odbc/readme.txt: The renewal of README thanks to
-       Dave Page.
-
-2001-04-16 20:32  tgl
-
-       * src/backend/rewrite/rewriteHandler.c: Add some defenses to guard
-       against case where a rule refers to a table or view that's been
-       dropped and then recreated with the same name (but, perhaps,
-       different columns).  Eventually we'd like to support this but for
-       now all we can do is fail cleanly, rather than possibly coredumping
-       if we proceed using the obsolete rule.
-
-2001-04-16 15:44  tgl
-
-       * src/backend/optimizer/plan/initsplan.c: Avoid reversing
-       user-given order of WHERE clauses while attaching clauses to
-       specific base or join RelOptInfo nodes during planning.  This
-       preserves the more-intuitive behavior of 7.0.* --- if you write an
-       expensive clause (such as a sub-select) last, it should get
-       evaluated last.  Someday we ought to try to have some intelligence
-       about the order of evaluation of WHERE clauses, but for now we
-       should not override what the user wrote.
-
-2001-04-16 02:10  ishii
-
-       * src/backend/utils/mb/Unicode/: UCS_to_BIG5.pl, UCS_to_EUC_CN.pl,
-       UCS_to_EUC_JP.pl, UCS_to_EUC_KR.pl, UCS_to_EUC_TW.pl,
-       UCS_to_SJIS.pl, big5_to_utf8.map, euc_cn_to_utf8.map,
-       euc_jp_to_utf8.map, euc_kr_to_utf8.map, euc_tw_to_utf8.map,
-       sjis_to_utf8.map, utf8_to_big5.map, utf8_to_euc_cn.map,
-       utf8_to_euc_jp.map, utf8_to_euc_kr.map, utf8_to_euc_tw.map,
-       utf8_to_sjis.map: Correction for mathematical properties in Unicode
-       converison maps.  Patches contributed by Eiji Tokuya
-       (e-tokuya@sankyo-unyu.co.jp)
-
-2001-04-16 00:20  momjian
-
-       * doc/: FAQ_japanese, src/FAQ/FAQ_japanese.html: Update Japanese
-       FAQ's.
-
-2001-04-15 22:42  tgl
-
-       * src/backend/utils/: init/miscinit.c, mb/common.c, mb/mbutils.c:
-       getdatabaseencoding() and PG_encoding_to_char() were being sloppy
-       about converting char* strings to type 'name'.  Imagine my surprise
-       when 7.1 release coredumped upon start when compiled
-       --enable-multibyte ...
-
-2001-04-15 21:46  tgl
-
-       * src/backend/libpq/pqformat.c: Remove error report from
-       pq_endmessage when pq_putmessage fails.  The only possible failure
-       is in pq_flush, which will log a (better!) report anyway --- so
-       pq_endmessage is just cluttering the log with a redundant entry. 
-       This matters when a client crashes partway through a large query,
-       since we will emit many broken-pipe reports before finishing the
-       query and exiting.
-
-2001-04-14 23:25  tgl
-
-       * src/Makefile.shlib: Add LDFLAGS_SL to AIX shlib building command,
-       per report from Rocco Altier <roccoa@routescape.com>.
-
-2001-04-14 23:14  tgl
-
-       * src/backend/utils/adt/ruleutils.c: Constant expressions that
-       appear in ORDER BY, GROUP BY, DISTINCT ON lists should be
-       reverse-compiled into targetlist index numbers, because that's the
-       only interpretation the parser allows for a constant in these
-       clauses.  (Ergo, the only way they could have gotten into the list
-       in the first place is to have come from the targetlist; so this
-       should always work.)  Per problem report from Peter E.
-
-2001-04-14 20:48  tgl
-
-       * src/backend/optimizer/path/joinpath.c: Prevent generation of
-       invalid plans for RIGHT or FULL joins with multiple join clauses. 
-       The mergejoin executor wants all the join clauses to appear as
-       merge quals, not as extra joinquals, for these kinds of joins.  But
-       the planner would consider plans in which partially-sorted input
-       paths were used, leading to only some of the join clauses becoming
-       merge quals.  This is fine for inner/left joins, not fine for
-       right/full joins.
-
-2001-04-14 20:43  petere
-
-       * src/bin/psql/common.c: If the password prompt goes to stderr,
-       then the trailing newline should also go there.
-
-2001-04-14 18:55  petere
-
-       * configure, configure.in, src/bin/psql/tab-complete.c,
-       src/include/config.h.in: Work with Readline 4.2.
-
-2001-04-14 15:11  momjian
-
-       * src/backend/tcop/postgres.c: Add debug_query_string global
-       variable for pgmonitor and debugging use.
-
-2001-04-14 09:11  pjw
-
-       * src/bin/pg_dump/: pg_backup_archiver.c, pg_backup_archiver.h,
-       pg_backup_tar.c, pg_dump.c, pg_dump.h: - Get view OID based on rule
-       OID not base table OID - Fix crash due to null string pointer in
-       some tar files with some libs
-
-2001-04-13 22:10  tgl
-
-       * src/backend/utils/adt/numeric.c: Another try at making numeric
-       MODULO operator produce the right answer.  Although it was now
-       using the right equation, it was making bogus choices of the
-       precision to compute intermediate results to.  I'm not sure this is
-       really right even yet, but it's better than before ...
-
-2001-04-13 19:32  tgl
-
-       * src/include/storage/s_lock.h: Suppress compiler warnings in Vax
-       and NS32K assembly code: 'register foo' is not a complete
-       declaration.
-
-2001-04-13 17:21  scrappy
-
-       * configure, configure.in, ChangeLogs/ChangeLog-7.1rc4-7.1: 
-       tag the source tree as REL7_1, renaming the old tag REL7_1_BETA
-       like it should have been done
-       
-       generate a new Changelog from rc4, which is nice and short ... one
-       python interface change
-       
-       tag configure as 7.1, for generating the packages ...
-       
-       This is it folks ... Release 7.1 is officially here ...
-
-2001-04-13 14:38  momjian
-
-       * HISTORY: Remove as-of from HISTORY file.
-
-2001-04-12 05:49  darcy
-
-       * src/interfaces/python/pgdb.py: I just noticed the beta comment. 
-       That's not actually true any more so I removed it.
-
diff --git a/src/backend/parser/gram.c b/src/backend/parser/gram.c
deleted file mode 100644 (file)
index 92f031c..0000000
+++ /dev/null
@@ -1,12088 +0,0 @@
-
-/*  A Bison parser, made from gram.y
- by  GNU Bison version 1.25
-  */
-
-#define YYBISON 1  /* Identify Bison output.  */
-
-#define        ABSOLUTE        258
-#define        ACTION  259
-#define        ADD     260
-#define        ALL     261
-#define        ALTER   262
-#define        AND     263
-#define        ANY     264
-#define        AS      265
-#define        ASC     266
-#define        BEGIN_TRANS     267
-#define        BETWEEN 268
-#define        BOTH    269
-#define        BY      270
-#define        CASCADE 271
-#define        CASE    272
-#define        CAST    273
-#define        CHAR    274
-#define        CHARACTER       275
-#define        CHECK   276
-#define        CLOSE   277
-#define        COALESCE        278
-#define        COLLATE 279
-#define        COLUMN  280
-#define        COMMIT  281
-#define        CONSTRAINT      282
-#define        CREATE  283
-#define        CROSS   284
-#define        CURRENT 285
-#define        CURRENT_DATE    286
-#define        CURRENT_TIME    287
-#define        CURRENT_TIMESTAMP       288
-#define        CURRENT_USER    289
-#define        CURSOR  290
-#define        DAY_P   291
-#define        DECIMAL 292
-#define        DECLARE 293
-#define        DEFAULT 294
-#define        DELETE  295
-#define        DESC    296
-#define        DISTINCT        297
-#define        DOUBLE  298
-#define        DROP    299
-#define        ELSE    300
-#define        END_TRANS       301
-#define        EXCEPT  302
-#define        EXECUTE 303
-#define        EXISTS  304
-#define        EXTRACT 305
-#define        FALSE_P 306
-#define        FETCH   307
-#define        FLOAT   308
-#define        FOR     309
-#define        FOREIGN 310
-#define        FROM    311
-#define        FULL    312
-#define        GRANT   313
-#define        GROUP   314
-#define        HAVING  315
-#define        HOUR_P  316
-#define        IN      317
-#define        INNER_P 318
-#define        INSENSITIVE     319
-#define        INSERT  320
-#define        INTERSECT       321
-#define        INTERVAL        322
-#define        INTO    323
-#define        IS      324
-#define        ISOLATION       325
-#define        JOIN    326
-#define        KEY     327
-#define        LANGUAGE        328
-#define        LEADING 329
-#define        LEFT    330
-#define        LEVEL   331
-#define        LIKE    332
-#define        LOCAL   333
-#define        MATCH   334
-#define        MINUTE_P        335
-#define        MONTH_P 336
-#define        NAMES   337
-#define        NATIONAL        338
-#define        NATURAL 339
-#define        NCHAR   340
-#define        NEXT    341
-#define        NO      342
-#define        NOT     343
-#define        NULLIF  344
-#define        NULL_P  345
-#define        NUMERIC 346
-#define        OF      347
-#define        ON      348
-#define        ONLY    349
-#define        OPTION  350
-#define        OR      351
-#define        ORDER   352
-#define        OUTER_P 353
-#define        PARTIAL 354
-#define        POSITION        355
-#define        PRECISION       356
-#define        PRIMARY 357
-#define        PRIOR   358
-#define        PRIVILEGES      359
-#define        PROCEDURE       360
-#define        PUBLIC  361
-#define        READ    362
-#define        REFERENCES      363
-#define        RELATIVE        364
-#define        REVOKE  365
-#define        RIGHT   366
-#define        ROLLBACK        367
-#define        SCROLL  368
-#define        SECOND_P        369
-#define        SELECT  370
-#define        SET     371
-#define        SUBSTRING       372
-#define        TABLE   373
-#define        TEMP    374
-#define        TEMPORARY       375
-#define        THEN    376
-#define        TIME    377
-#define        TIMESTAMP       378
-#define        TIMEZONE_HOUR   379
-#define        TIMEZONE_MINUTE 380
-#define        TO      381
-#define        TRAILING        382
-#define        TRANSACTION     383
-#define        TRIM    384
-#define        TRUE_P  385
-#define        UNION   386
-#define        UNIQUE  387
-#define        UPDATE  388
-#define        USER    389
-#define        USING   390
-#define        VALUES  391
-#define        VARCHAR 392
-#define        VARYING 393
-#define        VIEW    394
-#define        WHEN    395
-#define        WHERE   396
-#define        WITH    397
-#define        WORK    398
-#define        YEAR_P  399
-#define        ZONE    400
-#define        TRIGGER 401
-#define        TYPE_P  402
-#define        ABORT_TRANS     403
-#define        AFTER   404
-#define        AGGREGATE       405
-#define        ANALYZE 406
-#define        BACKWARD        407
-#define        BEFORE  408
-#define        BINARY  409
-#define        CACHE   410
-#define        CLUSTER 411
-#define        COPY    412
-#define        CREATEDB        413
-#define        CREATEUSER      414
-#define        CYCLE   415
-#define        DATABASE        416
-#define        DELIMITERS      417
-#define        DO      418
-#define        EACH    419
-#define        ENCODING        420
-#define        EXPLAIN 421
-#define        EXTEND  422
-#define        FORWARD 423
-#define        FUNCTION        424
-#define        HANDLER 425
-#define        INCREMENT       426
-#define        INDEX   427
-#define        INHERITS        428
-#define        INSTEAD 429
-#define        ISNULL  430
-#define        LANCOMPILER     431
-#define        LIMIT   432
-#define        LISTEN  433
-#define        LOAD    434
-#define        LOCATION        435
-#define        LOCK_P  436
-#define        MAXVALUE        437
-#define        MINVALUE        438
-#define        MOVE    439
-#define        NEW     440
-#define        NOCREATEDB      441
-#define        NOCREATEUSER    442
-#define        NONE    443
-#define        NOTHING 444
-#define        NOTIFY  445
-#define        NOTNULL 446
-#define        OFFSET  447
-#define        OIDS    448
-#define        OPERATOR        449
-#define        PASSWORD        450
-#define        PROCEDURAL      451
-#define        RENAME  452
-#define        RESET   453
-#define        RETURNS 454
-#define        ROW     455
-#define        RULE    456
-#define        SEQUENCE        457
-#define        SERIAL  458
-#define        SETOF   459
-#define        SHOW    460
-#define        START   461
-#define        STATEMENT       462
-#define        STDIN   463
-#define        STDOUT  464
-#define        TRUSTED 465
-#define        UNLISTEN        466
-#define        UNTIL   467
-#define        VACUUM  468
-#define        VALID   469
-#define        VERBOSE 470
-#define        VERSION 471
-#define        IDENT   472
-#define        SCONST  473
-#define        Op      474
-#define        ICONST  475
-#define        PARAM   476
-#define        FCONST  477
-#define        OP      478
-#define        UMINUS  479
-#define        TYPECAST        480
-
-#line 1 "gram.y"
- /* -*-text-*- */
-
-/*#define YYDEBUG 1*/
-/*-------------------------------------------------------------------------
- *
- * gram.y
- *       POSTGRES SQL YACC rules/actions
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *       $Header$
- *
- * HISTORY
- *       AUTHOR                        DATE                    MAJOR EVENT
- *       Andrew Yu                     Sept, 1994              POSTQUEL to SQL conversion
- *       Andrew Yu                     Oct, 1994               lispy code conversion
- *
- * NOTES
- *       CAPITALS are used to represent terminal symbols.
- *       non-capitals are used to represent non-terminals.
- *       SQL92-specific syntax is separated from plain SQL/Postgres syntax
- *       to help isolate the non-extensible portions of the parser.
- *
- *       if you use list, make sure the datum is a node so that the printing
- *       routines work
- *
- * WARNING
- *       sometimes we assign constants to makeStrings. Make sure we don't free
- *       those.
- *
- *-------------------------------------------------------------------------
- */
-#include <string.h>
-#include <ctype.h>
-
-#include "postgres.h"
-#include "nodes/parsenodes.h"
-#include "nodes/print.h"
-#include "parser/gramparse.h"
-#include "parser/parse_type.h"
-#include "utils/acl.h"
-#include "utils/palloc.h"
-#include "catalog/catname.h"
-#include "utils/elog.h"
-#include "access/xact.h"
-#include "storage/lmgr.h"
-#include "utils/numeric.h"
-#include "parser/analyze.h"
-#include "catalog/pg_type.h"
-
-#ifdef MULTIBYTE
-#include "mb/pg_wchar.h"
-#endif
-
-static char saved_relname[NAMEDATALEN];  /* need this for complex attributes */
-static bool QueryIsRule = FALSE;
-static List *saved_In_Expr = NIL;
-static Oid     *param_type_info;
-static int     pfunc_num_args;
-extern List *parsetree;
-
-
-/*
- * If you need access to certain yacc-generated variables and find that
- * they're static by default, uncomment the next line.  (this is not a
- * problem, yet.)
- */
-/*#define __YYSCLASS*/
-
-static char *xlateSqlFunc(char *);
-static char *xlateSqlType(char *);
-static Node *makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr);
-static Node *makeRowExpr(char *opr, List *largs, List *rargs);
-static void mapTargetColumns(List *source, List *target);
-static List *makeConstantList( A_Const *node);
-static char *FlattenStringList(List *list);
-static char *fmtId(char *rawid);
-static Node *makeIndexable(char *opname, Node *lexpr, Node *rexpr);
-static void param_type_init(Oid *typev, int nargs);
-static Node *doNegate(Node *n);
-
-Oid    param_type(int t); /* used in parse_expr.c */
-
-/* old versions of flex define this as a macro */
-#if defined(yywrap)
-#undef yywrap
-#endif /* yywrap */
-
-#line 93 "gram.y"
-typedef union
-{
-       double                          dval;
-       int                                     ival;
-       char                            chr;
-       char                            *str;
-       bool                            boolean;
-       bool*                           pboolean;       /* for pg_shadow privileges */
-       List                            *list;
-       Node                            *node;
-       Value                           *value;
-
-       Attr                            *attr;
-
-       TypeName                        *typnam;
-       DefElem                         *defelt;
-       ParamString                     *param;
-       SortGroupBy                     *sortgroupby;
-       JoinExpr                        *joinexpr;
-       IndexElem                       *ielem;
-       RangeVar                        *range;
-       RelExpr                         *relexp;
-       A_Indices                       *aind;
-       ResTarget                       *target;
-       ParamNo                         *paramno;
-
-       VersionStmt                     *vstmt;
-       DefineStmt                      *dstmt;
-       RuleStmt                        *rstmt;
-       InsertStmt                      *astmt;
-} YYSTYPE;
-#include <stdio.h>
-
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
-#endif
-
-
-
-#define        YYFINAL         1749
-#define        YYFLAG          -32768
-#define        YYNTBASE        243
-
-#define YYTRANSLATE(x) ((unsigned)(x) <= 480 ? yytranslate[x] : 517)
-
-static const short yytranslate[] = {     0,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,   231,     2,     2,   241,
-   242,   229,   227,   240,   228,   236,   230,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,   233,   234,   225,
-   224,   226,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-   237,     2,   238,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,   232,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
-     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-   106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-   116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-   126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-   146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-   186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-   206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-   216,   217,   218,   219,   220,   221,   222,   223,   235,   239
-};
-
-#if YYDEBUG != 0
-static const short yyprhs[] = {     0,
-     0,     2,     4,     8,    11,    13,    15,    17,    19,    21,
-    23,    25,    27,    29,    31,    33,    35,    37,    39,    41,
-    43,    45,    47,    49,    51,    53,    55,    57,    59,    61,
-    63,    65,    67,    69,    71,    73,    75,    77,    79,    81,
-    83,    85,    87,    89,    91,    93,    95,   104,   113,   117,
-   121,   122,   124,   126,   127,   129,   131,   132,   136,   138,
-   142,   143,   147,   148,   153,   158,   163,   170,   176,   180,
-   182,   184,   186,   188,   190,   193,   197,   202,   205,   209,
-   214,   220,   224,   229,   233,   240,   246,   249,   252,   260,
-   262,   264,   266,   268,   270,   272,   273,   276,   277,   281,
-   282,   291,   293,   295,   296,   300,   302,   303,   305,   307,
-   311,   315,   317,   318,   321,   323,   326,   327,   331,   333,
-   338,   341,   344,   347,   349,   352,   358,   362,   364,   366,
-   369,   373,   377,   381,   385,   389,   393,   397,   401,   404,
-   407,   410,   414,   421,   425,   429,   434,   438,   441,   444,
-   446,   448,   453,   455,   460,   462,   464,   468,   470,   475,
-   480,   486,   497,   501,   503,   505,   507,   509,   512,   516,
-   520,   524,   528,   532,   536,   540,   544,   547,   550,   553,
-   557,   564,   568,   572,   577,   581,   585,   590,   594,   598,
-   601,   604,   607,   610,   614,   617,   622,   626,   630,   635,
-   640,   646,   653,   659,   666,   670,   672,   674,   677,   680,
-   681,   684,   686,   687,   691,   695,   698,   700,   703,   706,
-   711,   712,   720,   724,   725,   729,   731,   733,   738,   741,
-   742,   745,   747,   750,   753,   756,   759,   761,   763,   765,
-   768,   770,   773,   783,   785,   786,   791,   806,   808,   810,
-   812,   816,   822,   824,   826,   828,   832,   834,   835,   837,
-   839,   841,   845,   846,   848,   850,   852,   854,   860,   864,
-   867,   869,   871,   873,   875,   877,   879,   881,   883,   887,
-   889,   893,   897,   899,   903,   905,   907,   909,   911,   914,
-   918,   922,   927,   932,   934,   936,   938,   940,   941,   943,
-   946,   948,   950,   952,   953,   956,   959,   960,   968,   971,
-   973,   975,   977,   981,   983,   985,   987,   989,   991,   993,
-   996,   998,  1002,  1003,  1010,  1022,  1024,  1025,  1028,  1029,
-  1031,  1033,  1037,  1039,  1046,  1050,  1053,  1056,  1057,  1059,
-  1062,  1063,  1068,  1080,  1083,  1084,  1088,  1091,  1093,  1097,
-  1100,  1102,  1103,  1107,  1109,  1111,  1113,  1115,  1120,  1122,
-  1124,  1129,  1136,  1138,  1140,  1142,  1144,  1146,  1148,  1150,
-  1152,  1154,  1156,  1158,  1162,  1166,  1170,  1180,  1182,  1183,
-  1185,  1186,  1187,  1201,  1203,  1205,  1207,  1211,  1215,  1217,
-  1219,  1222,  1226,  1229,  1231,  1233,  1235,  1237,  1241,  1243,
-  1245,  1247,  1249,  1251,  1253,  1254,  1257,  1260,  1263,  1266,
-  1269,  1272,  1275,  1278,  1281,  1283,  1285,  1286,  1292,  1295,
-  1302,  1306,  1310,  1311,  1315,  1316,  1318,  1320,  1321,  1323,
-  1325,  1326,  1330,  1335,  1339,  1345,  1347,  1348,  1350,  1351,
-  1355,  1356,  1358,  1362,  1366,  1368,  1370,  1372,  1374,  1376,
-  1378,  1383,  1388,  1391,  1393,  1401,  1406,  1410,  1411,  1415,
-  1417,  1420,  1425,  1429,  1438,  1446,  1453,  1455,  1456,  1463,
-  1471,  1473,  1475,  1477,  1480,  1481,  1484,  1485,  1488,  1491,
-  1494,  1499,  1503,  1505,  1509,  1514,  1518,  1527,  1532,  1533,
-  1535,  1536,  1538,  1539,  1541,  1545,  1547,  1548,  1552,  1553,
-  1555,  1559,  1562,  1565,  1568,  1571,  1573,  1575,  1576,  1581,
-  1586,  1589,  1594,  1597,  1598,  1600,  1602,  1604,  1606,  1608,
-  1610,  1611,  1613,  1615,  1619,  1623,  1624,  1627,  1628,  1632,
-  1633,  1636,  1637,  1640,  1641,  1645,  1647,  1649,  1653,  1655,
-  1659,  1662,  1664,  1666,  1671,  1674,  1677,  1679,  1684,  1689,
-  1693,  1696,  1699,  1702,  1704,  1706,  1707,  1709,  1710,  1715,
-  1718,  1722,  1724,  1726,  1729,  1730,  1732,  1735,  1739,  1744,
-  1745,  1749,  1754,  1755,  1758,  1761,  1763,  1765,  1767,  1769,
-  1771,  1773,  1775,  1778,  1781,  1784,  1787,  1789,  1792,  1794,
-  1796,  1800,  1801,  1807,  1811,  1812,  1818,  1822,  1823,  1828,
-  1830,  1835,  1838,  1840,  1844,  1847,  1849,  1850,  1854,  1855,
-  1858,  1859,  1861,  1864,  1866,  1869,  1871,  1873,  1875,  1877,
-  1879,  1881,  1885,  1886,  1888,  1892,  1896,  1900,  1904,  1908,
-  1912,  1916,  1917,  1919,  1921,  1929,  1938,  1947,  1955,  1963,
-  1967,  1971,  1973,  1975,  1977,  1979,  1981,  1983,  1985,  1987,
-  1989,  1991,  1993,  1995,  1998,  2000,  2002,  2004,  2007,  2010,
-  2013,  2017,  2021,  2025,  2029,  2033,  2037,  2041,  2045,  2049,
-  2053,  2056,  2059,  2062,  2066,  2073,  2077,  2081,  2085,  2090,
-  2093,  2096,  2101,  2105,  2110,  2112,  2114,  2119,  2121,  2126,
-  2128,  2130,  2135,  2140,  2145,  2150,  2156,  2162,  2168,  2173,
-  2176,  2180,  2183,  2188,  2192,  2197,  2201,  2206,  2212,  2219,
-  2220,  2227,  2228,  2236,  2242,  2248,  2254,  2260,  2266,  2272,
-  2278,  2284,  2290,  2297,  2304,  2311,  2318,  2325,  2332,  2339,
-  2346,  2353,  2360,  2367,  2374,  2381,  2388,  2395,  2402,  2409,
-  2416,  2420,  2424,  2427,  2429,  2432,  2434,  2436,  2439,  2442,
-  2445,  2449,  2453,  2457,  2461,  2465,  2468,  2471,  2474,  2478,
-  2485,  2489,  2493,  2496,  2499,  2503,  2508,  2510,  2512,  2517,
-  2519,  2524,  2526,  2528,  2533,  2538,  2544,  2550,  2556,  2561,
-  2566,  2573,  2574,  2576,  2580,  2584,  2588,  2589,  2591,  2593,
-  2595,  2599,  2600,  2603,  2605,  2608,  2612,  2616,  2620,  2624,
-  2628,  2631,  2635,  2642,  2646,  2650,  2653,  2656,  2658,  2662,
-  2667,  2672,  2677,  2683,  2689,  2695,  2700,  2704,  2705,  2708,
-  2709,  2712,  2713,  2717,  2720,  2722,  2724,  2726,  2728,  2732,
-  2734,  2736,  2738,  2742,  2748,  2755,  2760,  2763,  2765,  2770,
-  2773,  2774,  2777,  2779,  2780,  2784,  2788,  2790,  2794,  2798,
-  2802,  2804,  2806,  2811,  2814,  2818,  2822,  2824,  2828,  2830,
-  2834,  2836,  2838,  2839,  2841,  2843,  2845,  2847,  2849,  2851,
-  2853,  2855,  2857,  2859,  2861,  2863,  2865,  2868,  2870,  2872,
-  2874,  2877,  2879,  2881,  2883,  2885,  2887,  2889,  2891,  2893,
-  2895,  2897,  2899,  2901,  2903,  2905,  2907,  2909,  2911,  2913,
-  2915,  2917,  2919,  2921,  2923,  2925,  2927,  2929,  2931,  2933,
-  2935,  2937,  2939,  2941,  2943,  2945,  2947,  2949,  2951,  2953,
-  2955,  2957,  2959,  2961,  2963,  2965,  2967,  2969,  2971,  2973,
-  2975,  2977,  2979,  2981,  2983,  2985,  2987,  2989,  2991,  2993,
-  2995,  2997,  2999,  3001,  3003,  3005,  3007,  3009,  3011,  3013,
-  3015,  3017,  3019,  3021,  3023,  3025,  3027,  3029,  3031,  3033,
-  3035,  3037,  3039,  3041,  3043,  3045,  3047,  3049,  3051,  3053,
-  3055,  3057,  3059,  3061,  3063,  3065,  3067,  3069,  3071,  3073,
-  3075,  3077,  3079,  3081,  3083,  3085,  3087,  3089,  3091,  3093,
-  3095,  3097,  3099,  3101,  3103,  3105,  3107
-};
-
-static const short yyrhs[] = {   244,
-     0,   245,     0,   244,   245,   234,     0,   245,   234,     0,
-   260,     0,   247,     0,   262,     0,   263,     0,   269,     0,
-   292,     0,   296,     0,   302,     0,   305,     0,   246,     0,
-   385,     0,   315,     0,   323,     0,   304,     0,   314,     0,
-   248,     0,   344,     0,   391,     0,   324,     0,   328,     0,
-   335,     0,   373,     0,   374,     0,   399,     0,   345,     0,
-   353,     0,   356,     0,   355,     0,   351,     0,   360,     0,
-   334,     0,   392,     0,   363,     0,   375,     0,   377,     0,
-   378,     0,   379,     0,   384,     0,   386,     0,   255,     0,
-   258,     0,   259,     0,    28,   134,   512,   249,   250,   251,
-   253,   254,     0,     7,   134,   512,   249,   250,   251,   253,
-   254,     0,    44,   134,   512,     0,   142,   195,   512,     0,
-     0,   158,     0,   186,     0,     0,   159,     0,   187,     0,
-     0,   252,   240,   512,     0,   512,     0,    62,    59,   252,
-     0,     0,   214,   212,   218,     0,     0,   116,   514,   126,
-   256,     0,   116,   514,   224,   256,     0,   116,   122,   145,
-   257,     0,   116,   128,    70,    76,   107,   514,     0,   116,
-   128,    70,    76,   514,     0,   116,    82,   383,     0,   511,
-     0,    39,     0,   511,     0,    39,     0,    78,     0,   205,
-   514,     0,   205,   122,   145,     0,   205,   128,    70,    76,
-     0,   198,   514,     0,   198,   122,   145,     0,   198,   128,
-    70,    76,     0,     7,   118,   499,   421,   261,     0,     5,
-   362,   273,     0,     5,   241,   271,   242,     0,    44,   362,
-   514,     0,     7,   362,   514,   116,    39,   280,     0,     7,
-   362,   514,    44,    39,     0,     5,   282,     0,    22,   498,
-     0,   157,   266,   499,   267,   264,   265,   268,     0,   126,
-     0,    56,     0,   511,     0,   208,     0,   209,     0,   154,
-     0,     0,   142,   193,     0,     0,   135,   162,   511,     0,
-     0,    28,   270,   118,   499,   241,   271,   242,   291,     0,
-   119,     0,   120,     0,     0,   271,   240,   272,     0,   272,
-     0,     0,   273,     0,   281,     0,   514,   445,   274,     0,
-   514,   203,   276,     0,   275,     0,     0,   275,   277,     0,
-   277,     0,   102,    72,     0,     0,    27,   505,   278,     0,
-   278,     0,    21,   241,   284,   242,     0,    39,    90,     0,
-    39,   280,     0,    88,    90,     0,   132,     0,   102,    72,
-     0,   108,   514,   395,   287,   288,     0,   279,   240,   280,
-     0,   280,     0,   508,     0,   228,   280,     0,   280,   227,
-   280,     0,   280,   228,   280,     0,   280,   230,   280,     0,
-   280,   231,   280,     0,   280,   229,   280,     0,   280,   224,
-   280,     0,   280,   225,   280,     0,   280,   226,   280,     0,
-   233,   280,     0,   234,   280,     0,   232,   280,     0,   280,
-   239,   445,     0,    18,   241,   280,    10,   445,   242,     0,
-   241,   280,   242,     0,   506,   241,   242,     0,   506,   241,
-   279,   242,     0,   280,   219,   280,     0,   219,   280,     0,
-   280,   219,     0,    31,     0,    32,     0,    32,   241,   510,
-   242,     0,    33,     0,    33,   241,   510,   242,     0,    34,
-     0,   134,     0,    27,   505,   282,     0,   282,     0,    21,
-   241,   284,   242,     0,   132,   241,   396,   242,     0,   102,
-    72,   241,   396,   242,     0,    55,    72,   241,   396,   242,
-   108,   514,   395,   287,   288,     0,   283,   240,   284,     0,
-   284,     0,   508,     0,    90,     0,   514,     0,   228,   284,
-     0,   284,   227,   284,     0,   284,   228,   284,     0,   284,
-   230,   284,     0,   284,   231,   284,     0,   284,   229,   284,
-     0,   284,   224,   284,     0,   284,   225,   284,     0,   284,
-   226,   284,     0,   233,   284,     0,   234,   284,     0,   232,
-   284,     0,   284,   239,   445,     0,    18,   241,   284,    10,
-   445,   242,     0,   241,   284,   242,     0,   506,   241,   242,
-     0,   506,   241,   283,   242,     0,   284,   219,   284,     0,
-   284,    77,   284,     0,   284,    88,    77,   284,     0,   284,
-     8,   284,     0,   284,    96,   284,     0,    88,   284,     0,
-   219,   284,     0,   284,   219,     0,   284,   175,     0,   284,
-    69,    90,     0,   284,   191,     0,   284,    69,    88,    90,
-     0,   284,    69,   130,     0,   284,    69,    51,     0,   284,
-    69,    88,   130,     0,   284,    69,    88,    51,     0,   284,
-    62,   241,   285,   242,     0,   284,    88,    62,   241,   285,
-   242,     0,   284,    13,   286,     8,   286,     0,   284,    88,
-    13,   286,     8,   286,     0,   285,   240,   286,     0,   286,
-     0,   508,     0,    79,    57,     0,    79,    99,     0,     0,
-   289,   289,     0,   289,     0,     0,    93,    40,   290,     0,
-    93,   133,   290,     0,    87,     4,     0,    16,     0,   116,
-    39,     0,   116,    90,     0,   173,   241,   422,   242,     0,
-     0,    28,   270,   118,   499,   293,    10,   409,     0,   241,
-   294,   242,     0,     0,   294,   240,   295,     0,   295,     0,
-   514,     0,    28,   202,   499,   297,     0,   297,   298,     0,
-     0,   155,   301,     0,   160,     0,   171,   301,     0,   182,
-   301,     0,   183,   301,     0,   206,   301,     0,   300,     0,
-   301,     0,   222,     0,   228,   222,     0,   510,     0,   228,
-   510,     0,    28,   303,   196,    73,   511,   170,   318,   176,
-   511,     0,   210,     0,     0,    44,   196,    73,   511,     0,
-    28,   146,   505,   306,   307,    93,   499,   309,    48,   105,
-   505,   241,   312,   242,     0,   153,     0,   149,     0,   308,
-     0,   308,    96,   308,     0,   308,    96,   308,    96,   308,
-     0,    65,     0,    40,     0,   133,     0,    54,   310,   311,
-     0,   164,     0,     0,   200,     0,   207,     0,   313,     0,
-   312,   240,   313,     0,     0,   220,     0,   222,     0,   511,
-     0,   217,     0,    44,   146,   505,    93,   499,     0,    28,
-   317,   316,     0,   318,   319,     0,   194,     0,   147,     0,
-   150,     0,   105,     0,    71,     0,   514,     0,   358,     0,
-   219,     0,   241,   320,   242,     0,   321,     0,   320,   240,
-   321,     0,   318,   224,   322,     0,   318,     0,    39,   224,
-   322,     0,   514,     0,   357,     0,   299,     0,   511,     0,
-   204,   514,     0,    44,   118,   422,     0,    44,   202,   422,
-     0,    52,   325,   326,   327,     0,   184,   325,   326,   327,
-     0,   168,     0,   152,     0,   109,     0,     3,     0,     0,
-   510,     0,   228,   510,     0,     6,     0,    86,     0,   103,
-     0,     0,    62,   505,     0,    56,   505,     0,     0,    58,
-   329,    93,   422,   126,   332,   333,     0,     6,   104,     0,
-     6,     0,   330,     0,   331,     0,   330,   240,   331,     0,
-   115,     0,    65,     0,   133,     0,    40,     0,   201,     0,
-   106,     0,    59,   514,     0,   514,     0,   142,    58,    95,
-     0,     0,   110,   329,    93,   422,    56,   332,     0,    28,
-   336,   172,   504,    93,   499,   337,   241,   338,   242,   346,
-     0,   132,     0,     0,   135,   501,     0,     0,   339,     0,
-   340,     0,   339,   240,   341,     0,   341,     0,   506,   241,
-   423,   242,   342,   343,     0,   502,   342,   343,     0,   233,
-   445,     0,    54,   445,     0,     0,   503,     0,   135,   503,
-     0,     0,   167,   172,   504,   441,     0,    28,   169,   506,
-   347,   199,   349,   346,    10,   511,    73,   511,     0,   142,
-   319,     0,     0,   241,   348,   242,     0,   241,   242,     0,
-   513,     0,   348,   240,   513,     0,   350,   513,     0,   204,
-     0,     0,    44,   352,   505,     0,   147,     0,   172,     0,
-   201,     0,   139,     0,    44,   150,   505,   354,     0,   505,
-     0,   229,     0,    44,   169,   506,   347,     0,    44,   194,
-   357,   241,   359,   242,     0,   219,     0,   358,     0,   227,
-     0,   228,     0,   229,     0,   230,     0,   231,     0,   225,
-     0,   226,     0,   224,     0,   505,     0,   505,   240,   505,
-     0,   188,   240,   505,     0,   505,   240,   188,     0,     7,
-   118,   499,   421,   197,   362,   361,   126,   505,     0,   505,
-     0,     0,    25,     0,     0,     0,    28,   201,   505,    10,
-   364,    93,   370,   126,   369,   441,   163,   371,   365,     0,
-   189,     0,   407,     0,   368,     0,   237,   366,   238,     0,
-   241,   366,   242,     0,   367,     0,   368,     0,   367,   368,
-     0,   367,   368,   234,     0,   368,   234,     0,   393,     0,
-   401,     0,   398,     0,   372,     0,   499,   236,   502,     0,
-   499,     0,   115,     0,   133,     0,    40,     0,    65,     0,
-   174,     0,     0,   190,   499,     0,   178,   499,     0,   211,
-   499,     0,   211,   229,     0,   148,   376,     0,    12,   376,
-     0,    26,   376,     0,    46,   376,     0,   112,   376,     0,
-   143,     0,   128,     0,     0,    28,   139,   505,    10,   407,
-     0,   179,   507,     0,    28,   161,   500,   142,   380,   381,
-     0,    28,   161,   500,     0,   180,   224,   382,     0,     0,
-   165,   224,   383,     0,     0,   511,     0,    39,     0,     0,
-   511,     0,    39,     0,     0,    44,   161,   500,     0,   156,
-   504,    93,   499,     0,   213,   387,   388,     0,   213,   387,
-   388,   499,   389,     0,   215,     0,     0,   151,     0,     0,
-   241,   390,   242,     0,     0,   505,     0,   390,   240,   505,
-     0,   166,   387,   392,     0,   407,     0,   402,     0,   401,
-     0,   393,     0,   372,     0,   398,     0,    65,    68,   499,
-   394,     0,   136,   241,   496,   242,     0,    39,   136,     0,
-   407,     0,   241,   396,   242,   136,   241,   496,   242,     0,
-   241,   396,   242,   407,     0,   241,   396,   242,     0,     0,
-   396,   240,   397,     0,   397,     0,   514,   473,     0,    40,
-    56,   499,   441,     0,   181,   411,   499,     0,   181,   411,
-   499,    62,   400,   200,   217,   217,     0,   181,   411,   499,
-    62,   217,   217,   217,     0,   181,   411,   499,    62,   217,
-   217,     0,   217,     0,     0,   133,   499,   116,   494,   428,
-   441,     0,    38,   505,   403,    35,    54,   407,   404,     0,
-   154,     0,    64,     0,   113,     0,    64,   113,     0,     0,
-    54,   405,     0,     0,   107,    94,     0,   133,   406,     0,
-    92,   396,     0,   408,   414,   426,   418,     0,   241,   408,
-   242,     0,   409,     0,   408,    47,   408,     0,   408,   131,
-   412,   408,     0,   408,    66,   408,     0,   115,   413,   496,
-   410,   428,   441,   424,   425,     0,    68,   270,   411,   499,
-     0,     0,   118,     0,     0,     6,     0,     0,    42,     0,
-    42,    93,   514,     0,     6,     0,     0,    97,    15,   415,
-     0,     0,   416,     0,   415,   240,   416,     0,   469,   417,
-     0,   135,   219,     0,   135,   225,     0,   135,   226,     0,
-    11,     0,    41,     0,     0,   177,   419,   240,   420,     0,
-   177,   419,   192,   420,     0,   177,   419,     0,   192,   420,
-   177,   419,     0,   192,   420,     0,     0,   510,     0,     6,
-     0,   221,     0,   510,     0,   221,     0,   229,     0,     0,
-   423,     0,   505,     0,   423,   240,   505,     0,    59,    15,
-   474,     0,     0,    60,   469,     0,     0,    54,   133,   427,
-     0,     0,    92,   390,     0,     0,    56,   429,     0,     0,
-   241,   432,   242,     0,   433,     0,   430,     0,   430,   240,
-   431,     0,   431,     0,   442,    10,   515,     0,   442,   514,
-     0,   442,     0,   433,     0,   431,   131,    71,   431,     0,
-   431,   434,     0,   434,   435,     0,   435,     0,   436,    71,
-   431,   438,     0,    84,   436,    71,   431,     0,    29,    71,
-   431,     0,    57,   437,     0,    75,   437,     0,   111,   437,
-     0,    98,     0,    63,     0,     0,    98,     0,     0,   135,
-   241,   439,   242,     0,    93,   469,     0,   439,   240,   440,
-     0,   440,     0,   514,     0,   141,   469,     0,     0,   499,
-     0,   499,   229,     0,   237,   238,   444,     0,   237,   510,
-   238,   444,     0,     0,   237,   238,   444,     0,   237,   510,
-   238,   444,     0,     0,   446,   443,     0,   204,   446,     0,
-   447,     0,   459,     0,   449,     0,   454,     0,   448,     0,
-   217,     0,   147,     0,    53,   451,     0,    43,   101,     0,
-    37,   453,     0,    91,   452,     0,    53,     0,    43,   101,
-     0,    37,     0,    91,     0,   241,   510,   242,     0,     0,
-   241,   510,   240,   510,   242,     0,   241,   510,   242,     0,
-     0,   241,   510,   240,   510,   242,     0,   241,   510,   242,
-     0,     0,   455,   241,   510,   242,     0,   455,     0,    20,
-   456,   457,   458,     0,    19,   456,     0,   137,     0,    83,
-    20,   456,     0,    85,   456,     0,   138,     0,     0,    20,
-   116,   514,     0,     0,    24,   514,     0,     0,   460,     0,
-   123,   461,     0,   122,     0,    67,   462,     0,   144,     0,
-    81,     0,    36,     0,    61,     0,    80,     0,   114,     0,
-   142,   122,   145,     0,     0,   460,     0,   144,   126,    81,
-     0,    36,   126,    61,     0,    36,   126,    80,     0,    36,
-   126,   114,     0,    61,   126,    80,     0,    61,   126,   114,
-     0,    80,   126,   114,     0,     0,   469,     0,    90,     0,
-   241,   465,   242,    62,   241,   409,   242,     0,   241,   465,
-   242,    88,    62,   241,   409,   242,     0,   241,   465,   242,
-   467,   468,   241,   409,   242,     0,   241,   465,   242,   467,
-   241,   409,   242,     0,   241,   465,   242,   467,   241,   465,
-   242,     0,   466,   240,   469,     0,   466,   240,   469,     0,
-   469,     0,   219,     0,   225,     0,   224,     0,   226,     0,
-   227,     0,   228,     0,   229,     0,   230,     0,   231,     0,
-     9,     0,     6,     0,   492,   473,     0,   464,     0,   508,
-     0,   514,     0,   228,   469,     0,   231,   469,     0,   469,
-   231,     0,   469,   227,   469,     0,   469,   228,   469,     0,
-   469,   230,   469,     0,   469,   231,   469,     0,   469,   229,
-   469,     0,   469,   225,   469,     0,   469,   226,   469,     0,
-   469,   224,    90,     0,    90,   224,   469,     0,   469,   224,
-   469,     0,   233,   469,     0,   234,   469,     0,   232,   469,
-     0,   469,   239,   445,     0,    18,   241,   469,    10,   445,
-   242,     0,   241,   463,   242,     0,   469,   219,   469,     0,
-   469,    77,   469,     0,   469,    88,    77,   469,     0,   219,
-   469,     0,   469,   219,     0,   506,   241,   229,   242,     0,
-   506,   241,   242,     0,   506,   241,   474,   242,     0,    31,
-     0,    32,     0,    32,   241,   510,   242,     0,    33,     0,
-    33,   241,   510,   242,     0,    34,     0,   134,     0,    49,
-   241,   409,   242,     0,    50,   241,   475,   242,     0,   100,
-   241,   477,   242,     0,   117,   241,   479,   242,     0,   129,
-   241,    14,   482,   242,     0,   129,   241,    74,   482,   242,
-     0,   129,   241,   127,   482,   242,     0,   129,   241,   482,
-   242,     0,   469,   175,     0,   469,    69,    90,     0,   469,
-   191,     0,   469,    69,    88,    90,     0,   469,    69,   130,
-     0,   469,    69,    88,    51,     0,   469,    69,    51,     0,
-   469,    69,    88,   130,     0,   469,    13,   472,     8,   472,
-     0,   469,    88,    13,   472,     8,   472,     0,     0,   469,
-    62,   470,   241,   483,   242,     0,     0,   469,    88,    62,
-   471,   241,   485,   242,     0,   469,   219,   241,   409,   242,
-     0,   469,   227,   241,   409,   242,     0,   469,   228,   241,
-   409,   242,     0,   469,   230,   241,   409,   242,     0,   469,
-   231,   241,   409,   242,     0,   469,   229,   241,   409,   242,
-     0,   469,   225,   241,   409,   242,     0,   469,   226,   241,
-   409,   242,     0,   469,   224,   241,   409,   242,     0,   469,
-   219,     9,   241,   409,   242,     0,   469,   227,     9,   241,
-   409,   242,     0,   469,   228,     9,   241,   409,   242,     0,
-   469,   230,     9,   241,   409,   242,     0,   469,   231,     9,
-   241,   409,   242,     0,   469,   229,     9,   241,   409,   242,
-     0,   469,   225,     9,   241,   409,   242,     0,   469,   226,
-     9,   241,   409,   242,     0,   469,   224,     9,   241,   409,
-   242,     0,   469,   219,     6,   241,   409,   242,     0,   469,
-   227,     6,   241,   409,   242,     0,   469,   228,     6,   241,
-   409,   242,     0,   469,   230,     6,   241,   409,   242,     0,
-   469,   231,     6,   241,   409,   242,     0,   469,   229,     6,
-   241,   409,   242,     0,   469,   225,     6,   241,   409,   242,
-     0,   469,   226,     6,   241,   409,   242,     0,   469,   224,
-     6,   241,   409,   242,     0,   469,     8,   469,     0,   469,
-    96,   469,     0,    88,   469,     0,   487,     0,   492,   473,
-     0,   508,     0,   514,     0,   228,   472,     0,   231,   472,
-     0,   472,   231,     0,   472,   227,   472,     0,   472,   228,
-   472,     0,   472,   230,   472,     0,   472,   231,   472,     0,
-   472,   229,   472,     0,   233,   472,     0,   234,   472,     0,
-   232,   472,     0,   472,   239,   445,     0,    18,   241,   472,
-    10,   445,   242,     0,   241,   469,   242,     0,   472,   219,
-   472,     0,   219,   472,     0,   472,   219,     0,   506,   241,
-   242,     0,   506,   241,   474,   242,     0,    31,     0,    32,
-     0,    32,   241,   510,   242,     0,    33,     0,    33,   241,
-   510,   242,     0,    34,     0,   134,     0,   100,   241,   477,
-   242,     0,   117,   241,   479,   242,     0,   129,   241,    14,
-   482,   242,     0,   129,   241,    74,   482,   242,     0,   129,
-   241,   127,   482,   242,     0,   129,   241,   482,   242,     0,
-   237,   469,   238,   473,     0,   237,   469,   233,   469,   238,
-   473,     0,     0,   463,     0,   474,   240,   463,     0,   474,
-   135,   469,     0,   476,    56,   469,     0,     0,   460,     0,
-   124,     0,   125,     0,   478,    62,   478,     0,     0,   492,
-   473,     0,   508,     0,   228,   478,     0,   478,   227,   478,
-     0,   478,   228,   478,     0,   478,   230,   478,     0,   478,
-   231,   478,     0,   478,   229,   478,     0,   232,   478,     0,
-   478,   239,   445,     0,    18,   241,   478,    10,   445,   242,
-     0,   241,   478,   242,     0,   478,   219,   478,     0,   219,
-   478,     0,   478,   219,     0,   514,     0,   506,   241,   242,
-     0,   506,   241,   474,   242,     0,   100,   241,   477,   242,
-     0,   117,   241,   479,   242,     0,   129,   241,    14,   482,
-   242,     0,   129,   241,    74,   482,   242,     0,   129,   241,
-   127,   482,   242,     0,   129,   241,   482,   242,     0,   474,
-   480,   481,     0,     0,    56,   474,     0,     0,    54,   474,
-     0,     0,   469,    56,   474,     0,    56,   474,     0,   474,
-     0,   409,     0,   484,     0,   508,     0,   484,   240,   508,
-     0,   409,     0,   486,     0,   508,     0,   486,   240,   508,
-     0,    17,   491,   488,   490,    46,     0,    89,   241,   469,
-   240,   469,   242,     0,    23,   241,   474,   242,     0,   488,
-   489,     0,   489,     0,   140,   469,   121,   463,     0,    45,
-   463,     0,     0,   492,   473,     0,   514,     0,     0,   499,
-   236,   493,     0,   509,   236,   493,     0,   502,     0,   493,
-   236,   502,     0,   493,   236,   229,     0,   494,   240,   495,
-     0,   495,     0,   229,     0,   514,   473,   224,   463,     0,
-   492,   473,     0,   499,   236,   229,     0,   496,   240,   497,
-     0,   497,     0,   463,    10,   515,     0,   463,     0,   499,
-   236,   229,     0,   229,     0,   514,     0,     0,   516,     0,
-   514,     0,   514,     0,   217,     0,   514,     0,   217,     0,
-   514,     0,   514,     0,   514,     0,   511,     0,   510,     0,
-   222,     0,   511,     0,   445,   511,     0,   509,     0,   130,
-     0,    51,     0,   221,   473,     0,   220,     0,   218,     0,
-   217,     0,   514,     0,   450,     0,   455,     0,   217,     0,
-   460,     0,     3,     0,     4,     0,   149,     0,   150,     0,
-   152,     0,   153,     0,   155,     0,   158,     0,   159,     0,
-   160,     0,   161,     0,   162,     0,    43,     0,   164,     0,
-   165,     0,   168,     0,   169,     0,   170,     0,   171,     0,
-   172,     0,   173,     0,    64,     0,   174,     0,   175,     0,
-    72,     0,    73,     0,   176,     0,   180,     0,    79,     0,
-   182,     0,   183,     0,    86,     0,   186,     0,   187,     0,
-   189,     0,   191,     0,    92,     0,   193,     0,    94,     0,
-   194,     0,    95,     0,   195,     0,   103,     0,   104,     0,
-   196,     0,   107,     0,   109,     0,   197,     0,   199,     0,
-   200,     0,   201,     0,   113,     0,   202,     0,   203,     0,
-   206,     0,   207,     0,   208,     0,   209,     0,   122,     0,
-   123,     0,   124,     0,   125,     0,   146,     0,   210,     0,
-   147,     0,   214,     0,   216,     0,   145,     0,   514,     0,
-   148,     0,   151,     0,   154,     0,    17,     0,   156,     0,
-    23,     0,    27,     0,   157,     0,    30,     0,   163,     0,
-    45,     0,    46,     0,   166,     0,   167,     0,    51,     0,
-    55,     0,    59,     0,   178,     0,   179,     0,   181,     0,
-   184,     0,   185,     0,   188,     0,    89,     0,    97,     0,
-   100,     0,   101,     0,   198,     0,   204,     0,   205,     0,
-   118,     0,   121,     0,   128,     0,   130,     0,   213,     0,
-   215,     0,   140,     0,    30,     0,   185,     0
-};
-
-#endif
-
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
-   358,   360,   364,   373,   377,   378,   379,   380,   381,   382,
-   383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
-   393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
-   403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
-   413,   414,   415,   416,   417,   418,   428,   449,   470,   478,
-   479,   482,   488,   494,   497,   503,   509,   512,   516,   522,
-   523,   526,   527,   539,   546,   553,   560,   569,   578,   591,
-   592,   595,   596,   597,   600,   606,   612,   620,   626,   632,
-   648,   658,   662,   670,   672,   674,   676,   688,   705,   718,
-   720,   729,   730,   731,   734,   735,   738,   739,   745,   746,
-   757,   770,   772,   773,   776,   783,   790,   793,   794,   797,
-   807,   822,   823,   826,   833,   842,   851,   854,   861,   875,
-   884,   893,   902,   911,   920,   929,   936,   941,   954,   956,
-   958,   960,   962,   964,   966,   968,   970,   972,   974,   976,
-   978,   980,   985,   990,   992,   997,  1003,  1009,  1011,  1014,
-  1016,  1018,  1024,  1026,  1032,  1034,  1042,  1048,  1052,  1060,
-  1069,  1078,  1085,  1090,  1096,  1098,  1100,  1104,  1106,  1108,
-  1110,  1112,  1114,  1116,  1118,  1120,  1122,  1124,  1126,  1128,
-  1133,  1138,  1140,  1145,  1151,  1153,  1155,  1157,  1159,  1161,
-  1163,  1165,  1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,
-  1183,  1190,  1197,  1204,  1213,  1218,  1224,  1228,  1229,  1230,
-  1233,  1234,  1235,  1238,  1239,  1242,  1243,  1244,  1245,  1248,
-  1249,  1252,  1263,  1264,  1267,  1268,  1271,  1291,  1300,  1302,
-  1305,  1311,  1317,  1323,  1329,  1335,  1343,  1344,  1346,  1350,
-  1357,  1361,  1376,  1388,  1389,  1391,  1407,  1423,  1424,  1427,
-  1432,  1437,  1445,  1446,  1447,  1450,  1456,  1457,  1460,  1461,
-  1464,  1466,  1468,  1472,  1478,  1484,  1485,  1488,  1505,  1512,
-  1520,  1521,  1522,  1525,  1526,  1527,  1528,  1529,  1532,  1535,
-  1536,  1539,  1545,  1551,  1559,  1560,  1561,  1562,  1563,  1582,
-  1589,  1608,  1628,  1644,  1645,  1646,  1647,  1652,  1655,  1656,
-  1657,  1658,  1659,  1660,  1663,  1664,  1665,  1676,  1682,  1686,
-  1690,  1696,  1700,  1706,  1710,  1714,  1718,  1722,  1728,  1732,
-  1736,  1742,  1746,  1757,  1774,  1791,  1792,  1795,  1796,  1799,
-  1800,  1803,  1804,  1807,  1817,  1827,  1828,  1829,  1838,  1839,
-  1840,  1851,  1897,  1910,  1911,  1914,  1915,  1918,  1920,  1924,
-  1934,  1935,  1955,  1964,  1965,  1966,  1967,  1971,  1980,  1981,
-  1985,  1995,  2004,  2004,  2006,  2007,  2008,  2009,  2010,  2011,
-  2012,  2013,  2016,  2020,  2022,  2024,  2037,  2049,  2050,  2053,
-  2054,  2067,  2069,  2083,  2084,  2085,  2086,  2087,  2090,  2091,
-  2094,  2096,  2098,  2102,  2103,  2104,  2105,  2108,  2116,  2127,
-  2128,  2129,  2130,  2133,  2134,  2146,  2154,  2162,  2168,  2190,
-  2196,  2202,  2208,  2214,  2222,  2223,  2224,  2235,  2258,  2274,
-  2298,  2312,  2313,  2316,  2317,  2320,  2321,  2322,  2325,  2326,
-  2327,  2337,  2353,  2370,  2379,  2392,  2393,  2396,  2397,  2400,
-  2401,  2404,  2406,  2418,  2439,  2440,  2441,  2442,  2443,  2444,
-  2461,  2468,  2480,  2496,  2513,  2527,  2545,  2546,  2549,  2552,
-  2556,  2573,  2583,  2591,  2617,  2634,  2651,  2652,  2662,  2684,
-  2706,  2707,  2708,  2709,  2710,  2713,  2714,  2717,  2718,  2726,
-  2745,  2836,  2840,  2844,  2849,  2858,  2865,  2894,  2895,  2898,
-  2899,  2902,  2903,  2906,  2907,  2908,  2909,  2912,  2913,  2916,
-  2917,  2920,  2928,  2929,  2930,  2931,  2932,  2933,  2937,  2939,
-  2941,  2943,  2945,  2947,  2951,  2967,  2980,  2991,  3004,  3021,
-  3022,  3025,  3027,  3029,  3033,  3034,  3037,  3041,  3044,  3045,
-  3048,  3049,  3060,  3061,  3064,  3066,  3068,  3072,  3074,  3078,
-  3084,  3090,  3102,  3104,  3108,  3128,  3132,  3144,  3152,  3160,
-  3165,  3170,  3175,  3180,  3185,  3189,  3195,  3196,  3207,  3208,
-  3211,  3212,  3215,  3225,  3226,  3229,  3236,  3244,  3246,  3248,
-  3252,  3254,  3256,  3271,  3293,  3300,  3301,  3302,  3303,  3306,
-  3314,  3315,  3323,  3329,  3334,  3340,  3348,  3350,  3352,  3354,
-  3358,  3369,  3375,  3386,  3394,  3400,  3411,  3419,  3429,  3456,
-  3475,  3495,  3496,  3497,  3498,  3501,  3502,  3505,  3506,  3509,
-  3510,  3513,  3519,  3526,  3532,  3540,  3541,  3542,  3543,  3544,
-  3545,  3548,  3549,  3552,  3553,  3554,  3555,  3556,  3557,  3558,
-  3559,  3560,  3570,  3572,  3589,  3599,  3609,  3622,  3635,  3641,
-  3647,  3651,  3657,  3658,  3659,  3660,  3661,  3662,  3663,  3664,
-  3665,  3668,  3669,  3680,  3685,  3687,  3689,  3697,  3699,  3701,
-  3703,  3705,  3707,  3709,  3711,  3713,  3715,  3719,  3721,  3724,
-  3726,  3728,  3730,  3732,  3748,  3764,  3766,  3768,  3770,  3772,
-  3774,  3776,  3788,  3795,  3802,  3817,  3832,  3854,  3869,  3891,
-  3898,  3905,  3915,  3922,  3929,  3937,  3944,  3951,  3958,  3965,
-  3967,  3969,  3971,  3978,  3988,  3998,  4008,  4018,  4024,  4030,
-  4030,  4044,  4044,  4058,  4068,  4078,  4088,  4098,  4108,  4118,
-  4128,  4138,  4148,  4158,  4168,  4178,  4188,  4198,  4208,  4218,
-  4228,  4238,  4248,  4258,  4268,  4278,  4288,  4298,  4308,  4318,
-  4328,  4330,  4332,  4334,  4343,  4348,  4350,  4358,  4360,  4362,
-  4364,  4366,  4368,  4370,  4372,  4374,  4376,  4378,  4380,  4396,
-  4412,  4414,  4416,  4418,  4420,  4427,  4434,  4449,  4464,  4486,
-  4501,  4523,  4530,  4537,  4544,  4552,  4559,  4566,  4573,  4582,
-  4589,  4596,  4600,  4602,  4604,  4608,  4615,  4619,  4620,  4621,
-  4624,  4626,  4630,  4635,  4637,  4639,  4641,  4643,  4645,  4647,
-  4649,  4651,  4667,  4683,  4685,  4687,  4689,  4691,  4699,  4706,
-  4713,  4720,  4728,  4735,  4742,  4749,  4758,  4762,  4766,  4768,
-  4777,  4779,  4783,  4785,  4787,  4791,  4797,  4801,  4803,  4809,
-  4815,  4819,  4821,  4842,  4850,  4864,  4880,  4882,  4886,  4895,
-  4896,  4899,  4904,  4912,  4916,  4924,  4934,  4936,  4938,  4949,
-  4951,  4953,  4968,  4975,  4982,  5001,  5003,  5008,  5015,  5022,
-  5034,  5048,  5049,  5052,  5057,  5069,  5070,  5071,  5072,  5073,
-  5079,  5080,  5082,  5088,  5095,  5102,  5109,  5117,  5119,  5129,
-  5141,  5149,  5150,  5151,  5158,  5160,  5162,  5173,  5174,  5175,
-  5176,  5177,  5178,  5179,  5180,  5181,  5182,  5183,  5184,  5185,
-  5186,  5187,  5188,  5189,  5190,  5191,  5192,  5193,  5194,  5195,
-  5196,  5197,  5198,  5199,  5200,  5201,  5202,  5203,  5204,  5205,
-  5206,  5207,  5208,  5209,  5210,  5211,  5212,  5213,  5214,  5215,
-  5216,  5217,  5218,  5219,  5220,  5221,  5222,  5223,  5224,  5225,
-  5226,  5227,  5228,  5229,  5230,  5231,  5232,  5233,  5234,  5235,
-  5236,  5237,  5238,  5239,  5240,  5241,  5242,  5255,  5256,  5257,
-  5258,  5259,  5260,  5261,  5262,  5263,  5264,  5265,  5266,  5267,
-  5268,  5269,  5270,  5271,  5272,  5273,  5274,  5275,  5276,  5277,
-  5278,  5279,  5280,  5281,  5282,  5283,  5284,  5285,  5286,  5287,
-  5288,  5289,  5290,  5291,  5292,  5295,  5302
-};
-#endif
-
-
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
-
-static const char * const yytname[] = {   "$","error","$undefined.","ABSOLUTE",
-"ACTION","ADD","ALL","ALTER","AND","ANY","AS","ASC","BEGIN_TRANS","BETWEEN",
-"BOTH","BY","CASCADE","CASE","CAST","CHAR","CHARACTER","CHECK","CLOSE","COALESCE",
-"COLLATE","COLUMN","COMMIT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE",
-"CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DAY_P","DECIMAL",
-"DECLARE","DEFAULT","DELETE","DESC","DISTINCT","DOUBLE","DROP","ELSE","END_TRANS",
-"EXCEPT","EXECUTE","EXISTS","EXTRACT","FALSE_P","FETCH","FLOAT","FOR","FOREIGN",
-"FROM","FULL","GRANT","GROUP","HAVING","HOUR_P","IN","INNER_P","INSENSITIVE",
-"INSERT","INTERSECT","INTERVAL","INTO","IS","ISOLATION","JOIN","KEY","LANGUAGE",
-"LEADING","LEFT","LEVEL","LIKE","LOCAL","MATCH","MINUTE_P","MONTH_P","NAMES",
-"NATIONAL","NATURAL","NCHAR","NEXT","NO","NOT","NULLIF","NULL_P","NUMERIC","OF",
-"ON","ONLY","OPTION","OR","ORDER","OUTER_P","PARTIAL","POSITION","PRECISION",
-"PRIMARY","PRIOR","PRIVILEGES","PROCEDURE","PUBLIC","READ","REFERENCES","RELATIVE",
-"REVOKE","RIGHT","ROLLBACK","SCROLL","SECOND_P","SELECT","SET","SUBSTRING","TABLE",
-"TEMP","TEMPORARY","THEN","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE",
-"TO","TRAILING","TRANSACTION","TRIM","TRUE_P","UNION","UNIQUE","UPDATE","USER",
-"USING","VALUES","VARCHAR","VARYING","VIEW","WHEN","WHERE","WITH","WORK","YEAR_P",
-"ZONE","TRIGGER","TYPE_P","ABORT_TRANS","AFTER","AGGREGATE","ANALYZE","BACKWARD",
-"BEFORE","BINARY","CACHE","CLUSTER","COPY","CREATEDB","CREATEUSER","CYCLE","DATABASE",
-"DELIMITERS","DO","EACH","ENCODING","EXPLAIN","EXTEND","FORWARD","FUNCTION",
-"HANDLER","INCREMENT","INDEX","INHERITS","INSTEAD","ISNULL","LANCOMPILER","LIMIT",
-"LISTEN","LOAD","LOCATION","LOCK_P","MAXVALUE","MINVALUE","MOVE","NEW","NOCREATEDB",
-"NOCREATEUSER","NONE","NOTHING","NOTIFY","NOTNULL","OFFSET","OIDS","OPERATOR",
-"PASSWORD","PROCEDURAL","RENAME","RESET","RETURNS","ROW","RULE","SEQUENCE","SERIAL",
-"SETOF","SHOW","START","STATEMENT","STDIN","STDOUT","TRUSTED","UNLISTEN","UNTIL",
-"VACUUM","VALID","VERBOSE","VERSION","IDENT","SCONST","Op","ICONST","PARAM",
-"FCONST","OP","'='","'<'","'>'","'+'","'-'","'*'","'/'","'%'","'|'","':'","';'",
-"UMINUS","'.'","'['","']'","TYPECAST","','","'('","')'","stmtblock","stmtmulti",
-"stmt","CreateUserStmt","AlterUserStmt","DropUserStmt","user_passwd_clause",
-"user_createdb_clause","user_createuser_clause","user_group_list","user_group_clause",
-"user_valid_clause","VariableSetStmt","var_value","zone_value","VariableShowStmt",
-"VariableResetStmt","AddAttrStmt","alter_clause","ClosePortalStmt","CopyStmt",
-"copy_dirn","copy_file_name","opt_binary","opt_with_copy","copy_delimiter","CreateStmt",
-"OptTemp","OptTableElementList","OptTableElement","columnDef","ColQualifier",
-"ColQualList","ColPrimaryKey","ColConstraint","ColConstraintElem","default_list",
-"default_expr","TableConstraint","ConstraintElem","constraint_list","constraint_expr",
-"c_list","c_expr","key_match","key_actions","key_action","key_reference","OptInherit",
-"CreateAsStmt","OptCreateAs","CreateAsList","CreateAsElement","CreateSeqStmt",
-"OptSeqList","OptSeqElem","NumericOnly","FloatOnly","IntegerOnly","CreatePLangStmt",
-"PLangTrusted","DropPLangStmt","CreateTrigStmt","TriggerActionTime","TriggerEvents",
-"TriggerOneEvent","TriggerForSpec","TriggerForOpt","TriggerForType","TriggerFuncArgs",
-"TriggerFuncArg","DropTrigStmt","DefineStmt","def_rest","def_type","def_name",
-"definition","def_list","def_elem","def_arg","DestroyStmt","FetchStmt","opt_direction",
-"fetch_how_many","opt_portal_name","GrantStmt","privileges","operation_commalist",
-"operation","grantee","opt_with_grant","RevokeStmt","IndexStmt","index_opt_unique",
-"access_method_clause","index_params","index_list","func_index","index_elem",
-"opt_type","opt_class","ExtendStmt","ProcedureStmt","opt_with","func_args","func_args_list",
-"func_return","set_opt","RemoveStmt","remove_type","RemoveAggrStmt","aggr_argtype",
-"RemoveFuncStmt","RemoveOperStmt","all_Op","MathOp","oper_argtypes","RenameStmt",
-"opt_name","opt_column","RuleStmt","@1","RuleActionList","RuleActionBlock","RuleActionMulti",
-"RuleActionStmt","event_object","event","opt_instead","NotifyStmt","ListenStmt",
-"UnlistenStmt","TransactionStmt","opt_trans","ViewStmt","LoadStmt","CreatedbStmt",
-"opt_database1","opt_database2","location","encoding","DestroydbStmt","ClusterStmt",
-"VacuumStmt","opt_verbose","opt_analyze","opt_va_list","va_list","ExplainStmt",
-"OptimizableStmt","InsertStmt","insert_rest","opt_column_list","columnList",
-"columnElem","DeleteStmt","LockStmt","opt_lmode","UpdateStmt","CursorStmt","opt_cursor",
-"cursor_clause","opt_readonly","opt_of","SelectStmt","select_clause","SubSelect",
-"result","opt_table","opt_union","opt_unique","sort_clause","sortby_list","sortby",
-"OptUseOp","opt_select_limit","select_limit_value","select_offset_value","opt_inh_star",
-"relation_name_list","name_list","group_clause","having_clause","for_update_clause",
-"update_list","from_clause","from_expr","table_list","table_expr","join_clause_with_union",
-"join_clause","join_list","join_expr","join_type","join_outer","join_qual","using_list",
-"using_expr","where_clause","relation_expr","opt_array_bounds","nest_array_bounds",
-"Typename","Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric",
-"opt_decimal","Character","character","opt_varying","opt_charset","opt_collate",
-"Datetime","datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr",
-"row_descriptor","row_list","row_op","sub_type","a_expr","@2","@3","b_expr",
-"opt_indirection","expr_list","extract_list","extract_arg","position_list","position_expr",
-"substr_list","substr_from","substr_for","trim_list","in_expr","in_expr_nodes",
-"not_in_expr","not_in_expr_nodes","case_expr","when_clause_list","when_clause",
-"case_default","case_arg","attr","attrs","res_target_list","res_target_el","res_target_list2",
-"res_target_el2","opt_id","relation_name","database_name","access_method","attr_name",
-"class","index_name","name","func_name","file_name","AexprConst","ParamNo","Iconst",
-"Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation", NULL
-};
-#endif
-
-static const short yyr1[] = {     0,
-   243,   243,   244,   244,   245,   245,   245,   245,   245,   245,
-   245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-   245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-   245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-   245,   245,   245,   245,   245,   245,   246,   247,   248,   249,
-   249,   250,   250,   250,   251,   251,   251,   252,   252,   253,
-   253,   254,   254,   255,   255,   255,   255,   255,   255,   256,
-   256,   257,   257,   257,   258,   258,   258,   259,   259,   259,
-   260,   261,   261,   261,   261,   261,   261,   262,   263,   264,
-   264,   265,   265,   265,   266,   266,   267,   267,   268,   268,
-   269,   270,   270,   270,   271,   271,   271,   272,   272,   273,
-   273,   274,   274,   275,   275,   276,   276,   277,   277,   278,
-   278,   278,   278,   278,   278,   278,   279,   279,   280,   280,
-   280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
-   280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
-   280,   280,   280,   280,   280,   280,   281,   281,   282,   282,
-   282,   282,   283,   283,   284,   284,   284,   284,   284,   284,
-   284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-   284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-   284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-   284,   284,   284,   284,   285,   285,   286,   287,   287,   287,
-   288,   288,   288,   289,   289,   290,   290,   290,   290,   291,
-   291,   292,   293,   293,   294,   294,   295,   296,   297,   297,
-   298,   298,   298,   298,   298,   298,   299,   299,   300,   300,
-   301,   301,   302,   303,   303,   304,   305,   306,   306,   307,
-   307,   307,   308,   308,   308,   309,   310,   310,   311,   311,
-   312,   312,   312,   313,   313,   313,   313,   314,   315,   316,
-   317,   317,   317,   318,   318,   318,   318,   318,   319,   320,
-   320,   321,   321,   321,   322,   322,   322,   322,   322,   323,
-   323,   324,   324,   325,   325,   325,   325,   325,   326,   326,
-   326,   326,   326,   326,   327,   327,   327,   328,   329,   329,
-   329,   330,   330,   331,   331,   331,   331,   331,   332,   332,
-   332,   333,   333,   334,   335,   336,   336,   337,   337,   338,
-   338,   339,   339,   340,   341,   342,   342,   342,   343,   343,
-   343,   344,   345,   346,   346,   347,   347,   348,   348,   349,
-   350,   350,   351,   352,   352,   352,   352,   353,   354,   354,
-   355,   356,   357,   357,   358,   358,   358,   358,   358,   358,
-   358,   358,   359,   359,   359,   359,   360,   361,   361,   362,
-   362,   364,   363,   365,   365,   365,   365,   365,   366,   366,
-   367,   367,   367,   368,   368,   368,   368,   369,   369,   370,
-   370,   370,   370,   371,   371,   372,   373,   374,   374,   375,
-   375,   375,   375,   375,   376,   376,   376,   377,   378,   379,
-   379,   380,   380,   381,   381,   382,   382,   382,   383,   383,
-   383,   384,   385,   386,   386,   387,   387,   388,   388,   389,
-   389,   390,   390,   391,   392,   392,   392,   392,   392,   392,
-   393,   394,   394,   394,   394,   394,   395,   395,   396,   396,
-   397,   398,   399,   399,   399,   399,   400,   400,   401,   402,
-   403,   403,   403,   403,   403,   404,   404,   405,   405,   406,
-   407,   408,   408,   408,   408,   408,   409,   410,   410,   411,
-   411,   412,   412,   413,   413,   413,   413,   414,   414,   415,
-   415,   416,   417,   417,   417,   417,   417,   417,   418,   418,
-   418,   418,   418,   418,   419,   419,   419,   420,   420,   421,
-   421,   422,   423,   423,   424,   424,   425,   425,   426,   426,
-   427,   427,   428,   428,   429,   429,   429,   430,   430,   431,
-   431,   431,   432,   432,   433,   434,   434,   435,   435,   435,
-   436,   436,   436,   436,   436,   436,   437,   437,   438,   438,
-   439,   439,   440,   441,   441,   442,   442,   443,   443,   443,
-   444,   444,   444,   445,   445,   446,   446,   446,   446,   447,
-   448,   448,   449,   449,   449,   449,   450,   450,   450,   450,
-   451,   451,   452,   452,   452,   453,   453,   453,   454,   454,
-   455,   455,   455,   455,   455,   456,   456,   457,   457,   458,
-   458,   459,   459,   459,   459,   460,   460,   460,   460,   460,
-   460,   461,   461,   462,   462,   462,   462,   462,   462,   462,
-   462,   462,   463,   463,   464,   464,   464,   464,   464,   465,
-   466,   466,   467,   467,   467,   467,   467,   467,   467,   467,
-   467,   468,   468,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   469,   469,   469,   469,   469,   470,
-   469,   471,   469,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
-   469,   469,   469,   469,   472,   472,   472,   472,   472,   472,
-   472,   472,   472,   472,   472,   472,   472,   472,   472,   472,
-   472,   472,   472,   472,   472,   472,   472,   472,   472,   472,
-   472,   472,   472,   472,   472,   472,   472,   472,   472,   473,
-   473,   473,   474,   474,   474,   475,   475,   476,   476,   476,
-   477,   477,   478,   478,   478,   478,   478,   478,   478,   478,
-   478,   478,   478,   478,   478,   478,   478,   478,   478,   478,
-   478,   478,   478,   478,   478,   478,   479,   479,   480,   480,
-   481,   481,   482,   482,   482,   483,   483,   484,   484,   485,
-   485,   486,   486,   487,   487,   487,   488,   488,   489,   490,
-   490,   491,   491,   491,   492,   492,   493,   493,   493,   494,
-   494,   494,   495,   495,   495,   496,   496,   497,   497,   497,
-   497,   498,   498,   499,   499,   500,   501,   502,   503,   504,
-   505,   506,   507,   508,   508,   508,   508,   508,   508,   508,
-   509,   510,   511,   512,   513,   513,   513,   514,   514,   514,
-   514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
-   514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
-   514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
-   514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
-   514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
-   514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
-   514,   514,   514,   514,   514,   514,   514,   515,   515,   515,
-   515,   515,   515,   515,   515,   515,   515,   515,   515,   515,
-   515,   515,   515,   515,   515,   515,   515,   515,   515,   515,
-   515,   515,   515,   515,   515,   515,   515,   515,   515,   515,
-   515,   515,   515,   515,   515,   516,   516
-};
-
-static const short yyr2[] = {     0,
-     1,     1,     3,     2,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     8,     8,     3,     3,
-     0,     1,     1,     0,     1,     1,     0,     3,     1,     3,
-     0,     3,     0,     4,     4,     4,     6,     5,     3,     1,
-     1,     1,     1,     1,     2,     3,     4,     2,     3,     4,
-     5,     3,     4,     3,     6,     5,     2,     2,     7,     1,
-     1,     1,     1,     1,     1,     0,     2,     0,     3,     0,
-     8,     1,     1,     0,     3,     1,     0,     1,     1,     3,
-     3,     1,     0,     2,     1,     2,     0,     3,     1,     4,
-     2,     2,     2,     1,     2,     5,     3,     1,     1,     2,
-     3,     3,     3,     3,     3,     3,     3,     3,     2,     2,
-     2,     3,     6,     3,     3,     4,     3,     2,     2,     1,
-     1,     4,     1,     4,     1,     1,     3,     1,     4,     4,
-     5,    10,     3,     1,     1,     1,     1,     2,     3,     3,
-     3,     3,     3,     3,     3,     3,     2,     2,     2,     3,
-     6,     3,     3,     4,     3,     3,     4,     3,     3,     2,
-     2,     2,     2,     3,     2,     4,     3,     3,     4,     4,
-     5,     6,     5,     6,     3,     1,     1,     2,     2,     0,
-     2,     1,     0,     3,     3,     2,     1,     2,     2,     4,
-     0,     7,     3,     0,     3,     1,     1,     4,     2,     0,
-     2,     1,     2,     2,     2,     2,     1,     1,     1,     2,
-     1,     2,     9,     1,     0,     4,    14,     1,     1,     1,
-     3,     5,     1,     1,     1,     3,     1,     0,     1,     1,
-     1,     3,     0,     1,     1,     1,     1,     5,     3,     2,
-     1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
-     3,     3,     1,     3,     1,     1,     1,     1,     2,     3,
-     3,     4,     4,     1,     1,     1,     1,     0,     1,     2,
-     1,     1,     1,     0,     2,     2,     0,     7,     2,     1,
-     1,     1,     3,     1,     1,     1,     1,     1,     1,     2,
-     1,     3,     0,     6,    11,     1,     0,     2,     0,     1,
-     1,     3,     1,     6,     3,     2,     2,     0,     1,     2,
-     0,     4,    11,     2,     0,     3,     2,     1,     3,     2,
-     1,     0,     3,     1,     1,     1,     1,     4,     1,     1,
-     4,     6,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     3,     3,     3,     9,     1,     0,     1,
-     0,     0,    13,     1,     1,     1,     3,     3,     1,     1,
-     2,     3,     2,     1,     1,     1,     1,     3,     1,     1,
-     1,     1,     1,     1,     0,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     1,     1,     0,     5,     2,     6,
-     3,     3,     0,     3,     0,     1,     1,     0,     1,     1,
-     0,     3,     4,     3,     5,     1,     0,     1,     0,     3,
-     0,     1,     3,     3,     1,     1,     1,     1,     1,     1,
-     4,     4,     2,     1,     7,     4,     3,     0,     3,     1,
-     2,     4,     3,     8,     7,     6,     1,     0,     6,     7,
-     1,     1,     1,     2,     0,     2,     0,     2,     2,     2,
-     4,     3,     1,     3,     4,     3,     8,     4,     0,     1,
-     0,     1,     0,     1,     3,     1,     0,     3,     0,     1,
-     3,     2,     2,     2,     2,     1,     1,     0,     4,     4,
-     2,     4,     2,     0,     1,     1,     1,     1,     1,     1,
-     0,     1,     1,     3,     3,     0,     2,     0,     3,     0,
-     2,     0,     2,     0,     3,     1,     1,     3,     1,     3,
-     2,     1,     1,     4,     2,     2,     1,     4,     4,     3,
-     2,     2,     2,     1,     1,     0,     1,     0,     4,     2,
-     3,     1,     1,     2,     0,     1,     2,     3,     4,     0,
-     3,     4,     0,     2,     2,     1,     1,     1,     1,     1,
-     1,     1,     2,     2,     2,     2,     1,     2,     1,     1,
-     3,     0,     5,     3,     0,     5,     3,     0,     4,     1,
-     4,     2,     1,     3,     2,     1,     0,     3,     0,     2,
-     0,     1,     2,     1,     2,     1,     1,     1,     1,     1,
-     1,     3,     0,     1,     3,     3,     3,     3,     3,     3,
-     3,     0,     1,     1,     7,     8,     8,     7,     7,     3,
-     3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     2,     1,     1,     1,     2,     2,     2,
-     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-     2,     2,     2,     3,     6,     3,     3,     3,     4,     2,
-     2,     4,     3,     4,     1,     1,     4,     1,     4,     1,
-     1,     4,     4,     4,     4,     5,     5,     5,     4,     2,
-     3,     2,     4,     3,     4,     3,     4,     5,     6,     0,
-     6,     0,     7,     5,     5,     5,     5,     5,     5,     5,
-     5,     5,     6,     6,     6,     6,     6,     6,     6,     6,
-     6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
-     3,     3,     2,     1,     2,     1,     1,     2,     2,     2,
-     3,     3,     3,     3,     3,     2,     2,     2,     3,     6,
-     3,     3,     2,     2,     3,     4,     1,     1,     4,     1,
-     4,     1,     1,     4,     4,     5,     5,     5,     4,     4,
-     6,     0,     1,     3,     3,     3,     0,     1,     1,     1,
-     3,     0,     2,     1,     2,     3,     3,     3,     3,     3,
-     2,     3,     6,     3,     3,     2,     2,     1,     3,     4,
-     4,     4,     5,     5,     5,     4,     3,     0,     2,     0,
-     2,     0,     3,     2,     1,     1,     1,     1,     3,     1,
-     1,     1,     3,     5,     6,     4,     2,     1,     4,     2,
-     0,     2,     1,     0,     3,     3,     1,     3,     3,     3,
-     1,     1,     4,     2,     3,     3,     1,     3,     1,     3,
-     1,     1,     0,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
-     2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1
-};
-
-static const short yydefact[] = {     0,
-     0,   417,   863,   417,   104,     0,     0,     0,   417,   298,
-     0,     0,     0,   417,   497,     0,     0,   417,     0,    96,
-   437,     0,     0,     0,   491,   298,     0,     0,     0,     0,
-   437,     0,     1,     2,    14,     6,    20,    44,    45,    46,
-     5,     7,     8,     9,    10,    11,    12,    18,    13,    19,
-    16,    17,    23,    24,    35,    25,    21,    29,    33,    30,
-    32,    31,    34,    37,   449,    26,    27,    38,    39,    40,
-    41,    42,    15,    43,    22,    36,   448,   450,    28,   447,
-   446,   445,   499,   483,     0,     0,   416,   415,   411,   890,
-   891,   618,   902,   619,   911,   914,   915,   918,   620,   617,
-   921,   926,   928,   930,   932,   933,   935,   936,   941,   621,
-   948,   949,   950,   951,   616,   957,   952,   954,   892,   893,
-   894,   895,   896,   897,   898,   899,   900,   901,   903,   904,
-   905,   906,   907,   908,   909,   910,   912,   913,   916,   917,
-   919,   920,   922,   923,   924,   925,   927,   929,   931,   934,
-   937,   938,   939,   940,   942,   943,   944,   945,   946,   947,
-   953,   955,   956,   888,   889,    88,   862,   412,   102,   103,
-   326,     0,     0,     0,   272,   273,     0,     0,   271,     0,
-     0,   244,     0,     0,     0,     0,   475,   871,     0,     0,
-     0,   357,     0,   354,     0,     0,     0,   355,     0,     0,
-   356,     0,     0,   413,   297,   296,   295,   294,   304,   310,
-   317,   315,   314,   316,   318,     0,   311,   312,     0,     0,
-   414,   496,   494,     0,   431,   948,     0,     0,   996,   997,
-     0,   865,   864,   410,     0,   870,    95,     0,   436,     0,
-     0,   407,   883,   419,   873,   490,     0,   304,   406,   948,
-     0,    78,   948,     0,    75,   409,   408,   439,     0,     0,
-     4,     0,     0,     0,   493,   530,   521,   884,    51,    51,
-     0,     0,   421,   866,     0,   872,     0,   230,     0,     0,
-   275,   274,   278,   372,   370,   371,   365,   366,   367,   368,
-   369,   269,     0,   277,   276,     0,   472,   473,   471,     0,
-   565,   290,   522,   523,    49,     0,     0,   432,     0,   363,
-     0,   364,     0,   291,   353,   301,   302,   303,   882,     0,
-   307,   299,   309,     0,     0,     0,     0,     0,   844,     0,
-   607,   607,     0,   685,   686,   688,   690,   598,   902,     0,
-     0,   880,   592,   632,     0,   607,     0,     0,   634,   595,
-     0,     0,   948,   949,     0,   879,   691,   603,   954,     0,
-   888,     0,   782,   875,     0,   861,     0,     0,     0,     0,
-     0,     0,   570,   576,   580,   578,   579,   600,   577,   889,
-   859,   655,   633,   744,   782,   489,   857,     0,     0,   656,
-   878,   874,   876,   657,   430,    69,   429,     0,     0,     0,
-     0,     0,     0,    98,   444,   565,   463,   307,    79,     0,
-    76,     0,   438,   434,   482,     3,   484,   486,     0,   492,
-     0,     0,   514,   520,     0,     0,    54,    54,     0,   249,
-   248,     0,   423,     0,     0,   382,   228,   224,     0,     0,
-   270,     0,   474,     0,     0,   462,     0,     0,   360,   358,
-   359,   361,     0,   246,   300,     0,     0,   292,     0,   313,
-     0,     0,     0,   451,   454,     0,   495,     0,   782,     0,
-     0,   843,     0,   606,   602,   609,     0,     0,     0,     0,
-   585,   584,     0,   787,     0,   583,   618,   619,   620,   616,
-   624,   615,   607,   605,     0,   743,     0,     0,     0,   586,
-   792,   818,     0,   613,     0,     0,   614,   623,   582,   581,
-   575,   612,   680,     0,   881,   658,   659,   673,   671,   672,
-     0,     0,     0,   633,   877,     0,   574,     0,     0,     0,
-     0,   710,     0,     0,     0,     0,   700,   702,   681,     0,
-     0,     0,     0,     0,     0,     0,   660,     0,   654,   104,
-     0,   534,     0,     0,     0,    73,    74,    66,    72,     0,
-    71,    64,    70,    65,   852,   782,   534,   851,     0,   782,
-   433,     0,     0,   342,   468,   293,    80,    77,   441,   498,
-   500,   508,   485,   532,     0,     0,   481,   381,   381,   381,
-   381,    81,     0,    52,    53,    57,    57,   418,   254,   253,
-   255,     0,   250,     0,   425,   589,   902,   587,   590,   347,
-     0,   886,   887,   348,   885,   352,     0,     0,   232,     0,
-     0,     0,     0,   229,   107,     0,     0,     0,   283,     0,
-   280,     0,     0,   564,   524,   268,     0,     0,   373,   306,
-   305,     0,   453,     0,     0,   460,   782,     0,     0,   841,
-   838,   842,     0,     0,     0,   611,   783,     0,     0,     0,
-     0,     0,   789,   790,   788,     0,     0,     0,     0,     0,
-     0,     0,   604,     0,   669,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   782,     0,   794,   808,
-   820,     0,     0,     0,     0,     0,     0,   633,   825,     0,
-     0,   676,     0,     0,   573,     0,     0,   962,   964,   965,
-   967,   969,   970,   973,   974,   975,   982,   983,   984,   985,
-   989,   990,   991,   992,   995,   959,   960,   961,   963,   966,
-   968,   971,   972,   976,   977,   978,   979,   980,   981,   986,
-   987,   988,   993,   994,   958,   858,   741,     0,   767,   768,
-   770,   772,     0,     0,     0,   773,     0,     0,     0,     0,
-     0,     0,     0,     0,   782,     0,   746,   747,     0,   706,
-     0,   701,   704,   678,     0,   712,     0,   742,     0,     0,
-     0,   677,     0,     0,   668,     0,   670,     0,     0,     0,
-   666,     0,     0,     0,   667,     0,     0,     0,   661,     0,
-     0,     0,   662,     0,     0,     0,   665,     0,     0,     0,
-   663,     0,     0,     0,   664,   674,   491,   856,     0,   565,
-   860,   845,   847,   868,     0,   683,     0,   846,   935,    68,
-   854,     0,   565,     0,     0,    97,    91,    90,     0,   467,
-     0,     0,   435,     0,   506,   507,     0,   502,     0,   529,
-   516,   517,   511,   515,   519,   513,   518,     0,   380,     0,
-     0,     0,   107,    87,     0,     0,     0,   379,    50,    55,
-    56,    61,    61,     0,     0,   428,     0,   420,   588,     0,
-   346,   351,   345,     0,     0,     0,   231,   241,   233,   234,
-   235,   236,     0,     0,   106,   108,   109,   158,     0,   226,
-   227,     0,     0,     0,     0,     0,   279,   329,   477,     0,
-   362,     0,     0,   319,   323,   321,     0,     0,     0,   461,
-   324,     0,     0,   837,     0,     0,     0,     0,   601,     0,
-     0,   836,   687,   689,     0,   597,   692,   693,     0,   591,
-   626,   627,   628,   629,   630,   631,   625,     0,     0,   594,
-     0,   792,   818,     0,   806,   795,   801,     0,   694,     0,
-   807,     0,     0,     0,     0,     0,     0,   793,     0,     0,
-   822,   695,   622,     0,   824,     0,     0,     0,   699,     0,
-   782,     0,     0,   643,   645,   644,   646,   647,   648,   649,
-   650,   651,     0,   640,     0,   568,   573,   599,     0,     0,
-     0,   792,   818,     0,   763,   748,   749,   758,   756,   757,
-     0,     0,   764,     0,     0,     0,     0,   750,     0,   745,
-     0,     0,   705,   703,   707,     0,     0,   679,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   533,   537,   539,
-   536,   542,   566,   526,     0,   682,   684,    67,   850,   469,
-   855,     0,    93,    94,   100,    92,   466,     0,     0,   442,
-   501,   503,   504,   505,   531,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    82,     0,    84,     0,   378,     0,
-    63,    63,     0,   251,   427,   422,   426,   431,   349,     0,
-     0,   350,   402,   403,   400,   401,     0,   242,     0,     0,
-   221,     0,   223,   117,   113,   222,     0,     0,   239,   366,
-   287,   237,   238,   284,   286,   288,   285,   282,   281,     0,
-     0,     0,   470,   375,   376,   374,   320,     0,   308,   452,
-   459,     0,   456,     0,   840,   834,     0,   608,   610,   785,
-   784,     0,   786,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   804,   791,   805,   796,   797,   800,   798,   799,
-   802,   809,     0,   819,     0,   817,   696,   697,   698,   823,
-     0,   780,     0,     0,   653,   652,     0,     0,   573,     0,
-   569,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   761,   708,   762,   751,   752,   755,   753,   754,   759,   765,
-     0,   826,     0,   827,   828,   878,     0,     0,     0,     0,
-   714,     0,     0,   722,     0,     0,   720,     0,     0,   721,
-     0,     0,   715,     0,     0,   716,     0,     0,   719,     0,
-     0,   717,     0,     0,   718,   488,   556,     0,   543,     0,
-     0,   558,   555,   558,   556,   554,   558,   545,   547,     0,
-     0,   541,   567,     0,   528,   849,   848,   853,     0,    89,
-   465,     0,     0,   440,   510,   509,   512,     0,     0,   166,
-     0,     0,     0,     0,     0,     0,     0,     0,   165,   167,
-     0,     0,     0,    83,     0,     0,     0,     0,     0,    48,
-    47,   258,     0,     0,   424,   344,     0,     0,   157,   105,
-     0,   101,   225,   227,     0,   111,     0,     0,     0,     0,
-     0,     0,   124,   110,   112,   115,   119,     0,   289,   240,
-   867,   328,     0,     0,     0,   476,     0,     0,   839,   675,
-   596,   835,   593,     0,   811,   812,     0,     0,     0,   816,
-   810,   821,   782,     0,     0,     0,     0,   642,     0,   571,
-   573,     0,   769,   771,   774,   775,     0,     0,     0,   779,
-   766,   711,     0,   709,   830,     0,   831,   832,   732,   723,
-   740,   731,   738,   729,   739,   730,   733,   724,   734,   725,
-   737,   728,   735,   726,   736,   727,     0,   535,   538,     0,
-   557,   551,   552,     0,   553,   546,     0,   540,     0,     0,
-   487,     0,   464,   443,     0,   190,   191,   168,   179,   177,
-   178,     0,     0,     0,     0,     0,     0,     0,     0,   193,
-   195,   192,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   159,     0,     0,     0,   160,    86,     0,   377,    60,
-    59,     0,   257,     0,     0,   252,     0,   565,   399,     0,
-   116,     0,     0,     0,   150,   151,   153,   155,   121,   156,
-     0,     0,     0,     0,     0,     0,   122,     0,   129,   123,
-   125,   458,   114,   243,     0,   330,   331,   333,   338,     0,
-   868,   478,     0,   479,   322,     0,     0,   813,   814,   815,
-   781,   635,     0,   638,   639,     0,   572,     0,   776,   777,
-   778,   829,   713,     0,     0,   550,     0,     0,   525,   527,
-    99,     0,   182,   188,     0,   207,     0,   198,     0,   194,
-   197,   186,     0,     0,     0,   189,   185,   174,   175,   176,
-   169,   170,   173,   171,   172,   180,   183,     0,   164,     0,
-   161,    85,     0,    62,   259,   260,   256,     0,     0,     0,
-     0,     0,     0,   118,     0,     0,     0,   148,   130,   141,
-   139,   140,     0,   149,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   210,   345,     0,     0,     0,
-   341,     0,   480,   455,   803,   636,   637,   760,   833,   544,
-   549,     0,     0,   548,     0,     0,     0,   206,   200,   196,
-   199,     0,     0,   187,     0,   184,     0,    58,     0,   343,
-   405,   398,   220,   120,     0,     0,     0,   144,   147,   136,
-   137,   138,   131,   132,   135,   133,   134,   142,   145,     0,
-   128,     0,     0,   213,   325,   332,   337,   336,     0,   869,
-   335,   339,     0,   560,     0,     0,   203,     0,   201,     0,
-     0,   163,   458,   263,   404,     0,     0,   152,   154,     0,
-   146,   457,   208,   209,     0,   126,   212,   340,   338,     0,
-   562,   563,   181,   205,   204,   202,   210,   267,   264,   265,
-     0,   261,   266,   384,     0,     0,   383,   386,   397,   394,
-   396,   395,   385,     0,   127,     0,     0,   211,   341,     0,
-   559,   213,     0,   247,     0,   389,   390,     0,   143,   217,
-     0,     0,   214,   215,   334,   561,   162,   262,   387,   391,
-   393,   388,   216,   218,   219,   392,     0,     0,     0
-};
-
-static const short yydefgoto[] = {  1747,
-    33,    34,    35,    36,    37,   427,   596,   872,  1460,  1101,
-  1310,    38,   562,   558,    39,    40,    41,   592,    42,    43,
-   839,  1075,   238,   573,  1280,    44,   183,   894,   895,   896,
-  1334,  1335,  1326,  1336,  1337,  1650,  1487,   897,   898,  1558,
-  1297,  1617,  1618,  1654,  1686,  1687,  1733,  1322,    45,   626,
-   899,   900,    46,   437,   624,  1131,  1132,  1133,    47,   184,
-    48,    49,   432,   602,   603,  1313,  1464,  1567,  1701,  1702,
-    50,    51,   292,   185,   629,   441,   630,   631,  1134,    52,
-    53,   209,   321,   458,    54,   216,   217,   218,   915,  1149,
-    55,    56,   186,  1141,  1495,  1496,  1497,  1498,  1601,  1661,
-    57,    58,  1111,   435,   611,   883,   884,    59,   203,    60,
-   450,    61,    62,  1135,   294,   638,    63,  1098,   865,    64,
-   617,  1707,  1725,  1726,  1727,  1468,  1117,  1676,  1709,    66,
-    67,    68,    89,    69,    70,    71,   605,   878,  1106,   396,
-    72,    73,    74,   240,   414,   843,  1079,    75,    76,  1710,
-   464,  1596,   645,   646,  1711,    79,   841,  1712,    81,   300,
-  1143,  1346,  1504,    82,    83,    84,   552,   247,   421,   224,
-   266,   580,   581,   848,   587,   853,   856,   425,   302,   303,
-  1275,  1421,   423,   850,   820,  1058,  1059,  1060,  1258,  1061,
-  1268,  1269,  1270,  1412,  1614,  1690,  1691,   446,  1062,   527,
-   996,   372,   373,   374,   375,   376,   612,   486,   500,   481,
-   377,   378,   475,   656,   929,   379,   380,   504,   492,   657,
-   382,   522,   523,   993,  1198,   383,   769,  1027,   764,   515,
-   699,   666,   667,   685,   686,   692,   971,  1186,   700,  1223,
-  1224,  1386,  1387,   384,   650,   651,   925,   468,   385,   822,
-   567,   568,   386,   387,   166,   470,   273,  1342,   823,  1662,
-   235,   304,   389,   244,   390,   391,   392,   393,   269,   614,
-   394,   746,   233
-};
-
-static const short yypact[] = {  2142,
-   100,   261, 15632,   261,  2466, 15632,    44,  1338,   261,   214,
-    86,   138,    86,   261,   255, 14232, 14407,   261, 15632,   102,
-    79,   135, 14407,   109,   231,   214, 14407, 14757, 14932, 12531,
-    79,   -45,  2142,   176,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   440,-32768, 14407,   184,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,   184, 15632, 15632,-32768,-32768, 15632, 15632,-32768, 15632,
- 14407,-32768,   295,   247, 12181,   260,     5,-32768, 14407, 15632,
-   184,-32768, 15632,-32768, 15632, 15632, 15632,-32768,  1108,   379,
--32768, 15632, 15632,-32768,-32768,-32768,-32768,-32768,    39,   367,
--32768,-32768,-32768,-32768,-32768,   375,   268,-32768, 14407,   402,
--32768,-32768,   408,  7288,     4,   371,   421,   -62,-32768,-32768,
-   405,-32768,-32768,-32768,   436,-32768,-32768, 14407,-32768,    51,
- 15632,-32768,-32768,-32768,-32768,-32768, 14407,    39,-32768,   403,
-   507,-32768,   410,   516,-32768,-32768,-32768,   411,   -28,   359,
--32768,   -45,   -45,   585,   595,   555,   381,-32768,   477,   477,
-   627,   275,   499,-32768,   401,-32768,   638,-32768, 14407,   591,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   441,-32768,-32768, 15632,   564,-32768,-32768,   633,
-   546,-32768,   443,-32768,-32768,   605, 12706,-32768,   401,-32768,
-   465,-32768,   109,-32768,-32768,-32768,-32768,-32768,-32768,   496,
-   365,-32768,-32768, 15632,   145,    -2, 15632, 15632, 13447,   471,
-   548,   548,   476,-32768,   488,   489,-32768,   494,   648,   511,
-   519,-32768,   579,   259,   730,   548,  8168,   584,   544,   587,
-   597,   603,   -85,   -61,   606,-32768,-32768,-32768,   110, 16222,
-   127,  8168,   551,-32768,  8168,-32768,  8168,  8168,  8168,  8168,
-  8388,   109,   565,-32768,-32768,-32768,-32768,   608,-32768,   149,
-   826,-32768, 11554,-32768,   551,   -19,-32768,   617,   613,-32768,
-   619,-32768,-32768,   161,-32768,-32768,-32768,    37,   781,     7,
-     7, 12356, 14407,   719,-32768,   546,   810,   365,-32768,   798,
--32768,   799,-32768, 14407,-32768,-32768,-32768,-32768,  8168,-32768,
-   -45,   740,   242,-32768,    52,   681,   171,   171,   -45,-32768,
--32768,   133,   702,  4875,   684,-32768,   685,   644,   109, 12006,
--32768,   793,-32768,   835,  8168,-32768, 15632, 14407,-32768,-32768,
--32768,-32768, 15107,-32768,-32768, 15632, 15632,-32768,   768,-32768,
-   759,   656, 11411,-32768,-32768,   848,-32768,   771,   551,   672,
-   619,   676,  8168,-32768,-32768,   893,  8388,   496,   496,   496,
--32768,-32768,   801,   690,   496,-32768,   788,   791,   796,   802,
--32768,-32768,   548,-32768,   544,  1439,  8168,  8168,   496,-32768,
- 10368,  8388,   822,-32768,  5076,   648,-32768,   779,-32768,-32768,
--32768,-32768,    71,  8168,-32768,   708,   708,   708,   708,   708,
-   712,   713,   683,  2353,-32768,  -130,-32768,   496, 13648,  8168,
-  9048,-32768,   319,  8168,    66,  8168,-32768,-32768,  8608,  5748,
-  5968,  6188,  6408,  6628,  6848,  7068,  8828, 16164,-32768,   166,
-  7288,   897, 12881,  3775, 15632,-32768,-32768,-32768,-32768, 15807,
--32768,-32768,-32768,-32768,-32768,   551,   -16,-32768,   733,   211,
--32768,   777,    15,-32768,   755,-32768,-32768,-32768,   732,   734,
--32768,  3097,-32768,   883,    16,   264,-32768,    47,   952,   952,
-   952,-32768,   184,-32768,-32768,   182,   182,-32768,-32768,-32768,
--32768,   886,   891,   767,   827,-32768,   896,-32768,-32768,-32768,
-   217,-32768,-32768,-32768,-32768,   794,   907,  -127,-32768,  -127,
-  -127,  -127,  -127,-32768, 14057,   992,   833,   780,   783,   257,
--32768, 14407,   -45, 11554,-32768,-32768,   765,   775,   778,-32768,
--32768, 14582,-32768,  7288,   290,-32768,   551, 14582,  8168,     6,
--32768,-32768, 15632,  3243,   903,   996,-32768,   -77,   787,   789,
-   311,   790,-32768,-32768,-32768,   806,   974,   808,   170,    -7,
-   919,   956,-32768,  2859,   924,   334,   811,   815,   819,   820,
- 10368, 10368, 10368, 10368,   809,   404,   551,   838,-32768,   161,
-     0,   842,   912,  7508,  8388,  7508,  7508,  3288,   -87,   843,
-  3178,-32768,   582,  8168,   851,   800,   850,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,  1439,   854,-32768,   855,
-   856,-32768,   859,   860,   861,-32768,  9048,  9048,  9048,  9048,
-  9048,  9048,  8168,   123,   551,   862,-32768,   161,   865,-32768,
-   228,-32768,-32768,  1021,  9048,-32768,  8168,  1628,   866,   867,
-  7728,    71,   869,   870,-32768,  7728,   924,   871,   872,  7728,
-  1860,   875,   879,  7728,  1860,   880,   888,  7728,   288,   889,
-   900,  7728,   288,   905,   906,  7728,   708,   915,   916,  7728,
-   708,   917,   918,  7728,   708,-32768,   231,-32768, 11236,   546,
--32768,   908,-32768,-32768,   885,-32768,     3,   908, 15632,-32768,
--32768, 13447,   546, 13056,   938,-32768,-32768,-32768,   221,   846,
-   964, 15632,-32768,  8168,-32768,-32768,   -14,-32768, 15632,-32768,
--32768,-32768,   -95,-32768,-32768,   988,-32768,   927,-32768,  1095,
-  1097,   929, 14057,-32768, 15632, 15632, 15632, 15632,-32768,-32768,
--32768,  1110,  1110, 14407,   133,     8,   949,-32768,-32768, 13856,
--32768,-32768,  1032, 13856,   132,   496,-32768,-32768,-32768,-32768,
--32768,-32768, 15632,   342,-32768,-32768,-32768,-32768,   350,-32768,
- 16106,   801, 12181, 11798, 11798, 12006,-32768,  1049,  1132, 15632,
--32768, 15282, 15632,-32768,  1045,-32768,   364, 15632,   -37,-32768,
--32768,  3414,  8388,-32768,  1142, 16164, 15632, 15632,-32768,  8168,
-  8388,-32768,-32768,-32768,   496,-32768,-32768,-32768,  8168,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,  8168,   496,-32768,
- 10368, 10368,  8388,  5302,   432,   950,   950,   547,-32768, 10368,
- 10588, 10368, 10368, 10368, 10368, 10368, 16164,-32768,  3995,  8388,
-  1136,-32768,-32768,   951,   -87,   953,   962,  8388,-32768,  8168,
-   551,   957,  1130,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    27,  2977,   167,-32768,   851,-32768,  9048,   496,
-   496, 10368,  8388,  5528,   509,   966,   966,   966,   966,   966,
-   427,  9048,  9268,  9048,  9048,  9048,  9048,  9488, 16164,-32768,
-  4215, 15992,-32768,-32768,-32768,   187,   965,  1021,   801,   801,
-   967,   801,   801,   971,   801,   801,   973,   801,   801,   975,
-   801,   801,   980,   801,   801,   981,   801,   801,   983,   801,
-   801,   984,   801,   801,   985, 14407, 14407,-32768,   976,   821,
--32768, 15457,   999,  1170, 13231,-32768,-32768,-32768,-32768,-32768,
--32768,  8388,-32768,-32768,  1096,-32768,  1013,  1015,   388,-32768,
--32768,-32768,-32768,-32768,   993,   264,   264,    16, 10808,   994,
-   995, 15632,   398, 16106,-32768,    31,-32768,  1111,-32768,  1179,
-  1025,  1025,  1187,  1147,-32768,-32768,-32768,     4,-32768,   441,
-  1235,-32768,-32768,-32768,-32768,-32768,  1118,-32768,   236, 14057,
-  1073, 15632,-32768,  1151,   473,-32768,  1078, 15632,-32768,   481,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1038,
-  1017,   173,-32768,-32768,-32768,-32768,-32768,  1198,-32768,-32768,
--32768,  1018,-32768,  8388,-32768,-32768,  1019,-32768,-32768, 11554,
--32768,  1020, 11554,  1234,  1022,   480,  1023,  1024,  7508,  7508,
-  7508,  1027,-32768,   737,   432,   492,   492,   950,   950,   950,
--32768,-32768,   148,   -87,  8388,-32768,-32768,-32768,-32768,   -87,
-  3488,-32768,   801,  1026,-32768,-32768,  7948,  1029,   851,  1034,
--32768,   534,  1033,  1035,  1036,  1037,  7508,  7508,  7508,  1039,
--32768,   972,   509,   561,   561,   966,   966,   966,-32768,-32768,
-   154,-32768,  1040,  1043,-32768,-32768,  9048, 15992,  1042,  1052,
--32768,  1053,  1055,-32768,  1059,  1060,-32768,  1063,  1064,-32768,
-  1065,  1066,-32768,  1067,  1068,-32768,  1070,  1071,-32768,  1074,
-  1075,-32768,  1076,  1077,-32768,-32768,   795,  1081,-32768, 14407,
-  1192,  1176,-32768,  1176,   510,-32768,  1176,   821,-32768,  1214,
- 13648,-32768,-32768,  1272,  1260,-32768,-32768,-32768,  1162,-32768,
--32768,  1114, 15632,-32768,-32768,-32768,-32768,  1087, 10808,-32768,
- 10808, 10808, 10808, 10808, 10808, 10808,  1549,  1100,-32768,  1103,
- 15632, 15632,   407,-32768,  1306,  1307, 15632,   184,  1135,-32768,
--32768,  1184,  1301,   133,-32768,-32768,   109, 14407,-32768,-32768,
-  1109,-32768,-32768,-32768,  1280,-32768,  1112, 15632,  9708,  1264,
-  1283, 15632,-32768,-32768,   473,-32768,-32768,   109,-32768,-32768,
--32768,-32768, 15632,  1262,  1265,-32768,  1263,  7288,-32768,-32768,
--32768,-32768,-32768, 16164,-32768,-32768,  1117,  1120,  1121,-32768,
--32768,   -87,   551,  1124,   801,  1125,  1128, 11554,   801,-32768,
-   851, 16164,-32768,-32768,-32768,-32768,  1131,  1133,  1137,-32768,
--32768,-32768, 16018,   972,-32768,  1140,  1134,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,  1289,-32768,-32768, 14407,
--32768,-32768,-32768,  1312,-32768,-32768, 14407,-32768,  8388,  8168,
--32768,   109,-32768,-32768, 10808, 11579,   445,  1138,  1138,  1138,
-  1138,  1774, 10808, 16018,  1148,   419, 10808,    92, 10808,-32768,
--32768, 11028, 10808, 10808, 10808, 10808, 10808, 10808, 10808, 10808,
- 16164,-32768,  4655,   425,   462,-32768,-32768,  9928,-32768,  1150,
--32768,  1160,-32768,   251,  1286,-32768,  1319,   546,  1161, 15632,
--32768, 10808,    56,  1155,-32768,  1157,  1158,-32768,-32768,-32768,
-  9928,  9928,  9928,  9928,  9928,  9928,   816,  1159,-32768,-32768,
--32768,  1163,-32768,-32768,  1166,  1172,-32768,-32768,    -4,  1174,
-  1103,-32768, 15632,-32768,-32768,   485,  1171,-32768,-32768,-32768,
--32768,-32768,  1175,-32768,-32768,  1177,-32768,  1178,-32768,-32768,
--32768,-32768,-32768, 16018, 14407,-32768, 14407,     1,   -87, 11554,
--32768, 11454,-32768, 11579,  1393,-32768, 16018,-32768,   308,-32768,
--32768,  2225, 16018,  1180, 10808,  2420,   445,  1685, 13274, 13274,
-   588,   588,  1138,  1138,  1138,-32768,-32768,   527, 11625,  1294,
--32768,   816,   184,-32768,-32768,-32768,-32768, 15632,   109,  1240,
- 15632,  1181,  2163,-32768,  9928,   496,   496,   711,  1185,  1185,
-  1185,  1185,   797, 10148,  9928,  9928,  9928,  9928,  9928,  9928,
-  9928,  9928, 16164,  4435, 15632,  1337,  1032, 15632, 16164, 16164,
-   -26, 15632,  1186,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,  8168,  1190,-32768, 16164, 16018,   539,-32768,-32768,-32768,
--32768,  1410, 16018,  2225, 10808,-32768, 15632,-32768,  1194,-32768,
-  1254,-32768,-32768,-32768,   466,  1195,  1206,-32768,   711,   816,
-   839,   839,   612,   612,  1185,  1185,  1185,-32768,-32768,   542,
-   816,   545,   103,  1340,-32768,-32768,-32768,-32768,  1232,-32768,
--32768,-32768,   563, 11554, 15632,  1209,-32768, 16018,-32768, 16018,
-   581, 11625,  1163,   346,-32768,    74, 16164,-32768,-32768,  9928,
--32768,-32768,-32768,-32768,    48,-32768,  1340,-32768,    -4,   590,
--32768,-32768,-32768,-32768,-32768,-32768,  1337,-32768,-32768,-32768,
-   593,-32768,-32768,-32768,   279,   115,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  1212,   816,    45,    45,-32768,   -26, 15632,
--32768,  1340,   346,-32768,  1228,   279,  1237,  1226,-32768,-32768,
-  1470,    21,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1241,
--32768,-32768,-32768,-32768,-32768,-32768,  1486,  1489,-32768
-};
-
-static const short yypgoto[] = {-32768,
--32768,  1457,-32768,-32768,-32768,  1221,  1069,   895,-32768,   620,
-   392,-32768,  1094,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   946,   639,   383,   640,
--32768,-32768,-32768,   169,    33,-32768,  -409,-32768,  -573,-32768,
-  -311,  -114, -1393,  -186,  -210,  -174,  -200,-32768,-32768,-32768,
--32768,   399,-32768,-32768,-32768,-32768,-32768,   313,-32768,-32768,
--32768,-32768,-32768,-32768,  -858,-32768,-32768,-32768,-32768,  -209,
--32768,-32768,-32768,-32768,  -179,   413,-32768,   622,   621,-32768,
--32768,  1499,  1281,  1122,-32768,  1518,-32768,  1208,   890,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   -57,  -153,  -182,
--32768,-32768,   -54,  1236,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  1345,  -191,-32768,-32768,-32768,    36,-32768,
--32768,-32768,  -159,-32768, -1578,-32768,-32768,-32768,    29,-32768,
--32768,-32768,   474,-32768,-32768,-32768,-32768,-32768,-32768,   442,
--32768,-32768,-32768,  1517,-32768,-32768,   700,-32768,  1313,    30,
--32768,  -119, -1048,   637,    32,-32768,-32768,    34,-32768,-32768,
--32768,-32768,-32768,  -325,   -30,   928,-32768,   739,-32768,-32768,
--32768,-32768,   714,-32768,-32768,   472,  -517,-32768,  -197,   -43,
--32768,-32768,-32768,-32768,   997,-32768,-32768, -1045,-32768,   504,
--32768,   298,   302,  -904,-32768,-32768,  -157,  -397,-32768,-32768,
-  -979,  -506,  1213,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,  -403,  -266,-32768,-32768,-32768,  1191,-32768,-32768,  -203,
--32768,   372,-32768,-32768,-32768,  2355,-32768,-32768,  -638,  -357,
-  -467,-32768,-32768,  -846,  -629,  -836,-32768,-32768,  -611,-32768,
--32768,-32768,-32768,-32768,-32768,   925,-32768,-32768,  -219,  1041,
--32768,   742,  -633,  1028,-32768,   286,  1380,-32768, -1026,   -82,
-  -167,    78,   926,-32768,  2165,  1392,    -6,   -17,  -168,  -438,
-    -3,   307,-32768
-};
-
-
-#define        YYLAST          16439
-
-
-static const short yytable[] = {   167,
-   465,   259,   188,   270,   314,   293,   245,   312,   574,   658,
-   917,  1257,   228,   232,   864,   236,  1104,  1201,   262,   232,
-   381,   851,   305,   232,   252,   255,   232,   549,    65,    77,
-   613,    78,  1195,    80,   691,  1196,   461,   263,  1277,   819,
-  1535,   816,   395,  1303,   316,   561,  1105,   930,   550,  1599,
-   923,   955,   956,   957,   958,   970,   588,   930,   589,  1744,
-  1730,    65,    77,   400,    78,   476,    80,   858,   297,    15,
-   837,   859,   944,   406,  1305,   556,  1327,    15,   775,   494,
-   503,   232,   974,   187,   976,   977,   827,  1716,     6,   319,
-     7,   210,   319,  1612,  1329,   590,  1086,  1708,  1152,   189,
-   886,   860,   265,   598,  1543,  1167,   945,   705,  1659,   469,
-  1745,   652,    15,     7,   557,    12,  1168,   298,  1005,  1006,
-  1007,  1008,  1009,  1010,   317,   211,   459,   776,   442,   466,
-  1012,  1731,  -614,   462,   930,  1613,  1026,   930,    12,   533,
-   838,   318,   777,  1330,  1087,   649,  1306,  1740,   861,  1622,
-   212,  -614,   931,  1544,     7,  1205,  -623,  1331,   299,  1683,
-  1732,   401,   931,  1332,   932,    15,  1206,   521,  1545,   188,
-   188,  1113,   599,   274,   276,  -623,   188,   232,   862,    12,
-  1717,   295,   566,    17,   211,   232,   188,  1333,    15,   188,
-  1660,   188,   274,   276,  1227,    32,  1114,   600,   188,   188,
-   213,  1684,   322,    32,  1082,   219,    17,   397,   831,   212,
-  1083,  1084,   835,   415,  1409,   232,   205,    85,   214,  1370,
-   551,   243,  1667,   832,   243,   243,   673,   975,  1600,    15,
-   941,   417,   418,    86,   232,   319,   852,   236,   463,   931,
-    27,   322,   931,   232,  1067,   537,  1115,    17,   591,   942,
-   271,   272,  1454,  1455,   243,   237,   858,   277,   319,   213,
-   222,   538,  1704,    27,  1116,   601,   320,  1197,    65,    77,
-   306,    78,   307,    80,  1694,   232,  1695,   214,  1023,  1344,
-   315,   687,   930,   943,   169,   170,   215,   863,   930,   920,
-   860,    32,   236,   239,   487,   454,   223,   543,   544,   545,
-   546,   547,   231,   188,    27,  1345,   241,   909,   242,   548,
-  1705,   765,   249,   455,  1706,   257,  1499,  1024,     7,   488,
-   188,  1166,   206,   188,   467,   472,   243,  -582,   594,   968,
-  1174,  1175,  1176,  1177,  1178,  1179,  1180,   861,   489,   100,
-   870,  1013,  1172,    12,  -581,   215,  -582,   381,   246,  1014,
-  1015,  1016,  1017,  1018,   525,    32,   595,  1025,  1619,  1413,
-  1202,  1019,  1415,  -581,  1526,   207,  -612,   862,   871,   770,
-   267,  1528,   110,  1212,  1213,  1214,  1215,  1216,  1217,  1218,
-   559,   208,   563,   563,   451,  -612,   319,   931,    87,  1361,
-   583,  1517,  1210,   931,  1125,  1381,  -865,  1620,   570,   232,
-   268,  -872,   490,    88,  1199,  1013,   771,  1020,   772,   261,
-   232,    17,   279,  1014,  1015,  1016,  1017,  1018,   585,  1157,
-   456,   627,  1064,   430,   869,  1019,   457,   431,  1073,  1074,
-   615,   296,   259,   586,   530,  1070,   295,  1621,   243,   531,
-   381,  1109,   280,   188,   232,  1112,  -865,   514,   773,   188,
-  1565,   313,   188,   188,  1603,  1466,   880,  1566,   881,   647,
-  1181,   687,   687,   687,   687,   960,   278,   324,    27,  1538,
-   323,   659,   660,   661,   301,  1677,   613,   168,   668,  1610,
-   613,  1611,   204,   319,   855,   691,   262,   221,   532,  1354,
-   399,   234,   676,  1327,   327,   533,   906,   690,   907,  1328,
-   328,  1183,  1184,   534,   326,   263,  1539,   325,  1540,   388,
-  1190,  1329,  1219,  1436,   535,   398,   545,   546,   547,   706,
-   402,   707,   536,   404,   635,   745,   548,   768,   403,   918,
-   639,   919,   407,   640,   641,   691,   264,   765,   765,   765,
-   765,   765,   765,  1372,  1632,  1319,  1652,   409,  1541,   824,
-   935,   824,   936,  1221,   411,   765,   830,  1357,  1358,  1359,
-  1330,   413,  1698,   243,   438,  1699,  1262,  1700,  1285,  1286,
-   265,  1499,  1263,   949,  1331,   950,   410,   521,   854,   857,
-  1332,  1120,   521,  1121,  1264,   412,   521,  1125,  1384,  1122,
-   521,  1123,   416,  1153,   521,  1377,  1378,  1379,   521,   419,
-   420,   537,   521,   551,  1333,  1150,   521,  1266,   422,   424,
-   521,   888,   566,   888,   888,   888,   888,   538,   426,  1440,
-  1267,   901,   961,  1192,   866,   867,   868,  1283,   232,  1284,
-   962,   963,   964,   965,   966,  1441,   429,  1120,   916,  1304,
-   433,   434,   967,   982,   916,   539,   918,   436,  1456,   824,
-   540,   541,   542,   543,   544,   545,   546,   547,   962,   963,
-   964,   965,   966,   439,   918,   548,  1560,   444,  1211,   983,
-   967,  1446,  1447,  1448,  1449,  1450,   443,   690,   690,   690,
-   690,   440,   447,  1451,  1584,   474,   445,   569,   571,  1585,
-  1586,  1587,  1588,  1589,  1590,  1591,  1592,   448,   961,   579,
-   319,   918,  1340,  1561,  1593,   453,   962,   963,   964,   965,
-   966,   473,   312,   312,  1506,   319,   477,  1362,   967,  1155,
-   964,   965,   966,  1127,   551,    92,  1604,  1161,   478,   479,
-   967,   687,   687,   636,   480,  1014,  1015,  1016,  1017,  1018,
-   687,   687,   687,   687,   687,   687,   687,  1019,   482,   493,
-    94,   483,  1013,   768,   768,   768,   768,   768,   768,   484,
-  1014,  1015,  1016,  1017,  1018,   961,  1625,   498,  1626,    99,
-   100,   768,  1019,   962,   963,   964,   965,   966,  1668,   765,
-  1669,  1680,   687,  1681,   918,   967,  1682,   514,  1173,  1016,
-  1017,  1018,   765,   765,   765,   765,   765,   765,   765,  1019,
-   984,   526,   447,   110,  1689,   985,   986,   987,   988,   989,
-   990,   991,   992,   663,   664,   232,  1448,  1449,  1450,   485,
-  1668,  1076,  1696,  1261,   497,  1068,  1451,   499,   570,  1720,
-   824,  1721,  1723,   115,  1724,   529,   388,   501,   188,   618,
-  1590,  1591,  1592,   502,   619,   188,   505,  1507,   528,  1261,
-  1593,  1262,   553,   554,   555,   620,   560,  1263,  1107,  1094,
-   572,  1094,  1096,  1097,   188,  1518,   621,   622,  1278,  1264,
-   232,   575,   584,   577,   578,   593,   615,  1262,  1265,  1118,
-   615,   604,   616,  1263,   625,   632,  1136,  1136,   633,   188,
-   623,  -556,  1266,   642,   643,  1264,   644,   888,   888,   295,
-  1137,  1137,   295,   648,  1265,  1267,   188,   653,   188,  1147,
-   649,  -865,   655,   669,   647,    15,   670,   908,  1266,  1080,
-   503,   671,   704,  1158,  1159,  1407,  1080,   672,  1162,   388,
-   887,  1267,   889,   890,   891,   892,   531,  1588,  1589,  1590,
-  1591,  1592,  1165,   693,  1556,  1099,   548,   690,   690,  1593,
-  1349,  1529,   819,   702,   703,   961,   690,   690,   690,   690,
-   690,   690,   690,   962,   963,   964,   965,   966,   834,   836,
-  1119,   840,   842,   844,   849,   967,   859,  1426,   874,  1427,
-  1428,  1429,  1430,  1431,  1432,   532,   875,  1144,  1200,  1146,
-   876,   877,   533,  1203,  1204,   768,   879,   882,   690,   885,
-   534,   902,   903,   904,   910,  1511,   905,   765,   768,   768,
-   768,   768,   768,   768,   768,  1584,   911,   912,   927,   928,
-  1585,  1586,  1587,  1588,  1589,  1590,  1591,  1592,   933,   939,
-   934,   937,   946,   531,  1584,  1593,   947,   997,  1638,  1585,
-  1586,  1587,  1588,  1589,  1590,  1591,  1592,   938,  1562,   940,
-   959,   951,   232,   232,  1593,   952,   973,  1584,  1272,   953,
-   954,   824,  1077,-32768,-32768,  1588,  1589,  1590,  1591,  1592,
-  1570,  1578,  1579,  1580,  1581,  1582,  1583,  1593,   969,   857,
-   857,   854,   532,   972,   979,  1300,  1648,   995,   647,   533,
-   397,   998,  1657,  1658,   999,  1000,  1001,-32768,   537,  1002,
-  1003,  1004,  1021,   275,  1063,  1022,  1029,  1030,  1666,  1032,
-  1033,  1035,  1036,  1532,   538,  1038,  1094,   569,  1324,  1039,
-  1041,  1534,   309,  1118,  1339,  1542,  1066,  1546,  1042,  1044,
-  1547,  1548,  1549,  1550,  1551,  1552,  1553,  1554,  1555,  1461,
-  1045,  1559,   539,  1065,   381,  1047,  1048,   540,   541,   542,
-   543,   544,   545,   546,   547,  1050,  1051,  1053,  1054,  1103,
-  1573,  1072,   548,  1078,  1088,  1635,  1090,  1089,  1091,  1092,
-  1714,  1100,  1108,  1110,  1639,  1640,  1641,  1642,  1643,  1644,
-  1645,  1646,  1647,  1140,  1651,  1142,  1148,  1156,   967,  1185,
-  1013,  1194,  1187,   165,  1188,   537,   165,  1193,  1014,  1015,
-  1016,  1017,  1018,  1189,  1019,  1228,   165,   165,  1231,   165,
-  1019,   538,  1234,   165,  1237,  1260,  1240,   165,   165,   165,
-   165,  1243,  1246,   768,  1249,  1252,  1255,  1273,  1274,  1281,
-  1279,  1282,  1283,  1624,  1301,  1302,  1307,  1308,  1309,   539,
-  1312,   530,  1314,  1318,  1317,  1321,   531,   543,   544,   545,
-   546,   547,  1325,  1338,  1341,  1347,   232,  1343,  1348,   548,
-  1350,  1351,  1410,  1353,  1355,  1356,  1365,   745,  1360,  1369,
-  1715,  1371,  1572,  1411,  1373,   165,  1374,  1375,  1376,   188,
-  1380,  1382,  1383,  1389,  1417,  1300,  1419,  1300,  1300,  1300,
-  1300,  1300,  1300,  1390,  1391,   532,  1392,   647,   647,  1467,
-  1393,  1394,   533,   188,  1395,  1396,  1397,  1398,  1399,  1400,
-   534,  1401,  1402,  1672,   232,  1403,  1404,  1405,  1406,  1420,
-  1494,   535,  1408,  1422,   188,   276,   310,  1425,  1492,   536,
-  1423,   284,   285,   286,   287,   288,   289,   290,   291,  1501,
-  1453,  1256,  1063,  -872,  1457,  1458,  1462,  1463,  1465,  1470,
-  1713,  1471,  1472,  1490,  1491,  1502,  1503,  1505,  1508,  1525,
-  1424,  1509,  1510,   165,   165,  1512,  1514,   165,   165,  1515,
-   165,   165,  1519,  1524,  1520,   165,  1451,  1564,  1521,   165,
-   165,  1523,  1527,   165,  1459,   165,   165,   165,  1537,  1563,
-  1568,  1569,   165,   165,  1628,  1575,  1571,  1576,  1577,  1594,
-  1616,  1627,  1631,  1595,  1531,  1473,   232,  1597,   537,   165,
-   662,  1598,  1605,   232,  1602,  1653,  1606,  1670,  1607,  1608,
-  1623,  1300,  1633,  1593,   538,   918,   688,  1675,   165,  1300,
-  1665,   165,  1685,  1300,  1674,  1300,  1678,   165,  1300,  1300,
-  1300,  1300,  1300,  1300,  1300,  1300,  1300,  1679,  1660,  1300,
-  1693,   531,   539,  1729,   276,   190,   766,   540,   541,   542,
-   543,   544,   545,   546,   547,  1739,   188,  1742,  1300,   165,
-  1741,   191,   548,  1743,  1746,  1352,   192,   276,   276,   276,
-   276,   276,   276,   193,   194,  1748,   165,   195,  1749,   260,
-   428,   873,  1102,  1311,   564,   817,   597,   165,   196,   647,
-   532,  1093,  1320,  1493,  1095,  1574,   197,   533,  1671,   198,
-  1722,  1737,  1718,  1738,   165,   534,  1734,   165,   165,   165,
-  1323,   232,  1316,   232,   248,  1138,   535,  1139,   408,   576,
-   220,   199,   460,   200,   491,  1719,  1735,   921,   201,   202,
-  1656,  1300,  1655,   311,   452,  1063,  1728,   258,  1085,  1315,
-   512,  1630,   405,  1697,  1151,  1056,  1433,  1081,  1663,  1287,
-  1259,  1434,  1736,   833,   188,  1416,  1414,   824,  1367,  1636,
-  1637,   276,   511,  1069,   924,   308,  1688,  1418,   818,     0,
-   276,   276,   276,   276,   276,   276,   276,   276,   276,     0,
-   276,   647,   165,   165,   824,   828,     0,     0,   188,     0,
-     0,     0,     0,  1469,   165,     0,   688,   688,   688,   688,
-  1435,     0,     0,   537,     0,     0,     0,  1436,     0,     0,
-     0,  1300,     0,  1673,   165,  1437,     0,     0,     0,   538,
-   165,     0,     0,   388,     0,   530,  1438,   165,   165,     0,
-   531,     0,     0,   165,  1439,  1629,   165,   165,     0,     0,
-     0,     0,     0,   165,     0,     0,  1703,   539,     0,     0,
-     0,  1692,   540,   541,   542,   543,   544,   545,   546,   547,
-     0,     0,     0,     0,   665,   259,   276,   548,     0,     0,
-     0,     0,   766,   766,   766,   766,   766,   766,     0,   532,
-     0,     0,     0,     0,     0,  1063,   533,  1434,     0,     0,
-   766,     0,  1063,     0,   534,  1703,     0,     0,  1031,     0,
-     0,     0,     0,  1034,     0,   535,  1692,  1037,     0,   165,
-   471,  1040,     0,  1440,     0,  1043,     0,     0,     0,  1046,
-     0,     0,     0,  1049,     0,     0,     0,  1052,   512,  1441,
-     0,  1055,     0,   165,     0,   165,  1435,     0,     0,     0,
-   165,     0,     0,  1436,     0,     0,     0,     0,     0,     0,
-     0,  1437,     0,     0,     0,     0,     0,  1442,     0,     0,
-     0,     0,  1443,  1444,  1445,  1446,  1447,  1448,  1449,  1450,
-     0,  1433,     0,     0,     0,     0,  1434,  1451,     0,     0,
-  1452,     0,     0,   471,     0,     0,     0,     0,     0,     0,
-     0,     0,   537,     0,     0,     0,     0,     0,     0,     0,
-  1063,     0,  1063,     0,     0,   165,     0,     0,   538,     0,
-     0,     0,   165,     0,     0,     0,     0,     0,     0,  1126,
-     0,     0,   165,     0,     0,  1435,     0,     0,   165,     0,
-     0,     0,  1436,   165,     0,     0,   539,     0,     0,     0,
-  1437,   540,   541,   542,   543,   544,   545,   546,   547,  1440,
-     0,  1438,     0,     0,     0,     0,   548,     0,     0,  1439,
-     0,     0,   531,     0,     0,  1441,   688,   688,     0,     0,
-     0,     0,     0,     0,     0,   688,   688,   688,   688,   688,
-   688,   688,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1442,     0,     0,     0,     0,  1443,  1444,
-  1445,  1446,  1447,  1448,  1449,  1450,     0,     0,     0,     0,
-     0,   532,     0,  1451,   766,     0,     0,   688,   533,     0,
-     0,     0,     0,     0,     0,     0,   534,   766,   766,   766,
-   766,   766,   766,   766,     0,     0,     0,     0,  1440,  1222,
-     0,     0,     0,     0,     0,     0,  1229,  1230,     0,  1232,
-  1233,     0,  1235,  1236,  1441,  1238,  1239,     0,  1241,  1242,
-     0,  1244,  1245,     0,  1247,  1248,     0,  1250,  1251,     0,
-  1253,  1254,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  1442,     0,     0,     0,     0,  1443,  1444,  1445,
-  1446,  1447,  1448,  1449,  1450,     0,     0,     0,     0,   165,
-     0,     0,  1451,     0,  1298,  1533,     0,     0,     0,   165,
-     0,     0,   165,     0,   165,     0,     0,     0,     0,     0,
-     0,     0,   165,     0,   537,     0,     0,     0,     0,   165,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   538,     0,     0,   165,     0,   165,   165,   165,   165,     0,
-     0,     0,     0,     0,   165,     0,     0,     0,     0,     0,
-   165,     0,     0,     0,   165,     0,     0,     0,   539,     0,
-     0,     0,     0,   165,-32768,-32768,   543,   544,   545,   546,
-   547,   512,     0,   165,   165,   165,   165,     0,   548,     0,
-   165,     0,   165,   165,     0,     0,     0,     0,   165,     0,
-     0,     0,     0,     0,     0,     0,   512,   165,   165,     0,
-  1364,     0,     0,     0,  1366,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
-     0,     0,   766,     2,     0,  1385,     0,   512,     0,     0,
-     0,     0,     0,     3,     0,     0,     0,     4,     0,     5,
-  1433,     0,     0,     0,     0,  1434,     0,     0,     0,     6,
-     0,     7,     0,     0,     0,     8,     0,     9,     0,     0,
-     0,     0,     0,    10,     0,     0,     0,     0,     0,    11,
-     0,     0,     0,     0,     0,     0,    12,     0,     0,   512,
-     0,     0,   512,     0,  1298,     0,  1298,  1298,  1298,  1298,
-  1298,  1298,     0,   471,  1435,     0,     0,     0,     0,     0,
-     0,  1436,     0,     0,     0,     0,     0,  1434,     0,  1437,
-     0,     0,     0,     0,     0,     0,   165,   165,     0,     0,
-  1438,    13,   165,    14,  1488,   165,    15,    16,  1439,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1500,     0,
-     0,     0,     0,     0,    17,     0,     0,     0,     0,     0,
-     0,     0,   165,     0,   512,     0,  1435,     0,     0,    18,
-     0,     0,  1513,  1436,     0,     0,  1516,    19,    20,     0,
-     0,-32768,     0,     0,     0,     0,     0,    21,    22,     0,
-   165,     0,   165,     0,     0,     0,     0,     0,   165,    23,
-    24,     0,    25,     0,     0,    26,     0,     0,     0,     0,
-     0,    27,     0,     0,     0,     0,     0,  1440,     0,    28,
-     0,     0,     0,     0,     0,     0,    29,     0,     0,     0,
-  1298,     0,    30,  1441,    31,     0,     0,     0,  1298,     0,
-   530,     0,  1298,     0,  1298,   531,     0,  1298,  1298,  1298,
-  1298,  1298,  1298,  1298,  1298,  1298,     0,     0,  1298,     0,
-     0,  1442,    32,  1488,     0,     0,  1443,  1444,  1445,  1446,
-  1447,  1448,  1449,  1450,     0,     0,     0,  1298,     0,  1440,
-     0,  1451,     0,     0,  1634,     0,  1488,  1488,  1488,  1488,
-  1488,  1488,     0,  1226,   532,  1441,     0,     0,   512,     0,
-     0,   533,     0,     0,     0,     0,     0,  1433,     0,   534,
-     0,     0,  1434,     0,     0,     0,     0,     0,     0,     0,
-   535,     0,     0,  1442,     0,     0,     0,     0,   536,     0,
-   165,  1446,  1447,  1448,  1449,  1450,     0,     0,     0,     0,
-     0,   165,     0,  1451,     0,     0,     0,     0,     0,     0,
-  1298,     0,     0,   165,     0,     0,     0,     0,     0,     0,
-  1226,  1435,     0,     0,     0,     0,     0,     0,  1436,     0,
-     0,   165,   165,     0,     0,     0,  1437,   165,     0,     0,
-  1488,     0,     0,     0,     0,     0,     0,  1438,   165,  1488,
-  1488,  1488,  1488,  1488,  1488,  1488,  1488,  1488,   165,  1488,
-     0,     0,   165,     0,     0,     0,     0,   537,     0,     0,
-     0,     0,     0,   165,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   538,   512,     0,     0,     0,     0,     0,
-  1298,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   512,     0,     0,     0,     0,     0,     0,     0,
-     0,   539,     0,   512,     0,     0,   540,   541,   542,   543,
-   544,   545,   546,   547,   169,   170,     0,     0,     0,     0,
-     0,   548,  -642,     0,  1440,     0,     0,   171,     0,   172,
-   165,     0,     0,     0,   173,  1488,     0,   165,     0,     0,
-  1441,   174,   175,     0,     0,   176,     0,     0,     0,  1226,
-     0,     0,     0,     0,   512,     0,   177,     0,     0,     0,
-     0,     0,     0,     0,   178,     0,     0,  -327,  1442,     0,
-     0,   512,     0,  1443,  1444,  1445,  1446,  1447,  1448,  1449,
-  1450,     0,     0,     0,     0,     0,     0,     0,  1451,   179,
-   165,  -245,     0,     0,     0,   689,   180,   181,     0,     0,
-     0,     0,     0,     0,     0,   182,     0,     0,     0,     0,
-  1226,     0,  1226,  1226,  1226,  1226,  1226,  1226,     0,     0,
-     0,     0,     0,   165,     0,   767,     0,     0,     0,     0,
-     0,   496,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   512,   165,   513,   165,     0,   516,
-  1226,   517,   518,   519,   520,   524,     0,   512,     0,     0,
-     0,     0,     0,   512,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   165,     0,
-     0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   582,  1226,     0,     0,     0,     0,     0,
-     0,     0,     0,   512,     0,   165,     0,     0,   165,   512,
-   512,     0,   165,     0,     0,     0,     0,     0,     0,   634,
-     0,     0,     0,     0,     0,   512,   512,     0,     0,     0,
-     0,     0,     0,   512,     0,     0,  1226,   165,     0,     0,
-     0,     0,     0,     0,  1226,  1226,     0,   654,  1226,     0,
-  1226,     0,     0,  1226,  1226,  1226,  1226,  1226,  1226,  1226,
-  1226,  1226,     0,     0,  1226,   689,   689,   689,   689,  1226,
-     0,   674,   675,     0,     0,   165,     0,     0,   512,   698,
-   512,     0,     0,  1226,     0,     0,   530,   512,   701,     0,
-     0,   531,  1226,  1226,  1226,  1226,  1226,  1226,     0,     0,
-     0,     0,     0,     0,   747,     0,     0,     0,   774,     0,
-   778,     0,     0,   782,   787,   791,   795,   799,   803,   807,
-   811,   815,     0,     0,     0,     0,     0,     0,     0,     0,
-   165,     0,     0,     0,     0,  1226,     0,     0,     0,     0,
-   532,   767,   767,   767,   767,   767,   767,   533,  1226,     0,
-     0,     0,     0,     0,  1226,   534,  1226,     0,     0,   767,
-     0,     0,     0,     0,     0,     0,   535,     0,     0,     0,
-     0,     0,     0,     0,   536,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1226,     0,     0,     0,
-     0,     0,     0,     0,     0,  1226,  1226,  1226,  1226,  1226,
-  1226,  1226,  1226,  1226,   530,  1226,     0,     0,     0,   531,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   922,     0,     0,     0,  1226,     0,     0,
-     0,     0,     0,     0,  1226,     0,  1226,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   537,     0,     0,     0,     0,   532,     0,
-     0,     0,     0,     0,     0,   533,     0,     0,   698,   538,
-   698,   698,     0,   534,     0,     0,     0,     0,   994,  1226,
-     0,  1226,     0,     0,   535,     0,     0,     0,     0,     0,
-     0,  1226,   536,     0,     0,     0,     0,   539,     0,     0,
-     0,     0,   540,   541,   542,   543,   544,   545,   546,   547,
-     0,     0,     0,     0,     0,     0,     0,   548,   948,     0,
-     0,     0,     0,     0,   530,     0,     0,   845,     0,   531,
-     0,     0,     0,     0,     0,   689,   689,  1011,     0,     0,
-     0,     0,     0,     0,   689,   689,   689,   689,   689,   689,
-   689,  1028,     0,     0,     0,   524,     0,   846,     0,     0,
-   524,     0,     0,     0,   524,     0,     0,     0,   524,     0,
-     0,   537,   524,     0,     0,     0,   524,     0,   532,     0,
-   524,     0,     0,   767,   524,   533,   689,   538,   524,     0,
-     0,     0,     0,   534,     0,     0,   767,   767,   767,   767,
-   767,   767,   767,     0,   535,   530,  1225,     0,     0,     0,
-   531,     0,   536,     0,     0,   539,     0,     0,   582,     0,
-   540,   541,   542,   543,   544,   545,   546,   547,     0,     0,
-     0,     0,     0,     0,     0,   548,  -641,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   847,     0,     0,     0,     0,     0,     0,     0,   532,
-     0,     0,     0,     0,     0,     0,   533,     0,     0,     0,
-   530,     0,   926,  1299,   534,   531,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   535,     0,     0,     0,     0,
-     0,   537,     0,   536,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1160,     0,     0,   538,     0,     0,
-     0,     0,     0,  1163,     0,   530,     0,     0,     0,     0,
-   531,     0,  1164,     0,   532,     0,     0,     0,   698,     0,
-     0,   533,     0,     0,     0,   539,     0,     0,     0,   534,
-   540,   541,   542,   543,   544,   545,   546,   547,     0,     0,
-   535,     0,     0,     0,  1191,   548,     0,     0,   536,     0,
-     0,     0,     0,   978,     0,     0,     0,     0,     0,   532,
-     0,     0,   537,     0,     0,     0,   533,     0,   698,     0,
-     0,     0,     0,     0,   534,     0,     0,     0,   538,     0,
-     0,     0,     0,     0,     0,   535,     0,     0,     0,     0,
-     0,     0,     0,   536,     0,     0,     0,     0,     0,     0,
-     0,   767,  1388,     0,     0,     0,   539,     0,     0,     0,
-     0,   540,   541,   542,   543,   544,   545,   546,   547,     0,
-   980,     0,     0,     0,     0,   981,   548,   537,     0,     0,
-     0,   530,     0,     0,     0,     0,   531,     0,     0,     0,
-     0,     0,     0,   538,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1299,     0,  1299,  1299,  1299,  1299,  1299,
-  1299,   539,   537,     0,     0,     0,   540,   541,   542,   543,
-   544,   545,   546,   547,     0,   532,     0,     0,   538,     0,
-     0,   548,   533,     0,     0,     0,     0,     0,     0,     0,
-   534,     0,     0,  1489,     0,   530,     0,     0,     0,     0,
-   531,   535,     0,     0,     0,     0,   539,     0,     0,   536,
-     0,   540,   541,   542,   543,   544,   545,   546,   547,     0,
-     0,     0,     0,   698,   698,   698,   548,     0,     0,     0,
-     0,     0,     0,     0,  1154,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1522,     0,   532,
-     0,  1368,     0,     0,     0,     0,   533,     0,     0,     0,
-     0,   698,   698,   698,   534,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   535,     0,     0,     0,     0,
-     0,     0,     0,   536,     0,     0,     0,     0,   537,  1299,
-     0,     0,     0,     0,     0,     0,     0,  1299,  1536,     0,
-     0,  1299,     0,  1299,   538,     0,  1299,  1299,  1299,  1299,
-  1299,  1299,  1299,  1299,  1299,     0,     0,  1299,     0,     0,
-     0,     0,  1489,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   539,     0,     0,     0,  1299,   540,   541,   542,
-   543,   544,   545,   546,   547,  1489,  1489,  1489,  1489,  1489,
-  1489,     0,   548,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   537,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   538,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1609,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1536,     0,     0,     0,     0,   539,  1536,     0,  1299,
-     0,   540,   541,   542,   543,   544,   545,   546,   547,     0,
-     0,     0,     0,     0,     0,  1363,   548,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  1489,
-     0,     0,     0,     0,     0,     0,     0,     0,  1489,  1489,
-  1489,  1489,  1489,  1489,  1489,  1489,  1489,     0,  1489,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1530,     0,     0,    90,    91,     0,
-  1536,     0,     0,     0,     0,     0,     0,  1536,     0,  1299,
-     0,   329,   330,   331,   332,     0,     0,   333,     0,     0,
-     0,     0,     0,     0,   229,   334,   335,   336,   337,     0,
-    92,   338,     0,     0,     0,     0,     0,   339,     0,     0,
-     0,     0,     0,   340,   341,   342,     0,   343,     0,     0,
-     0,     0,  1536,     0,  1536,    94,     0,     0,    95,     0,
-     0,   344,     0,     0,  1489,     0,    96,    97,     0,     0,
-     0,     0,     0,    98,    99,   100,     0,   345,     0,   346,
-   101,     0,   347,   348,   349,   350,   102,     0,   103,   104,
-     0,     0,     0,     0,   351,     0,     0,   105,   106,     0,
-     0,   107,     0,   108,     0,     0,     0,   109,   110,     0,
-     0,   352,     0,     0,     0,     0,   353,   354,   113,   114,
-     0,     0,     0,   355,   356,     0,     0,     0,   357,     0,
-     0,   358,     0,     0,     0,     0,     0,     0,   115,   116,
-   117,   359,     0,   119,   120,     0,   121,   122,     0,   123,
-     0,     0,   124,   125,   126,   127,   128,     0,   129,   130,
-     0,     0,   131,   132,   133,   134,   135,   136,   137,   138,
-   139,     0,     0,     0,   140,     0,   141,   142,     0,   230,
-   143,   144,     0,   145,     0,   146,  1664,   147,   148,   149,
-   150,   151,     0,   152,   153,   154,   155,   156,   360,     0,
-   157,   158,   159,   160,   161,     0,     0,     0,   162,     0,
-   163,   361,   243,   362,   319,   363,   364,    90,    91,     0,
-     0,     0,   365,   825,     0,   367,   368,   369,   370,     0,
-     0,   329,   330,   331,   332,   371,   826,   333,     0,     0,
-     0,     0,     0,     0,   229,   334,   335,   336,   337,     0,
-    92,   338,     0,     0,     0,     0,     0,   339,     0,     0,
-     0,     0,     0,   340,   341,   342,     0,   343,     0,     0,
-     0,     0,     0,     0,     0,    94,     0,     0,    95,     0,
-     0,   344,     0,     0,     0,     0,    96,    97,     0,     0,
-     0,     0,     0,    98,    99,   100,     0,   345,     0,   346,
-   101,     0,   347,   348,   349,   350,   102,     0,   103,   104,
-     0,     0,     0,     0,   351,     0,     0,   105,   106,     0,
-     0,   107,     0,   108,     0,     0,     0,   109,   110,     0,
-     0,   352,     0,     0,     0,     0,   353,   354,   113,   114,
-     0,     0,     0,   355,   356,     0,     0,     0,   357,     0,
-     0,   358,     0,     0,     0,     0,     0,     0,   115,   116,
-   117,   359,     0,   119,   120,     0,   121,   122,     0,   123,
-     0,     0,   124,   125,   126,   127,   128,     0,   129,   130,
-     0,     0,   131,   132,   133,   134,   135,   136,   137,   138,
-   139,     0,     0,     0,   140,     0,   141,   142,     0,   230,
-   143,   144,     0,   145,     0,   146,     0,   147,   148,   149,
-   150,   151,     0,   152,   153,   154,   155,   156,   360,     0,
-   157,   158,   159,   160,   161,     0,     0,     0,   162,     0,
-   163,   361,   243,   362,   319,   363,   364,    90,    91,     0,
-     0,     0,   365,     0,     0,   367,   368,   369,   370,     0,
-     0,   329,   330,   331,   332,   371,  1182,   333,     0,     0,
-     0,     0,     0,     0,   229,   334,   335,   336,   337,     0,
-    92,   338,     0,     0,     0,     0,     0,   339,     0,     0,
-     0,     0,     0,   340,   341,   342,     0,   343,     0,     0,
-     0,     0,     0,     0,     0,    94,     0,     0,    95,     0,
-     0,   344,     0,     0,     0,     0,    96,    97,     0,     0,
-     0,     0,     0,    98,    99,   100,     0,   345,     0,   346,
-   101,     0,   347,   348,   349,   350,   102,     0,   103,   104,
-     0,     0,     0,     0,   351,     0,     0,   105,   106,     0,
-     0,   107,     0,   108,     0,     0,     0,   109,   110,     0,
-     0,   352,     0,     0,     0,     0,   353,   354,   113,   114,
-     0,     0,     0,   355,   356,     0,     0,     0,   357,     0,
-     0,   358,     0,     0,     0,     0,     0,     0,   115,   116,
-   117,   359,     0,   119,   120,     0,   121,   122,     0,   123,
-     0,     0,   124,   125,   126,   127,   128,     0,   129,   130,
-     0,     0,   131,   132,   133,   134,   135,   136,   137,   138,
-   139,     0,     0,     0,   140,     0,   141,   142,     0,   230,
-   143,   144,     0,   145,     0,   146,     0,   147,   148,   149,
-   150,   151,     0,   152,   153,   154,   155,   156,   360,     0,
-   157,   158,   159,   160,   161,     0,     0,     0,   162,     0,
-   163,   361,   243,   362,   319,   363,   364,    90,    91,     0,
-     0,     0,   365,     0,     0,   367,   368,   369,   370,     0,
-     0,     0,  1474,   331,   332,   371,  1220,     0,     0,     0,
-     0,     0,     0,     0,     0,  1475,  1476,  1477,  1478,     0,
-    92,   338,     0,     0,     0,     0,     0,   339,     0,     0,
-     0,     0,     0,     0,     0,   342,     0,   343,     0,     0,
-     0,     0,     0,     0,     0,    94,     0,     0,    95,     0,
-     0,   344,     0,     0,     0,     0,    96,    97,     0,     0,
-     0,     0,     0,    98,    99,   100,     0,   345,     0,   346,
-   101,     0,     0,     0,     0,   350,   102,     0,   103,   104,
-     0,     0,     0,     0,     0,     0,     0,   105,   106,     0,
-     0,   107,     0,   108,     0,     0,     0,   109,   110,     0,
-     0,     0,     0,     0,     0,     0,   353,   354,   113,   114,
-     0,     0,     0,     0,   356,     0,     0,     0,  1480,     0,
-     0,   358,     0,     0,     0,     0,     0,     0,   115,   116,
-   117,   359,     0,   119,   120,     0,   121,   122,     0,   123,
-     0,     0,   124,   125,   126,   127,   128,     0,   129,   130,
-     0,     0,   131,   132,   133,   134,   135,   136,   137,   138,
-   139,     0,     0,     0,   140,     0,   141,   142,     0,     0,
-   143,   144,     0,   145,     0,   146,     0,   147,   148,   149,
-   150,   151,     0,   152,   153,   154,   155,   156,   360,     0,
-   157,   158,   159,   160,   161,     0,     0,     0,   162,     0,
-   163,   361,   243,  1481,   319,   363,   364,    90,    91,     0,
-     0,     0,  1482,     0,     0,     0,  1483,  1484,  1485,     0,
-     0,     0,  1288,   331,   332,  1486,  1649,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    92,   338,     0,     0,     0,     0,     0,   339,     0,     0,
-     0,     0,     0,     0,     0,   342,     0,   343,     0,     0,
-     0,     0,     0,     0,     0,    94,     0,     0,    95,     0,
-     0,   344,     0,     0,     0,     0,    96,    97,     0,     0,
-     0,     0,     0,    98,    99,   100,     0,   345,     0,   346,
-   101,     0,  1289,     0,  1290,   350,   102,     0,   103,   104,
-     0,     0,     0,     0,     0,     0,     0,   105,   106,     0,
-     0,   107,     0,   108,     0,     0,     0,   109,   110,     0,
-     0,     0,     0,     0,     0,     0,   353,   354,   113,   114,
-     0,     0,     0,     0,   356,     0,     0,     0,     0,     0,
-     0,   358,     0,     0,     0,     0,     0,     0,   115,   116,
-   117,   359,     0,   119,   120,     0,   121,   122,     0,   123,
-     0,     0,   124,   125,   126,   127,   128,     0,   129,   130,
-     0,     0,   131,   132,   133,   134,   135,   136,   137,   138,
-   139,     0,     0,     0,   140,     0,   141,   142,     0,     0,
-   143,   144,     0,   145,     0,   146,     0,   147,   148,   149,
-   150,   151,     0,   152,   153,   154,   155,   156,   360,     0,
-   157,   158,   159,   160,   161,     0,     0,     0,   162,     0,
-   163,   361,   243,  1291,   319,   363,   364,    90,    91,     0,
-     0,     0,  1292,     0,     0,     0,  1293,  1294,  1295,     0,
-     0,     0,     0,   331,   332,  1296,  1557,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    92,   606,     0,     0,     0,     0,     0,   607,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   608,     0,     0,
-     0,     0,     0,     0,     0,    94,     0,     0,    95,     0,
-     0,     0,     0,     0,     0,     0,    96,    97,     0,     0,
-     0,     0,     0,    98,    99,   100,     0,   345,     0,   346,
-   101,     0,     0,     0,     0,   609,   102,     0,   103,   104,
-     0,     0,     0,     0,     0,     0,     0,   105,   106,     0,
-     0,   107,     0,   108,     0,     0,     0,   109,   110,     0,
-     0,     0,     0,     0,     0,     0,   111,   112,   113,   114,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   358,     0,     0,     0,     0,     0,     0,   115,   116,
-   117,   118,     0,   119,   120,     0,   121,   122,     0,   123,
-     0,     0,   124,   125,   126,   127,   128,     0,   129,   130,
-     0,     0,   131,   132,   133,   134,   135,   136,   137,   138,
-   139,     0,     0,     0,   140,     0,   141,   142,     0,     0,
-   143,   144,     0,   145,     0,   146,     0,   147,   148,   149,
-   150,   151,     0,   152,   153,   154,   155,   156,    90,    91,
-   157,   158,   159,   160,   161,     0,     0,     0,   162,   694,
-   163,   164,   329,   330,   331,   332,     0,     0,   333,     0,
-     0,     0,     0,     0,     0,   229,   334,   335,   336,   337,
-     0,    92,   338,     0,     0,     0,   610,     0,   339,     0,
-     0,     0,     0,     0,   340,   341,   342,     0,   343,     0,
-     0,   695,     0,     0,     0,     0,    94,     0,     0,    95,
-     0,     0,   344,     0,     0,     0,     0,    96,    97,   696,
-     0,     0,     0,     0,    98,    99,   100,     0,   345,     0,
-   346,   101,     0,   347,   348,   349,   350,   102,     0,   103,
-   104,     0,     0,     0,     0,   351,     0,     0,   105,   106,
-     0,     0,   107,     0,   108,     0,     0,     0,   109,   110,
-     0,     0,   352,     0,     0,     0,     0,   353,   354,   113,
-   114,     0,   697,     0,   355,   356,     0,     0,     0,   357,
-     0,     0,   358,     0,     0,     0,     0,     0,     0,   115,
-   116,   117,   359,     0,   119,   120,     0,   121,   122,     0,
-   123,     0,     0,   124,   125,   126,   127,   128,     0,   129,
-   130,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,     0,     0,     0,   140,     0,   141,   142,     0,
-   230,   143,   144,     0,   145,     0,   146,     0,   147,   148,
-   149,   150,   151,     0,   152,   153,   154,   155,   156,   360,
-     0,   157,   158,   159,   160,   161,     0,     0,     0,   162,
-     0,   163,   361,   243,   362,   319,   363,   364,     0,     0,
-     0,     0,     0,   365,    90,    91,   367,   368,   369,   370,
-     0,     0,     0,     0,     0,  1169,   371,     0,   329,   330,
-   331,   332,     0,     0,   333,     0,     0,     0,     0,     0,
-     0,   229,   334,   335,   336,   337,     0,    92,   338,     0,
-     0,     0,     0,     0,   339,     0,     0,     0,     0,     0,
-   340,   341,   342,     0,   343,     0,     0,   695,     0,     0,
-     0,     0,    94,     0,     0,    95,     0,     0,   344,     0,
-     0,     0,     0,    96,    97,  1170,     0,     0,     0,     0,
-    98,    99,   100,     0,   345,     0,   346,   101,     0,   347,
-   348,   349,   350,   102,     0,   103,   104,     0,     0,     0,
-     0,   351,     0,     0,   105,   106,     0,     0,   107,     0,
-   108,     0,     0,     0,   109,   110,     0,     0,   352,     0,
-     0,     0,     0,   353,   354,   113,   114,     0,  1171,     0,
-   355,   356,     0,     0,     0,   357,     0,     0,   358,     0,
-     0,     0,     0,     0,     0,   115,   116,   117,   359,     0,
-   119,   120,     0,   121,   122,     0,   123,     0,     0,   124,
-   125,   126,   127,   128,     0,   129,   130,     0,     0,   131,
-   132,   133,   134,   135,   136,   137,   138,   139,     0,     0,
-     0,   140,     0,   141,   142,     0,   230,   143,   144,     0,
-   145,     0,   146,     0,   147,   148,   149,   150,   151,     0,
-   152,   153,   154,   155,   156,   360,     0,   157,   158,   159,
-   160,   161,     0,     0,     0,   162,     0,   163,   361,   243,
-   362,   319,   363,   364,     0,     0,     0,     0,     0,   365,
-    90,    91,   367,   368,   369,   370,     0,     0,     0,     0,
-     0,  1207,   371,     0,   329,   330,   331,   332,     0,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,   695,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,  1208,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   349,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,  1209,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   783,     0,   365,   784,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   371,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   785,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   788,     0,   365,   789,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   786,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   792,     0,   365,   793,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   790,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   796,     0,   365,   797,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   794,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   800,     0,   365,   801,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   798,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   804,     0,   365,   805,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   802,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   808,     0,   365,   809,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   806,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,     0,     0,   365,     0,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   810,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   349,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,     0,     0,   365,   366,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   371,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,   695,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   349,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,     0,     0,   365,     0,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   371,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   349,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,    15,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,     0,     0,   365,     0,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   371,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,    15,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,     0,     0,   365,     0,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   371,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,     0,     0,   365,     0,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   371,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,   347,   348,   349,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   362,   319,   363,   364,
-    90,    91,     0,   779,     0,   365,   780,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   371,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,     0,   319,   363,   364,
-    90,    91,     0,   812,     0,   365,   813,     0,   367,   368,
-   369,   370,     0,     0,   329,   330,   331,   332,   781,     0,
-   333,     0,     0,     0,     0,     0,     0,   229,   334,   335,
-   336,   337,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,   340,   341,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,   348,   495,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   351,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   352,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   355,   356,     0,     0,
-     0,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,     0,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,     0,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,     0,   319,   363,   364,
-    90,    91,     0,     0,     0,     0,     0,     0,     0,   368,
-   369,   370,     0,     0,     0,   748,   331,   332,   814,     0,
-     0,     0,     0,     0,     0,     0,     0,   229,   749,   750,
-   751,   752,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,     0,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   753,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   754,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   755,   356,     0,     0,
-     0,   756,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   757,   319,   363,   364,
-    90,    91,     0,     0,     0,   758,     0,     0,   759,   760,
-   761,   762,     0,     0,     0,   748,   331,   332,   763,     0,
-     0,     0,     0,     0,     0,     0,     0,   229,   749,   750,
-   751,   752,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,     0,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   753,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   754,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   755,   356,     0,     0,
-     0,   756,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,     0,   319,   363,   364,
-    90,    91,     0,     0,     0,   758,     0,     0,   759,   760,
-   761,   762,     0,     0,     0,   748,   331,   332,   763,     0,
-     0,     0,     0,     0,     0,     0,     0,   229,   749,   750,
-   751,   752,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,     0,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   753,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   754,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   755,   356,     0,     0,
-     0,   756,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,     0,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,     0,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,     0,   319,   363,   364,
-    90,    91,     0,     0,     0,     0,     0,     0,     0,   760,
-   761,   762,     0,     0,     0,  1474,   331,   332,   763,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1475,  1476,
-  1477,  1478,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,  1479,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,     0,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,     0,   356,     0,     0,
-     0,  1480,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,     0,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,  1481,   319,   363,   364,
-    90,    91,     0,     0,     0,  1482,     0,     0,     0,  1483,
-  1484,  1485,     0,     0,     0,  1474,   331,   332,  1486,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1475,  1476,
-  1477,  1478,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,     0,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,     0,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,     0,   356,     0,     0,
-     0,  1480,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,     0,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,  1481,   319,   363,   364,
-    90,    91,     0,     0,     0,  1482,     0,     0,     0,  1483,
-  1484,  1485,     0,     0,     0,  1474,   331,   332,  1486,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1475,  1476,
-  1477,  1478,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,     0,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,     0,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,     0,   356,     0,     0,
-     0,  1480,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,     0,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,     0,   319,   363,   364,
-    90,    91,     0,     0,     0,  1482,     0,     0,     0,  1483,
-  1484,  1485,     0,     0,     0,   677,   331,   332,  1486,     0,
-     0,     0,     0,     0,     0,     0,     0,   229,     0,     0,
-     0,     0,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,     0,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   678,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   679,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   680,   356,     0,     0,
-     0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,   681,   319,   363,   364,
-    90,    91,     0,     0,     0,   682,     0,     0,     0,   683,
-     0,     0,     0,     0,     0,   677,   331,   332,   684,     0,
-     0,     0,     0,     0,     0,     0,     0,   229,     0,     0,
-     0,     0,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,     0,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,   678,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,   679,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,   680,   356,     0,     0,
-     0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,   230,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,     0,   319,   363,   364,
-    90,    91,     0,     0,     0,   682,     0,     0,     0,   683,
-     0,     0,     0,     0,     0,  1288,   331,   332,   684,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,  1289,     0,  1290,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,     0,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,     0,   356,     0,     0,
-     0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,     0,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,     0,     0,
-     0,   162,     0,   163,   361,   243,  1291,   319,   363,   364,
-    90,    91,     0,     0,     0,  1292,     0,     0,     0,  1293,
-  1294,  1295,     0,     0,     0,  1288,   331,   332,  1296,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    92,   338,     0,     0,     0,     0,     0,
-   339,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,     0,     0,     0,     0,     0,     0,     0,    94,     0,
-     0,    95,     0,     0,   344,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-   345,     0,   346,   101,     0,     0,     0,  1290,   350,   102,
-     0,   103,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,     0,     0,     0,     0,     0,   353,
-   354,   113,   114,     0,     0,     0,     0,   356,     0,     0,
-     0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   359,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,     0,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,   360,     0,   157,   158,   159,   160,   161,    90,    91,
-     0,   162,     0,   163,   361,   243,     0,   319,   363,   364,
-     0,     0,     0,     0,     0,  1292,     0,     0,     0,  1293,
-  1294,  1295,     0,     0,     0,   229,     0,     0,  1296,     0,
-     0,    92,     0,     0,     0,     0,     0,     0,    93,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    94,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,    97,     0,
-     0,     0,     0,     0,    98,    99,   100,     0,     0,     0,
-     0,   101,     0,     0,     0,     0,     0,   102,     0,   103,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
-     0,     0,   107,     0,   108,     0,     0,     0,   109,   110,
-     0,     0,     0,     0,     0,     0,     0,   111,   112,   113,
-   114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   115,
-   116,   117,   118,     0,   119,   120,     0,   121,   122,     0,
-   123,     0,     0,   124,   125,   126,   127,   128,     0,   129,
-   130,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,     0,    90,    91,   140,     0,   141,   142,     0,
-   230,   143,   144,     0,   145,     0,   146,     0,   147,   148,
-   149,   150,   151,     0,   152,   153,   154,   155,   156,     0,
-     0,   157,   158,   159,   160,   161,    92,     0,     0,   162,
-     0,   163,   164,    93,     0,     0,     0,     0,     0,     0,
-     0,  1433,     0,  1615,     0,     0,  1434,     0,     0,     0,
-     0,    94,     0,     0,    95,     0,  1057,     0,     0,     0,
-     0,     0,    96,    97,     0,     0,     0,     0,     0,    98,
-    99,   100,     0,     0,     0,     0,   101,     0,     0,     0,
-     0,     0,   102,     0,   103,   104,     0,     0,     0,     0,
-     0,     0,     0,   105,   106,  1435,     0,   107,     0,   108,
-     0,     0,  1436,   109,   110,    15,     0,     0,     0,     0,
-  1437,     0,   111,   112,   113,   114,     0,     0,     0,     0,
-     0,  1438,     0,     0,     0,     0,     0,     0,     0,  1439,
-     0,     0,     0,     0,   115,   116,   117,   118,     0,   119,
-   120,   530,   121,   122,     0,   123,   531,     0,   124,   125,
-   126,   127,   128,     0,   129,   130,     0,     0,   131,   132,
-   133,   134,   135,   136,   137,   138,   139,     0,     0,     0,
-   140,  1434,   141,   142,     0,     0,   143,   144,     0,   145,
-     0,   146,     0,   147,   148,   149,   150,   151,     0,   152,
-   153,   154,   155,   156,     0,   532,   157,   158,   159,   160,
-   161,     0,   533,     0,   162,     0,   163,   164,  1440,     0,
-   534,     0,  1433,     0,     0,     0,     0,  1434,     0,     0,
-  1435,   535,     0,     0,  1441,     0,     0,  1436,     0,   536,
-     0,    32,     0,     0,     0,  1437,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1438,     0,     0,     0,
-     0,     0,  1442,     0,     0,     0,     0,  1443,  1444,  1445,
-  1446,  1447,  1448,  1449,  1450,     0,  1435,     0,     0,     0,
-     0,     0,  1451,  1436,     0,     0,     0,     0,     0,     0,
-     0,  1437,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  1438,     0,     0,     0,     0,     0,     0,     0,
-  1439,     0,     0,     0,     0,     0,     0,     0,   537,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   538,     0,     0,     0,     0,     0,
-     0,     0,     0,  1440,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  1441,
-     0,     0,   539,     0,     0,     0,     0,   540,   541,   542,
-   543,   544,   545,   546,   547,     0,     0,     0,     0,     0,
-     0,     0,   548,     0,     0,     0,     0,  1442,     0,  1440,
-    90,    91,  1443,  1444,  1445,  1446,  1447,  1448,  1449,  1450,
-     0,     0,     0,     0,     0,  1441,     0,  1451,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    92,     0,     0,     0,     0,     0,     0,
-    93,     0,     0,  1442,     0,     0,     0,     0,  1443,  1444,
-  1445,  1446,  1447,  1448,  1449,  1450,     0,     0,    94,     0,
-     0,    95,     0,  1451,     0,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-     0,     0,     0,   101,     0,     0,     0,     0,     0,   102,
-     0,   103,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,     0,     0,     0,     0,     0,   111,
-   112,   113,   114,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   115,   116,   117,   118,     0,   119,   120,     0,   121,
-   122,     0,   123,     0,     0,   124,   125,   126,   127,   128,
-     0,   129,   130,     0,     0,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,     0,     0,   140,     0,   141,
-   142,     0,     0,   143,   144,     0,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
-   156,  1128,     0,   157,   158,   159,   160,   161,    90,    91,
-     0,   162,     0,   163,   164,   243,   310,   319,     0,  1129,
-     0,   284,   285,   286,   287,  1130,   289,   290,   291,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    92,     0,     0,   628,     0,     0,     0,    93,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    94,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,   281,    96,    97,     0,
-     0,     0,     0,     0,    98,    99,   100,     0,     0,     0,
-     0,   101,     0,     0,     0,     0,     0,   102,     0,   103,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
-   282,     0,   107,     0,   108,     0,     0,     0,   109,   110,
-     0,     0,     0,     0,     0,     0,     0,   111,   112,   113,
-   114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   115,
-   116,   117,   118,     0,   119,   120,     0,   121,   122,     0,
-   123,     0,     0,   124,   125,   126,   127,   128,     0,   129,
-   130,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,     0,    90,    91,   140,     0,   141,   142,     0,
-     0,   143,   144,     0,   145,     0,   146,     0,   147,   148,
-   149,   150,   151,     0,   152,   153,   154,   155,   156,     0,
-     0,   157,   158,   159,   160,   161,    92,     0,     0,   162,
-     0,   163,   164,    93,   283,     0,     0,     0,     0,   284,
-   285,   286,   287,   288,   289,   290,   291,     0,     0,     0,
-     0,    94,     0,     0,    95,     0,     0,     0,     0,     0,
-     0,   281,    96,    97,     0,     0,     0,     0,     0,    98,
-    99,   100,     0,     0,     0,     0,   101,     0,     0,     0,
-     0,     0,   102,     0,   103,   104,     0,     0,     0,     0,
-     0,     0,     0,   105,   106,   282,     0,   107,     0,   108,
-     0,     0,     0,   109,   110,     0,     0,     0,     0,     0,
-     0,     0,   111,   112,   113,   114,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   115,   116,   117,   118,     0,   119,
-   120,     0,   121,   122,     0,   123,     0,     0,   124,   125,
-   126,   127,   128,     0,   129,   130,     0,     0,   131,   132,
-   133,   134,   135,   136,   137,   138,   139,     0,    90,    91,
-   140,     0,   141,   142,     0,     0,   143,   144,     0,   145,
-     0,   146,     0,   147,   148,   149,   150,   151,     0,   152,
-   153,   154,   155,   156,     0,   229,   157,   158,   159,   160,
-   161,    92,     0,     0,   162,     0,   163,   164,    93,   283,
-     0,     0,     0,     0,   284,   285,   286,   287,   288,   289,
-   290,   291,     0,     0,     0,     0,    94,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,    97,     0,
-     0,     0,     0,     0,    98,    99,   100,     0,     0,     0,
-     0,   101,     0,     0,     0,     0,     0,   102,     0,   103,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
-     0,     0,   107,     0,   108,     0,     0,     0,   109,   110,
-     0,     0,     0,     0,     0,     0,     0,   111,   112,   113,
-   114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   115,
-   116,   117,   118,     0,   119,   120,     0,   121,   122,     0,
-   123,     0,     0,   124,   125,   126,   127,   128,     0,   129,
-   130,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,     0,    90,    91,   140,     0,   141,   142,     0,
-   230,   143,   144,     0,   145,     0,   146,     0,   147,   148,
-   149,   150,   151,     0,   152,   153,   154,   155,   156,     0,
-   229,   157,   158,   159,   160,   161,    92,     0,     0,   162,
-     0,   163,   164,    93,     0,     0,   363,     0,     0,     0,
-     0,     0,     0,     0,   565,     0,     0,     0,     0,     0,
-     0,    94,     0,     0,    95,     0,     0,     0,     0,     0,
-     0,     0,    96,    97,     0,     0,     0,     0,     0,    98,
-    99,   100,     0,     0,     0,     0,   101,     0,     0,     0,
-     0,     0,   102,     0,   103,   104,     0,     0,     0,     0,
-     0,     0,     0,   105,   106,     0,     0,   107,     0,   108,
-     0,     0,     0,   109,   110,     0,     0,     0,     0,     0,
-     0,     0,   111,   112,   113,   114,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   115,   116,   117,   118,     0,   119,
-   120,     0,   121,   122,     0,   123,     0,     0,   124,   125,
-   126,   127,   128,     0,   129,   130,     0,     0,   131,   132,
-   133,   134,   135,   136,   137,   138,   139,     0,    90,    91,
-   140,     0,   141,   142,     0,   230,   143,   144,     0,   145,
-     0,   146,     0,   147,   148,   149,   150,   151,     0,   152,
-   153,   154,   155,   156,     0,     0,   157,   158,   159,   160,
-   161,    92,     0,     0,   162,     0,   163,   164,    93,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   256,
-     0,     0,     0,     0,     0,     0,    94,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,    97,     0,
-     0,     0,     0,     0,    98,    99,   100,     0,     0,     0,
-     0,   101,     0,     0,     0,     0,     0,   102,     0,   103,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
-     0,     0,   107,     0,   108,     0,     0,     0,   109,   110,
-     0,     0,     0,     0,     0,     0,     0,   111,   112,   113,
-   114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   115,
-   116,   117,   118,     0,   119,   120,     0,   121,   122,     0,
-   123,     0,     0,   124,   125,   126,   127,   128,     0,   129,
-   130,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,     0,    90,    91,   140,     0,   141,   142,     0,
-     0,   143,   144,     0,   145,     0,   146,     0,   147,   148,
-   149,   150,   151,     0,   152,   153,   154,   155,   156,     0,
-     0,   157,   158,   159,   160,   161,    92,     0,     0,   162,
-     0,   163,   164,    93,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   449,     0,     0,     0,     0,     0,
-     0,    94,     0,     0,    95,     0,     0,     0,     0,     0,
-     0,     0,    96,    97,     0,     0,     0,     0,     0,    98,
-    99,   100,     0,     0,     0,     0,   101,     0,     0,     0,
-     0,     0,   102,     0,   103,   104,     0,     0,     0,     0,
-     0,     0,     0,   105,   106,     0,     0,   107,     0,   108,
-     0,     0,     0,   109,   110,     0,     0,     0,     0,     0,
-     0,     0,   111,   112,   113,   114,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   115,   116,   117,   118,     0,   119,
-   120,     0,   121,   122,     0,   123,     0,     0,   124,   125,
-   126,   127,   128,     0,   129,   130,     0,     0,   131,   132,
-   133,   134,   135,   136,   137,   138,   139,     0,    90,    91,
-   140,     0,   141,   142,     0,     0,   143,   144,     0,   145,
-     0,   146,     0,   147,   148,   149,   150,   151,     0,   152,
-   153,   154,   155,   156,     0,     0,   157,   158,   159,   160,
-   161,    92,     0,     0,   162,     0,   163,   164,    93,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   821,
-     0,     0,     0,     0,     0,     0,    94,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,    97,     0,
-     0,     0,     0,     0,    98,    99,   100,     0,     0,     0,
-     0,   101,     0,     0,     0,     0,     0,   102,     0,   103,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
-     0,     0,   107,     0,   108,     0,     0,     0,   109,   110,
-     0,     0,     0,     0,     0,     0,     0,   111,   112,   113,
-   114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   115,
-   116,   117,   118,     0,   119,   120,     0,   121,   122,     0,
-   123,     0,     0,   124,   125,   126,   127,   128,     0,   129,
-   130,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,     0,    90,    91,   140,     0,   141,   142,     0,
-     0,   143,   144,     0,   145,     0,   146,     0,   147,   148,
-   149,   150,   151,     0,   152,   153,   154,   155,   156,     0,
-     0,   157,   158,   159,   160,   161,    92,     0,     0,   162,
-     0,   163,   164,    93,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1071,     0,  1434,     0,     0,     0,
-     0,    94,     0,     0,    95,     0,     0,     0,     0,     0,
-     0,     0,    96,    97,     0,     0,     0,     0,     0,    98,
-    99,   100,     0,     0,     0,     0,   101,     0,     0,     0,
-     0,     0,   102,     0,   103,   104,     0,     0,     0,     0,
-     0,     0,     0,   105,   106,  1435,     0,   107,     0,   108,
-     0,     0,  1436,   109,   110,     0,     0,     0,     0,     0,
-  1437,     0,   111,   112,   113,   114,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   115,   116,   117,   118,     0,   119,
-   120,     0,   121,   122,     0,   123,     0,     0,   124,   125,
-   126,   127,   128,     0,   129,   130,     0,     0,   131,   132,
-   133,   134,   135,   136,   137,   138,   139,     0,     0,     0,
-   140,     0,   141,   142,     0,     0,   143,   144,     0,   145,
-     0,   146,     0,   147,   148,   149,   150,   151,     0,   152,
-   153,   154,   155,   156,     0,     0,   157,   158,   159,   160,
-   161,     0,     0,     0,   162,     0,   163,   164,  1440,    90,
-    91,     0,     0,     0,     0,     0,     0,     0,     0,  1276,
-     0,     0,     0,     0,  1441,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   229,     0,     0,     0,
-     0,     0,    92,     0,     0,     0,     0,     0,     0,    93,
-     0,     0,  1442,     0,     0,     0,     0,     0,-32768,-32768,
-  1446,  1447,  1448,  1449,  1450,     0,     0,    94,     0,     0,
-    95,     0,  1451,     0,     0,     0,     0,     0,    96,    97,
-     0,     0,     0,     0,     0,    98,    99,   100,     0,     0,
-     0,     0,   101,     0,     0,     0,     0,     0,   102,     0,
-   103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
-   106,     0,     0,   107,     0,   108,     0,     0,     0,   109,
-   110,     0,     0,     0,     0,     0,     0,     0,   111,   112,
-   113,   114,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   115,   116,   117,   118,     0,   119,   120,     0,   121,   122,
-     0,   123,     0,     0,   124,   125,   126,   127,   128,     0,
-   129,   130,     0,     0,   131,   132,   133,   134,   135,   136,
-   137,   138,   139,     0,     0,     0,   140,     0,   141,   142,
-     0,   230,   143,   144,     0,   145,     0,   146,     0,   147,
-   148,   149,   150,   151,     0,   152,   153,   154,   155,   156,
-    90,    91,   157,   158,   159,   160,   161,     0,     0,     0,
-   162,     0,   163,   164,   708,     0,     0,   363,     0,     0,
-   709,     0,     0,     0,   710,     0,     0,   711,     0,     0,
-     0,     0,     0,    92,     0,     0,     0,     0,     0,     0,
-    93,     0,   712,   713,     0,     0,     0,     0,   714,     0,
-     0,     0,   715,     0,     0,     0,   716,     0,    94,     0,
-     0,    95,     0,     0,     0,     0,     0,     0,     0,    96,
-    97,     0,     0,     0,     0,     0,    98,    99,   100,     0,
-     0,     0,     0,   101,     0,     0,   717,     0,     0,   102,
-     0,   103,   104,     0,   718,     0,     0,   719,   720,     0,
-   105,   106,     0,     0,   107,     0,   108,     0,     0,     0,
-   109,   110,     0,     0,     0,   721,     0,     0,   722,   111,
-   112,   113,   114,     0,     0,   723,     0,   724,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   725,     0,     0,
-     0,   115,   116,   117,   118,   726,   119,   120,   727,   121,
-   122,   728,   123,   729,   730,   124,   125,   126,   127,   128,
-   731,   129,   130,   732,   733,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,     0,   734,   735,   140,   736,   141,
-   142,   737,   738,   143,   144,   739,   145,     0,   146,     0,
-   147,   148,   149,   150,   151,   740,   152,   153,   154,   155,
-   156,   741,   742,   157,   158,   159,   160,   161,    90,    91,
-   743,   162,   744,   163,   164,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   331,   332,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    92,   606,     0,     0,     0,     0,     0,   607,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   608,     0,
-     0,     0,     0,     0,     0,     0,    94,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,    97,     0,
-     0,     0,     0,     0,    98,    99,   100,     0,   345,     0,
-   346,   101,     0,     0,     0,     0,   609,   102,     0,   103,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
-     0,     0,   107,     0,   108,     0,     0,     0,   109,   110,
-     0,     0,     0,     0,     0,     0,     0,   111,   112,   113,
-   114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   358,     0,     0,     0,     0,     0,     0,   115,
-   116,   117,   118,     0,   119,   120,     0,   121,   122,     0,
-   123,     0,     0,   124,   125,   126,   127,   128,     0,   129,
-   130,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,     0,     0,     0,   140,     0,   141,   142,     0,
-     0,   143,   144,     0,   145,     0,   146,     0,   147,   148,
-   149,   150,   151,     0,   152,   153,   154,   155,   156,    90,
-    91,   157,   158,   159,   160,   161,     0,     0,     0,   162,
-     0,   163,   164,     0,     0,     0,     0,   858,     0,     0,
-     0,     0,     0,   893,     0,     0,     0,     0,     0,     0,
-     0,     0,    92,     0,     0,     0,     0,     0,     0,    93,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   860,     0,     0,     0,     0,     0,    94,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,    97,
-     0,     0,     0,     0,     0,    98,    99,   100,     0,     0,
-     0,     0,   101,     0,     0,     0,     0,     0,   102,     0,
-   103,   104,     0,     0,     0,     0,     0,     0,   861,   105,
-   106,     0,     0,   107,     0,   108,     0,     0,     0,   109,
-   110,     0,     0,     0,     0,     0,     0,     0,   111,   112,
-   113,   114,     0,     0,     0,     0,     0,     0,   862,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   115,   116,   117,   118,     0,   119,   120,     0,   121,   122,
-     0,   123,     0,     0,   124,   125,   126,   127,   128,     0,
-   129,   130,     0,     0,   131,   132,   133,   134,   135,   136,
-   137,   138,   139,     0,    90,    91,   140,     0,   141,   142,
-     0,     0,   143,   144,     0,   145,     0,   146,     0,   147,
-   148,   149,   150,   151,     0,   152,   153,   154,   155,   156,
-     0,     0,   157,   158,   159,   160,   161,    92,     0,     0,
-   162,     0,   163,   164,    93,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    94,     0,     0,    95,     0,     0,     0,     0,
-     0,     0,     0,    96,    97,     0,     0,     0,     0,     0,
-    98,    99,   100,   225,     0,     0,     0,   101,     0,     0,
-     0,     0,     0,   102,     0,   103,   104,     0,     0,     0,
-     0,     0,     0,     0,   105,   106,     0,     0,   107,     0,
-   108,     0,     0,     0,   109,   110,     0,     0,     0,     0,
-     0,     0,     0,   226,   112,   113,   114,     0,     0,   227,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   115,   116,   117,   118,     0,
-   119,   120,     0,   121,   122,     0,   123,     0,     0,   124,
-   125,   126,   127,   128,     0,   129,   130,     0,     0,   131,
-   132,   133,   134,   135,   136,   137,   138,   139,     0,    90,
-    91,   140,     0,   141,   142,     0,     0,   143,   144,     0,
-   145,     0,   146,     0,   147,   148,   149,   150,   151,     0,
-   152,   153,   154,   155,   156,     0,   229,   157,   158,   159,
-   160,   161,    92,     0,     0,   162,     0,   163,   164,    93,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    94,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,    97,
-     0,     0,     0,     0,     0,    98,    99,   100,     0,     0,
-     0,     0,   101,     0,     0,     0,     0,     0,   102,     0,
-   103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
-   106,     0,     0,   107,     0,   108,     0,     0,     0,   109,
-   110,     0,     0,     0,     0,     0,     0,     0,   111,   112,
-   113,   114,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   115,   116,   117,   118,     0,   119,   120,     0,   121,   122,
-     0,   123,     0,     0,   124,   125,   126,   127,   128,     0,
-   129,   130,     0,     0,   131,   132,   133,   134,   135,   136,
-   137,   138,   139,     0,    90,    91,   140,     0,   141,   142,
-     0,   230,   143,   144,     0,   145,     0,   146,     0,   147,
-   148,   149,   150,   151,     0,   152,   153,   154,   155,   156,
-     0,     0,   157,   158,   159,   160,   161,    92,     0,     0,
-   162,     0,   163,   164,    93,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   913,     0,    94,     0,     0,    95,     0,     0,     0,     0,
-     0,     0,     0,    96,    97,     0,     0,     0,     0,     0,
-    98,    99,   100,     0,     0,     0,     0,   101,     0,     0,
-     0,     0,     0,   102,     0,   103,   104,     0,     0,     0,
-     0,     0,     0,     0,   105,   106,     0,   914,   107,     0,
-   108,     0,     0,     0,   109,   110,     0,     0,     0,     0,
-     0,     0,     0,   111,   112,   113,   114,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   115,   116,   117,   118,     0,
-   119,   120,     0,   121,   122,     0,   123,     0,     0,   124,
-   125,   126,   127,   128,     0,   129,   130,     0,     0,   131,
-   132,   133,   134,   135,   136,   137,   138,   139,     0,    90,
-    91,   140,     0,   141,   142,     0,     0,   143,   144,     0,
-   145,     0,   146,     0,   147,   148,   149,   150,   151,     0,
-   152,   153,   154,   155,   156,     0,     0,   157,   158,   159,
-   160,   161,    92,     0,     0,   162,     0,   163,   164,    93,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    94,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,    97,
-     0,     0,     0,     0,     0,    98,    99,   100,     0,     0,
-     0,     0,   101,     0,     0,     0,     0,     0,   102,     0,
-   103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
-   106,     0,     0,   107,     0,   108,     0,     0,     0,   109,
-   110,     0,     0,     0,     0,     0,     0,     0,   250,   112,
-   113,   114,     0,     0,   251,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   115,   116,   117,   118,     0,   119,   120,     0,   121,   122,
-     0,   123,     0,     0,   124,   125,   126,   127,   128,     0,
-   129,   130,     0,     0,   131,   132,   133,   134,   135,   136,
-   137,   138,   139,     0,    90,    91,   140,     0,   141,   142,
-     0,     0,   143,   144,     0,   145,     0,   146,     0,   147,
-   148,   149,   150,   151,     0,   152,   153,   154,   155,   156,
-     0,     0,   157,   158,   159,   160,   161,    92,     0,     0,
-   162,     0,   163,   164,    93,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    94,     0,     0,    95,     0,     0,     0,     0,
-     0,     0,     0,    96,    97,     0,     0,     0,     0,     0,
-    98,    99,   100,     0,     0,     0,     0,   101,     0,     0,
-     0,     0,     0,   102,     0,   103,   104,     0,     0,     0,
-     0,     0,     0,     0,   105,   106,     0,     0,   107,     0,
-   108,     0,     0,     0,   109,   110,     0,     0,     0,     0,
-     0,     0,     0,   253,   112,   113,   114,     0,     0,   254,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   115,   116,   117,   118,     0,
-   119,   120,     0,   121,   122,     0,   123,     0,     0,   124,
-   125,   126,   127,   128,     0,   129,   130,     0,     0,   131,
-   132,   133,   134,   135,   136,   137,   138,   139,     0,    90,
-    91,   140,     0,   141,   142,     0,     0,   143,   144,     0,
-   145,     0,   146,     0,   147,   148,   149,   150,   151,     0,
-   152,   153,   154,   155,   156,     0,     0,   157,   158,   159,
-   160,   161,    92,     0,     0,   162,     0,   163,   164,    93,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    94,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,    97,
-     0,     0,     0,     0,     0,    98,    99,   100,     0,     0,
-     0,     0,   101,     0,     0,     0,     0,     0,   102,     0,
-   103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
-   106,     0,     0,   107,     0,   108,     0,     0,     0,   109,
-   110,     0,     0,     0,     0,     0,     0,     0,   111,   112,
-   113,   114,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   115,   116,   117,   118,     0,   119,   120,     0,   121,   122,
-     0,   123,     0,     0,   124,   125,   126,   127,   128,     0,
-   129,   130,     0,     0,   131,   132,   133,   134,   135,   136,
-   137,   138,   139,     0,    90,    91,   140,     0,   141,   142,
-     0,     0,   143,   144,   637,   145,     0,   146,     0,   147,
-   148,   149,   150,   151,     0,   152,   153,   154,   155,   156,
-     0,     0,   157,   158,   159,   160,   161,    92,     0,     0,
-   162,     0,   163,   164,    93,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    94,     0,     0,    95,     0,     0,     0,     0,
-     0,     0,     0,    96,    97,     0,     0,     0,     0,     0,
-    98,    99,   100,     0,     0,     0,     0,   101,     0,     0,
-     0,     0,     0,   102,     0,   103,   104,     0,     0,     0,
-     0,     0,     0,     0,   105,   106,     0,     0,   107,     0,
-   108,     0,     0,     0,   109,   110,     0,     0,     0,     0,
-     0,     0,     0,   111,   112,   113,   114,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   115,   116,   117,   118,     0,
-   119,   120,     0,   121,   122,     0,   123,     0,     0,   124,
-   125,   126,   127,   128,     0,   129,   130,     0,     0,   131,
-   132,   133,   134,   135,   136,   137,   138,   139,     0,    90,
-    91,   140,     0,   141,   142,     0,  1271,   143,   144,  1145,
-   145,     0,   146,     0,   147,   148,   149,   150,   151,     0,
-   152,   153,   154,   155,   156,     0,     0,   157,   158,   159,
-   160,   161,    92,     0,     0,   162,     0,   163,   164,    93,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    94,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,    97,
-     0,     0,     0,     0,     0,    98,    99,   100,     0,     0,
-     0,     0,   101,     0,     0,     0,     0,     0,   102,     0,
-   103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
-   106,     0,     0,   107,     0,   108,     0,     0,     0,   109,
-   110,     0,     0,     0,     0,     0,     0,     0,   111,   112,
-   113,   114,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   115,   116,   117,   118,     0,   119,   120,     0,   121,   122,
-     0,   123,     0,     0,   124,   125,   126,   127,   128,     0,
-   129,   130,     0,     0,   131,   132,   133,   134,   135,   136,
-   137,   138,   139,     0,    90,    91,   140,     0,   141,   142,
-     0,     0,   143,   144,     0,   145,     0,   146,     0,   147,
-   148,   149,   150,   151,     0,   152,   153,   154,   155,   156,
-     0,     0,   157,   158,   159,   160,   161,    92,     0,     0,
-   162,     0,   163,   164,    93,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    94,     0,     0,    95,     0,     0,     0,     0,
-     0,     0,     0,    96,    97,     0,     0,     0,     0,     0,
-    98,    99,   100,     0,     0,     0,     0,   101,     0,     0,
-     0,     0,     0,   102,     0,   103,   104,     0,     0,     0,
-     0,     0,     0,     0,   105,   106,     0,     0,   107,     0,
-   108,     0,     0,     0,   109,   110,     0,     0,     0,     0,
-     0,     0,     0,   111,   112,   113,   114,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   115,   116,   117,   118,     0,
-   119,   120,     0,   121,   122,     0,   123,     0,     0,   124,
-   125,   126,   127,   128,     0,   129,   130,     0,     0,   131,
-   132,   133,   134,   135,   136,   137,   138,   139,     0,    90,
-    91,   140,     0,   141,   142,     0,     0,   143,   144,     0,
-   145,     0,   146,     0,   147,   148,   149,   150,   151,     0,
-   152,   153,   154,   155,   156,     0,     0,   157,   158,   159,
-   160,   161,    92,     0,     0,   162,     0,   163,   164,    93,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    94,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,    97,
-     0,     0,     0,     0,     0,    98,    99,   100,     0,     0,
-     0,     0,   101,     0,     0,     0,     0,     0,   102,     0,
-   103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
-   106,     0,     0,   829,     0,   108,     0,     0,     0,   109,
-   110,     0,     0,     0,     0,     0,     0,     0,   111,   112,
-   113,   114,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   115,   116,   117,   118,     0,   119,   120,     0,   121,   122,
-     0,   123,     0,     0,   124,   125,   126,   127,   128,     0,
-   129,   130,     0,     0,   131,   132,   133,   134,   135,   136,
-   137,   138,   139,     0,     0,     0,   140,     0,   141,   142,
-     0,     0,   143,   144,     0,   145,     0,   146,     0,   147,
-   148,   149,   150,   151,     0,   152,   153,   154,   155,   156,
-   331,   332,   157,   158,   159,   160,   161,     0,     0,     0,
-   162,     0,   163,   164,     0,     0,     0,    92,   338,     0,
-     0,     0,     0,     0,   506,     0,   331,   332,     0,     0,
-     0,     0,   342,     0,   343,     0,     0,     0,     0,     0,
-     0,     0,    94,    92,   338,     0,     0,     0,   344,     0,
-   506,     0,     0,     0,     0,     0,     0,     0,   342,     0,
-   343,    99,   100,     0,   345,     0,   346,     0,    94,     0,
-     0,     0,   350,     0,   344,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    99,   100,     0,
-   345,     0,   346,     0,     0,   110,    15,     0,   350,     0,
-     0,     0,     0,   507,   508,     0,     0,     0,     0,     0,
-     0,   356,     0,     0,   331,   332,     0,     0,   358,     0,
-     0,   110,     0,     0,     0,   115,     0,     0,   509,   507,
-   508,    92,   338,     0,     0,     0,     0,   356,   506,     0,
-     0,     0,     0,     0,   358,     0,     0,     0,   343,     0,
-     0,   115,     0,     0,   509,     0,    94,     0,     0,     0,
-     0,     0,   344,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   331,   332,     0,    99,   100,     0,   345,     0,
-   346,     0,     0,     0,     0,   360,   350,     0,     0,    92,
-   338,     0,     0,     0,     0,     0,   506,     0,   510,   243,
-     0,   319,   363,   364,     0,     0,   343,     0,     0,   110,
-     0,   360,     0,     0,    94,     0,     0,   507,   508,     0,
-   344,     0,     0,     0,   510,   243,     0,   319,   363,   364,
-   331,   332,   358,    99,   100,     0,   345,     0,   346,   115,
-     0,     0,   509,     0,   350,     0,     0,    92,   338,     0,
-     0,     0,     0,     0,   506,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   343,     0,     0,   110,     0,     0,
-     0,     0,    94,     0,     0,   507,   508,     0,   344,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   358,    99,   100,     0,   345,     0,   346,   115,  1124,   360,
-   509,     0,   350,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   510,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   110,     0,     0,     0,     0,
-     0,     0,     0,   507,   508,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   358,     0,
-     0,     0,     0,     0,     0,   115,     0,   360,   509,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   510,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   510
-};
-
-static const short yycheck[] = {     3,
-   326,    32,     6,   172,   202,   185,    24,   199,   406,   477,
-   644,  1057,    16,    17,   588,    19,   875,   997,    47,    23,
-   224,     6,   191,    27,    28,    29,    30,   385,     0,     0,
-   434,     0,     6,     0,   502,     9,    39,    66,  1065,    56,
-  1434,   548,    39,  1092,     6,    39,    39,   135,    68,    54,
-    45,   681,   682,   683,   684,    56,     5,   135,     7,    39,
-    16,    33,    33,   126,    33,   332,    33,    21,    64,   115,
-    56,    25,    80,   241,    44,    39,    21,   115,    13,   346,
-   142,    85,   694,     6,   696,   697,   554,    40,    38,   220,
-    40,     6,   220,    93,    39,    44,   192,  1676,   136,    56,
-   228,    55,   131,   429,    13,   952,   114,   238,   135,   329,
-    90,   469,   115,    40,    78,    65,   953,   113,   757,   758,
-   759,   760,   761,   762,    86,    40,   324,    62,   296,   327,
-     8,    87,   218,   136,   135,   135,   775,   135,    65,    69,
-   126,   103,    77,    88,   240,   140,   116,  1726,   102,  1543,
-    65,   237,   240,    62,    40,  1002,   218,   102,   154,    57,
-   116,   224,   240,   108,   242,   115,  1003,   371,    77,   173,
-   174,    40,    40,   177,   178,   237,   180,   181,   132,    65,
-   133,   185,   402,   133,    40,   189,   190,   132,   115,   193,
-   217,   195,   196,   197,     8,   241,    65,    65,   202,   203,
-   115,    99,   209,   241,   219,    68,   133,   225,   566,    65,
-   225,   226,   570,   242,  1260,   219,     3,   118,   133,  1199,
-   240,   218,  1616,   240,   218,   218,   493,   695,   233,   115,
-    61,   262,   263,   134,   238,   220,   221,   241,   241,   240,
-   190,   248,   240,   247,   242,   175,   115,   133,   197,    80,
-   173,   174,  1301,  1302,   218,   154,    21,   180,   220,   115,
-     6,   191,   189,   190,   133,   133,   228,   241,   240,   240,
-   193,   240,   195,   240,  1668,   279,  1670,   133,    51,   107,
-   203,   501,   135,   114,   119,   120,   201,   241,   135,   647,
-    55,   241,   296,   215,    36,   313,    42,   227,   228,   229,
-   230,   231,    17,   307,   190,   133,   172,   633,    23,   239,
-   237,   531,    27,   320,   241,    30,  1343,    90,    40,    61,
-   324,   951,   109,   327,   328,   329,   218,   218,   158,   687,
-   960,   961,   962,   963,   964,   965,   966,   102,    80,    81,
-   159,   219,   954,    65,   218,   201,   237,   551,   118,   227,
-   228,   229,   230,   231,   372,   241,   186,   130,    51,  1264,
-   999,   239,  1267,   237,  1410,   152,   218,   132,   187,    51,
-    85,  1417,   114,  1012,  1013,  1014,  1015,  1016,  1017,  1018,
-   398,   168,   400,   401,   307,   237,   220,   240,   128,   242,
-   421,  1371,  1004,   240,   901,   242,   236,    90,   402,   403,
-   217,   241,   144,   143,   238,   219,    88,   765,    90,   234,
-   414,   133,   118,   227,   228,   229,   230,   231,   177,   926,
-    56,   439,   820,   149,   593,   239,    62,   153,   208,   209,
-   434,   172,   463,   192,     8,   833,   440,   130,   218,    13,
-   644,   880,   196,   447,   448,   884,   236,   237,   130,   453,
-   200,    73,   456,   457,  1503,  1314,   240,   207,   242,   463,
-   967,   681,   682,   683,   684,    62,   181,    93,   190,    51,
-   104,   478,   479,   480,   189,    10,   880,     4,   485,  1525,
-   884,  1527,     9,   220,   221,   953,    47,    14,    62,    10,
-    70,    18,   499,    21,    93,    69,   240,   501,   242,    27,
-    93,   969,   970,    77,   219,    66,    88,   240,    90,   224,
-   978,    39,  1019,    69,    88,   145,   229,   230,   231,   526,
-   116,   528,    96,   238,   447,   529,   239,   531,    93,   240,
-   453,   242,   247,   456,   457,  1003,    97,   757,   758,   759,
-   760,   761,   762,    10,  1571,  1119,  1595,   145,   130,   553,
-   240,   555,   242,  1021,   145,   775,   560,  1169,  1170,  1171,
-    88,   151,   217,   218,   279,   220,    57,   222,  1086,  1087,
-   131,  1598,    63,   240,   102,   242,    70,   781,   585,   586,
-   108,   240,   786,   242,    75,    70,   790,  1094,  1227,   240,
-   794,   242,   234,   919,   798,  1207,  1208,  1209,   802,    15,
-     6,   175,   806,   240,   132,   242,   810,    98,    54,   229,
-   814,   618,   832,   620,   621,   622,   623,   191,   142,   175,
-   111,   625,   219,   981,   589,   590,   591,   240,   632,   242,
-   227,   228,   229,   230,   231,   191,    10,   240,   642,   242,
-   142,   241,   239,    62,   648,   219,   240,    10,   242,   653,
-   224,   225,   226,   227,   228,   229,   230,   231,   227,   228,
-   229,   230,   231,    73,   240,   239,   242,    35,   242,    88,
-   239,   227,   228,   229,   230,   231,   113,   681,   682,   683,
-   684,   241,   240,   239,   219,   138,   141,   402,   403,   224,
-   225,   226,   227,   228,   229,   230,   231,    93,   219,   414,
-   220,   240,   222,   242,   239,   241,   227,   228,   229,   230,
-   231,   241,   904,   905,  1348,   220,   241,  1185,   239,   923,
-   229,   230,   231,   903,   240,    36,   242,   931,   241,   241,
-   239,   951,   952,   448,   241,   227,   228,   229,   230,   231,
-   960,   961,   962,   963,   964,   965,   966,   239,   101,    20,
-    61,   241,   219,   757,   758,   759,   760,   761,   762,   241,
-   227,   228,   229,   230,   231,   219,   240,   224,   242,    80,
-    81,   775,   239,   227,   228,   229,   230,   231,   240,   999,
-   242,   240,  1002,   242,   240,   239,   242,   237,   242,   229,
-   230,   231,  1012,  1013,  1014,  1015,  1016,  1017,  1018,   239,
-   219,   237,   240,   114,   242,   224,   225,   226,   227,   228,
-   229,   230,   231,   124,   125,   819,   229,   230,   231,   241,
-   240,   839,   242,    29,   241,   829,   239,   241,   832,   240,
-   834,   242,   240,   144,   242,    10,   551,   241,   842,   155,
-   229,   230,   231,   241,   160,   849,   241,  1354,   241,    29,
-   239,    57,   236,   241,   236,   171,    76,    63,   876,   863,
-   142,   865,   866,   867,   868,  1372,   182,   183,  1072,    75,
-   874,    62,   133,    76,    76,   195,   880,    57,    84,   886,
-   884,   180,   199,    63,   241,    93,   904,   905,    54,   893,
-   206,    71,    98,   126,   136,    75,   241,   904,   905,   903,
-   904,   905,   906,    56,    84,   111,   910,   236,   912,   913,
-   140,   236,    20,   126,   918,   115,   126,   632,    98,   842,
-   142,   126,   240,   927,   928,   131,   849,   126,   935,   644,
-   618,   111,   620,   621,   622,   623,    13,   227,   228,   229,
-   230,   231,   949,   122,  1451,   868,   239,   951,   952,   239,
-  1154,  1419,    56,   242,   242,   219,   960,   961,   962,   963,
-   964,   965,   966,   227,   228,   229,   230,   231,   236,   193,
-   893,   217,   241,   240,    92,   239,    25,  1289,    93,  1291,
-  1292,  1293,  1294,  1295,  1296,    62,    96,   910,   995,   912,
-   224,   165,    69,  1000,  1001,   999,   101,   204,  1002,    93,
-    77,    10,   170,   224,   240,  1363,   224,  1227,  1012,  1013,
-  1014,  1015,  1016,  1017,  1018,   219,   242,   240,   116,    24,
-   224,   225,   226,   227,   228,   229,   230,   231,   242,    56,
-   242,   242,   114,    13,   219,   239,    81,   238,   242,   224,
-   225,   226,   227,   228,   229,   230,   231,   242,  1458,   242,
-   242,   241,  1056,  1057,   239,   241,   145,   219,  1062,   241,
-   241,  1065,   217,   225,   226,   227,   228,   229,   230,   231,
-  1468,  1481,  1482,  1483,  1484,  1485,  1486,   239,   241,  1086,
-  1087,  1088,    62,   242,   242,  1089,  1593,   237,  1092,    69,
-  1108,   242,  1599,  1600,   241,   241,   241,    77,   175,   241,
-   241,   241,   241,   178,   819,   241,   241,   241,  1615,   241,
-   241,   241,   241,  1425,   191,   241,  1120,   832,  1122,   241,
-   241,  1433,   197,  1130,  1128,  1437,   242,  1439,   241,   241,
-  1442,  1443,  1444,  1445,  1446,  1447,  1448,  1449,  1450,  1308,
-   241,  1453,   219,   236,  1348,   241,   241,   224,   225,   226,
-   227,   228,   229,   230,   231,   241,   241,   241,   241,   874,
-  1472,   224,   239,   200,   177,  1575,    72,   241,    72,   241,
-  1677,    62,   224,   142,  1584,  1585,  1586,  1587,  1588,  1589,
-  1590,  1591,  1592,   135,  1594,    54,   142,    46,   239,    54,
-   219,    62,   242,     3,   242,   175,     6,   241,   227,   228,
-   229,   230,   231,   242,   239,   241,    16,    17,   242,    19,
-   239,   191,   242,    23,   242,   240,   242,    27,    28,    29,
-    30,   242,   242,  1227,   242,   242,   242,   229,    59,   217,
-   135,   217,   240,  1545,   241,   241,   126,    59,   214,   219,
-    54,     8,    96,   126,    10,   173,    13,   227,   228,   229,
-   230,   231,   102,   176,   217,    58,  1260,   241,   241,   239,
-   242,   242,    71,   242,   242,   242,   241,  1271,   242,   241,
-  1680,   238,  1470,    98,   242,    85,   242,   242,   242,  1283,
-   242,   242,   240,   242,    71,  1289,    15,  1291,  1292,  1293,
-  1294,  1295,  1296,   242,   242,    62,   242,  1301,  1302,  1317,
-   242,   242,    69,  1307,   242,   242,   242,   242,   242,   242,
-    77,   242,   242,  1625,  1318,   242,   242,   242,   242,    60,
-  1338,    88,   242,   162,  1328,  1329,   219,   241,  1332,    96,
-   217,   224,   225,   226,   227,   228,   229,   230,   231,  1343,
-   241,  1056,  1057,   241,    39,    39,   212,   164,    48,   241,
-  1676,    72,   241,    90,    72,    94,    92,    95,   242,    71,
-  1283,   242,   242,   173,   174,   242,   242,   177,   178,   242,
-   180,   181,   242,   240,   242,   185,   239,   218,   242,   189,
-   190,   242,    71,   193,  1307,   195,   196,   197,   241,   240,
-   105,    73,   202,   203,  1563,   241,   236,   241,   241,   241,
-     8,   108,   163,   241,  1422,  1328,  1410,   242,   175,   219,
-   483,   240,   242,  1417,   241,    79,   242,     8,   242,   242,
-   241,  1425,   242,   239,   191,   240,   501,   174,   238,  1433,
-   241,   241,    93,  1437,   241,  1439,   242,   247,  1442,  1443,
-  1444,  1445,  1446,  1447,  1448,  1449,  1450,   242,   217,  1453,
-   242,    13,   219,   242,  1458,   118,   531,   224,   225,   226,
-   227,   228,   229,   230,   231,   238,  1470,   242,  1472,   279,
-   234,   134,   239,     4,   234,   242,   139,  1481,  1482,  1483,
-  1484,  1485,  1486,   146,   147,     0,   296,   150,     0,    33,
-   270,   597,   873,  1102,   401,   550,   428,   307,   161,  1503,
-    62,   863,  1120,  1335,   865,  1473,   169,    69,  1623,   172,
-  1697,  1722,  1687,  1723,   324,    77,  1717,   327,   328,   329,
-  1122,  1525,  1110,  1527,    26,   905,    88,   906,   248,   408,
-    13,   194,   325,   196,   344,  1689,  1719,   648,   201,   202,
-  1598,  1545,  1597,   199,   309,  1260,  1706,    31,   849,  1108,
-   360,  1569,   240,  1673,   918,   817,     8,   844,  1602,  1088,
-  1057,    13,  1720,   567,  1568,  1268,  1265,  1571,  1197,  1576,
-  1577,  1575,   360,   832,   650,   196,  1659,  1271,   551,    -1,
-  1584,  1585,  1586,  1587,  1588,  1589,  1590,  1591,  1592,    -1,
-  1594,  1595,   402,   403,  1598,   555,    -1,    -1,  1602,    -1,
-    -1,    -1,    -1,  1318,   414,    -1,   681,   682,   683,   684,
-    62,    -1,    -1,   175,    -1,    -1,    -1,    69,    -1,    -1,
-    -1,  1625,    -1,  1627,   434,    77,    -1,    -1,    -1,   191,
-   440,    -1,    -1,  1348,    -1,     8,    88,   447,   448,    -1,
-    13,    -1,    -1,   453,    96,  1568,   456,   457,    -1,    -1,
-    -1,    -1,    -1,   463,    -1,    -1,  1674,   219,    -1,    -1,
-    -1,  1665,   224,   225,   226,   227,   228,   229,   230,   231,
-    -1,    -1,    -1,    -1,   484,  1706,  1680,   239,    -1,    -1,
-    -1,    -1,   757,   758,   759,   760,   761,   762,    -1,    62,
-    -1,    -1,    -1,    -1,    -1,  1410,    69,    13,    -1,    -1,
-   775,    -1,  1417,    -1,    77,  1723,    -1,    -1,   781,    -1,
-    -1,    -1,    -1,   786,    -1,    88,  1720,   790,    -1,   529,
-   329,   794,    -1,   175,    -1,   798,    -1,    -1,    -1,   802,
-    -1,    -1,    -1,   806,    -1,    -1,    -1,   810,   548,   191,
-    -1,   814,    -1,   553,    -1,   555,    62,    -1,    -1,    -1,
-   560,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    77,    -1,    -1,    -1,    -1,    -1,   219,    -1,    -1,
-    -1,    -1,   224,   225,   226,   227,   228,   229,   230,   231,
-    -1,     8,    -1,    -1,    -1,    -1,    13,   239,    -1,    -1,
-   242,    -1,    -1,   402,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  1525,    -1,  1527,    -1,    -1,   625,    -1,    -1,   191,    -1,
-    -1,    -1,   632,    -1,    -1,    -1,    -1,    -1,    -1,   902,
-    -1,    -1,   642,    -1,    -1,    62,    -1,    -1,   648,    -1,
-    -1,    -1,    69,   653,    -1,    -1,   219,    -1,    -1,    -1,
-    77,   224,   225,   226,   227,   228,   229,   230,   231,   175,
-    -1,    88,    -1,    -1,    -1,    -1,   239,    -1,    -1,    96,
-    -1,    -1,    13,    -1,    -1,   191,   951,   952,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   960,   961,   962,   963,   964,
-   965,   966,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   219,    -1,    -1,    -1,    -1,   224,   225,
-   226,   227,   228,   229,   230,   231,    -1,    -1,    -1,    -1,
-    -1,    62,    -1,   239,   999,    -1,    -1,  1002,    69,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    77,  1012,  1013,  1014,
-  1015,  1016,  1017,  1018,    -1,    -1,    -1,    -1,   175,  1022,
-    -1,    -1,    -1,    -1,    -1,    -1,  1029,  1030,    -1,  1032,
-  1033,    -1,  1035,  1036,   191,  1038,  1039,    -1,  1041,  1042,
-    -1,  1044,  1045,    -1,  1047,  1048,    -1,  1050,  1051,    -1,
-  1053,  1054,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   219,    -1,    -1,    -1,    -1,   224,   225,   226,
-   227,   228,   229,   230,   231,    -1,    -1,    -1,    -1,   819,
-    -1,    -1,   239,    -1,  1089,   242,    -1,    -1,    -1,   829,
-    -1,    -1,   832,    -1,   834,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   842,    -1,   175,    -1,    -1,    -1,    -1,   849,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   191,    -1,    -1,   863,    -1,   865,   866,   867,   868,    -1,
-    -1,    -1,    -1,    -1,   874,    -1,    -1,    -1,    -1,    -1,
-   880,    -1,    -1,    -1,   884,    -1,    -1,    -1,   219,    -1,
-    -1,    -1,    -1,   893,   225,   226,   227,   228,   229,   230,
-   231,   901,    -1,   903,   904,   905,   906,    -1,   239,    -1,
-   910,    -1,   912,   913,    -1,    -1,    -1,    -1,   918,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   926,   927,   928,    -1,
-  1193,    -1,    -1,    -1,  1197,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,    -1,
-    -1,    -1,  1227,    12,    -1,  1228,    -1,   967,    -1,    -1,
-    -1,    -1,    -1,    22,    -1,    -1,    -1,    26,    -1,    28,
-     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    38,
-    -1,    40,    -1,    -1,    -1,    44,    -1,    46,    -1,    -1,
-    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,    58,
-    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,  1019,
-    -1,    -1,  1022,    -1,  1289,    -1,  1291,  1292,  1293,  1294,
-  1295,  1296,    -1,   832,    62,    -1,    -1,    -1,    -1,    -1,
-    -1,    69,    -1,    -1,    -1,    -1,    -1,    13,    -1,    77,
-    -1,    -1,    -1,    -1,    -1,    -1,  1056,  1057,    -1,    -1,
-    88,   110,  1062,   112,  1329,  1065,   115,   116,    96,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1343,    -1,
-    -1,    -1,    -1,    -1,   133,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1092,    -1,  1094,    -1,    62,    -1,    -1,   148,
-    -1,    -1,  1365,    69,    -1,    -1,  1369,   156,   157,    -1,
-    -1,    77,    -1,    -1,    -1,    -1,    -1,   166,   167,    -1,
-  1120,    -1,  1122,    -1,    -1,    -1,    -1,    -1,  1128,   178,
-   179,    -1,   181,    -1,    -1,   184,    -1,    -1,    -1,    -1,
-    -1,   190,    -1,    -1,    -1,    -1,    -1,   175,    -1,   198,
-    -1,    -1,    -1,    -1,    -1,    -1,   205,    -1,    -1,    -1,
-  1425,    -1,   211,   191,   213,    -1,    -1,    -1,  1433,    -1,
-     8,    -1,  1437,    -1,  1439,    13,    -1,  1442,  1443,  1444,
-  1445,  1446,  1447,  1448,  1449,  1450,    -1,    -1,  1453,    -1,
-    -1,   219,   241,  1458,    -1,    -1,   224,   225,   226,   227,
-   228,   229,   230,   231,    -1,    -1,    -1,  1472,    -1,   175,
-    -1,   239,    -1,    -1,   242,    -1,  1481,  1482,  1483,  1484,
-  1485,  1486,    -1,  1022,    62,   191,    -1,    -1,  1228,    -1,
-    -1,    69,    -1,    -1,    -1,    -1,    -1,     8,    -1,    77,
-    -1,    -1,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    88,    -1,    -1,   219,    -1,    -1,    -1,    -1,    96,    -1,
-  1260,   227,   228,   229,   230,   231,    -1,    -1,    -1,    -1,
-    -1,  1271,    -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,
-  1545,    -1,    -1,  1283,    -1,    -1,    -1,    -1,    -1,    -1,
-  1089,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,
-    -1,  1301,  1302,    -1,    -1,    -1,    77,  1307,    -1,    -1,
-  1575,    -1,    -1,    -1,    -1,    -1,    -1,    88,  1318,  1584,
-  1585,  1586,  1587,  1588,  1589,  1590,  1591,  1592,  1328,  1594,
-    -1,    -1,  1332,    -1,    -1,    -1,    -1,   175,    -1,    -1,
-    -1,    -1,    -1,  1343,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   191,  1354,    -1,    -1,    -1,    -1,    -1,
-  1625,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1372,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   219,    -1,  1383,    -1,    -1,   224,   225,   226,   227,
-   228,   229,   230,   231,   119,   120,    -1,    -1,    -1,    -1,
-    -1,   239,   240,    -1,   175,    -1,    -1,   132,    -1,   134,
-  1410,    -1,    -1,    -1,   139,  1680,    -1,  1417,    -1,    -1,
-   191,   146,   147,    -1,    -1,   150,    -1,    -1,    -1,  1228,
-    -1,    -1,    -1,    -1,  1434,    -1,   161,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   169,    -1,    -1,   172,   219,    -1,
-    -1,  1451,    -1,   224,   225,   226,   227,   228,   229,   230,
-   231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,   194,
-  1470,   196,    -1,    -1,    -1,   501,   201,   202,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   210,    -1,    -1,    -1,    -1,
-  1289,    -1,  1291,  1292,  1293,  1294,  1295,  1296,    -1,    -1,
-    -1,    -1,    -1,  1503,    -1,   531,    -1,    -1,    -1,    -1,
-    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1524,  1525,   362,  1527,    -1,   365,
-  1329,   367,   368,   369,   370,   371,    -1,  1537,    -1,    -1,
-    -1,    -1,    -1,  1543,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1568,    -1,
-    -1,  1571,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   419,  1383,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,  1593,    -1,  1595,    -1,    -1,  1598,  1599,
-  1600,    -1,  1602,    -1,    -1,    -1,    -1,    -1,    -1,   445,
-    -1,    -1,    -1,    -1,    -1,  1615,  1616,    -1,    -1,    -1,
-    -1,    -1,    -1,  1623,    -1,    -1,  1425,  1627,    -1,    -1,
-    -1,    -1,    -1,    -1,  1433,  1434,    -1,   473,  1437,    -1,
-  1439,    -1,    -1,  1442,  1443,  1444,  1445,  1446,  1447,  1448,
-  1449,  1450,    -1,    -1,  1453,   681,   682,   683,   684,  1458,
-    -1,   497,   498,    -1,    -1,  1665,    -1,    -1,  1668,   505,
-  1670,    -1,    -1,  1472,    -1,    -1,     8,  1677,   514,    -1,
-    -1,    13,  1481,  1482,  1483,  1484,  1485,  1486,    -1,    -1,
-    -1,    -1,    -1,    -1,   530,    -1,    -1,    -1,   534,    -1,
-   536,    -1,    -1,   539,   540,   541,   542,   543,   544,   545,
-   546,   547,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  1720,    -1,    -1,    -1,    -1,  1524,    -1,    -1,    -1,    -1,
-    62,   757,   758,   759,   760,   761,   762,    69,  1537,    -1,
-    -1,    -1,    -1,    -1,  1543,    77,  1545,    -1,    -1,   775,
-    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  1575,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  1584,  1585,  1586,  1587,  1588,
-  1589,  1590,  1591,  1592,     8,  1594,    -1,    -1,    -1,    13,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   649,    -1,    -1,    -1,  1616,    -1,    -1,
-    -1,    -1,    -1,    -1,  1623,    -1,  1625,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   175,    -1,    -1,    -1,    -1,    62,    -1,
-    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,   694,   191,
-   696,   697,    -1,    77,    -1,    -1,    -1,    -1,   704,  1668,
-    -1,  1670,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,
-    -1,  1680,    96,    -1,    -1,    -1,    -1,   219,    -1,    -1,
-    -1,    -1,   224,   225,   226,   227,   228,   229,   230,   231,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   239,   240,    -1,
-    -1,    -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    13,
-    -1,    -1,    -1,    -1,    -1,   951,   952,   763,    -1,    -1,
-    -1,    -1,    -1,    -1,   960,   961,   962,   963,   964,   965,
-   966,   777,    -1,    -1,    -1,   781,    -1,    41,    -1,    -1,
-   786,    -1,    -1,    -1,   790,    -1,    -1,    -1,   794,    -1,
-    -1,   175,   798,    -1,    -1,    -1,   802,    -1,    62,    -1,
-   806,    -1,    -1,   999,   810,    69,  1002,   191,   814,    -1,
-    -1,    -1,    -1,    77,    -1,    -1,  1012,  1013,  1014,  1015,
-  1016,  1017,  1018,    -1,    88,     8,  1022,    -1,    -1,    -1,
-    13,    -1,    96,    -1,    -1,   219,    -1,    -1,   844,    -1,
-   224,   225,   226,   227,   228,   229,   230,   231,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   239,   240,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,
-     8,    -1,    10,  1089,    77,    13,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,
-    -1,   175,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   930,    -1,    -1,   191,    -1,    -1,
-    -1,    -1,    -1,   939,    -1,     8,    -1,    -1,    -1,    -1,
-    13,    -1,   948,    -1,    62,    -1,    -1,    -1,   954,    -1,
-    -1,    69,    -1,    -1,    -1,   219,    -1,    -1,    -1,    77,
-   224,   225,   226,   227,   228,   229,   230,   231,    -1,    -1,
-    88,    -1,    -1,    -1,   980,   239,    -1,    -1,    96,    -1,
-    -1,    -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,    62,
-    -1,    -1,   175,    -1,    -1,    -1,    69,    -1,  1004,    -1,
-    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,   191,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1227,  1228,    -1,    -1,    -1,   219,    -1,    -1,    -1,
-    -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
-   233,    -1,    -1,    -1,    -1,   238,   239,   175,    -1,    -1,
-    -1,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,
-    -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,  1289,    -1,  1291,  1292,  1293,  1294,  1295,
-  1296,   219,   175,    -1,    -1,    -1,   224,   225,   226,   227,
-   228,   229,   230,   231,    -1,    62,    -1,    -1,   191,    -1,
-    -1,   239,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    77,    -1,    -1,  1329,    -1,     8,    -1,    -1,    -1,    -1,
-    13,    88,    -1,    -1,    -1,    -1,   219,    -1,    -1,    96,
-    -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
-    -1,    -1,    -1,  1169,  1170,  1171,   239,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   121,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1383,    -1,    62,
-    -1,  1197,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,
-    -1,  1207,  1208,  1209,    77,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   175,  1425,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1433,  1434,    -1,
-    -1,  1437,    -1,  1439,   191,    -1,  1442,  1443,  1444,  1445,
-  1446,  1447,  1448,  1449,  1450,    -1,    -1,  1453,    -1,    -1,
-    -1,    -1,  1458,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   219,    -1,    -1,    -1,  1472,   224,   225,   226,
-   227,   228,   229,   230,   231,  1481,  1482,  1483,  1484,  1485,
-  1486,    -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1524,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1537,    -1,    -1,    -1,    -1,   219,  1543,    -1,  1545,
-    -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
-    -1,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1575,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1584,  1585,
-  1586,  1587,  1588,  1589,  1590,  1591,  1592,    -1,  1594,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1420,    -1,    -1,     3,     4,    -1,
-  1616,    -1,    -1,    -1,    -1,    -1,    -1,  1623,    -1,  1625,
-    -1,    17,    18,    19,    20,    -1,    -1,    23,    -1,    -1,
-    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    -1,
-    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    -1,    49,    50,    51,    -1,    53,    -1,    -1,
-    -1,    -1,  1668,    -1,  1670,    61,    -1,    -1,    64,    -1,
-    -1,    67,    -1,    -1,  1680,    -1,    72,    73,    -1,    -1,
-    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,    85,
-    86,    -1,    88,    89,    90,    91,    92,    -1,    94,    95,
-    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,   104,    -1,
-    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,    -1,
-    -1,   117,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
-    -1,    -1,    -1,   129,   130,    -1,    -1,    -1,   134,    -1,
-    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,   145,
-   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,   155,
-    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,   165,
-    -1,    -1,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,   185,
-   186,   187,    -1,   189,    -1,   191,  1612,   193,   194,   195,
-   196,   197,    -1,   199,   200,   201,   202,   203,   204,    -1,
-   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,    -1,
-   216,   217,   218,   219,   220,   221,   222,     3,     4,    -1,
-    -1,    -1,   228,   229,    -1,   231,   232,   233,   234,    -1,
-    -1,    17,    18,    19,    20,   241,   242,    23,    -1,    -1,
-    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    -1,
-    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    -1,    49,    50,    51,    -1,    53,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    -1,
-    -1,    67,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
-    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,    85,
-    86,    -1,    88,    89,    90,    91,    92,    -1,    94,    95,
-    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,   104,    -1,
-    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,    -1,
-    -1,   117,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
-    -1,    -1,    -1,   129,   130,    -1,    -1,    -1,   134,    -1,
-    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,   145,
-   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,   155,
-    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,   165,
-    -1,    -1,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,   185,
-   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,   195,
-   196,   197,    -1,   199,   200,   201,   202,   203,   204,    -1,
-   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,    -1,
-   216,   217,   218,   219,   220,   221,   222,     3,     4,    -1,
-    -1,    -1,   228,    -1,    -1,   231,   232,   233,   234,    -1,
-    -1,    17,    18,    19,    20,   241,   242,    23,    -1,    -1,
-    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    -1,
-    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    -1,    49,    50,    51,    -1,    53,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    -1,
-    -1,    67,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
-    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,    85,
-    86,    -1,    88,    89,    90,    91,    92,    -1,    94,    95,
-    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,   104,    -1,
-    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,    -1,
-    -1,   117,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
-    -1,    -1,    -1,   129,   130,    -1,    -1,    -1,   134,    -1,
-    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,   145,
-   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,   155,
-    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,   165,
-    -1,    -1,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,   185,
-   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,   195,
-   196,   197,    -1,   199,   200,   201,   202,   203,   204,    -1,
-   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,    -1,
-   216,   217,   218,   219,   220,   221,   222,     3,     4,    -1,
-    -1,    -1,   228,    -1,    -1,   231,   232,   233,   234,    -1,
-    -1,    -1,    18,    19,    20,   241,   242,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    31,    32,    33,    34,    -1,
-    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    51,    -1,    53,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    -1,
-    -1,    67,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
-    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,    85,
-    86,    -1,    -1,    -1,    -1,    91,    92,    -1,    94,    95,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,    -1,
-    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
-    -1,    -1,    -1,    -1,   130,    -1,    -1,    -1,   134,    -1,
-    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,   145,
-   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,   155,
-    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,   165,
-    -1,    -1,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,    -1,
-   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,   195,
-   196,   197,    -1,   199,   200,   201,   202,   203,   204,    -1,
-   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,    -1,
-   216,   217,   218,   219,   220,   221,   222,     3,     4,    -1,
-    -1,    -1,   228,    -1,    -1,    -1,   232,   233,   234,    -1,
-    -1,    -1,    18,    19,    20,   241,   242,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    51,    -1,    53,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    -1,
-    -1,    67,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
-    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,    85,
-    86,    -1,    88,    -1,    90,    91,    92,    -1,    94,    95,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,    -1,
-    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
-    -1,    -1,    -1,    -1,   130,    -1,    -1,    -1,    -1,    -1,
-    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,   145,
-   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,   155,
-    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,   165,
-    -1,    -1,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,    -1,
-   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,   195,
-   196,   197,    -1,   199,   200,   201,   202,   203,   204,    -1,
-   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,    -1,
-   216,   217,   218,   219,   220,   221,   222,     3,     4,    -1,
-    -1,    -1,   228,    -1,    -1,    -1,   232,   233,   234,    -1,
-    -1,    -1,    -1,    19,    20,   241,   242,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
-    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,    85,
-    86,    -1,    -1,    -1,    -1,    91,    92,    -1,    94,    95,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,    -1,
-    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,   145,
-   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,   155,
-    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,   165,
-    -1,    -1,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,    -1,
-   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,   195,
-   196,   197,    -1,   199,   200,   201,   202,   203,     3,     4,
-   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,    14,
-   216,   217,    17,    18,    19,    20,    -1,    -1,    23,    -1,
-    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,
-    -1,    36,    37,    -1,    -1,    -1,   242,    -1,    43,    -1,
-    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    53,    -1,
-    -1,    56,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    73,    74,
-    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,
-    85,    86,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,   104,
-    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
-    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,   123,   124,
-   125,    -1,   127,    -1,   129,   130,    -1,    -1,    -1,   134,
-    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,
-   145,   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,
-   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,
-   165,    -1,    -1,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,
-   185,   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,
-   195,   196,   197,    -1,   199,   200,   201,   202,   203,   204,
-    -1,   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,
-    -1,   216,   217,   218,   219,   220,   221,   222,    -1,    -1,
-    -1,    -1,    -1,   228,     3,     4,   231,   232,   233,   234,
-    -1,    -1,    -1,    -1,    -1,    14,   241,    -1,    17,    18,
-    19,    20,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,
-    -1,    30,    31,    32,    33,    34,    -1,    36,    37,    -1,
-    -1,    -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,
-    49,    50,    51,    -1,    53,    -1,    -1,    56,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,    64,    -1,    -1,    67,    -1,
-    -1,    -1,    -1,    72,    73,    74,    -1,    -1,    -1,    -1,
-    79,    80,    81,    -1,    83,    -1,    85,    86,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,   100,    -1,    -1,   103,   104,    -1,    -1,   107,    -1,
-   109,    -1,    -1,    -1,   113,   114,    -1,    -1,   117,    -1,
-    -1,    -1,    -1,   122,   123,   124,   125,    -1,   127,    -1,
-   129,   130,    -1,    -1,    -1,   134,    -1,    -1,   137,    -1,
-    -1,    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,
-   149,   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,
-   159,   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,    -1,    -1,
-    -1,   180,    -1,   182,   183,    -1,   185,   186,   187,    -1,
-   189,    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,
-   199,   200,   201,   202,   203,   204,    -1,   206,   207,   208,
-   209,   210,    -1,    -1,    -1,   214,    -1,   216,   217,   218,
-   219,   220,   221,   222,    -1,    -1,    -1,    -1,    -1,   228,
-     3,     4,   231,   232,   233,   234,    -1,    -1,    -1,    -1,
-    -1,    14,   241,    -1,    17,    18,    19,    20,    -1,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    56,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    74,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,   127,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,   229,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    56,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,   115,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,   115,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,    -1,   220,   221,   222,
-     3,     4,    -1,     6,    -1,   228,     9,    -1,   231,   232,
-   233,   234,    -1,    -1,    17,    18,    19,    20,   241,    -1,
-    23,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,    -1,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,    -1,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,    -1,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,    -1,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,    -1,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,    -1,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,    -1,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,    -1,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,    -1,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,    -1,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,    -1,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,
-    33,    34,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,    -1,   130,    -1,    -1,
-    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,    -1,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,    -1,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    -1,    -1,
-    -1,    -1,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,    -1,   232,
-    -1,    -1,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    -1,    -1,
-    -1,    -1,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,   100,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,   117,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,
-    -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,    -1,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,    -1,   232,
-    -1,    -1,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    88,    -1,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,    -1,   130,    -1,    -1,
-    -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,    -1,    -1,
-    -1,   214,    -1,   216,   217,   218,   219,   220,   221,   222,
-     3,     4,    -1,    -1,    -1,   228,    -1,    -1,    -1,   232,
-   233,   234,    -1,    -1,    -1,    18,    19,    20,   241,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    83,    -1,    85,    86,    -1,    -1,    -1,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,    -1,   130,    -1,    -1,
-    -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,     3,     4,
-    -1,   214,    -1,   216,   217,   218,    -1,   220,   221,   222,
-    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,    -1,   232,
-   233,   234,    -1,    -1,    -1,    30,    -1,    -1,   241,    -1,
-    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
-    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
-    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
-   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
-   145,   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,
-   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,
-   165,    -1,    -1,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,    -1,     3,     4,   180,    -1,   182,   183,    -1,
-   185,   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,
-   195,   196,   197,    -1,   199,   200,   201,   202,   203,    -1,
-    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,   214,
-    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,     8,    -1,    10,    -1,    -1,    13,    -1,    -1,    -1,
-    -1,    61,    -1,    -1,    64,    -1,   241,    -1,    -1,    -1,
-    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,
-    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,
-    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   103,   104,    62,    -1,   107,    -1,   109,
-    -1,    -1,    69,   113,   114,   115,    -1,    -1,    -1,    -1,
-    77,    -1,   122,   123,   124,   125,    -1,    -1,    -1,    -1,
-    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,
-    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,   149,
-   150,     8,   152,   153,    -1,   155,    13,    -1,   158,   159,
-   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,   169,
-   170,   171,   172,   173,   174,   175,   176,    -1,    -1,    -1,
-   180,    13,   182,   183,    -1,    -1,   186,   187,    -1,   189,
-    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,   199,
-   200,   201,   202,   203,    -1,    62,   206,   207,   208,   209,
-   210,    -1,    69,    -1,   214,    -1,   216,   217,   175,    -1,
-    77,    -1,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,
-    62,    88,    -1,    -1,   191,    -1,    -1,    69,    -1,    96,
-    -1,   241,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,
-    -1,    -1,   219,    -1,    -1,    -1,    -1,   224,   225,   226,
-   227,   228,   229,   230,   231,    -1,    62,    -1,    -1,    -1,
-    -1,    -1,   239,    69,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   175,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   175,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,
-    -1,    -1,   219,    -1,    -1,    -1,    -1,   224,   225,   226,
-   227,   228,   229,   230,   231,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   239,    -1,    -1,    -1,    -1,   219,    -1,   175,
-     3,     4,   224,   225,   226,   227,   228,   229,   230,   231,
-    -1,    -1,    -1,    -1,    -1,   191,    -1,   239,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    -1,   219,    -1,    -1,    -1,    -1,   224,   225,
-   226,   227,   228,   229,   230,   231,    -1,    -1,    61,    -1,
-    -1,    64,    -1,   239,    -1,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
-   123,   124,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   144,   145,   146,   147,    -1,   149,   150,    -1,   152,
-   153,    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,
-    -1,   164,   165,    -1,    -1,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,
-   183,    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,    -1,   199,   200,   201,   202,
-   203,   204,    -1,   206,   207,   208,   209,   210,     3,     4,
-    -1,   214,    -1,   216,   217,   218,   219,   220,    -1,   222,
-    -1,   224,   225,   226,   227,   228,   229,   230,   231,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    36,    -1,    -1,    39,    -1,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
-    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
-    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-   105,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
-   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
-   145,   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,
-   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,
-   165,    -1,    -1,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,    -1,     3,     4,   180,    -1,   182,   183,    -1,
-    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,
-   195,   196,   197,    -1,   199,   200,   201,   202,   203,    -1,
-    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,   214,
-    -1,   216,   217,    43,   219,    -1,    -1,    -1,    -1,   224,
-   225,   226,   227,   228,   229,   230,   231,    -1,    -1,    -1,
-    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
-    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,
-    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,
-    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   103,   104,   105,    -1,   107,    -1,   109,
-    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   122,   123,   124,   125,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,   149,
-   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,   159,
-   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,   169,
-   170,   171,   172,   173,   174,   175,   176,    -1,     3,     4,
-   180,    -1,   182,   183,    -1,    -1,   186,   187,    -1,   189,
-    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,   199,
-   200,   201,   202,   203,    -1,    30,   206,   207,   208,   209,
-   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,   219,
-    -1,    -1,    -1,    -1,   224,   225,   226,   227,   228,   229,
-   230,   231,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
-    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
-    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
-   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
-   145,   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,
-   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,
-   165,    -1,    -1,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,    -1,     3,     4,   180,    -1,   182,   183,    -1,
-   185,   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,
-   195,   196,   197,    -1,   199,   200,   201,   202,   203,    -1,
-    30,   206,   207,   208,   209,   210,    36,    -1,    -1,   214,
-    -1,   216,   217,    43,    -1,    -1,   221,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   229,    -1,    -1,    -1,    -1,    -1,
-    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,
-    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,
-    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   103,   104,    -1,    -1,   107,    -1,   109,
-    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   122,   123,   124,   125,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,   149,
-   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,   159,
-   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,   169,
-   170,   171,   172,   173,   174,   175,   176,    -1,     3,     4,
-   180,    -1,   182,   183,    -1,   185,   186,   187,    -1,   189,
-    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,   199,
-   200,   201,   202,   203,    -1,    -1,   206,   207,   208,   209,
-   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   229,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
-    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
-    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
-   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
-   145,   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,
-   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,
-   165,    -1,    -1,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,    -1,     3,     4,   180,    -1,   182,   183,    -1,
-    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,
-   195,   196,   197,    -1,   199,   200,   201,   202,   203,    -1,
-    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,   214,
-    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   229,    -1,    -1,    -1,    -1,    -1,
-    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,
-    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,
-    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   103,   104,    -1,    -1,   107,    -1,   109,
-    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   122,   123,   124,   125,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,   149,
-   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,   159,
-   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,   169,
-   170,   171,   172,   173,   174,   175,   176,    -1,     3,     4,
-   180,    -1,   182,   183,    -1,    -1,   186,   187,    -1,   189,
-    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,   199,
-   200,   201,   202,   203,    -1,    -1,   206,   207,   208,   209,
-   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   229,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
-    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
-    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
-   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
-   145,   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,
-   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,
-   165,    -1,    -1,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,    -1,     3,     4,   180,    -1,   182,   183,    -1,
-    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,
-   195,   196,   197,    -1,   199,   200,   201,   202,   203,    -1,
-    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,   214,
-    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   229,    -1,    13,    -1,    -1,    -1,
-    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,
-    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,
-    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   103,   104,    62,    -1,   107,    -1,   109,
-    -1,    -1,    69,   113,   114,    -1,    -1,    -1,    -1,    -1,
-    77,    -1,   122,   123,   124,   125,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,   149,
-   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,   159,
-   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,   169,
-   170,   171,   172,   173,   174,   175,   176,    -1,    -1,    -1,
-   180,    -1,   182,   183,    -1,    -1,   186,   187,    -1,   189,
-    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,   199,
-   200,   201,   202,   203,    -1,    -1,   206,   207,   208,   209,
-   210,    -1,    -1,    -1,   214,    -1,   216,   217,   175,     3,
-     4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   229,
-    -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    30,    -1,    -1,    -1,
-    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    43,
-    -1,    -1,   219,    -1,    -1,    -1,    -1,    -1,   225,   226,
-   227,   228,   229,   230,   231,    -1,    -1,    61,    -1,    -1,
-    64,    -1,   239,    -1,    -1,    -1,    -1,    -1,    72,    73,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
-   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
-   124,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   144,   145,   146,   147,    -1,   149,   150,    -1,   152,   153,
-    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
-   164,   165,    -1,    -1,   168,   169,   170,   171,   172,   173,
-   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,   183,
-    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,   193,
-   194,   195,   196,   197,    -1,   199,   200,   201,   202,   203,
-     3,     4,   206,   207,   208,   209,   210,    -1,    -1,    -1,
-   214,    -1,   216,   217,    17,    -1,    -1,   221,    -1,    -1,
-    23,    -1,    -1,    -1,    27,    -1,    -1,    30,    -1,    -1,
-    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
-    43,    -1,    45,    46,    -1,    -1,    -1,    -1,    51,    -1,
-    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    61,    -1,
-    -1,    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,
-    73,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
-    -1,    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,    92,
-    -1,    94,    95,    -1,    97,    -1,    -1,   100,   101,    -1,
-   103,   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,
-   113,   114,    -1,    -1,    -1,   118,    -1,    -1,   121,   122,
-   123,   124,   125,    -1,    -1,   128,    -1,   130,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   140,    -1,    -1,
-    -1,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,    -1,   178,   179,   180,   181,   182,
-   183,   184,   185,   186,   187,   188,   189,    -1,   191,    -1,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-   203,   204,   205,   206,   207,   208,   209,   210,     3,     4,
-   213,   214,   215,   216,   217,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
-    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    83,    -1,
-    85,    86,    -1,    -1,    -1,    -1,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
-   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,   144,
-   145,   146,   147,    -1,   149,   150,    -1,   152,   153,    -1,
-   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,   164,
-   165,    -1,    -1,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,    -1,    -1,    -1,   180,    -1,   182,   183,    -1,
-    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,   194,
-   195,   196,   197,    -1,   199,   200,   201,   202,   203,     3,
-     4,   206,   207,   208,   209,   210,    -1,    -1,    -1,   214,
-    -1,   216,   217,    -1,    -1,    -1,    -1,    21,    -1,    -1,
-    -1,    -1,    -1,    27,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,
-   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
-   124,   125,    -1,    -1,    -1,    -1,    -1,    -1,   132,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   144,   145,   146,   147,    -1,   149,   150,    -1,   152,   153,
-    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
-   164,   165,    -1,    -1,   168,   169,   170,   171,   172,   173,
-   174,   175,   176,    -1,     3,     4,   180,    -1,   182,   183,
-    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,
-   194,   195,   196,   197,    -1,   199,   200,   201,   202,   203,
-    -1,    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,
-   214,    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
-    79,    80,    81,    82,    -1,    -1,    -1,    86,    -1,    -1,
-    -1,    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   103,   104,    -1,    -1,   107,    -1,
-   109,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   122,   123,   124,   125,    -1,    -1,   128,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,
-   149,   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,
-   159,   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,    -1,     3,
-     4,   180,    -1,   182,   183,    -1,    -1,   186,   187,    -1,
-   189,    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,
-   199,   200,   201,   202,   203,    -1,    30,   206,   207,   208,
-   209,   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
-   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
-   124,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   144,   145,   146,   147,    -1,   149,   150,    -1,   152,   153,
-    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
-   164,   165,    -1,    -1,   168,   169,   170,   171,   172,   173,
-   174,   175,   176,    -1,     3,     4,   180,    -1,   182,   183,
-    -1,   185,   186,   187,    -1,   189,    -1,   191,    -1,   193,
-   194,   195,   196,   197,    -1,   199,   200,   201,   202,   203,
-    -1,    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,
-   214,    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    59,    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
-    79,    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,
-    -1,    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   103,   104,    -1,   106,   107,    -1,
-   109,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   122,   123,   124,   125,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,
-   149,   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,
-   159,   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,    -1,     3,
-     4,   180,    -1,   182,   183,    -1,    -1,   186,   187,    -1,
-   189,    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,
-   199,   200,   201,   202,   203,    -1,    -1,   206,   207,   208,
-   209,   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
-   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
-   124,   125,    -1,    -1,   128,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   144,   145,   146,   147,    -1,   149,   150,    -1,   152,   153,
-    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
-   164,   165,    -1,    -1,   168,   169,   170,   171,   172,   173,
-   174,   175,   176,    -1,     3,     4,   180,    -1,   182,   183,
-    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,
-   194,   195,   196,   197,    -1,   199,   200,   201,   202,   203,
-    -1,    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,
-   214,    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
-    79,    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,
-    -1,    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   103,   104,    -1,    -1,   107,    -1,
-   109,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   122,   123,   124,   125,    -1,    -1,   128,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,
-   149,   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,
-   159,   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,    -1,     3,
-     4,   180,    -1,   182,   183,    -1,    -1,   186,   187,    -1,
-   189,    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,
-   199,   200,   201,   202,   203,    -1,    -1,   206,   207,   208,
-   209,   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
-   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
-   124,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   144,   145,   146,   147,    -1,   149,   150,    -1,   152,   153,
-    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
-   164,   165,    -1,    -1,   168,   169,   170,   171,   172,   173,
-   174,   175,   176,    -1,     3,     4,   180,    -1,   182,   183,
-    -1,    -1,   186,   187,   188,   189,    -1,   191,    -1,   193,
-   194,   195,   196,   197,    -1,   199,   200,   201,   202,   203,
-    -1,    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,
-   214,    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
-    79,    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,
-    -1,    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   103,   104,    -1,    -1,   107,    -1,
-   109,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   122,   123,   124,   125,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,
-   149,   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,
-   159,   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,    -1,     3,
-     4,   180,    -1,   182,   183,    -1,    10,   186,   187,   188,
-   189,    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,
-   199,   200,   201,   202,   203,    -1,    -1,   206,   207,   208,
-   209,   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
-   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
-   124,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   144,   145,   146,   147,    -1,   149,   150,    -1,   152,   153,
-    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
-   164,   165,    -1,    -1,   168,   169,   170,   171,   172,   173,
-   174,   175,   176,    -1,     3,     4,   180,    -1,   182,   183,
-    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,
-   194,   195,   196,   197,    -1,   199,   200,   201,   202,   203,
-    -1,    -1,   206,   207,   208,   209,   210,    36,    -1,    -1,
-   214,    -1,   216,   217,    43,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,    64,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
-    79,    80,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,
-    -1,    -1,    -1,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   103,   104,    -1,    -1,   107,    -1,
-   109,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   122,   123,   124,   125,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   144,   145,   146,   147,    -1,
-   149,   150,    -1,   152,   153,    -1,   155,    -1,    -1,   158,
-   159,   160,   161,   162,    -1,   164,   165,    -1,    -1,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,    -1,     3,
-     4,   180,    -1,   182,   183,    -1,    -1,   186,   187,    -1,
-   189,    -1,   191,    -1,   193,   194,   195,   196,   197,    -1,
-   199,   200,   201,   202,   203,    -1,    -1,   206,   207,   208,
-   209,   210,    36,    -1,    -1,   214,    -1,   216,   217,    43,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
-    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
-   104,    -1,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
-   124,   125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   144,   145,   146,   147,    -1,   149,   150,    -1,   152,   153,
-    -1,   155,    -1,    -1,   158,   159,   160,   161,   162,    -1,
-   164,   165,    -1,    -1,   168,   169,   170,   171,   172,   173,
-   174,   175,   176,    -1,    -1,    -1,   180,    -1,   182,   183,
-    -1,    -1,   186,   187,    -1,   189,    -1,   191,    -1,   193,
-   194,   195,   196,   197,    -1,   199,   200,   201,   202,   203,
-    19,    20,   206,   207,   208,   209,   210,    -1,    -1,    -1,
-   214,    -1,   216,   217,    -1,    -1,    -1,    36,    37,    -1,
-    -1,    -1,    -1,    -1,    43,    -1,    19,    20,    -1,    -1,
-    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    36,    37,    -1,    -1,    -1,    67,    -1,
-    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
-    53,    80,    81,    -1,    83,    -1,    85,    -1,    61,    -1,
-    -1,    -1,    91,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    81,    -1,
-    83,    -1,    85,    -1,    -1,   114,   115,    -1,    91,    -1,
-    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,
-    -1,   130,    -1,    -1,    19,    20,    -1,    -1,   137,    -1,
-    -1,   114,    -1,    -1,    -1,   144,    -1,    -1,   147,   122,
-   123,    36,    37,    -1,    -1,    -1,    -1,   130,    43,    -1,
-    -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,    53,    -1,
-    -1,   144,    -1,    -1,   147,    -1,    61,    -1,    -1,    -1,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    19,    20,    -1,    80,    81,    -1,    83,    -1,
-    85,    -1,    -1,    -1,    -1,   204,    91,    -1,    -1,    36,
-    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,   217,   218,
-    -1,   220,   221,   222,    -1,    -1,    53,    -1,    -1,   114,
-    -1,   204,    -1,    -1,    61,    -1,    -1,   122,   123,    -1,
-    67,    -1,    -1,    -1,   217,   218,    -1,   220,   221,   222,
-    19,    20,   137,    80,    81,    -1,    83,    -1,    85,   144,
-    -1,    -1,   147,    -1,    91,    -1,    -1,    36,    37,    -1,
-    -1,    -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    53,    -1,    -1,   114,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,   122,   123,    -1,    67,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   137,    80,    81,    -1,    83,    -1,    85,   144,   203,   204,
-   147,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   137,    -1,
-    -1,    -1,    -1,    -1,    -1,   144,    -1,   204,   147,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   217
-};
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/share/misc/bison.simple"
-
-/* Skeleton output parser for bison,
-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-#ifndef alloca
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
-#include <alloca.h>
-#else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
-#include <malloc.h>
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-#include <malloc.h>
- #pragma alloca
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
-#endif /* __hpux */
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc.  */
-#endif /* not GNU C.  */
-#endif /* alloca not defined.  */
-
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
-
-/* Note: there must be only one dollar sign in this file.
-   It is replaced by the list of actions, each action
-   as one case of the switch.  */
-
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
-#define YYEOF          0
-#define YYACCEPT       return(0)
-#define YYABORT        return(1)
-#define YYERROR                goto yyerrlab1
-/* Like YYERROR except do call yyerror.
-   This remains here temporarily to ease the
-   transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
-#define YYFAIL         goto yyerrlab
-#define YYRECOVERING()  (!!yyerrstatus)
-#define YYBACKUP(token, value) \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    { yychar = (token), yylval = (value);                      \
-      yychar1 = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK;                                              \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    { yyerror ("syntax error: cannot back up"); YYERROR; }     \
-while (0)
-
-#define YYTERROR       1
-#define YYERRCODE      256
-
-#ifndef YYPURE
-#define YYLEX          yylex()
-#endif
-
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX          yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX          yylex(&yylval, &yylloc)
-#endif
-#else /* not YYLSP_NEEDED */
-#ifdef YYLEX_PARAM
-#define YYLEX          yylex(&yylval, YYLEX_PARAM)
-#else
-#define YYLEX          yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
-#endif
-
-/* If nonreentrant, generate the variables here */
-
-#ifndef YYPURE
-
-int    yychar;                 /*  the lookahead symbol                */
-YYSTYPE        yylval;                 /*  the semantic value of the           */
-                               /*  lookahead symbol                    */
-
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc;                        /*  location data for the lookahead     */
-                               /*  symbol                              */
-#endif
-
-int yynerrs;                   /*  number of parse errors so far       */
-#endif  /* not YYPURE */
-
-#if YYDEBUG != 0
-int yydebug;                   /*  nonzero means print parse trace     */
-/* Since this is uninitialized, it does not stop multiple parsers
-   from coexisting.  */
-#endif
-
-/*  YYINITDEPTH indicates the initial size of the parser's stacks      */
-
-#ifndef        YYINITDEPTH
-#define YYINITDEPTH 200
-#endif
-
-/*  YYMAXDEPTH is the maximum size the stacks can grow to
-    (effective only if the built-in stack extension method is used).  */
-
-#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
-#endif
-
-#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
-#endif
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-int yyparse (void);
-#endif
-\f
-#if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
-#define __yy_memcpy(TO,FROM,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
-#else                          /* not GNU C or C++ */
-#ifndef __cplusplus
-
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (to, from, count)
-     char *to;
-     char *from;
-     int count;
-{
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
-
-  while (i-- > 0)
-    *t++ = *f++;
-}
-
-#else /* __cplusplus */
-
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (char *to, char *from, int count)
-{
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
-
-  while (i-- > 0)
-    *t++ = *f++;
-}
-
-#endif
-#endif
-\f
-#line 196 "/usr/share/misc/bison.simple"
-
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
-
-#ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
-
-int
-yyparse(YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
-{
-  register int yystate;
-  register int yyn;
-  register short *yyssp;
-  register YYSTYPE *yyvsp;
-  int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
-  int yychar1 = 0;             /*  lookahead token as an internal (translated) token number */
-
-  short        yyssa[YYINITDEPTH];     /*  the state stack                     */
-  YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
-
-  short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
-  YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
-
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-
-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-#define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
-
-  int yystacksize = YYINITDEPTH;
-
-#ifdef YYPURE
-  int yychar;
-  YYSTYPE yylval;
-  int yynerrs;
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylloc;
-#endif
-#endif
-
-  YYSTYPE yyval;               /*  the variable used to return         */
-                               /*  semantic values from the action     */
-                               /*  routines                            */
-
-  int yylen;
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Starting parse\n");
-#endif
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-
-  yyssp = yyss - 1;
-  yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
-  yylsp = yyls;
-#endif
-
-/* Push a new state, which is found in  yystate  .  */
-/* In all cases, when you get here, the value and location stacks
-   have just been pushed. so pushing a state here evens the stacks.  */
-yynewstate:
-
-  *++yyssp = yystate;
-
-  if (yyssp >= yyss + yystacksize - 1)
-    {
-      /* Give user a chance to reallocate the stack */
-      /* Use copies of these so that the &'s don't force the real ones into memory. */
-      YYSTYPE *yyvs1 = yyvs;
-      short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
-      YYLTYPE *yyls1 = yyls;
-#endif
-
-      /* Get the current used size of the three stacks, in elements.  */
-      int size = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      /* Each stack pointer address is followed by the size of
-        the data in use in that stack, in bytes.  */
-#ifdef YYLSP_NEEDED
-      /* This used to be a conditional around just the two extra args,
-        but that might be undefined if yyoverflow is a macro.  */
-      yyoverflow("parser stack overflow",
-                &yyss1, size * sizeof (*yyssp),
-                &yyvs1, size * sizeof (*yyvsp),
-                &yyls1, size * sizeof (*yylsp),
-                &yystacksize);
-#else
-      yyoverflow("parser stack overflow",
-                &yyss1, size * sizeof (*yyssp),
-                &yyvs1, size * sizeof (*yyvsp),
-                &yystacksize);
-#endif
-
-      yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
-      yyls = yyls1;
-#endif
-#else /* no yyoverflow */
-      /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
-       {
-         yyerror("parser stack overflow");
-         return 2;
-       }
-      yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
-       yystacksize = YYMAXDEPTH;
-      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
-      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
-#endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + size - 1;
-      yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
-      yylsp = yyls + size - 1;
-#endif
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
-
-      if (yyssp >= yyss + yystacksize - 1)
-       YYABORT;
-    }
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Entering state %d\n", yystate);
-#endif
-
-  goto yybackup;
- yybackup:
-
-/* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
-/* yyresume: */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
-  if (yychar == YYEMPTY)
-    {
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Reading a token: ");
-#endif
-      yychar = YYLEX;
-    }
-
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
-    {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Now at end of input.\n");
-#endif
-    }
-  else
-    {
-      yychar1 = YYTRANSLATE(yychar);
-
-#if YYDEBUG != 0
-      if (yydebug)
-       {
-         fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise meaning
-            of a token, for further debugging info.  */
-#ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-#endif
-         fprintf (stderr, ")\n");
-       }
-#endif
-    }
-
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
-    goto yydefault;
-
-  yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-  else if (yyn == 0)
-    goto yyerrlab;
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-  /* Shift the lookahead token.  */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
-
-  /* Discard the token being shifted unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
-
-  *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
-
-  /* count tokens shifted since error; after three, turn off error status.  */
-  if (yyerrstatus) yyerrstatus--;
-
-  yystate = yyn;
-  goto yynewstate;
-
-/* Do the default action for the current state.  */
-yydefault:
-
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-
-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
-yyreduce:
-  yylen = yyr2[yyn];
-  if (yylen > 0)
-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      int i;
-
-      fprintf (stderr, "Reducing via rule %d (line %d), ",
-              yyn, yyrline[yyn]);
-
-      /* Print the symbols being reduced, and their result.  */
-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
-       fprintf (stderr, "%s ", yytname[yyrhs[i]]);
-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
-
-
-  switch (yyn) {
-
-case 1:
-#line 359 "gram.y"
-{ parsetree = yyvsp[0].list; ;
-    break;}
-case 2:
-#line 361 "gram.y"
-{ parsetree = lcons(yyvsp[0].node,NIL); ;
-    break;}
-case 3:
-#line 365 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[-1].node); ;
-    break;}
-case 4:
-#line 374 "gram.y"
-{ yyval.list = lcons(yyvsp[-1].node,NIL); ;
-    break;}
-case 47:
-#line 430 "gram.y"
-{
-                                       CreateUserStmt *n = makeNode(CreateUserStmt);
-                                       n->user = yyvsp[-5].str;
-                                       n->password = yyvsp[-4].str;
-                                       n->createdb = yyvsp[-3].pboolean;
-                                       n->createuser = yyvsp[-2].pboolean;
-                                       n->groupElts = yyvsp[-1].list;
-                                       n->validUntil = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 48:
-#line 451 "gram.y"
-{
-                                       AlterUserStmt *n = makeNode(AlterUserStmt);
-                                       n->user = yyvsp[-5].str;
-                                       n->password = yyvsp[-4].str;
-                                       n->createdb = yyvsp[-3].pboolean;
-                                       n->createuser = yyvsp[-2].pboolean;
-                                       n->groupElts = yyvsp[-1].list;
-                                       n->validUntil = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 49:
-#line 471 "gram.y"
-{
-                                       DropUserStmt *n = makeNode(DropUserStmt);
-                                       n->user = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 50:
-#line 478 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 51:
-#line 479 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 52:
-#line 483 "gram.y"
-{
-                                       bool*  b;
-                                       yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
-                                       *b = true;
-                               ;
-    break;}
-case 53:
-#line 489 "gram.y"
-{
-                                       bool*  b;
-                                       yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
-                                       *b = false;
-                               ;
-    break;}
-case 54:
-#line 494 "gram.y"
-{ yyval.pboolean = NULL; ;
-    break;}
-case 55:
-#line 498 "gram.y"
-{
-                                       bool*  b;
-                                       yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
-                                       *b = true;
-                               ;
-    break;}
-case 56:
-#line 504 "gram.y"
-{
-                                       bool*  b;
-                                       yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
-                                       *b = false;
-                               ;
-    break;}
-case 57:
-#line 509 "gram.y"
-{ yyval.pboolean = NULL; ;
-    break;}
-case 58:
-#line 513 "gram.y"
-{
-                                       yyval.list = lcons((void*)makeString(yyvsp[0].str), yyvsp[-2].list);
-                               ;
-    break;}
-case 59:
-#line 517 "gram.y"
-{
-                                       yyval.list = lcons((void*)makeString(yyvsp[0].str), NIL);
-                               ;
-    break;}
-case 60:
-#line 522 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 61:
-#line 523 "gram.y"
-{ yyval.list = NULL; ;
-    break;}
-case 62:
-#line 526 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 63:
-#line 527 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 64:
-#line 540 "gram.y"
-{
-                                       VariableSetStmt *n = makeNode(VariableSetStmt);
-                                       n->name  = yyvsp[-2].str;
-                                       n->value = yyvsp[0].str;
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 65:
-#line 547 "gram.y"
-{
-                                       VariableSetStmt *n = makeNode(VariableSetStmt);
-                                       n->name  = yyvsp[-2].str;
-                                       n->value = yyvsp[0].str;
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 66:
-#line 554 "gram.y"
-{
-                                       VariableSetStmt *n = makeNode(VariableSetStmt);
-                                       n->name  = "timezone";
-                                       n->value = yyvsp[0].str;
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 67:
-#line 561 "gram.y"
-{
-                                       VariableSetStmt *n = makeNode(VariableSetStmt);
-                                       n->name  = "XactIsoLevel";
-                                       n->value = yyvsp[0].str;
-                                       if (strcasecmp(n->value, "COMMITTED"))
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", n->value);
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 68:
-#line 570 "gram.y"
-{
-                                       VariableSetStmt *n = makeNode(VariableSetStmt);
-                                       n->name  = "XactIsoLevel";
-                                       n->value = yyvsp[0].str;
-                                       if (strcasecmp(n->value, "SERIALIZABLE"))
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", n->value);
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 69:
-#line 579 "gram.y"
-{
-#ifdef MB
-                                       VariableSetStmt *n = makeNode(VariableSetStmt);
-                                       n->name  = "client_encoding";
-                                       n->value = yyvsp[0].str;
-                                       yyval.node = (Node *) n;
-#else
-                                       elog(ERROR, "SET NAMES is not supported");
-#endif
-                               ;
-    break;}
-case 70:
-#line 591 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 71:
-#line 592 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 72:
-#line 595 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 73:
-#line 596 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 74:
-#line 597 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 75:
-#line 601 "gram.y"
-{
-                                       VariableShowStmt *n = makeNode(VariableShowStmt);
-                                       n->name  = yyvsp[0].str;
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 76:
-#line 607 "gram.y"
-{
-                                       VariableShowStmt *n = makeNode(VariableShowStmt);
-                                       n->name  = "timezone";
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 77:
-#line 613 "gram.y"
-{
-                                       VariableShowStmt *n = makeNode(VariableShowStmt);
-                                       n->name  = "XactIsoLevel";
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 78:
-#line 621 "gram.y"
-{
-                                       VariableResetStmt *n = makeNode(VariableResetStmt);
-                                       n->name  = yyvsp[0].str;
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 79:
-#line 627 "gram.y"
-{
-                                       VariableResetStmt *n = makeNode(VariableResetStmt);
-                                       n->name  = "timezone";
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 80:
-#line 633 "gram.y"
-{
-                                       VariableResetStmt *n = makeNode(VariableResetStmt);
-                                       n->name  = "XactIsoLevel";
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 81:
-#line 649 "gram.y"
-{
-                                       AddAttrStmt *n = makeNode(AddAttrStmt);
-                                       n->relname = yyvsp[-2].str;
-                                       n->inh = yyvsp[-1].boolean;
-                                       n->colDef = yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 82:
-#line 659 "gram.y"
-{
-                                       yyval.node = yyvsp[0].node;
-                               ;
-    break;}
-case 83:
-#line 663 "gram.y"
-{
-                                       Node *lp = lfirst(yyvsp[-1].list);
-
-                                       if (length(yyvsp[-1].list) != 1)
-                                               elog(ERROR,"ALTER TABLE/ADD() allows one column only");
-                                       yyval.node = lp;
-                               ;
-    break;}
-case 84:
-#line 671 "gram.y"
-{      elog(ERROR,"ALTER TABLE/DROP COLUMN not yet implemented"); ;
-    break;}
-case 85:
-#line 673 "gram.y"
-{      elog(ERROR,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented"); ;
-    break;}
-case 86:
-#line 675 "gram.y"
-{      elog(ERROR,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented"); ;
-    break;}
-case 87:
-#line 677 "gram.y"
-{      elog(ERROR,"ALTER TABLE/ADD CONSTRAINT not yet implemented"); ;
-    break;}
-case 88:
-#line 689 "gram.y"
-{
-                                       ClosePortalStmt *n = makeNode(ClosePortalStmt);
-                                       n->portalname = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 89:
-#line 706 "gram.y"
-{
-                                       CopyStmt *n = makeNode(CopyStmt);
-                                       n->binary = yyvsp[-5].boolean;
-                                       n->relname = yyvsp[-4].str;
-                                       n->oids = yyvsp[-3].boolean;
-                                       n->direction = yyvsp[-2].ival;
-                                       n->filename = yyvsp[-1].str;
-                                       n->delimiter = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 90:
-#line 719 "gram.y"
-{ yyval.ival = TO; ;
-    break;}
-case 91:
-#line 721 "gram.y"
-{ yyval.ival = FROM; ;
-    break;}
-case 92:
-#line 729 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 93:
-#line 730 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 94:
-#line 731 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 95:
-#line 734 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 96:
-#line 735 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 97:
-#line 738 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 98:
-#line 739 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 99:
-#line 745 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 100:
-#line 746 "gram.y"
-{ yyval.str = "\t"; ;
-    break;}
-case 101:
-#line 759 "gram.y"
-{
-                                       CreateStmt *n = makeNode(CreateStmt);
-                                       n->istemp = yyvsp[-6].boolean;
-                                       n->relname = yyvsp[-4].str;
-                                       n->tableElts = yyvsp[-2].list;
-                                       n->inhRelnames = yyvsp[0].list;
-                                       n->constraints = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 102:
-#line 771 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 103:
-#line 772 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 104:
-#line 773 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 105:
-#line 777 "gram.y"
-{
-                                       if (yyvsp[0].node != NULL)
-                                               yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
-                                       else
-                                               yyval.list = yyvsp[-2].list;
-                               ;
-    break;}
-case 106:
-#line 784 "gram.y"
-{
-                                       if (yyvsp[0].node != NULL)
-                                               yyval.list = lcons(yyvsp[0].node, NIL);
-                                       else
-                                               yyval.list = NULL;
-                               ;
-    break;}
-case 107:
-#line 790 "gram.y"
-{ yyval.list = NULL; ;
-    break;}
-case 108:
-#line 793 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
-    break;}
-case 109:
-#line 794 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
-    break;}
-case 110:
-#line 798 "gram.y"
-{
-                                       ColumnDef *n = makeNode(ColumnDef);
-                                       n->colname = yyvsp[-2].str;
-                                       n->typename = yyvsp[-1].typnam;
-                                       n->defval = NULL;
-                                       n->is_not_null = FALSE;
-                                       n->constraints = yyvsp[0].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 111:
-#line 808 "gram.y"
-{
-                                       ColumnDef *n = makeNode(ColumnDef);
-                                       n->colname = yyvsp[-2].str;
-                                       n->typename = makeNode(TypeName);
-                                       n->typename->name = xlateSqlType("integer");
-                                       n->defval = NULL;
-                                       n->is_not_null = TRUE;
-                                       n->is_sequence = TRUE;
-                                       n->constraints = yyvsp[0].list;
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 112:
-#line 822 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 113:
-#line 823 "gram.y"
-{ yyval.list = NULL; ;
-    break;}
-case 114:
-#line 827 "gram.y"
-{
-                                       if (yyvsp[0].node != NULL)
-                                               yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node);
-                                       else
-                                               yyval.list = yyvsp[-1].list;
-                               ;
-    break;}
-case 115:
-#line 834 "gram.y"
-{
-                                       if (yyvsp[0].node != NULL)
-                                               yyval.list = lcons(yyvsp[0].node, NIL);
-                                       else
-                                               yyval.list = NULL;
-                               ;
-    break;}
-case 116:
-#line 843 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_PRIMARY;
-                                       n->name = NULL;
-                                       n->def = NULL;
-                                       n->keys = NULL;
-                                       yyval.list = lcons((Node *)n, NIL);
-                               ;
-    break;}
-case 117:
-#line 851 "gram.y"
-{ yyval.list = NULL; ;
-    break;}
-case 118:
-#line 856 "gram.y"
-{
-                                               Constraint *n = (Constraint *)yyvsp[0].node;
-                                               if (n != NULL) n->name = fmtId(yyvsp[-1].str);
-                                               yyval.node = yyvsp[0].node;
-                               ;
-    break;}
-case 119:
-#line 862 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
-    break;}
-case 120:
-#line 876 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_CHECK;
-                                       n->name = NULL;
-                                       n->def = FlattenStringList(yyvsp[-1].list);
-                                       n->keys = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 121:
-#line 885 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_DEFAULT;
-                                       n->name = NULL;
-                                       n->def = NULL;
-                                       n->keys = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 122:
-#line 894 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_DEFAULT;
-                                       n->name = NULL;
-                                       n->def = FlattenStringList(yyvsp[0].list);
-                                       n->keys = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 123:
-#line 903 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_NOTNULL;
-                                       n->name = NULL;
-                                       n->def = NULL;
-                                       n->keys = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 124:
-#line 912 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_UNIQUE;
-                                       n->name = NULL;
-                                       n->def = NULL;
-                                       n->keys = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 125:
-#line 921 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_PRIMARY;
-                                       n->name = NULL;
-                                       n->def = NULL;
-                                       n->keys = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 126:
-#line 930 "gram.y"
-{
-                                       elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented");
-                                       yyval.node = NULL;
-                               ;
-    break;}
-case 127:
-#line 937 "gram.y"
-{
-                                       yyval.list = lappend(yyvsp[-2].list,makeString(","));
-                                       yyval.list = nconc(yyval.list, yyvsp[0].list);
-                               ;
-    break;}
-case 128:
-#line 942 "gram.y"
-{
-                                       yyval.list = yyvsp[0].list;
-                               ;
-    break;}
-case 129:
-#line 955 "gram.y"
-{      yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ;
-    break;}
-case 130:
-#line 957 "gram.y"
-{      yyval.list = lcons( makeString( "-"), yyvsp[0].list); ;
-    break;}
-case 131:
-#line 959 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "+"), yyvsp[0].list)); ;
-    break;}
-case 132:
-#line 961 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "-"), yyvsp[0].list)); ;
-    break;}
-case 133:
-#line 963 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "/"), yyvsp[0].list)); ;
-    break;}
-case 134:
-#line 965 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "%"), yyvsp[0].list)); ;
-    break;}
-case 135:
-#line 967 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "*"), yyvsp[0].list)); ;
-    break;}
-case 136:
-#line 969 "gram.y"
-{      elog(ERROR,"boolean expressions not supported in DEFAULT"); ;
-    break;}
-case 137:
-#line 971 "gram.y"
-{      elog(ERROR,"boolean expressions not supported in DEFAULT"); ;
-    break;}
-case 138:
-#line 973 "gram.y"
-{      elog(ERROR,"boolean expressions not supported in DEFAULT"); ;
-    break;}
-case 139:
-#line 975 "gram.y"
-{      yyval.list = lcons( makeString( ":"), yyvsp[0].list); ;
-    break;}
-case 140:
-#line 977 "gram.y"
-{      yyval.list = lcons( makeString( ";"), yyvsp[0].list); ;
-    break;}
-case 141:
-#line 979 "gram.y"
-{      yyval.list = lcons( makeString( "|"), yyvsp[0].list); ;
-    break;}
-case 142:
-#line 981 "gram.y"
-{
-                                       yyvsp[0].typnam->name = fmtId(yyvsp[0].typnam->name);
-                                       yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-2].list), makeList( makeString("AS"), yyvsp[0].typnam, -1));
-                               ;
-    break;}
-case 143:
-#line 986 "gram.y"
-{
-                                       yyvsp[-1].typnam->name = fmtId(yyvsp[-1].typnam->name);
-                                       yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-3].list), makeList( makeString("AS"), yyvsp[-1].typnam, -1));
-                               ;
-    break;}
-case 144:
-#line 991 "gram.y"
-{      yyval.list = lappend( lcons( makeString( "("), yyvsp[-1].list), makeString( ")")); ;
-    break;}
-case 145:
-#line 993 "gram.y"
-{
-                                       yyval.list = makeList( makeString(yyvsp[-2].str), makeString("("), -1);
-                                       yyval.list = lappend( yyval.list, makeString(")"));
-                               ;
-    break;}
-case 146:
-#line 998 "gram.y"
-{
-                                       yyval.list = makeList( makeString(yyvsp[-3].str), makeString("("), -1);
-                                       yyval.list = nconc( yyval.list, yyvsp[-1].list);
-                                       yyval.list = lappend( yyval.list, makeString(")"));
-                               ;
-    break;}
-case 147:
-#line 1004 "gram.y"
-{
-                                       if (!strcmp("<=", yyvsp[-1].str) || !strcmp(">=", yyvsp[-1].str))
-                                               elog(ERROR,"boolean expressions not supported in DEFAULT");
-                                       yyval.list = nconc( yyvsp[-2].list, lcons( makeString( yyvsp[-1].str), yyvsp[0].list));
-                               ;
-    break;}
-case 148:
-#line 1010 "gram.y"
-{      yyval.list = lcons( makeString( yyvsp[-1].str), yyvsp[0].list); ;
-    break;}
-case 149:
-#line 1012 "gram.y"
-{      yyval.list = lappend( yyvsp[-1].list, makeString( yyvsp[0].str)); ;
-    break;}
-case 150:
-#line 1015 "gram.y"
-{      yyval.list = lcons( makeString( "date( 'current'::datetime + '0 sec')"), NIL); ;
-    break;}
-case 151:
-#line 1017 "gram.y"
-{      yyval.list = lcons( makeString( "'now'::time"), NIL); ;
-    break;}
-case 152:
-#line 1019 "gram.y"
-{
-                                       if (yyvsp[-1].ival != 0)
-                                               elog(NOTICE,"CURRENT_TIME(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
-                                       yyval.list = lcons( makeString( "'now'::time"), NIL);
-                               ;
-    break;}
-case 153:
-#line 1025 "gram.y"
-{      yyval.list = lcons( makeString( "now()"), NIL); ;
-    break;}
-case 154:
-#line 1027 "gram.y"
-{
-                                       if (yyvsp[-1].ival != 0)
-                                               elog(NOTICE,"CURRENT_TIMESTAMP(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
-                                       yyval.list = lcons( makeString( "now()"), NIL);
-                               ;
-    break;}
-case 155:
-#line 1033 "gram.y"
-{      yyval.list = lcons( makeString( "CURRENT_USER"), NIL); ;
-    break;}
-case 156:
-#line 1035 "gram.y"
-{      yyval.list = lcons( makeString( "USER"), NIL); ;
-    break;}
-case 157:
-#line 1043 "gram.y"
-{
-                                               Constraint *n = (Constraint *)yyvsp[0].node;
-                                               if (n != NULL) n->name = fmtId(yyvsp[-1].str);
-                                               yyval.node = yyvsp[0].node;
-                               ;
-    break;}
-case 158:
-#line 1049 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
-    break;}
-case 159:
-#line 1053 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_CHECK;
-                                       n->name = NULL;
-                                       n->def = FlattenStringList(yyvsp[-1].list);
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 160:
-#line 1061 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_UNIQUE;
-                                       n->name = NULL;
-                                       n->def = NULL;
-                                       n->keys = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 161:
-#line 1070 "gram.y"
-{
-                                       Constraint *n = makeNode(Constraint);
-                                       n->contype = CONSTR_PRIMARY;
-                                       n->name = NULL;
-                                       n->def = NULL;
-                                       n->keys = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 162:
-#line 1079 "gram.y"
-{
-                                       elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented");
-                                       yyval.node = NULL;
-                               ;
-    break;}
-case 163:
-#line 1086 "gram.y"
-{
-                                       yyval.list = lappend(yyvsp[-2].list,makeString(","));
-                                       yyval.list = nconc(yyval.list, yyvsp[0].list);
-                               ;
-    break;}
-case 164:
-#line 1091 "gram.y"
-{
-                                       yyval.list = yyvsp[0].list;
-                               ;
-    break;}
-case 165:
-#line 1097 "gram.y"
-{      yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ;
-    break;}
-case 166:
-#line 1099 "gram.y"
-{      yyval.list = lcons( makeString("NULL"), NIL); ;
-    break;}
-case 167:
-#line 1101 "gram.y"
-{
-                                       yyval.list = lcons( makeString(fmtId(yyvsp[0].str)), NIL);
-                               ;
-    break;}
-case 168:
-#line 1105 "gram.y"
-{      yyval.list = lcons( makeString( "-"), yyvsp[0].list); ;
-    break;}
-case 169:
-#line 1107 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "+"), yyvsp[0].list)); ;
-    break;}
-case 170:
-#line 1109 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "-"), yyvsp[0].list)); ;
-    break;}
-case 171:
-#line 1111 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "/"), yyvsp[0].list)); ;
-    break;}
-case 172:
-#line 1113 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "%"), yyvsp[0].list)); ;
-    break;}
-case 173:
-#line 1115 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "*"), yyvsp[0].list)); ;
-    break;}
-case 174:
-#line 1117 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "="), yyvsp[0].list)); ;
-    break;}
-case 175:
-#line 1119 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "<"), yyvsp[0].list)); ;
-    break;}
-case 176:
-#line 1121 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( ">"), yyvsp[0].list)); ;
-    break;}
-case 177:
-#line 1123 "gram.y"
-{      yyval.list = lcons( makeString( ":"), yyvsp[0].list); ;
-    break;}
-case 178:
-#line 1125 "gram.y"
-{      yyval.list = lcons( makeString( ";"), yyvsp[0].list); ;
-    break;}
-case 179:
-#line 1127 "gram.y"
-{      yyval.list = lcons( makeString( "|"), yyvsp[0].list); ;
-    break;}
-case 180:
-#line 1129 "gram.y"
-{
-                                       yyvsp[0].typnam->name = fmtId(yyvsp[0].typnam->name);
-                                       yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-2].list), makeList( makeString("AS"), yyvsp[0].typnam, -1));
-                               ;
-    break;}
-case 181:
-#line 1134 "gram.y"
-{
-                                       yyvsp[-1].typnam->name = fmtId(yyvsp[-1].typnam->name);
-                                       yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-3].list), makeList( makeString("AS"), yyvsp[-1].typnam, -1));
-                               ;
-    break;}
-case 182:
-#line 1139 "gram.y"
-{      yyval.list = lappend( lcons( makeString( "("), yyvsp[-1].list), makeString( ")")); ;
-    break;}
-case 183:
-#line 1141 "gram.y"
-{
-                                       yyval.list = makeList( makeString(yyvsp[-2].str), makeString("("), -1);
-                                       yyval.list = lappend( yyval.list, makeString(")"));
-                               ;
-    break;}
-case 184:
-#line 1146 "gram.y"
-{
-                                       yyval.list = makeList( makeString(yyvsp[-3].str), makeString("("), -1);
-                                       yyval.list = nconc( yyval.list, yyvsp[-1].list);
-                                       yyval.list = lappend( yyval.list, makeString(")"));
-                               ;
-    break;}
-case 185:
-#line 1152 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( yyvsp[-1].str), yyvsp[0].list)); ;
-    break;}
-case 186:
-#line 1154 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "LIKE"), yyvsp[0].list)); ;
-    break;}
-case 187:
-#line 1156 "gram.y"
-{      yyval.list = nconc( yyvsp[-3].list, lcons( makeString( "NOT LIKE"), yyvsp[0].list)); ;
-    break;}
-case 188:
-#line 1158 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "AND"), yyvsp[0].list)); ;
-    break;}
-case 189:
-#line 1160 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "OR"), yyvsp[0].list)); ;
-    break;}
-case 190:
-#line 1162 "gram.y"
-{      yyval.list = lcons( makeString( "NOT"), yyvsp[0].list); ;
-    break;}
-case 191:
-#line 1164 "gram.y"
-{      yyval.list = lcons( makeString( yyvsp[-1].str), yyvsp[0].list); ;
-    break;}
-case 192:
-#line 1166 "gram.y"
-{      yyval.list = lappend( yyvsp[-1].list, makeString( yyvsp[0].str)); ;
-    break;}
-case 193:
-#line 1168 "gram.y"
-{      yyval.list = lappend( yyvsp[-1].list, makeString( "IS NULL")); ;
-    break;}
-case 194:
-#line 1170 "gram.y"
-{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS NULL")); ;
-    break;}
-case 195:
-#line 1172 "gram.y"
-{      yyval.list = lappend( yyvsp[-1].list, makeString( "IS NOT NULL")); ;
-    break;}
-case 196:
-#line 1174 "gram.y"
-{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT NULL")); ;
-    break;}
-case 197:
-#line 1176 "gram.y"
-{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS TRUE")); ;
-    break;}
-case 198:
-#line 1178 "gram.y"
-{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS FALSE")); ;
-    break;}
-case 199:
-#line 1180 "gram.y"
-{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT TRUE")); ;
-    break;}
-case 200:
-#line 1182 "gram.y"
-{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT FALSE")); ;
-    break;}
-case 201:
-#line 1184 "gram.y"
-{
-                                       yyval.list = lappend( yyvsp[-4].list, makeString("IN"));
-                                       yyval.list = lappend( yyval.list, makeString("("));
-                                       yyval.list = nconc( yyval.list, yyvsp[-1].list);
-                                       yyval.list = lappend( yyval.list, makeString(")"));
-                               ;
-    break;}
-case 202:
-#line 1191 "gram.y"
-{
-                                       yyval.list = lappend( yyvsp[-5].list, makeString("NOT IN"));
-                                       yyval.list = lappend( yyval.list, makeString("("));
-                                       yyval.list = nconc( yyval.list, yyvsp[-1].list);
-                                       yyval.list = lappend( yyval.list, makeString(")"));
-                               ;
-    break;}
-case 203:
-#line 1198 "gram.y"
-{
-                                       yyval.list = lappend( yyvsp[-4].list, makeString("BETWEEN"));
-                                       yyval.list = nconc( yyval.list, yyvsp[-2].list);
-                                       yyval.list = lappend( yyval.list, makeString("AND"));
-                                       yyval.list = nconc( yyval.list, yyvsp[0].list);
-                               ;
-    break;}
-case 204:
-#line 1205 "gram.y"
-{
-                                       yyval.list = lappend( yyvsp[-5].list, makeString("NOT BETWEEN"));
-                                       yyval.list = nconc( yyval.list, yyvsp[-2].list);
-                                       yyval.list = lappend( yyval.list, makeString("AND"));
-                                       yyval.list = nconc( yyval.list, yyvsp[0].list);
-                               ;
-    break;}
-case 205:
-#line 1214 "gram.y"
-{
-                                       yyval.list = lappend(yyvsp[-2].list, makeString(","));
-                                       yyval.list = nconc(yyval.list, yyvsp[0].list);
-                               ;
-    break;}
-case 206:
-#line 1219 "gram.y"
-{
-                                       yyval.list = yyvsp[0].list;
-                               ;
-    break;}
-case 207:
-#line 1225 "gram.y"
-{      yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ;
-    break;}
-case 208:
-#line 1228 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 209:
-#line 1229 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 210:
-#line 1230 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 211:
-#line 1233 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 212:
-#line 1234 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 213:
-#line 1235 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 214:
-#line 1238 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 215:
-#line 1239 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 216:
-#line 1242 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 217:
-#line 1243 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 218:
-#line 1244 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 219:
-#line 1245 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 220:
-#line 1248 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 221:
-#line 1249 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 222:
-#line 1253 "gram.y"
-{
-                                       SelectStmt *n = (SelectStmt *)yyvsp[0].node;
-                                       if (yyvsp[-2].list != NIL)
-                                               mapTargetColumns(yyvsp[-2].list, n->targetList);
-                                       n->istemp = yyvsp[-5].boolean;
-                                       n->into = yyvsp[-3].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 223:
-#line 1263 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 224:
-#line 1264 "gram.y"
-{ yyval.list = NULL; ;
-    break;}
-case 225:
-#line 1267 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
-    break;}
-case 226:
-#line 1268 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 227:
-#line 1272 "gram.y"
-{
-                                       ColumnDef *n = makeNode(ColumnDef);
-                                       n->colname = yyvsp[0].str;
-                                       n->typename = NULL;
-                                       n->defval = NULL;
-                                       n->is_not_null = FALSE;
-                                       n->constraints = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 228:
-#line 1292 "gram.y"
-{
-                                       CreateSeqStmt *n = makeNode(CreateSeqStmt);
-                                       n->seqname = yyvsp[-1].str;
-                                       n->options = yyvsp[0].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 229:
-#line 1301 "gram.y"
-{ yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); ;
-    break;}
-case 230:
-#line 1302 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 231:
-#line 1306 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = "cache";
-                                       yyval.defelt->arg = (Node *)yyvsp[0].value;
-                               ;
-    break;}
-case 232:
-#line 1312 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = "cycle";
-                                       yyval.defelt->arg = (Node *)NULL;
-                               ;
-    break;}
-case 233:
-#line 1318 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = "increment";
-                                       yyval.defelt->arg = (Node *)yyvsp[0].value;
-                               ;
-    break;}
-case 234:
-#line 1324 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = "maxvalue";
-                                       yyval.defelt->arg = (Node *)yyvsp[0].value;
-                               ;
-    break;}
-case 235:
-#line 1330 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = "minvalue";
-                                       yyval.defelt->arg = (Node *)yyvsp[0].value;
-                               ;
-    break;}
-case 236:
-#line 1336 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = "start";
-                                       yyval.defelt->arg = (Node *)yyvsp[0].value;
-                               ;
-    break;}
-case 237:
-#line 1343 "gram.y"
-{ yyval.value = yyvsp[0].value; ;
-    break;}
-case 238:
-#line 1344 "gram.y"
-{ yyval.value = yyvsp[0].value; ;
-    break;}
-case 239:
-#line 1347 "gram.y"
-{
-                                       yyval.value = makeFloat(yyvsp[0].dval);
-                               ;
-    break;}
-case 240:
-#line 1351 "gram.y"
-{
-                                       yyval.value = makeFloat(yyvsp[0].dval);
-                                       yyval.value->val.dval = - yyval.value->val.dval;
-                               ;
-    break;}
-case 241:
-#line 1358 "gram.y"
-{
-                                       yyval.value = makeInteger(yyvsp[0].ival);
-                               ;
-    break;}
-case 242:
-#line 1362 "gram.y"
-{
-                                       yyval.value = makeInteger(yyvsp[0].ival);
-                                       yyval.value->val.ival = - yyval.value->val.ival;
-                               ;
-    break;}
-case 243:
-#line 1378 "gram.y"
-{
-                               CreatePLangStmt *n = makeNode(CreatePLangStmt);
-                               n->plname = yyvsp[-4].str;
-                               n->plhandler = yyvsp[-2].str;
-                               n->plcompiler = yyvsp[0].str;
-                               n->pltrusted = yyvsp[-7].boolean;
-                               yyval.node = (Node *)n;
-                       ;
-    break;}
-case 244:
-#line 1388 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 245:
-#line 1389 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 246:
-#line 1392 "gram.y"
-{
-                               DropPLangStmt *n = makeNode(DropPLangStmt);
-                               n->plname = yyvsp[0].str;
-                               yyval.node = (Node *)n;
-                       ;
-    break;}
-case 247:
-#line 1410 "gram.y"
-{
-                                       CreateTrigStmt *n = makeNode(CreateTrigStmt);
-                                       n->trigname = yyvsp[-11].str;
-                                       n->relname = yyvsp[-7].str;
-                                       n->funcname = yyvsp[-3].str;
-                                       n->args = yyvsp[-1].list;
-                                       n->before = yyvsp[-10].boolean;
-                                       n->row = yyvsp[-6].boolean;
-                                       memcpy (n->actions, yyvsp[-9].str, 4);
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 248:
-#line 1423 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 249:
-#line 1424 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 250:
-#line 1428 "gram.y"
-{
-                                       char *e = palloc (4);
-                                       e[0] = yyvsp[0].chr; e[1] = 0; yyval.str = e;
-                               ;
-    break;}
-case 251:
-#line 1433 "gram.y"
-{
-                                       char *e = palloc (4);
-                                       e[0] = yyvsp[-2].chr; e[1] = yyvsp[0].chr; e[2] = 0; yyval.str = e;
-                               ;
-    break;}
-case 252:
-#line 1438 "gram.y"
-{
-                                       char *e = palloc (4);
-                                       e[0] = yyvsp[-4].chr; e[1] = yyvsp[-2].chr; e[2] = yyvsp[0].chr; e[3] = 0;
-                                       yyval.str = e;
-                               ;
-    break;}
-case 253:
-#line 1445 "gram.y"
-{ yyval.chr = 'i'; ;
-    break;}
-case 254:
-#line 1446 "gram.y"
-{ yyval.chr = 'd'; ;
-    break;}
-case 255:
-#line 1447 "gram.y"
-{ yyval.chr = 'u'; ;
-    break;}
-case 256:
-#line 1451 "gram.y"
-{
-                                       yyval.boolean = yyvsp[0].boolean;
-                               ;
-    break;}
-case 257:
-#line 1456 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 258:
-#line 1457 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 259:
-#line 1460 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 260:
-#line 1461 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 261:
-#line 1465 "gram.y"
-{ yyval.list = lcons(yyvsp[0].str, NIL); ;
-    break;}
-case 262:
-#line 1467 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].str); ;
-    break;}
-case 263:
-#line 1469 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 264:
-#line 1473 "gram.y"
-{
-                                       char *s = (char *) palloc (256);
-                                       sprintf (s, "%d", yyvsp[0].ival);
-                                       yyval.str = s;
-                               ;
-    break;}
-case 265:
-#line 1479 "gram.y"
-{
-                                       char *s = (char *) palloc (256);
-                                       sprintf (s, "%g", yyvsp[0].dval);
-                                       yyval.str = s;
-                               ;
-    break;}
-case 266:
-#line 1484 "gram.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 267:
-#line 1485 "gram.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 268:
-#line 1489 "gram.y"
-{
-                                       DropTrigStmt *n = makeNode(DropTrigStmt);
-                                       n->trigname = yyvsp[-2].str;
-                                       n->relname = yyvsp[0].str;
-                                       yyval.node = (Node *) n;
-                               ;
-    break;}
-case 269:
-#line 1506 "gram.y"
-{
-                                       yyvsp[0].dstmt->defType = yyvsp[-1].ival;
-                                       yyval.node = (Node *)yyvsp[0].dstmt;
-                               ;
-    break;}
-case 270:
-#line 1513 "gram.y"
-{
-                                       yyval.dstmt = makeNode(DefineStmt);
-                                       yyval.dstmt->defname = yyvsp[-1].str;
-                                       yyval.dstmt->definition = yyvsp[0].list;
-                               ;
-    break;}
-case 271:
-#line 1520 "gram.y"
-{ yyval.ival = OPERATOR; ;
-    break;}
-case 272:
-#line 1521 "gram.y"
-{ yyval.ival = TYPE_P; ;
-    break;}
-case 273:
-#line 1522 "gram.y"
-{ yyval.ival = AGGREGATE; ;
-    break;}
-case 274:
-#line 1525 "gram.y"
-{ yyval.str = "procedure"; ;
-    break;}
-case 275:
-#line 1526 "gram.y"
-{ yyval.str = "join"; ;
-    break;}
-case 276:
-#line 1527 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 277:
-#line 1528 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 278:
-#line 1529 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 279:
-#line 1532 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 280:
-#line 1535 "gram.y"
-{ yyval.list = lcons(yyvsp[0].defelt, NIL); ;
-    break;}
-case 281:
-#line 1536 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); ;
-    break;}
-case 282:
-#line 1540 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = yyvsp[-2].str;
-                                       yyval.defelt->arg = (Node *)yyvsp[0].node;
-                               ;
-    break;}
-case 283:
-#line 1546 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = yyvsp[0].str;
-                                       yyval.defelt->arg = (Node *)NULL;
-                               ;
-    break;}
-case 284:
-#line 1552 "gram.y"
-{
-                                       yyval.defelt = makeNode(DefElem);
-                                       yyval.defelt->defname = "default";
-                                       yyval.defelt->arg = (Node *)yyvsp[0].node;
-                               ;
-    break;}
-case 285:
-#line 1559 "gram.y"
-{  yyval.node = (Node *)makeString(yyvsp[0].str); ;
-    break;}
-case 286:
-#line 1560 "gram.y"
-{  yyval.node = (Node *)makeString(yyvsp[0].str); ;
-    break;}
-case 287:
-#line 1561 "gram.y"
-{  yyval.node = (Node *)yyvsp[0].value; ;
-    break;}
-case 288:
-#line 1562 "gram.y"
-{  yyval.node = (Node *)makeString(yyvsp[0].str); ;
-    break;}
-case 289:
-#line 1564 "gram.y"
-{
-                                       TypeName *n = makeNode(TypeName);
-                                       n->name = yyvsp[0].str;
-                                       n->setof = TRUE;
-                                       n->arrayBounds = NULL;
-                                       n->typmod = -1;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 290:
-#line 1583 "gram.y"
-{
-                                       DestroyStmt *n = makeNode(DestroyStmt);
-                                       n->relNames = yyvsp[0].list;
-                                       n->sequence = FALSE;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 291:
-#line 1590 "gram.y"
-{
-                                       DestroyStmt *n = makeNode(DestroyStmt);
-                                       n->relNames = yyvsp[0].list;
-                                       n->sequence = TRUE;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 292:
-#line 1609 "gram.y"
-{
-                                       FetchStmt *n = makeNode(FetchStmt);
-                                       if (yyvsp[-2].ival == RELATIVE)
-                                       {
-                                               if (yyvsp[-1].ival == 0)
-                                                       elog(ERROR,"FETCH/RELATIVE at current position is not supported");
-                                               yyvsp[-2].ival = FORWARD;
-                                       }
-                                       if (yyvsp[-1].ival < 0)
-                                       {
-                                               yyvsp[-1].ival = -yyvsp[-1].ival;
-                                               yyvsp[-2].ival = ((yyvsp[-2].ival == FORWARD)? BACKWARD: FORWARD);
-                                       }
-                                       n->direction = yyvsp[-2].ival;
-                                       n->howMany = yyvsp[-1].ival;
-                                       n->portalname = yyvsp[0].str;
-                                       n->ismove = false;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 293:
-#line 1629 "gram.y"
-{
-                                       FetchStmt *n = makeNode(FetchStmt);
-                                       if (yyvsp[-1].ival < 0)
-                                       {
-                                               yyvsp[-1].ival = -yyvsp[-1].ival;
-                                               yyvsp[-2].ival = ((yyvsp[-2].ival == FORWARD)? BACKWARD: FORWARD);
-                                       }
-                                       n->direction = yyvsp[-2].ival;
-                                       n->howMany = yyvsp[-1].ival;
-                                       n->portalname = yyvsp[0].str;
-                                       n->ismove = TRUE;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 294:
-#line 1644 "gram.y"
-{ yyval.ival = FORWARD; ;
-    break;}
-case 295:
-#line 1645 "gram.y"
-{ yyval.ival = BACKWARD; ;
-    break;}
-case 296:
-#line 1646 "gram.y"
-{ yyval.ival = RELATIVE; ;
-    break;}
-case 297:
-#line 1648 "gram.y"
-{
-                               elog(NOTICE,"FETCH/ABSOLUTE not supported, using RELATIVE");
-                               yyval.ival = RELATIVE;
-                       ;
-    break;}
-case 298:
-#line 1652 "gram.y"
-{ yyval.ival = FORWARD; /* default */ ;
-    break;}
-case 299:
-#line 1655 "gram.y"
-{ yyval.ival = yyvsp[0].ival; ;
-    break;}
-case 300:
-#line 1656 "gram.y"
-{ yyval.ival = - yyvsp[0].ival; ;
-    break;}
-case 301:
-#line 1657 "gram.y"
-{ yyval.ival = 0; /* 0 means fetch all tuples*/ ;
-    break;}
-case 302:
-#line 1658 "gram.y"
-{ yyval.ival = 1; ;
-    break;}
-case 303:
-#line 1659 "gram.y"
-{ yyval.ival = -1; ;
-    break;}
-case 304:
-#line 1660 "gram.y"
-{ yyval.ival = 1; /*default*/ ;
-    break;}
-case 305:
-#line 1663 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 306:
-#line 1664 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 307:
-#line 1665 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 308:
-#line 1677 "gram.y"
-{
-                                       yyval.node = (Node*)makeAclStmt(yyvsp[-5].str,yyvsp[-3].list,yyvsp[-1].str,'+');
-                               ;
-    break;}
-case 309:
-#line 1683 "gram.y"
-{
-                                yyval.str = aclmakepriv("rwaR",0);
-                               ;
-    break;}
-case 310:
-#line 1687 "gram.y"
-{
-                                yyval.str = aclmakepriv("rwaR",0);
-                               ;
-    break;}
-case 311:
-#line 1691 "gram.y"
-{
-                                yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 312:
-#line 1697 "gram.y"
-{
-                                               yyval.str = aclmakepriv("",yyvsp[0].chr);
-                               ;
-    break;}
-case 313:
-#line 1701 "gram.y"
-{
-                                               yyval.str = aclmakepriv(yyvsp[-2].str,yyvsp[0].chr);
-                               ;
-    break;}
-case 314:
-#line 1707 "gram.y"
-{
-                                               yyval.chr = ACL_MODE_RD_CHR;
-                               ;
-    break;}
-case 315:
-#line 1711 "gram.y"
-{
-                                               yyval.chr = ACL_MODE_AP_CHR;
-                               ;
-    break;}
-case 316:
-#line 1715 "gram.y"
-{
-                                               yyval.chr = ACL_MODE_WR_CHR;
-                               ;
-    break;}
-case 317:
-#line 1719 "gram.y"
-{
-                                               yyval.chr = ACL_MODE_WR_CHR;
-                               ;
-    break;}
-case 318:
-#line 1723 "gram.y"
-{
-                                               yyval.chr = ACL_MODE_RU_CHR;
-                               ;
-    break;}
-case 319:
-#line 1729 "gram.y"
-{
-                                               yyval.str = aclmakeuser("A","");
-                               ;
-    break;}
-case 320:
-#line 1733 "gram.y"
-{
-                                               yyval.str = aclmakeuser("G",yyvsp[0].str);
-                               ;
-    break;}
-case 321:
-#line 1737 "gram.y"
-{
-                                               yyval.str = aclmakeuser("U",yyvsp[0].str);
-                               ;
-    break;}
-case 322:
-#line 1743 "gram.y"
-{
-                                       yyerror("WITH GRANT OPTION is not supported.  Only relation owners can set privileges");
-                                ;
-    break;}
-case 324:
-#line 1758 "gram.y"
-{
-                                       yyval.node = (Node*)makeAclStmt(yyvsp[-4].str,yyvsp[-2].list,yyvsp[0].str,'-');
-                               ;
-    break;}
-case 325:
-#line 1776 "gram.y"
-{
-                                       /* should check that access_method is valid,
-                                          etc ... but doesn't */
-                                       IndexStmt *n = makeNode(IndexStmt);
-                                       n->unique = yyvsp[-9].boolean;
-                                       n->idxname = yyvsp[-7].str;
-                                       n->relname = yyvsp[-5].str;
-                                       n->accessMethod = yyvsp[-4].str;
-                                       n->indexParams = yyvsp[-2].list;
-                                       n->withClause = yyvsp[0].list;
-                                       n->whereClause = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 326:
-#line 1791 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 327:
-#line 1792 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 328:
-#line 1795 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 329:
-#line 1796 "gram.y"
-{ yyval.str = "btree"; ;
-    break;}
-case 330:
-#line 1799 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 331:
-#line 1800 "gram.y"
-{ yyval.list = lcons(yyvsp[0].ielem,NIL); ;
-    break;}
-case 332:
-#line 1803 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].ielem); ;
-    break;}
-case 333:
-#line 1804 "gram.y"
-{ yyval.list = lcons(yyvsp[0].ielem, NIL); ;
-    break;}
-case 334:
-#line 1808 "gram.y"
-{
-                                       yyval.ielem = makeNode(IndexElem);
-                                       yyval.ielem->name = yyvsp[-5].str;
-                                       yyval.ielem->args = yyvsp[-3].list;
-                                       yyval.ielem->class = yyvsp[0].str;
-                                       yyval.ielem->typename = yyvsp[-1].typnam;
-                               ;
-    break;}
-case 335:
-#line 1818 "gram.y"
-{
-                                       yyval.ielem = makeNode(IndexElem);
-                                       yyval.ielem->name = yyvsp[-2].str;
-                                       yyval.ielem->args = NIL;
-                                       yyval.ielem->class = yyvsp[0].str;
-                                       yyval.ielem->typename = yyvsp[-1].typnam;
-                               ;
-    break;}
-case 336:
-#line 1827 "gram.y"
-{ yyval.typnam = yyvsp[0].typnam; ;
-    break;}
-case 337:
-#line 1828 "gram.y"
-{ yyval.typnam = yyvsp[0].typnam; ;
-    break;}
-case 338:
-#line 1829 "gram.y"
-{ yyval.typnam = NULL; ;
-    break;}
-case 339:
-#line 1838 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 340:
-#line 1839 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 341:
-#line 1840 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 342:
-#line 1852 "gram.y"
-{
-                                       ExtendStmt *n = makeNode(ExtendStmt);
-                                       n->idxname = yyvsp[-1].str;
-                                       n->whereClause = yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 343:
-#line 1899 "gram.y"
-{
-                                       ProcedureStmt *n = makeNode(ProcedureStmt);
-                                       n->funcname = yyvsp[-8].str;
-                                       n->defArgs = yyvsp[-7].list;
-                                       n->returnType = yyvsp[-5].node;
-                                       n->withClause = yyvsp[-4].list;
-                                       n->as = yyvsp[-2].str;
-                                       n->language = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 344:
-#line 1910 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 345:
-#line 1911 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 346:
-#line 1914 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 347:
-#line 1915 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 348:
-#line 1919 "gram.y"
-{      yyval.list = lcons(makeString(yyvsp[0].str),NIL); ;
-    break;}
-case 349:
-#line 1921 "gram.y"
-{      yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ;
-    break;}
-case 350:
-#line 1925 "gram.y"
-{
-                                       TypeName *n = makeNode(TypeName);
-                                       n->name = yyvsp[0].str;
-                                       n->setof = yyvsp[-1].boolean;
-                                       n->arrayBounds = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 351:
-#line 1934 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 352:
-#line 1935 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 353:
-#line 1956 "gram.y"
-{
-                                       RemoveStmt *n = makeNode(RemoveStmt);
-                                       n->removeType = yyvsp[-1].ival;
-                                       n->name = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 354:
-#line 1964 "gram.y"
-{  yyval.ival = TYPE_P; ;
-    break;}
-case 355:
-#line 1965 "gram.y"
-{  yyval.ival = INDEX; ;
-    break;}
-case 356:
-#line 1966 "gram.y"
-{  yyval.ival = RULE; ;
-    break;}
-case 357:
-#line 1967 "gram.y"
-{  yyval.ival = VIEW; ;
-    break;}
-case 358:
-#line 1972 "gram.y"
-{
-                                               RemoveAggrStmt *n = makeNode(RemoveAggrStmt);
-                                               n->aggname = yyvsp[-1].str;
-                                               n->aggtype = yyvsp[0].str;
-                                               yyval.node = (Node *)n;
-                               ;
-    break;}
-case 359:
-#line 1980 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 360:
-#line 1981 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 361:
-#line 1986 "gram.y"
-{
-                                       RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
-                                       n->funcname = yyvsp[-1].str;
-                                       n->args = yyvsp[0].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 362:
-#line 1996 "gram.y"
-{
-                                       RemoveOperStmt *n = makeNode(RemoveOperStmt);
-                                       n->opname = yyvsp[-3].str;
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 365:
-#line 2006 "gram.y"
-{ yyval.str = "+"; ;
-    break;}
-case 366:
-#line 2007 "gram.y"
-{ yyval.str = "-"; ;
-    break;}
-case 367:
-#line 2008 "gram.y"
-{ yyval.str = "*"; ;
-    break;}
-case 368:
-#line 2009 "gram.y"
-{ yyval.str = "/"; ;
-    break;}
-case 369:
-#line 2010 "gram.y"
-{ yyval.str = "%"; ;
-    break;}
-case 370:
-#line 2011 "gram.y"
-{ yyval.str = "<"; ;
-    break;}
-case 371:
-#line 2012 "gram.y"
-{ yyval.str = ">"; ;
-    break;}
-case 372:
-#line 2013 "gram.y"
-{ yyval.str = "="; ;
-    break;}
-case 373:
-#line 2017 "gram.y"
-{
-                                  elog(ERROR,"parser: argument type missing (use NONE for unary operators)");
-                               ;
-    break;}
-case 374:
-#line 2021 "gram.y"
-{ yyval.list = makeList(makeString(yyvsp[-2].str), makeString(yyvsp[0].str), -1); ;
-    break;}
-case 375:
-#line 2023 "gram.y"
-{ yyval.list = makeList(NULL, makeString(yyvsp[0].str), -1); ;
-    break;}
-case 376:
-#line 2025 "gram.y"
-{ yyval.list = makeList(makeString(yyvsp[-2].str), NULL, -1); ;
-    break;}
-case 377:
-#line 2039 "gram.y"
-{
-                                       RenameStmt *n = makeNode(RenameStmt);
-                                       n->relname = yyvsp[-6].str;
-                                       n->inh = yyvsp[-5].boolean;
-                                       n->column = yyvsp[-2].str;
-                                       n->newname = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 378:
-#line 2049 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 379:
-#line 2050 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 380:
-#line 2053 "gram.y"
-{ yyval.ival = COLUMN; ;
-    break;}
-case 381:
-#line 2054 "gram.y"
-{ yyval.ival = 0; ;
-    break;}
-case 382:
-#line 2068 "gram.y"
-{ QueryIsRule=TRUE; ;
-    break;}
-case 383:
-#line 2071 "gram.y"
-{
-                                       RuleStmt *n = makeNode(RuleStmt);
-                                       n->rulename = yyvsp[-10].str;
-                                       n->event = yyvsp[-6].ival;
-                                       n->object = yyvsp[-4].attr;
-                                       n->whereClause = yyvsp[-3].node;
-                                       n->instead = yyvsp[-1].boolean;
-                                       n->actions = yyvsp[0].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 384:
-#line 2083 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 385:
-#line 2084 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 386:
-#line 2085 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 387:
-#line 2086 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 388:
-#line 2087 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 389:
-#line 2090 "gram.y"
-{  yyval.list = yyvsp[0].list; ;
-    break;}
-case 390:
-#line 2091 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 391:
-#line 2095 "gram.y"
-{  yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ;
-    break;}
-case 392:
-#line 2097 "gram.y"
-{  yyval.list = lappend(yyvsp[-2].list, yyvsp[-1].node); ;
-    break;}
-case 393:
-#line 2099 "gram.y"
-{ yyval.list = lcons(yyvsp[-1].node, NIL); ;
-    break;}
-case 398:
-#line 2109 "gram.y"
-{
-                                       yyval.attr = makeNode(Attr);
-                                       yyval.attr->relname = yyvsp[-2].str;
-                                       yyval.attr->paramNo = NULL;
-                                       yyval.attr->attrs = lcons(makeString(yyvsp[0].str), NIL);
-                                       yyval.attr->indirection = NIL;
-                               ;
-    break;}
-case 399:
-#line 2117 "gram.y"
-{
-                                       yyval.attr = makeNode(Attr);
-                                       yyval.attr->relname = yyvsp[0].str;
-                                       yyval.attr->paramNo = NULL;
-                                       yyval.attr->attrs = NIL;
-                                       yyval.attr->indirection = NIL;
-                               ;
-    break;}
-case 400:
-#line 2127 "gram.y"
-{ yyval.ival = CMD_SELECT; ;
-    break;}
-case 401:
-#line 2128 "gram.y"
-{ yyval.ival = CMD_UPDATE; ;
-    break;}
-case 402:
-#line 2129 "gram.y"
-{ yyval.ival = CMD_DELETE; ;
-    break;}
-case 403:
-#line 2130 "gram.y"
-{ yyval.ival = CMD_INSERT; ;
-    break;}
-case 404:
-#line 2133 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 405:
-#line 2134 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 406:
-#line 2147 "gram.y"
-{
-                                       NotifyStmt *n = makeNode(NotifyStmt);
-                                       n->relname = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 407:
-#line 2155 "gram.y"
-{
-                                       ListenStmt *n = makeNode(ListenStmt);
-                                       n->relname = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 408:
-#line 2163 "gram.y"
-{
-                                       UnlistenStmt *n = makeNode(UnlistenStmt);
-                                       n->relname = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 409:
-#line 2169 "gram.y"
-{
-                                       UnlistenStmt *n = makeNode(UnlistenStmt);
-                                       n->relname = "*";
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 410:
-#line 2191 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = ABORT_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 411:
-#line 2197 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = BEGIN_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 412:
-#line 2203 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = END_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 413:
-#line 2209 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = END_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 414:
-#line 2215 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = ABORT_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 415:
-#line 2222 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 416:
-#line 2223 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 417:
-#line 2224 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 418:
-#line 2236 "gram.y"
-{
-                                       ViewStmt *n = makeNode(ViewStmt);
-                                       n->viewname = yyvsp[-2].str;
-                                       n->query = (Query *)yyvsp[0].node;
-                                       if (((SelectStmt *)n->query)->sortClause != NULL)
-                                               elog(ERROR,"Order by and Distinct on views is not implemented.");
-                                       if (((SelectStmt *)n->query)->unionClause != NULL)
-                                               elog(ERROR,"Views on unions not implemented.");
-                                       if (((SelectStmt *)n->query)->forUpdate != NULL)
-                                               elog(ERROR, "SELECT FOR UPDATE is not allowed in CREATE VIEW");
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 419:
-#line 2259 "gram.y"
-{
-                                       LoadStmt *n = makeNode(LoadStmt);
-                                       n->filename = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 420:
-#line 2275 "gram.y"
-{
-                                       CreatedbStmt *n = makeNode(CreatedbStmt);
-                                       if (yyvsp[-1].str == NULL && yyvsp[0].str == NULL) {
-                                               elog(ERROR, "CREATE DATABASE WITH requires at least an option");
-                                       }
-                                       n->dbname = yyvsp[-3].str;
-                                       n->dbpath = yyvsp[-1].str;
-#ifdef MULTIBYTE
-                                       if (yyvsp[0].str != NULL) {
-                                               n->encoding = pg_char_to_encoding(yyvsp[0].str);
-                                               if (n->encoding < 0) {
-                                                       elog(ERROR, "invalid encoding name %s", yyvsp[0].str);
-                                               }
-                                       } else {
-                                               n->encoding = GetTemplateEncoding();
-                                       }
-#else
-                                       if (yyvsp[0].str != NULL)
-                                               elog(ERROR, "WITH ENCODING is not supported");
-                                       n->encoding = 0;
-#endif
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 421:
-#line 2299 "gram.y"
-{
-                                       CreatedbStmt *n = makeNode(CreatedbStmt);
-                                       n->dbname = yyvsp[0].str;
-                                       n->dbpath = NULL;
-#ifdef MULTIBYTE
-                                       n->encoding = GetTemplateEncoding();
-#else
-                                       n->encoding = 0;
-#endif
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 422:
-#line 2312 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 423:
-#line 2313 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 424:
-#line 2316 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 425:
-#line 2317 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 426:
-#line 2320 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 427:
-#line 2321 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 428:
-#line 2322 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 429:
-#line 2325 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 430:
-#line 2326 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 431:
-#line 2327 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 432:
-#line 2338 "gram.y"
-{
-                                       DestroydbStmt *n = makeNode(DestroydbStmt);
-                                       n->dbname = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 433:
-#line 2354 "gram.y"
-{
-                                  ClusterStmt *n = makeNode(ClusterStmt);
-                                  n->relname = yyvsp[0].str;
-                                  n->indexname = yyvsp[-2].str;
-                                  yyval.node = (Node*)n;
-                               ;
-    break;}
-case 434:
-#line 2371 "gram.y"
-{
-                                       VacuumStmt *n = makeNode(VacuumStmt);
-                                       n->verbose = yyvsp[-1].boolean;
-                                       n->analyze = yyvsp[0].boolean;
-                                       n->vacrel = NULL;
-                                       n->va_spec = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 435:
-#line 2380 "gram.y"
-{
-                                       VacuumStmt *n = makeNode(VacuumStmt);
-                                       n->verbose = yyvsp[-3].boolean;
-                                       n->analyze = yyvsp[-2].boolean;
-                                       n->vacrel = yyvsp[-1].str;
-                                       n->va_spec = yyvsp[0].list;
-                                       if ( yyvsp[0].list != NIL && !yyvsp[-1].str )
-                                               elog(ERROR,"parser: syntax error at or near \"(\"");
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 436:
-#line 2392 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 437:
-#line 2393 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 438:
-#line 2396 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 439:
-#line 2397 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 440:
-#line 2400 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 441:
-#line 2401 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 442:
-#line 2405 "gram.y"
-{ yyval.list=lcons(yyvsp[0].str,NIL); ;
-    break;}
-case 443:
-#line 2407 "gram.y"
-{ yyval.list=lappend(yyvsp[-2].list,yyvsp[0].str); ;
-    break;}
-case 444:
-#line 2419 "gram.y"
-{
-                                       ExplainStmt *n = makeNode(ExplainStmt);
-                                       n->verbose = yyvsp[-1].boolean;
-                                       n->query = (Query*)yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 451:
-#line 2462 "gram.y"
-{
-                                       yyvsp[0].astmt->relname = yyvsp[-1].str;
-                                       yyval.node = (Node *)yyvsp[0].astmt;
-                               ;
-    break;}
-case 452:
-#line 2469 "gram.y"
-{
-                                       yyval.astmt = makeNode(InsertStmt);
-                                       yyval.astmt->cols = NULL;
-                                       yyval.astmt->unique = NULL;
-                                       yyval.astmt->targetList = yyvsp[-1].list;
-                                       yyval.astmt->fromClause = NIL;
-                                       yyval.astmt->whereClause = NULL;
-                                       yyval.astmt->groupClause = NIL;
-                                       yyval.astmt->havingClause = NULL;
-                                       yyval.astmt->unionClause = NIL;
-                               ;
-    break;}
-case 453:
-#line 2481 "gram.y"
-{
-                                       yyval.astmt = makeNode(InsertStmt);
-                                       yyval.astmt->unique = NULL;
-                                       yyval.astmt->targetList = NIL;
-                                       yyval.astmt->fromClause = NIL;
-                                       yyval.astmt->whereClause = NULL;
-                                       yyval.astmt->groupClause = NIL;
-                                       yyval.astmt->havingClause = NULL;
-                                       yyval.astmt->unionClause = NIL;
-                                       /***S*I***/
-                                       yyval.astmt->intersectClause = NIL;
-                               ;
-    break;}
-case 454:
-#line 2497 "gram.y"
-{
-                                       SelectStmt *n;
-
-                                       n = (SelectStmt *)yyvsp[0].node;
-                                       yyval.astmt = makeNode(InsertStmt);
-                                       yyval.astmt->cols = NULL;
-                                       yyval.astmt->unique = n->unique;
-                                       yyval.astmt->targetList = n->targetList;
-                                       yyval.astmt->fromClause = n->fromClause;
-                                       yyval.astmt->whereClause = n->whereClause;
-                                       yyval.astmt->groupClause = n->groupClause;
-                                       yyval.astmt->havingClause = n->havingClause;
-                                       yyval.astmt->unionClause = n->unionClause;
-                                       yyval.astmt->intersectClause = n->intersectClause;
-                                       yyval.astmt->forUpdate = n->forUpdate;
-                               ;
-    break;}
-case 455:
-#line 2514 "gram.y"
-{
-                                       yyval.astmt = makeNode(InsertStmt);
-                                       yyval.astmt->cols = yyvsp[-5].list;
-                                       yyval.astmt->unique = NULL;
-                                       yyval.astmt->targetList = yyvsp[-1].list;
-                                       yyval.astmt->fromClause = NIL;
-                                       yyval.astmt->whereClause = NULL;
-                                       yyval.astmt->groupClause = NIL;
-                                       yyval.astmt->havingClause = NULL;
-                                       yyval.astmt->unionClause = NIL; 
-                                       /***S*I***/
-                                       yyval.astmt->intersectClause = NIL;
-                               ;
-    break;}
-case 456:
-#line 2528 "gram.y"
-{
-                                       SelectStmt *n;
-
-                                       n = (SelectStmt *)yyvsp[0].node;
-                                       yyval.astmt = makeNode(InsertStmt);
-                                       yyval.astmt->cols = yyvsp[-2].list;
-                                       yyval.astmt->unique = n->unique;
-                                       yyval.astmt->targetList = n->targetList;
-                                       yyval.astmt->fromClause = n->fromClause;
-                                       yyval.astmt->whereClause = n->whereClause;
-                                       yyval.astmt->groupClause = n->groupClause;
-                                       yyval.astmt->havingClause = n->havingClause;
-                                       yyval.astmt->unionClause = n->unionClause;
-                                       yyval.astmt->intersectClause = n->intersectClause;
-                               ;
-    break;}
-case 457:
-#line 2545 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 458:
-#line 2546 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 459:
-#line 2551 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
-    break;}
-case 460:
-#line 2553 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 461:
-#line 2557 "gram.y"
-{
-                                       Ident *id = makeNode(Ident);
-                                       id->name = yyvsp[-1].str;
-                                       id->indirection = yyvsp[0].list;
-                                       yyval.node = (Node *)id;
-                               ;
-    break;}
-case 462:
-#line 2575 "gram.y"
-{
-                                       DeleteStmt *n = makeNode(DeleteStmt);
-                                       n->relname = yyvsp[-1].str;
-                                       n->whereClause = yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 463:
-#line 2584 "gram.y"
-{
-                                       LockStmt *n = makeNode(LockStmt);
-
-                                       n->relname = yyvsp[0].str;
-                                       n->mode = AccessExclusiveLock;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 464:
-#line 2592 "gram.y"
-{
-                                       LockStmt *n = makeNode(LockStmt);
-
-                                       n->relname = yyvsp[-5].str;
-                                       if (strcasecmp(yyvsp[0].str, "MODE"))
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[0].str);
-                                       if (yyvsp[-3].str != NULL)
-                                       {
-                                               if (strcasecmp(yyvsp[-3].str, "SHARE"))
-                                                       elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-3].str);
-                                               if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE"))
-                                                       elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str);
-                                               n->mode = ShareRowExclusiveLock;
-                                       }
-                                       else
-                                       {
-                                               if (strcasecmp(yyvsp[-1].str, "SHARE") == 0)
-                                                       n->mode = RowShareLock;
-                                               else if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE") == 0)
-                                                       n->mode = RowExclusiveLock;
-                                               else
-                                                       elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str);
-                                       }
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 465:
-#line 2618 "gram.y"
-{
-                                       LockStmt *n = makeNode(LockStmt);
-
-                                       n->relname = yyvsp[-4].str;
-                                       if (strcasecmp(yyvsp[0].str, "MODE"))
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[0].str);
-                                       if (strcasecmp(yyvsp[-2].str, "ACCESS"))
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-2].str);
-                                       if (strcasecmp(yyvsp[-1].str, "SHARE") == 0)
-                                               n->mode = AccessShareLock;
-                                       else if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE") == 0)
-                                               n->mode = AccessExclusiveLock;
-                                       else
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str);
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 466:
-#line 2635 "gram.y"
-{
-                                       LockStmt *n = makeNode(LockStmt);
-
-                                       n->relname = yyvsp[-3].str;
-                                       if (strcasecmp(yyvsp[0].str, "MODE"))
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[0].str);
-                                       if (strcasecmp(yyvsp[-1].str, "SHARE") == 0)
-                                               n->mode = ShareLock;
-                                       else if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE") == 0)
-                                               n->mode = ExclusiveLock;
-                                       else
-                                               elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str);
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 467:
-#line 2651 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 468:
-#line 2652 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 469:
-#line 2666 "gram.y"
-{
-                                       UpdateStmt *n = makeNode(UpdateStmt);
-                                       n->relname = yyvsp[-4].str;
-                                       n->targetList = yyvsp[-2].list;
-                                       n->fromClause = yyvsp[-1].list;
-                                       n->whereClause = yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 470:
-#line 2685 "gram.y"
-{
-                                       SelectStmt *n;
-  
-                                       n= (SelectStmt *)yyvsp[-1].node;
-                                       /* from PORTAL name */
-                                       /*
-                                        *      15 august 1991 -- since 3.0 postgres does locking
-                                        *      right, we discovered that portals were violating
-                                        *      locking protocol.  portal locks cannot span xacts.
-                                        *      as a short-term fix, we installed the check here.
-                                        *                                                      -- mao
-                                        */
-                                       if (!IsTransactionBlock())
-                                               elog(ERROR,"Named portals may only be used in begin/end transaction blocks");
-
-                                       n->portalname = yyvsp[-5].str;
-                                       n->binary = yyvsp[-4].boolean;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 471:
-#line 2706 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 472:
-#line 2707 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 473:
-#line 2708 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 474:
-#line 2709 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 475:
-#line 2710 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 476:
-#line 2713 "gram.y"
-{ yyval.boolean = yyvsp[0].boolean; ;
-    break;}
-case 477:
-#line 2714 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 478:
-#line 2717 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 479:
-#line 2719 "gram.y"
-{
-                               elog(ERROR,"DECLARE/UPDATE not supported;"
-                                        " Cursors must be READ ONLY.");
-                               yyval.boolean = FALSE;
-                       ;
-    break;}
-case 480:
-#line 2727 "gram.y"
-{
-                               yyval.boolean = FALSE;
-                       ;
-    break;}
-case 481:
-#line 2746 "gram.y"
-{
-                               /* There were no set operations, so just attach the sortClause */
-                               if IsA(yyvsp[-3].node, SelectStmt)
-                               {
-                                 SelectStmt *n = (SelectStmt *)yyvsp[-3].node;
-                                 n->sortClause = yyvsp[-2].list;
-                                 n->forUpdate = yyvsp[-1].list;
-                                 n->limitOffset = nth(0, yyvsp[0].list);
-                                 n->limitCount = nth(1, yyvsp[0].list);
-                                 yyval.node = (Node *)n;
-                }
-                               /* There were set operations: The root of the operator tree
-                                * is delivered by $1 but we cannot hand back an A_Expr Node.
-                                * So we search for the leftmost 'SelectStmt' in the operator
-                                * tree $1 (which is the first Select Statement in the query 
-                                * typed in by the user or where ever it came from). 
-                                * 
-                                * Then we attach the whole operator tree to 'intersectClause', 
-                                * and a list of all 'SelectStmt' Nodes to 'unionClause' and 
-                                * hand back the leftmost 'SelectStmt' Node. (We do it this way
-                                * because the following functions (e.g. parse_analyze etc.)
-                                * excpect a SelectStmt node and not an operator tree! The whole
-                                * tree attached to 'intersectClause' won't be touched by 
-                                * parse_analyze() etc. until the function 
-                                * Except_Intersect_Rewrite() (in rewriteHandler.c) which performs
-                                * the necessary steps to be able create a plan!) */
-                               else
-                               {
-                                 List *select_list = NIL;
-                                 SelectStmt *first_select;
-                                 Node *op = (Node *) yyvsp[-3].node;
-                                 bool intersect_present = FALSE, unionall_present = FALSE;
-
-                                 /* Take the operator tree as an argument and 
-                                  * create a list of all SelectStmt Nodes found in the tree.
-                                  *
-                                  * If one of the SelectStmt Nodes has the 'unionall' flag
-                                  * set to true the 'unionall_present' flag is also set to
-                                  * true */
-                                 create_select_list((Node *)op, &select_list, &unionall_present);
-
-                                 /* Replace all the A_Expr Nodes in the operator tree by
-                                  * Expr Nodes.
-                                  *
-                                  * If an INTERSECT or an EXCEPT is present, the 
-                                  * 'intersect_present' flag is set to true */
-                                 op = A_Expr_to_Expr(op, &intersect_present);
-
-                                 /* If both flags are set to true we have a UNION ALL
-                                  * statement mixed up with INTERSECT or EXCEPT 
-                                  * which can not be handled at the moment */
-                                 if (intersect_present && unionall_present)
-                                 {
-                                       elog(ERROR,"UNION ALL not allowed in mixed set operations!");
-                                 }
-
-                                 /* Get the leftmost SeletStmt Node (which automatically
-                                  * represents the first Select Statement of the query!) */
-                                 first_select = (SelectStmt *)lfirst(select_list);
-
-                                 /* Attach the list of all SeletStmt Nodes to unionClause */
-                                 first_select->unionClause = select_list;
-
-                                 /* Attach the whole operator tree to intersectClause */
-                                 first_select->intersectClause = (List *) op;
-
-                                 /* finally attach the sort clause */
-                                 first_select->sortClause = yyvsp[-2].list;
-                                 first_select->forUpdate = yyvsp[-1].list;
-                                 yyval.node = (Node *)first_select;
-                               }               
-                               if (((SelectStmt *)yyval.node)->forUpdate != NULL && QueryIsRule)
-                                       elog(ERROR, "SELECT FOR UPDATE is not allowed in RULES");
-                       ;
-    break;}
-case 482:
-#line 2837 "gram.y"
-{
-                               yyval.node = yyvsp[-1].node; 
-                       ;
-    break;}
-case 483:
-#line 2841 "gram.y"
-{
-                               yyval.node = yyvsp[0].node; 
-                       ;
-    break;}
-case 484:
-#line 2845 "gram.y"
-{
-                               yyval.node = (Node *)makeA_Expr(AND,NULL,yyvsp[-2].node,
-                                                       makeA_Expr(NOT,NULL,NULL,yyvsp[0].node));
-                       ;
-    break;}
-case 485:
-#line 2850 "gram.y"
-{      
-                               if (IsA(yyvsp[0].node, SelectStmt))
-                                 {
-                                    SelectStmt *n = (SelectStmt *)yyvsp[0].node;
-                                    n->unionall = yyvsp[-1].boolean;
-                                 }
-                               yyval.node = (Node *)makeA_Expr(OR,NULL,yyvsp[-3].node,yyvsp[0].node);
-                       ;
-    break;}
-case 486:
-#line 2859 "gram.y"
-{
-                               yyval.node = (Node *)makeA_Expr(AND,NULL,yyvsp[-2].node,yyvsp[0].node);
-                       ;
-    break;}
-case 487:
-#line 2868 "gram.y"
-{
-                                       SelectStmt *n = makeNode(SelectStmt);
-                                       n->unique = yyvsp[-6].str;
-                                       n->unionall = FALSE;
-                                       n->targetList = yyvsp[-5].list;
-                                       /***S*I***/
-                                       /* This is new: Subselects support the INTO clause
-                                        * which allows queries that are not part of the
-                                        * SQL92 standard and should not be formulated!
-                                        * We need it for INTERSECT and EXCEPT and I did not
-                                        * want to create a new rule 'SubSelect1' including the
-                                        * feature. If it makes troubles we will have to add 
-                                        * a new rule and change this to prevent INTOs in 
-                                        * Subselects again */
-                                       n->istemp = (bool) ((Value *) lfirst(yyvsp[-4].list))->val.ival;
-                                       n->into = (char *) lnext(yyvsp[-4].list);
-
-                                       n->fromClause = yyvsp[-3].list;
-                                       n->whereClause = yyvsp[-2].node;
-                                       n->groupClause = yyvsp[-1].list;
-                                       n->havingClause = yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 488:
-#line 2894 "gram.y"
-{ yyval.list = lcons(makeInteger(yyvsp[-2].boolean), (List *)yyvsp[0].str); ;
-    break;}
-case 489:
-#line 2895 "gram.y"
-{ yyval.list = lcons(makeInteger(false), NIL); ;
-    break;}
-case 490:
-#line 2898 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 491:
-#line 2899 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 492:
-#line 2902 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 493:
-#line 2903 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 494:
-#line 2906 "gram.y"
-{ yyval.str = "*"; ;
-    break;}
-case 495:
-#line 2907 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 496:
-#line 2908 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 497:
-#line 2909 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 498:
-#line 2912 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 499:
-#line 2913 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 500:
-#line 2916 "gram.y"
-{ yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ;
-    break;}
-case 501:
-#line 2917 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ;
-    break;}
-case 502:
-#line 2921 "gram.y"
-{
-                                       yyval.sortgroupby = makeNode(SortGroupBy);
-                                       yyval.sortgroupby->node = yyvsp[-1].node;
-                                       yyval.sortgroupby->useOp = yyvsp[0].str;
-                               ;
-    break;}
-case 503:
-#line 2928 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 504:
-#line 2929 "gram.y"
-{ yyval.str = "<"; ;
-    break;}
-case 505:
-#line 2930 "gram.y"
-{ yyval.str = ">"; ;
-    break;}
-case 506:
-#line 2931 "gram.y"
-{ yyval.str = "<"; ;
-    break;}
-case 507:
-#line 2932 "gram.y"
-{ yyval.str = ">"; ;
-    break;}
-case 508:
-#line 2933 "gram.y"
-{ yyval.str = "<"; /*default*/ ;
-    break;}
-case 509:
-#line 2938 "gram.y"
-{ yyval.list = lappend(lappend(NIL, yyvsp[0].node), yyvsp[-2].node); ;
-    break;}
-case 510:
-#line 2940 "gram.y"
-{ yyval.list = lappend(lappend(NIL, yyvsp[0].node), yyvsp[-2].node); ;
-    break;}
-case 511:
-#line 2942 "gram.y"
-{ yyval.list = lappend(lappend(NIL, NULL), yyvsp[0].node); ;
-    break;}
-case 512:
-#line 2944 "gram.y"
-{ yyval.list = lappend(lappend(NIL, yyvsp[-2].node), yyvsp[0].node); ;
-    break;}
-case 513:
-#line 2946 "gram.y"
-{ yyval.list = lappend(lappend(NIL, yyvsp[0].node), NULL); ;
-    break;}
-case 514:
-#line 2948 "gram.y"
-{ yyval.list = lappend(lappend(NIL, NULL), NULL); ;
-    break;}
-case 515:
-#line 2952 "gram.y"
-{
-                               Const   *n = makeNode(Const);
-
-                               if (yyvsp[0].ival < 1)
-                                       elog(ERROR, "selection limit must be ALL or a positive integer value > 0");
-
-                               n->consttype    = INT4OID;
-                               n->constlen             = sizeof(int4);
-                               n->constvalue   = (Datum)yyvsp[0].ival;
-                               n->constisnull  = FALSE;
-                               n->constbyval   = TRUE;
-                               n->constisset   = FALSE;
-                               n->constiscast  = FALSE;
-                               yyval.node = (Node *)n;
-                       ;
-    break;}
-case 516:
-#line 2968 "gram.y"
-{
-                               Const   *n = makeNode(Const);
-
-                               n->consttype    = INT4OID;
-                               n->constlen             = sizeof(int4);
-                               n->constvalue   = (Datum)0;
-                               n->constisnull  = FALSE;
-                               n->constbyval   = TRUE;
-                               n->constisset   = FALSE;
-                               n->constiscast  = FALSE;
-                               yyval.node = (Node *)n;
-                       ;
-    break;}
-case 517:
-#line 2981 "gram.y"
-{
-                               Param   *n = makeNode(Param);
-
-                               n->paramkind    = PARAM_NUM;
-                               n->paramid              = yyvsp[0].ival;
-                               n->paramtype    = INT4OID;
-                               yyval.node = (Node *)n;
-                       ;
-    break;}
-case 518:
-#line 2992 "gram.y"
-{
-                               Const   *n = makeNode(Const);
-
-                               n->consttype    = INT4OID;
-                               n->constlen             = sizeof(int4);
-                               n->constvalue   = (Datum)yyvsp[0].ival;
-                               n->constisnull  = FALSE;
-                               n->constbyval   = TRUE;
-                               n->constisset   = FALSE;
-                               n->constiscast  = FALSE;
-                               yyval.node = (Node *)n;
-                       ;
-    break;}
-case 519:
-#line 3005 "gram.y"
-{
-                               Param   *n = makeNode(Param);
-
-                               n->paramkind    = PARAM_NUM;
-                               n->paramid              = yyvsp[0].ival;
-                               n->paramtype    = INT4OID;
-                               yyval.node = (Node *)n;
-                       ;
-    break;}
-case 520:
-#line 3021 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 521:
-#line 3022 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 523:
-#line 3028 "gram.y"
-{      yyval.list = lcons(makeString(yyvsp[0].str),NIL); ;
-    break;}
-case 524:
-#line 3030 "gram.y"
-{      yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ;
-    break;}
-case 525:
-#line 3033 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 526:
-#line 3034 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 527:
-#line 3038 "gram.y"
-{
-                                       yyval.node = yyvsp[0].node;
-                               ;
-    break;}
-case 528:
-#line 3041 "gram.y"
-{ yyval.node = NULL; ;
-    break;}
-case 529:
-#line 3044 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 530:
-#line 3045 "gram.y"
-{ yyval.list = NULL; ;
-    break;}
-case 531:
-#line 3048 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 532:
-#line 3049 "gram.y"
-{ yyval.list = lcons(NULL, NULL); ;
-    break;}
-case 533:
-#line 3060 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 534:
-#line 3061 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 535:
-#line 3065 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 536:
-#line 3067 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 537:
-#line 3069 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 538:
-#line 3073 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); ;
-    break;}
-case 539:
-#line 3075 "gram.y"
-{ yyval.list = lcons(yyvsp[0].range, NIL); ;
-    break;}
-case 540:
-#line 3079 "gram.y"
-{
-                                       yyval.range = makeNode(RangeVar);
-                                       yyval.range->relExpr = yyvsp[-2].relexp;
-                                       yyval.range->name = yyvsp[0].str;
-                               ;
-    break;}
-case 541:
-#line 3085 "gram.y"
-{
-                                       yyval.range = makeNode(RangeVar);
-                                       yyval.range->relExpr = yyvsp[-1].relexp;
-                                       yyval.range->name = yyvsp[0].str;
-                               ;
-    break;}
-case 542:
-#line 3091 "gram.y"
-{
-                                       yyval.range = makeNode(RangeVar);
-                                       yyval.range->relExpr = yyvsp[0].relexp;
-                                       yyval.range->name = NULL;
-                               ;
-    break;}
-case 543:
-#line 3103 "gram.y"
-{      yyval.list = yyvsp[0].list; ;
-    break;}
-case 544:
-#line 3105 "gram.y"
-{      elog(ERROR,"UNION JOIN not yet implemented"); ;
-    break;}
-case 545:
-#line 3109 "gram.y"
-{
-                                       Node *n = lfirst(yyvsp[0].list);
-
-                                       /* JoinExpr came back? then it is a join of some sort...
-                                        */
-                                       if (IsA(n, JoinExpr))
-                                       {
-                                               JoinExpr *j = (JoinExpr *)n;
-                                               j->larg = yyvsp[-1].range;
-                                               yyval.list = yyvsp[0].list;
-                                       }
-                                       /* otherwise, it was a cross join,
-                                        * which we just represent as an inner join...
-                                        */
-                                       else
-                                               yyval.list = lcons(yyvsp[-1].range, yyvsp[0].list);
-                               ;
-    break;}
-case 546:
-#line 3129 "gram.y"
-{
-                                       yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node);
-                               ;
-    break;}
-case 547:
-#line 3133 "gram.y"
-{
-                                       yyval.list = lcons(yyvsp[0].node, NIL);
-                               ;
-    break;}
-case 548:
-#line 3145 "gram.y"
-{
-                                       JoinExpr *n = makeNode(JoinExpr);
-                                       n->jointype = yyvsp[-3].ival;
-                                       n->rarg = (Node *)yyvsp[-1].range;
-                                       n->quals = yyvsp[0].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 549:
-#line 3153 "gram.y"
-{
-                                       JoinExpr *n = makeNode(JoinExpr);
-                                       n->jointype = yyvsp[-2].ival;
-                                       n->rarg = (Node *)yyvsp[0].range;
-                                       n->quals = NULL; /* figure out which columns later... */
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 550:
-#line 3161 "gram.y"
-{ yyval.node = (Node *)yyvsp[0].range; ;
-    break;}
-case 551:
-#line 3166 "gram.y"
-{
-                                       yyval.ival = FULL;
-                                       elog(NOTICE,"FULL OUTER JOIN not yet implemented");
-                               ;
-    break;}
-case 552:
-#line 3171 "gram.y"
-{
-                                       yyval.ival = LEFT;
-                                       elog(NOTICE,"LEFT OUTER JOIN not yet implemented");
-                               ;
-    break;}
-case 553:
-#line 3176 "gram.y"
-{
-                                       yyval.ival = RIGHT;
-                                       elog(NOTICE,"RIGHT OUTER JOIN not yet implemented");
-                               ;
-    break;}
-case 554:
-#line 3181 "gram.y"
-{
-                                       yyval.ival = LEFT;
-                                       elog(NOTICE,"OUTER JOIN not yet implemented");
-                               ;
-    break;}
-case 555:
-#line 3186 "gram.y"
-{
-                                       yyval.ival = INNER_P;
-                               ;
-    break;}
-case 556:
-#line 3190 "gram.y"
-{
-                                       yyval.ival = INNER_P;
-                               ;
-    break;}
-case 557:
-#line 3195 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 558:
-#line 3196 "gram.y"
-{ yyval.str = NULL;  /* no qualifiers */ ;
-    break;}
-case 559:
-#line 3207 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
-    break;}
-case 560:
-#line 3208 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 561:
-#line 3211 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
-    break;}
-case 562:
-#line 3212 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 563:
-#line 3216 "gram.y"
-{
-                                       /* could be a column name or a relation_name */
-                                       Ident *n = makeNode(Ident);
-                                       n->name = yyvsp[0].str;
-                                       n->indirection = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 564:
-#line 3225 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
-    break;}
-case 565:
-#line 3226 "gram.y"
-{ yyval.node = NULL;  /* no qualifiers */ ;
-    break;}
-case 566:
-#line 3230 "gram.y"
-{
-                                       /* normal relations */
-                                       yyval.relexp = makeNode(RelExpr);
-                                       yyval.relexp->relname = yyvsp[0].str;
-                                       yyval.relexp->inh = FALSE;
-                               ;
-    break;}
-case 567:
-#line 3237 "gram.y"
-{
-                                       /* inheritance query */
-                                       yyval.relexp = makeNode(RelExpr);
-                                       yyval.relexp->relname = yyvsp[-1].str;
-                                       yyval.relexp->inh = TRUE;
-                               ;
-    break;}
-case 568:
-#line 3245 "gram.y"
-{  yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ;
-    break;}
-case 569:
-#line 3247 "gram.y"
-{  yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ;
-    break;}
-case 570:
-#line 3249 "gram.y"
-{  yyval.list = NIL; ;
-    break;}
-case 571:
-#line 3253 "gram.y"
-{  yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ;
-    break;}
-case 572:
-#line 3255 "gram.y"
-{  yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ;
-    break;}
-case 573:
-#line 3257 "gram.y"
-{  yyval.list = NIL; ;
-    break;}
-case 574:
-#line 3272 "gram.y"
-{
-                                       yyval.typnam = yyvsp[-1].typnam;
-                                       yyval.typnam->arrayBounds = yyvsp[0].list;
-
-                                       /* Is this the name of a complex type? If so, implement
-                                        * it as a set.
-                                        */
-                                       if (!strcmp(saved_relname, yyval.typnam->name))
-                                               /* This attr is the same type as the relation
-                                                * being defined. The classic example: create
-                                                * emp(name=text,mgr=emp)
-                                                */
-                                               yyval.typnam->setof = TRUE;
-                                       else if (typeTypeRelid(typenameType(yyval.typnam->name)) != InvalidOid)
-                                                /* (Eventually add in here that the set can only
-                                                 * contain one element.)
-                                                 */
-                                               yyval.typnam->setof = TRUE;
-                                       else
-                                               yyval.typnam->setof = FALSE;
-                               ;
-    break;}
-case 575:
-#line 3294 "gram.y"
-{
-                                       yyval.typnam = yyvsp[0].typnam;
-                                       yyval.typnam->setof = TRUE;
-                               ;
-    break;}
-case 580:
-#line 3307 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType(yyvsp[0].str);
-                                       yyval.typnam->typmod = -1;
-                               ;
-    break;}
-case 581:
-#line 3314 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 582:
-#line 3315 "gram.y"
-{ yyval.str = xlateSqlType("type"); ;
-    break;}
-case 583:
-#line 3324 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType(yyvsp[0].str);
-                                       yyval.typnam->typmod = -1;
-                               ;
-    break;}
-case 584:
-#line 3330 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType("float");
-                               ;
-    break;}
-case 585:
-#line 3335 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType("numeric");
-                                       yyval.typnam->typmod = yyvsp[0].ival;
-                               ;
-    break;}
-case 586:
-#line 3341 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType("numeric");
-                                       yyval.typnam->typmod = yyvsp[0].ival;
-                               ;
-    break;}
-case 587:
-#line 3349 "gram.y"
-{      yyval.str = xlateSqlType("float8"); ;
-    break;}
-case 588:
-#line 3351 "gram.y"
-{      yyval.str = xlateSqlType("float8"); ;
-    break;}
-case 589:
-#line 3353 "gram.y"
-{      yyval.str = xlateSqlType("numeric"); ;
-    break;}
-case 590:
-#line 3355 "gram.y"
-{      yyval.str = xlateSqlType("numeric"); ;
-    break;}
-case 591:
-#line 3359 "gram.y"
-{
-                                       if (yyvsp[-1].ival < 1)
-                                               elog(ERROR,"precision for FLOAT must be at least 1");
-                                       else if (yyvsp[-1].ival < 7)
-                                               yyval.str = xlateSqlType("float4");
-                                       else if (yyvsp[-1].ival < 16)
-                                               yyval.str = xlateSqlType("float8");
-                                       else
-                                               elog(ERROR,"precision for FLOAT must be less than 16");
-                               ;
-    break;}
-case 592:
-#line 3370 "gram.y"
-{
-                                       yyval.str = xlateSqlType("float8");
-                               ;
-    break;}
-case 593:
-#line 3376 "gram.y"
-{
-                                       if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION)
-                                               elog(ERROR,"NUMERIC precision %d must be beween 1 and %d",
-                                                                       yyvsp[-3].ival, NUMERIC_MAX_PRECISION);
-                                       if (yyvsp[-1].ival < 0 || yyvsp[-1].ival > yyvsp[-3].ival)
-                                               elog(ERROR,"NUMERIC scale %d must be between 0 and precision %d",
-                                                                       yyvsp[-1].ival,yyvsp[-3].ival);
-
-                                       yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ;
-                               ;
-    break;}
-case 594:
-#line 3387 "gram.y"
-{
-                                       if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION)
-                                               elog(ERROR,"NUMERIC precision %d must be beween 1 and %d",
-                                                                       yyvsp[-1].ival, NUMERIC_MAX_PRECISION);
-
-                                       yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ;
-                               ;
-    break;}
-case 595:
-#line 3395 "gram.y"
-{
-                                       yyval.ival = ((NUMERIC_DEFAULT_PRECISION << 16) | NUMERIC_DEFAULT_SCALE) + VARHDRSZ;
-                               ;
-    break;}
-case 596:
-#line 3401 "gram.y"
-{
-                                       if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION)
-                                               elog(ERROR,"DECIMAL precision %d must be beween 1 and %d",
-                                                                       yyvsp[-3].ival, NUMERIC_MAX_PRECISION);
-                                       if (yyvsp[-1].ival < 0 || yyvsp[-1].ival > yyvsp[-3].ival)
-                                               elog(ERROR,"DECIMAL scale %d must be between 0 and precision %d",
-                                                                       yyvsp[-1].ival,yyvsp[-3].ival);
-
-                                       yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ;
-                               ;
-    break;}
-case 597:
-#line 3412 "gram.y"
-{
-                                       if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION)
-                                               elog(ERROR,"DECIMAL precision %d must be beween 1 and %d",
-                                                                       yyvsp[-1].ival, NUMERIC_MAX_PRECISION);
-
-                                       yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ;
-                               ;
-    break;}
-case 598:
-#line 3420 "gram.y"
-{
-                                       yyval.ival = ((NUMERIC_DEFAULT_PRECISION << 16) | NUMERIC_DEFAULT_SCALE) + VARHDRSZ;
-                               ;
-    break;}
-case 599:
-#line 3430 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       if (strcasecmp(yyvsp[-3].str, "char") == 0)
-                                               yyval.typnam->name = xlateSqlType("bpchar");
-                                       else if (strcasecmp(yyvsp[-3].str, "varchar") == 0)
-                                               yyval.typnam->name = xlateSqlType("varchar");
-                                       else
-                                               yyerror("internal parsing error; unrecognized character type");
-
-                                       if (yyvsp[-1].ival < 1)
-                                               elog(ERROR,"length for '%s' type must be at least 1",yyvsp[-3].str);
-                                       else if (yyvsp[-1].ival > 4096)
-                                               /* we can store a char() of length up to the size
-                                                * of a page (8KB) - page headers and friends but
-                                                * just to be safe here...      - ay 6/95
-                                                * XXX note this hardcoded limit - thomas 1997-07-13
-                                                */
-                                               elog(ERROR,"length for type '%s' cannot exceed 4096",yyvsp[-3].str);
-
-                                       /* we actually implement this sort of like a varlen, so
-                                        * the first 4 bytes is the length. (the difference
-                                        * between this and "text" is that we blank-pad and
-                                        * truncate where necessary
-                                        */
-                                       yyval.typnam->typmod = VARHDRSZ + yyvsp[-1].ival;
-                               ;
-    break;}
-case 600:
-#line 3457 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       /* Let's try to make all single-character types into bpchar(1)
-                                        * - thomas 1998-05-07
-                                        */
-                                       if (strcasecmp(yyvsp[0].str, "char") == 0)
-                                       {
-                                               yyval.typnam->name = xlateSqlType("bpchar");
-                                               yyval.typnam->typmod = VARHDRSZ + 1;
-                                       }
-                                       else
-                                       {
-                                               yyval.typnam->name = xlateSqlType(yyvsp[0].str);
-                                               yyval.typnam->typmod = -1;
-                                       }
-                               ;
-    break;}
-case 601:
-#line 3476 "gram.y"
-{
-                                       char *type, *c;
-                                       if ((yyvsp[-1].str == NULL) || (strcasecmp(yyvsp[-1].str, "sql_text") == 0)) {
-                                               if (yyvsp[-2].boolean) type = xlateSqlType("varchar");
-                                               else type = xlateSqlType("char");
-                                       } else {
-                                               if (yyvsp[-2].boolean) {
-                                                       c = palloc(strlen("var") + strlen(yyvsp[-1].str) + 1);
-                                                       strcpy(c, "var");
-                                                       strcat(c, yyvsp[-1].str);
-                                                       type = xlateSqlType(c);
-                                               } else {
-                                                       type = xlateSqlType(yyvsp[-1].str);
-                                               }
-                                       };
-                                       if (yyvsp[0].str != NULL)
-                                               elog(NOTICE,"COLLATE %s not yet implemented; clause ignored",yyvsp[0].str);
-                                       yyval.str = type;
-                               ;
-    break;}
-case 602:
-#line 3495 "gram.y"
-{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
-    break;}
-case 603:
-#line 3496 "gram.y"
-{ yyval.str = xlateSqlType("varchar"); ;
-    break;}
-case 604:
-#line 3497 "gram.y"
-{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
-    break;}
-case 605:
-#line 3498 "gram.y"
-{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
-    break;}
-case 606:
-#line 3501 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 607:
-#line 3502 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 608:
-#line 3505 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 609:
-#line 3506 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 610:
-#line 3509 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 611:
-#line 3510 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 612:
-#line 3514 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType(yyvsp[0].str);
-                                       yyval.typnam->typmod = -1;
-                               ;
-    break;}
-case 613:
-#line 3520 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType("timestamp");
-                                       yyval.typnam->timezone = yyvsp[0].boolean;
-                                       yyval.typnam->typmod = -1;
-                               ;
-    break;}
-case 614:
-#line 3527 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType("time");
-                                       yyval.typnam->typmod = -1;
-                               ;
-    break;}
-case 615:
-#line 3533 "gram.y"
-{
-                                       yyval.typnam = makeNode(TypeName);
-                                       yyval.typnam->name = xlateSqlType("interval");
-                                       yyval.typnam->typmod = -1;
-                               ;
-    break;}
-case 616:
-#line 3540 "gram.y"
-{ yyval.str = "year"; ;
-    break;}
-case 617:
-#line 3541 "gram.y"
-{ yyval.str = "month"; ;
-    break;}
-case 618:
-#line 3542 "gram.y"
-{ yyval.str = "day"; ;
-    break;}
-case 619:
-#line 3543 "gram.y"
-{ yyval.str = "hour"; ;
-    break;}
-case 620:
-#line 3544 "gram.y"
-{ yyval.str = "minute"; ;
-    break;}
-case 621:
-#line 3545 "gram.y"
-{ yyval.str = "second"; ;
-    break;}
-case 622:
-#line 3548 "gram.y"
-{ yyval.boolean = TRUE; ;
-    break;}
-case 623:
-#line 3549 "gram.y"
-{ yyval.boolean = FALSE; ;
-    break;}
-case 624:
-#line 3552 "gram.y"
-{ yyval.list = lcons(yyvsp[0].str, NIL); ;
-    break;}
-case 625:
-#line 3553 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 626:
-#line 3554 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 627:
-#line 3555 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 628:
-#line 3556 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 629:
-#line 3557 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 630:
-#line 3558 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 631:
-#line 3559 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 632:
-#line 3560 "gram.y"
-{ yyval.list = NIL; ;
-    break;}
-case 633:
-#line 3571 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
-    break;}
-case 634:
-#line 3573 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_Null;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 635:
-#line 3590 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = yyvsp[-5].list;
-                                       n->oper = lcons("=",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 636:
-#line 3600 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = yyvsp[-6].list;
-                                       n->oper = lcons("<>",NIL);
-                                       n->useor = true;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 637:
-#line 3610 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = yyvsp[-6].list;
-                                       n->oper = lcons(yyvsp[-4].str, NIL);
-                                       if (strcmp(yyvsp[-4].str,"<>") == 0)
-                                               n->useor = true;
-                                       else
-                                               n->useor = false;
-                                       n->subLinkType = yyvsp[-3].ival;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 638:
-#line 3623 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = yyvsp[-5].list;
-                                       n->oper = lcons(yyvsp[-3].str, NIL);
-                                       if (strcmp(yyvsp[-3].str,"<>") == 0)
-                                               n->useor = true;
-                                       else
-                                               n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 639:
-#line 3636 "gram.y"
-{
-                                       yyval.node = makeRowExpr(yyvsp[-3].str, yyvsp[-5].list, yyvsp[-1].list);
-                               ;
-    break;}
-case 640:
-#line 3642 "gram.y"
-{
-                                       yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
-                               ;
-    break;}
-case 641:
-#line 3648 "gram.y"
-{
-                                       yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
-                               ;
-    break;}
-case 642:
-#line 3652 "gram.y"
-{
-                                       yyval.list = lcons(yyvsp[0].node, NIL);
-                               ;
-    break;}
-case 643:
-#line 3657 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 644:
-#line 3658 "gram.y"
-{ yyval.str = "<"; ;
-    break;}
-case 645:
-#line 3659 "gram.y"
-{ yyval.str = "="; ;
-    break;}
-case 646:
-#line 3660 "gram.y"
-{ yyval.str = ">"; ;
-    break;}
-case 647:
-#line 3661 "gram.y"
-{ yyval.str = "+"; ;
-    break;}
-case 648:
-#line 3662 "gram.y"
-{ yyval.str = "-"; ;
-    break;}
-case 649:
-#line 3663 "gram.y"
-{ yyval.str = "*"; ;
-    break;}
-case 650:
-#line 3664 "gram.y"
-{ yyval.str = "/"; ;
-    break;}
-case 651:
-#line 3665 "gram.y"
-{ yyval.str = "%"; ;
-    break;}
-case 652:
-#line 3668 "gram.y"
-{ yyval.ival = ANY_SUBLINK; ;
-    break;}
-case 653:
-#line 3669 "gram.y"
-{ yyval.ival = ALL_SUBLINK; ;
-    break;}
-case 654:
-#line 3681 "gram.y"
-{
-                                       yyvsp[-1].attr->indirection = yyvsp[0].list;
-                                       yyval.node = (Node *)yyvsp[-1].attr;
-                               ;
-    break;}
-case 655:
-#line 3686 "gram.y"
-{      yyval.node = yyvsp[0].node;  ;
-    break;}
-case 656:
-#line 3688 "gram.y"
-{      yyval.node = yyvsp[0].node;  ;
-    break;}
-case 657:
-#line 3690 "gram.y"
-{
-                                       /* could be a column name or a relation_name */
-                                       Ident *n = makeNode(Ident);
-                                       n->name = yyvsp[0].str;
-                                       n->indirection = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 658:
-#line 3698 "gram.y"
-{      yyval.node = doNegate(yyvsp[0].node); ;
-    break;}
-case 659:
-#line 3700 "gram.y"
-{      yyval.node = makeA_Expr(OP, "%", NULL, yyvsp[0].node); ;
-    break;}
-case 660:
-#line 3702 "gram.y"
-{      yyval.node = makeA_Expr(OP, "%", yyvsp[-1].node, NULL); ;
-    break;}
-case 661:
-#line 3704 "gram.y"
-{      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 662:
-#line 3706 "gram.y"
-{      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 663:
-#line 3708 "gram.y"
-{      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 664:
-#line 3710 "gram.y"
-{      yyval.node = makeA_Expr(OP, "%", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 665:
-#line 3712 "gram.y"
-{      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 666:
-#line 3714 "gram.y"
-{      yyval.node = makeA_Expr(OP, "<", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 667:
-#line 3716 "gram.y"
-{      yyval.node = makeA_Expr(OP, ">", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 668:
-#line 3720 "gram.y"
-{      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ;
-    break;}
-case 669:
-#line 3722 "gram.y"
-{      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[0].node, NULL); ;
-    break;}
-case 670:
-#line 3725 "gram.y"
-{      yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 671:
-#line 3727 "gram.y"
-{      yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ;
-    break;}
-case 672:
-#line 3729 "gram.y"
-{      yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ;
-    break;}
-case 673:
-#line 3731 "gram.y"
-{      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
-    break;}
-case 674:
-#line 3733 "gram.y"
-{
-                                       yyval.node = (Node *)yyvsp[-2].node;
-                                       /* AexprConst can be either A_Const or ParamNo */
-                                       if (nodeTag(yyvsp[-2].node) == T_A_Const) {
-                                               ((A_Const *)yyvsp[-2].node)->typename = yyvsp[0].typnam;
-                                       } else if (nodeTag(yyvsp[-2].node) == T_Param) {
-                                               ((ParamNo *)yyvsp[-2].node)->typename = yyvsp[0].typnam;
-                                       /* otherwise, try to transform to a function call */
-                                       } else {
-                                               FuncCall *n = makeNode(FuncCall);
-                                               n->funcname = yyvsp[0].typnam->name;
-                                               n->args = lcons(yyvsp[-2].node,NIL);
-                                               yyval.node = (Node *)n;
-                                       }
-                               ;
-    break;}
-case 675:
-#line 3749 "gram.y"
-{
-                                       yyval.node = (Node *)yyvsp[-3].node;
-                                       /* AexprConst can be either A_Const or ParamNo */
-                                       if (nodeTag(yyvsp[-3].node) == T_A_Const) {
-                                               ((A_Const *)yyvsp[-3].node)->typename = yyvsp[-1].typnam;
-                                       } else if (nodeTag(yyvsp[-1].typnam) == T_Param) {
-                                               ((ParamNo *)yyvsp[-3].node)->typename = yyvsp[-1].typnam;
-                                       /* otherwise, try to transform to a function call */
-                                       } else {
-                                               FuncCall *n = makeNode(FuncCall);
-                                               n->funcname = yyvsp[-1].typnam->name;
-                                               n->args = lcons(yyvsp[-3].node,NIL);
-                                               yyval.node = (Node *)n;
-                                       }
-                               ;
-    break;}
-case 676:
-#line 3765 "gram.y"
-{      yyval.node = yyvsp[-1].node; ;
-    break;}
-case 677:
-#line 3767 "gram.y"
-{      yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ;
-    break;}
-case 678:
-#line 3769 "gram.y"
-{      yyval.node = makeIndexable("~~", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 679:
-#line 3771 "gram.y"
-{      yyval.node = makeA_Expr(OP, "!~~", yyvsp[-3].node, yyvsp[0].node); ;
-    break;}
-case 680:
-#line 3773 "gram.y"
-{      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
-    break;}
-case 681:
-#line 3775 "gram.y"
-{      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
-    break;}
-case 682:
-#line 3777 "gram.y"
-{
-                                       /* cheap hack for aggregate (eg. count) */
-                                       FuncCall *n = makeNode(FuncCall);
-                                       A_Const *star = makeNode(A_Const);
-
-                                       star->val.type = T_String;
-                                       star->val.val.str = "";
-                                       n->funcname = yyvsp[-3].str;
-                                       n->args = lcons(star, NIL);
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 683:
-#line 3789 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = yyvsp[-2].str;
-                                       n->args = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 684:
-#line 3796 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = yyvsp[-3].str;
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 685:
-#line 3803 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->val.type = T_String;
-                                       n->val.val.str = "now";
-                                       n->typename = t;
-
-                                       t->name = xlateSqlType("date");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 686:
-#line 3818 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->val.type = T_String;
-                                       n->val.val.str = "now";
-                                       n->typename = t;
-
-                                       t->name = xlateSqlType("time");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 687:
-#line 3833 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       A_Const *s = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->funcname = xlateSqlType("time");
-                                       n->args = lcons(s, NIL);
-
-                                       s->val.type = T_String;
-                                       s->val.val.str = "now";
-                                       s->typename = t;
-
-                                       t->name = xlateSqlType("time");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       if (yyvsp[-1].ival != 0)
-                                               elog(NOTICE,"CURRENT_TIME(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 688:
-#line 3855 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->val.type = T_String;
-                                       n->val.val.str = "now";
-                                       n->typename = t;
-
-                                       t->name = xlateSqlType("timestamp");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 689:
-#line 3870 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       A_Const *s = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->funcname = xlateSqlType("timestamp");
-                                       n->args = lcons(s, NIL);
-
-                                       s->val.type = T_String;
-                                       s->val.val.str = "now";
-                                       s->typename = t;
-
-                                       t->name = xlateSqlType("timestamp");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       if (yyvsp[-1].ival != 0)
-                                               elog(NOTICE,"CURRENT_TIMESTAMP(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 690:
-#line 3892 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "getpgusername";
-                                       n->args = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 691:
-#line 3899 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "getpgusername";
-                                       n->args = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 692:
-#line 3906 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = NIL;
-                                       n->useor = false;
-                                       n->oper = NIL;
-                                       n->subLinkType = EXISTS_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 693:
-#line 3916 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "date_part";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 694:
-#line 3923 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "strpos";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 695:
-#line 3930 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "substr";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 696:
-#line 3938 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "btrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 697:
-#line 3945 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "ltrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 698:
-#line 3952 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "rtrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 699:
-#line 3959 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "btrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 700:
-#line 3966 "gram.y"
-{      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ;
-    break;}
-case 701:
-#line 3968 "gram.y"
-{      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ;
-    break;}
-case 702:
-#line 3970 "gram.y"
-{      yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ;
-    break;}
-case 703:
-#line 3972 "gram.y"
-{      yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ;
-    break;}
-case 704:
-#line 3979 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = "t";
-                                       n->typename = makeNode(TypeName);
-                                       n->typename->name = xlateSqlType("bool");
-                                       n->typename->typmod = -1;
-                                       yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n);
-                               ;
-    break;}
-case 705:
-#line 3989 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = "t";
-                                       n->typename = makeNode(TypeName);
-                                       n->typename->name = xlateSqlType("bool");
-                                       n->typename->typmod = -1;
-                                       yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n);
-                               ;
-    break;}
-case 706:
-#line 3999 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = "f";
-                                       n->typename = makeNode(TypeName);
-                                       n->typename->name = xlateSqlType("bool");
-                                       n->typename->typmod = -1;
-                                       yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n);
-                               ;
-    break;}
-case 707:
-#line 4009 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = "f";
-                                       n->typename = makeNode(TypeName);
-                                       n->typename->name = xlateSqlType("bool");
-                                       n->typename->typmod = -1;
-                                       yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n);
-                               ;
-    break;}
-case 708:
-#line 4019 "gram.y"
-{
-                                       yyval.node = makeA_Expr(AND, NULL,
-                                               makeA_Expr(OP, ">=", yyvsp[-4].node, yyvsp[-2].node),
-                                               makeA_Expr(OP, "<=", yyvsp[-4].node, yyvsp[0].node));
-                               ;
-    break;}
-case 709:
-#line 4025 "gram.y"
-{
-                                       yyval.node = makeA_Expr(OR, NULL,
-                                               makeA_Expr(OP, "<", yyvsp[-5].node, yyvsp[-2].node),
-                                               makeA_Expr(OP, ">", yyvsp[-5].node, yyvsp[0].node));
-                               ;
-    break;}
-case 710:
-#line 4030 "gram.y"
-{ saved_In_Expr = lcons(yyvsp[-1].node,saved_In_Expr); ;
-    break;}
-case 711:
-#line 4031 "gram.y"
-{
-                                       saved_In_Expr = lnext(saved_In_Expr);
-                                       if (nodeTag(yyvsp[-1].node) == T_SubLink)
-                                       {
-                                                       SubLink *n = (SubLink *)yyvsp[-1].node;
-                                                       n->lefthand = lcons(yyvsp[-5].node, NIL);
-                                                       n->oper = lcons("=",NIL);
-                                                       n->useor = false;
-                                                       n->subLinkType = ANY_SUBLINK;
-                                                       yyval.node = (Node *)n;
-                                       }
-                                       else    yyval.node = yyvsp[-1].node;
-                               ;
-    break;}
-case 712:
-#line 4044 "gram.y"
-{ saved_In_Expr = lcons(yyvsp[-2].node,saved_In_Expr); ;
-    break;}
-case 713:
-#line 4045 "gram.y"
-{
-                                       saved_In_Expr = lnext(saved_In_Expr);
-                                       if (nodeTag(yyvsp[-1].node) == T_SubLink)
-                                       {
-                                                       SubLink *n = (SubLink *)yyvsp[-1].node;
-                                                       n->lefthand = lcons(yyvsp[-6].node, NIL);
-                                                       n->oper = lcons("<>",NIL);
-                                                       n->useor = false;
-                                                       n->subLinkType = ALL_SUBLINK;
-                                                       yyval.node = (Node *)n;
-                                       }
-                                       else    yyval.node = yyvsp[-1].node;
-                               ;
-    break;}
-case 714:
-#line 4059 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons(yyvsp[-3].str,NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 715:
-#line 4069 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons("+",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 716:
-#line 4079 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons("-",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 717:
-#line 4089 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons("/",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 718:
-#line 4099 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons("%",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 719:
-#line 4109 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons("*",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 720:
-#line 4119 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons("<",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 721:
-#line 4129 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons(">",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 722:
-#line 4139 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-4].node, NULL);
-                                       n->oper = lcons("=",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = EXPR_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 723:
-#line 4149 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons(yyvsp[-4].str,NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 724:
-#line 4159 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons("+",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 725:
-#line 4169 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons("-",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 726:
-#line 4179 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons("/",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 727:
-#line 4189 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons("%",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 728:
-#line 4199 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons("*",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 729:
-#line 4209 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons("<",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 730:
-#line 4219 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons(">",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 731:
-#line 4229 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node,NIL);
-                                       n->oper = lcons("=",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ANY_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 732:
-#line 4239 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons(yyvsp[-4].str,NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 733:
-#line 4249 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons("+",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 734:
-#line 4259 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons("-",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 735:
-#line 4269 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons("/",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 736:
-#line 4279 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons("%",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 737:
-#line 4289 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons("*",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 738:
-#line 4299 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons("<",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 739:
-#line 4309 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons(">",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 740:
-#line 4319 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->lefthand = lcons(yyvsp[-5].node, NULL);
-                                       n->oper = lcons("=",NIL);
-                                       n->useor = false;
-                                       n->subLinkType = ALL_SUBLINK;
-                                       n->subselect = yyvsp[-1].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 741:
-#line 4329 "gram.y"
-{      yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 742:
-#line 4331 "gram.y"
-{      yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 743:
-#line 4333 "gram.y"
-{      yyval.node = makeA_Expr(NOT, NULL, NULL, yyvsp[0].node); ;
-    break;}
-case 744:
-#line 4335 "gram.y"
-{      yyval.node = yyvsp[0].node; ;
-    break;}
-case 745:
-#line 4344 "gram.y"
-{
-                                       yyvsp[-1].attr->indirection = yyvsp[0].list;
-                                       yyval.node = (Node *)yyvsp[-1].attr;
-                               ;
-    break;}
-case 746:
-#line 4349 "gram.y"
-{      yyval.node = yyvsp[0].node;  ;
-    break;}
-case 747:
-#line 4351 "gram.y"
-{
-                                       /* could be a column name or a relation_name */
-                                       Ident *n = makeNode(Ident);
-                                       n->name = yyvsp[0].str;
-                                       n->indirection = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 748:
-#line 4359 "gram.y"
-{      yyval.node = doNegate(yyvsp[0].node); ;
-    break;}
-case 749:
-#line 4361 "gram.y"
-{      yyval.node = makeA_Expr(OP, "%", NULL, yyvsp[0].node); ;
-    break;}
-case 750:
-#line 4363 "gram.y"
-{      yyval.node = makeA_Expr(OP, "%", yyvsp[-1].node, NULL); ;
-    break;}
-case 751:
-#line 4365 "gram.y"
-{      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 752:
-#line 4367 "gram.y"
-{      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 753:
-#line 4369 "gram.y"
-{      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 754:
-#line 4371 "gram.y"
-{      yyval.node = makeA_Expr(OP, "%", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 755:
-#line 4373 "gram.y"
-{      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 756:
-#line 4375 "gram.y"
-{      yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ;
-    break;}
-case 757:
-#line 4377 "gram.y"
-{      yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ;
-    break;}
-case 758:
-#line 4379 "gram.y"
-{      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
-    break;}
-case 759:
-#line 4381 "gram.y"
-{
-                                       yyval.node = (Node *)yyvsp[-2].node;
-                                       /* AexprConst can be either A_Const or ParamNo */
-                                       if (nodeTag(yyvsp[-2].node) == T_A_Const) {
-                                               ((A_Const *)yyvsp[-2].node)->typename = yyvsp[0].typnam;
-                                       } else if (nodeTag(yyvsp[-2].node) == T_Param) {
-                                               ((ParamNo *)yyvsp[-2].node)->typename = yyvsp[0].typnam;
-                                       /* otherwise, try to transform to a function call */
-                                       } else {
-                                               FuncCall *n = makeNode(FuncCall);
-                                               n->funcname = yyvsp[0].typnam->name;
-                                               n->args = lcons(yyvsp[-2].node,NIL);
-                                               yyval.node = (Node *)n;
-                                       }
-                               ;
-    break;}
-case 760:
-#line 4397 "gram.y"
-{
-                                       yyval.node = (Node *)yyvsp[-3].node;
-                                       /* AexprConst can be either A_Const or ParamNo */
-                                       if (nodeTag(yyvsp[-3].node) == T_A_Const) {
-                                               ((A_Const *)yyvsp[-3].node)->typename = yyvsp[-1].typnam;
-                                       } else if (nodeTag(yyvsp[-3].node) == T_Param) {
-                                               ((ParamNo *)yyvsp[-3].node)->typename = yyvsp[-1].typnam;
-                                       /* otherwise, try to transform to a function call */
-                                       } else {
-                                               FuncCall *n = makeNode(FuncCall);
-                                               n->funcname = yyvsp[-1].typnam->name;
-                                               n->args = lcons(yyvsp[-3].node,NIL);
-                                               yyval.node = (Node *)n;
-                                       }
-                               ;
-    break;}
-case 761:
-#line 4413 "gram.y"
-{      yyval.node = yyvsp[-1].node; ;
-    break;}
-case 762:
-#line 4415 "gram.y"
-{      yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ;
-    break;}
-case 763:
-#line 4417 "gram.y"
-{      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
-    break;}
-case 764:
-#line 4419 "gram.y"
-{      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
-    break;}
-case 765:
-#line 4421 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = yyvsp[-2].str;
-                                       n->args = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 766:
-#line 4428 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = yyvsp[-3].str;
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 767:
-#line 4435 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->val.type = T_String;
-                                       n->val.val.str = "now";
-                                       n->typename = t;
-
-                                       t->name = xlateSqlType("date");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 768:
-#line 4450 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->val.type = T_String;
-                                       n->val.val.str = "now";
-                                       n->typename = t;
-
-                                       t->name = xlateSqlType("time");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 769:
-#line 4465 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       A_Const *s = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->funcname = xlateSqlType("time");
-                                       n->args = lcons(s, NIL);
-
-                                       s->val.type = T_String;
-                                       s->val.val.str = "now";
-                                       s->typename = t;
-
-                                       t->name = xlateSqlType("time");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       if (yyvsp[-1].ival != 0)
-                                               elog(NOTICE,"CURRENT_TIME(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 770:
-#line 4487 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->val.type = T_String;
-                                       n->val.val.str = "now";
-                                       n->typename = t;
-
-                                       t->name = xlateSqlType("timestamp");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 771:
-#line 4502 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       A_Const *s = makeNode(A_Const);
-                                       TypeName *t = makeNode(TypeName);
-
-                                       n->funcname = xlateSqlType("timestamp");
-                                       n->args = lcons(s, NIL);
-
-                                       s->val.type = T_String;
-                                       s->val.val.str = "now";
-                                       s->typename = t;
-
-                                       t->name = xlateSqlType("timestamp");
-                                       t->setof = FALSE;
-                                       t->typmod = -1;
-
-                                       if (yyvsp[-1].ival != 0)
-                                               elog(NOTICE,"CURRENT_TIMESTAMP(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
-
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 772:
-#line 4524 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "getpgusername";
-                                       n->args = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 773:
-#line 4531 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "getpgusername";
-                                       n->args = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 774:
-#line 4538 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "strpos";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 775:
-#line 4545 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "substr";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 776:
-#line 4553 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "btrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 777:
-#line 4560 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "ltrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 778:
-#line 4567 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "rtrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 779:
-#line 4574 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "btrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 780:
-#line 4583 "gram.y"
-{
-                                       A_Indices *ai = makeNode(A_Indices);
-                                       ai->lidx = NULL;
-                                       ai->uidx = yyvsp[-2].node;
-                                       yyval.list = lcons(ai, yyvsp[0].list);
-                               ;
-    break;}
-case 781:
-#line 4590 "gram.y"
-{
-                                       A_Indices *ai = makeNode(A_Indices);
-                                       ai->lidx = yyvsp[-4].node;
-                                       ai->uidx = yyvsp[-2].node;
-                                       yyval.list = lcons(ai, yyvsp[0].list);
-                               ;
-    break;}
-case 782:
-#line 4597 "gram.y"
-{      yyval.list = NIL; ;
-    break;}
-case 783:
-#line 4601 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 784:
-#line 4603 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
-    break;}
-case 785:
-#line 4605 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
-    break;}
-case 786:
-#line 4609 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = yyvsp[-2].str;
-                                       yyval.list = lappend(lcons((Node *)n,NIL), yyvsp[0].node);
-                               ;
-    break;}
-case 787:
-#line 4616 "gram.y"
-{      yyval.list = NIL; ;
-    break;}
-case 788:
-#line 4619 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 789:
-#line 4620 "gram.y"
-{ yyval.str = "tz_hour"; ;
-    break;}
-case 790:
-#line 4621 "gram.y"
-{ yyval.str = "tz_minute"; ;
-    break;}
-case 791:
-#line 4625 "gram.y"
-{      yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ;
-    break;}
-case 792:
-#line 4627 "gram.y"
-{      yyval.list = NIL; ;
-    break;}
-case 793:
-#line 4631 "gram.y"
-{
-                                       yyvsp[-1].attr->indirection = yyvsp[0].list;
-                                       yyval.node = (Node *)yyvsp[-1].attr;
-                               ;
-    break;}
-case 794:
-#line 4636 "gram.y"
-{      yyval.node = yyvsp[0].node;  ;
-    break;}
-case 795:
-#line 4638 "gram.y"
-{      yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ;
-    break;}
-case 796:
-#line 4640 "gram.y"
-{      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 797:
-#line 4642 "gram.y"
-{      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 798:
-#line 4644 "gram.y"
-{      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 799:
-#line 4646 "gram.y"
-{      yyval.node = makeA_Expr(OP, "%", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 800:
-#line 4648 "gram.y"
-{      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 801:
-#line 4650 "gram.y"
-{      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
-    break;}
-case 802:
-#line 4652 "gram.y"
-{
-                                       yyval.node = (Node *)yyvsp[-2].node;
-                                       /* AexprConst can be either A_Const or ParamNo */
-                                       if (nodeTag(yyvsp[-2].node) == T_A_Const) {
-                                               ((A_Const *)yyvsp[-2].node)->typename = yyvsp[0].typnam;
-                                       } else if (nodeTag(yyvsp[-2].node) == T_Param) {
-                                               ((ParamNo *)yyvsp[-2].node)->typename = yyvsp[0].typnam;
-                                       /* otherwise, try to transform to a function call */
-                                       } else {
-                                               FuncCall *n = makeNode(FuncCall);
-                                               n->funcname = yyvsp[0].typnam->name;
-                                               n->args = lcons(yyvsp[-2].node,NIL);
-                                               yyval.node = (Node *)n;
-                                       }
-                               ;
-    break;}
-case 803:
-#line 4668 "gram.y"
-{
-                                       yyval.node = (Node *)yyvsp[-3].node;
-                                       /* AexprConst can be either A_Const or ParamNo */
-                                       if (nodeTag(yyvsp[-3].node) == T_A_Const) {
-                                               ((A_Const *)yyvsp[-3].node)->typename = yyvsp[-1].typnam;
-                                       } else if (nodeTag(yyvsp[-3].node) == T_Param) {
-                                               ((ParamNo *)yyvsp[-3].node)->typename = yyvsp[-1].typnam;
-                                       /* otherwise, try to transform to a function call */
-                                       } else {
-                                               FuncCall *n = makeNode(FuncCall);
-                                               n->funcname = yyvsp[-1].typnam->name;
-                                               n->args = lcons(yyvsp[-3].node,NIL);
-                                               yyval.node = (Node *)n;
-                                       }
-                               ;
-    break;}
-case 804:
-#line 4684 "gram.y"
-{      yyval.node = yyvsp[-1].node; ;
-    break;}
-case 805:
-#line 4686 "gram.y"
-{      yyval.node = makeA_Expr(OP, yyvsp[-1].str, yyvsp[-2].node, yyvsp[0].node); ;
-    break;}
-case 806:
-#line 4688 "gram.y"
-{      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
-    break;}
-case 807:
-#line 4690 "gram.y"
-{      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
-    break;}
-case 808:
-#line 4692 "gram.y"
-{
-                                       /* could be a column name or a relation_name */
-                                       Ident *n = makeNode(Ident);
-                                       n->name = yyvsp[0].str;
-                                       n->indirection = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 809:
-#line 4700 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = yyvsp[-2].str;
-                                       n->args = NIL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 810:
-#line 4707 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = yyvsp[-3].str;
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 811:
-#line 4714 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "strpos";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 812:
-#line 4721 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "substr";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 813:
-#line 4729 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "btrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 814:
-#line 4736 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "ltrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 815:
-#line 4743 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "rtrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 816:
-#line 4750 "gram.y"
-{
-                                       FuncCall *n = makeNode(FuncCall);
-                                       n->funcname = "btrim";
-                                       n->args = yyvsp[-1].list;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 817:
-#line 4759 "gram.y"
-{
-                                       yyval.list = nconc(nconc(yyvsp[-2].list,yyvsp[-1].list),yyvsp[0].list);
-                               ;
-    break;}
-case 818:
-#line 4763 "gram.y"
-{      yyval.list = NIL; ;
-    break;}
-case 819:
-#line 4767 "gram.y"
-{      yyval.list = yyvsp[0].list; ;
-    break;}
-case 820:
-#line 4769 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_Integer;
-                                       n->val.val.ival = 1;
-                                       yyval.list = lcons((Node *)n,NIL);
-                               ;
-    break;}
-case 821:
-#line 4778 "gram.y"
-{      yyval.list = yyvsp[0].list; ;
-    break;}
-case 822:
-#line 4780 "gram.y"
-{      yyval.list = NIL; ;
-    break;}
-case 823:
-#line 4784 "gram.y"
-{ yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); ;
-    break;}
-case 824:
-#line 4786 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 825:
-#line 4788 "gram.y"
-{ yyval.list = yyvsp[0].list; ;
-    break;}
-case 826:
-#line 4792 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->subselect = yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 827:
-#line 4798 "gram.y"
-{      yyval.node = yyvsp[0].node; ;
-    break;}
-case 828:
-#line 4802 "gram.y"
-{      yyval.node = makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node); ;
-    break;}
-case 829:
-#line 4804 "gram.y"
-{      yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node,
-                                               makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node));
-                               ;
-    break;}
-case 830:
-#line 4810 "gram.y"
-{
-                                       SubLink *n = makeNode(SubLink);
-                                       n->subselect = yyvsp[0].node;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 831:
-#line 4816 "gram.y"
-{      yyval.node = yyvsp[0].node; ;
-    break;}
-case 832:
-#line 4820 "gram.y"
-{      yyval.node = makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node); ;
-    break;}
-case 833:
-#line 4822 "gram.y"
-{      yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node,
-                                               makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node));
-                               ;
-    break;}
-case 834:
-#line 4843 "gram.y"
-{
-                                       CaseExpr *c = makeNode(CaseExpr);
-                                       c->arg = yyvsp[-3].node;
-                                       c->args = yyvsp[-2].list;
-                                       c->defresult = yyvsp[-1].node;
-                                       yyval.node = (Node *)c;
-                               ;
-    break;}
-case 835:
-#line 4851 "gram.y"
-{
-                                       CaseExpr *c = makeNode(CaseExpr);
-                                       CaseWhen *w = makeNode(CaseWhen);
-/*
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_Null;
-                                       w->result = (Node *)n;
-*/
-                                       w->expr = makeA_Expr(OP, "=", yyvsp[-3].node, yyvsp[-1].node);
-                                       c->args = lcons(w, NIL);
-                                       c->defresult = yyvsp[-3].node;
-                                       yyval.node = (Node *)c;
-                               ;
-    break;}
-case 836:
-#line 4865 "gram.y"
-{
-                                       CaseExpr *c = makeNode(CaseExpr);
-                                       CaseWhen *w;
-                                       List *l;
-                                       foreach (l,yyvsp[-1].list)
-                                       {
-                                               w = makeNode(CaseWhen);
-                                               w->expr = makeA_Expr(NOTNULL, NULL, lfirst(l), NULL);
-                                               w->result = lfirst(l);
-                                               c->args = lappend(c->args, w);
-                                       }
-                                       yyval.node = (Node *)c;
-                               ;
-    break;}
-case 837:
-#line 4881 "gram.y"
-{ yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ;
-    break;}
-case 838:
-#line 4883 "gram.y"
-{ yyval.list = lcons(yyvsp[0].node, NIL); ;
-    break;}
-case 839:
-#line 4887 "gram.y"
-{
-                                       CaseWhen *w = makeNode(CaseWhen);
-                                       w->expr = yyvsp[-2].node;
-                                       w->result = yyvsp[0].node;
-                                       yyval.node = (Node *)w;
-                               ;
-    break;}
-case 840:
-#line 4895 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
-    break;}
-case 841:
-#line 4896 "gram.y"
-{ yyval.node = NULL; ;
-    break;}
-case 842:
-#line 4900 "gram.y"
-{
-                                       yyvsp[-1].attr->indirection = yyvsp[0].list;
-                                       yyval.node = (Node *)yyvsp[-1].attr;
-                               ;
-    break;}
-case 843:
-#line 4905 "gram.y"
-{
-                                       /* could be a column name or a relation_name */
-                                       Ident *n = makeNode(Ident);
-                                       n->name = yyvsp[0].str;
-                                       n->indirection = NULL;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 844:
-#line 4913 "gram.y"
-{      yyval.node = NULL; ;
-    break;}
-case 845:
-#line 4917 "gram.y"
-{
-                                       yyval.attr = makeNode(Attr);
-                                       yyval.attr->relname = yyvsp[-2].str;
-                                       yyval.attr->paramNo = NULL;
-                                       yyval.attr->attrs = yyvsp[0].list;
-                                       yyval.attr->indirection = NULL;
-                               ;
-    break;}
-case 846:
-#line 4925 "gram.y"
-{
-                                       yyval.attr = makeNode(Attr);
-                                       yyval.attr->relname = NULL;
-                                       yyval.attr->paramNo = yyvsp[-2].paramno;
-                                       yyval.attr->attrs = yyvsp[0].list;
-                                       yyval.attr->indirection = NULL;
-                               ;
-    break;}
-case 847:
-#line 4935 "gram.y"
-{ yyval.list = lcons(makeString(yyvsp[0].str), NIL); ;
-    break;}
-case 848:
-#line 4937 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); ;
-    break;}
-case 849:
-#line 4939 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, makeString("*")); ;
-    break;}
-case 850:
-#line 4950 "gram.y"
-{      yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target);  ;
-    break;}
-case 851:
-#line 4952 "gram.y"
-{      yyval.list = lcons(yyvsp[0].target, NIL);  ;
-    break;}
-case 852:
-#line 4954 "gram.y"
-{
-                                       ResTarget *rt = makeNode(ResTarget);
-                                       Attr *att = makeNode(Attr);
-                                       att->relname = "*";
-                                       att->paramNo = NULL;
-                                       att->attrs = NULL;
-                                       att->indirection = NIL;
-                                       rt->name = NULL;
-                                       rt->indirection = NULL;
-                                       rt->val = (Node *)att;
-                                       yyval.list = lcons(rt, NIL);
-                               ;
-    break;}
-case 853:
-#line 4969 "gram.y"
-{
-                                       yyval.target = makeNode(ResTarget);
-                                       yyval.target->name = yyvsp[-3].str;
-                                       yyval.target->indirection = yyvsp[-2].list;
-                                       yyval.target->val = (Node *)yyvsp[0].node;
-                               ;
-    break;}
-case 854:
-#line 4976 "gram.y"
-{
-                                       yyval.target = makeNode(ResTarget);
-                                       yyval.target->name = NULL;
-                                       yyval.target->indirection = yyvsp[0].list;
-                                       yyval.target->val = (Node *)yyvsp[-1].attr;
-                               ;
-    break;}
-case 855:
-#line 4983 "gram.y"
-{
-                                       Attr *att = makeNode(Attr);
-                                       att->relname = yyvsp[-2].str;
-                                       att->paramNo = NULL;
-                                       att->attrs = lcons(makeString("*"), NIL);
-                                       att->indirection = NIL;
-                                       yyval.target = makeNode(ResTarget);
-                                       yyval.target->name = NULL;
-                                       yyval.target->indirection = NULL;
-                                       yyval.target->val = (Node *)att;
-                               ;
-    break;}
-case 856:
-#line 5002 "gram.y"
-{      yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target);  ;
-    break;}
-case 857:
-#line 5004 "gram.y"
-{      yyval.list = lcons(yyvsp[0].target, NIL);  ;
-    break;}
-case 858:
-#line 5009 "gram.y"
-{
-                                       yyval.target = makeNode(ResTarget);
-                                       yyval.target->name = yyvsp[0].str;
-                                       yyval.target->indirection = NULL;
-                                       yyval.target->val = (Node *)yyvsp[-2].node;
-                               ;
-    break;}
-case 859:
-#line 5016 "gram.y"
-{
-                                       yyval.target = makeNode(ResTarget);
-                                       yyval.target->name = NULL;
-                                       yyval.target->indirection = NULL;
-                                       yyval.target->val = (Node *)yyvsp[0].node;
-                               ;
-    break;}
-case 860:
-#line 5023 "gram.y"
-{
-                                       Attr *att = makeNode(Attr);
-                                       att->relname = yyvsp[-2].str;
-                                       att->paramNo = NULL;
-                                       att->attrs = lcons(makeString("*"), NIL);
-                                       att->indirection = NIL;
-                                       yyval.target = makeNode(ResTarget);
-                                       yyval.target->name = NULL;
-                                       yyval.target->indirection = NULL;
-                                       yyval.target->val = (Node *)att;
-                               ;
-    break;}
-case 861:
-#line 5035 "gram.y"
-{
-                                       Attr *att = makeNode(Attr);
-                                       att->relname = "*";
-                                       att->paramNo = NULL;
-                                       att->attrs = NULL;
-                                       att->indirection = NIL;
-                                       yyval.target = makeNode(ResTarget);
-                                       yyval.target->name = NULL;
-                                       yyval.target->indirection = NULL;
-                                       yyval.target->val = (Node *)att;
-                               ;
-    break;}
-case 862:
-#line 5048 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 863:
-#line 5049 "gram.y"
-{ yyval.str = NULL; ;
-    break;}
-case 864:
-#line 5053 "gram.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                                       StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN);
-                               ;
-    break;}
-case 865:
-#line 5058 "gram.y"
-{
-                                       /* disallow refs to variable system tables */
-                                       if (strcmp(LogRelationName, yyvsp[0].str) == 0
-                                          || strcmp(VariableRelationName, yyvsp[0].str) == 0)
-                                               elog(ERROR,"%s cannot be accessed by users",yyvsp[0].str);
-                                       else
-                                               yyval.str = yyvsp[0].str;
-                                       StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN);
-                               ;
-    break;}
-case 866:
-#line 5069 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 867:
-#line 5070 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 868:
-#line 5071 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 869:
-#line 5072 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 870:
-#line 5073 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 871:
-#line 5079 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 872:
-#line 5080 "gram.y"
-{ yyval.str = xlateSqlFunc(yyvsp[0].str); ;
-    break;}
-case 873:
-#line 5082 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 874:
-#line 5089 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_Integer;
-                                       n->val.val.ival = yyvsp[0].ival;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 875:
-#line 5096 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_Float;
-                                       n->val.val.dval = yyvsp[0].dval;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 876:
-#line 5103 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 877:
-#line 5110 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->typename = yyvsp[-1].typnam;
-                                       n->val.type = T_String;
-                                       n->val.val.str = yyvsp[0].str;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 878:
-#line 5118 "gram.y"
-{      yyval.node = (Node *)yyvsp[0].paramno;  ;
-    break;}
-case 879:
-#line 5120 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = "t";
-                                       n->typename = makeNode(TypeName);
-                                       n->typename->name = xlateSqlType("bool");
-                                       n->typename->typmod = -1;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 880:
-#line 5130 "gram.y"
-{
-                                       A_Const *n = makeNode(A_Const);
-                                       n->val.type = T_String;
-                                       n->val.val.str = "f";
-                                       n->typename = makeNode(TypeName);
-                                       n->typename->name = xlateSqlType("bool");
-                                       n->typename->typmod = -1;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 881:
-#line 5142 "gram.y"
-{
-                                       yyval.paramno = makeNode(ParamNo);
-                                       yyval.paramno->number = yyvsp[-1].ival;
-                                       yyval.paramno->indirection = yyvsp[0].list;
-                               ;
-    break;}
-case 882:
-#line 5149 "gram.y"
-{ yyval.ival = yyvsp[0].ival; ;
-    break;}
-case 883:
-#line 5150 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 884:
-#line 5151 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 885:
-#line 5159 "gram.y"
-{      yyval.str = xlateSqlType(yyvsp[0].str); ;
-    break;}
-case 886:
-#line 5161 "gram.y"
-{      yyval.str = xlateSqlType(yyvsp[0].str); ;
-    break;}
-case 887:
-#line 5163 "gram.y"
-{      yyval.str = xlateSqlType(yyvsp[0].str); ;
-    break;}
-case 888:
-#line 5173 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 889:
-#line 5174 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 890:
-#line 5175 "gram.y"
-{ yyval.str = "absolute"; ;
-    break;}
-case 891:
-#line 5176 "gram.y"
-{ yyval.str = "action"; ;
-    break;}
-case 892:
-#line 5177 "gram.y"
-{ yyval.str = "after"; ;
-    break;}
-case 893:
-#line 5178 "gram.y"
-{ yyval.str = "aggregate"; ;
-    break;}
-case 894:
-#line 5179 "gram.y"
-{ yyval.str = "backward"; ;
-    break;}
-case 895:
-#line 5180 "gram.y"
-{ yyval.str = "before"; ;
-    break;}
-case 896:
-#line 5181 "gram.y"
-{ yyval.str = "cache"; ;
-    break;}
-case 897:
-#line 5182 "gram.y"
-{ yyval.str = "createdb"; ;
-    break;}
-case 898:
-#line 5183 "gram.y"
-{ yyval.str = "createuser"; ;
-    break;}
-case 899:
-#line 5184 "gram.y"
-{ yyval.str = "cycle"; ;
-    break;}
-case 900:
-#line 5185 "gram.y"
-{ yyval.str = "database"; ;
-    break;}
-case 901:
-#line 5186 "gram.y"
-{ yyval.str = "delimiters"; ;
-    break;}
-case 902:
-#line 5187 "gram.y"
-{ yyval.str = "double"; ;
-    break;}
-case 903:
-#line 5188 "gram.y"
-{ yyval.str = "each"; ;
-    break;}
-case 904:
-#line 5189 "gram.y"
-{ yyval.str = "encoding"; ;
-    break;}
-case 905:
-#line 5190 "gram.y"
-{ yyval.str = "forward"; ;
-    break;}
-case 906:
-#line 5191 "gram.y"
-{ yyval.str = "function"; ;
-    break;}
-case 907:
-#line 5192 "gram.y"
-{ yyval.str = "handler"; ;
-    break;}
-case 908:
-#line 5193 "gram.y"
-{ yyval.str = "increment"; ;
-    break;}
-case 909:
-#line 5194 "gram.y"
-{ yyval.str = "index"; ;
-    break;}
-case 910:
-#line 5195 "gram.y"
-{ yyval.str = "inherits"; ;
-    break;}
-case 911:
-#line 5196 "gram.y"
-{ yyval.str = "insensitive"; ;
-    break;}
-case 912:
-#line 5197 "gram.y"
-{ yyval.str = "instead"; ;
-    break;}
-case 913:
-#line 5198 "gram.y"
-{ yyval.str = "isnull"; ;
-    break;}
-case 914:
-#line 5199 "gram.y"
-{ yyval.str = "key"; ;
-    break;}
-case 915:
-#line 5200 "gram.y"
-{ yyval.str = "language"; ;
-    break;}
-case 916:
-#line 5201 "gram.y"
-{ yyval.str = "lancompiler"; ;
-    break;}
-case 917:
-#line 5202 "gram.y"
-{ yyval.str = "location"; ;
-    break;}
-case 918:
-#line 5203 "gram.y"
-{ yyval.str = "match"; ;
-    break;}
-case 919:
-#line 5204 "gram.y"
-{ yyval.str = "maxvalue"; ;
-    break;}
-case 920:
-#line 5205 "gram.y"
-{ yyval.str = "minvalue"; ;
-    break;}
-case 921:
-#line 5206 "gram.y"
-{ yyval.str = "next"; ;
-    break;}
-case 922:
-#line 5207 "gram.y"
-{ yyval.str = "nocreatedb"; ;
-    break;}
-case 923:
-#line 5208 "gram.y"
-{ yyval.str = "nocreateuser"; ;
-    break;}
-case 924:
-#line 5209 "gram.y"
-{ yyval.str = "nothing"; ;
-    break;}
-case 925:
-#line 5210 "gram.y"
-{ yyval.str = "notnull"; ;
-    break;}
-case 926:
-#line 5211 "gram.y"
-{ yyval.str = "of"; ;
-    break;}
-case 927:
-#line 5212 "gram.y"
-{ yyval.str = "oids"; ;
-    break;}
-case 928:
-#line 5213 "gram.y"
-{ yyval.str = "only"; ;
-    break;}
-case 929:
-#line 5214 "gram.y"
-{ yyval.str = "operator"; ;
-    break;}
-case 930:
-#line 5215 "gram.y"
-{ yyval.str = "option"; ;
-    break;}
-case 931:
-#line 5216 "gram.y"
-{ yyval.str = "password"; ;
-    break;}
-case 932:
-#line 5217 "gram.y"
-{ yyval.str = "prior"; ;
-    break;}
-case 933:
-#line 5218 "gram.y"
-{ yyval.str = "privileges"; ;
-    break;}
-case 934:
-#line 5219 "gram.y"
-{ yyval.str = "procedural"; ;
-    break;}
-case 935:
-#line 5220 "gram.y"
-{ yyval.str = "read"; ;
-    break;}
-case 936:
-#line 5221 "gram.y"
-{ yyval.str = "relative"; ;
-    break;}
-case 937:
-#line 5222 "gram.y"
-{ yyval.str = "rename"; ;
-    break;}
-case 938:
-#line 5223 "gram.y"
-{ yyval.str = "returns"; ;
-    break;}
-case 939:
-#line 5224 "gram.y"
-{ yyval.str = "row"; ;
-    break;}
-case 940:
-#line 5225 "gram.y"
-{ yyval.str = "rule"; ;
-    break;}
-case 941:
-#line 5226 "gram.y"
-{ yyval.str = "scroll"; ;
-    break;}
-case 942:
-#line 5227 "gram.y"
-{ yyval.str = "sequence"; ;
-    break;}
-case 943:
-#line 5228 "gram.y"
-{ yyval.str = "serial"; ;
-    break;}
-case 944:
-#line 5229 "gram.y"
-{ yyval.str = "start"; ;
-    break;}
-case 945:
-#line 5230 "gram.y"
-{ yyval.str = "statement"; ;
-    break;}
-case 946:
-#line 5231 "gram.y"
-{ yyval.str = "stdin"; ;
-    break;}
-case 947:
-#line 5232 "gram.y"
-{ yyval.str = "stdout"; ;
-    break;}
-case 948:
-#line 5233 "gram.y"
-{ yyval.str = "time"; ;
-    break;}
-case 949:
-#line 5234 "gram.y"
-{ yyval.str = "timestamp"; ;
-    break;}
-case 950:
-#line 5235 "gram.y"
-{ yyval.str = "timezone_hour"; ;
-    break;}
-case 951:
-#line 5236 "gram.y"
-{ yyval.str = "timezone_minute"; ;
-    break;}
-case 952:
-#line 5237 "gram.y"
-{ yyval.str = "trigger"; ;
-    break;}
-case 953:
-#line 5238 "gram.y"
-{ yyval.str = "trusted"; ;
-    break;}
-case 954:
-#line 5239 "gram.y"
-{ yyval.str = "type"; ;
-    break;}
-case 955:
-#line 5240 "gram.y"
-{ yyval.str = "valid"; ;
-    break;}
-case 956:
-#line 5241 "gram.y"
-{ yyval.str = "version"; ;
-    break;}
-case 957:
-#line 5242 "gram.y"
-{ yyval.str = "zone"; ;
-    break;}
-case 958:
-#line 5255 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 959:
-#line 5256 "gram.y"
-{ yyval.str = "abort"; ;
-    break;}
-case 960:
-#line 5257 "gram.y"
-{ yyval.str = "analyze"; ;
-    break;}
-case 961:
-#line 5258 "gram.y"
-{ yyval.str = "binary"; ;
-    break;}
-case 962:
-#line 5259 "gram.y"
-{ yyval.str = "case"; ;
-    break;}
-case 963:
-#line 5260 "gram.y"
-{ yyval.str = "cluster"; ;
-    break;}
-case 964:
-#line 5261 "gram.y"
-{ yyval.str = "coalesce"; ;
-    break;}
-case 965:
-#line 5262 "gram.y"
-{ yyval.str = "constraint"; ;
-    break;}
-case 966:
-#line 5263 "gram.y"
-{ yyval.str = "copy"; ;
-    break;}
-case 967:
-#line 5264 "gram.y"
-{ yyval.str = "current"; ;
-    break;}
-case 968:
-#line 5265 "gram.y"
-{ yyval.str = "do"; ;
-    break;}
-case 969:
-#line 5266 "gram.y"
-{ yyval.str = "else"; ;
-    break;}
-case 970:
-#line 5267 "gram.y"
-{ yyval.str = "end"; ;
-    break;}
-case 971:
-#line 5268 "gram.y"
-{ yyval.str = "explain"; ;
-    break;}
-case 972:
-#line 5269 "gram.y"
-{ yyval.str = "extend"; ;
-    break;}
-case 973:
-#line 5270 "gram.y"
-{ yyval.str = "false"; ;
-    break;}
-case 974:
-#line 5271 "gram.y"
-{ yyval.str = "foreign"; ;
-    break;}
-case 975:
-#line 5272 "gram.y"
-{ yyval.str = "group"; ;
-    break;}
-case 976:
-#line 5273 "gram.y"
-{ yyval.str = "listen"; ;
-    break;}
-case 977:
-#line 5274 "gram.y"
-{ yyval.str = "load"; ;
-    break;}
-case 978:
-#line 5275 "gram.y"
-{ yyval.str = "lock"; ;
-    break;}
-case 979:
-#line 5276 "gram.y"
-{ yyval.str = "move"; ;
-    break;}
-case 980:
-#line 5277 "gram.y"
-{ yyval.str = "new"; ;
-    break;}
-case 981:
-#line 5278 "gram.y"
-{ yyval.str = "none"; ;
-    break;}
-case 982:
-#line 5279 "gram.y"
-{ yyval.str = "nullif"; ;
-    break;}
-case 983:
-#line 5280 "gram.y"
-{ yyval.str = "order"; ;
-    break;}
-case 984:
-#line 5281 "gram.y"
-{ yyval.str = "position"; ;
-    break;}
-case 985:
-#line 5282 "gram.y"
-{ yyval.str = "precision"; ;
-    break;}
-case 986:
-#line 5283 "gram.y"
-{ yyval.str = "reset"; ;
-    break;}
-case 987:
-#line 5284 "gram.y"
-{ yyval.str = "setof"; ;
-    break;}
-case 988:
-#line 5285 "gram.y"
-{ yyval.str = "show"; ;
-    break;}
-case 989:
-#line 5286 "gram.y"
-{ yyval.str = "table"; ;
-    break;}
-case 990:
-#line 5287 "gram.y"
-{ yyval.str = "then"; ;
-    break;}
-case 991:
-#line 5288 "gram.y"
-{ yyval.str = "transaction"; ;
-    break;}
-case 992:
-#line 5289 "gram.y"
-{ yyval.str = "true"; ;
-    break;}
-case 993:
-#line 5290 "gram.y"
-{ yyval.str = "vacuum"; ;
-    break;}
-case 994:
-#line 5291 "gram.y"
-{ yyval.str = "verbose"; ;
-    break;}
-case 995:
-#line 5292 "gram.y"
-{ yyval.str = "when"; ;
-    break;}
-case 996:
-#line 5296 "gram.y"
-{
-                                       if (QueryIsRule)
-                                               yyval.str = "*CURRENT*";
-                                       else
-                                               elog(ERROR,"CURRENT used in non-rule query");
-                               ;
-    break;}
-case 997:
-#line 5303 "gram.y"
-{
-                                       if (QueryIsRule)
-                                               yyval.str = "*NEW*";
-                                       else
-                                               elog(ERROR,"NEW used in non-rule query");
-                               ;
-    break;}
-}
-   /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/share/misc/bison.simple"
-\f
-  yyvsp -= yylen;
-  yyssp -= yylen;
-#ifdef YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
-
-  *++yyvsp = yyval;
-
-#ifdef YYLSP_NEEDED
-  yylsp++;
-  if (yylen == 0)
-    {
-      yylsp->first_line = yylloc.first_line;
-      yylsp->first_column = yylloc.first_column;
-      yylsp->last_line = (yylsp-1)->last_line;
-      yylsp->last_column = (yylsp-1)->last_column;
-      yylsp->text = 0;
-    }
-  else
-    {
-      yylsp->last_line = (yylsp+yylen-1)->last_line;
-      yylsp->last_column = (yylsp+yylen-1)->last_column;
-    }
-#endif
-
-  /* Now "shift" the result of the reduction.
-     Determine what state that goes to,
-     based on the state we popped back to
-     and the rule number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTBASE];
-
-  goto yynewstate;
-
-yyerrlab:   /* here on detecting error */
-
-  if (! yyerrstatus)
-    /* If not already recovering from an error, report this error.  */
-    {
-      ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
-      yyn = yypact[yystate];
-
-      if (yyn > YYFLAG && yyn < YYLAST)
-       {
-         int size = 0;
-         char *msg;
-         int x, count;
-
-         count = 0;
-         /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
-         for (x = (yyn < 0 ? -yyn : 0);
-              x < (sizeof(yytname) / sizeof(char *)); x++)
-           if (yycheck[x + yyn] == x)
-             size += strlen(yytname[x]) + 15, count++;
-         msg = (char *) malloc(size + 15);
-         if (msg != 0)
-           {
-             strcpy(msg, "parse error");
-
-             if (count < 5)
-               {
-                 count = 0;
-                 for (x = (yyn < 0 ? -yyn : 0);
-                      x < (sizeof(yytname) / sizeof(char *)); x++)
-                   if (yycheck[x + yyn] == x)
-                     {
-                       strcat(msg, count == 0 ? ", expecting `" : " or `");
-                       strcat(msg, yytname[x]);
-                       strcat(msg, "'");
-                       count++;
-                     }
-               }
-             yyerror(msg);
-             free(msg);
-           }
-         else
-           yyerror ("parse error; also virtual memory exceeded");
-       }
-      else
-#endif /* YYERROR_VERBOSE */
-       yyerror("parse error");
-    }
-
-  goto yyerrlab1;
-yyerrlab1:   /* here on error raised explicitly by an action */
-
-  if (yyerrstatus == 3)
-    {
-      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
-
-      /* return failure if at end of input */
-      if (yychar == YYEOF)
-       YYABORT;
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
-      yychar = YYEMPTY;
-    }
-
-  /* Else will try to reuse lookahead token
-     after shifting the error token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-yyerrdefault:  /* current state does not do anything special for the error token. */
-
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
-  if (yyn) goto yydefault;
-#endif
-
-yyerrpop:   /* pop the current state because it cannot handle the error token */
-
-  if (yyssp == yyss) YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
-  yylsp--;
-#endif
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "Error: state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
-
-yyerrhandle:
-
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
-
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
-
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-  else if (yyn == 0)
-    goto yyerrpop;
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting error token, ");
-#endif
-
-  *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
-
-  yystate = yyn;
-  goto yynewstate;
-}
-#line 5311 "gram.y"
-
-
-static Node *
-makeA_Expr(int oper, char *opname, Node *lexpr, Node *rexpr)
-{
-       A_Expr *a = makeNode(A_Expr);
-       a->oper = oper;
-       a->opname = opname;
-       a->lexpr = lexpr;
-       a->rexpr = rexpr;
-       return (Node *)a;
-}
-
-/* makeRowExpr()
- * Generate separate operator nodes for a single row descriptor expression.
- * Perhaps this should go deeper in the parser someday...
- * - thomas 1997-12-22
- */
-static Node *
-makeRowExpr(char *opr, List *largs, List *rargs)
-{
-       Node *expr = NULL;
-       Node *larg, *rarg;
-
-       if (length(largs) != length(rargs))
-               elog(ERROR,"Unequal number of entries in row expression");
-
-       if (lnext(largs) != NIL)
-               expr = makeRowExpr(opr,lnext(largs),lnext(rargs));
-
-       larg = lfirst(largs);
-       rarg = lfirst(rargs);
-
-       if ((strcmp(opr, "=") == 0)
-        || (strcmp(opr, "<") == 0)
-        || (strcmp(opr, "<=") == 0)
-        || (strcmp(opr, ">") == 0)
-        || (strcmp(opr, ">=") == 0))
-       {
-               if (expr == NULL)
-                       expr = makeA_Expr(OP, opr, larg, rarg);
-               else
-                       expr = makeA_Expr(AND, NULL, expr, makeA_Expr(OP, opr, larg, rarg));
-       }
-       else if (strcmp(opr, "<>") == 0)
-       {
-               if (expr == NULL)
-                       expr = makeA_Expr(OP, opr, larg, rarg);
-               else
-                       expr = makeA_Expr(OR, NULL, expr, makeA_Expr(OP, opr, larg, rarg));
-       }
-       else
-       {
-               elog(ERROR,"Operator '%s' not implemented for row expressions",opr);
-       }
-
-       return expr;
-}
-
-static void
-mapTargetColumns(List *src, List *dst)
-{
-       ColumnDef *s;
-       ResTarget *d;
-
-       if (length(src) != length(dst))
-               elog(ERROR,"CREATE TABLE/AS SELECT has mismatched column count");
-
-       while ((src != NIL) && (dst != NIL))
-       {
-               s = (ColumnDef *)lfirst(src);
-               d = (ResTarget *)lfirst(dst);
-
-               d->name = s->colname;
-
-               src = lnext(src);
-               dst = lnext(dst);
-       }
-
-       return;
-} /* mapTargetColumns() */
-
-static Node *makeIndexable(char *opname, Node *lexpr, Node *rexpr)
-{
-       Node *result = NULL;
-
-       /* we do this so indexes can be used */
-       if (strcmp(opname,"~") == 0 ||
-               strcmp(opname,"~*") == 0)
-       {
-               if (nodeTag(rexpr) == T_A_Const &&
-                  ((A_Const *)rexpr)->val.type == T_String &&
-                  ((A_Const *)rexpr)->val.val.str[0] == '^')
-               {
-                       A_Const *n = (A_Const *)rexpr;
-                       char *match_least = palloc(strlen(n->val.val.str)+2);
-                       char *match_most = palloc(strlen(n->val.val.str)+2);
-                       int pos, match_pos=0;
-
-                       /* skip leading ^ */
-                       for (pos = 1; n->val.val.str[pos]; pos++)
-                       {
-                               if (n->val.val.str[pos] == '.' ||
-                                       n->val.val.str[pos] == '?' ||
-                                       n->val.val.str[pos] == '*' ||
-                                       n->val.val.str[pos] == '[' ||
-                                       n->val.val.str[pos] == '$' ||
-                                       (strcmp(opname,"~*") == 0 && isalpha(n->val.val.str[pos])))
-                               break;
-                       if (n->val.val.str[pos] == '\\')
-                                       pos++;
-                               match_least[match_pos] = n->val.val.str[pos];
-                               match_most[match_pos++] = n->val.val.str[pos];
-                       }
-
-                       if (match_pos != 0)
-                       {
-                               A_Const *least = makeNode(A_Const);
-                               A_Const *most = makeNode(A_Const);
-                               
-                               /* make strings to be used in index use */
-                               match_least[match_pos] = '\0';
-                               match_most[match_pos] = '\377';
-                               match_most[match_pos+1] = '\0';
-                               least->val.type = T_String;
-                               least->val.val.str = match_least;
-                               most->val.type = T_String;
-                               most->val.val.str = match_most;
-#ifdef USE_LOCALE
-                               result = makeA_Expr(AND, NULL,
-                                               makeA_Expr(OP, "~", lexpr, rexpr),
-                                               makeA_Expr(OP, ">=", lexpr, (Node *)least));
-#else
-                               result = makeA_Expr(AND, NULL,
-                                               makeA_Expr(OP, "~", lexpr, rexpr),
-                                               makeA_Expr(AND, NULL,
-                                                       makeA_Expr(OP, ">=", lexpr, (Node *)least),
-                                                       makeA_Expr(OP, "<=", lexpr, (Node *)most)));
-#endif
-                       }
-               }
-       }
-       else if (strcmp(opname,"~~") == 0)
-       {
-               if (nodeTag(rexpr) == T_A_Const &&
-                  ((A_Const *)rexpr)->val.type == T_String)
-               {
-                       A_Const *n = (A_Const *)rexpr;
-                       char *match_least = palloc(strlen(n->val.val.str)+2);
-                       char *match_most = palloc(strlen(n->val.val.str)+2);
-                       int pos, match_pos=0;
-       
-                       for (pos = 0; n->val.val.str[pos]; pos++)
-                       {
-                               if (n->val.val.str[pos] == '%' &&
-                                        n->val.val.str[pos+1] != '%')
-                                       break;
-                               if(n->val.val.str[pos] == '_')
-                                       break;
-                               if (n->val.val.str[pos] == '\\' ||
-                                       n->val.val.str[pos] == '%')
-                                       pos++;
-                               if (n->val.val.str[pos] == '\0')
-                                       break;
-                               match_least[match_pos] = n->val.val.str[pos];
-                               match_most[match_pos++] = n->val.val.str[pos];
-                       }
-       
-                       if (match_pos != 0)
-                       {
-                               A_Const *least = makeNode(A_Const);
-                               A_Const *most = makeNode(A_Const);
-                               
-                               /* make strings to be used in index use */
-                               match_least[match_pos] = '\0';
-                               match_most[match_pos] = '\377';
-                               match_most[match_pos+1] = '\0';
-                               least->val.type = T_String;
-                               least->val.val.str = match_least;
-                               most->val.type = T_String;
-                               most->val.val.str = match_most;
-#ifdef USE_LOCALE
-                               result = makeA_Expr(AND, NULL,
-                                               makeA_Expr(OP, "~~", lexpr, rexpr),
-                                               makeA_Expr(OP, ">=", lexpr, (Node *)least));
-#else
-                               result = makeA_Expr(AND, NULL,
-                                               makeA_Expr(OP, "~~", lexpr, rexpr),
-                                               makeA_Expr(AND, NULL,
-                                                       makeA_Expr(OP, ">=", lexpr, (Node *)least),
-                                                       makeA_Expr(OP, "<=", lexpr, (Node *)most)));
-#endif
-                       }
-               }
-       }
-       
-       if (result == NULL)
-               result = makeA_Expr(OP, opname, lexpr, rexpr);
-       return result;
-} /* makeIndexable() */
-
-
-/* xlateSqlFunc()
- * Convert alternate type names to internal Postgres types.
- * Do not convert "float", since that is handled elsewhere
- *  for FLOAT(p) syntax.
- */
-static char *
-xlateSqlFunc(char *name)
-{
-       if (!strcasecmp(name,"character_length")
-        || !strcasecmp(name,"char_length"))
-               return "length";
-       else
-               return name;
-} /* xlateSqlFunc() */
-
-/* xlateSqlType()
- * Convert alternate type names to internal Postgres types.
- */
-static char *
-xlateSqlType(char *name)
-{
-       if (!strcasecmp(name,"int")
-        || !strcasecmp(name,"integer"))
-               return "int4";
-       else if (!strcasecmp(name, "smallint"))
-               return "int2";
-       else if (!strcasecmp(name, "real")
-        || !strcasecmp(name, "float"))
-               return "float8";
-       else if (!strcasecmp(name, "interval"))
-               return "timespan";
-       else if (!strcasecmp(name, "boolean"))
-               return "bool";
-       else
-               return name;
-} /* xlateSqlType() */
-
-
-void parser_init(Oid *typev, int nargs)
-{
-       QueryIsRule = FALSE;
-       saved_relname[0]= '\0';
-       saved_In_Expr = NULL;
-
-       param_type_init(typev, nargs);
-}
-
-
-/* FlattenStringList()
- * Traverse list of string nodes and convert to a single string.
- * Used for reconstructing string form of complex expressions.
- *
- * Allocate at least one byte for terminator.
- */
-static char *
-FlattenStringList(List *list)
-{
-       List *l;
-       Value *v;
-       char *s;
-       char *sp;
-       int nlist, len = 0;
-
-       nlist = length(list);
-       l = list;
-       while(l != NIL) {
-               v = (Value *)lfirst(l);
-               sp = v->val.str;
-               l = lnext(l);
-               len += strlen(sp);
-       };
-       len += nlist;
-
-       s = (char*) palloc(len+1);
-       *s = '\0';
-
-       l = list;
-       while(l != NIL) {
-               v = (Value *)lfirst(l);
-               sp = v->val.str;
-               l = lnext(l);
-               strcat(s,sp);
-               if (l != NIL) strcat(s," ");
-       };
-       *(s+len) = '\0';
-
-       return s;
-} /* FlattenStringList() */
-
-
-/* makeConstantList()
- * Convert constant value node into string node.
- */
-static List *
-makeConstantList( A_Const *n)
-{
-       List *result = NIL;
-       char *typval = NULL;
-       char *defval = NULL;
-
-       if (nodeTag(n) != T_A_Const) {
-               elog(ERROR,"Cannot handle non-constant parameter");
-
-       } else if (n->val.type == T_Float) {
-               defval = (char*) palloc(20+1);
-               sprintf( defval, "%g", n->val.val.dval);
-               result = lcons( makeString(defval), NIL);
-
-       } else if (n->val.type == T_Integer) {
-               defval = (char*) palloc(20+1);
-               sprintf( defval, "%ld", n->val.val.ival);
-               result = lcons( makeString(defval), NIL);
-
-       } else if (n->val.type == T_String) {
-               defval = (char*) palloc(strlen( ((A_Const *) n)->val.val.str) + 3);
-               strcpy( defval, "'");
-               strcat( defval, ((A_Const *) n)->val.val.str);
-               strcat( defval, "'");
-               if (n->typename != NULL)
-               {
-                       typval = (char*) palloc(strlen( n->typename->name) + 1);
-                       strcpy(typval, n->typename->name);
-                       result = lappend( lcons( makeString(typval), NIL), makeString(defval));
-               }
-               else
-               {
-                       result = lcons( makeString(defval), NIL);
-               }
-
-       } else {
-               elog(ERROR,"Internal error in makeConstantList(): cannot encode node");
-       };
-
-       return result;
-} /* makeConstantList() */
-
-
-/* fmtId()
- * Check input string for non-lowercase/non-numeric characters.
- * Returns either input string or input surrounded by double quotes.
- */
-static char *
-fmtId(char *rawid)
-{
-       static char *cp;
-
-       for (cp = rawid; *cp != '\0'; cp++)
-               if (! (islower(*cp) || isdigit(*cp) || (*cp == '_'))) break;
-
-       if (*cp != '\0') {
-               cp = palloc(strlen(rawid)+3);
-               strcpy(cp,"\"");
-               strcat(cp,rawid);
-               strcat(cp,"\"");
-       } else {
-               cp = rawid;
-       };
-
-       return cp;
-}
-
-/*
- * param_type_init()
- *
- * keep enough information around fill out the type of param nodes
- * used in postquel functions
- */
-static void
-param_type_init(Oid *typev, int nargs)
-{
-       pfunc_num_args = nargs;
-       param_type_info = typev;
-}
-
-Oid param_type(int t)
-{
-       if ((t > pfunc_num_args) || (t == 0))
-               return InvalidOid;
-       return param_type_info[t - 1];
-}
-
-/*
- *     The optimizer doesn't like '-' 4 for index use.  It only checks for
- *     Var '=' Const.  It wants an integer of -4, so we try to merge the
- *     minus into the constant.
- */
-static Node *doNegate(Node *n)
-{
-       if (IsA(n, A_Const))
-       {
-               A_Const *con = (A_Const *)n;
-
-               if (con->val.type == T_Integer)
-               {
-                       con->val.val.ival = -con->val.val.ival;
-                       return n;
-               }
-               if (con->val.type == T_Float)
-               {
-                       con->val.val.dval = -con->val.val.dval;
-                       return n;
-               }
-       }
-
-       return makeA_Expr(OP, "-", NULL, n);
-}
diff --git a/src/interfaces/ecpg/preproc/pgc.c b/src/interfaces/ecpg/preproc/pgc.c
deleted file mode 100644 (file)
index 435ba94..0000000
+++ /dev/null
@@ -1,2887 +0,0 @@
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header$
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-#include <unistd.h>
-
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else  /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_PROTOS
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#define YY_BUF_SIZE 65536
-
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-
-extern int yyleng;
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator).  This
- * avoids problems with code like:
- *
- *     if ( condition_holds )
- *             yyless( 5 );
- *     else
- *             do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up yytext. */ \
-               *yy_cp = yy_hold_char; \
-               YY_RESTORE_YY_MORE_OFFSET \
-               yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-               } \
-       while ( 0 )
-
-#define unput(c) yyunput( c, yytext_ptr )
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-typedef unsigned int yy_size_t;
-
-
-struct yy_buffer_state
-       {
-       FILE *yy_input_file;
-
-       char *yy_ch_buf;                /* input buffer */
-       char *yy_buf_pos;               /* current position in input buffer */
-
-       /* Size of input buffer in bytes, not including room for EOB
-        * characters.
-        */
-       yy_size_t yy_buf_size;
-
-       /* Number of characters read into yy_ch_buf, not including EOB
-        * characters.
-        */
-       int yy_n_chars;
-
-       /* Whether we "own" the buffer - i.e., we know we created it,
-        * and can realloc() it to grow it, and should free() it to
-        * delete it.
-        */
-       int yy_is_our_buffer;
-
-       /* Whether this is an "interactive" input source; if so, and
-        * if we're using stdio for input, then we want to use getc()
-        * instead of fread(), to make sure we stop fetching input after
-        * each newline.
-        */
-       int yy_is_interactive;
-
-       /* Whether we're considered to be at the beginning of a line.
-        * If so, '^' rules will be active on the next match, otherwise
-        * not.
-        */
-       int yy_at_bol;
-
-       /* Whether to try to fill the input buffer when we reach the
-        * end of it.
-        */
-       int yy_fill_buffer;
-
-       int yy_buffer_status;
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-       /* When an EOF's been seen but there's still some text to process
-        * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-        * shouldn't try reading from the input source any more.  We might
-        * still have a bunch of tokens to match, though, because of
-        * possible backing-up.
-        *
-        * When we actually see the EOF, we change the status to "new"
-        * (via yyrestart()), so that the user can continue scanning by
-        * just pointing yyin at a new input file.
-        */
-#define YY_BUFFER_EOF_PENDING 2
-       };
-
-static YY_BUFFER_STATE yy_current_buffer = 0;
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- */
-#define YY_CURRENT_BUFFER yy_current_buffer
-
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-
-static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-
-
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;                /* whether we need to initialize */
-static int yy_start = 0;       /* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart YY_PROTO(( FILE *input_file ));
-
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
-
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
-
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
-static void yy_flex_free YY_PROTO(( void * ));
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-       { \
-       if ( ! yy_current_buffer ) \
-               yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-       yy_current_buffer->yy_is_interactive = is_interactive; \
-       }
-
-#define yy_set_bol(at_bol) \
-       { \
-       if ( ! yy_current_buffer ) \
-               yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-       yy_current_buffer->yy_at_bol = at_bol; \
-       }
-
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
-
-#define YY_USES_REJECT
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-extern int yylineno;
-int yylineno = 1;
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
-       yytext_ptr = yy_bp; \
-       yyleng = (int) (yy_cp - yy_bp); \
-       yy_hold_char = *yy_cp; \
-       *yy_cp = '\0'; \
-       yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 76
-#define YY_END_OF_BUFFER 77
-static yyconst short int yy_acclist[366] =
-    {   0,
-       10,   10,    6,    6,   23,   23,   26,   26,    9,    9,
-       27,   27,   18,   18,   77,   76,   24,   76,   76,   76,
-       76,   76,   65,   76,   59,   65,   76,   59,   76,   24,
-       65,   76,   48,   65,   76,   53,   65,   76,   57,   65,
-       76,   58,   65,   76,   52,   65,   76,   55,   65,   76,
-       51,   65,   76,   56,   65,   76,   65,   76,   54,   65,
-       76,   39,   65,   76,16420,   50,   65,   76,   64,   65,
-       76,   49,   65,   76,   49,   65,   76,   62,   65,   76,
-       63,   65,   76,   60,   65,   76,   61,   65,   76,   45,
-       76,   44,   45,   76,   44,   76,   33,   45,   76,   21,
-
-       24,   45,   76,   31,   33,   45,   76,   31,   33,   45,
-       76,   15,   45,   76,   31,   45,   76,   31,   33,   45,
-       76,   31,   45,   76,   31,   33,   45,   76,   39,   45,
-       76,16420,   31,   33,   45,   76,   43,   45,   76,16419,
-       43,   45,   76,16419,   43,   45,   76,16419,   74,   76,
-       73,   76,   73,   74,   76,   24,   74,   76,   74,   76,
-       74,   76,   74,   76,   74,   76,   74,   75,   76,   71,
-       76,   69,   71,   76,   71,   76,   71,   76,   71,   76,
-       71,   76,   70,   76,   67,   76,   68,   76,   10,   76,
-        8,   76,    3,    6,   76,    3,    6,   76,    3,   76,
-
-        6,   76,   23,   76,   22,   76,   26,   76,   25,   76,
-       26,   76,    9,   76,   14,   76,   27,   76,   28,   76,
-       18,   76,   16,   76,   76,   40,16421,    4,   40,16421,
-       48,   48,   48,   48,   39,16420,   40,16421,   40,16421,
-       49,   49,   33,   33,   33,   34,   33,   33,    4,   33,
-       33,   29,   33,   42,   43,16419,    7,   13,   74,   74,
-       74,   40,   74,16421,    4,   74,   40,   74,16421,   68,
-       10,    6,    6,    5,   23,   26,   26,   26,    9,   27,
-       18,   17,   19,    4,    4,   40,16421,   48,   48,   47,
-     8228,   40,16421,   41,16422,   49,   32,   30,   32,   30,
-
-       32,   34,   30,    1,   33,   33,   30,   32,    4,   33,
-        4,   33,    4,   33,   42, 8227,   74,   74,   74,    4,
-       74,    4,   74,   40,   74,16421,   12,    5,   11,   20,
-     8229,    2,    4,   49,   32,    2,    4,   33,   32,   42,
-     8229,   74,   74,    2,    4,   74,    2,    2,    2,   48,
-     8230,   49,   42,    2,   74,    2,   74,    2,   49,   46,
-       49,   46,   46,   66,   72
-    } ;
-
-static yyconst short int yy_accept[273] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    2,    3,    4,    5,    6,    7,    8,
-        9,   10,   11,   12,   13,   14,   15,   16,   17,   19,
-       20,   21,   22,   23,   25,   28,   30,   33,   36,   39,
-       42,   45,   48,   51,   54,   57,   59,   62,   66,   69,
-       72,   75,   78,   81,   84,   87,   90,   92,   95,   97,
-      100,  104,  108,  112,  115,  118,  122,  125,  129,  133,
-      137,  141,  145,  149,  151,  153,  156,  159,  161,  163,
-      165,  167,  170,  172,  175,  177,  179,  181,  183,  185,
-      187,  189,  191,  193,  196,  199,  201,  203,  205,  207,
-
-      209,  211,  213,  215,  217,  219,  221,  223,  225,  226,
-      226,  226,  228,  229,  231,  231,  232,  233,  234,  235,
-      235,  237,  239,  239,  239,  239,  241,  241,  242,  243,
-      244,  245,  245,  246,  247,  248,  248,  249,  251,  252,
-      254,  255,  255,  255,  257,  258,  259,  260,  261,  262,
-      265,  267,  270,  271,  272,  272,  272,  273,  274,  274,
-      274,  275,  276,  277,  278,  279,  280,  280,  280,  281,
-      282,  282,  282,  283,  284,  284,  284,  284,  285,  286,
-      288,  289,  290,  290,  291,  292,  294,  294,  296,  297,
-      298,  300,  303,  304,  304,  305,  306,  307,  309,  311,
-
-      313,  315,  315,  315,  316,  317,  318,  319,  320,  322,
-      324,  327,  327,  327,  328,  329,  329,  329,  330,  330,
-      330,  331,  332,  332,  334,  334,  334,  334,  334,  335,
-      336,  339,  340,  341,  343,  344,  347,  348,  349,  350,
-      351,  352,  352,  353,  354,  356,  358,  359,  359,  359,
-      360,  360,  360,  362,  362,  363,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  365,  365,
-      366,  366
-    } ;
-
-static yyconst int yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    5,    1,    1,
-        1,    2,    5,    6,    7,    8,    9,    5,   10,   11,
-       12,   13,   14,   15,   16,   17,   18,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   20,   21,   22,
-       23,   24,    5,    5,   25,   26,   27,   28,   29,   30,
-       25,   25,   31,   25,   25,   32,   25,   33,   25,   25,
-       34,   25,   35,   25,   36,   25,   25,   37,   25,   25,
-       38,   39,   40,    5,   25,    1,   25,   26,   27,   28,
-
-       29,   30,   25,   25,   31,   25,   25,   32,   25,   33,
-       25,   25,   34,   25,   35,   25,   36,   25,   25,   37,
-       25,   25,   41,   22,   42,    5,    1,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
-       25,   25,   25,   25,   25
-    } ;
-
-static yyconst int yy_meta[43] =
-    {   0,
-        1,    2,    3,    4,    5,    6,    5,    5,    5,    7,
-        1,    1,    8,    5,    1,    9,   10,    5,   11,    5,
-        1,    5,    5,    5,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,    1,   13,    1,
-        1,    1
-    } ;
-
-static yyconst short int yy_base[302] =
-    {   0,
-        0,    4,   23,    0,   65,    0,  106,  126,  146,  166,
-      186,    0,  597,  588,  219,  239,  589,  584,  107,  112,
-      575,  570,  117,  137,  116,  121,  572, 1138, 1138,   97,
-      552,  556,   98, 1138,    0,  154, 1138,  132, 1138, 1138,
-     1138, 1138, 1138, 1138,  117,  549,  141,  262, 1138, 1138,
-        0,  521, 1138, 1138, 1138, 1138, 1138, 1138, 1138,  540,
-     1138,  175,  157, 1138,  193,  182,  266,  258,    0,  290,
-      284,  326,  544,    0, 1138,    0,    0,  189,  533,  528,
-      212,    0, 1138, 1138,  217,  518,  523,  221, 1138, 1138,
-        0,    0,    9,    0,  338,  162,    0,    0, 1138,  495,
-
-     1138,  168,    0,  247,  329, 1138,    0,  361,    0,  510,
-      237,  364,  379,  375,  337,  257,  270,  522,  346,  505,
-        0,  402,  516,  406,  397,  421,  356,    0,  487,  495,
-      318,  425,  288,  490,  336,  340,  448,  468,  490,  491,
-      121,  430,  501,  495, 1138, 1138,    0,  477,  357,  519,
-      537,  524,    0,    0,  440,  560,    0,    0,  168,  481,
-      445,    0,  450,  219,  448,    0,  476,  563,  498,    0,
-      529,  572, 1138, 1138,  575,  567,  472,  592,  465,  615,
-      585,  590,  471, 1138, 1138,  619,  450,  623,  436, 1138,
-     1138,  441, 1138,  456, 1138,    0,  379,  451,    0,  434,
-
-      398,  421,    0,  267, 1138,  641,  633,  288,  661,  420,
-      657,  684,  687, 1138,  545,  696,  699, 1138,  708,  711,
-     1138, 1138,  254,  600,  651,  720,  723,  714,  732,  417,
-      738,  399,  365,    0,  417,  742,  745,  748,  751,  760,
-     1138,  766,  373,  373,  769,  772,  775,  784,  366,  341,
-      335,  306,    0,  279,  787, 1138,  408,  273,  256,  250,
-      248,  214,  198,  177,  164,  164,  138, 1138,   82, 1138,
-     1138,  819,  832,  845,  858,  871,  884,  897,  910,  923,
-      936,  939,  947,  955,  967,  970,  982,  995, 1004, 1013,
-     1026, 1039, 1052, 1064, 1077, 1090, 1103, 1108, 1120,    2,
-
-     1125
-    } ;
-
-static yyconst short int yy_def[302] =
-    {   0,
-      272,  272,  271,    3,  271,    5,  273,  273,  274,  274,
-      272,   11,  275,  275,  276,  276,  277,  277,  278,  278,
-      279,  279,  272,  272,  280,  280,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  281,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      282,  282,  271,  271,  271,  271,  271,  271,  271,  283,
-      271,  283,   62,  271,  271,   62,  271,   62,   48,  271,
-      284,  284,   72,  285,  271,  285,  285,  285,  285,  285,
-      285,  285,  271,  271,  271,  271,  271,  271,  271,  271,
-      286,  287,  271,  288,  288,  289,   95,  290,  271,  291,
-
-      271,  291,  292,  271,  271,  271,  293,  271,  294,  271,
-      271,  271,  295,  271,  271,  281,  281,  271,  281,  271,
-       48,  271,  296,  271,  271,  271,  271,  282,  282,  283,
-      283,  271,  131,  271,  131,  271,  297,  295,  297,  283,
-      298,  271,  271,   72,  271,  271,  285,  285,  285,  285,
-      299,  285,  286,  287,  271,  271,  288,   95,  289,  289,
-      289,  290,  291,  291,  291,  292,  271,  271,  271,  293,
-      271,  271,  271,  271,  271,  271,  295,  295,  178,  271,
-      281,  271,  296,  271,  271,  271,  271,  271,  282,  271,
-      271,  271,  271,  297,  271,  139,  139,  297,  138,  138,
-
-      138,  271,  300,  298,  271,  285,  285,  299,  299,  209,
-      285,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  295,  178,  271,  271,  271,  271,  282,  297,
-      138,  295,  301,  285,  299,  209,  295,  295,  271,  271,
-      271,  271,  282,  301,  299,  299,  271,  271,  271,  282,
-      271,  271,  282,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-        0,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-
-      271
-    } ;
-
-static yyconst short int yy_nxt[1181] =
-    {   0,
-      271,  115,  115,  115,  271,   29,  116,  271,  271,   29,
-      155,  156,  155,  233,  271,   30,   31,   32,   33,   30,
-       31,   32,   33,   34,   35,   36,   35,   34,   37,   38,
-       34,   39,   34,   40,   41,   42,   43,   44,   45,   46,
-       47,   48,   34,   49,   34,   50,   34,   51,   51,   51,
-       51,   52,   51,   51,   51,   51,   51,   51,   51,   51,
-       53,   34,   54,   55,   56,   57,   58,   59,   58,   60,
-       61,   60,   62,   63,   64,   65,   65,   63,   63,   65,
-       66,   67,   68,   69,   70,   65,   63,   63,   63,   71,
-       72,   71,   71,   71,   71,   71,   71,   71,   71,   71,
-
-       71,   73,   65,   57,   65,   57,   57,   75,   75,   76,
-      270,   77,  101,  110,  114,  111,  111,  101,  105,  105,
-      105,   78,   79,   80,   81,  108,   82,   75,   75,   76,
-      108,   77,  106,  120,  118,  121,  202,  203,  105,  105,
-      105,   78,   79,   80,   81,  102,   82,   84,   84,   84,
-      102,   29,  106,  113,  109,  115,  115,  115,  123,  109,
-      116,   85,   86,   87,   88,  269,   89,   84,   84,   84,
-      119,   29,  135,  165,  159,  271,  132,  132,  132,  161,
-      159,   85,   86,   87,   88,  161,   89,   90,   90,   90,
-      133,   29,  268,  134,  132,  132,  132,  137,  120,  267,
-
-      121,   30,   31,   32,   33,  148,  164,  149,  136,  266,
-       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
-       91,   91,   91,   95,  165,   95,   95,   95,  152,  265,
-      149,   96,   95,  110,   95,  111,   97,  114,   95,  111,
-       95,   95,   95,   95,  264,   95,   95,   95,  167,  168,
-      167,   96,   95,  114,   95,  111,   97,  164,   95,  118,
-       95,   95,   95,  124,  124,  124,  223,  132,  132,  132,
-      138,  237,  118,  135,  263,  139,  271,  125,  126,  262,
-      121,  136,  202,  203,  122,  142,  142,  142,  261,  177,
-      127,  132,  132,  132,  130,  119,  130,  130,  130,  143,
-
-      235,  260,  130,  130,  191,  135,  192,  130,  119,  140,
-      256,  130,  130,  130,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  142,  142,  142,
-      169,  169,  169,  131,  190,  145,  190,  255,  115,  115,
-      115,  143,  158,  116,  158,  158,  158,  181,  182,  181,
-      159,  158,  191,  158,  191,  158,  193,  158,  193,  158,
-      158,  158,  171,  172,  171,  175,  175,  175,  254,  187,
-      173,  187,  253,  152,  188,  149,  175,  175,  175,  176,
-      202,  203,  112,  178,  119,  178,  178,  178,  202,  203,
-      176,  179,  178,  180,  178,  230,  178,  230,  178,  252,
-
-      178,  178,  178,  175,  175,  175,  250,  124,  124,  124,
-      185,  223,  185,  185,  232,  185,  232,  176,  177,  195,
-      122,  125,  175,  175,  175,  185,  132,  132,  132,  235,
-      127,  142,  142,  142,  245,  258,  176,  236,  259,  186,
-      136,  155,  156,  155,  203,  143,  215,  215,  215,  127,
-      195,  231,  196,  195,  196,  196,  196,  159,  195,  134,
-      196,  196,  229,  197,  198,  196,  198,  196,  188,  196,
-      196,  196,  199,  184,  199,  199,  199,  167,  168,  167,
-      200,  199,  224,  201,  223,  199,  164,  199,  164,  199,
-      199,  199,  195,  159,  196,  150,  196,  196,  196,  169,
-
-      169,  169,  196,  196,  271,  197,  131,  196,  134,  196,
-      131,  196,  196,  196,  205,  189,  205,  205,  184,  205,
-      175,  175,  206,  122,  118,  175,  175,  206,  112,  205,
-      171,  172,  171,  164,  207,  113,  112,  150,  177,  207,
-      151,  209,  211,  209,  209,  209,  215,  215,  215,  210,
-      209,  150,  209,  146,  209,  131,  209,  129,  209,  209,
-      209,  212,  213,  212,  216,  217,  216,  122,  113,  214,
-      112,  271,  218,  219,  220,  219,  175,  175,  175,  104,
-      222,  221,  222,  222,  104,  222,  181,  182,  181,   99,
-      176,  225,  182,  225,   99,  222,  178,   93,  178,  178,
-
-      178,  238,  239,  238,  179,  178,   93,  178,  271,  178,
-      271,  178,  271,  178,  178,  178,  175,  175,  175,  271,
-      175,  175,  175,  119,  227,  227,  227,  271,  226,  271,
-      176,  271,  271,  180,  176,  271,  271,  186,  228,  271,
-      271,  188,  175,  175,  206,  271,  234,  127,  234,  234,
-      271,  234,  225,  240,  225,  271,  207,  271,  175,  175,
-      206,  234,  177,  271,  271,  209,  271,  209,  209,  209,
-      271,  271,  207,  210,  209,  211,  209,  271,  209,  271,
-      209,  271,  209,  209,  209,  212,  213,  212,  212,  213,
-      212,  271,  271,  214,  271,  271,  214,  216,  217,  216,
-
-      216,  217,  216,  271,  271,  218,  271,  271,  218,  219,
-      220,  219,  219,  220,  219,  271,  271,  221,  271,  271,
-      221,  225,  240,  225,  227,  227,  227,  241,  271,  241,
-      241,  271,  241,  242,  242,  242,  271,  271,  228,  238,
-      239,  238,  241,  238,  239,  246,  238,  239,  238,  238,
-      239,  238,  247,  239,  247,  271,  271,  223,  271,  271,
-      223,  225,  182,  225,  271,  271,  243,  248,  248,  248,
-      238,  239,  246,  238,  239,  246,  247,  239,  247,  271,
-      271,  235,  271,  271,  235,  248,  248,  248,  257,  257,
-      257,  271,  271,  271,  271,  271,  271,  271,  226,  271,
-
-      249,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  251,   28,
-       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
-       28,   28,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   74,   74,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   83,   92,   92,
-       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
-       92,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-       94,   94,   94,   94,   98,   98,   98,   98,   98,   98,
-       98,   98,   98,   98,   98,   98,   98,  100,  100,  100,
-
-      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  107,  107,  107,  107,  107,  107,  107,
-      107,  107,  107,  107,  107,  107,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  128,
-      128,  130,  271,  271,  130,  130,  144,  144,  144,  271,
-      271,  271,  271,  144,  271,  144,  144,  147,  271,  271,
-      147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
-      153,  153,  154,  154,  154,  154,  154,  154,  271,  154,
-      154,  154,  154,  154,  154,  157,  157,  157,  157,  157,
-
-      157,  157,  271,  157,  157,  157,  157,  157,  160,  271,
-      271,  160,  160,  162,  162,  162,  162,  162,  271,  162,
-      162,  162,  162,  162,  162,  162,  163,  163,  163,  163,
-      163,  271,  163,  163,  163,  163,  163,  163,  163,  166,
-      166,  166,  166,  166,  166,  271,  166,  166,  166,  166,
-      166,  166,  170,  170,  170,  170,  170,  170,  271,  170,
-      170,  170,  170,  170,  174,  174,  174,  174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  177,  177,  271,
-      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
-      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
-
-      183,  183,  183,  194,  194,  194,  194,  194,  194,  194,
-      194,  194,  194,  194,  194,  194,  204,  204,  204,  204,
-      208,  208,  271,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  208,  244,  244,  244,  244,   27,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271
-    } ;
-
-static yyconst short int yy_chk[1181] =
-    {   0,
-        0,   35,   35,   35,    0,    1,   35,    0,    0,    2,
-       93,   93,   93,  300,    0,    1,    1,    1,    1,    2,
-        2,    2,    2,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-
-        5,    5,    5,    5,    5,    5,    5,    7,    7,    7,
-      269,    7,   19,   30,   33,   30,   33,   20,   23,   23,
-       23,    7,    7,    7,    7,   25,    7,    8,    8,    8,
-       26,    8,   23,   45,   38,   45,  141,  141,   24,   24,
-       24,    8,    8,    8,    8,   19,    8,    9,    9,    9,
-       20,    9,   24,   47,   25,   36,   36,   36,   47,   26,
-       36,    9,    9,    9,    9,  267,    9,   10,   10,   10,
-       38,   10,   63,  102,   96,   63,   62,   62,   62,   96,
-      159,   10,   10,   10,   10,  159,   10,   11,   11,   11,
-       62,   11,  266,   62,   65,   65,   65,   66,   66,  265,
-
-       66,   11,   11,   11,   11,   78,  102,   78,   65,  264,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   15,  164,   15,   15,   15,   81,  263,
-       81,   15,   15,   85,   15,   85,   15,   88,   15,   88,
-       15,   15,   15,   16,  262,   16,   16,   16,  104,  104,
-      104,   16,   16,  111,   16,  111,   16,  164,   16,  116,
-       16,   16,   16,   48,   48,   48,  223,   67,   67,   67,
-       68,  223,  117,   68,  261,   68,   68,   48,   48,  260,
-       48,   67,  204,  204,   67,   71,   71,   71,  259,  208,
-       48,   70,   70,   70,   70,  116,   70,   70,   70,   71,
-
-      208,  258,   70,   70,  133,   70,  133,   70,  117,   70,
-      254,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70,   72,   72,   72,
-      105,  105,  105,  131,  131,   72,  131,  252,  115,  115,
-      115,   72,   95,  115,   95,   95,   95,  119,  119,  119,
-       95,   95,  135,   95,  135,   95,  136,   95,  136,   95,
-       95,   95,  108,  108,  108,  112,  112,  112,  251,  127,
-      108,  127,  250,  149,  127,  149,  114,  114,  114,  112,
-      233,  233,  112,  113,  119,  113,  113,  113,  244,  244,
-      114,  113,  113,  114,  113,  197,  113,  197,  113,  249,
-
-      113,  113,  113,  122,  122,  122,  243,  124,  124,  124,
-      125,  232,  125,  125,  201,  125,  201,  122,  235,  230,
-      122,  124,  126,  126,  126,  125,  132,  132,  132,  235,
-      122,  142,  142,  142,  235,  257,  126,  210,  257,  126,
-      132,  155,  155,  155,  202,  142,  161,  161,  161,  126,
-      137,  200,  137,  198,  137,  137,  137,  161,  194,  192,
-      137,  137,  189,  137,  137,  137,  137,  137,  187,  137,
-      137,  137,  138,  183,  138,  138,  138,  167,  167,  167,
-      138,  138,  179,  138,  177,  138,  165,  138,  163,  138,
-      138,  138,  139,  160,  139,  148,  139,  139,  139,  169,
-
-      169,  169,  139,  139,  144,  139,  140,  139,  134,  139,
-      130,  139,  139,  139,  143,  129,  143,  143,  123,  143,
-      150,  150,  150,  120,  118,  152,  152,  152,  110,  143,
-      171,  171,  171,  100,  150,   87,   86,  150,  151,  152,
-       80,  151,  152,  151,  151,  151,  215,  215,  215,  151,
-      151,   79,  151,   73,  151,   60,  151,   52,  151,  151,
-      151,  156,  156,  156,  168,  168,  168,   46,   32,  156,
-       31,   27,  168,  172,  172,  172,  175,  175,  175,   22,
-      176,  172,  176,  176,   21,  176,  181,  181,  181,   18,
-      175,  182,  182,  182,   17,  176,  178,   14,  178,  178,
-
-      178,  224,  224,  224,  178,  178,   13,  178,    0,  178,
-        0,  178,    0,  178,  178,  178,  180,  180,  180,    0,
-      186,  186,  186,  181,  188,  188,  188,    0,  182,    0,
-      180,    0,    0,  180,  186,    0,    0,  186,  188,    0,
-        0,  188,  206,  206,  206,    0,  207,  186,  207,  207,
-        0,  207,  225,  225,  225,    0,  206,    0,  211,  211,
-      211,  207,  209,    0,    0,  209,    0,  209,  209,  209,
-        0,    0,  211,  209,  209,  211,  209,    0,  209,    0,
-      209,    0,  209,  209,  209,  212,  212,  212,  213,  213,
-      213,    0,    0,  212,    0,    0,  213,  216,  216,  216,
-
-      217,  217,  217,    0,    0,  216,    0,    0,  217,  219,
-      219,  219,  220,  220,  220,    0,    0,  219,    0,    0,
-      220,  226,  226,  226,  227,  227,  227,  228,    0,  228,
-      228,    0,  228,  229,  229,  229,    0,    0,  227,  231,
-      231,  231,  228,  236,  236,  236,  237,  237,  237,  238,
-      238,  238,  239,  239,  239,    0,    0,  237,    0,    0,
-      238,  240,  240,  240,    0,    0,  229,  242,  242,  242,
-      245,  245,  245,  246,  246,  246,  247,  247,  247,    0,
-        0,  245,    0,    0,  246,  248,  248,  248,  255,  255,
-      255,    0,    0,    0,    0,    0,    0,    0,  240,    0,
-
-      242,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  248,  272,
-      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
-      272,  272,  273,  273,  273,  273,  273,  273,  273,  273,
-      273,  273,  273,  273,  273,  274,  274,  274,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  274,  275,  275,
-      275,  275,  275,  275,  275,  275,  275,  275,  275,  275,
-      275,  276,  276,  276,  276,  276,  276,  276,  276,  276,
-      276,  276,  276,  276,  277,  277,  277,  277,  277,  277,
-      277,  277,  277,  277,  277,  277,  277,  278,  278,  278,
-
-      278,  278,  278,  278,  278,  278,  278,  278,  278,  278,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  280,  280,  280,  280,  280,  280,  280,
-      280,  280,  280,  280,  280,  280,  281,  281,  281,  281,
-      281,  281,  281,  281,  281,  281,  281,  281,  281,  282,
-      282,  283,    0,    0,  283,  283,  284,  284,  284,    0,
-        0,    0,    0,  284,    0,  284,  284,  285,    0,    0,
-      285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
-      286,  286,  287,  287,  287,  287,  287,  287,    0,  287,
-      287,  287,  287,  287,  287,  288,  288,  288,  288,  288,
-
-      288,  288,    0,  288,  288,  288,  288,  288,  289,    0,
-        0,  289,  289,  290,  290,  290,  290,  290,    0,  290,
-      290,  290,  290,  290,  290,  290,  291,  291,  291,  291,
-      291,    0,  291,  291,  291,  291,  291,  291,  291,  292,
-      292,  292,  292,  292,  292,    0,  292,  292,  292,  292,
-      292,  292,  293,  293,  293,  293,  293,  293,    0,  293,
-      293,  293,  293,  293,  294,  294,  294,  294,  294,  294,
-      294,  294,  294,  294,  294,  294,  294,  295,  295,    0,
-      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
-      296,  296,  296,  296,  296,  296,  296,  296,  296,  296,
-
-      296,  296,  296,  297,  297,  297,  297,  297,  297,  297,
-      297,  297,  297,  297,  297,  297,  298,  298,  298,  298,
-      299,  299,    0,  299,  299,  299,  299,  299,  299,  299,
-      299,  299,  299,  301,  301,  301,  301,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271,  271,  271
-    } ;
-
-static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
-static char *yy_full_match;
-static int yy_lp;
-static int yy_looking_for_trail_begin = 0;
-static int yy_full_lp;
-static int *yy_full_state;
-#define YY_TRAILING_MASK 0x2000
-#define YY_TRAILING_HEAD_MASK 0x4000
-#define REJECT \
-{ \
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
-yy_cp = yy_full_match; /* restore poss. backed-over text */ \
-yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \
-yy_state_ptr = yy_full_state; /* restore orig. state */ \
-yy_current_state = *yy_state_ptr; /* restore curr. state */ \
-++yy_lp; \
-goto find_rule; \
-}
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "pgc.l"
-#define INITIAL 0
-/* This is a modified version of src/backend/parser/scan.l */
-#line 3 "pgc.l"
-#include "config.h"
-
-#include <ctype.h>
-#include <sys/types.h>
-#include <limits.h>
-
-#ifndef PATH_MAX
-#include <sys/param.h>
-#define PATH_MAX MAXPATHLEN
-#endif
-
-#if defined(HAVE_STRING_H)
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#include <errno.h>
-
-#include "postgres.h"
-#include "miscadmin.h"
-#include "nodes/pg_list.h"
-#include "nodes/parsenodes.h"
-#include "parser/gramparse.h"
-#include "parser/scansup.h"
-#include "extern.h"
-#include "preproc.h"
-#include "utils/builtins.h"
-
-#ifdef  YY_READ_BUF_SIZE
-#undef  YY_READ_BUF_SIZE
-#endif
-#define YY_READ_BUF_SIZE       MAX_PARSE_BUFFER
-
-/* some versions of lex define this as a macro */
-#if defined(yywrap)
-#undef yywrap
-#endif /* yywrap */
-
-extern YYSTYPE yylval;
-int llen;
-char literal[MAX_PARSE_BUFFER];
-int before_comment;
-
-struct _yy_buffer { YY_BUFFER_STATE    buffer;
-                   long                lineno;
-                   char              * filename;
-                   struct _yy_buffer * next;
-                 } *yy_buffer = NULL;
-
-struct _defines *defines = NULL;
-static char *old;
-
-#define C 1
-#define SQL 2
-#define incl 3
-#define def 4
-#define def_ident 5
-
-/* OK, here is a short description of lex/flex rules behavior.
- * The longest pattern which matches an input string is always chosen.
- * For equal-length patterns, the first occurring in the rules list is chosen.
- * INITIAL is the starting condition, to which all non-conditional rules apply.
- * When in an exclusive condition, only those rules defined for that condition apply.
- *
- * Exclusive states change parsing rules while the state is active.
- * There are exclusive states for quoted strings, extended comments,
- *  and to eliminate parsing troubles for numeric strings.
- * Exclusive states:
- *  <xb> binary numeric string - thomas 1997-11-16
- *  <xc> extended C-style comments - tgl 1997-07-12
- *  <xd> delimited identifiers (double-quoted identifiers) - tgl 1997-10-27
- *  <xh> hexadecimal numeric string - thomas 1997-11-16
- *  <xm> numeric strings with embedded minus sign - tgl 1997-09-05
- *  <xq> quoted strings - tgl 1997-07-30
- *
- * The "extended comment" syntax closely resembles allowable operator syntax.
- * So, when in condition <xc>, only strings which would terminate the
- *  "extended comment" trigger any action other than "ignore".
- * Be sure to match _any_ candidate comment, including those with appended
- *     operator-like symbols. - thomas 1997-07-14
- */
-#define xb 6
-
-#define xc 7
-
-#define xd 8
-
-#define xdc 9
-
-#define xh 10
-
-#define xm 11
-
-#define xq 12
-
-/* Binary number
- */
-/* Hexadecimal number
- */
-/* Extended quote
- * xqdouble implements SQL92 embedded quote
- * xqcat allows strings to cross input lines
- */
-/* Delimited quote
- * Allows embedded spaces and other special characters into identifiers.
- */
-/* Comments
- * Ignored by the scanner and parser.
- */
-/*
-real                   [\-]?(((({digit}*\.{digit}+)|({digit}+\.{digit}*))([Ee][-+]?{digit}+)?)|({digit}+[Ee][-+]?{digit}+))
-*/
-/* some stuff needed for ecpg */
-/* DO NOT PUT ANY COMMENTS IN THE FOLLOWING SECTION.
- * AT&T lex does not properly handle C-style comments in this second lex block.
- * So, put comments here. tgl - 1997-09-08
- *
- * Quoted strings must allow some special characters such as single-quote
- *  and newline.
- * Embedded single-quotes are implemented both in the SQL/92-standard
- *  style of two adjacent single quotes "''" and in the Postgres/Java style
- *  of escaped-quote "\'".
- * Other embedded escaped characters are matched explicitly and the leading
- *  backslash is dropped from the string. - thomas 1997-09-24
- */
-#line 904 "lex.yy.c"
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap YY_PROTO(( void ));
-#else
-extern int yywrap YY_PROTO(( void ));
-#endif
-#endif
-
-#ifndef YY_NO_UNPUT
-static void yyunput YY_PROTO(( int c, char *buf_ptr ));
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput YY_PROTO(( void ));
-#else
-static int input YY_PROTO(( void ));
-#endif
-#endif
-
-#if YY_STACK_USED
-static int yy_start_stack_ptr = 0;
-static int yy_start_stack_depth = 0;
-static int *yy_start_stack = 0;
-#ifndef YY_NO_PUSH_STATE
-static void yy_push_state YY_PROTO(( int new_state ));
-#endif
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state YY_PROTO(( void ));
-#endif
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state YY_PROTO(( void ));
-#endif
-
-#else
-#define YY_NO_PUSH_STATE 1
-#define YY_NO_POP_STATE 1
-#define YY_NO_TOP_STATE 1
-#endif
-
-#ifdef YY_MALLOC_DECL
-YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#include <stdlib.h>
-#endif
-#else
-/* Just try to get by without declaring the routines.  This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-       if ( yy_current_buffer->yy_is_interactive ) \
-               { \
-               int c = '*', n; \
-               for ( n = 0; n < max_size && \
-                            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-                       buf[n] = (char) c; \
-               if ( c == '\n' ) \
-                       buf[n++] = (char) c; \
-               if ( c == EOF && ferror( yyin ) ) \
-                       YY_FATAL_ERROR( "input in flex scanner failed" ); \
-               result = n; \
-               } \
-       else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
-                 && ferror( yyin ) ) \
-               YY_FATAL_ERROR( "input in flex scanner failed" );
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL int yylex YY_PROTO(( void ))
-#endif
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-       YY_USER_ACTION
-
-YY_DECL
-       {
-       register yy_state_type yy_current_state;
-       register char *yy_cp, *yy_bp;
-       register int yy_act;
-
-#line 186 "pgc.l"
-
-#line 1057 "lex.yy.c"
-
-       if ( yy_init )
-               {
-               yy_init = 0;
-
-#ifdef YY_USER_INIT
-               YY_USER_INIT;
-#endif
-
-               if ( ! yy_start )
-                       yy_start = 1;   /* first start state */
-
-               if ( ! yyin )
-                       yyin = stdin;
-
-               if ( ! yyout )
-                       yyout = stdout;
-
-               if ( ! yy_current_buffer )
-                       yy_current_buffer =
-                               yy_create_buffer( yyin, YY_BUF_SIZE );
-
-               yy_load_buffer_state();
-               }
-
-       while ( 1 )             /* loops until end-of-file is reached */
-               {
-               yy_cp = yy_c_buf_p;
-
-               /* Support of yytext. */
-               *yy_cp = yy_hold_char;
-
-               /* yy_bp points to the position in yy_ch_buf of the start of
-                * the current run.
-                */
-               yy_bp = yy_cp;
-
-               yy_current_state = yy_start;
-               yy_state_ptr = yy_state_buf;
-               *yy_state_ptr++ = yy_current_state;
-yy_match:
-               do
-                       {
-                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-                       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-                               {
-                               yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 272 )
-                                       yy_c = yy_meta[(unsigned int) yy_c];
-                               }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-                       *yy_state_ptr++ = yy_current_state;
-                       ++yy_cp;
-                       }
-               while ( yy_base[yy_current_state] != 1138 );
-
-yy_find_action:
-               yy_current_state = *--yy_state_ptr;
-               yy_lp = yy_accept[yy_current_state];
-find_rule: /* we branch to this label when backing up */
-               for ( ; ; ) /* until we find what rule we matched */
-                       {
-                       if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
-                               {
-                               yy_act = yy_acclist[yy_lp];
-                               if ( yy_act & YY_TRAILING_HEAD_MASK ||
-                                    yy_looking_for_trail_begin )
-                                       {
-                                       if ( yy_act == yy_looking_for_trail_begin )
-                                               {
-                                               yy_looking_for_trail_begin = 0;
-                                               yy_act &= ~YY_TRAILING_HEAD_MASK;
-                                               break;
-                                               }
-                                       }
-                               else if ( yy_act & YY_TRAILING_MASK )
-                                       {
-                                       yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
-                                       yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
-                                       yy_full_match = yy_cp;
-                                       yy_full_state = yy_state_ptr;
-                                       yy_full_lp = yy_lp;
-                                       }
-                               else
-                                       {
-                                       yy_full_match = yy_cp;
-                                       yy_full_state = yy_state_ptr;
-                                       yy_full_lp = yy_lp;
-                                       break;
-                                       }
-                               ++yy_lp;
-                               goto find_rule;
-                               }
-                       --yy_cp;
-                       yy_current_state = *--yy_state_ptr;
-                       yy_lp = yy_accept[yy_current_state];
-                       }
-
-               YY_DO_BEFORE_ACTION;
-
-               if ( yy_act != YY_END_OF_BUFFER )
-                       {
-                       int yyl;
-                       for ( yyl = 0; yyl < yyleng; ++yyl )
-                               if ( yytext[yyl] == '\n' )
-                                       ++yylineno;
-                       }
-
-do_action:     /* This label is used only to access EOF actions. */
-
-
-               switch ( yy_act )
-       { /* beginning of action switch */
-case 1:
-YY_RULE_SETUP
-#line 187 "pgc.l"
-{ /* ignore */ }
-       YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 189 "pgc.l"
-{ ECHO; }
-       YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 191 "pgc.l"
-{ ECHO; }
-       YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 192 "pgc.l"
-{
-                               before_comment = YYSTATE;
-                               ECHO;
-                               BEGIN(xc);
-                       }
-       YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 198 "pgc.l"
-{ ECHO; BEGIN(before_comment); }
-       YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 200 "pgc.l"
-{ ECHO; }
-       YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 202 "pgc.l"
-{
-                                       BEGIN(xb);
-                                       llen = 0;
-                                       *literal = '\0';
-                               }
-       YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 207 "pgc.l"
-{
-                                       char* endptr;
-
-                                       BEGIN(SQL);
-                                       errno = 0;
-                                       yylval.ival = strtol((char *)literal,&endptr,2);
-                                       if (*endptr != '\0' || errno == ERANGE)
-                                               yyerror("ERROR: Bad binary integer input!");
-                                       return ICONST;
-                               }
-       YY_BREAK
-case 9:
-#line 218 "pgc.l"
-case 10:
-YY_RULE_SETUP
-#line 218 "pgc.l"
-{
-                                       if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-                                               yyerror("ERROR: quoted string parse buffer exceeded");
-                                       memcpy(literal+llen, yytext, yyleng+1);
-                                       llen += yyleng;
-                               }
-       YY_BREAK
-case 11:
-#line 225 "pgc.l"
-case 12:
-YY_RULE_SETUP
-#line 225 "pgc.l"
-{
-                               }
-       YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 228 "pgc.l"
-{
-                                       BEGIN(xh);
-                                       llen = 0;
-                                       *literal = '\0';
-                               }
-       YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 233 "pgc.l"
-{
-                                       char* endptr;
-
-                                       BEGIN(SQL);
-                                       errno = 0;
-                                       yylval.ival = strtol((char *)literal,&endptr,16);
-                                       if (*endptr != '\0' || errno == ERANGE)
-                                               yyerror("ERROR: Bad hexadecimal integer input");
-                                       return ICONST;
-                               }
-       YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 244 "pgc.l"
-{
-                                       BEGIN(xq);
-                                       llen = 0;
-                                       *literal = '\0';
-                               }
-       YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 249 "pgc.l"
-{
-                                       BEGIN(SQL);
-                                       yylval.str = mm_strdup(scanstr(literal));
-                                       return SCONST;
-                               }
-       YY_BREAK
-case 17:
-#line 255 "pgc.l"
-case 18:
-#line 256 "pgc.l"
-case 19:
-YY_RULE_SETUP
-#line 256 "pgc.l"
-{
-                                       if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-                                               yyerror("ERROR: quoted string parse buffer exceeded");
-                                       memcpy(literal+llen, yytext, yyleng+1);
-                                       llen += yyleng;
-                               }
-       YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 262 "pgc.l"
-{
-                               }
-       YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 266 "pgc.l"
-{
-                                       BEGIN(xd);
-                                       llen = 0;
-                                       *literal = '\0';
-                               }
-       YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 271 "pgc.l"
-{
-                                       BEGIN(SQL);
-                                       yylval.str = mm_strdup(literal);
-                                       return CSTRING;
-                               }
-       YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 276 "pgc.l"
-{
-                                       if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-                                               yyerror("ERROR: quoted string parse buffer exceeded");
-                                       memcpy(literal+llen, yytext, yyleng+1);
-                                       llen += yyleng;
-                               }
-       YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 282 "pgc.l"
-{
-                                       BEGIN(xdc);
-                                       llen = 0;
-                                       *literal = '\0';
-                               }
-       YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 287 "pgc.l"
-{
-                                       BEGIN(C);
-                                       yylval.str = mm_strdup(literal);
-                                       return CSTRING;
-                               }
-       YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 292 "pgc.l"
-{
-                                       if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-                                               yyerror("ERROR: quoted string parse buffer exceeded");
-                                       memcpy(literal+llen, yytext, yyleng+1);
-                                       llen += yyleng;
-                               }
-       YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 299 "pgc.l"
-{ /* ignore */ }
-       YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 300 "pgc.l"
-{
-                                       BEGIN(SQL);
-                                       return yytext[0];
-                               }
-       YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 306 "pgc.l"
-{      return TYPECAST; }
-       YY_BREAK
-case 30:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp = yy_bp + 1;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 307 "pgc.l"
-{
-                                       BEGIN(xm);
-                                       return yytext[0];
-                               }
-       YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 311 "pgc.l"
-{ /* 
-                                  * We may find a ';' inside a structure
-                                  * definition in a TYPE or VAR statement.
-                                  * This is not an EOL marker.
-                                  */
-                                 if (yytext[0] == ';' && struct_level == 0)
-                                        BEGIN C;
-                                 return yytext[0];
-                               }
-       YY_BREAK
-case 32:
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
-yy_c_buf_p = yy_cp -= 2;
-YY_DO_BEFORE_ACTION; /* set up yytext again */
-YY_RULE_SETUP
-#line 320 "pgc.l"
-{
-                                       yylval.str = mm_strdup((char*)yytext);
-                                       return Op;
-                               }
-       YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 324 "pgc.l"
-{
-                                       if (strcmp((char*)yytext,"!=") == 0)
-                                               yylval.str = mm_strdup("<>"); /* compatability */
-                                       else
-                                               yylval.str = mm_strdup((char*)yytext);
-                                       return Op;
-                               }
-       YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 331 "pgc.l"
-{
-                                       yylval.ival = atoi((char*)&yytext[1]);
-                                       return PARAM;
-                               }
-       YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 335 "pgc.l"
-{
-                                       int i;
-                                       ScanKeyword             *keyword;
-                                       char lower_text[NAMEDATALEN];
-
-                                       BEGIN(xm);
-                                       /* this should leave the last byte set to '\0' */
-                                       strncpy(lower_text, yytext, NAMEDATALEN-1);
-                                       for(i = 0; lower_text[i]; i++)
-                                               if (isascii((unsigned char)lower_text[i]) && isupper(lower_text[i]))
-                                                       lower_text[i] = tolower(lower_text[i]);
-
-                                       keyword = ScanKeywordLookup((char*)lower_text);
-                                       if (keyword != NULL) {
-                                               return keyword->value;
-                                       }
-                                       else
-                                       {
-                                               keyword = ScanECPGKeywordLookup((char*)lower_text);
-                                               if (keyword != NULL) {
-                                                       return keyword->value;
-                                               }
-                                               else
-                                               {
-                                                       struct _defines *ptr;
-
-                                                       for (ptr = defines; ptr; ptr = ptr->next)
-                                                       {
-                                                               if (strcmp(yytext, ptr->old) == 0)
-                                                               {
-                                                                       struct _yy_buffer *yb;
-
-                                                                       yb = mm_alloc(sizeof(struct _yy_buffer));
-
-                                                                       yb->buffer =  YY_CURRENT_BUFFER;
-                                                                       yb->lineno = yylineno;
-                                                                       yb->filename = mm_strdup(input_filename);
-                                                                       yb->next = yy_buffer;
-
-                                                                       yy_buffer = yb;
-
-                                                                       yy_scan_string(ptr->new);
-                                                                       break;
-                                                               }
-                                                       }
-                                                       if (ptr == NULL) 
-                                                       {
-                                                               yylval.str = mm_strdup((char*)yytext);
-                                                               return IDENT;
-                                                       }
-                                               }
-                                       }
-                               }
-       YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 388 "pgc.l"
-{
-                                       char* endptr;
-
-                                       BEGIN(xm);
-                                       errno = 0;
-                                       yylval.ival = strtol((char *)yytext,&endptr,10);
-                                       if (*endptr != '\0' || errno == ERANGE)
-                                       {
-                                               errno = 0;
-#if 0
-                                               yylval.dval = strtod(((char *)yytext),&endptr);
-                                               if (*endptr != '\0' || errno == ERANGE)
-                                                       yyerror("ERROR: Bad integer input");
-                                               yyerror("WARNING: Integer input is out of range; promoted to float");
-                                               return FCONST;
-#endif
-                                               yylval.str = mm_strdup((char*)yytext);
-                                                return SCONST;
-                                       }
-                                       return ICONST;
-                               }
-       YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 409 "pgc.l"
-{
-                                        char* endptr;
-
-                                        BEGIN(xm);
-                                        if (strlen((char *)yytext) <= 17)
-                                        {
-                                                errno = 0;
-                                               yylval.dval = strtod(((char *)yytext),&endptr);
-                                               if (*endptr != '\0' || errno == ERANGE)
-                                                       yyerror("ERROR: Bad float8 input");
-                                               return FCONST;
-                                        }
-                                        yylval.str = mm_strdup((char*)yytext);
-                                        return SCONST;
-                                }
-       YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 425 "pgc.l"
-{
-                                       char* endptr;
-
-                                       BEGIN(xm);
-                                       errno = 0;
-                                       yylval.dval = strtod(((char *)yytext),&endptr);
-                                       if (*endptr != '\0' || errno == ERANGE)
-                                               yyerror("ERROR: Bad float8 input");
-                                       return FCONST;
-                               }
-       YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 435 "pgc.l"
-{
-                                       char* endptr;
-
-                                       errno = 0;
-                                       yylval.ival = strtol((char *)yytext,&endptr,10);
-                                       if (*endptr != '\0' || errno == ERANGE)
-                                       {
-                                               errno = 0;
-#if 0
-                                               yylval.dval = strtod(((char *)yytext),&endptr);
-                                               if (*endptr != '\0' || errno == ERANGE)
-                                                       yyerror("ERROR: Bad integer input");
-                                               yyerror("WARNING: Integer input is out of range; promoted to float");
-                                               return FCONST;
-#endif
-                                               yylval.str = mm_strdup((char*)yytext);
-                                                return SCONST;
-                                       }
-                                       return ICONST;
-                               }
-       YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 455 "pgc.l"
-{
-                                        char* endptr;
-
-                                        if (strlen((char *)yytext) <= 17)
-                                        {
-                                                errno = 0;
-                                                yylval.dval = strtod((char *)yytext,&endptr);
-                                               if (*endptr != '\0' || errno == ERANGE)
-                                                       yyerror("ERROR: Bad float8 input");
-                                               return FCONST;
-                                        }
-                                        yylval.str = mm_strdup((char*)yytext);
-                                        return SCONST;
-                                }
-       YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 469 "pgc.l"
-{
-                                       char* endptr;
-
-                                       errno = 0;
-                                       yylval.dval = strtod((char *)yytext,&endptr);
-                                       if (*endptr != '\0' || errno == ERANGE)
-                                               yyerror("ERROR: Bad float input");
-                                       return FCONST;
-                               }
-       YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 478 "pgc.l"
-{
-                                       yylval.str = mm_strdup((char*)yytext+1);
-                                       return(CVARIABLE);
-                       }
-       YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 482 "pgc.l"
-{
-                                       int i;
-                                       ScanKeyword             *keyword;
-                                       char lower_text[NAMEDATALEN];
-
-                                       /* this should leave the last byte set to '\0' */
-                                       strncpy(lower_text, yytext, NAMEDATALEN-1);
-                                       for(i = 0; lower_text[i]; i++)
-                                               if (isascii((unsigned char)lower_text[i]) && isupper(lower_text[i]))
-                                                       lower_text[i] = tolower(lower_text[i]);
-
-                                       keyword = ScanKeywordLookup((char*)lower_text);
-                                       if (keyword != NULL) {
-                                               return keyword->value;
-                                       }
-                                       else
-                                       {
-                                               keyword = ScanECPGKeywordLookup((char*)lower_text);
-                                               if (keyword != NULL) {
-                                                       return keyword->value;
-                                               }
-                                               else
-                                               {
-                                                       struct _defines *ptr;
-
-                                                       for (ptr = defines; ptr; ptr = ptr->next)
-                                                       {
-                                                               if (strcmp(yytext, ptr->old) == 0)
-                                                               {
-                                                                       struct _yy_buffer *yb;
-
-                                                                       yb = mm_alloc(sizeof(struct _yy_buffer));
-
-                                                                       yb->buffer =  YY_CURRENT_BUFFER;
-                                                                       yb->lineno = yylineno;
-                                                                       yb->filename = mm_strdup(input_filename);
-                                                                       yb->next = yy_buffer;
-
-                                                                       yy_buffer = yb;
-
-                                                                       yy_scan_string(ptr->new);
-                                                                       break;
-                                                               }
-                                                       }
-                                                       if (ptr == NULL) 
-                                                       {
-                                                               yylval.str = mm_strdup((char*)yytext);
-                                                               return IDENT;
-                                                       }
-                                               }
-                                       }
-                               }
-       YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 534 "pgc.l"
-{ /* ignore */ }
-       YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 535 "pgc.l"
-{ return yytext[0]; }
-       YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 536 "pgc.l"
-{ BEGIN SQL; return SQL_START; }
-       YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 537 "pgc.l"
-{ /* ignore */ } 
-       YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 538 "pgc.l"
-{
-                                       yylval.str = mm_strdup((char*)yytext);
-                                       return(CPP_LINE);
-                               }
-       YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 542 "pgc.l"
-{
-                                       ScanKeyword             *keyword;
-
-                                       keyword = ScanCKeywordLookup((char*)yytext);
-                                       if (keyword != NULL) {
-                                               return keyword->value;
-                                       }
-                                       else
-                                       {
-                                               struct _defines *ptr;
-
-                                               for (ptr = defines; ptr; ptr = ptr->next)
-                                               {
-                                                       if (strcmp(yytext, ptr->old) == 0)
-                                                       {
-                                                               struct _yy_buffer *yb;
-
-                                                               yb = mm_alloc(sizeof(struct _yy_buffer));
-
-                                                               yb->buffer =  YY_CURRENT_BUFFER;
-                                                               yb->lineno = yylineno;
-                                                               yb->filename = mm_strdup(input_filename);
-                                                               yb->next = yy_buffer;
-
-                                                               yy_buffer = yb;
-
-                                                               yy_scan_string(ptr->new);
-                                                               break;
-                                                       }
-                                               }
-                                               if (ptr == NULL) 
-                                               {
-                                                       yylval.str = mm_strdup((char*)yytext);
-                                                       return IDENT;
-                                               }
-                                       }
-                               }
-       YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 579 "pgc.l"
-{ return(';'); }
-       YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 580 "pgc.l"
-{ return(','); }
-       YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 581 "pgc.l"
-{ return('*'); }
-       YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 582 "pgc.l"
-{ return('%'); }
-       YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 583 "pgc.l"
-{ return('/'); }
-       YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 584 "pgc.l"
-{ return('+'); }
-       YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 585 "pgc.l"
-{ return('-'); }
-       YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 586 "pgc.l"
-{ return('('); }
-       YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 587 "pgc.l"
-{ return(')'); }
-       YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 588 "pgc.l"
-{ ECHO; }
-       YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 589 "pgc.l"
-{ return('{'); }
-       YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 590 "pgc.l"
-{ return('}'); }
-       YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 591 "pgc.l"
-{ return('['); }
-       YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 592 "pgc.l"
-{ return(']'); }
-       YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 593 "pgc.l"
-{ return('='); }
-       YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 594 "pgc.l"
-{ return S_ANYTHING; }
-       YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 595 "pgc.l"
-{BEGIN(def_ident);}
-       YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 596 "pgc.l"
-{}
-       YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 597 "pgc.l"
-{
-                               old = mm_strdup(yytext);
-                               BEGIN(def);
-                               llen = 0;
-                               *literal = '\0';
-                       }
-       YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 603 "pgc.l"
-/* eat the whitespace */
-       YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 604 "pgc.l"
-{
-                               struct _defines *ptr, *this;
-        
-                                for (ptr = defines; ptr != NULL; ptr = ptr->next)
-                                {
-                                     if (strcmp(old, ptr->old) == 0)
-                                     {
-                                       free(ptr->new);
-                                       ptr->new = mm_strdup(scanstr(literal));
-                                     }
-                                }
-                               if (ptr == NULL)
-                               {                        
-                                        this = (struct _defines *) mm_alloc(sizeof(struct _defines));
-
-                                        /* initial definition */
-                                        this->old = old;
-                                        this->new = mm_strdup(scanstr(literal));
-                                       this->next = defines;
-                                       defines = this;
-                               }
-
-                               BEGIN(C);
-                       }
-       YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 628 "pgc.l"
-{
-                               if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-                                       yyerror("ERROR: define statement parse buffer exceeded");
-                               memcpy(literal+llen, yytext, yyleng+1);
-                               llen += yyleng;
-                       }
-       YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 634 "pgc.l"
-{ BEGIN(incl); }
-       YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 635 "pgc.l"
-/* eat the whitespace */
-       YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 636 "pgc.l"
-{ /* got the include file name */
-                         struct _yy_buffer *yb;
-                         struct _include_path *ip;
-                         char inc_file[PATH_MAX];
-
-                         yb = mm_alloc(sizeof(struct _yy_buffer));
-
-                         yb->buffer =  YY_CURRENT_BUFFER;
-                         yb->lineno = yylineno;
-                         yb->filename = input_filename;
-                         yb->next = yy_buffer;
-
-                         yy_buffer = yb;
-
-                         if (yytext[strlen(yytext) - 1] == ';')
-                               yytext[strlen(yytext) - 1] = '\0';
-
-                         yyin = NULL;
-                         for (ip = include_paths; yyin == NULL && ip != NULL; ip = ip->next)
-                         {
-                               if (strlen(ip->path) + strlen(yytext) + 3 > PATH_MAX)
-                               {
-                                       fprintf(stderr, "Error: Path %s/%s is too long in line %d, skipping.\n", ip->path, yytext, yylineno);
-                                       continue;
-                               }
-                               sprintf (inc_file, "%s/%s", ip->path, yytext);
-                               yyin = fopen( inc_file, "r" );
-                               if (!yyin)
-                               {
-                                       if (strcmp(inc_file + strlen(inc_file) - 2, ".h"))
-                                       {
-                                               strcat(inc_file, ".h");
-                                               yyin = fopen( inc_file, "r" );
-                                       }
-
-                               }
-                         }
-                         if (!yyin)
-                         {
-                               fprintf(stderr, "Error: Cannot open include file %s in line %d\n", yytext, yylineno);
-                               exit(NO_INCLUDE_FILE); 
-                         }
-
-                         input_filename = mm_strdup(inc_file);
-                         yy_switch_to_buffer(yy_create_buffer(yyin,YY_BUF_SIZE ));
-                         yylineno = 0;
-                         output_line_number();
-
-                         BEGIN C;
-                       }
-       YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 686 "pgc.l"
-{ BEGIN C; }
-       YY_BREAK
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(C):
-case YY_STATE_EOF(SQL):
-case YY_STATE_EOF(incl):
-case YY_STATE_EOF(def):
-case YY_STATE_EOF(def_ident):
-case YY_STATE_EOF(xb):
-case YY_STATE_EOF(xc):
-case YY_STATE_EOF(xd):
-case YY_STATE_EOF(xdc):
-case YY_STATE_EOF(xh):
-case YY_STATE_EOF(xm):
-case YY_STATE_EOF(xq):
-#line 687 "pgc.l"
-{ if (yy_buffer == NULL)
-                               yyterminate();
-                         else
-                         {
-                               struct _yy_buffer *yb = yy_buffer;
-
-                               if (yyin != NULL)
-                                       fclose(yyin);
-
-                               yy_delete_buffer( YY_CURRENT_BUFFER );
-                               yy_switch_to_buffer(yy_buffer->buffer);
-
-                               yylineno = yy_buffer->lineno;
-
-                               free(input_filename);
-                               input_filename = yy_buffer->filename;
-
-                               yy_buffer = yy_buffer->next;
-                               free(yb);
-                               output_line_number();
-                         }
-                       }
-       YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 709 "pgc.l"
-ECHO;
-       YY_BREAK
-#line 1994 "lex.yy.c"
-
-       case YY_END_OF_BUFFER:
-               {
-               /* Amount of text matched not including the EOB char. */
-               int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
-
-               /* Undo the effects of YY_DO_BEFORE_ACTION. */
-               *yy_cp = yy_hold_char;
-               YY_RESTORE_YY_MORE_OFFSET
-
-               if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
-                       {
-                       /* We're scanning a new file or input source.  It's
-                        * possible that this happened because the user
-                        * just pointed yyin at a new source and called
-                        * yylex().  If so, then we have to assure
-                        * consistency between yy_current_buffer and our
-                        * globals.  Here is the right place to do so, because
-                        * this is the first action (other than possibly a
-                        * back-up) that will match for the new input source.
-                        */
-                       yy_n_chars = yy_current_buffer->yy_n_chars;
-                       yy_current_buffer->yy_input_file = yyin;
-                       yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
-                       }
-
-               /* Note that here we test for yy_c_buf_p "<=" to the position
-                * of the first EOB in the buffer, since yy_c_buf_p will
-                * already have been incremented past the NUL character
-                * (since all states make transitions on EOB to the
-                * end-of-buffer state).  Contrast this with the test
-                * in input().
-                */
-               if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
-                       { /* This was really a NUL. */
-                       yy_state_type yy_next_state;
-
-                       yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
-
-                       yy_current_state = yy_get_previous_state();
-
-                       /* Okay, we're now positioned to make the NUL
-                        * transition.  We couldn't have
-                        * yy_get_previous_state() go ahead and do it
-                        * for us because it doesn't know how to deal
-                        * with the possibility of jamming (and we don't
-                        * want to build jamming into it because then it
-                        * will run more slowly).
-                        */
-
-                       yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-                       yy_bp = yytext_ptr + YY_MORE_ADJ;
-
-                       if ( yy_next_state )
-                               {
-                               /* Consume the NUL. */
-                               yy_cp = ++yy_c_buf_p;
-                               yy_current_state = yy_next_state;
-                               goto yy_match;
-                               }
-
-                       else
-                               {
-                               yy_cp = yy_c_buf_p;
-                               goto yy_find_action;
-                               }
-                       }
-
-               else switch ( yy_get_next_buffer() )
-                       {
-                       case EOB_ACT_END_OF_FILE:
-                               {
-                               yy_did_buffer_switch_on_eof = 0;
-
-                               if ( yywrap() )
-                                       {
-                                       /* Note: because we've taken care in
-                                        * yy_get_next_buffer() to have set up
-                                        * yytext, we can now set up
-                                        * yy_c_buf_p so that if some total
-                                        * hoser (like flex itself) wants to
-                                        * call the scanner after we return the
-                                        * YY_NULL, it'll still work - another
-                                        * YY_NULL will get returned.
-                                        */
-                                       yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
-
-                                       yy_act = YY_STATE_EOF(YY_START);
-                                       goto do_action;
-                                       }
-
-                               else
-                                       {
-                                       if ( ! yy_did_buffer_switch_on_eof )
-                                               YY_NEW_FILE;
-                                       }
-                               break;
-                               }
-
-                       case EOB_ACT_CONTINUE_SCAN:
-                               yy_c_buf_p =
-                                       yytext_ptr + yy_amount_of_matched_text;
-
-                               yy_current_state = yy_get_previous_state();
-
-                               yy_cp = yy_c_buf_p;
-                               yy_bp = yytext_ptr + YY_MORE_ADJ;
-                               goto yy_match;
-
-                       case EOB_ACT_LAST_MATCH:
-                               yy_c_buf_p =
-                               &yy_current_buffer->yy_ch_buf[yy_n_chars];
-
-                               yy_current_state = yy_get_previous_state();
-
-                               yy_cp = yy_c_buf_p;
-                               yy_bp = yytext_ptr + YY_MORE_ADJ;
-                               goto yy_find_action;
-                       }
-               break;
-               }
-
-       default:
-               YY_FATAL_ERROR(
-                       "fatal flex scanner internal error--no action found" );
-       } /* end of action switch */
-               } /* end of scanning one token */
-       } /* end of yylex */
-
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *     EOB_ACT_LAST_MATCH -
- *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *     EOB_ACT_END_OF_FILE - end of file
- */
-
-static int yy_get_next_buffer()
-       {
-       register char *dest = yy_current_buffer->yy_ch_buf;
-       register char *source = yytext_ptr;
-       register int number_to_move, i;
-       int ret_val;
-
-       if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
-               YY_FATAL_ERROR(
-               "fatal flex scanner internal error--end of buffer missed" );
-
-       if ( yy_current_buffer->yy_fill_buffer == 0 )
-               { /* Don't try to fill the buffer, so this is an EOF. */
-               if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
-                       {
-                       /* We matched a single character, the EOB, so
-                        * treat this as a final EOF.
-                        */
-                       return EOB_ACT_END_OF_FILE;
-                       }
-
-               else
-                       {
-                       /* We matched some text prior to the EOB, first
-                        * process it.
-                        */
-                       return EOB_ACT_LAST_MATCH;
-                       }
-               }
-
-       /* Try to read more data. */
-
-       /* First move last chars to start of buffer. */
-       number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
-
-       for ( i = 0; i < number_to_move; ++i )
-               *(dest++) = *(source++);
-
-       if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-               /* don't do the read, it's not guaranteed to return an EOF,
-                * just force an EOF
-                */
-               yy_current_buffer->yy_n_chars = yy_n_chars = 0;
-
-       else
-               {
-               int num_to_read =
-                       yy_current_buffer->yy_buf_size - number_to_move - 1;
-
-               while ( num_to_read <= 0 )
-                       { /* Not enough room in the buffer - grow it. */
-#ifdef YY_USES_REJECT
-                       YY_FATAL_ERROR(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
-
-                       /* just a shorter name for the current buffer */
-                       YY_BUFFER_STATE b = yy_current_buffer;
-
-                       int yy_c_buf_p_offset =
-                               (int) (yy_c_buf_p - b->yy_ch_buf);
-
-                       if ( b->yy_is_our_buffer )
-                               {
-                               int new_size = b->yy_buf_size * 2;
-
-                               if ( new_size <= 0 )
-                                       b->yy_buf_size += b->yy_buf_size / 8;
-                               else
-                                       b->yy_buf_size *= 2;
-
-                               b->yy_ch_buf = (char *)
-                                       /* Include room in for 2 EOB chars. */
-                                       yy_flex_realloc( (void *) b->yy_ch_buf,
-                                                        b->yy_buf_size + 2 );
-                               }
-                       else
-                               /* Can't grow it, we don't own it. */
-                               b->yy_ch_buf = 0;
-
-                       if ( ! b->yy_ch_buf )
-                               YY_FATAL_ERROR(
-                               "fatal error - scanner input buffer overflow" );
-
-                       yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-                       num_to_read = yy_current_buffer->yy_buf_size -
-                                               number_to_move - 1;
-#endif
-                       }
-
-               if ( num_to_read > YY_READ_BUF_SIZE )
-                       num_to_read = YY_READ_BUF_SIZE;
-
-               /* Read in more data. */
-               YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
-                       yy_n_chars, num_to_read );
-
-               yy_current_buffer->yy_n_chars = yy_n_chars;
-               }
-
-       if ( yy_n_chars == 0 )
-               {
-               if ( number_to_move == YY_MORE_ADJ )
-                       {
-                       ret_val = EOB_ACT_END_OF_FILE;
-                       yyrestart( yyin );
-                       }
-
-               else
-                       {
-                       ret_val = EOB_ACT_LAST_MATCH;
-                       yy_current_buffer->yy_buffer_status =
-                               YY_BUFFER_EOF_PENDING;
-                       }
-               }
-
-       else
-               ret_val = EOB_ACT_CONTINUE_SCAN;
-
-       yy_n_chars += number_to_move;
-       yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
-       yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
-       yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
-
-       return ret_val;
-       }
-
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-static yy_state_type yy_get_previous_state()
-       {
-       register yy_state_type yy_current_state;
-       register char *yy_cp;
-
-       yy_current_state = yy_start;
-       yy_state_ptr = yy_state_buf;
-       *yy_state_ptr++ = yy_current_state;
-
-       for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
-               {
-               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-               while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-                       {
-                       yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 272 )
-                               yy_c = yy_meta[(unsigned int) yy_c];
-                       }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-               *yy_state_ptr++ = yy_current_state;
-               }
-
-       return yy_current_state;
-       }
-
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *     next_state = yy_try_NUL_trans( current_state );
- */
-
-#ifdef YY_USE_PROTOS
-static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
-#else
-static yy_state_type yy_try_NUL_trans( yy_current_state )
-yy_state_type yy_current_state;
-#endif
-       {
-       register int yy_is_jam;
-
-       register YY_CHAR yy_c = 1;
-       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-               {
-               yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 272 )
-                       yy_c = yy_meta[(unsigned int) yy_c];
-               }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 271);
-       if ( ! yy_is_jam )
-               *yy_state_ptr++ = yy_current_state;
-
-       return yy_is_jam ? 0 : yy_current_state;
-       }
-
-
-#ifndef YY_NO_UNPUT
-#ifdef YY_USE_PROTOS
-static void yyunput( int c, register char *yy_bp )
-#else
-static void yyunput( c, yy_bp )
-int c;
-register char *yy_bp;
-#endif
-       {
-       register char *yy_cp = yy_c_buf_p;
-
-       /* undo effects of setting up yytext */
-       *yy_cp = yy_hold_char;
-
-       if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
-               { /* need to shift things up to make room */
-               /* +2 for EOB chars. */
-               register int number_to_move = yy_n_chars + 2;
-               register char *dest = &yy_current_buffer->yy_ch_buf[
-                                       yy_current_buffer->yy_buf_size + 2];
-               register char *source =
-                               &yy_current_buffer->yy_ch_buf[number_to_move];
-
-               while ( source > yy_current_buffer->yy_ch_buf )
-                       *--dest = *--source;
-
-               yy_cp += (int) (dest - source);
-               yy_bp += (int) (dest - source);
-               yy_current_buffer->yy_n_chars =
-                       yy_n_chars = yy_current_buffer->yy_buf_size;
-
-               if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
-                       YY_FATAL_ERROR( "flex scanner push-back overflow" );
-               }
-
-       *--yy_cp = (char) c;
-
-       if ( c == '\n' )
-               --yylineno;
-
-       yytext_ptr = yy_bp;
-       yy_hold_char = *yy_cp;
-       yy_c_buf_p = yy_cp;
-       }
-#endif /* ifndef YY_NO_UNPUT */
-
-
-#ifdef __cplusplus
-static int yyinput()
-#else
-static int input()
-#endif
-       {
-       int c;
-
-       *yy_c_buf_p = yy_hold_char;
-
-       if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
-               {
-               /* yy_c_buf_p now points to the character we want to return.
-                * If this occurs *before* the EOB characters, then it's a
-                * valid NUL; if not, then we've hit the end of the buffer.
-                */
-               if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
-                       /* This was really a NUL. */
-                       *yy_c_buf_p = '\0';
-
-               else
-                       { /* need more input */
-                       int offset = yy_c_buf_p - yytext_ptr;
-                       ++yy_c_buf_p;
-
-                       switch ( yy_get_next_buffer() )
-                               {
-                               case EOB_ACT_LAST_MATCH:
-                                       /* This happens because yy_g_n_b()
-                                        * sees that we've accumulated a
-                                        * token and flags that we need to
-                                        * try matching the token before
-                                        * proceeding.  But for input(),
-                                        * there's no matching to consider.
-                                        * So convert the EOB_ACT_LAST_MATCH
-                                        * to EOB_ACT_END_OF_FILE.
-                                        */
-
-                                       /* Reset buffer status. */
-                                       yyrestart( yyin );
-
-                                       /* fall through */
-
-                               case EOB_ACT_END_OF_FILE:
-                                       {
-                                       if ( yywrap() )
-                                               return EOF;
-
-                                       if ( ! yy_did_buffer_switch_on_eof )
-                                               YY_NEW_FILE;
-#ifdef __cplusplus
-                                       return yyinput();
-#else
-                                       return input();
-#endif
-                                       }
-
-                               case EOB_ACT_CONTINUE_SCAN:
-                                       yy_c_buf_p = yytext_ptr + offset;
-                                       break;
-                               }
-                       }
-               }
-
-       c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
-       *yy_c_buf_p = '\0';     /* preserve yytext */
-       yy_hold_char = *++yy_c_buf_p;
-
-       if ( c == '\n' )
-               ++yylineno;
-
-       return c;
-       }
-
-
-#ifdef YY_USE_PROTOS
-void yyrestart( FILE *input_file )
-#else
-void yyrestart( input_file )
-FILE *input_file;
-#endif
-       {
-       if ( ! yy_current_buffer )
-               yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
-
-       yy_init_buffer( yy_current_buffer, input_file );
-       yy_load_buffer_state();
-       }
-
-
-#ifdef YY_USE_PROTOS
-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
-#else
-void yy_switch_to_buffer( new_buffer )
-YY_BUFFER_STATE new_buffer;
-#endif
-       {
-       if ( yy_current_buffer == new_buffer )
-               return;
-
-       if ( yy_current_buffer )
-               {
-               /* Flush out information for old buffer. */
-               *yy_c_buf_p = yy_hold_char;
-               yy_current_buffer->yy_buf_pos = yy_c_buf_p;
-               yy_current_buffer->yy_n_chars = yy_n_chars;
-               }
-
-       yy_current_buffer = new_buffer;
-       yy_load_buffer_state();
-
-       /* We don't actually know whether we did this switch during
-        * EOF (yywrap()) processing, but the only time this flag
-        * is looked at is after yywrap() is called, so it's safe
-        * to go ahead and always set it.
-        */
-       yy_did_buffer_switch_on_eof = 1;
-       }
-
-
-#ifdef YY_USE_PROTOS
-void yy_load_buffer_state( void )
-#else
-void yy_load_buffer_state()
-#endif
-       {
-       yy_n_chars = yy_current_buffer->yy_n_chars;
-       yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
-       yyin = yy_current_buffer->yy_input_file;
-       yy_hold_char = *yy_c_buf_p;
-       }
-
-
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
-#else
-YY_BUFFER_STATE yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
-       {
-       YY_BUFFER_STATE b;
-
-       b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-       b->yy_buf_size = size;
-
-       /* yy_ch_buf has to be 2 characters longer than the size given because
-        * we need to put in 2 end-of-buffer characters.
-        */
-       b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
-       if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-       b->yy_is_our_buffer = 1;
-
-       yy_init_buffer( b, file );
-
-       return b;
-       }
-
-
-#ifdef YY_USE_PROTOS
-void yy_delete_buffer( YY_BUFFER_STATE b )
-#else
-void yy_delete_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-       {
-       if ( ! b )
-               return;
-
-       if ( b == yy_current_buffer )
-               yy_current_buffer = (YY_BUFFER_STATE) 0;
-
-       if ( b->yy_is_our_buffer )
-               yy_flex_free( (void *) b->yy_ch_buf );
-
-       yy_flex_free( (void *) b );
-       }
-
-
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
-
-#ifdef YY_USE_PROTOS
-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
-#else
-void yy_init_buffer( b, file )
-YY_BUFFER_STATE b;
-FILE *file;
-#endif
-
-
-       {
-       yy_flush_buffer( b );
-
-       b->yy_input_file = file;
-       b->yy_fill_buffer = 1;
-
-#if YY_ALWAYS_INTERACTIVE
-       b->yy_is_interactive = 1;
-#else
-#if YY_NEVER_INTERACTIVE
-       b->yy_is_interactive = 0;
-#else
-       b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-#endif
-#endif
-       }
-
-
-#ifdef YY_USE_PROTOS
-void yy_flush_buffer( YY_BUFFER_STATE b )
-#else
-void yy_flush_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-
-       {
-       if ( ! b )
-               return;
-
-       b->yy_n_chars = 0;
-
-       /* We always need two end-of-buffer characters.  The first causes
-        * a transition to the end-of-buffer state.  The second causes
-        * a jam in that state.
-        */
-       b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-       b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-       b->yy_buf_pos = &b->yy_ch_buf[0];
-
-       b->yy_at_bol = 1;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       if ( b == yy_current_buffer )
-               yy_load_buffer_state();
-       }
-
-
-#ifndef YY_NO_SCAN_BUFFER
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
-#else
-YY_BUFFER_STATE yy_scan_buffer( base, size )
-char *base;
-yy_size_t size;
-#endif
-       {
-       YY_BUFFER_STATE b;
-
-       if ( size < 2 ||
-            base[size-2] != YY_END_OF_BUFFER_CHAR ||
-            base[size-1] != YY_END_OF_BUFFER_CHAR )
-               /* They forgot to leave room for the EOB's. */
-               return 0;
-
-       b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
-       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
-       b->yy_buf_pos = b->yy_ch_buf = base;
-       b->yy_is_our_buffer = 0;
-       b->yy_input_file = 0;
-       b->yy_n_chars = b->yy_buf_size;
-       b->yy_is_interactive = 0;
-       b->yy_at_bol = 1;
-       b->yy_fill_buffer = 0;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       yy_switch_to_buffer( b );
-
-       return b;
-       }
-#endif
-
-
-#ifndef YY_NO_SCAN_STRING
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
-#else
-YY_BUFFER_STATE yy_scan_string( yy_str )
-yyconst char *yy_str;
-#endif
-       {
-       int len;
-       for ( len = 0; yy_str[len]; ++len )
-               ;
-
-       return yy_scan_bytes( yy_str, len );
-       }
-#endif
-
-
-#ifndef YY_NO_SCAN_BYTES
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
-#else
-YY_BUFFER_STATE yy_scan_bytes( bytes, len )
-yyconst char *bytes;
-int len;
-#endif
-       {
-       YY_BUFFER_STATE b;
-       char *buf;
-       yy_size_t n;
-       int i;
-
-       /* Get memory for full buffer, including space for trailing EOB's. */
-       n = len + 2;
-       buf = (char *) yy_flex_alloc( n );
-       if ( ! buf )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
-       for ( i = 0; i < len; ++i )
-               buf[i] = bytes[i];
-
-       buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
-
-       b = yy_scan_buffer( buf, n );
-       if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
-       /* It's okay to grow etc. this buffer, and we should throw it
-        * away when we're done.
-        */
-       b->yy_is_our_buffer = 1;
-
-       return b;
-       }
-#endif
-
-
-#ifndef YY_NO_PUSH_STATE
-#ifdef YY_USE_PROTOS
-static void yy_push_state( int new_state )
-#else
-static void yy_push_state( new_state )
-int new_state;
-#endif
-       {
-       if ( yy_start_stack_ptr >= yy_start_stack_depth )
-               {
-               yy_size_t new_size;
-
-               yy_start_stack_depth += YY_START_STACK_INCR;
-               new_size = yy_start_stack_depth * sizeof( int );
-
-               if ( ! yy_start_stack )
-                       yy_start_stack = (int *) yy_flex_alloc( new_size );
-
-               else
-                       yy_start_stack = (int *) yy_flex_realloc(
-                                       (void *) yy_start_stack, new_size );
-
-               if ( ! yy_start_stack )
-                       YY_FATAL_ERROR(
-                       "out of memory expanding start-condition stack" );
-               }
-
-       yy_start_stack[yy_start_stack_ptr++] = YY_START;
-
-       BEGIN(new_state);
-       }
-#endif
-
-
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state()
-       {
-       if ( --yy_start_stack_ptr < 0 )
-               YY_FATAL_ERROR( "start-condition stack underflow" );
-
-       BEGIN(yy_start_stack[yy_start_stack_ptr]);
-       }
-#endif
-
-
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state()
-       {
-       return yy_start_stack[yy_start_stack_ptr - 1];
-       }
-#endif
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-#ifdef YY_USE_PROTOS
-static void yy_fatal_error( yyconst char msg[] )
-#else
-static void yy_fatal_error( msg )
-char msg[];
-#endif
-       {
-       (void) fprintf( stderr, "%s\n", msg );
-       exit( YY_EXIT_FAILURE );
-       }
-
-
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up yytext. */ \
-               yytext[yyleng] = yy_hold_char; \
-               yy_c_buf_p = yytext + n; \
-               yy_hold_char = *yy_c_buf_p; \
-               *yy_c_buf_p = '\0'; \
-               yyleng = n; \
-               } \
-       while ( 0 )
-
-
-/* Internal utility routines. */
-
-#ifndef yytext_ptr
-#ifdef YY_USE_PROTOS
-static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
-#else
-static void yy_flex_strncpy( s1, s2, n )
-char *s1;
-yyconst char *s2;
-int n;
-#endif
-       {
-       register int i;
-       for ( i = 0; i < n; ++i )
-               s1[i] = s2[i];
-       }
-#endif
-
-#ifdef YY_NEED_STRLEN
-#ifdef YY_USE_PROTOS
-static int yy_flex_strlen( yyconst char *s )
-#else
-static int yy_flex_strlen( s )
-yyconst char *s;
-#endif
-       {
-       register int n;
-       for ( n = 0; s[n]; ++n )
-               ;
-
-       return n;
-       }
-#endif
-
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_alloc( yy_size_t size )
-#else
-static void *yy_flex_alloc( size )
-yy_size_t size;
-#endif
-       {
-       return (void *) malloc( size );
-       }
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_realloc( void *ptr, yy_size_t size )
-#else
-static void *yy_flex_realloc( ptr, size )
-void *ptr;
-yy_size_t size;
-#endif
-       {
-       /* The cast to (char *) in the following accommodates both
-        * implementations that use char* generic pointers, and those
-        * that use void* generic pointers.  It works with the latter
-        * because both ANSI C and C++ allow castless assignment from
-        * any pointer type to void*, and deal with argument conversions
-        * as though doing an assignment.
-        */
-       return (void *) realloc( (char *) ptr, size );
-       }
-
-#ifdef YY_USE_PROTOS
-static void yy_flex_free( void *ptr )
-#else
-static void yy_flex_free( ptr )
-void *ptr;
-#endif
-       {
-       free( ptr );
-       }
-
-#if YY_MAIN
-int main()
-       {
-       yylex();
-       return 0;
-       }
-#endif
-#line 709 "pgc.l"
-
-void
-lex_init(void)
-{
-    braces_open = 0;
-    BEGIN C;
-}
-
-int yywrap(void) 
-{ 
-    return 1;
-}
diff --git a/src/interfaces/ecpg/preproc/preproc.c b/src/interfaces/ecpg/preproc/preproc.c
deleted file mode 100644 (file)
index 5b56ae8..0000000
+++ /dev/null
@@ -1,16988 +0,0 @@
-
-/*  A Bison parser, made from preproc.y
- by  GNU Bison version 1.25
-  */
-
-#define YYBISON 1  /* Identify Bison output.  */
-
-#define        SQL_AT  258
-#define        SQL_AUTOCOMMIT  259
-#define        SQL_BOOL        260
-#define        SQL_BREAK       261
-#define        SQL_CALL        262
-#define        SQL_CONNECT     263
-#define        SQL_CONNECTION  264
-#define        SQL_CONTINUE    265
-#define        SQL_DEALLOCATE  266
-#define        SQL_DISCONNECT  267
-#define        SQL_ENUM        268
-#define        SQL_FOUND       269
-#define        SQL_FREE        270
-#define        SQL_GO  271
-#define        SQL_GOTO        272
-#define        SQL_IDENTIFIED  273
-#define        SQL_IMMEDIATE   274
-#define        SQL_INDICATOR   275
-#define        SQL_INT 276
-#define        SQL_LONG        277
-#define        SQL_OFF 278
-#define        SQL_OPEN        279
-#define        SQL_PREPARE     280
-#define        SQL_RELEASE     281
-#define        SQL_REFERENCE   282
-#define        SQL_SECTION     283
-#define        SQL_SHORT       284
-#define        SQL_SIGNED      285
-#define        SQL_SQLERROR    286
-#define        SQL_SQLPRINT    287
-#define        SQL_SQLWARNING  288
-#define        SQL_START       289
-#define        SQL_STOP        290
-#define        SQL_STRUCT      291
-#define        SQL_UNSIGNED    292
-#define        SQL_VAR 293
-#define        SQL_WHENEVER    294
-#define        S_ANYTHING      295
-#define        S_AUTO  296
-#define        S_BOOL  297
-#define        S_CHAR  298
-#define        S_CONST 299
-#define        S_DOUBLE        300
-#define        S_ENUM  301
-#define        S_EXTERN        302
-#define        S_FLOAT 303
-#define        S_INT   304
-#define        S       305
-#define        S_LONG  306
-#define        S_REGISTER      307
-#define        S_SHORT 308
-#define        S_SIGNED        309
-#define        S_STATIC        310
-#define        S_STRUCT        311
-#define        S_UNION 312
-#define        S_UNSIGNED      313
-#define        S_VARCHAR       314
-#define        TYPECAST        315
-#define        ABSOLUTE        316
-#define        ACTION  317
-#define        ADD     318
-#define        ALL     319
-#define        ALTER   320
-#define        AND     321
-#define        ANY     322
-#define        AS      323
-#define        ASC     324
-#define        BEGIN_TRANS     325
-#define        BETWEEN 326
-#define        BOTH    327
-#define        BY      328
-#define        CASCADE 329
-#define        CASE    330
-#define        CAST    331
-#define        CHAR    332
-#define        CHARACTER       333
-#define        CHECK   334
-#define        CLOSE   335
-#define        COALESCE        336
-#define        COLLATE 337
-#define        COLUMN  338
-#define        COMMIT  339
-#define        CONSTRAINT      340
-#define        CREATE  341
-#define        CROSS   342
-#define        CURRENT 343
-#define        CURRENT_DATE    344
-#define        CURRENT_TIME    345
-#define        CURRENT_TIMESTAMP       346
-#define        CURRENT_USER    347
-#define        CURSOR  348
-#define        DAY_P   349
-#define        DECIMAL 350
-#define        DECLARE 351
-#define        DEFAULT 352
-#define        DELETE  353
-#define        DESC    354
-#define        DISTINCT        355
-#define        DOUBLE  356
-#define        DROP    357
-#define        ELSE    358
-#define        END_TRANS       359
-#define        EXCEPT  360
-#define        EXECUTE 361
-#define        EXISTS  362
-#define        EXTRACT 363
-#define        FALSE_P 364
-#define        FETCH   365
-#define        FLOAT   366
-#define        FOR     367
-#define        FOREIGN 368
-#define        FROM    369
-#define        FULL    370
-#define        GLOBAL  371
-#define        GRANT   372
-#define        GROUP   373
-#define        HAVING  374
-#define        HOUR_P  375
-#define        IN      376
-#define        INNER_P 377
-#define        INSENSITIVE     378
-#define        INSERT  379
-#define        INTERSECT       380
-#define        INTERVAL        381
-#define        INTO    382
-#define        IS      383
-#define        ISOLATION       384
-#define        JOIN    385
-#define        KEY     386
-#define        LANGUAGE        387
-#define        LEADING 388
-#define        LEFT    389
-#define        LEVEL   390
-#define        LIKE    391
-#define        LOCAL   392
-#define        MATCH   393
-#define        MINUTE_P        394
-#define        MONTH_P 395
-#define        NAMES   396
-#define        NATIONAL        397
-#define        NATURAL 398
-#define        NCHAR   399
-#define        NEXT    400
-#define        NO      401
-#define        NOT     402
-#define        NULLIF  403
-#define        NULL_P  404
-#define        NUMERIC 405
-#define        OF      406
-#define        ON      407
-#define        ONLY    408
-#define        OPTION  409
-#define        OR      410
-#define        ORDER   411
-#define        OUTER_P 412
-#define        PARTIAL 413
-#define        POSITION        414
-#define        PRECISION       415
-#define        PRIMARY 416
-#define        PRIOR   417
-#define        PRIVILEGES      418
-#define        PROCEDURE       419
-#define        PUBLIC  420
-#define        READ    421
-#define        REFERENCES      422
-#define        RELATIVE        423
-#define        REVOKE  424
-#define        RIGHT   425
-#define        ROLLBACK        426
-#define        SCROLL  427
-#define        SECOND_P        428
-#define        SELECT  429
-#define        SET     430
-#define        SUBSTRING       431
-#define        TABLE   432
-#define        TEMP    433
-#define        TEMPORARY       434
-#define        THEN    435
-#define        TIME    436
-#define        TIMESTAMP       437
-#define        TIMEZONE_HOUR   438
-#define        TIMEZONE_MINUTE 439
-#define        TO      440
-#define        TRAILING        441
-#define        TRANSACTION     442
-#define        TRIM    443
-#define        TRUE_P  444
-#define        UNION   445
-#define        UNIQUE  446
-#define        UPDATE  447
-#define        USER    448
-#define        USING   449
-#define        VALUES  450
-#define        VARCHAR 451
-#define        VARYING 452
-#define        VIEW    453
-#define        WHEN    454
-#define        WHERE   455
-#define        WITH    456
-#define        WORK    457
-#define        YEAR_P  458
-#define        ZONE    459
-#define        TRIGGER 460
-#define        COMMITTED       461
-#define        SERIALIZABLE    462
-#define        TYPE_P  463
-#define        ABORT_TRANS     464
-#define        ACCESS  465
-#define        AFTER   466
-#define        AGGREGATE       467
-#define        ANALYZE 468
-#define        BACKWARD        469
-#define        BEFORE  470
-#define        BINARY  471
-#define        CACHE   472
-#define        CLUSTER 473
-#define        COPY    474
-#define        CREATEDB        475
-#define        CREATEUSER      476
-#define        CYCLE   477
-#define        DATABASE        478
-#define        DELIMITERS      479
-#define        DO      480
-#define        EACH    481
-#define        ENCODING        482
-#define        EXCLUSIVE       483
-#define        EXPLAIN 484
-#define        EXTEND  485
-#define        FORWARD 486
-#define        FUNCTION        487
-#define        HANDLER 488
-#define        INCREMENT       489
-#define        INDEX   490
-#define        INHERITS        491
-#define        INSTEAD 492
-#define        ISNULL  493
-#define        LANCOMPILER     494
-#define        LIMIT   495
-#define        LISTEN  496
-#define        UNLISTEN        497
-#define        LOAD    498
-#define        LOCATION        499
-#define        LOCK_P  500
-#define        MAXVALUE        501
-#define        MINVALUE        502
-#define        MODE    503
-#define        MOVE    504
-#define        NEW     505
-#define        NOCREATEDB      506
-#define        NOCREATEUSER    507
-#define        NONE    508
-#define        NOTHING 509
-#define        NOTIFY  510
-#define        NOTNULL 511
-#define        OFFSET  512
-#define        OIDS    513
-#define        OPERATOR        514
-#define        PASSWORD        515
-#define        PROCEDURAL      516
-#define        RENAME  517
-#define        RESET   518
-#define        RETURNS 519
-#define        ROW     520
-#define        RULE    521
-#define        SERIAL  522
-#define        SEQUENCE        523
-#define        SETOF   524
-#define        SHARE   525
-#define        SHOW    526
-#define        START   527
-#define        STATEMENT       528
-#define        STDIN   529
-#define        STDOUT  530
-#define        TRUSTED 531
-#define        UNTIL   532
-#define        VACUUM  533
-#define        VALID   534
-#define        VERBOSE 535
-#define        VERSION 536
-#define        IDENT   537
-#define        SCONST  538
-#define        Op      539
-#define        CSTRING 540
-#define        CVARIABLE       541
-#define        CPP_LINE        542
-#define        ICONST  543
-#define        PARAM   544
-#define        FCONST  545
-#define        OP      546
-#define        UMINUS  547
-
-#line 2 "preproc.y"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "catalog/catname.h"
-#include "utils/numeric.h"
-
-#include "extern.h"
-
-#ifdef MULTIBYTE
-#include "mb/pg_wchar.h"
-#endif
-
-#define STRUCT_DEPTH 128
-
-/*
- * Variables containing simple states.
- */
-int    struct_level = 0;
-char   errortext[128];
-static char    *connection = NULL;
-static int      QueryIsRule = 0, ForUpdateNotAllowed = 0;
-static struct this_type actual_type[STRUCT_DEPTH];
-static char     *actual_storage[STRUCT_DEPTH];
-
-/* temporarily store struct members while creating the data structure */
-struct ECPGstruct_member *struct_member_list[STRUCT_DEPTH] = { NULL };
-
-struct ECPGtype ecpg_no_indicator = {ECPGt_NO_INDICATOR, 0L, {NULL}};
-struct variable no_indicator = {"no_indicator", &ecpg_no_indicator, 0, NULL};
-
-struct ECPGtype ecpg_query = {ECPGt_char_variable, 0L, {NULL}};
-
-/*
- * Handle the filename and line numbering.
- */
-char * input_filename = NULL;
-
-void
-output_line_number()
-{
-    if (input_filename)
-       fprintf(yyout, "\n#line %d \"%s\"\n", yylineno + 1, input_filename);
-}
-
-static void
-output_simple_statement(char *cmd)
-{
-       fputs(cmd, yyout);
-       output_line_number();
-        free(cmd);
-}
-
-/*
- * store the whenever action here
- */
-static struct when when_error, when_nf, when_warn;
-
-static void
-print_action(struct when *w)
-{
-       switch (w->code)
-       {
-               case W_SQLPRINT: fprintf(yyout, "sqlprint();");
-                                 break;
-               case W_GOTO:     fprintf(yyout, "goto %s;", w->command);
-                                break;
-               case W_DO:       fprintf(yyout, "%s;", w->command);
-                                break;
-               case W_STOP:     fprintf(yyout, "exit (1);");
-                                break;
-               case W_BREAK:    fprintf(yyout, "break;");
-                                break;
-               default:         fprintf(yyout, "{/* %d not implemented yet */}", w->code);
-                                break;
-       }
-}
-
-static void
-whenever_action(int mode)
-{
-       if ((mode&1) ==  1 && when_nf.code != W_NOTHING)
-       {
-               output_line_number();
-               fprintf(yyout, "\nif (sqlca.sqlcode == ECPG_NOT_FOUND) ");
-               print_action(&when_nf);
-       }
-       if (when_warn.code != W_NOTHING)
-        {
-               output_line_number();
-                fprintf(yyout, "\nif (sqlca.sqlwarn[0] == 'W') ");
-               print_action(&when_warn);
-        }
-       if (when_error.code != W_NOTHING)
-        {
-               output_line_number();
-                fprintf(yyout, "\nif (sqlca.sqlcode < 0) ");
-               print_action(&when_error);
-        }
-       if ((mode&2) == 2)
-               fputc('}', yyout);
-       output_line_number();
-}
-
-/*
- * Handling of variables.
- */
-
-/*
- * brace level counter
- */
-int braces_open;
-
-static struct variable * allvariables = NULL;
-
-static struct variable *
-new_variable(const char * name, struct ECPGtype * type)
-{
-    struct variable * p = (struct variable*) mm_alloc(sizeof(struct variable));
-
-    p->name = mm_strdup(name);
-    p->type = type;
-    p->brace_level = braces_open;
-
-    p->next = allvariables;
-    allvariables = p;
-
-    return(p);
-}
-
-static struct variable * find_variable(char * name);
-
-static struct variable *
-find_struct_member(char *name, char *str, struct ECPGstruct_member *members)
-{
-    char *next = strchr(++str, '.'), c = '\0';
-
-    if (next != NULL)
-    {
-       c = *next;
-       *next = '\0';
-    }
-
-    for (; members; members = members->next)
-    {
-        if (strcmp(members->name, str) == 0)
-       {
-               if (c == '\0')
-               {
-                       /* found the end */
-                       switch (members->typ->typ)
-                       {
-                          case ECPGt_array:
-                               return(new_variable(name, ECPGmake_array_type(members->typ->u.element, members->typ->size)));
-                          case ECPGt_struct:
-                          case ECPGt_union:
-                               return(new_variable(name, ECPGmake_struct_type(members->typ->u.members, members->typ->typ)));
-                          default:
-                               return(new_variable(name, ECPGmake_simple_type(members->typ->typ, members->typ->size)));
-                       }
-               }
-               else
-               {
-                       *next = c;
-                       if (c == '-')
-                       {
-                               next++;
-                               return(find_struct_member(name, next, members->typ->u.element->u.members));
-                       }
-                       else return(find_struct_member(name, next, members->typ->u.members));
-               }
-       }
-    }
-
-    return(NULL);
-}
-
-static struct variable *
-find_struct(char * name, char *next)
-{
-    struct variable * p;
-    char c = *next;
-
-    /* first get the mother structure entry */
-    *next = '\0';
-    p = find_variable(name);
-
-    if (c == '-')
-    {
-       if (p->type->typ != ECPGt_struct && p->type->typ != ECPGt_union)
-        {
-                sprintf(errortext, "variable %s is not a pointer", name);
-                yyerror (errortext);
-        }
-
-       if (p->type->u.element->typ  != ECPGt_struct && p->type->u.element->typ != ECPGt_union)
-        {
-                sprintf(errortext, "variable %s is not a pointer to a structure or a union", name);
-                yyerror (errortext);
-        }
-
-       /* restore the name, we will need it later on */
-       *next = c;
-       next++;
-
-       return find_struct_member(name, next, p->type->u.element->u.members);
-    }
-    else
-    {
-       if (p->type->typ != ECPGt_struct && p->type->typ != ECPGt_union)
-       {
-               sprintf(errortext, "variable %s is neither a structure nor a union", name);
-               yyerror (errortext);
-       }
-
-       /* restore the name, we will need it later on */
-       *next = c;
-
-       return find_struct_member(name, next, p->type->u.members);
-    }
-}
-
-static struct variable *
-find_simple(char * name)
-{
-    struct variable * p;
-
-    for (p = allvariables; p; p = p->next)
-    {
-        if (strcmp(p->name, name) == 0)
-           return p;
-    }
-
-    return(NULL);
-}
-
-/* Note that this function will end the program in case of an unknown */
-/* variable */
-static struct variable *
-find_variable(char * name)
-{
-    char * next;
-    struct variable * p;
-
-    if ((next = strchr(name, '.')) != NULL)
-       p = find_struct(name, next);
-    else if ((next = strstr(name, "->")) != NULL)
-       p = find_struct(name, next);
-    else
-       p = find_simple(name);
-
-    if (p == NULL)
-    {
-       sprintf(errortext, "The variable %s is not declared", name);
-       yyerror(errortext);
-    }
-
-    return(p);
-}
-
-static void
-remove_variables(int brace_level)
-{
-    struct variable * p, *prev;
-
-    for (p = prev = allvariables; p; p = p ? p->next : NULL)
-    {
-       if (p->brace_level >= brace_level)
-       {
-           /* remove it */
-           if (p == allvariables)
-               prev = allvariables = p->next;
-           else
-               prev->next = p->next;
-
-           ECPGfree_type(p->type);
-           free(p->name);
-           free(p);
-           p = prev;
-       }
-       else
-           prev = p;
-    }
-}
-
-
-/*
- * Here are the variables that need to be handled on every request.
- * These are of two kinds: input and output.
- * I will make two lists for them.
- */
-
-struct arguments * argsinsert = NULL;
-struct arguments * argsresult = NULL;
-
-static void
-reset_variables(void)
-{
-    argsinsert = NULL;
-    argsresult = NULL;
-}
-
-
-/* Add a variable to a request. */
-static void
-add_variable(struct arguments ** list, struct variable * var, struct variable * ind)
-{
-    struct arguments * p = (struct arguments *)mm_alloc(sizeof(struct arguments));
-    p->variable = var;
-    p->indicator = ind;
-    p->next = *list;
-    *list = p;
-}
-
-
-/* Dump out a list of all the variable on this list.
-   This is a recursive function that works from the end of the list and
-   deletes the list as we go on.
- */
-static void
-dump_variables(struct arguments * list, int mode)
-{
-    if (list == NULL)
-    {
-        return;
-    }
-
-    /* The list is build up from the beginning so lets first dump the
-       end of the list:
-     */
-
-    dump_variables(list->next, mode);
-
-    /* Then the current element and its indicator */
-    ECPGdump_a_type(yyout, list->variable->name, list->variable->type,
-       (list->indicator->type->typ != ECPGt_NO_INDICATOR) ? list->indicator->name : NULL,
-       (list->indicator->type->typ != ECPGt_NO_INDICATOR) ? list->indicator->type : NULL, NULL, NULL);
-
-    /* Then release the list element. */
-    if (mode != 0)
-       free(list);
-}
-
-static void
-check_indicator(struct ECPGtype *var)
-{
-       /* make sure this is a valid indicator variable */
-       switch (var->typ)
-       {
-               struct ECPGstruct_member *p;
-
-               case ECPGt_short:
-               case ECPGt_int:
-               case ECPGt_long:
-               case ECPGt_unsigned_short:
-               case ECPGt_unsigned_int:
-               case ECPGt_unsigned_long:
-                       break;
-
-               case ECPGt_struct:
-               case ECPGt_union:
-                       for (p = var->u.members; p; p = p->next)
-                               check_indicator(p->typ);
-                       break;
-
-               case ECPGt_array:
-                       check_indicator(var->u.element);
-                       break;
-               default: 
-                       yyerror ("indicator variable must be integer type");
-                       break;
-       }
-}
-
-static char *
-make1_str(const char *str)
-{
-        char * res_str = (char *)mm_alloc(strlen(str) + 1);
-
-       strcpy(res_str, str);
-       return res_str;
-}
-
-static char *
-make2_str(char *str1, char *str2)
-{ 
-       char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + 1);
-
-       strcpy(res_str, str1);
-       strcat(res_str, str2);
-       free(str1);
-       free(str2);
-       return(res_str);
-}
-
-static char *
-cat2_str(char *str1, char *str2)
-{ 
-       char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + 2);
-
-       strcpy(res_str, str1);
-       strcat(res_str, " ");
-       strcat(res_str, str2);
-       free(str1);
-       free(str2);
-       return(res_str);
-}
-
-static char *
-make3_str(char *str1, char *str2, char * str3)
-{    
-        char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + 1);
-     
-        strcpy(res_str, str1);
-        strcat(res_str, str2);
-       strcat(res_str, str3);
-       free(str1);
-       free(str2);
-       free(str3);
-        return(res_str);
-}    
-
-static char *
-cat3_str(char *str1, char *str2, char * str3)
-{    
-        char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + 3);
-     
-        strcpy(res_str, str1);
-       strcat(res_str, " ");
-        strcat(res_str, str2);
-       strcat(res_str, " ");
-       strcat(res_str, str3);
-       free(str1);
-       free(str2);
-       free(str3);
-        return(res_str);
-}    
-
-static char *
-make4_str(char *str1, char *str2, char *str3, char *str4)
-{    
-        char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + 1);
-     
-        strcpy(res_str, str1);
-        strcat(res_str, str2);
-       strcat(res_str, str3);
-       strcat(res_str, str4);
-       free(str1);
-       free(str2);
-       free(str3);
-       free(str4);
-        return(res_str);
-}
-
-static char *
-cat4_str(char *str1, char *str2, char *str3, char *str4)
-{    
-        char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + 4);
-     
-        strcpy(res_str, str1);
-       strcat(res_str, " ");
-        strcat(res_str, str2);
-       strcat(res_str, " ");
-       strcat(res_str, str3);
-       strcat(res_str, " ");
-       strcat(res_str, str4);
-       free(str1);
-       free(str2);
-       free(str3);
-       free(str4);
-        return(res_str);
-}
-
-static char *
-make5_str(char *str1, char *str2, char *str3, char *str4, char *str5)
-{    
-        char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + strlen(str5) + 1);
-     
-        strcpy(res_str, str1);
-        strcat(res_str, str2);
-       strcat(res_str, str3);
-       strcat(res_str, str4);
-       strcat(res_str, str5);
-       free(str1);
-       free(str2);
-       free(str3);
-       free(str4);
-       free(str5);
-        return(res_str);
-}    
-
-static char *
-cat5_str(char *str1, char *str2, char *str3, char *str4, char *str5)
-{    
-        char * res_str  = (char *)mm_alloc(strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + strlen(str5) + 5);
-     
-        strcpy(res_str, str1);
-       strcat(res_str, " ");
-        strcat(res_str, str2);
-       strcat(res_str, " ");
-       strcat(res_str, str3);
-       strcat(res_str, " ");
-       strcat(res_str, str4);
-       strcat(res_str, " ");
-       strcat(res_str, str5);
-       free(str1);
-       free(str2);
-       free(str3);
-       free(str4);
-       free(str5);
-        return(res_str);
-}    
-
-static char *
-make_name(void)
-{
-       char * name = (char *)mm_alloc(yyleng + 1);
-
-       strncpy(name, yytext, yyleng);
-       name[yyleng] = '\0';
-       return(name);
-}
-
-static void
-output_statement(char * stmt, int mode)
-{
-       int i, j=strlen(stmt);
-
-       fprintf(yyout, "{ ECPGdo(__LINE__, %s, \"", connection ? connection : "NULL");
-
-       /* do this char by char as we have to filter '\"' */
-       for (i = 0;i < j; i++)
-               if (stmt[i] != '\"')
-                       fputc(stmt[i], yyout);
-       fputs("\", ", yyout);
-
-       /* dump variables to C file*/
-       dump_variables(argsinsert, 1);
-       fputs("ECPGt_EOIT, ", yyout);
-       dump_variables(argsresult, 1);
-       fputs("ECPGt_EORT);", yyout);
-       mode |= 2;
-       whenever_action(mode);
-       free(stmt);
-       if (connection != NULL)
-               free(connection);
-}
-
-static struct typedefs *
-get_typedef(char *name)
-{
-       struct typedefs *this;
-
-       for (this = types; this && strcmp(this->name, name); this = this->next);
-       if (!this)
-       {
-               sprintf(errortext, "invalid datatype '%s'", name);
-               yyerror(errortext);
-       }
-
-       return(this);
-}
-
-static void
-adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dimension, int type_index, bool pointer)
-{
-       if (type_index >= 0) 
-       {
-               if (*length >= 0)
-                       yyerror("No multi-dimensional array support");
-
-               *length = type_index;
-       }
-                      
-       if (type_dimension >= 0)
-       {
-               if (*dimension >= 0 && *length >= 0)
-                       yyerror("No multi-dimensional array support");
-
-               if (*dimension >= 0)
-                       *length = *dimension;
-
-               *dimension = type_dimension;
-       }
-
-       if (*length >= 0 && *dimension >= 0 && pointer)
-               yyerror("No multi-dimensional array support");
-
-       switch (type_enum)
-       {
-          case ECPGt_struct:
-          case ECPGt_union:
-               /* pointer has to get dimension 0 */
-                if (pointer)
-               {
-                   *length = *dimension;
-                    *dimension = 0;
-               }
-
-                if (*length >= 0)
-                   yyerror("No multi-dimensional array support for structures");
-
-                break;
-           case ECPGt_varchar:
-               /* pointer has to get dimension 0 */
-                if (pointer)
-                    *dimension = 0;
-
-                /* one index is the string length */
-                if (*length < 0)
-                {
-                   *length = *dimension;
-                   *dimension = -1;
-                }
-
-                break;
-           case ECPGt_char:
-           case ECPGt_unsigned_char:
-               /* pointer has to get length 0 */
-                if (pointer)
-                    *length=0;
-
-                /* one index is the string length */
-                if (*length < 0)
-                {
-                   *length = (*dimension < 0) ? 1 : *dimension;
-                   *dimension = -1;
-                }
-
-                break;
-           default:
-               /* a pointer has dimension = 0 */
-                if (pointer) {
-                    *length = *dimension;
-                   *dimension = 0;
-               }
-
-                if (*length >= 0)
-                   yyerror("No multi-dimensional array support for simple data types");
-
-                break;
-       }
-}
-
-
-#line 648 "preproc.y"
-typedef union {
-       double                  dval;
-        int                     ival;
-       char *                  str;
-       struct when             action;
-       struct index            index;
-       int                     tagname;
-       struct this_type        type;
-       enum ECPGttype          type_enum;
-} YYSTYPE;
-#include <stdio.h>
-
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
-#endif
-
-
-
-#define        YYFINAL         2494
-#define        YYFLAG          -32768
-#define        YYNTBASE        313
-
-#define YYTRANSLATE(x) ((unsigned)(x) <= 548 ? yytranslate[x] : 683)
-
-static const short yytranslate[] = {     0,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,   299,     2,     2,   308,
-   309,   297,   295,   307,   296,   304,   298,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,   301,   302,   293,
-   292,   294,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-   305,     2,   306,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,   310,   300,   311,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
-     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-   106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-   116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-   126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-   146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-   186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-   206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-   216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
-   226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
-   236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
-   246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-   266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
-   276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
-   286,   287,   288,   289,   290,   291,   303,   312
-};
-
-#if YYDEBUG != 0
-static const short yyprhs[] = {     0,
-     0,     2,     3,     6,    11,    15,    17,    19,    21,    23,
-    25,    28,    30,    32,    34,    36,    38,    40,    42,    44,
-    46,    48,    50,    52,    54,    56,    58,    60,    62,    64,
-    66,    68,    70,    72,    74,    76,    78,    80,    82,    84,
-    86,    88,    90,    92,    94,    96,    98,   100,   102,   104,
-   106,   108,   110,   112,   114,   116,   118,   120,   122,   124,
-   126,   128,   130,   132,   134,   136,   138,   140,   142,   151,
-   160,   164,   168,   169,   171,   173,   174,   176,   178,   179,
-   183,   185,   189,   190,   194,   195,   200,   205,   210,   216,
-   220,   223,   225,   227,   229,   231,   233,   235,   238,   242,
-   247,   250,   254,   259,   265,   269,   274,   278,   285,   291,
-   294,   297,   305,   307,   309,   311,   313,   315,   317,   318,
-   321,   322,   326,   327,   336,   338,   341,   343,   345,   346,
-   348,   350,   354,   356,   357,   359,   361,   365,   369,   371,
-   372,   375,   377,   380,   381,   385,   387,   392,   395,   398,
-   401,   403,   406,   412,   416,   418,   420,   423,   427,   431,
-   435,   439,   443,   447,   451,   455,   458,   461,   465,   472,
-   476,   480,   485,   489,   492,   495,   497,   499,   504,   506,
-   511,   513,   515,   519,   521,   526,   531,   537,   548,   552,
-   554,   556,   558,   560,   563,   567,   571,   575,   579,   583,
-   587,   591,   595,   598,   601,   605,   612,   616,   620,   625,
-   629,   633,   638,   642,   646,   649,   652,   655,   658,   662,
-   665,   670,   674,   678,   683,   688,   694,   701,   707,   714,
-   718,   720,   722,   725,   728,   729,   732,   734,   735,   739,
-   743,   746,   748,   751,   754,   759,   760,   768,   772,   773,
-   777,   779,   781,   786,   789,   790,   793,   795,   798,   801,
-   804,   807,   809,   811,   813,   816,   818,   821,   831,   833,
-   834,   839,   854,   856,   858,   860,   864,   870,   872,   874,
-   876,   880,   882,   883,   885,   887,   889,   893,   894,   896,
-   898,   900,   902,   908,   912,   915,   917,   919,   921,   923,
-   925,   927,   929,   931,   935,   937,   941,   945,   947,   951,
-   953,   955,   957,   959,   962,   966,   970,   977,   982,   984,
-   986,   988,   990,   991,   993,   996,   998,  1000,  1002,  1003,
-  1006,  1009,  1010,  1018,  1021,  1023,  1025,  1027,  1031,  1033,
-  1035,  1037,  1039,  1041,  1043,  1046,  1048,  1052,  1053,  1060,
-  1072,  1074,  1075,  1078,  1079,  1081,  1083,  1087,  1089,  1096,
-  1100,  1103,  1106,  1107,  1109,  1112,  1113,  1118,  1130,  1133,
-  1134,  1138,  1141,  1143,  1147,  1150,  1152,  1153,  1157,  1159,
-  1161,  1163,  1165,  1170,  1172,  1174,  1179,  1186,  1188,  1190,
-  1192,  1194,  1196,  1198,  1200,  1202,  1204,  1206,  1208,  1212,
-  1216,  1220,  1230,  1232,  1233,  1235,  1236,  1237,  1251,  1253,
-  1255,  1257,  1261,  1265,  1267,  1269,  1272,  1276,  1279,  1281,
-  1283,  1285,  1287,  1291,  1293,  1295,  1297,  1299,  1301,  1303,
-  1304,  1307,  1310,  1313,  1316,  1319,  1322,  1325,  1328,  1331,
-  1333,  1335,  1336,  1342,  1345,  1352,  1356,  1360,  1361,  1365,
-  1366,  1368,  1370,  1371,  1373,  1375,  1376,  1380,  1385,  1389,
-  1395,  1397,  1398,  1400,  1401,  1405,  1406,  1408,  1412,  1416,
-  1418,  1420,  1422,  1424,  1426,  1428,  1433,  1438,  1441,  1443,
-  1451,  1456,  1460,  1461,  1465,  1467,  1470,  1475,  1480,  1484,
-  1485,  1489,  1492,  1495,  1497,  1499,  1501,  1508,  1509,  1517,
-  1519,  1521,  1523,  1526,  1527,  1532,  1536,  1538,  1542,  1547,
-  1552,  1561,  1566,  1569,  1570,  1572,  1573,  1575,  1576,  1578,
-  1582,  1584,  1585,  1589,  1590,  1592,  1596,  1599,  1602,  1605,
-  1608,  1610,  1612,  1613,  1618,  1623,  1626,  1631,  1634,  1635,
-  1637,  1639,  1641,  1643,  1645,  1647,  1648,  1650,  1652,  1656,
-  1660,  1661,  1664,  1665,  1669,  1673,  1674,  1677,  1678,  1681,
-  1682,  1686,  1688,  1690,  1694,  1696,  1700,  1703,  1705,  1707,
-  1712,  1715,  1718,  1720,  1725,  1730,  1734,  1737,  1740,  1743,
-  1745,  1747,  1748,  1750,  1751,  1756,  1759,  1763,  1765,  1767,
-  1770,  1771,  1773,  1776,  1780,  1785,  1786,  1790,  1795,  1796,
-  1798,  1802,  1806,  1810,  1814,  1818,  1822,  1825,  1828,  1830,
-  1832,  1834,  1836,  1838,  1840,  1842,  1844,  1846,  1848,  1850,
-  1852,  1854,  1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
-  1872,  1874,  1876,  1878,  1880,  1882,  1884,  1886,  1888,  1890,
-  1892,  1894,  1896,  1898,  1900,  1902,  1904,  1906,  1908,  1911,
-  1914,  1917,  1920,  1922,  1925,  1927,  1929,  1933,  1934,  1940,
-  1944,  1945,  1951,  1955,  1956,  1961,  1963,  1968,  1971,  1973,
-  1977,  1980,  1982,  1983,  1987,  1988,  1991,  1992,  1994,  1997,
-  1999,  2002,  2004,  2006,  2008,  2010,  2012,  2014,  2018,  2019,
-  2021,  2025,  2029,  2033,  2037,  2041,  2045,  2049,  2050,  2052,
-  2054,  2062,  2071,  2080,  2088,  2096,  2100,  2102,  2104,  2106,
-  2108,  2110,  2112,  2114,  2116,  2118,  2120,  2122,  2126,  2128,
-  2131,  2133,  2135,  2137,  2140,  2143,  2146,  2150,  2154,  2158,
-  2162,  2166,  2170,  2174,  2178,  2182,  2186,  2189,  2192,  2196,
-  2203,  2207,  2211,  2215,  2220,  2223,  2226,  2231,  2235,  2240,
-  2242,  2244,  2249,  2251,  2256,  2258,  2260,  2265,  2270,  2275,
-  2280,  2286,  2292,  2298,  2303,  2306,  2310,  2313,  2318,  2322,
-  2327,  2331,  2336,  2342,  2349,  2355,  2362,  2368,  2374,  2380,
-  2386,  2392,  2398,  2404,  2410,  2416,  2423,  2430,  2437,  2444,
-  2451,  2458,  2465,  2472,  2479,  2486,  2493,  2500,  2507,  2514,
-  2521,  2528,  2535,  2542,  2546,  2550,  2553,  2555,  2557,  2560,
-  2562,  2564,  2567,  2570,  2573,  2577,  2581,  2585,  2589,  2593,
-  2596,  2599,  2603,  2610,  2614,  2618,  2621,  2624,  2628,  2633,
-  2635,  2637,  2642,  2644,  2649,  2651,  2653,  2658,  2663,  2669,
-  2675,  2681,  2686,  2688,  2693,  2700,  2701,  2703,  2707,  2711,
-  2715,  2716,  2718,  2720,  2722,  2724,  2728,  2729,  2732,  2734,
-  2737,  2741,  2745,  2749,  2753,  2757,  2760,  2764,  2771,  2775,
-  2779,  2782,  2785,  2787,  2791,  2796,  2801,  2806,  2812,  2818,
-  2824,  2829,  2833,  2834,  2837,  2838,  2841,  2842,  2846,  2849,
-  2851,  2853,  2855,  2857,  2861,  2863,  2865,  2867,  2871,  2877,
-  2884,  2889,  2892,  2894,  2899,  2902,  2903,  2906,  2908,  2909,
-  2913,  2917,  2919,  2923,  2927,  2931,  2933,  2935,  2940,  2943,
-  2947,  2951,  2953,  2957,  2959,  2963,  2965,  2967,  2968,  2970,
-  2972,  2974,  2976,  2978,  2980,  2982,  2984,  2986,  2988,  2990,
-  2992,  2994,  2997,  2999,  3001,  3003,  3006,  3008,  3010,  3012,
-  3014,  3016,  3018,  3020,  3022,  3024,  3026,  3028,  3030,  3032,
-  3034,  3036,  3038,  3040,  3042,  3044,  3046,  3048,  3050,  3052,
-  3054,  3056,  3058,  3060,  3062,  3064,  3066,  3068,  3070,  3072,
-  3074,  3076,  3078,  3080,  3082,  3084,  3086,  3088,  3090,  3092,
-  3094,  3096,  3098,  3100,  3102,  3104,  3106,  3108,  3110,  3112,
-  3114,  3116,  3118,  3120,  3122,  3124,  3126,  3128,  3130,  3132,
-  3134,  3136,  3138,  3140,  3142,  3144,  3146,  3148,  3150,  3152,
-  3154,  3156,  3158,  3160,  3162,  3164,  3166,  3168,  3170,  3172,
-  3174,  3176,  3178,  3180,  3182,  3184,  3186,  3188,  3190,  3192,
-  3194,  3196,  3198,  3200,  3202,  3204,  3206,  3208,  3210,  3212,
-  3214,  3216,  3218,  3220,  3222,  3224,  3226,  3228,  3230,  3232,
-  3234,  3236,  3238,  3240,  3242,  3244,  3246,  3248,  3250,  3252,
-  3254,  3256,  3258,  3260,  3262,  3264,  3266,  3268,  3270,  3272,
-  3274,  3276,  3278,  3280,  3282,  3284,  3286,  3288,  3290,  3292,
-  3294,  3296,  3298,  3300,  3302,  3304,  3306,  3308,  3310,  3312,
-  3314,  3320,  3324,  3327,  3331,  3338,  3340,  3342,  3345,  3348,
-  3350,  3351,  3353,  3357,  3360,  3361,  3364,  3365,  3368,  3369,
-  3371,  3375,  3380,  3384,  3386,  3388,  3390,  3392,  3395,  3396,
-  3403,  3407,  3408,  3413,  3419,  3425,  3426,  3429,  3430,  3431,
-  3438,  3440,  3442,  3444,  3446,  3448,  3450,  3451,  3453,  3455,
-  3457,  3459,  3461,  3463,  3468,  3471,  3476,  3481,  3484,  3487,
-  3488,  3490,  3492,  3495,  3497,  3500,  3502,  3505,  3507,  3509,
-  3511,  3513,  3516,  3518,  3520,  3524,  3529,  3530,  3533,  3534,
-  3536,  3540,  3543,  3545,  3547,  3549,  3550,  3552,  3554,  3558,
-  3559,  3564,  3566,  3568,  3571,  3575,  3576,  3579,  3581,  3585,
-  3590,  3593,  3598,  3600,  3602,  3604,  3606,  3611,  3618,  3622,
-  3626,  3631,  3636,  3637,  3641,  3645,  3650,  3655,  3656,  3658,
-  3659,  3661,  3663,  3665,  3667,  3670,  3672,  3675,  3678,  3680,
-  3683,  3686,  3689,  3690,  3696,  3697,  3703,  3705,  3707,  3708,
-  3709,  3712,  3713,  3718,  3720,  3724,  3728,  3735,  3739,  3744,
-  3748,  3750,  3752,  3754,  3757,  3761,  3767,  3770,  3776,  3779,
-  3781,  3783,  3785,  3788,  3791,  3794,  3798,  3802,  3806,  3810,
-  3814,  3818,  3822,  3826,  3830,  3834,  3837,  3840,  3844,  3851,
-  3855,  3859,  3863,  3868,  3871,  3874,  3879,  3883,  3888,  3890,
-  3892,  3897,  3899,  3904,  3906,  3908,  3913,  3918,  3923,  3928,
-  3934,  3940,  3946,  3951,  3954,  3958,  3961,  3966,  3970,  3975,
-  3979,  3984,  3990,  3997,  4003,  4010,  4016,  4022,  4028,  4034,
-  4040,  4046,  4052,  4058,  4064,  4071,  4078,  4085,  4092,  4099,
-  4106,  4113,  4120,  4127,  4134,  4141,  4148,  4155,  4162,  4169,
-  4176,  4183,  4190,  4194,  4198,  4201,  4203,  4205,  4207,  4211,
-  4213,  4214,  4217,  4219,  4222,  4225,  4228,  4230,  4232,  4233,
-  4235,  4238,  4241,  4243,  4245,  4247,  4249,  4251,  4254,  4256,
-  4258,  4260,  4262,  4264,  4266,  4268,  4270,  4272,  4274,  4276,
-  4278,  4280,  4282,  4284,  4286,  4288,  4290,  4292,  4294,  4296,
-  4298,  4300,  4302,  4304,  4306,  4308,  4310,  4312,  4314,  4316,
-  4318,  4320,  4322,  4324,  4326,  4328,  4330,  4332,  4334,  4336,
-  4338,  4340,  4342,  4344,  4348,  4350
-};
-
-static const short yyrhs[] = {   314,
-     0,     0,   314,   315,     0,   665,   316,   317,   302,     0,
-   665,   317,   302,     0,   607,     0,   677,     0,   675,     0,
-   681,     0,   682,     0,     3,   593,     0,   333,     0,   319,
-     0,   335,     0,   336,     0,   342,     0,   367,     0,   371,
-     0,   377,     0,   380,     0,   318,     0,   460,     0,   390,
-     0,   398,     0,   379,     0,   389,     0,   320,     0,   419,
-     0,   466,     0,   399,     0,   403,     0,   410,     0,   448,
-     0,   449,     0,   474,     0,   420,     0,   428,     0,   431,
-     0,   430,     0,   426,     0,   435,     0,   409,     0,   467,
-     0,   438,     0,   450,     0,   452,     0,   453,     0,   454,
-     0,   459,     0,   461,     0,   327,     0,   331,     0,   332,
-     0,   592,     0,   605,     0,   606,     0,   630,     0,   631,
-     0,   634,     0,   637,     0,   638,     0,   641,     0,   642,
-     0,   643,     0,   646,     0,   647,     0,   660,     0,   661,
-     0,    86,   193,   587,   321,   322,   323,   325,   326,     0,
-    65,   193,   587,   321,   322,   323,   325,   326,     0,   102,
-   193,   587,     0,   201,   260,   587,     0,     0,   220,     0,
-   251,     0,     0,   221,     0,   252,     0,     0,   324,   307,
-   587,     0,   587,     0,   121,   118,   324,     0,     0,   279,
-   277,   586,     0,     0,   175,   589,   185,   329,     0,   175,
-   589,   292,   329,     0,   175,   181,   204,   330,     0,   175,
-   187,   129,   135,   328,     0,   175,   141,   458,     0,   166,
-   206,     0,   207,     0,   586,     0,    97,     0,   586,     0,
-    97,     0,   137,     0,   271,   589,     0,   271,   181,   204,
-     0,   271,   187,   129,   135,     0,   263,   589,     0,   263,
-   181,   204,     0,   263,   187,   129,   135,     0,    65,   177,
-   573,   496,   334,     0,    63,   437,   348,     0,    63,   308,
-   346,   309,     0,   102,   437,   589,     0,    65,   437,   589,
-   175,    97,   355,     0,    65,   437,   589,   102,    97,     0,
-    63,   357,     0,    80,   572,     0,   219,   339,   573,   340,
-   337,   338,   341,     0,   185,     0,   114,     0,   586,     0,
-   274,     0,   275,     0,   216,     0,     0,   201,   258,     0,
-     0,   194,   224,   586,     0,     0,    86,   343,   177,   573,
-   308,   346,   309,   366,     0,   344,     0,   345,   344,     0,
-   178,     0,   179,     0,     0,   116,     0,   137,     0,   346,
-   307,   347,     0,   347,     0,     0,   348,     0,   356,     0,
-   589,   521,   349,     0,   589,   267,   351,     0,   350,     0,
-     0,   350,   352,     0,   352,     0,   161,   131,     0,     0,
-    85,   579,   353,     0,   353,     0,    79,   308,   359,   309,
-     0,    97,   149,     0,    97,   355,     0,   147,   149,     0,
-   191,     0,   161,   131,     0,   167,   589,   470,   362,   363,
-     0,   354,   307,   355,     0,   355,     0,   582,     0,   296,
-   355,     0,   355,   295,   355,     0,   355,   296,   355,     0,
-   355,   298,   355,     0,   355,   299,   355,     0,   355,   297,
-   355,     0,   355,   292,   355,     0,   355,   293,   355,     0,
-   355,   294,   355,     0,   302,   355,     0,   300,   355,     0,
-   355,    60,   521,     0,    76,   308,   355,    68,   521,   309,
-     0,   308,   355,   309,     0,   580,   308,   309,     0,   580,
-   308,   354,   309,     0,   355,   284,   355,     0,   284,   355,
-     0,   355,   284,     0,    89,     0,    90,     0,    90,   308,
-   584,   309,     0,    91,     0,    91,   308,   584,   309,     0,
-    92,     0,   193,     0,    85,   579,   357,     0,   357,     0,
-    79,   308,   359,   309,     0,   191,   308,   471,   309,     0,
-   161,   131,   308,   471,   309,     0,   113,   131,   308,   471,
-   309,   167,   589,   470,   362,   363,     0,   358,   307,   359,
-     0,   359,     0,   582,     0,   149,     0,   589,     0,   296,
-   359,     0,   359,   295,   359,     0,   359,   296,   359,     0,
-   359,   298,   359,     0,   359,   299,   359,     0,   359,   297,
-   359,     0,   359,   292,   359,     0,   359,   293,   359,     0,
-   359,   294,   359,     0,   302,   359,     0,   300,   359,     0,
-   359,    60,   521,     0,    76,   308,   359,    68,   521,   309,
-     0,   308,   359,   309,     0,   580,   308,   309,     0,   580,
-   308,   358,   309,     0,   359,   284,   359,     0,   359,   136,
-   359,     0,   359,   147,   136,   359,     0,   359,    66,   359,
-     0,   359,   155,   359,     0,   147,   359,     0,   284,   359,
-     0,   359,   284,     0,   359,   238,     0,   359,   128,   149,
-     0,   359,   256,     0,   359,   128,   147,   149,     0,   359,
-   128,   189,     0,   359,   128,   109,     0,   359,   128,   147,
-   189,     0,   359,   128,   147,   109,     0,   359,   121,   308,
-   360,   309,     0,   359,   147,   121,   308,   360,   309,     0,
-   359,    71,   361,    66,   361,     0,   359,   147,    71,   361,
-    66,   361,     0,   360,   307,   361,     0,   361,     0,   582,
-     0,   138,   115,     0,   138,   158,     0,     0,   364,   364,
-     0,   364,     0,     0,   152,    98,   365,     0,   152,   192,
-   365,     0,   146,    62,     0,    74,     0,   175,    97,     0,
-   175,   149,     0,   236,   308,   497,   309,     0,     0,    86,
-   343,   177,   573,   368,    68,   484,     0,   308,   369,   309,
-     0,     0,   369,   307,   370,     0,   370,     0,   589,     0,
-    86,   268,   573,   372,     0,   372,   373,     0,     0,   217,
-   376,     0,   222,     0,   234,   376,     0,   246,   376,     0,
-   247,   376,     0,   272,   376,     0,   375,     0,   376,     0,
-   585,     0,   296,   585,     0,   584,     0,   296,   584,     0,
-    86,   378,   261,   132,   586,   233,   393,   239,   586,     0,
-   276,     0,     0,   102,   261,   132,   586,     0,    86,   205,
-   579,   381,   382,   152,   573,   384,   106,   164,   579,   308,
-   387,   309,     0,   215,     0,   211,     0,   383,     0,   383,
-   155,   383,     0,   383,   155,   383,   155,   383,     0,   124,
-     0,    98,     0,   192,     0,   112,   385,   386,     0,   226,
-     0,     0,   265,     0,   273,     0,   388,     0,   387,   307,
-   388,     0,     0,   584,     0,   585,     0,   586,     0,   673,
-     0,   102,   205,   579,   152,   573,     0,    86,   392,   391,
-     0,   393,   394,     0,   259,     0,   208,     0,   212,     0,
-   164,     0,   130,     0,   589,     0,   433,     0,   284,     0,
-   308,   395,   309,     0,   396,     0,   395,   307,   396,     0,
-   393,   292,   397,     0,   393,     0,    97,   292,   397,     0,
-   589,     0,   432,     0,   374,     0,   586,     0,   269,   589,
-     0,   102,   177,   497,     0,   102,   268,   497,     0,   110,
-   400,   401,   402,   127,   664,     0,   249,   400,   401,   402,
-     0,   231,     0,   214,     0,   168,     0,    61,     0,     0,
-   584,     0,   296,   584,     0,    64,     0,   145,     0,   162,
-     0,     0,   121,   579,     0,   114,   579,     0,     0,   117,
-   404,   152,   497,   185,   407,   408,     0,    64,   163,     0,
-    64,     0,   405,     0,   406,     0,   405,   307,   406,     0,
-   174,     0,   124,     0,   192,     0,    98,     0,   266,     0,
-   165,     0,   118,   589,     0,   589,     0,   201,   117,   154,
-     0,     0,   169,   404,   152,   497,   114,   407,     0,    86,
-   411,   235,   578,   152,   573,   412,   308,   413,   309,   421,
-     0,   191,     0,     0,   194,   575,     0,     0,   414,     0,
-   415,     0,   414,   307,   416,     0,   416,     0,   580,   308,
-   498,   309,   417,   418,     0,   576,   417,   418,     0,   301,
-   521,     0,   112,   521,     0,     0,   577,     0,   194,   577,
-     0,     0,   230,   235,   578,   516,     0,    86,   232,   580,
-   422,   264,   424,   421,    68,   586,   132,   586,     0,   201,
-   394,     0,     0,   308,   423,   309,     0,   308,   309,     0,
-   588,     0,   423,   307,   588,     0,   425,   588,     0,   269,
-     0,     0,   102,   427,   579,     0,   208,     0,   235,     0,
-   266,     0,   198,     0,   102,   212,   579,   429,     0,   579,
-     0,   297,     0,   102,   232,   580,   422,     0,   102,   259,
-   432,   308,   434,   309,     0,   284,     0,   433,     0,   295,
-     0,   296,     0,   297,     0,   299,     0,   298,     0,   293,
-     0,   294,     0,   292,     0,   579,     0,   579,   307,   579,
-     0,   253,   307,   579,     0,   579,   307,   253,     0,    65,
-   177,   573,   496,   262,   437,   436,   185,   579,     0,   579,
-     0,     0,    83,     0,     0,     0,    86,   266,   579,    68,
-   439,   152,   445,   185,   444,   516,   225,   446,   440,     0,
-   254,     0,   482,     0,   443,     0,   305,   441,   306,     0,
-   308,   441,   309,     0,   442,     0,   443,     0,   442,   443,
-     0,   442,   443,   302,     0,   443,   302,     0,   468,     0,
-   478,     0,   473,     0,   447,     0,   573,   304,   576,     0,
-   573,     0,   174,     0,   192,     0,    98,     0,   124,     0,
-   237,     0,     0,   255,   573,     0,   241,   573,     0,   242,
-   573,     0,   242,   297,     0,   209,   451,     0,    70,   451,
-     0,    84,   451,     0,   104,   451,     0,   171,   451,     0,
-   202,     0,   187,     0,     0,    86,   198,   579,    68,   482,
-     0,   243,   581,     0,    86,   223,   574,   201,   455,   456,
-     0,    86,   223,   574,     0,   244,   292,   457,     0,     0,
-   227,   292,   458,     0,     0,   586,     0,    97,     0,     0,
-   586,     0,    97,     0,     0,   102,   223,   574,     0,   218,
-   578,   152,   573,     0,   278,   462,   463,     0,   278,   462,
-   463,   573,   464,     0,   280,     0,     0,   213,     0,     0,
-   308,   465,   309,     0,     0,   579,     0,   465,   307,   579,
-     0,   229,   462,   467,     0,   482,     0,   479,     0,   478,
-     0,   468,     0,   447,     0,   473,     0,   124,   127,   573,
-   469,     0,   195,   308,   570,   309,     0,    97,   195,     0,
-   482,     0,   308,   471,   309,   195,   308,   570,   309,     0,
-   308,   471,   309,   482,     0,   308,   471,   309,     0,     0,
-   471,   307,   472,     0,   472,     0,   589,   547,     0,    98,
-   114,   573,   516,     0,   245,   486,   573,   475,     0,   121,
-   476,   248,     0,     0,   270,   265,   228,     0,   265,   477,
-     0,   210,   477,     0,   477,     0,   270,     0,   228,     0,
-   192,   573,   175,   568,   503,   516,     0,     0,    96,   579,
-   481,    93,   112,   480,   482,     0,   216,     0,   123,     0,
-   172,     0,   123,   172,     0,     0,   483,   489,   501,   493,
-     0,   308,   483,   309,     0,   484,     0,   483,   105,   483,
-     0,   483,   190,   487,   483,     0,   483,   125,   487,   483,
-     0,   174,   488,   570,   485,   503,   516,   499,   500,     0,
-   127,   343,   486,   573,     0,   127,   664,     0,     0,   177,
-     0,     0,    64,     0,     0,   100,     0,   100,   152,   589,
-     0,    64,     0,     0,   156,    73,   490,     0,     0,   491,
-     0,   490,   307,   491,     0,   545,   492,     0,   194,   284,
-     0,   194,   293,     0,   194,   294,     0,    69,     0,    99,
-     0,     0,   240,   494,   307,   495,     0,   240,   494,   257,
-   495,     0,   240,   494,     0,   257,   495,   240,   494,     0,
-   257,   495,     0,     0,   584,     0,    64,     0,   289,     0,
-   584,     0,   289,     0,   297,     0,     0,   498,     0,   579,
-     0,   498,   307,   579,     0,   118,    73,   548,     0,     0,
-   119,   545,     0,     0,   112,   192,   502,     0,   112,   166,
-   153,     0,     0,   151,   465,     0,     0,   114,   504,     0,
-     0,   308,   507,   309,     0,   508,     0,   505,     0,   505,
-   307,   506,     0,   506,     0,   517,    68,   590,     0,   517,
-   589,     0,   517,     0,   508,     0,   506,   190,   130,   506,
-     0,   506,   509,     0,   509,   510,     0,   510,     0,   511,
-   130,   506,   513,     0,   143,   511,   130,   506,     0,    87,
-   130,   506,     0,   115,   512,     0,   134,   512,     0,   170,
-   512,     0,   157,     0,   122,     0,     0,   157,     0,     0,
-   194,   308,   514,   309,     0,   152,   545,     0,   514,   307,
-   515,     0,   515,     0,   589,     0,   200,   545,     0,     0,
-   573,     0,   573,   297,     0,   305,   306,   519,     0,   305,
-   520,   306,   519,     0,     0,   305,   306,   519,     0,   305,
-   520,   306,   519,     0,     0,   584,     0,   308,   520,   309,
-     0,   520,   295,   520,     0,   520,   296,   520,     0,   520,
-   297,   520,     0,   520,   298,   520,     0,   520,   299,   520,
-     0,   522,   518,     0,   269,   522,     0,   523,     0,   535,
-     0,   525,     0,   530,     0,   524,     0,   673,     0,   208,
-     0,     3,     0,     4,     0,     5,     0,     6,     0,     7,
-     0,     8,     0,     9,     0,    10,     0,    11,     0,    12,
-     0,    14,     0,    16,     0,    17,     0,    18,     0,    19,
-     0,    20,     0,    21,     0,    22,     0,    23,     0,    24,
-     0,    25,     0,    26,     0,    28,     0,    29,     0,    30,
-     0,    31,     0,    32,     0,    33,     0,    35,     0,    36,
-     0,    37,     0,    38,     0,    39,     0,   111,   527,     0,
-   101,   160,     0,    95,   529,     0,   150,   528,     0,   111,
-     0,   101,   160,     0,    95,     0,   150,     0,   308,   584,
-   309,     0,     0,   308,   584,   307,   584,   309,     0,   308,
-   584,   309,     0,     0,   308,   584,   307,   584,   309,     0,
-   308,   584,   309,     0,     0,   531,   308,   584,   309,     0,
-   531,     0,    78,   532,   533,   534,     0,    77,   532,     0,
-   196,     0,   142,    78,   532,     0,   144,   532,     0,   197,
-     0,     0,    78,   175,   589,     0,     0,    82,   589,     0,
-     0,   536,     0,   182,   537,     0,   181,     0,   126,   538,
-     0,   203,     0,   140,     0,    94,     0,   120,     0,   139,
-     0,   173,     0,   201,   181,   204,     0,     0,   536,     0,
-   203,   185,   140,     0,    94,   185,   120,     0,    94,   185,
-   139,     0,    94,   185,   173,     0,   120,   185,   139,     0,
-   139,   185,   173,     0,   120,   185,   173,     0,     0,   545,
-     0,   149,     0,   308,   541,   309,   121,   308,   484,   309,
-     0,   308,   541,   309,   147,   121,   308,   484,   309,     0,
-   308,   541,   309,   542,   543,   308,   484,   309,     0,   308,
-   541,   309,   542,   308,   484,   309,     0,   308,   541,   309,
-   542,   308,   541,   309,     0,   544,   307,   545,     0,   284,
-     0,   293,     0,   292,     0,   294,     0,   295,     0,   296,
-     0,   297,     0,   299,     0,   298,     0,    67,     0,    64,
-     0,   544,   307,   545,     0,   545,     0,   566,   547,     0,
-   540,     0,   582,     0,   589,     0,   296,   545,     0,   299,
-   545,     0,   545,   299,     0,   545,   295,   545,     0,   545,
-   296,   545,     0,   545,   298,   545,     0,   545,   299,   545,
-     0,   545,   297,   545,     0,   545,   293,   545,     0,   545,
-   294,   545,     0,   545,   292,   149,     0,   149,   292,   545,
-     0,   545,   292,   545,     0,   302,   545,     0,   300,   545,
-     0,   545,    60,   521,     0,    76,   308,   545,    68,   521,
-   309,     0,   308,   539,   309,     0,   545,   284,   545,     0,
-   545,   136,   545,     0,   545,   147,   136,   545,     0,   284,
-   545,     0,   545,   284,     0,   580,   308,   297,   309,     0,
-   580,   308,   309,     0,   580,   308,   548,   309,     0,    89,
-     0,    90,     0,    90,   308,   584,   309,     0,    91,     0,
-    91,   308,   584,   309,     0,    92,     0,   193,     0,   107,
-   308,   484,   309,     0,   108,   308,   549,   309,     0,   159,
-   308,   551,   309,     0,   176,   308,   553,   309,     0,   188,
-   308,    72,   556,   309,     0,   188,   308,   133,   556,   309,
-     0,   188,   308,   186,   556,   309,     0,   188,   308,   556,
-   309,     0,   545,   238,     0,   545,   128,   149,     0,   545,
-   256,     0,   545,   128,   147,   149,     0,   545,   128,   189,
-     0,   545,   128,   147,   109,     0,   545,   128,   109,     0,
-   545,   128,   147,   189,     0,   545,    71,   546,    66,   546,
-     0,   545,   147,    71,   546,    66,   546,     0,   545,   121,
-   308,   557,   309,     0,   545,   147,   121,   308,   559,   309,
-     0,   545,   284,   308,   484,   309,     0,   545,   295,   308,
-   484,   309,     0,   545,   296,   308,   484,   309,     0,   545,
-   298,   308,   484,   309,     0,   545,   299,   308,   484,   309,
-     0,   545,   297,   308,   484,   309,     0,   545,   293,   308,
-   484,   309,     0,   545,   294,   308,   484,   309,     0,   545,
-   292,   308,   484,   309,     0,   545,   284,    67,   308,   484,
-   309,     0,   545,   295,    67,   308,   484,   309,     0,   545,
-   296,    67,   308,   484,   309,     0,   545,   298,    67,   308,
-   484,   309,     0,   545,   299,    67,   308,   484,   309,     0,
-   545,   297,    67,   308,   484,   309,     0,   545,   293,    67,
-   308,   484,   309,     0,   545,   294,    67,   308,   484,   309,
-     0,   545,   292,    67,   308,   484,   309,     0,   545,   284,
-    64,   308,   484,   309,     0,   545,   295,    64,   308,   484,
-   309,     0,   545,   296,    64,   308,   484,   309,     0,   545,
-   298,    64,   308,   484,   309,     0,   545,   299,    64,   308,
-   484,   309,     0,   545,   297,    64,   308,   484,   309,     0,
-   545,   293,    64,   308,   484,   309,     0,   545,   294,    64,
-   308,   484,   309,     0,   545,   292,    64,   308,   484,   309,
-     0,   545,    66,   545,     0,   545,   155,   545,     0,   147,
-   545,     0,   561,     0,   669,     0,   566,   547,     0,   582,
-     0,   589,     0,   296,   546,     0,   299,   546,     0,   546,
-   299,     0,   546,   295,   546,     0,   546,   296,   546,     0,
-   546,   298,   546,     0,   546,   299,   546,     0,   546,   297,
-   546,     0,   302,   546,     0,   300,   546,     0,   546,    60,
-   521,     0,    76,   308,   546,    68,   521,   309,     0,   308,
-   545,   309,     0,   546,   284,   546,     0,   284,   546,     0,
-   546,   284,     0,   580,   308,   309,     0,   580,   308,   548,
-   309,     0,    89,     0,    90,     0,    90,   308,   584,   309,
-     0,    91,     0,    91,   308,   584,   309,     0,    92,     0,
-   193,     0,   159,   308,   551,   309,     0,   176,   308,   553,
-   309,     0,   188,   308,    72,   556,   309,     0,   188,   308,
-   133,   556,   309,     0,   188,   308,   186,   556,   309,     0,
-   188,   308,   556,   309,     0,   670,     0,   305,   663,   306,
-   547,     0,   305,   663,   301,   663,   306,   547,     0,     0,
-   539,     0,   548,   307,   539,     0,   548,   194,   545,     0,
-   550,   114,   545,     0,     0,   669,     0,   536,     0,   183,
-     0,   184,     0,   552,   121,   552,     0,     0,   566,   547,
-     0,   582,     0,   296,   552,     0,   552,   295,   552,     0,
-   552,   296,   552,     0,   552,   298,   552,     0,   552,   299,
-   552,     0,   552,   297,   552,     0,   300,   552,     0,   552,
-    60,   521,     0,    76,   308,   552,    68,   521,   309,     0,
-   308,   552,   309,     0,   552,   284,   552,     0,   284,   552,
-     0,   552,   284,     0,   589,     0,   580,   308,   309,     0,
-   580,   308,   548,   309,     0,   159,   308,   551,   309,     0,
-   176,   308,   553,   309,     0,   188,   308,    72,   556,   309,
-     0,   188,   308,   133,   556,   309,     0,   188,   308,   186,
-   556,   309,     0,   188,   308,   556,   309,     0,   548,   554,
-   555,     0,     0,   114,   548,     0,     0,   112,   548,     0,
-     0,   545,   114,   548,     0,   114,   548,     0,   548,     0,
-   484,     0,   558,     0,   582,     0,   558,   307,   582,     0,
-   484,     0,   560,     0,   582,     0,   560,   307,   582,     0,
-    75,   565,   562,   564,   104,     0,   148,   308,   545,   307,
-   545,   309,     0,    81,   308,   548,   309,     0,   562,   563,
-     0,   563,     0,   199,   545,   180,   539,     0,   103,   539,
-     0,     0,   566,   547,     0,   589,     0,     0,   573,   304,
-   567,     0,   583,   304,   567,     0,   576,     0,   567,   304,
-   576,     0,   567,   304,   297,     0,   568,   307,   569,     0,
-   569,     0,   297,     0,   589,   547,   292,   539,     0,   566,
-   547,     0,   573,   304,   297,     0,   570,   307,   571,     0,
-   571,     0,   539,    68,   590,     0,   539,     0,   573,   304,
-   297,     0,   297,     0,   589,     0,     0,   591,     0,   589,
-     0,   589,     0,   673,     0,   589,     0,   673,     0,   589,
-     0,   589,     0,   589,     0,   586,     0,   584,     0,   585,
-     0,   586,     0,   521,   586,     0,   583,     0,   189,     0,
-   109,     0,   289,   547,     0,   288,     0,   290,     0,   283,
-     0,   673,     0,   589,     0,   526,     0,   531,     0,   673,
-     0,   536,     0,    61,     0,   210,     0,    62,     0,   211,
-     0,   212,     0,   214,     0,   215,     0,   217,     0,   206,
-     0,   220,     0,   221,     0,   222,     0,   223,     0,   224,
-     0,   101,     0,   226,     0,   227,     0,   228,     0,   231,
-     0,   232,     0,   233,     0,   234,     0,   235,     0,   236,
-     0,   123,     0,   237,     0,   238,     0,   131,     0,   132,
-     0,   239,     0,   244,     0,   138,     0,   246,     0,   247,
-     0,   248,     0,   145,     0,   251,     0,   252,     0,   254,
-     0,   256,     0,   151,     0,   258,     0,   153,     0,   259,
-     0,   154,     0,   260,     0,   162,     0,   163,     0,   261,
-     0,   166,     0,   168,     0,   262,     0,   264,     0,   265,
-     0,   266,     0,   172,     0,   268,     0,   267,     0,   207,
-     0,   270,     0,   272,     0,   273,     0,   274,     0,   275,
-     0,   181,     0,   182,     0,   183,     0,   184,     0,   205,
-     0,   276,     0,   208,     0,   279,     0,   281,     0,   204,
-     0,     3,     0,     5,     0,     6,     0,     7,     0,     8,
-     0,    10,     0,    11,     0,    12,     0,    14,     0,    16,
-     0,    17,     0,    18,     0,    19,     0,    20,     0,    21,
-     0,    22,     0,    23,     0,    24,     0,    25,     0,    26,
-     0,    28,     0,    29,     0,    30,     0,    31,     0,    32,
-     0,    33,     0,    35,     0,    36,     0,    37,     0,    38,
-     0,    39,     0,   589,     0,   209,     0,   213,     0,   216,
-     0,    75,     0,   218,     0,    81,     0,    85,     0,   219,
-     0,    88,     0,   225,     0,   103,     0,   104,     0,   229,
-     0,   230,     0,   109,     0,   113,     0,   118,     0,   241,
-     0,   243,     0,   245,     0,   249,     0,   250,     0,   253,
-     0,   148,     0,   156,     0,   159,     0,   160,     0,   263,
-     0,   269,     0,   271,     0,   177,     0,   180,     0,   187,
-     0,   189,     0,   278,     0,   280,     0,   199,     0,    88,
-     0,   250,     0,     8,   185,   593,   599,   600,     0,     8,
-   185,    97,     0,     8,   601,     0,   574,   596,   598,     0,
-   594,   595,   598,   298,   574,   604,     0,   603,     0,   586,
-     0,   673,   671,     0,   284,   597,     0,   595,     0,     0,
-   589,     0,   589,   304,   597,     0,   301,   584,     0,     0,
-    68,   593,     0,     0,   193,   601,     0,     0,   602,     0,
-   602,   298,   602,     0,   602,    18,    73,   602,     0,   602,
-   194,   602,     0,   587,     0,   603,     0,   283,     0,   671,
-     0,   284,   589,     0,     0,    96,   579,   481,    93,   112,
-   673,     0,    11,    25,   673,     0,     0,   609,   608,   611,
-   610,     0,   665,    70,    96,    28,   302,     0,   665,   104,
-    96,    28,   302,     0,     0,   612,   611,     0,     0,     0,
-   615,   613,   616,   614,   626,   302,     0,    47,     0,    55,
-     0,    54,     0,    44,     0,    52,     0,    41,     0,     0,
-   624,     0,   625,     0,   619,     0,   620,     0,   617,     0,
-   674,     0,   618,   310,   676,   311,     0,    46,   623,     0,
-   621,   310,   611,   311,     0,   622,   310,   611,   311,     0,
-    56,   623,     0,    57,   623,     0,     0,   674,     0,    53,
-     0,    58,    53,     0,    49,     0,    58,    49,     0,    51,
-     0,    58,    51,     0,    48,     0,    45,     0,    42,     0,
-    43,     0,    58,    43,     0,    59,     0,   627,     0,   626,
-   307,   627,     0,   629,   674,   518,   628,     0,     0,   292,
-   667,     0,     0,   297,     0,    96,   273,   673,     0,    12,
-   632,     0,   633,     0,    88,     0,    64,     0,     0,   593,
-     0,    97,     0,   106,    19,   636,     0,     0,   106,   673,
-   635,   639,     0,   603,     0,   285,     0,    15,   673,     0,
-    24,   579,   639,     0,     0,   194,   640,     0,   669,     0,
-   669,   307,   640,     0,    25,   673,   114,   636,     0,   450,
-    26,     0,   175,     4,   645,   644,     0,   152,     0,    23,
-     0,   185,     0,   312,     0,   175,     9,   645,   633,     0,
-   208,   674,   128,   651,   648,   650,     0,   305,   306,   649,
-     0,   308,   309,   649,     0,   305,   520,   306,   649,     0,
-   308,   520,   309,   649,     0,     0,   305,   306,   649,     0,
-   308,   309,   649,     0,   305,   520,   306,   649,     0,   308,
-   520,   309,   649,     0,     0,    27,     0,     0,    77,     0,
-   196,     0,   111,     0,   101,     0,   654,    21,     0,    13,
-     0,   654,    29,     0,   654,    22,     0,     5,     0,    37,
-    21,     0,    37,    29,     0,    37,    22,     0,     0,    36,
-   652,   310,   655,   311,     0,     0,   190,   653,   310,   655,
-   311,     0,   674,     0,    30,     0,     0,     0,   656,   655,
-     0,     0,   651,   657,   658,   302,     0,   659,     0,   658,
-   307,   659,     0,   629,   674,   518,     0,    38,   674,   128,
-   651,   648,   650,     0,    39,    31,   662,     0,    39,   147,
-    14,   662,     0,    39,    33,   662,     0,    10,     0,    32,
-     0,    35,     0,    17,   579,     0,    16,   185,   579,     0,
-   225,   579,   308,   666,   309,     0,   225,     6,     0,     7,
-   579,   308,   666,   309,     0,   566,   547,     0,   540,     0,
-   582,     0,   589,     0,   296,   663,     0,   299,   663,     0,
-   545,   299,     0,   545,   295,   663,     0,   545,   296,   663,
-     0,   545,   298,   663,     0,   545,   299,   663,     0,   545,
-   297,   663,     0,   545,   293,   663,     0,   545,   294,   663,
-     0,   545,   292,   149,     0,   149,   292,   545,     0,   545,
-   292,   663,     0,   302,   663,     0,   300,   663,     0,   545,
-    60,   521,     0,    76,   308,   545,    68,   521,   309,     0,
-   308,   539,   309,     0,   545,   284,   663,     0,   545,   136,
-   663,     0,   545,   147,   136,   663,     0,   284,   663,     0,
-   545,   284,     0,   580,   308,   297,   309,     0,   580,   308,
-   309,     0,   580,   308,   548,   309,     0,    89,     0,    90,
-     0,    90,   308,   584,   309,     0,    91,     0,    91,   308,
-   584,   309,     0,    92,     0,   193,     0,   107,   308,   484,
-   309,     0,   108,   308,   549,   309,     0,   159,   308,   551,
-   309,     0,   176,   308,   553,   309,     0,   188,   308,    72,
-   556,   309,     0,   188,   308,   133,   556,   309,     0,   188,
-   308,   186,   556,   309,     0,   188,   308,   556,   309,     0,
-   545,   238,     0,   545,   128,   149,     0,   545,   256,     0,
-   545,   128,   147,   149,     0,   545,   128,   189,     0,   545,
-   128,   147,   109,     0,   545,   128,   109,     0,   545,   128,
-   147,   189,     0,   545,    71,   546,    66,   546,     0,   545,
-   147,    71,   546,    66,   546,     0,   545,   121,   308,   557,
-   309,     0,   545,   147,   121,   308,   559,   309,     0,   545,
-   284,   308,   484,   309,     0,   545,   295,   308,   484,   309,
-     0,   545,   296,   308,   484,   309,     0,   545,   298,   308,
-   484,   309,     0,   545,   299,   308,   484,   309,     0,   545,
-   297,   308,   484,   309,     0,   545,   293,   308,   484,   309,
-     0,   545,   294,   308,   484,   309,     0,   545,   292,   308,
-   484,   309,     0,   545,   284,    67,   308,   484,   309,     0,
-   545,   295,    67,   308,   484,   309,     0,   545,   296,    67,
-   308,   484,   309,     0,   545,   298,    67,   308,   484,   309,
-     0,   545,   299,    67,   308,   484,   309,     0,   545,   297,
-    67,   308,   484,   309,     0,   545,   293,    67,   308,   484,
-   309,     0,   545,   294,    67,   308,   484,   309,     0,   545,
-   292,    67,   308,   484,   309,     0,   545,   284,    64,   308,
-   484,   309,     0,   545,   295,    64,   308,   484,   309,     0,
-   545,   296,    64,   308,   484,   309,     0,   545,   298,    64,
-   308,   484,   309,     0,   545,   299,    64,   308,   484,   309,
-     0,   545,   297,    64,   308,   484,   309,     0,   545,   293,
-    64,   308,   484,   309,     0,   545,   294,    64,   308,   484,
-   309,     0,   545,   292,    64,   308,   484,   309,     0,   545,
-    66,   663,     0,   545,   155,   663,     0,   147,   663,     0,
-   561,     0,   670,     0,   668,     0,   664,   307,   668,     0,
-    34,     0,     0,   666,   679,     0,   680,     0,   667,   680,
-     0,   671,   672,     0,   671,   672,     0,   671,     0,   286,
-     0,     0,   671,     0,    20,   671,     0,    20,   579,     0,
-   282,     0,   285,     0,   282,     0,   287,     0,   678,     0,
-   676,   678,     0,   678,     0,   302,     0,   282,     0,   285,
-     0,   584,     0,   585,     0,   297,     0,   295,     0,   296,
-     0,   298,     0,   299,     0,    41,     0,    42,     0,    43,
-     0,    44,     0,    45,     0,    46,     0,    47,     0,    48,
-     0,    49,     0,    51,     0,    52,     0,    53,     0,    54,
-     0,    55,     0,    56,     0,    57,     0,    58,     0,    59,
-     0,    40,     0,   305,     0,   306,     0,   308,     0,   309,
-     0,   292,     0,   307,     0,   282,     0,   285,     0,   584,
-     0,   585,     0,   307,     0,   282,     0,   285,     0,   584,
-     0,   585,     0,   310,   676,   311,     0,   310,     0,   311,
-     0
-};
-
-#endif
-
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
-   855,   857,   858,   860,   861,   862,   863,   864,   865,   866,
-   868,   870,   871,   872,   873,   874,   875,   876,   877,   878,
-   879,   880,   881,   882,   883,   884,   885,   886,   887,   888,
-   889,   890,   891,   892,   893,   894,   895,   896,   897,   898,
-   899,   900,   901,   907,   908,   913,   914,   915,   916,   917,
-   918,   919,   920,   921,   929,   932,   941,   944,   952,   955,
-   960,   985,   993,   994,   999,  1007,  1013,  1019,  1039,  1053,
-  1067,  1073,  1074,  1077,  1081,  1085,  1088,  1092,  1096,  1099,
-  1103,  1109,  1110,  1113,  1114,  1126,  1130,  1134,  1138,  1142,
-  1152,  1153,  1157,  1158,  1161,  1162,  1163,  1166,  1170,  1174,
-  1180,  1184,  1188,  1202,  1208,  1212,  1216,  1218,  1220,  1222,
-  1233,  1248,  1254,  1256,  1265,  1266,  1267,  1270,  1271,  1274,
-  1275,  1281,  1282,  1294,  1301,  1302,  1305,  1306,  1307,  1310,
-  1315,  1319,  1323,  1327,  1330,  1331,  1334,  1338,  1344,  1345,
-  1348,  1349,  1352,  1356,  1362,  1367,  1381,  1385,  1389,  1393,
-  1397,  1401,  1405,  1412,  1416,  1430,  1432,  1434,  1436,  1438,
-  1440,  1442,  1444,  1446,  1448,  1454,  1456,  1458,  1460,  1464,
-  1466,  1468,  1470,  1476,  1478,  1481,  1483,  1485,  1491,  1493,
-  1499,  1501,  1509,  1513,  1517,  1521,  1525,  1529,  1536,  1540,
-  1546,  1548,  1550,  1554,  1556,  1558,  1560,  1562,  1564,  1566,
-  1568,  1570,  1576,  1578,  1580,  1584,  1588,  1590,  1594,  1598,
-  1600,  1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,
-  1620,  1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1639,
-  1643,  1648,  1653,  1654,  1655,  1658,  1659,  1660,  1663,  1664,
-  1667,  1668,  1669,  1670,  1673,  1674,  1677,  1683,  1684,  1687,
-  1688,  1691,  1701,  1707,  1709,  1712,  1716,  1720,  1724,  1728,
-  1732,  1738,  1739,  1741,  1745,  1752,  1756,  1770,  1777,  1778,
-  1780,  1794,  1802,  1803,  1806,  1810,  1814,  1820,  1821,  1822,
-  1825,  1831,  1832,  1835,  1836,  1839,  1841,  1843,  1847,  1851,
-  1855,  1856,  1859,  1872,  1878,  1884,  1885,  1886,  1889,  1890,
-  1891,  1892,  1893,  1896,  1899,  1900,  1903,  1906,  1910,  1916,
-  1917,  1918,  1919,  1920,  1933,  1937,  1954,  1961,  1967,  1968,
-  1969,  1970,  1975,  1978,  1979,  1980,  1981,  1982,  1983,  1986,
-  1987,  1989,  2000,  2006,  2010,  2014,  2020,  2024,  2030,  2034,
-  2038,  2042,  2046,  2052,  2056,  2060,  2066,  2070,  2081,  2099,
-  2108,  2109,  2112,  2113,  2116,  2117,  2120,  2121,  2124,  2130,
-  2136,  2137,  2138,  2147,  2148,  2149,  2159,  2195,  2201,  2202,
-  2205,  2206,  2209,  2210,  2214,  2220,  2221,  2242,  2248,  2249,
-  2250,  2251,  2255,  2261,  2262,  2266,  2273,  2279,  2279,  2281,
-  2282,  2283,  2284,  2285,  2286,  2287,  2288,  2291,  2295,  2297,
-  2299,  2312,  2319,  2320,  2323,  2324,  2337,  2339,  2346,  2347,
-  2348,  2349,  2350,  2353,  2354,  2357,  2359,  2361,  2365,  2366,
-  2367,  2368,  2371,  2375,  2382,  2383,  2384,  2385,  2388,  2389,
-  2401,  2407,  2413,  2417,  2435,  2436,  2437,  2438,  2439,  2441,
-  2442,  2443,  2453,  2467,  2481,  2491,  2497,  2498,  2501,  2502,
-  2505,  2506,  2507,  2510,  2511,  2512,  2522,  2536,  2550,  2554,
-  2562,  2563,  2566,  2567,  2570,  2571,  2574,  2576,  2588,  2606,
-  2607,  2608,  2609,  2610,  2611,  2628,  2634,  2638,  2642,  2646,
-  2650,  2656,  2657,  2660,  2663,  2667,  2681,  2688,  2694,  2695,
-  2698,  2699,  2700,  2701,  2704,  2705,  2715,  2731,  2734,  2764,
-  2765,  2766,  2767,  2768,  2785,  2802,  2806,  2810,  2815,  2820,
-  2828,  2838,  2839,  2840,  2843,  2844,  2847,  2848,  2851,  2852,
-  2853,  2854,  2857,  2858,  2861,  2862,  2865,  2871,  2872,  2873,
-  2874,  2875,  2876,  2879,  2881,  2883,  2885,  2887,  2889,  2893,
-  2894,  2895,  2898,  2899,  2909,  2910,  2913,  2915,  2917,  2921,
-  2922,  2925,  2929,  2932,  2936,  2940,  2945,  2949,  2963,  2967,
-  2973,  2975,  2977,  2981,  2983,  2987,  2991,  2995,  3005,  3007,
-  3011,  3017,  3021,  3034,  3038,  3042,  3047,  3052,  3057,  3062,
-  3067,  3071,  3077,  3078,  3089,  3090,  3093,  3094,  3097,  3103,
-  3104,  3107,  3112,  3118,  3124,  3133,  3141,  3147,  3156,  3164,
-  3165,  3166,  3167,  3168,  3169,  3170,  3184,  3188,  3194,  3195,
-  3196,  3197,  3200,  3206,  3207,  3208,  3209,  3210,  3211,  3212,
-  3213,  3214,  3215,  3216,  3217,  3218,  3219,  3220,  3221,  3222,
-  3223,  3224,  3225,  3226,  3227,  3228,  3229,  3230,  3231,  3232,
-  3233,  3234,  3235,  3236,  3237,  3238,  3239,  3240,  3248,  3252,
-  3256,  3260,  3266,  3268,  3270,  3272,  3276,  3284,  3290,  3302,
-  3310,  3316,  3328,  3336,  3346,  3361,  3367,  3374,  3375,  3376,
-  3377,  3380,  3381,  3384,  3385,  3388,  3389,  3392,  3396,  3400,
-  3404,  3410,  3411,  3412,  3413,  3414,  3415,  3418,  3419,  3422,
-  3423,  3424,  3425,  3426,  3427,  3428,  3429,  3430,  3440,  3442,
-  3457,  3461,  3465,  3469,  3473,  3479,  3485,  3486,  3487,  3488,
-  3489,  3490,  3491,  3492,  3493,  3496,  3497,  3501,  3505,  3520,
-  3524,  3526,  3528,  3532,  3534,  3536,  3538,  3540,  3542,  3544,
-  3546,  3548,  3550,  3552,  3554,  3556,  3561,  3563,  3565,  3569,
-  3573,  3575,  3577,  3579,  3581,  3583,  3585,  3589,  3593,  3597,
-  3601,  3605,  3611,  3615,  3621,  3625,  3629,  3633,  3637,  3641,
-  3646,  3650,  3654,  3658,  3662,  3664,  3666,  3668,  3675,  3679,
-  3683,  3687,  3691,  3695,  3699,  3703,  3707,  3711,  3715,  3719,
-  3723,  3727,  3731,  3735,  3739,  3743,  3747,  3751,  3755,  3759,
-  3763,  3767,  3771,  3775,  3779,  3783,  3787,  3791,  3795,  3799,
-  3803,  3807,  3811,  3815,  3817,  3819,  3821,  3823,  3832,  3836,
-  3838,  3842,  3844,  3846,  3848,  3850,  3852,  3854,  3856,  3861,
-  3863,  3865,  3869,  3873,  3875,  3877,  3879,  3881,  3885,  3889,
-  3893,  3897,  3903,  3907,  3913,  3917,  3921,  3925,  3930,  3934,
-  3938,  3942,  3946,  3950,  3954,  3958,  3962,  3964,  3966,  3970,
-  3974,  3976,  3980,  3981,  3982,  3985,  3987,  3991,  3995,  3997,
-  3999,  4001,  4003,  4005,  4007,  4009,  4011,  4015,  4019,  4021,
-  4023,  4025,  4027,  4031,  4035,  4039,  4043,  4048,  4052,  4056,
-  4060,  4066,  4070,  4074,  4076,  4082,  4084,  4088,  4090,  4092,
-  4096,  4100,  4104,  4106,  4110,  4114,  4118,  4120,  4139,  4141,
-  4147,  4153,  4155,  4159,  4165,  4166,  4169,  4173,  4177,  4181,
-  4185,  4191,  4193,  4195,  4206,  4208,  4210,  4213,  4217,  4221,
-  4232,  4234,  4239,  4243,  4247,  4251,  4257,  4258,  4261,  4265,
-  4278,  4279,  4280,  4281,  4282,  4288,  4289,  4291,  4297,  4301,
-  4305,  4309,  4313,  4315,  4319,  4325,  4331,  4332,  4333,  4341,
-  4348,  4350,  4352,  4363,  4364,  4365,  4366,  4367,  4368,  4369,
-  4370,  4371,  4372,  4373,  4374,  4375,  4376,  4377,  4378,  4379,
-  4380,  4381,  4382,  4383,  4384,  4385,  4386,  4387,  4388,  4389,
-  4390,  4391,  4392,  4393,  4394,  4395,  4396,  4397,  4398,  4399,
-  4400,  4401,  4402,  4403,  4404,  4405,  4406,  4407,  4408,  4409,
-  4410,  4411,  4412,  4413,  4414,  4416,  4417,  4418,  4419,  4420,
-  4421,  4422,  4423,  4424,  4425,  4426,  4427,  4428,  4429,  4430,
-  4431,  4432,  4433,  4434,  4435,  4436,  4437,  4438,  4439,  4440,
-  4441,  4442,  4443,  4444,  4445,  4446,  4447,  4448,  4449,  4450,
-  4451,  4452,  4453,  4454,  4455,  4456,  4457,  4458,  4459,  4460,
-  4461,  4462,  4463,  4464,  4465,  4466,  4467,  4468,  4469,  4470,
-  4482,  4483,  4484,  4485,  4486,  4487,  4488,  4489,  4490,  4491,
-  4492,  4493,  4494,  4495,  4496,  4497,  4498,  4499,  4500,  4501,
-  4502,  4503,  4504,  4505,  4506,  4507,  4508,  4509,  4510,  4511,
-  4512,  4513,  4514,  4515,  4516,  4517,  4518,  4519,  4522,  4529,
-  4545,  4549,  4554,  4559,  4570,  4593,  4597,  4605,  4622,  4633,
-  4634,  4636,  4637,  4639,  4640,  4642,  4643,  4645,  4646,  4648,
-  4652,  4656,  4660,  4665,  4670,  4671,  4673,  4697,  4710,  4716,
-  4759,  4764,  4769,  4776,  4778,  4780,  4784,  4789,  4794,  4799,
-  4804,  4805,  4806,  4807,  4808,  4809,  4810,  4812,  4819,  4826,
-  4833,  4840,  4848,  4860,  4865,  4867,  4874,  4881,  4889,  4897,
-  4898,  4900,  4901,  4902,  4903,  4904,  4905,  4906,  4907,  4908,
-  4909,  4910,  4912,  4914,  4918,  4923,  4998,  4999,  5001,  5002,
-  5008,  5016,  5018,  5019,  5020,  5021,  5023,  5024,  5029,  5042,
-  5054,  5058,  5058,  5065,  5070,  5074,  5075,  5080,  5080,  5086,
-  5096,  5112,  5117,  5118,  5120,  5120,  5126,  5134,  5176,  5182,
-  5188,  5197,  5206,  5214,  5220,  5226,  5235,  5244,  5251,  5252,
-  5254,  5261,  5268,  5275,  5282,  5289,  5296,  5303,  5310,  5317,
-  5324,  5331,  5338,  5343,  5351,  5356,  5364,  5375,  5375,  5377,
-  5381,  5387,  5393,  5398,  5402,  5407,  5478,  5533,  5538,  5543,
-  5549,  5554,  5559,  5564,  5569,  5574,  5579,  5584,  5591,  5595,
-  5597,  5599,  5603,  5605,  5607,  5609,  5611,  5613,  5615,  5617,
-  5619,  5621,  5623,  5625,  5627,  5631,  5633,  5635,  5639,  5643,
-  5645,  5647,  5649,  5651,  5653,  5655,  5659,  5663,  5667,  5671,
-  5675,  5681,  5685,  5691,  5695,  5699,  5703,  5707,  5711,  5716,
-  5720,  5724,  5728,  5732,  5734,  5736,  5738,  5745,  5749,  5753,
-  5757,  5761,  5765,  5769,  5773,  5777,  5781,  5785,  5789,  5793,
-  5797,  5801,  5805,  5809,  5813,  5817,  5821,  5825,  5829,  5833,
-  5837,  5841,  5845,  5849,  5853,  5857,  5861,  5865,  5869,  5873,
-  5877,  5881,  5885,  5887,  5889,  5891,  5893,  5897,  5897,  5899,
-  5901,  5902,  5904,  5905,  5907,  5911,  5915,  5920,  5922,  5923,
-  5924,  5925,  5927,  5928,  5933,  5935,  5937,  5938,  5943,  5943,
-  5945,  5946,  5947,  5948,  5949,  5950,  5951,  5952,  5953,  5954,
-  5955,  5956,  5957,  5958,  5959,  5960,  5961,  5962,  5963,  5964,
-  5965,  5966,  5967,  5968,  5969,  5970,  5971,  5972,  5973,  5974,
-  5975,  5976,  5977,  5978,  5980,  5981,  5982,  5983,  5984,  5986,
-  5987,  5988,  5989,  5990,  5992,  5997
-};
-#endif
-
-
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
-
-static const char * const yytname[] = {   "$","error","$undefined.","SQL_AT",
-"SQL_AUTOCOMMIT","SQL_BOOL","SQL_BREAK","SQL_CALL","SQL_CONNECT","SQL_CONNECTION",
-"SQL_CONTINUE","SQL_DEALLOCATE","SQL_DISCONNECT","SQL_ENUM","SQL_FOUND","SQL_FREE",
-"SQL_GO","SQL_GOTO","SQL_IDENTIFIED","SQL_IMMEDIATE","SQL_INDICATOR","SQL_INT",
-"SQL_LONG","SQL_OFF","SQL_OPEN","SQL_PREPARE","SQL_RELEASE","SQL_REFERENCE",
-"SQL_SECTION","SQL_SHORT","SQL_SIGNED","SQL_SQLERROR","SQL_SQLPRINT","SQL_SQLWARNING",
-"SQL_START","SQL_STOP","SQL_STRUCT","SQL_UNSIGNED","SQL_VAR","SQL_WHENEVER",
-"S_ANYTHING","S_AUTO","S_BOOL","S_CHAR","S_CONST","S_DOUBLE","S_ENUM","S_EXTERN",
-"S_FLOAT","S_INT","S","S_LONG","S_REGISTER","S_SHORT","S_SIGNED","S_STATIC",
-"S_STRUCT","S_UNION","S_UNSIGNED","S_VARCHAR","TYPECAST","ABSOLUTE","ACTION",
-"ADD","ALL","ALTER","AND","ANY","AS","ASC","BEGIN_TRANS","BETWEEN","BOTH","BY",
-"CASCADE","CASE","CAST","CHAR","CHARACTER","CHECK","CLOSE","COALESCE","COLLATE",
-"COLUMN","COMMIT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME",
-"CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DAY_P","DECIMAL","DECLARE","DEFAULT",
-"DELETE","DESC","DISTINCT","DOUBLE","DROP","ELSE","END_TRANS","EXCEPT","EXECUTE",
-"EXISTS","EXTRACT","FALSE_P","FETCH","FLOAT","FOR","FOREIGN","FROM","FULL","GLOBAL",
-"GRANT","GROUP","HAVING","HOUR_P","IN","INNER_P","INSENSITIVE","INSERT","INTERSECT",
-"INTERVAL","INTO","IS","ISOLATION","JOIN","KEY","LANGUAGE","LEADING","LEFT",
-"LEVEL","LIKE","LOCAL","MATCH","MINUTE_P","MONTH_P","NAMES","NATIONAL","NATURAL",
-"NCHAR","NEXT","NO","NOT","NULLIF","NULL_P","NUMERIC","OF","ON","ONLY","OPTION",
-"OR","ORDER","OUTER_P","PARTIAL","POSITION","PRECISION","PRIMARY","PRIOR","PRIVILEGES",
-"PROCEDURE","PUBLIC","READ","REFERENCES","RELATIVE","REVOKE","RIGHT","ROLLBACK",
-"SCROLL","SECOND_P","SELECT","SET","SUBSTRING","TABLE","TEMP","TEMPORARY","THEN",
-"TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSACTION",
-"TRIM","TRUE_P","UNION","UNIQUE","UPDATE","USER","USING","VALUES","VARCHAR",
-"VARYING","VIEW","WHEN","WHERE","WITH","WORK","YEAR_P","ZONE","TRIGGER","COMMITTED",
-"SERIALIZABLE","TYPE_P","ABORT_TRANS","ACCESS","AFTER","AGGREGATE","ANALYZE",
-"BACKWARD","BEFORE","BINARY","CACHE","CLUSTER","COPY","CREATEDB","CREATEUSER",
-"CYCLE","DATABASE","DELIMITERS","DO","EACH","ENCODING","EXCLUSIVE","EXPLAIN",
-"EXTEND","FORWARD","FUNCTION","HANDLER","INCREMENT","INDEX","INHERITS","INSTEAD",
-"ISNULL","LANCOMPILER","LIMIT","LISTEN","UNLISTEN","LOAD","LOCATION","LOCK_P",
-"MAXVALUE","MINVALUE","MODE","MOVE","NEW","NOCREATEDB","NOCREATEUSER","NONE",
-"NOTHING","NOTIFY","NOTNULL","OFFSET","OIDS","OPERATOR","PASSWORD","PROCEDURAL",
-"RENAME","RESET","RETURNS","ROW","RULE","SERIAL","SEQUENCE","SETOF","SHARE",
-"SHOW","START","STATEMENT","STDIN","STDOUT","TRUSTED","UNTIL","VACUUM","VALID",
-"VERBOSE","VERSION","IDENT","SCONST","Op","CSTRING","CVARIABLE","CPP_LINE","ICONST",
-"PARAM","FCONST","OP","'='","'<'","'>'","'+'","'-'","'*'","'/'","'%'","'|'",
-"':'","';'","UMINUS","'.'","'['","']'","','","'('","')'","'{'","'}'","\"=\"",
-"prog","statements","statement","opt_at","stmt","CreateUserStmt","AlterUserStmt",
-"DropUserStmt","user_passwd_clause","user_createdb_clause","user_createuser_clause",
-"user_group_list","user_group_clause","user_valid_clause","VariableSetStmt",
-"opt_level","var_value","zone_value","VariableShowStmt","VariableResetStmt",
-"AddAttrStmt","alter_clause","ClosePortalStmt","CopyStmt","copy_dirn","copy_file_name",
-"opt_binary","opt_with_copy","copy_delimiter","CreateStmt","OptTemp","OptTempType",
-"OptTempScope","OptTableElementList","OptTableElement","columnDef","ColQualifier",
-"ColQualList","ColPrimaryKey","ColConstraint","ColConstraintElem","default_list",
-"default_expr","TableConstraint","ConstraintElem","constraint_list","constraint_expr",
-"c_list","c_expr","key_match","key_actions","key_action","key_reference","OptInherit",
-"CreateAsStmt","OptCreateAs","CreateAsList","CreateAsElement","CreateSeqStmt",
-"OptSeqList","OptSeqElem","NumericOnly","FloatOnly","IntegerOnly","CreatePLangStmt",
-"PLangTrusted","DropPLangStmt","CreateTrigStmt","TriggerActionTime","TriggerEvents",
-"TriggerOneEvent","TriggerForSpec","TriggerForOpt","TriggerForType","TriggerFuncArgs",
-"TriggerFuncArg","DropTrigStmt","DefineStmt","def_rest","def_type","def_name",
-"definition","def_list","def_elem","def_arg","DestroyStmt","FetchStmt","opt_direction",
-"fetch_how_many","opt_portal_name","GrantStmt","privileges","operation_commalist",
-"operation","grantee","opt_with_grant","RevokeStmt","IndexStmt","index_opt_unique",
-"access_method_clause","index_params","index_list","func_index","index_elem",
-"opt_type","opt_class","ExtendStmt","ProcedureStmt","opt_with","func_args","func_args_list",
-"func_return","set_opt","RemoveStmt","remove_type","RemoveAggrStmt","aggr_argtype",
-"RemoveFuncStmt","RemoveOperStmt","all_Op","MathOp","oper_argtypes","RenameStmt",
-"opt_name","opt_column","RuleStmt","@1","RuleActionList","RuleActionBlock","RuleActionMulti",
-"RuleActionStmt","event_object","event","opt_instead","NotifyStmt","ListenStmt",
-"UnlistenStmt","TransactionStmt","opt_trans","ViewStmt","LoadStmt","CreatedbStmt",
-"opt_database1","opt_database2","location","encoding","DestroydbStmt","ClusterStmt",
-"VacuumStmt","opt_verbose","opt_analyze","opt_va_list","va_list","ExplainStmt",
-"OptimizableStmt","InsertStmt","insert_rest","opt_column_list","columnList",
-"columnElem","DeleteStmt","LockStmt","opt_lock","lock_type","opt_lmode","UpdateStmt",
-"CursorStmt","@2","opt_cursor","SelectStmt","select_clause","SubSelect","result",
-"opt_table","opt_union","opt_unique","sort_clause","sortby_list","sortby","OptUseOp",
-"opt_select_limit","select_limit_value","select_offset_value","opt_inh_star",
-"relation_name_list","name_list","group_clause","having_clause","for_update_clause",
-"update_list","from_clause","from_expr","table_list","table_expr","join_clause_with_union",
-"join_clause","join_list","join_expr","join_type","join_outer","join_qual","using_list",
-"using_expr","where_clause","relation_expr","opt_array_bounds","nest_array_bounds",
-"Iresult","Typename","Array","Generic","generic","Numeric","numeric","opt_float",
-"opt_numeric","opt_decimal","Character","character","opt_varying","opt_charset",
-"opt_collate","Datetime","datetime","opt_timezone","opt_interval","a_expr_or_null",
-"row_expr","row_descriptor","row_op","sub_type","row_list","a_expr","b_expr",
-"opt_indirection","expr_list","extract_list","extract_arg","position_list","position_expr",
-"substr_list","substr_from","substr_for","trim_list","in_expr","in_expr_nodes",
-"not_in_expr","not_in_expr_nodes","case_expr","when_clause_list","when_clause",
-"case_default","case_arg","attr","attrs","res_target_list","res_target_el","res_target_list2",
-"res_target_el2","opt_id","relation_name","database_name","access_method","attr_name",
-"class","index_name","name","func_name","file_name","AexprConst","ParamNo","Iconst",
-"Fconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation",
-"ECPGConnect","connection_target","db_prefix","server","opt_server","server_name",
-"opt_port","opt_connection_name","opt_user","ora_user","user_name","char_variable",
-"opt_options","ECPGCursorStmt","ECPGDeallocate","ECPGDeclaration","@3","sql_startdeclare",
-"sql_enddeclare","variable_declarations","declaration","@4","@5","storage_clause",
-"type","enum_type","s_enum","struct_type","union_type","s_struct","s_union",
-"opt_symbol","simple_type","varchar_type","variable_list","variable","opt_initializer",
-"opt_pointer","ECPGDeclare","ECPGDisconnect","dis_name","connection_object",
-"ECPGExecute","@6","execstring","ECPGFree","ECPGOpen","opt_using","variablelist",
-"ECPGPrepare","ECPGRelease","ECPGSetAutocommit","on_off","to_equal","ECPGSetConnection",
-"ECPGTypedef","opt_type_array_bounds","nest_type_array_bounds","opt_reference",
-"ctype","@7","@8","opt_signed","sql_variable_declarations","sql_declaration",
-"@9","sql_variable_list","sql_variable","ECPGVar","ECPGWhenever","action","ecpg_expr",
-"into_list","ecpgstart","dotext","vartext","coutputvariable","cinputvariable",
-"civariableonly","cvariable","indicator","ident","symbol","cpp_line","c_line",
-"c_thing","c_anything","do_anything","var_anything","blockstart","blockend", NULL
-};
-#endif
-
-static const short yyr1[] = {     0,
-   313,   314,   314,   315,   315,   315,   315,   315,   315,   315,
-   316,   317,   317,   317,   317,   317,   317,   317,   317,   317,
-   317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
-   317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
-   317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
-   317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
-   317,   317,   317,   317,   317,   317,   317,   317,   318,   319,
-   320,   321,   321,   322,   322,   322,   323,   323,   323,   324,
-   324,   325,   325,   326,   326,   327,   327,   327,   327,   327,
-   328,   328,   329,   329,   330,   330,   330,   331,   331,   331,
-   332,   332,   332,   333,   334,   334,   334,   334,   334,   334,
-   335,   336,   337,   337,   338,   338,   338,   339,   339,   340,
-   340,   341,   341,   342,   343,   343,   344,   344,   344,   345,
-   345,   346,   346,   346,   347,   347,   348,   348,   349,   349,
-   350,   350,   351,   351,   352,   352,   353,   353,   353,   353,
-   353,   353,   353,   354,   354,   355,   355,   355,   355,   355,
-   355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
-   355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
-   355,   355,   356,   356,   357,   357,   357,   357,   358,   358,
-   359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
-   359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
-   359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
-   359,   359,   359,   359,   359,   359,   359,   359,   359,   360,
-   360,   361,   362,   362,   362,   363,   363,   363,   364,   364,
-   365,   365,   365,   365,   366,   366,   367,   368,   368,   369,
-   369,   370,   371,   372,   372,   373,   373,   373,   373,   373,
-   373,   374,   374,   375,   375,   376,   376,   377,   378,   378,
-   379,   380,   381,   381,   382,   382,   382,   383,   383,   383,
-   384,   385,   385,   386,   386,   387,   387,   387,   388,   388,
-   388,   388,   389,   390,   391,   392,   392,   392,   393,   393,
-   393,   393,   393,   394,   395,   395,   396,   396,   396,   397,
-   397,   397,   397,   397,   398,   398,   399,   399,   400,   400,
-   400,   400,   400,   401,   401,   401,   401,   401,   401,   402,
-   402,   402,   403,   404,   404,   404,   405,   405,   406,   406,
-   406,   406,   406,   407,   407,   407,   408,   408,   409,   410,
-   411,   411,   412,   412,   413,   413,   414,   414,   415,   416,
-   417,   417,   417,   418,   418,   418,   419,   420,   421,   421,
-   422,   422,   423,   423,   424,   425,   425,   426,   427,   427,
-   427,   427,   428,   429,   429,   430,   431,   432,   432,   433,
-   433,   433,   433,   433,   433,   433,   433,   434,   434,   434,
-   434,   435,   436,   436,   437,   437,   439,   438,   440,   440,
-   440,   440,   440,   441,   441,   442,   442,   442,   443,   443,
-   443,   443,   444,   444,   445,   445,   445,   445,   446,   446,
-   447,   448,   449,   449,   450,   450,   450,   450,   450,   451,
-   451,   451,   452,   453,   454,   454,   455,   455,   456,   456,
-   457,   457,   457,   458,   458,   458,   459,   460,   461,   461,
-   462,   462,   463,   463,   464,   464,   465,   465,   466,   467,
-   467,   467,   467,   467,   467,   468,   469,   469,   469,   469,
-   469,   470,   470,   471,   471,   472,   473,   474,   475,   475,
-   476,   476,   476,   476,   477,   477,   478,   480,   479,   481,
-   481,   481,   481,   481,   482,   483,   483,   483,   483,   483,
-   484,   485,   485,   485,   486,   486,   487,   487,   488,   488,
-   488,   488,   489,   489,   490,   490,   491,   492,   492,   492,
-   492,   492,   492,   493,   493,   493,   493,   493,   493,   494,
-   494,   494,   495,   495,   496,   496,   497,   498,   498,   499,
-   499,   500,   500,   501,   501,   501,   502,   502,   503,   503,
-   504,   504,   504,   505,   505,   506,   506,   506,   507,   507,
-   508,   509,   509,   510,   510,   510,   511,   511,   511,   511,
-   511,   511,   512,   512,   513,   513,   514,   514,   515,   516,
-   516,   517,   517,   518,   518,   518,   519,   519,   519,   520,
-   520,   520,   520,   520,   520,   520,   521,   521,   522,   522,
-   522,   522,   523,   524,   524,   524,   524,   524,   524,   524,
-   524,   524,   524,   524,   524,   524,   524,   524,   524,   524,
-   524,   524,   524,   524,   524,   524,   524,   524,   524,   524,
-   524,   524,   524,   524,   524,   524,   524,   524,   525,   525,
-   525,   525,   526,   526,   526,   526,   527,   527,   528,   528,
-   528,   529,   529,   529,   530,   530,   531,   531,   531,   531,
-   531,   532,   532,   533,   533,   534,   534,   535,   535,   535,
-   535,   536,   536,   536,   536,   536,   536,   537,   537,   538,
-   538,   538,   538,   538,   538,   538,   538,   538,   539,   539,
-   540,   540,   540,   540,   540,   541,   542,   542,   542,   542,
-   542,   542,   542,   542,   542,   543,   543,   544,   544,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
-   545,   545,   545,   545,   545,   545,   545,   545,   546,   546,
-   546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
-   546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
-   546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
-   546,   546,   546,   547,   547,   547,   548,   548,   548,   549,
-   549,   549,   550,   550,   550,   551,   551,   552,   552,   552,
-   552,   552,   552,   552,   552,   552,   552,   552,   552,   552,
-   552,   552,   552,   552,   552,   552,   552,   552,   552,   552,
-   552,   553,   553,   554,   554,   555,   555,   556,   556,   556,
-   557,   557,   558,   558,   559,   559,   560,   560,   561,   561,
-   561,   562,   562,   563,   564,   564,   565,   565,   565,   566,
-   566,   567,   567,   567,   568,   568,   568,   569,   569,   569,
-   570,   570,   571,   571,   571,   571,   572,   572,   573,   573,
-   574,   575,   576,   577,   578,   579,   580,   581,   582,   582,
-   582,   582,   582,   582,   582,   583,   584,   585,   586,   587,
-   588,   588,   588,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   589,   589,   589,   589,   589,   589,   589,   589,   589,   589,
-   590,   590,   590,   590,   590,   590,   590,   590,   590,   590,
-   590,   590,   590,   590,   590,   590,   590,   590,   590,   590,
-   590,   590,   590,   590,   590,   590,   590,   590,   590,   590,
-   590,   590,   590,   590,   590,   590,   590,   590,   591,   591,
-   592,   592,   592,   593,   593,   593,   593,   594,   595,   596,
-   596,   597,   597,   598,   598,   599,   599,   600,   600,   601,
-   601,   601,   601,   602,   602,   602,   603,   604,   604,   605,
-   606,   608,   607,   609,   610,   611,   611,   613,   614,   612,
-   615,   615,   615,   615,   615,   615,   615,   616,   616,   616,
-   616,   616,   616,   617,   618,   619,   620,   621,   622,   623,
-   623,   624,   624,   624,   624,   624,   624,   624,   624,   624,
-   624,   624,   625,   626,   626,   627,   628,   628,   629,   629,
-   630,   631,   632,   632,   632,   632,   633,   633,   634,   635,
-   634,   636,   636,   637,   638,   639,   639,   640,   640,   641,
-   642,   643,   644,   644,   645,   645,   646,   647,   648,   648,
-   648,   648,   648,   649,   649,   649,   649,   649,   650,   650,
-   651,   651,   651,   651,   651,   651,   651,   651,   651,   651,
-   651,   651,   652,   651,   653,   651,   651,   654,   654,   655,
-   655,   657,   656,   658,   658,   659,   660,   661,   661,   661,
-   662,   662,   662,   662,   662,   662,   662,   662,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   663,   663,   663,
-   663,   663,   663,   663,   663,   663,   663,   664,   664,   665,
-   666,   666,   667,   667,   668,   669,   670,   671,   672,   672,
-   672,   672,   673,   673,   674,   675,   676,   676,   677,   677,
-   678,   678,   678,   678,   678,   678,   678,   678,   678,   678,
-   678,   678,   678,   678,   678,   678,   678,   678,   678,   678,
-   678,   678,   678,   678,   678,   678,   678,   678,   678,   678,
-   678,   678,   678,   678,   679,   679,   679,   679,   679,   680,
-   680,   680,   680,   680,   681,   682
-};
-
-static const short yyr2[] = {     0,
-     1,     0,     2,     4,     3,     1,     1,     1,     1,     1,
-     2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     8,     8,
-     3,     3,     0,     1,     1,     0,     1,     1,     0,     3,
-     1,     3,     0,     3,     0,     4,     4,     4,     5,     3,
-     2,     1,     1,     1,     1,     1,     1,     2,     3,     4,
-     2,     3,     4,     5,     3,     4,     3,     6,     5,     2,
-     2,     7,     1,     1,     1,     1,     1,     1,     0,     2,
-     0,     3,     0,     8,     1,     2,     1,     1,     0,     1,
-     1,     3,     1,     0,     1,     1,     3,     3,     1,     0,
-     2,     1,     2,     0,     3,     1,     4,     2,     2,     2,
-     1,     2,     5,     3,     1,     1,     2,     3,     3,     3,
-     3,     3,     3,     3,     3,     2,     2,     3,     6,     3,
-     3,     4,     3,     2,     2,     1,     1,     4,     1,     4,
-     1,     1,     3,     1,     4,     4,     5,    10,     3,     1,
-     1,     1,     1,     2,     3,     3,     3,     3,     3,     3,
-     3,     3,     2,     2,     3,     6,     3,     3,     4,     3,
-     3,     4,     3,     3,     2,     2,     2,     2,     3,     2,
-     4,     3,     3,     4,     4,     5,     6,     5,     6,     3,
-     1,     1,     2,     2,     0,     2,     1,     0,     3,     3,
-     2,     1,     2,     2,     4,     0,     7,     3,     0,     3,
-     1,     1,     4,     2,     0,     2,     1,     2,     2,     2,
-     2,     1,     1,     1,     2,     1,     2,     9,     1,     0,
-     4,    14,     1,     1,     1,     3,     5,     1,     1,     1,
-     3,     1,     0,     1,     1,     1,     3,     0,     1,     1,
-     1,     1,     5,     3,     2,     1,     1,     1,     1,     1,
-     1,     1,     1,     3,     1,     3,     3,     1,     3,     1,
-     1,     1,     1,     2,     3,     3,     6,     4,     1,     1,
-     1,     1,     0,     1,     2,     1,     1,     1,     0,     2,
-     2,     0,     7,     2,     1,     1,     1,     3,     1,     1,
-     1,     1,     1,     1,     2,     1,     3,     0,     6,    11,
-     1,     0,     2,     0,     1,     1,     3,     1,     6,     3,
-     2,     2,     0,     1,     2,     0,     4,    11,     2,     0,
-     3,     2,     1,     3,     2,     1,     0,     3,     1,     1,
-     1,     1,     4,     1,     1,     4,     6,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
-     3,     9,     1,     0,     1,     0,     0,    13,     1,     1,
-     1,     3,     3,     1,     1,     2,     3,     2,     1,     1,
-     1,     1,     3,     1,     1,     1,     1,     1,     1,     0,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
-     1,     0,     5,     2,     6,     3,     3,     0,     3,     0,
-     1,     1,     0,     1,     1,     0,     3,     4,     3,     5,
-     1,     0,     1,     0,     3,     0,     1,     3,     3,     1,
-     1,     1,     1,     1,     1,     4,     4,     2,     1,     7,
-     4,     3,     0,     3,     1,     2,     4,     4,     3,     0,
-     3,     2,     2,     1,     1,     1,     6,     0,     7,     1,
-     1,     1,     2,     0,     4,     3,     1,     3,     4,     4,
-     8,     4,     2,     0,     1,     0,     1,     0,     1,     3,
-     1,     0,     3,     0,     1,     3,     2,     2,     2,     2,
-     1,     1,     0,     4,     4,     2,     4,     2,     0,     1,
-     1,     1,     1,     1,     1,     0,     1,     1,     3,     3,
-     0,     2,     0,     3,     3,     0,     2,     0,     2,     0,
-     3,     1,     1,     3,     1,     3,     2,     1,     1,     4,
-     2,     2,     1,     4,     4,     3,     2,     2,     2,     1,
-     1,     0,     1,     0,     4,     2,     3,     1,     1,     2,
-     0,     1,     2,     3,     4,     0,     3,     4,     0,     1,
-     3,     3,     3,     3,     3,     3,     2,     2,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
-     2,     2,     1,     2,     1,     1,     3,     0,     5,     3,
-     0,     5,     3,     0,     4,     1,     4,     2,     1,     3,
-     2,     1,     0,     3,     0,     2,     0,     1,     2,     1,
-     2,     1,     1,     1,     1,     1,     1,     3,     0,     1,
-     3,     3,     3,     3,     3,     3,     3,     0,     1,     1,
-     7,     8,     8,     7,     7,     3,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     3,     1,     2,
-     1,     1,     1,     2,     2,     2,     3,     3,     3,     3,
-     3,     3,     3,     3,     3,     3,     2,     2,     3,     6,
-     3,     3,     3,     4,     2,     2,     4,     3,     4,     1,
-     1,     4,     1,     4,     1,     1,     4,     4,     4,     4,
-     5,     5,     5,     4,     2,     3,     2,     4,     3,     4,
-     3,     4,     5,     6,     5,     6,     5,     5,     5,     5,
-     5,     5,     5,     5,     5,     6,     6,     6,     6,     6,
-     6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
-     6,     6,     6,     3,     3,     2,     1,     1,     2,     1,
-     1,     2,     2,     2,     3,     3,     3,     3,     3,     2,
-     2,     3,     6,     3,     3,     2,     2,     3,     4,     1,
-     1,     4,     1,     4,     1,     1,     4,     4,     5,     5,
-     5,     4,     1,     4,     6,     0,     1,     3,     3,     3,
-     0,     1,     1,     1,     1,     3,     0,     2,     1,     2,
-     3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
-     2,     2,     1,     3,     4,     4,     4,     5,     5,     5,
-     4,     3,     0,     2,     0,     2,     0,     3,     2,     1,
-     1,     1,     1,     3,     1,     1,     1,     3,     5,     6,
-     4,     2,     1,     4,     2,     0,     2,     1,     0,     3,
-     3,     1,     3,     3,     3,     1,     1,     4,     2,     3,
-     3,     1,     3,     1,     3,     1,     1,     0,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     2,     1,     1,     1,     2,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     5,     3,     2,     3,     6,     1,     1,     2,     2,     1,
-     0,     1,     3,     2,     0,     2,     0,     2,     0,     1,
-     3,     4,     3,     1,     1,     1,     1,     2,     0,     6,
-     3,     0,     4,     5,     5,     0,     2,     0,     0,     6,
-     1,     1,     1,     1,     1,     1,     0,     1,     1,     1,
-     1,     1,     1,     4,     2,     4,     4,     2,     2,     0,
-     1,     1,     2,     1,     2,     1,     2,     1,     1,     1,
-     1,     2,     1,     1,     3,     4,     0,     2,     0,     1,
-     3,     2,     1,     1,     1,     0,     1,     1,     3,     0,
-     4,     1,     1,     2,     3,     0,     2,     1,     3,     4,
-     2,     4,     1,     1,     1,     1,     4,     6,     3,     3,
-     4,     4,     0,     3,     3,     4,     4,     0,     1,     0,
-     1,     1,     1,     1,     2,     1,     2,     2,     1,     2,
-     2,     2,     0,     5,     0,     5,     1,     1,     0,     0,
-     2,     0,     4,     1,     3,     3,     6,     3,     4,     3,
-     1,     1,     1,     2,     3,     5,     2,     5,     2,     1,
-     1,     1,     2,     2,     2,     3,     3,     3,     3,     3,
-     3,     3,     3,     3,     3,     2,     2,     3,     6,     3,
-     3,     3,     4,     2,     2,     4,     3,     4,     1,     1,
-     4,     1,     4,     1,     1,     4,     4,     4,     4,     5,
-     5,     5,     4,     2,     3,     2,     4,     3,     4,     3,
-     4,     5,     6,     5,     6,     5,     5,     5,     5,     5,
-     5,     5,     5,     5,     6,     6,     6,     6,     6,     6,
-     6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
-     6,     6,     3,     3,     2,     1,     1,     1,     3,     1,
-     0,     2,     1,     2,     2,     2,     1,     1,     0,     1,
-     2,     2,     1,     1,     1,     1,     1,     2,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     3,     1,     1
-};
-
-static const short yydefact[] = {     2,
-     1,  1350,  1398,  1380,  1381,  1382,  1383,  1384,  1385,  1386,
-  1387,  1388,  1389,  1390,  1391,  1392,  1393,  1394,  1395,  1396,
-  1397,  1371,  1372,  1366,   947,   948,  1403,  1376,  1377,  1375,
-  1378,  1379,  1370,  1399,  1400,  1404,  1401,  1402,  1415,  1416,
-     3,  1373,  1374,     6,  1132,     0,     8,     7,  1369,     9,
-    10,  1147,     0,     0,     0,  1186,     0,     0,     0,     0,
-     0,     0,   442,   928,   442,   129,     0,     0,     0,   442,
-     0,   323,     0,     0,     0,   442,   522,     0,     0,     0,
-   442,     0,   119,   462,     0,     0,     0,     0,   516,   323,
-     0,     0,     0,   462,     0,     0,     0,    21,    13,    27,
-    51,    52,    53,    12,    14,    15,    16,    17,    18,    19,
-    25,    20,    26,    23,    24,    30,    31,    42,    32,    28,
-    36,    40,    37,    39,    38,    41,    44,   474,    33,    34,
-    45,    46,    47,    48,    49,    22,    50,    29,    43,   473,
-   475,    35,   472,   471,   470,   524,   507,    54,    55,    56,
-    57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-    67,    68,  1146,  1144,  1141,  1145,  1143,  1142,     0,  1147,
-  1138,  1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,  1038,
-  1039,  1040,  1041,  1042,  1043,  1044,  1045,  1046,  1047,  1048,
-  1049,  1050,  1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,
-  1059,  1060,   956,   958,   684,   970,   685,   980,   983,   984,
-   987,   686,   683,   991,   996,   998,  1000,  1002,  1003,  1005,
-  1006,  1011,   687,  1020,  1021,  1022,  1023,   682,  1029,  1024,
-   964,  1014,  1026,   957,   959,   960,   961,   962,   963,   965,
-   966,   967,   968,   969,   971,   972,   973,   974,   975,   976,
-   977,   978,   979,   981,   982,   985,   986,   988,   989,   990,
-   992,   993,   994,   995,   997,   999,  1001,  1004,  1007,  1008,
-  1009,  1010,  1013,  1012,  1015,  1016,  1017,  1018,  1019,  1025,
-  1027,  1028,  1363,   949,  1364,  1358,   955,  1111,  1107,   931,
-    11,     0,  1106,  1127,   954,     0,  1126,  1124,  1103,  1120,
-  1125,   950,     0,  1185,  1184,  1188,  1187,  1182,  1183,  1194,
-  1196,   936,   954,     0,  1365,     0,     0,     0,     0,     0,
-     0,     0,   441,   440,   436,   111,   927,   437,   130,   131,
-   127,   128,   351,     0,     0,     0,   297,   298,     0,     0,
-   296,     0,     0,   269,     0,   125,   129,     0,     0,     0,
-  1017,   504,     0,     0,     0,   382,     0,   379,     0,     0,
-     0,   380,     0,     0,   381,     0,     0,   438,     0,  1190,
-   322,   321,   320,   319,   329,   335,   342,   340,   339,   341,
-   343,     0,   336,   337,     0,     0,   439,   521,   519,     0,
-     0,     0,   456,  1020,     0,     0,  1099,  1100,     0,   930,
-   929,     0,   435,     0,   935,   118,     0,   461,     0,     0,
-   432,   434,   433,   444,   938,   515,     0,   329,   431,  1020,
-     0,   101,  1020,     0,    98,   464,     0,   442,     0,     5,
-  1201,     0,   518,     0,   518,   556,  1133,     0,  1137,     0,
-     0,  1110,  1115,  1115,  1108,  1102,  1117,     0,     0,     0,
-  1131,     0,  1195,     0,  1239,     0,  1251,     0,     0,  1252,
-  1253,     0,  1248,  1250,     0,   546,    73,     0,    73,     0,
-     0,   446,     0,   937,     0,   255,     0,   126,     0,   300,
-   299,   303,   397,   395,   396,   390,   391,   392,   394,   393,
-   294,     0,   302,   301,     0,  1181,   501,   502,   500,     0,
-   591,   315,   547,   548,    71,     0,     0,   457,     0,   388,
-     0,   389,     0,   316,   378,  1193,  1192,  1189,  1196,   326,
-   327,   328,     0,   332,   324,   334,     0,     0,     0,     0,
-     0,  1030,   617,  1031,  1032,  1033,  1034,   622,  1035,  1036,
-  1037,  1038,  1039,  1040,  1041,  1042,  1043,  1044,  1045,  1046,
-  1047,  1048,  1049,  1050,  1051,  1052,  1053,  1054,  1055,  1056,
-  1057,  1058,  1059,  1060,   909,     0,   673,   673,     0,   750,
-   751,   753,   755,   664,   970,     0,     0,   945,   658,   698,
-     0,   673,     0,     0,   700,   661,     0,     0,  1020,  1021,
-     0,   944,   756,   669,  1026,     0,     0,   846,     0,   926,
-     0,     0,     0,     0,     0,   596,   609,   613,   611,   612,
-   666,   610,   955,   924,   721,   699,   807,   846,   514,   922,
-     0,     0,   722,   943,   939,   940,   941,   723,   808,  1359,
-   954,  1205,  1206,     0,     0,   455,    90,   454,     0,     0,
-     0,     0,     0,  1239,     0,   121,     0,   469,   591,   490,
-   332,   102,     0,    99,     0,   463,   459,   506,     4,   508,
-   517,     0,     0,     0,     0,   539,     0,  1170,  1171,  1169,
-  1160,  1168,  1164,  1166,  1162,  1160,  1160,     0,  1173,  1139,
-  1152,     0,  1150,  1151,     0,     0,  1148,  1149,  1153,  1112,
-  1109,     0,  1104,     0,     0,  1119,     0,  1123,  1121,  1197,
-  1198,  1200,  1229,  1226,  1238,  1233,     0,  1221,  1224,  1223,
-  1235,  1222,  1213,     0,  1237,     0,     0,  1254,  1032,     0,
-  1249,   545,     0,     0,    76,  1134,    76,     0,   274,   273,
-     0,   448,     0,     0,   407,   253,   249,     0,     0,   295,
-     0,   503,     0,     0,   487,     0,     0,   385,   383,   384,
-   386,     0,   271,  1191,   325,     0,     0,     0,     0,   338,
-     0,     0,     0,   476,   479,     0,   520,     0,   846,     0,
-     0,   908,     0,   672,   668,   675,     0,     0,     0,     0,
-   651,   650,     0,   851,     0,   649,   684,   685,   686,   682,
-   690,   681,   673,   671,     0,   806,     0,     0,     0,   652,
-   857,   883,     0,   679,     0,   616,   618,   619,   620,   621,
-   623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
-   633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
-   643,   644,   645,   646,   647,   648,     0,   680,   689,   615,
-   608,   678,   614,   745,     0,   946,   724,   725,   738,   737,
-     0,     0,     0,   699,   942,     0,   607,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   765,   767,   746,
-     0,     0,     0,     0,     0,     0,     0,   726,   720,   129,
-     0,   560,     0,     0,     0,     0,  1360,  1356,  1204,  1203,
-  1202,  1207,    96,    97,    88,    95,     0,    94,    86,    93,
-    87,   917,   846,   560,   916,     0,   846,  1213,   458,     0,
-     0,   504,   367,     0,   488,   318,   103,   100,   466,   510,
-   523,   525,   533,   509,     0,   558,     0,     0,   505,     0,
-  1155,  1161,  1158,  1159,  1172,  1165,  1167,  1163,  1179,     0,
-  1147,  1147,     0,  1114,     0,  1116,     0,  1101,  1122,     0,
-     0,  1230,  1232,  1231,     0,     0,     0,  1220,  1225,  1228,
-  1227,  1351,  1255,  1351,   406,   406,   406,   406,   104,     0,
-    74,    75,    79,    79,   443,   279,   278,   280,     0,   275,
-     0,   450,   655,   970,   653,   656,   372,     0,   952,   953,
-   373,   951,   377,     0,     0,   257,     0,     0,     0,     0,
-   254,   134,     0,     0,     0,   308,     0,   305,     0,   498,
-   590,   549,   293,     0,     0,   398,   331,   330,     0,     0,
-   478,     0,     0,   485,   846,     0,     0,   906,   903,   907,
-     0,     0,     0,   677,   847,     0,     0,     0,     0,     0,
-   854,   855,   853,     0,     0,   852,     0,     0,     0,     0,
-     0,   670,     0,   735,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   846,     0,   859,   873,   885,
-     0,     0,     0,     0,     0,     0,   699,   890,     0,     0,
-   750,   751,   753,   755,     0,     0,     0,     0,     0,     0,
-     0,   756,     0,     0,     0,     0,     0,     0,   721,     0,
-   807,   846,     0,   722,   723,     0,  1347,  1359,   741,     0,
-     0,   599,     0,     0,   600,     0,  1065,  1067,  1068,  1070,
-  1072,  1073,  1076,  1077,  1078,  1085,  1086,  1087,  1088,  1092,
-  1093,  1094,  1095,  1098,  1062,  1063,  1064,  1066,  1069,  1071,
-  1074,  1075,  1079,  1080,  1081,  1082,  1083,  1084,  1089,  1090,
-  1091,  1096,  1097,  1061,   923,   739,   804,     0,   830,   831,
-   833,   835,     0,     0,     0,   836,     0,     0,     0,     0,
-     0,     0,     0,   846,     0,   810,   811,   843,  1357,     0,
-   771,     0,   766,   769,   743,     0,     0,     0,   805,     0,
-     0,     0,   742,     0,     0,   734,     0,   736,     0,     0,
-     0,   732,     0,     0,     0,   733,     0,     0,     0,   727,
-     0,     0,     0,   728,     0,     0,     0,   731,     0,     0,
-     0,   729,     0,     0,     0,   730,   516,   513,  1348,  1359,
-   921,     0,   591,   925,   910,   912,   933,     0,   748,     0,
-   911,  1362,  1361,     0,    92,    89,   919,     0,   591,     0,
-     0,  1220,   120,   114,   113,     0,     0,     0,   496,     0,
-   495,     0,   494,     0,   460,     0,   531,   532,     0,   527,
-   555,     0,   554,   541,   542,   536,   540,   544,   538,   543,
-     0,  1180,     0,  1174,     0,     0,  1367,     0,     0,  1113,
-  1129,  1118,  1199,  1239,  1239,  1218,     0,  1218,     0,  1219,
-  1247,     0,     0,     0,   405,     0,     0,     0,   134,   110,
-     0,     0,     0,   404,    72,    77,    78,    83,    83,     0,
-     0,   453,     0,   445,   654,     0,   371,   376,   370,     0,
-     0,     0,   256,   266,   258,   259,   260,   261,     0,     0,
-   133,   135,   136,   184,     0,   251,   252,     0,     0,     0,
-     0,     0,   304,   354,     0,  1130,     0,   387,     0,   317,
-     0,   344,   348,   346,     0,     0,     0,   486,   349,     0,
-     0,   902,     0,     0,     0,     0,   667,     0,     0,   901,
-   752,   754,     0,   663,   757,   758,     0,   657,   692,   693,
-   694,   695,   697,   696,   691,     0,     0,   660,     0,   857,
-   883,     0,   871,   860,   866,     0,   759,     0,     0,   872,
-     0,     0,     0,     0,     0,   858,     0,     0,   887,   760,
-   688,     0,   889,     0,     0,     0,   764,     0,     0,     0,
-     0,   851,   806,  1345,     0,   857,   883,     0,   745,  1284,
-   724,  1263,   725,  1264,   738,  1277,   737,  1276,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   765,   767,   746,
-     0,     0,     0,     0,     0,     0,     0,   726,   720,     0,
-     0,   846,     0,     0,   707,   709,   708,   710,   711,   712,
-   713,   715,   714,     0,   706,     0,   594,     0,     0,     0,
-     0,     0,     0,   599,   665,     0,     0,     0,   857,   883,
-     0,   826,   812,   813,   821,   820,     0,     0,     0,   827,
-     0,     0,     0,     0,   814,   809,     0,   891,     0,   892,
-   893,   943,   770,   768,   772,     0,     0,   744,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1355,     0,   559,
-   563,   565,   562,   568,   592,   551,     0,   747,   749,    91,
-   915,   497,   920,     0,  1208,   116,   117,   123,   115,     0,
-   495,   493,   492,     0,   489,     0,   467,   526,   528,   529,
-   530,   557,     0,     0,     0,  1135,  1140,  1179,   596,  1154,
-  1368,  1156,  1157,     0,  1105,  1242,     0,  1239,     0,     0,
-     0,  1209,  1218,  1210,  1218,  1405,  1406,  1409,  1258,  1407,
-  1408,  1352,  1256,     0,     0,     0,     0,     0,     0,   105,
-     0,   107,     0,   403,     0,    85,    85,     0,   276,   452,
-   447,   451,   456,   374,     0,     0,   375,   427,   428,   425,
-   426,     0,   267,     0,     0,   246,     0,   248,   144,   140,
-   247,     0,     0,   391,   312,   262,   263,   309,   311,   264,
-   313,   310,   307,   306,     0,     0,   499,   400,   401,   399,
-   345,     0,   333,   477,   484,     0,   481,     0,   905,   899,
-     0,   674,   676,   849,   848,     0,   850,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   869,   867,   856,   870,
-   861,   862,   865,   863,   864,   874,     0,   884,     0,   882,
-   761,   762,   763,   888,     0,     0,     0,     0,     0,   735,
-     0,     0,     0,     0,     0,     0,   741,   739,   804,  1343,
-     0,     0,   771,     0,   766,   769,   743,  1282,     0,     0,
-     0,   805,  1344,     0,     0,     0,   742,  1281,     0,     0,
-   734,     0,   736,  1275,     0,     0,     0,   732,  1271,     0,
-     0,     0,   733,  1272,     0,     0,     0,   727,  1266,     0,
-     0,     0,   728,  1267,     0,     0,     0,   731,  1270,     0,
-     0,     0,   729,  1268,     0,     0,     0,   730,  1269,     0,
-   748,     0,     0,   844,     0,     0,   717,   716,     0,     0,
-   599,     0,   601,   602,   603,   604,   605,   606,   595,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   824,   822,
-   773,   825,   815,   816,   819,   817,   818,   828,     0,   775,
-     0,     0,   895,     0,   896,   897,     0,     0,   777,     0,
-     0,   785,     0,     0,   783,     0,     0,   784,     0,     0,
-   778,     0,     0,   779,     0,     0,   782,     0,     0,   780,
-     0,     0,   781,   512,  1349,   582,     0,   569,     0,     0,
-   584,   581,   584,   582,   580,   584,   571,   573,     0,     0,
-   567,   593,     0,   553,   914,   913,   918,     0,   112,   498,
-   491,     0,   465,   535,   534,   537,  1175,  1177,  1128,  1179,
-  1234,  1241,  1236,  1218,     0,  1218,     0,  1211,  1212,     0,
-     0,   192,     0,     0,     0,     0,     0,     0,     0,   191,
-   193,     0,     0,     0,   106,     0,     0,     0,     0,     0,
-    70,    69,   283,     0,     0,   449,   369,     0,     0,   183,
-   132,     0,   124,   250,   252,     0,   138,     0,     0,     0,
-     0,     0,     0,   151,   137,   139,   142,   146,     0,   314,
-   265,   353,   932,     0,     0,     0,   904,   740,   662,   900,
-   659,     0,   876,   877,     0,     0,     0,   881,   875,   886,
-     0,   752,   754,   757,   758,   759,   760,     0,     0,     0,
-   764,     0,     0,   770,   768,   772,     0,     0,   744,  1283,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   747,   749,   846,
-     0,     0,     0,     0,   719,     0,   597,   599,     0,   832,
-   834,   837,   838,     0,     0,     0,   842,   829,   894,   774,
-   776,     0,   795,   786,   803,   794,   801,   792,   802,   793,
-   796,   787,   797,   788,   800,   791,   798,   789,   799,   790,
-     0,   561,   564,     0,   583,   577,   578,     0,   579,   572,
-     0,   566,     0,     0,   511,     0,   468,     0,  1176,     0,
-     0,  1244,  1214,  1218,  1215,  1218,     0,   215,   216,   194,
-   204,   203,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   218,   220,   217,     0,     0,     0,     0,     0,     0,
-     0,     0,   185,     0,     0,     0,   186,   109,     0,   402,
-    82,    81,     0,   282,     0,     0,   277,     0,   591,   424,
-     0,   143,     0,     0,     0,   176,   177,   179,   181,   148,
-   182,     0,     0,     0,     0,     0,   149,     0,   156,   150,
-   152,   483,   141,   268,     0,   355,   356,   358,   363,     0,
-   933,   347,     0,     0,   878,   879,   880,     0,   761,   762,
-   763,   773,   775,     0,     0,     0,     0,   777,     0,     0,
-   785,     0,     0,   783,     0,     0,   784,     0,     0,   778,
-     0,     0,   779,     0,     0,   782,     0,     0,   780,     0,
-     0,   781,   845,   701,     0,   704,   705,     0,   598,     0,
-   839,   840,   841,   898,     0,   576,     0,     0,   550,   552,
-   122,  1410,  1411,     0,  1412,  1413,  1178,  1353,   596,  1243,
-  1179,  1216,  1217,     0,   207,   205,   213,     0,   232,     0,
-   223,     0,   219,   222,   211,     0,     0,     0,   214,   210,
-   200,   201,   202,   195,   196,   199,   197,   198,   208,     0,
-   190,     0,   187,   108,     0,    84,   284,   285,   281,     0,
-     0,     0,     0,     0,     0,   145,     0,     0,     0,   174,
-   157,   167,   166,     0,     0,   175,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   235,   370,     0,     0,
-     0,   366,     0,   480,   868,   740,   774,   776,   795,   786,
-   803,   794,   801,   792,   802,   793,   796,   787,   797,   788,
-   800,   791,   798,   789,   799,   790,   702,   703,   823,   570,
-   575,     0,     0,   574,     0,  1354,  1246,  1245,     0,     0,
-     0,   231,   225,   221,   224,     0,     0,   212,     0,   209,
-     0,    80,     0,   368,   430,   423,   245,   147,     0,     0,
-     0,   170,   168,   173,   163,   164,   165,   158,   159,   162,
-   160,   161,   171,     0,   155,     0,     0,   238,   350,   357,
-   362,   361,     0,   360,   364,   934,     0,   586,     0,  1414,
-     0,   228,     0,   226,     0,     0,   189,   483,   288,   429,
-     0,     0,   178,   180,     0,   172,   482,   233,   234,     0,
-   153,   237,   365,   363,     0,   588,   589,   206,   230,   229,
-   227,   235,     0,   286,   289,   290,   291,   292,   409,     0,
-     0,   408,   411,   422,   419,   421,   420,   410,     0,   154,
-     0,     0,   236,   366,     0,   585,   238,     0,   272,     0,
-   414,   415,     0,   169,   242,     0,     0,   239,   240,   359,
-   587,   188,   287,   412,   416,   418,   413,   241,   243,   244,
-   417,     0,     0,     0
-};
-
-static const short yydefgoto[] = {  2492,
-     1,    41,    96,    97,    98,    99,   100,   725,   973,  1318,
-  2141,  1636,  1941,   101,  1246,   899,   895,   102,   103,   104,
-   969,   105,   106,  1256,  1578,   407,   911,  1899,   107,   345,
-   346,   347,  1340,  1341,  1342,  1965,  1966,  1957,  1967,  1968,
-  2394,  2167,  1343,  1344,  2280,  1928,  2361,  2362,  2398,  2431,
-  2432,  2478,  1953,   108,  1003,  1345,  1346,   109,   736,  1001,
-  1665,  1666,  1667,   110,   348,   111,   112,   731,   979,   980,
-  1944,  2145,  2289,  2443,  2444,   113,   114,   491,   349,  1006,
-   740,  1007,  1008,  1668,   115,   116,   375,   524,   758,   117,
-   382,   383,   384,  1363,  1683,   118,   119,   350,  1676,  2175,
-  2176,  2177,  2178,  2322,  2404,   120,   121,  1646,   734,   988,
-  1329,  1330,   122,   367,   123,   749,   124,   125,  1669,   493,
-  1015,   126,  1633,  1311,   127,   994,  2452,  2470,  2471,  2472,
-  2149,  1652,  2421,  2454,   129,   130,   131,   325,   132,   133,
-   134,   982,  1324,  1641,   637,   135,   136,   137,   409,   657,
-  1265,  1586,   138,   139,  2455,   764,  2317,  1023,  1024,  2456,
-   142,   915,  1262,  1263,  2457,   144,  1355,   500,   145,   146,
-   147,   882,   417,   662,   390,   436,   921,   922,  1270,   929,
-  1276,  1279,   723,   502,   503,  1894,  2095,   666,  1273,  1233,
-  1560,  1561,  1562,  1877,  1563,  1887,  1888,  1889,  2086,  2354,
-  2435,  2436,   745,  1564,   857,  1487,  1114,   605,   606,   607,
-   608,   609,   989,   786,   800,   781,   610,   611,   775,  1034,
-  1377,   612,   613,   804,   792,  1035,   615,   852,  1484,  1810,
-   853,   616,  1173,   846,  1078,  1044,  1045,  1064,  1065,  1071,
-  1419,  1720,  1079,  1519,  1520,  1844,  1845,   617,  1028,  1029,
-  1373,   768,   618,  1235,   904,   905,   619,   620,   326,   770,
-   288,  1972,  1236,  2405,   404,   504,   622,   414,   623,   624,
-   625,   626,   627,   298,   991,   628,  1155,   401,   148,   307,
-   292,   442,   443,   691,   693,   696,   948,   299,   300,   293,
-  1605,   149,   150,    44,    52,    45,   437,   169,   170,   440,
-   939,   171,   680,   681,   682,   683,   684,   685,   686,   931,
-   687,   688,  1283,  1284,  2099,  1285,   151,   152,   308,   309,
-   153,   519,   518,   154,   155,   453,   700,   156,   157,   158,
-   891,   634,   159,   160,   958,  1612,  1301,  1606,   951,   955,
-   714,  1607,  1608,  1910,  2101,  2102,   161,   162,   463,  1106,
-  1228,    46,  1302,  2247,  1229,   629,  1107,   630,   888,   631,
-   715,    47,  1286,    48,  1287,  1622,  2248,    50,    51
-};
-
-static const short yypact[] = {-32768,
-  2391,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,  2926,-32768,-32768,-32768,-32768,
--32768,  1429, 25892,   304,   143, 25040,   317, 29553,   317,   -35,
-   376,   -10,   264, 29553,   382,  3717, 29834,    77,  1798,   382,
-    65,    45,    90,   139,    90,   382,   460, 27305, 27586,   -35,
-   382, 29553,   145,    27,   153, 27586, 23335,   140,   307,    45,
- 27586, 28148, 28429,    27,   -74,  4305,   230,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   518,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,   420,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   571,    89,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   273,-32768,-32768,
--32768,   273,-32768,-32768,   399, 25324,-32768,-32768,-32768,    41,
--32768,-32768,   317,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   526,-32768,-32768,   656,-32768,   627,   100,   100,   747, 27586,
-   317,   757,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   317, 29553, 29553,-32768,-32768, 29553, 29553,
--32768, 29553, 27586,-32768,   620,-32768,   115,   581, 22750,   619,
-   317,   514, 27586, 29553,   317,-32768, 29553,-32768, 29553, 29553,
- 29553,-32768,  2302,   730,-32768, 29553, 29553,-32768,   345,-32768,
--32768,-32768,-32768,-32768,    98,   711,-32768,-32768,-32768,-32768,
--32768,   759,   574,-32768, 27586,   780,-32768,-32768,   784, 15476,
-  -113,  -113,   -26,   739,   846,   -98,-32768,-32768,   807,-32768,
--32768,   861,-32768,   840,-32768,-32768, 27586,-32768,    57, 29553,
--32768,-32768,-32768,-32768,-32768,-32768, 27586,    98,-32768,   798,
-   897,-32768,   842,   924,-32768,   772,   -32,   382,   721,-32768,
--32768,   -74,  1006,  1005,  1006,   969,-32768,  1010,-32768,   505,
- 29553,-32768,   864,   864,-32768,-32768,  1057,  1098,  1667,  1667,
--32768,   399,-32768,   345,   839, 29553,-32768,  1001, 29553,-32768,
--32768, 30115,-32768,-32768,   100,   914,   993,   901,   993,  1163,
-   482,  1051,   962,-32768,  1211,-32768, 27586,-32768,  1158,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,  1002,-32768,-32768, 29553,-32768,  1139,-32768,-32768,  1233,
-  1140,-32768,  1066,-32768,-32768,  1206, 23619,-32768,   962,-32768,
-  1068,-32768,   140,-32768,-32768,-32768,-32768,-32768,   526,-32768,
--32768,-32768,  1109,   277,-32768,-32768, 29553,    91,   -29, 29553,
- 29553,  -118,-32768,   328,   413,   434,   454,-32768,   475,   554,
-   595,   616,   624,   626,   632,   652,   655,   678,   679,   722,
-   729,   738,   742,   768,   781,   794,   800,   806,   818,   824,
-   826,   833,   835,   837, 24755,  1095,  1214,  1214,  1106,-32768,
-  1110,  1113,-32768,  1116,  1275,  1130,  1133,-32768,  1153,  1157,
-  1370,  1214, 16700,  1164,  1179,  1187,  1194,  1195,   844,   254,
-  1216,-32768,-32768,-32768,   877, 30810, 16700,  1209, 16700,-32768,
- 16700, 16700, 16700, 17006,   140,  1222,-32768,-32768,-32768,-32768,
-  1232,-32768,   878,  1479,-32768,  4300,-32768,  1209,   -52,-32768,
-  1244,  1251,-32768,  1265,-32768,-32768,-32768,   491,-32768,    31,
-   880,-32768,-32768,    59, 25608,-32768,-32768,-32768,   -33,  1441,
-   -21,   -21, 23047,   839, 27586,  1379, 29553,-32768,  1140,  1466,
-   277,-32768,  1453,-32768,  1472,-32768, 27586,-32768,-32768,-32768,
--32768,   -74, 16700,   -74,   354,   487,  1517,-32768,-32768,-32768,
-   -35,-32768,-32768,-32768,-32768,   -35,   -35,   641,-32768,-32768,
--32768,  1323,-32768,-32768,  1334,  1338,-32768,-32768,-32768,  1318,
--32768,  1109,-32768,  1366, 25892,  1443,  1667,-32768,-32768,-32768,
-  1293,-32768,-32768,-32768,-32768,-32768,  1371,-32768,-32768,-32768,
--32768,-32768,   424,  1404,-32768,  1350, 29553,-32768,  1383,  1378,
--32768,-32768,   144,  1432,   190,-32768,   190,   -74,-32768,-32768,
-   403,  1455,  9368,  1425,-32768,   815,  1495,   140, 22453,-32768,
-  1553,-32768,  1628, 16700,-32768, 29553, 27586,-32768,-32768,-32768,
--32768, 28710,-32768,-32768,-32768, 29553, 29553,  1617,  1569,-32768,
-  1579,  1498, 21875,-32768,-32768,  1673,-32768,  1624,  1209,  1503,
-  1265,  1520, 16700,-32768,-32768,  1755, 17006,  1109,  1109,  1109,
--32768,-32768,  1660,  1326,  1109,-32768,  1657,  1661,  1668,  1671,
--32768,-32768,  1214,-32768,  1179,  1664, 16700, 16700,  1109,-32768,
- 20066, 17006,  1690,-32768,  9662,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,  1275,-32768,  1693,-32768,
--32768,-32768,-32768,   894, 17312,-32768,  1814,  1814,  1814,  1814,
-  1600,  1604,  1612,  2583,-32768,   766,-32768,  1109, 26460, 30604,
- 16700, 18536,  1621,   235, 16700,   520, 16700,-32768,-32768, 17618,
- 10886, 11192, 11498, 11804, 12110, 12416, 12722, 18230,-32768,    40,
- 15476,  1816, 23903,  7526, 29553, 26176,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   375,-32768,-32768,-32768,
--32768,-32768,  1209,   -54,-32768,  1641,   338,   424,-32768,  1675,
-    25,   514,-32768,   723,-32768,-32768,-32768,-32768,  1639,-32768,
-  1633,-32768,  3548,-32768,  1802,  1800,   -16,   857,-32768,  1936,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1670,   760,
-   151,   151, 29553,-32768, 29553,-32768,  1667,-32768,-32768,   399,
-  1655,-32768,-32768,-32768,  1658,   802,   558,  1942,-32768,-32768,
--32768,-32768,-32768,-32768,    29,  1888,  1888,  1888,-32768,   317,
--32768,-32768,   314,   314,-32768,-32768,-32768,-32768,  1822,  1821,
-  1685,  1751,-32768,  1819,-32768,-32768,-32768,   588,-32768,-32768,
--32768,-32768,  1712,  1830,   169,-32768,   169,   169,   169,   169,
--32768, 27022,  1916,  1752,  1695,  1700,   611,-32768, 27586,   317,
-  4300,-32768,-32768,  1687,  1688,  1691,-32768,-32768,   399, 27867,
--32768, 15476,   615,-32768,  1209, 27867, 16700,    -2,-32768,-32768,
- 29553,  2457,  1826,  1920,-32768,   -46,  1696,  1698,   706,  1702,
--32768,-32768,-32768,  1703,  1890,-32768,  1704,   229,   -36,  1836,
-  1874,-32768,  3038,  2604,   819,  1707,  1708,  1709,  1710, 20066,
- 20066, 20066, 20066,  1711,   838,  1209,  1714,-32768,   491,   -56,
-  1719,  1825, 15782, 17006, 15782, 15782,  3845,   -63,  1725,  1715,
-   232,   954,  1055,   542,  1728,  1729, 17312,  1746,  1731,  1732,
-  1735,   680, 17312, 17312, 17312, 17312, 17312, 17006,   727,  4540,
-   868,  1209,  1736,   906,  1252,   928,-32768,    37,-32768,  1385,
- 16700,  1742,   352,  1332,-32768,  1739,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,  1664,  1741,-32768,  1745,
-  1747,-32768,  1753,  1757,  1760,-32768, 18536, 18536, 18536, 18536,
- 18536, 16700,  1223,  1209,  1761,-32768,   491,-32768,-32768,  5129,
--32768,   288,-32768,-32768,   970, 18536,  1762, 16700,  2243,  1763,
-  1764, 16088,   894,  1765,  1766,-32768, 16088,  2604,  1768,  1769,
- 16088,  4450,  1770,  1771, 16088,  4450,  1772,  1773, 16088,    23,
-  1774,  1777, 16088,    23,  1779,  1780, 16088,  1814,  1781,  1783,
- 16088,  1814,  1784,  1785, 16088,  1814,   307,  1743,-32768,    31,
--32768, 21594,  1140,-32768,  1750,-32768,-32768,  1754,-32768,   -20,
-  1750,-32768,-32768,  1854,-32768,-32768,-32768, 24755,  1140, 24187,
-  1803,  1942,-32768,-32768,-32768,   941,  2005,   164,-32768,   164,
-  1835,  1859,-32768, 29553,-32768, 16700,-32768,-32768,   926,-32768,
--32768, 29553,-32768,-32768,-32768,  -167,-32768,-32768,  1869,-32768,
-  1811,-32768,   474,-32768,   -35,  3423,-32768,  1804,  1806,-32768,
-  1834,-32768,-32768,   203,   203,   522,  1532,   522,   996,-32768,
--32768,   971,  1149,  1812,-32768,  1983,  1990,  1815, 27022,-32768,
- 29553, 29553, 29553, 29553,-32768,-32768,-32768,  2003,  2003, 27586,
-   403,    -8,  1833,-32768,-32768, 26741,-32768,-32768,  1925, 26741,
-   495,  1109,-32768,-32768,-32768,-32768,-32768,-32768, 29553,  1020,
--32768,-32768,-32768,-32768,  1030,-32768, 30398,  1660, 22750, 22156,
- 22156, 22453,-32768,  1935,   -74,-32768, 29553,-32768, 28991,  1743,
- 29553,-32768,  1930,-32768,  1092, 29553,   221,-32768,-32768,  3810,
- 17006,-32768,  2028, 30604, 29553, 29553,-32768, 16700, 17006,-32768,
--32768,-32768,  1109,-32768,-32768,-32768, 16700,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768, 16700,  1109,-32768, 20066, 20066,
- 17006,  9968,   330,  2073,  2073,    74,-32768, 30604, 20066, 20678,
- 20066, 20066, 20066, 20066, 20066,-32768,  8140, 17006,  2022,-32768,
--32768,  1828,   -63,  1829,  1831, 17006,-32768, 16700,  1109,  1109,
-  1660,  1326,  1852,-32768, 16700, 20066, 17006, 10274,  1019,-32768,
-  2075,-32768,  2075,-32768,  2075,-32768,  2075,-32768,  1832, 30604,
- 17312, 18536,  1844,   600, 17312,   523, 17312,   975,  1071, 13028,
- 13334, 13640, 13946, 14252, 14558, 14864, 15170, 17924,  1121,  7833,
- 17312,  1209,  1845,  2018,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,     2,  3059,   856,-32768,  1037,   352,   352,
-   352,   352,   352,  1742,-32768, 18536,  1109,  1109, 20066, 17006,
- 10580,   525,  2083,  2083,  2083,  2083,   859, 30604, 18536, 18842,
- 18536, 18536, 18536, 18536, 19148,-32768,  8447,-32768,  1848,  1851,
--32768,-32768,-32768,-32768,-32768,  1287,  5129,   970,  1660,  1660,
-  1850,  1660,  1660,  1853,  1660,  1660,  1863,  1660,  1660,  1864,
-  1660,  1660,  1865,  1660,  1660,  1866,  1660,  1660,  1870,  1660,
-  1660,  1871,  1660,  1660,  1873, 27586,   399,-32768, 27586,-32768,
-  1856,  1623,-32768, 29272,  1881,  2042, 24471,-32768,-32768,-32768,
--32768,-32768,-32768, 17006,-32768,-32768,-32768,  1967,-32768,  2071,
--32768,-32768,-32768,  1957,-32768,  1142,-32768,-32768,-32768,-32768,
--32768,  1879,   857,   857,   -16,-32768,-32768,  1670,  1222,-32768,
--32768,-32768,-32768, 29553,-32768,-32768,  1876,   203,  1877,   917,
-   563,-32768,   522,-32768,   522,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 20984,  1882,  1883, 29553,  1148, 30398,-32768,
-   -14,-32768,  2004,-32768,  2076,  1914,  1914,  2084,  2040,-32768,
--32768,-32768,   -26,-32768,  1002,  2129,-32768,-32768,-32768,-32768,
--32768,  2014,-32768,   555, 27022,  1964, 29553,-32768,  2041,  1269,
--32768,  1962, 29553,  1074,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   317,  1895,-32768,-32768,-32768,-32768,
--32768,  2087,-32768,-32768,-32768,  1900,-32768, 17006,-32768,-32768,
-  1901,-32768,-32768,  4300,-32768,  1903,  4300,  1434,  1905,  1025,
-  1908,  1909, 15782, 15782, 15782,  1910,-32768,-32768,   427,   330,
-    55,    55,  2073,  2073,  2073,-32768,     6,   -63, 17006,-32768,
--32768,-32768,-32768,   -63,  3944,  1911,  1912,  1915,  1917,   903,
-  1918,  1919, 15782, 15782, 15782,  1921,  1173,  1174,  1852,-32768,
-  1465,  5129,  1181,   605,  1192,  1227,  1583,-32768, 18536,  1924,
- 17312,  2275,-32768,  1926,  1927, 16088,  1019,-32768,  1928,  1929,
-  1229, 16088,  2923,-32768,  1932,  1933, 16088,  4783,-32768,  1934,
-  1941, 16088,  4783,-32768,  1943,  1944, 16088,   122,-32768,  1946,
-  1947, 16088,   122,-32768,  1948,  1949, 16088,  2075,-32768,  1950,
-  1953, 16088,  2075,-32768,  1954,  1955, 16088,  2075,-32768,  1956,
-  1238,   136,  1958,-32768,  1660,  1968,-32768,-32768, 16394,  1969,
-  1742,  1608,-32768,   -61,   -61,-32768,-32768,-32768,-32768,  1474,
-  1970,  1971,  1972,  1973, 15782, 15782, 15782,  1974,-32768,-32768,
-   948,   525,   182,   182,  2083,  2083,  2083,-32768,   154,-32768,
-  6707, 18536,-32768,  1976,  1931,-32768,  1982,  1984,-32768,  1985,
-  1986,-32768,  1987,  1992,-32768,  1993,  1996,-32768,  1997,  1998,
--32768,  1999,  2001,-32768,  2002,  2006,-32768,  2007,  2008,-32768,
-  2010,  2011,-32768,-32768,-32768,  1185,  2013,-32768, 27586,  2093,
-  2068,-32768,  2068,   960,-32768,  2068,  1623,-32768,  2103, 26460,
--32768,-32768,  2177,  2147,-32768,-32768,-32768,  2054,-32768,-32768,
--32768, 29553,-32768,-32768,-32768,-32768,-32768,  2000,-32768,  1670,
--32768,-32768,-32768,   522,  1629,   522,  1072,-32768,-32768,  2016,
- 20984,-32768, 20984, 20984, 20984, 20984, 20984,  1566,  2017,-32768,
-  2019, 29553, 29553,  1204,-32768,  2202,  2203, 29553,   317,  2035,
--32768,-32768,  2100,  2207,   403,-32768,-32768,   140, 27586,-32768,
--32768,  2021,-32768,-32768,-32768,  2200,-32768,  2024, 29553, 19454,
-  2184,  2205, 29553,-32768,-32768,  1269,-32768,-32768,   140,-32768,
--32768,-32768,-32768, 29553,  2180, 15476,-32768,-32768,-32768,-32768,
--32768, 30604,-32768,-32768,  2029,  2030,  2031,-32768,-32768,   -63,
- 30604,  1271,  1272,  1289,  1290,  1296,  1298,  2034,  2038,  2039,
-  1302, 18536,  2043,  1305,  1333,  1339,  1593,  5129,  1583,-32768,
-  1660,  1660,  2048,  1660,  1660,  2049,  1660,  1660,  2052,  1660,
-  1660,  2053,  1660,  1660,  2056,  1660,  1660,  2057,  1660,  1660,
-  2058,  1660,  1660,  2059,  1660,  1660,  2060,  1341,  1349,  1209,
-  2061,  1660,  2063,  2064,  4300,  1660,-32768,  1742, 30604,-32768,
--32768,-32768,-32768,  2065,  2066,  2067,-32768,-32768,-32768,   948,
--32768,  6707,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  2219,-32768,-32768, 27586,-32768,-32768,-32768,  2220,-32768,-32768,
- 27586,-32768, 17006, 16700,-32768,   140,-32768,   543,-32768,   -35,
-  1360,-32768,-32768,   522,-32768,   522, 20984,  2705,  1319,  2277,
-  2277,  2277,  1872, 30604, 20984,  6707,  2055,   604, 20984,   612,
- 20984,-32768,-32768, 21290, 20984, 20984, 20984, 20984, 20984, 20984,
- 20984, 20984,-32768,  9061,  1312,  1316,-32768,-32768, 19760,-32768,
-  2044,-32768,   140,-32768,   -95,  2213,-32768,  2248,  1140,  2078,
- 29553,-32768, 20984,  1407,  2077,-32768,  2079,  2080,-32768,-32768,
--32768, 19760, 19760, 19760, 19760, 19760,   674,  2081,-32768,-32768,
--32768,  2085,-32768,-32768,  2086,  2090,-32768,-32768,   -49,  2091,
-  2019,-32768,  1416,  2092,-32768,-32768,-32768,  2096,  1367,  1369,
-  1387,   468,  1390, 18536,  2098,  2099,  2101,  1394,  2108,  2110,
-  1397,  2112,  2114,  1400,  2115,  2117,  1406,  2118,  2119,  1408,
-  2120,  2132,  1433,  2142,  2145,  1435,  2146,  2148,  1436,  2149,
-  2150,  1445,-32768,-32768,  2153,-32768,-32768,  2154,-32768,  2156,
--32768,-32768,-32768,-32768, 27586,-32768, 27586,   270,   -63,  4300,
--32768,-32768,-32768,   760,-32768,-32768,   543,-32768,  1222,-32768,
-  1670,-32768,-32768,  4210,-32768,-32768,  2705,  2318,-32768,  6707,
--32768,   647,-32768,-32768,  1991,  6707,  2158, 20984,  3364,  1319,
-  4335,  4818,  4818,   208,   208,  2277,  2277,  2277,-32768,  1458,
-  4604,  2225,-32768,   674,   317,-32768,-32768,-32768,-32768, 29553,
-   140,  2169, 29553,  2161,  1975,-32768, 19760,  1109,  1109,   650,
-  2340,  2340,  2340,   355, 30604, 20372, 19760, 19760, 19760, 19760,
- 19760, 19760, 19760, 19760,  8754, 29553,  2333,  1925, 29553, 30604,
- 30604,   327, 29553,-32768,-32768,  1446,   607,  1475,  1476,  1477,
-  1483,  1490,  1504,  1508,  1531,  1535,  1539,  1542,  1548,  1551,
-  1567,  1592,  1595,  1610,  1616,  1636,-32768,-32768,-32768,-32768,
--32768, 16700,  2164,-32768,  3987,-32768,-32768,-32768, 30604,  6707,
-  1481,-32768,-32768,-32768,-32768,  2390,  6707,  1991, 20984,-32768,
- 29553,-32768,  2165,-32768,  2237,-32768,-32768,-32768,   943,  2166,
-  2168,-32768,-32768,   650,   674,   882,   882,   214,   214,  2340,
-  2340,  2340,-32768,  1563,   674,  1576,   130,  2326,-32768,-32768,
--32768,-32768,   317,-32768,-32768,-32768,  1577,  4300, 29553,-32768,
-  2171,-32768,  6707,-32768,  6707,  1590,  4604,  2085,  1127,-32768,
-  1090, 30604,-32768,-32768, 19760,-32768,-32768,-32768,-32768,     4,
--32768,  2326,-32768,   -49,  1632,-32768,-32768,-32768,-32768,-32768,
--32768,  2333,  1637,-32768,-32768,-32768,-32768,-32768,-32768,   583,
-   736,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2173,   674,
-    95,    95,-32768,   327, 29553,-32768,  2326,  1127,-32768,  2178,
-   583,  2181,  2179,-32768,-32768,  2424,   107,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,  2185,-32768,-32768,-32768,-32768,-32768,
--32768,  2489,  2491,-32768
-};
-
-static const short yypgoto[] = {-32768,
--32768,-32768,-32768,  2396,-32768,-32768,-32768,  2025,  1778,  1519,
--32768,  1176,   860,-32768,-32768,  1858,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1618,
-  2157,-32768,  1198,   854,  1190,-32768,-32768,-32768,   544,   357,
--32768, -2085,-32768,  -951,-32768, -1829,   147, -2049,    76,    49,
-    92,    64,-32768,-32768,-32768,-32768,   872,-32768,-32768,-32768,
--32768,-32768,   566,-32768,-32768,-32768,-32768,-32768,-32768, -1300,
--32768,-32768,-32768,-32768,    62,-32768,-32768,-32768,-32768,  -340,
-   887,-32768,  1182,  1193,-32768,-32768,  2443,  2125,  1894,-32768,
-  2472,-32768,  2020,  1523,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   231,   117,    96,-32768,-32768,   244,  2070,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2201,  -350,
--32768,-32768,-32768,   749,-32768,-32768,-32768,   112,-32768, -2312,
--32768,-32768,-32768,   -22,-32768,-32768,-32768,  1152,-32768,-32768,
--32768,-32768,-32768,-32768,   922,-32768,-32768,-32768,  2481,-32768,
--32768,  1294,-32768,  2167,    -5,-32768,   159, -1604,  1215,     3,
--32768,-32768,-32768,   557,     9,-32768,-32768,  1672,  -526,   -91,
-  5482,-32768,  1353,  2152,-32768,-32768,-32768,  1317,-32768,-32768,
-   987,  -345,-32768,  -354,   265,-32768,-32768,-32768,-32768,  1686,
--32768,-32768, -1516,-32768,  1032,-32768,   702,   708, -1025,-32768,
--32768,   137,  -641,-32768, -1561, -1465,  -912,  -843,  2009,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,  -694,  -512,-32768,
--32768,-32768,  3441,-32768,-32768,  -121,  -578,   797,-32768,-32768,
--32768,  4844, -1134,  -576,  -755,  1171,-32768,  -864,  -941,  -970,
--32768,-32768,  -962,   865,-32768,   601,-32768,   -77,-32768,  1580,
--32768,-32768,  4926,  1730,-32768,  1362, -1011,  1733,-32768,   527,
-  -307,-32768, -1536,   210,  -247,   -51,  3470,-32768,  5056,  1143,
-    -1,     1,   -38,  -315,  -595,  1459,   726,-32768,-32768,   -25,
--32768,  2325,-32768,  1676,  2176,-32768,-32768,  1674,  -388,   -24,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,  -150,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   622,
--32768,-32768,-32768,  1024,-32768, -1884,-32768,-32768,-32768,  1988,
--32768,-32768,  2170,-32768,-32768,  2106,  1681,-32768,-32768,-32768,
--32768,  2240,-32768,-32768,  1726, -1212,  1381,  -390,-32768,-32768,
--32768, -1249,-32768,-32768,-32768,   384,-32768,-32768,  -233,  -969,
-  1619,  2467,  1677,-32768,  1080,  -442,  -835,  2793,  1409,    93,
-   -55,-32768,   396,-32768,     0,-32768,   395,-32768,-32768
-};
-
-
-#define        YYLAST          31095
-
-
-static const short yytable[] = {    42,
-    49,    43,   765,   427,   316,   467,   311,   913,   492,   701,
-  1365,   514,   512,  1310,   289,   352,  1156,   289,   469,   439,
-  1639,  1036,  1934,   128,   402,  2100,  1178,   291,  1819,   301,
-  1896,   472,  1502,  1503,  1504,  1505,  1506,  1908,   990,   505,
-   140,   879,  1876,  1297,  1299,  1609,  1070,  1274,   141,   415,
-   886,  1526,   508,  2284,   143,   776,   886,  1418,   448,  1232,
-   698,   699,  2320,   893,   713,  1807,  2258,   761,  1808,   794,
-   636,   632,   432,   128,   880,   898,  2300,  2301,  2302,  2303,
-  2304,   889,   860,   369,   464,  1614,   641,  1936,  1640,  1593,
-   140,  2108,   433,  2109,  2110,  2111,  2112,  2113,   141,    77,
-  1371,  2461,  1392,   894,   143,   371,   456,  1304,  2453,   457,
-  1422,  1305,  1424,  1425,  1408,   458,   459,  1434,  1403,  1404,
-  1405,  1406, -1136,  1440,  1442,  1444,  1446,  1448,  1240,   163,
-  1378,   460,   164,  1408,   461,   165,  1393,  1378,  1254,  1594,
-   166,  1306,   167,   168,    77,   295,   302,  1378,   295,   310,
-   313,   314,   647,   376,    68,   329,   313,   435,  2485,   313,
-  1937,   520,   649,   370,  -616,   762,   320,   303,  2475,  2287,
-   313,   313,   759,  1378,   313,   766,   330,  2288,   313,   313,
-    74,  1450,   321,   313,   313,   313,  -616,   377,   377,  1307,
-   353,   163,  1030,   642,   164,  2462,  1027,   165,   633,  1378,
-  1488,   975,   166,  2489,   167,   168,   965,   703,   966,  1255,
-   890,  2379,   372,   378,   378,   704,  2366,   331,   332,  1308,
-  2384,  2385,  2386,  2387,  2388,  2389,  2390,  2391,  2392,  2395,
-    77,   721,   705,    95,   449,  1491,  1492,  1493,   706,   707,
-  2476,  1508,   521,  1379,  2428,   967,   315,   741,    79,   284,
-  1379,  2321,  1248,   908,   881,  2490,   284,   289,   373,   522,
-  1379,   284,  1380,   379,   379,   385,  1099,  2114,   614,  2477,
-   447,    25,  1275,  2305,   284,   374,   658,  2254,   763,   708,
-  1052,   380,   380,   470,   471,  2257,  1379,  2429,  1569,  2265,
-   475,  2269,   331,   332,  2270,  2271,  2272,  2273,  2274,  2275,
-  2276,  2277,  2278,   709,  2281,   506,   408,   507,   949,  1809,
-  2412,    91,  1379,   710,  1989,   515,   286,  1741,  1423,   876,
-   877,   878,   286,  2295,   462,   286,  1247,  2135,  2136,  1378,
-  1251,  1178,  1178,  1178,  1178,  1178,  1309, -1357,   450,  2460,
-   660,  1046, -1357,  1181,   517,  2047,   283,  1378,  1389,   285,
-  1178,  1413,  1414,  1415,   638,   381,   381,  1410,  1912,   322,
-   406,  1820,  2083,  2439,    95,  2440,  2100,  1390,  1411,  1412,
-  1413,  1414,  1415,   525,  1831,  1832,  1833,  1834,  1835,  1836,
-  1837,  1182,  1707,  1183,   689,    25,   128,   410,   295,  1408,
-   756,  1259,   711,   523,    77,   451,  1523,   757,   712, -1136,
-  1918,  1391,  1919,   140,   716,   968,   317,   718,   318,   971,
-   720,   141,   313,   302,  2305,  1686,   525,   143,  1466,  1467,
-  1468,  2352,   284,  1184,   301,   301,   302,   313,   313,   517,
-  1702,   313,   313,  1581,   313,   313,  1524,  2179,  2368,  1706,
-   972,   313,  1379,   496,  2039,   313,   313,   302,  1368,   313,
-   323,   313,   313,   313,   803,   750,    25,  1700,   313,   313,
-  1379, -1136,  2058,  2353,  1332,   324,  1732,  1709,  1710,  1711,
-  1712,  1713,  1714,  1715,   753,  1736,  1525,   313,  1513,  1514,
-  1515,  1740,   851,   416,   315,  1748,  1408,  1753,   296,  1416,
-  1758,  1764,  1769,  1774,  1779,  1784,  1789,  1794,  1799,   313,
-   976,  1803,   313,  1660,  2130,  2131,  2132,   701,  1099,   313,
-  2312,  2313,  2314, -1240,  1099,  1099,  1099,  1099,  1099,   925,
-  2403,   755,   319,   388,   432,  1469,   977,  1508,    95,  1824,
-  1691,   430, -1289,   313,  1316,  1701,  -689, -1289,  1828,  2417,
-  1244,   302,   302,   431,   433,   926,   668,   669,   313,   670,
-   671,   313,   672,   673,   313,   674,   441,   675,  -689,   389,
-   676,   677,   678,   679,  1708,  1317,   855,  2236,   323,   313,
-   920,  1731,   924,  1812,  2238,   434,  1814,  1815,  1816,  1817,
-  1818,  1245,  2229,   324,  1508,   283,   297,   313,   285,   286,
-  1186,  1566,  1648,  1749,   978,   912,   289,  1516,   283,   313,
-   896,   285,   900,   900,     2,   399,  1738,  1572,   283,   435,
-  -618,   285,   411,   413,  2007,   932,  1178,   419,  1649,   313,
-   932,   932,   313,   313,  1411,  1412,  1413,  1414,  1415,   516,
-   286,   990,  -618,  1304,  1823,   990,   497,  1291,  2306,    25,
-  1187,  -930,   845,  1750,  2147,  1070,  2307,  2308,  2309,  2310,
-  2311,  2312,  2313,  2314,  1315,  1188,   289,   313,  1751,  1113,
-  1178,  1717,  1718,  2382,  1830,   963,  1508,  1306,  1650,   946,
-  1724,   427,   301,  1178,  1178,  1178,  1178,  1178,  1178,  1178,
-    68,  1070,  2266,   935,   286,   498,  1651,  2357,   843,   936,
-   944,   937,   729,   938,  1012,  -619,   730,  1915,  1917,  1004,
-  1016,  2103,  1950,  2105,  1017,  1018,    74,  2060,  1743,  2305,
-  1410,  2396,  2261,  2004,  1802,  1307,  -620,  -619,  2350,   452,
-  2351,  1411,  1412,  1413,  1414,  1415,   927,   295,   956,   499,
-  1644,   957,  2267,  2305,  1647,   313,  -621,   313,  -620,   313,
-  1985,  1986,  1987,   928,  1070,  1308,  1744,  2268,  1745,   313,
-  2262,  1510,  2263,  2005,   455,  2363,  2376,  -623,  -621,   614,
-   465,  1839,  1511,  1512,  1513,  1514,  1515,  1101, -1312,   454,
-  1998,  1999,  2000, -1312,    79,  1597,  1037,  1038,  1039,  -623,
-  1598,  2010,  2179,  1047,   468,  1660,   315,   295,  1746,   302,
-  1288,  1289,  2264,  2006,  -930,  2364,   477,  1055,  -937,     3,
-     4,     5,     6,     7,     8,     9,    10,    11,    12,   313,
-    13,    14,    15,    16,    17,    18,    19,    20,    21,  1511,
-  1512,  1513,  1514,  1515,  2242,   313,  1610,  2243,  1677,  1611,
-    25,   313,    26,    68,  1242,  2365,  -624,    91,   313,   313,
-  1687,   479, -1294,   703,   313,    25,   466, -1294,   313,   313,
-    25,   704,  2244,   495,  1115,   313,  1116,  2087,  -624,    74,
-  2089,   513,  2054,  2055,  2056,  1113,  1298,  2192,   705,   476,
-  1113,  1916,  1099,   526,   706,   707,  1099,  -625,  1099,   501,
-   528,  1099,  1099,  1099,  1099,  1099,  1099,  1099,  1099,  1099,
-  1510,  2252,  1099,  2253,  1326,  1804,  1327,  1408,  -626,  -625,
-   614,  1511,  1512,  1513,  1514,  1515,  -627, -1313,  -628,    77,
-   527,   529, -1313,  1178,  -629,   708,   621,  1352,   860,  1353,
-  -626,  1366,   301,  1367,   861,  1277,  1280,    79,  -627,   862,
-  -628,   530,  1258,   646,  -630,   531,  -629,  -631,    42,   709,
-    43,  2305,   639,   650,  2310,  2311,  2312,  2313,  2314,   710,
-  1259,   313,   843,   860,  1115,  1115,  -630,  2306,  1409,  -631,
-  -632,  -633,   860,  1990,  2183,  2307,  2308,  2309,  2310,  2311,
-  2312,  2313,  2314,   862,   640,   313,  1449,   313,   313,   863,
- -1295,   643,  -632,  -633,   656, -1295,   864,  1260,   644,  1046,
-    91,   645,  1261,  1334,   865,  1334,  1334,  1334,  1334,   512,
-   512,   652,  2305,   737,  -634,   866,  1178,  1508,  1662,  1101,
-  2422,  -635,  1383,   867,  1384,  1101,  1101,  1101,  1101,  1101,
-  -636,   864,   659,   863,  -637,   653,  -634, -1260,   711,   860,
-   864,   995, -1260,  -635,   712,   313,   996,   313,   865,   302,
-   862,    22,  -636,    95,    23,   654,  -637,    25,   997,    26,
-  -638,    27,   655,    25,    28,    29,    30,    31,    32,  2327,
-   998,   999,   302,  -639,    34,    35,    36,    37,    38,   661,
-   851,  1112,  -638,  1113,  1881,   851,  -640,   663,  1450,   851,
-   665,  1882,  -641,   851,  1408,  -639,  1000,   851,  -642,    25,
-   863,   851,  1982,  1883,   313,   851,   868,   864,  -640,   851,
-  -643,   313,  1356,   851,  -641,-32768,  -644,  1296,  -645,  1113,
-  -642,  1115,   313,   667,   869,  -646,  1885,  -647,   313,  -648,
-   315,  1410,  -643,   313,   695,  1397,  -680,  1398,  -644,  1886,
-  -645,   868,  1411,  1412,  1413,  1414,  1415,  -646,  2184,  -647,
-   868,  -648,   870,    25,    25,  1278,  1454,  2188,  -680,   869,
-   871,   872,   873,   874,   875,   876,   877,   878,   869,  -615,
-  -678,  1811,  -614,  1113,   692,  2306,  1178,  1829, -1346,   906,
-   697,   909,  1099, -1346,-32768,-32768,  2310,  2311,  2312,  2313,
-  2314,  -615,  -678,   919,  -614,   717,   870,    68,   874,   875,
-   876,   877,   878,   724,   871,   872,   873,   874,   875,   876,
-   877,   878,   726, -1274,    25,  2230, -1261,   868, -1274,  1589,
-   722, -1261,  1587,    74,  1576,  1577,   328,  1579,  1590,  1591,
-  1587,   368,  1914,   284,  1113,   869,  2306,   387,  1471,  1599,
-   728,  1510,   403,  1472,  2307,  2308,  2309,  2310,  2311,  2312,
-  2313,  2314,  1511,  1512,  1513,  1514,  1515,  1904,  1905,  1689,
-   787,   732,  1616,   870, -1290,  1617,  1458,  1695,    25, -1290,
-    26,  1429,  1634,    77,   874,   875,   876,   877,   878,   733,
-  2256,  1880,   843,  1013,  1459, -1304,   788,  1618,   735,  1619,
- -1304,    79,  1508,  1642,    42,  1601,    43,  1654,  1509,   738,
-  1489,  1490,  1491,  1492,  1493,   789,   213,   933,   934,  1881,
-  1620,  1620,  1621,  1621,  1615,  1678,  1882,  1680,  1410,   739,
-   742,  1671,  1671,  1464,  1465,  1466,  1467,  1468,  1883,  1411,
-  1412,  1413,  1414,  1415,   313,   743,  1655,  1884,  1656,   223,
-  1653,  1489,  1490,  1491,  1492,  1493,  1657,  2239,  1658,   744,
-   313,  1885,   313,  2449,    91,  1813,  1508,  1958,  1334,  1334,
-  1670,  1670,  1842,  1959,  1886, -1292,   313,   747,  1178,   790,
- -1292,    25,  1430,    26,   313,  1960,  1489,  1490,  1491,  1492,
-  1493, -1306,   746,  1101,  2081,   752, -1306,  1101,  2114,  1101,
-  2106,  1696,  1101,  1101,  1101,  1101,  1101,  1101,  1101,  1101,
-  1101,   952,   953,  1101,  2450,  1699,    25,  2451,   881,   954,
-  1684,   313,   773,   313,   313,   313,   313,   621,   283,   284,
-   774,   285,   313,   777,    25,  1961,    26,   778,   313,   205,
-   779, -1259,   313,   780,   959,   960, -1259,  1726,  1727,  1962,
-  1616,   313,   961,  1617,   782,  1963,    25,   783,    26,   843,
-   784,   313,   313,   313,   313,   207,  2118,   793,  1902,   313,
-  1903,   313,  1897,   313,  1655,  1618,  1935,  1623,   313,  1964,
-   785,  2383, -1136,  2223,   212,   213,   843,   313,   313,   163,
-   798,   797,   164, -1280, -1278,   165,  2401,  2402, -1280, -1278,
-   166, -1310,   167,   168,  1115,  1958, -1310,  1115,  1115,  1115,
-  1115,  1115, -1305,   860,   799,  1821,  1822, -1305,   223,   861,
-   843,   801,   802,  1960,   862,  1473,  1510,  2292,  1041,  1042,
-  1366,   290,  2137,   845,   290,  2411,   312,  1511,  1512,  1513,
-  1514,  1515,   327,   805,  1508,   312,   856, -1308,   228, -1273,
-  2002,  1474, -1308,  1508, -1273,  1354,   396,   400, -1287,   858,
-   405,  2049,   843, -1287,   400,   400,   859,   883,   621,   400,
-   422,   425, -1262,  1961,   863,  -930,  2122, -1262,   884,  -937,
-  1333,   864,  1335,  1336,  1337,  1338,  1977,  1962,   885,   865,
-  1510, -1291, -1293,  1963,  2123,   897, -1291, -1293,  2459,   910,
-   866,  1511,  1512,  1513,  1514,  1515,   914,   917,   867, -1296,
- -1297,  1280,  1280,  1277, -1296, -1297, -1298,  1964, -1299,   950,
-   843, -1298, -1303, -1299,   638, -1309,   918, -1303,  1115,  1115,
- -1309,   286,   930,  2128,  2129,  2130,  2131,  2132,  1366,   843,
-  2282,   943,  1366,  2142,  2283,  2114,  1489,  1490,  1491,  1492,
-  1493,  2115,   940, -1307,  1449,   947,  2116,  1494, -1307, -1311,
-  1449, -1286,  1450,   941, -1311,  1449, -1286,   942,   313, -1288,
-  1449,   313,  1508,  1452, -1288,  1449,   313,   962,  2194,   313,
-  1449,  2250,  1653,   945,  1971,  1449,  2251, -1300,  1475, -1301,
-  1449,   868, -1300,  1101, -1301,  1449,  1476,  1477,  1478,  1479,
-  1480,  1481,  1482,  1483, -1257,   964,  2117, -1302,   993,   869,
- -1314,   970, -1302,  2118, -1316, -1314,   313, -1324,   981, -1316,
- -1322,  2119, -1324,  1453,  1009, -1322, -1323,   771, -1317,  1880,
-  1454, -1323,  2120, -1317,  1312,  1313,  1314,   870,-32768,   313,
-  2121,   843,   881,   860,  2324,   871,   872,   873,   874,   875,
-   876,   877,   878, -1318,   862, -1321, -1319,  1881, -1318,  1010,
- -1321, -1319,  1980,  1019,  1882, -1320, -1279,   313,  1510,   313,
- -1320, -1279,  -582,  1020,   290,   313,  1883,  1510,  1565,  1511,
-  1512,  1513,  1514,  1515,  2369,  1884,  2370,  1973,  1511,  1512,
-  1513,  1514,  1515,  1021,   906, -1315, -1334, -1325,   400,  1885,
- -1315, -1334, -1325, -1342,   863,   771,  1026,  2413, -1342,  2414,
- -1333,   864,  1886,   312,   312, -1333,  2294,   290,   474,   865,
-   312,   400,  1002,  2122, -1340,  1022,  1031,   494, -1331, -1340,
-   866,   400,   312, -1331,  1582,   312,  1583,   312,   290,   474,
-  1458,  2123,  1027,  -930,   312,   312,  1489,  1490,  1491,  1492,
-  1493, -1341,  1033,    77,   843, -1332, -1341,  1613,  1459, -1335,
- -1332,  1048, -1326,   400, -1335,  1049,  1638, -1326, -1336,  2124,
-  2097, -1327,  1050, -1336,   614,  1051, -1327,  2125,  2126,  2127,
-  2128,  2129,  2130,  2131,  2132,   400,  1460, -1339,   405,  2425,
-  1072,  2426, -1339,   860,  2133,   400,  1510,  1464,  1465,  1466,
-  1467,  1468,  1366,   746,  2427,  2434,  2140,  1511,  1512,  1513,
-  1514,  1515, -1330,   803,  2458, -1337,  2413, -1330,  2441,   690,
- -1337,   868,  1489,  1490,  1491,  1492,  1493,  2154,  1109,  2148,
- -1328,  1450,  1110,  2048,   312, -1328, -1338,   312,  1111,   869,
-   312, -1338,  1452,  1489,  1490,  1491,  1492,  1493,  1180,  1232,
-  2174,  2114,  1253,   843,  2104,   400, -1329,  2115,  2465,  1266,
-  2466, -1329,  2116,  2468,  1250,  2469,  1264,   870,   283,   297,
-  1272,   285,   286,   405,  1271,   871,   872,   873,   874,   875,
-   876,   877,   878,  1281,  1294,   312,  1282,  1295,  1300,  2372,
-  1305,   313,  1453,  1320,   354,  1321,  1322,  1323,  1325,  1454,
-  1328,  1331,   313,  1348,  1349,   312,  1350,  1455,   312,   767,
-   355,  1351,  2117,  1357,   313,   356,  1358,  1359,  1456,  2118,
-  1375,  1376,   357,  1387,  1381,   358,  1382,  2119,  1394,   359,
-  1385,  1386,  1388,  1395,  1399,  1400,  1401,  1402,  2120,  1407,
-   360,  1417,  1428,   772,   313,   313,  2121,  1420,  1421,   361,
-   313,   302,   362,  1427,  2114,  1431,  1432,  1435,  1436,  1437,
-  2115,   313,  1438,  1470,  2249,  2116,  1486,  1495,  1496,  1557,
-  2114,   313,  1497,  1567,  1498,   313,   363,  2241,   364,  1570,
-  1499,  2116,  1568,   365,  1500,   366,   313,  1501,  1517,  1527,
-  1529,  1530,  1532,  1533,   843,  1535,  1536,  1538,  1539,  1541,
-  1542,  1544,  1874,   843,  1545,  1565,  1547,  1548,  1550,  1458,
-  1551,  1553,  1554,   290,  1574,  2117,  2245,  1580,  2246,  1584,
-   843,   907,  2118,   400,  2286,   312,  1585,  1459,  1595,  2122,
-  2119,  2117,  1596,  1625,  1602,   400,  1603,  1604,  2118,  1624,
-  1626,  2120,  1627,  1635,  1643,  1645,-32768,  2123,  1675,  2121,
-  1682,  1690,  1408,  1719,  1450,  1460,  1721,  1722,  1806,  1723,
-  1737,   843,  1508,  1461,  1462,  1463,  1464,  1465,  1466,  1467,
-  1468,  1742,  1805,   290,   843,  2124,  1840,  1841,  1849,  1893,
-  1898,  1852,  1879,  2125,  2126,  2127,  2128,  2129,  2130,  2131,
-  2132,  1855,  1858,  1861,  1864,   312,   313,  1892,  1867,  1870,
-  2255,  1873,  1900,   313,  1901,  1902,  1911,  1913,  1938,  1932,
-  1933,   992,  1940,  1939,  1945,  1943,  1948,   494,  1949,  1952,
-  1969,  1956,  1974,  1975,   312,   400,   843,  1976,   843,  1978,
-   312,  1979,  2122,  1981,   312,   312,  1983,  1984,  1988,  1992,
-  1993,  1025,  2084,  1994,  2085,  1995,  1996,  1997,  2122,  2001,
-  2123,  2008,  2091,  2011,  2012,  2014,  2015,  2062,  2373,  2017,
-  2018,  2020,    42,   313,    43,  2245,  2123,  2246,  2021,  2093,
-  2023,  2024,  2374,  2026,  2027,  2029,  2030,  2032,  2124,  1069,
-  2033,  2035,  2036,  2040,  2038,  2094,  2125,  2126,  2127,  2128,
-  2129,  2130,  2131,  2132,  2124,  2042,  2046,  2096,  2050,  2051,
-  2052,  2053,  2057,  2378,  2061,  2128,  2129,  2130,  2131,  2132,
-  2063,  2098,  2064,  2065,  2066,  2067,  2380,  2381,  2138,  2139,
-  2068,  2069,   860,  1105,  2070,  2071,  2072,  2073,   861,  2074,
-  2075,  2143,  2146,   862,  2076,  2077,  2078,  1154,  2079,  2080,
-  1177,  2082,  1522,  2107,  2134,  2144,  -937,   313,  2151,   313,
-  2152,  2153,  2170,  2182,  1450,  2171,  2114,  2185,  2186,  2187,
-  1451,  1237,  2189,  1237,   312,  1452,  2190,  2191,  2235,  2237,
-  2285,  2193,   843,    42,  1601,    43,  2198,  2201,   843,   427,
-  2204,  2207,  2260,   863,  2210,  2213,  2216,  2219,  2222,  2224,
-   864,  2226,  2227,  2231,  2232,  2233,  2290,   302,   865,  2291,
-  2447,  2293,   313,  2360,  2297,   313,  2298,  2299,  2315,   866,
-   771,  2371,  2316,  2375,  2318,  1453,  2319,   843,  2323,  2305,
-  2325,   690,  1454,   290,  2326,  1565,  2328,  2329,   313,  2330,
-  1455,   313,   843,   843,  2406,   313,  2331,  2445,  2332,  2446,
-  2333,  1456,  2334,  2335,     2,  2336,  2337,  2338,  2339,  2447,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-  2340,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-  2341,   843,   843,  2342,  2343,  2415,  2344,  2345,  2346,   843,
-  1347,  2347,  2348,   313,  2349,  2367,  2445,   400,  2446,  2377,
-  2397,  2409,  2419,  2420,  2423,  2150,  2424,  2430,  1364,  2438,
-   868,  2474,  2486,  2484,  1364,  2488,  2491,  2487,  2493,  1237,
-  2494,   429,  1319,   727,  1637,  2406,  1942,  1227,   869,   901,
-  1630,   313,   621,   478,   974,   843,  1628,   843,  1951,  2173,
-  2296,  2448,  1458,  2416,   843,  2482,   860,  2467,  1069,  1069,
-  1069,  1069,   861,  2463,  1374,  2479,   870,   862,  1954,  2483,
-  1459,  1947,   418,  1674,   871,   872,   873,   874,   875,   876,
-   877,   878,   651,  1673,   916,  1105,   386,   760,  1369,  2400,
-  2464,  1105,  1105,  1105,  1105,  1105,  2406,   313,  1460,  2480,
-  2448,  2399,  2473,   511,  1946,  1592,  1461,  1462,  1463,  1464,
-  1465,  1466,  1467,  1468,   426,   648,  2442,   863,   751,  1556,
-  1685,  1906,  1588,  1257,   864,   510,   664,  2407,  2090,  1249,
-  1878,  2088,   865,   483,   484,   485,   486,   487,   488,   489,
-   490,  2481,  1729,   866,   841,  2044,  2003,  1372,  2195,  1571,
-  1565,   867,  2433,  1231,  1241,  2092,   444,  1565,  1290,   694,
-  1292,  1907,   892,   702,   754,  1177,  1177,  1177,  1177,  1177,
-  1293,   635,  1575,  1252,  2358,   438,  1875,  1360,  1558,  2355,
-  1303,  2356,   860,     0,  1177,     0,     0,     0,   861,     0,
-     0,     0,     0,   862,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   860,     0,     0,     0,     0,     0,  1522,
-     0,     0,    22,     0,   862,    23,     0,    24,    25,     0,
-    26,     0,    27,     0,     0,    28,    29,    30,    31,    32,
-   400,     0,    33,     0,   868,    34,    35,    36,    37,    38,
-    39,    40,     0,   863,     0,     0,   907,     0,  1237,     0,
-   864,     0,   869,     0,     0,     0,     0,     0,   865,     0,
-     0,     0,   312,     0,   863,     0,     0,     0,     0,   866,
-   312,   864,     0,     0,     0,     0,     0,   867,     0,   865,
-   870,     0,     0,     0,     0,     0,     0,     0,   871,   872,
-   873,   874,   875,   876,   877,   878,     0,     0,     0,     0,
-     0,  1565,     0,  1565,  2114,     0,  1522,  1629,     0,  1629,
-  1631,  1632,   312,     0,     0,  2116,     0,     0,   400,     0,
-     0,     0,     0,     0,   992,     0,     0,     0,   992,     0,
-     0,     0,     0,     0,     0,     0,     0,   312,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   494,  1672,  1672,
-   494,     0,     0,     0,     0,   312,     0,   312,     0,  1681,
-   868,     0,     0,     0,  1025,  2117,     0,     0,     0,     0,
-     0,     0,  2118,  1692,  1693,     0,     0,     0,   869,     0,
-  2119,   868,     0,     0,     0,   294,   294,     0,   294,     0,
-     0,  2120,     0,     0,     0,     0,     0,  1069,  1069,   869,
-     0,     0,     0,     0,     0,     0,   870,  1069,  1069,  1069,
-  1069,  1069,  1069,  1069,   871,   872,   873,   874,   875,   876,
-   877,   878,     0,     0,  1522,     0,     0,   870,     0,  -719,
-     0,     0,     0,     0,  1069,   871,   872,   873,   874,   875,
-   876,   877,   878,     0,     0,     0,     0,     0,     0,  1105,
-  1177,     0,     0,  1105,     0,  1105,     0,     0,  1105,  1105,
-  1105,  1105,  1105,  1105,  1105,  1105,  1105,     0,    53,  1105,
-     0,     0,     0,    54,     0,     0,    55,    56,     0,     0,
-    57,     0,  2122,     0,     0,     0,     0,     0,     0,    58,
-    59,     0,     0,     0,  1177,     0,     0,  1069,     0,     0,
-  2123,     0,     0,    60,    61,     0,     0,  1177,  1177,  1177,
-  1177,  1177,  1177,  1177,     0,     0,     0,     0,     0,     0,
-     0,     0,  1450,  1522,     0,     0,     0,     0,  2124,     0,
-    62,     0,     0,  1452,     0,    63,  2125,  2126,  2127,  2128,
-  2129,  2130,  2131,  2132,     0,    64,     0,     0,     0,    65,
-     0,    66,     0,     0,   400,     0,     0,   400,     0,     0,
-     0,    67,  1891,    68,     0,  1237,     0,    69,     0,    70,
-     0,    71,     0,     0,     0,    72,     0,     0,     0,     0,
-     0,     0,    73,  1453,     0,     0,     0,     0,     0,    74,
-  1454,     0,     0,     0,     0,     0,     0,     0,  1455,     0,
-     0,     0,  1909,  1522,     0,  1522,  1522,  1522,  1522,  1522,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  1931,     0,     0,  1025,     0,   445,   294,     0,
-     0,     0,     0,     0,    75,     0,    76,   860,     0,    77,
-    78,     0,  1522,   861,     0,     0,     0,     0,   862,     0,
-     0,     0,     0,  1629,     0,  1955,     0,    79,   860,     0,
-     0,  1970,     0,     0,   861,     0,     0,     0,     0,   862,
-     0,     0,     0,    80,    81,     0,     0,     0,     0,     0,
-     0,     0,     0,    82,    83,     0,     0,     0,     0,     0,
-  1522,     0,     0,     0,    84,    85,     0,     0,   863,     0,
-  1458,   294,     0,     0,     0,   864,    86,    87,    88,     0,
-    89,     0,     0,   865,    90,     0,     0,     0,  1459,   863,
-    91,     0,     0,     0,   866,     0,   864,     0,    92,     0,
-     0,     0,   867,     0,   865,     0,    93,     0,     0,     0,
-     0,     0,     0,    94,  1522,   866,  1460,  1177,     0,  1105,
-     0,     0,     0,   867,  1461,  1462,  1463,  1464,  1465,  1466,
-  1467,  1468,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    95,     0,     0,     0,     0,     0,     0,
-     0,   294,   294,     0,     0,     0,   294,     0,     0,  1522,
-     0,     0,     0,     0,     0,     0,     0,  1522,  1522,     0,
-     0,  1522,     0,  1522,     0,     0,  1522,  1522,  1522,  1522,
-  1522,  1522,  1522,  1522,  1522,   868,  1522,     0,     0,     0,
-     0,  1522,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   869,     0,  1522,   868,     0,     0,     0,
-  1177,     0,     0,     0,  1522,  1522,  1522,  1522,  1522,     0,
-     0,     0,     0,     0,   869,     0,     0,     0,     0,     0,
-     0,   870,     0,     0,     0,     0,     0,     0,     0,   871,
-   872,   873,   874,   875,   876,   877,   878,   400,     0,     0,
-     0,     0,   870,     0,  1396,     0,     0,     0,  1154,     0,
-   871,   872,   873,   874,   875,   876,   877,   878,     0,     0,
-   312,     0,     0,     0,     0,  -718,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  1931,
-     0,  1931,  1931,  1931,  1931,  1931,     0,     0,     0,     0,
-  1025,  1025,     0,     0,     0,     0,   312,     0,     0,     0,
-     0,     0,  1522,     0,     0,     0,     0,   400,  1522,     0,
-  1522,     0,     0,     0,     0,     0,     0,   312,   474,     0,
-     0,  2172,   887,  2114,     0,     0,     0,   294,     0,  2115,
-     0,     0,  2181,     0,  2116,     0,     0,     0,     0,  1522,
-     0,     0,     0,     0,     0,     0,     0,     0,  1522,  1522,
-  1522,  1522,  1522,  1522,  1522,  1522,  1522,  1522,     0,     0,
-  1177,     0,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,     0,    13,    14,    15,    16,    17,    18,    19,
-    20,    21,     0,     0,  2117,     0,     0,   294,     0,   294,
-     0,  2118,     0,   287,     0,     0,   287,     0,   287,  2119,
-     0,     0,  1522,     0,   287,     0,     0,   287,     0,  1522,
-  2120,  1522,     0,     0,     0,     0,     0,     0,   287,   287,
-     0,     0,   287,     0,     0,     0,   287,   287,     0,     0,
-     0,   287,   287,   287,     0,     0,     0,     0,     0,     0,
-     0,     0,   400,     0,     0,     0,     0,     0,     0,   400,
-     0,     0,     0,     0,     0,  1522,     0,  1522,     0,     0,
-     0,     0,     0,     0,     0,  1931,     0,  1522,     0,     0,
-     0,     0,     0,  1931,     0,     0,     0,  1931,     0,  1931,
-     0,     0,  1931,  1931,  1931,  1931,  1931,  1931,  1931,  1931,
-  1931,     0,  1931,     0,     0,     0,     0,   474,     0,     0,
-     0,  2122,     0,     0,     0,     0,     0,   860,     0,   312,
-     0,  1931,     0,   861,     0,     0,  1267,     0,   862,  2123,
-   474,   474,   474,   474,   474,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1108,     0,     0,
-     0,     0,     0,     0,     0,     0,  1268,  2124,     0,     0,
-     0,     0,  1177,     0,  1179,  2125,  2126,  2127,  2128,  2129,
-  2130,  2131,  2132,     0,     0,     0,     0,     0,   863,     0,
-     0,     0,  1230,     0,     0,   864,     0,     0,  1243,     0,
-     0,     0,     0,   865,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   400,   866,   400,     0,     0,     0,     0,
-     0,     0,   867,     0,    22,     0,     0,    23,     0,     0,
-    25,     0,    26,     0,    27,     0,     0,    28,    29,    30,
-    31,    32,     0,     0,     0,     0,  1931,    34,    35,    36,
-    37,    38,     0,  1600,     0,     0,   287,     0,     0,   294,
-     0,  1269,     0,     0,     0,     0,     0,     0,   312,     0,
-     0,  1237,     0,     0,     0,   474,     0,     0,     0,     0,
-   287,     0,     0,     0,   474,   474,   474,   474,   474,   474,
-   474,   474,   474,   474,  1025,   287,   287,  1237,     0,   287,
-   287,   312,   287,   287,     0,   868,     0,     0,     0,   287,
-     0,     0,     0,   287,   287,     0,     0,   287,     0,   287,
-   287,   287,     0,   869,     0,     0,   287,   287,     0,   473,
-     0,  1230,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   287,     0,  1931,     0,  2418,
-   509,   870,   329,     0,     0,     0,     0,     0,     0,   871,
-   872,   873,   874,   875,   876,   877,   878,   287,     0,     0,
-   287,     0,     0,   330,     0,     0,     0,   287,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  2437,     0,   860,
-     0,     0,     0,     0,     0,   861,     0,     0,     0,  1108,
-   862,   287,     0,   474,     0,  1108,  1108,  1108,  1108,  1108,
-     0,     0,     0,     0,   331,   332,   287,     0,     0,   287,
-   887,     0,   287,     0,   860,     0,     0,   333,     0,   334,
-   861,     0,     0,     0,   335,   862,     0,   287,     0,     0,
-     0,   336,     0,  2437,   337,     0,     0,     0,   338,     0,
-   863,     0,     0,     0,     0,   287,     0,   864,     0,   339,
-     0,     0,     0,     0,     0,   865,     0,   287,   340,     0,
-     0,  -352,     0,     0,     0,     0,   866,     0,  1426,  1179,
-  1179,  1179,  1179,  1179,   867,   863,     0,   287,     0,     0,
-   287,   287,   864,     0,     0,   341,     0,  -270,  1179,     0,
-   865,     0,   342,     0,   343,     0,     0,     0,     0,  1688,
-     0,   866,   344,     0,     0,     0,     0,     0,     0,   867,
-     0,     0,     0,   860,     0,   287,     0,     0,     0,   861,
-     0,  1991,     0,     0,   862,     0,     0,     0,     0,     0,
-   791,     0,   887,     0,     0,     0,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,   842,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,     0,   868,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   863,   869,     0,     0,     0,     0,
-     0,   864,     0,     0,     0,   287,     0,     0,     0,   865,
-     0,     0,   868,   287,     0,   287,     0,   287,     0,     0,
-   866,     0,     0,   870,     0,     0,     0,   287,   867,     0,
-   869,   871,   872,   873,   874,   875,   876,   877,   878,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   870,     0,
-     0,     0,     0,     0,     0,   287,   871,   872,   873,   874,
-   875,   876,   877,   878,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   287,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   287,     0,     0,     0,     0,     0,   287,
-     0,   868,     0,     0,     0,     0,   287,   287,     0,     0,
-     0,     0,   287,     0,     0,     0,   287,   287,     0,   869,
-     0,     0,     0,   287,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1043,     0,     0,   870,     0,     0,
-     0,     0,     0,     0,     0,   871,   872,   873,   874,   875,
-   876,   877,   878,  1108,  1179,     0,     0,  1108,     0,  1108,
-     0,     0,  1108,  1108,  1108,  1108,  1108,  1108,  1108,  1108,
-  1108,     0,     0,  1108,     0,     0,     0,     0,    22,  2114,
-  1067,    23,     0,     0,    25,  2115,    26,  2359,    27,     0,
-  2116,    28,    29,    30,    31,    32,     0,     0,  1179,     0,
-     0,    34,    35,    36,    37,    38,     0,  2410,     0,   287,
-   842,  1179,  1179,  1179,  1179,  1179,  1179,  1179,     0,     0,
-     0,     0,    54,     0,  1103,    55,    56,     0,     0,    57,
-     0,     0,     0,   287,     0,   287,   287,     0,    58,    59,
-  2117,  1175,     0,     0,     0,     0,     0,  2118,     0,     0,
-     0,     0,    60,    61,     0,  2119,     0,     0,     0,  1230,
-     0,     0,     0,     0,     0,     0,  2120,     0,     0,   860,
-     0,     0,     0,     0,  2121,   861,     0,     0,     0,    62,
-   862,     0,     0,     0,   428,     0,     0,     0,     0,     0,
-     0,     0,     0,   287,    64,   287,     0,     0,    65,     0,
-    66,     0,     0,     0,  2114,     0,     0,     0,     0,     0,
-    67,     0,    68,     0,     0,  2116,    69,     0,    70,     0,
-    71,     0,     0,     0,    72,     0,     0,     0,     0,     0,
-   863,    73,     0,     0,     0,     0,     0,   864,    74,     0,
-     0,     0,     0,     0,     0,   865,     0,     0,     0,     0,
-     0,     0,   287,     0,     0,     0,   866,  2122,     0,   287,
-     0,     0,     0,     0,   867,  2117,     0,     0,     0,     0,
-   287,     0,  2118,     0,     0,  2123,   287,     0,     0,     0,
-  2119,   287,     0,    75,     0,    76,     0,     0,    77,    78,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  2124,     0,     0,    79,     0,     0,     0,
-     0,  2125,  2126,  2127,  2128,  2129,  2130,  2131,  2132,   860,
-     0,     0,    80,    81,     0,     0,     0,     0,     0,     0,
-   862,     0,    82,    83,     0,     0,     0,     0,     0,  1067,
-  1067,  1067,  1067,    84,    85,     0,     0,   868,     0,     0,
-     0,  1179,     0,  1108,     0,    86,    87,    88,     0,    89,
-     0,     0,     0,    90,     0,   869,  1103,     0,     0,    91,
-     0,     0,  1103,  1103,  1103,  1103,  1103,    92,     0,     0,
-   863,     0,  2122,     0,     0,    93,     0,   864,     0,     0,
-     0,     0,    94,   870,     0,   865,     0,     0,     0,     0,
-  2123,   871,   872,   873,   874,   875,   876,   877,   878,  1450,
-     0,     0,     0,     0,     0,  1451,     0,     0,     0,     0,
-  1452,     0,    95,     0,     0,     0,     0,     0,  2124,     0,
-   842,     0,     0,     0,     0,     0,  2125,  2126,  2127,  2128,
-  2129,  2130,  2131,  2132,  1179,     0,  1175,  1175,  1175,  1175,
-  1175,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  1175,     0,     0,     0,     0,
-  1453,     0,     0,  2114,     0,     0,     0,  1454,     0,  2115,
-     0,     0,   287,     0,  2116,  1455,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1456,   868,   287,     0,
-   287,     0,     0,     0,  1457,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   287,   869,     0,     0,     0,     0,
-     0,     0,   287,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  2117,     0,     0,     0,     0,     0,
-     0,  2118,     0,   870,     0,     0,     0,     0,     0,  2119,
-     0,     0,-32768,-32768,   874,   875,   876,   877,   878,   287,
-  2120,   287,   287,   287,   287,     0,     0,     0,  2121,     0,
-   287,     0,     0,     0,     0,     0,   287,     0,     0,     0,
-   287,     0,     0,     0,     0,     0,     0,  1458,     0,   287,
-     0,     0,     0,     0,     0,     0,     0,   842,     0,   287,
-   287,   287,   287,     0,  1179,  1459,     0,   287,     0,   287,
-     0,   287,     0,     0,     0,     0,   287,     0,     0,     0,
-     0,     0,     0,     0,   842,   287,   287,     0,     0,     0,
-     0,     0,     0,  1460,     0,     0,     0,     0,     0,     0,
-     0,  1461,  1462,  1463,  1464,  1465,  1466,  1467,  1468,     0,
-     0,  2122,  1450,     0,     0,     0,     0,     0,   842,     0,
-     0,     0,     0,  1452,     0,     0,     0,     0,     0,  2123,
-     0,     0,     0,     0,     0,     0,     0,     0,  1067,  1067,
-     0,     0,  1043,     0,     0,     0,     0,  2114,  1067,  1067,
-  1067,  1067,  1067,  1067,  1067,     0,     0,  2124,  2116,     0,
-   842,     0,     0,     0,     0,  2125,  2126,  2127,  2128,  2129,
-  2130,  2131,  2132,  1453,     0,  1067,     0,     0,     0,     0,
-  1454,     0,     0,     0,     0,     0,     0,     0,  1455,     0,
-  1103,  1175,     0,     0,  1103,     0,  1103,     0,     0,  1103,
-  1103,  1103,  1103,  1103,  1103,  1103,  1103,  1103,  2117,     0,
-  1103,     0,     0,     0,     0,  2118,     0,     0,   842,     0,
-     0,     0,     0,  2119,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  1175,     0,   842,  1067,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1175,  1175,
-  1175,  1175,  1175,  1175,  1175,     0,  1179,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   287,     0,     0,   287,
-     0,     0,     0,     0,   287,     0,     0,   287,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  1458,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1459,     0,
-     0,     0,     0,     0,   287,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  2122,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1460,   287,     0,   842,
-     0,     0,     0,  2123,     0,-32768,-32768,  1464,  1465,  1466,
-  1467,  1468,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1929,     0,   287,     0,   287,     0,     0,
-     0,  2124,     0,   287,     0,     0,     0,     0,     0,     0,
--32768,-32768,  2128,  2129,  2130,  2131,  2132,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   806,   533,   807,   808,   809,   810,   538,   811,   812,
-   813,     0,   814,     0,   815,   816,   817,   818,   819,   820,
-   821,   822,   823,   824,   825,     0,   826,   827,   828,   829,
-   830,   831,     0,   832,   833,   834,   835,   836,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   842,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   567,   568,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1175,     0,
-  1103,     0,   205,   574,     0,     0,     0,     0,     0,   837,
-     0,     0,     0,     0,     0,     0,     0,   578,     0,   579,
-     0,     0,     0,     0,     0,     0,     0,     0,   207,     0,
-     0,     0,     0,     0,   580,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   212,   213,     0,
-   581,     0,   582,     0,     0,     0,     0,     0,   586,     0,
-     0,   842,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   223,    77,     0,     0,     0,     0,     0,     0,   838,
-   839,  1175,     0,     0,     0,     0,     0,   592,     0,   287,
-     0,     0,     0,     0,   594,     0,     0,     0,     0,     0,
-   287,   228,     0,     0,     0,     0,   840,     0,     0,     0,
-     0,     0,   287,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   287,   287,     0,     0,     0,     0,   287,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   287,
-  1929,     0,  1929,  1929,  1929,  1929,  1929,   596,     0,   287,
-     0,     0,     0,   287,     0,     0,     0,     0,     0,     0,
-   283,   284,     0,   285,   287,     0,    25,   598,    26,     0,
-     0,     0,   842,     0,     0,     0,   796,     0,     0,  2168,
-     0,   842,     0,     0,     0,     0,     0,     0,     0,     0,
-   844,     0,   847,  2180,   848,   849,   850,   854,   842,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1175,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   842,
-   769,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   842,     0,     0,     0,   923,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   287,     0,     0,     0,     0,     0,
-     0,   287,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   842,     0,   842,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   903,     0,
-     0,     0,     0,     0,     0,     0,  1929,     0,     0,     0,
-     0,     0,     0,     0,  1929,     0,     0,  1011,  1929,     0,
-  1929,   287,     0,  1929,  1929,  1929,  1929,  1929,  1929,  1929,
-  1929,  1929,     0,  1929,     0,     0,     0,     0,  2168,     0,
-     0,     0,     0,     0,     0,     0,  1032,     0,     0,     0,
-     0,     0,  1929,     0,     0,     0,     0,     0,     0,     0,
-     0,  2168,  2168,  2168,  2168,  2168,     0,     0,     0,     0,
-  1053,  1054,     0,     0,     0,     0,     0,     0,  1077,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1175,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   287,     0,   287,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1100,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   842,     0,     0,     0,  1157,     0,   842,     0,  1185,     0,
-  1189,     0,     0,  1193,  1198,  1202,  1206,  1210,  1214,  1218,
-  1222,  1226,     0,     0,     0,     0,  1066,     0,     0,     0,
-   287,     0,     0,   287,     0,     0,     0,  1929,     0,     0,
-     0,     0,     0,     0,     0,   842,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   287,     0,     0,   287,
-   842,   842,     0,   287,     0,     0,  2168,     0,     0,     0,
-  1102,     0,     0,     0,     0,  2168,  2168,  2168,  2168,  2168,
-  2168,  2168,  2168,  2168,  2168,     0,     0,  1174,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   842,
-   842,     0,     0,     0,     0,     0,     0,   842,     0,     0,
-     0,   287,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1929,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   287,
-     0,     0,     0,   842,     0,   842,  1068,     0,     0,     0,
-     0,     0,   842,     0,     0,     0,     0,     0,     0,     0,
-  1370,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  2168,     0,     0,     0,     0,     0,
-  1104,     0,     0,     0,     0,   287,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1077,  1176,  1077,  1077,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  1433,     0,     0,     0,     0,     0,  1439,  1441,  1443,  1445,
-  1447,   854,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1485,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  1066,  1066,  1066,  1066,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  1102,     0,     0,  1507,     0,     0,  1102,  1102,
-  1102,  1102,  1102,     0,     0,     0,     0,     0,     0,     0,
-     0,  1528,     0,     0,     0,   854,     0,     0,     0,     0,
-   854,     0,     0,     0,   854,     0,     0,     0,   854,     0,
-     0,     0,   854,     0,     0,     0,   854,     0,     0,     0,
-   854,     0,     0,     0,   854,     0,     0,     0,   854,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  1174,  1174,  1174,  1174,  1174,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   923,
-     0,  1174,     0,     0,     0,  1068,  1068,  1068,  1068,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  1104,     0,     0,     0,     0,     0,  1104,  1104,
-  1104,  1104,  1104,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   903,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1694,  1176,  1176,  1176,  1176,  1176,     0,     0,     0,
-  1697,     0,     0,     0,     0,  1521,     0,     0,     0,  1698,
-     0,  1176,     0,     0,     0,  1077,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1040,     0,     0,     0,     0,     0,
-     0,  1725,     0,     0,     0,     0,     0,     0,  1730,     0,
-     0,  1077,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1739,     0,     0,     0,  1747,     0,
-  1752,     0,     0,  1757,  1763,  1768,  1773,  1778,  1783,  1788,
-  1793,  1798,     0,     0,  1100,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1066,  1066,     0,     0,     0,     0,
-     0,     0,     0,     0,  1066,  1066,  1066,  1066,  1066,  1066,
-  1066,     0,     0,     0,  1077,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1066,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1102,  1174,     0,     0,
-  1102,     0,  1102,     0,     0,  1102,  1102,  1102,  1102,  1102,
-  1102,  1102,  1102,  1102,     0,     0,  1102,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1174,     0,     0,  1066,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1174,  1174,  1174,  1174,  1174,  1174,
-  1174,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1068,  1068,     0,     0,     0,     0,
-     0,     0,     0,     0,  1068,  1068,  1068,  1068,  1068,  1068,
-  1068,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1068,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1104,  1176,     0,     0,
-  1104,     0,  1104,     0,     0,  1104,  1104,  1104,  1104,  1104,
-  1104,  1104,  1104,  1104,     0,     0,  1104,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1077,  1077,  1077,     0,
-     0,  1176,     0,     0,  1068,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1176,  1176,  1176,  1176,  1176,  1176,
-  1176,     0,     0,     0,     0,     0,  1077,  1077,  1077,     0,
-     0,     0,  1846,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  2009,     0,     0,     0,     0,   854,
-     0,     0,     0,     0,     0,   854,     0,     0,     0,     0,
-   854,     0,     0,     0,     0,   854,     0,     0,     0,     0,
-   854,     0,     0,     0,     0,   854,     0,     0,     0,     0,
-   854,     0,     0,     0,     0,   854,     0,     0,     0,     0,
-   854,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  2045,     0,     0,     0,     0,     0,     0,     0,
-     0,  1518,     0,     0,     0,     0,     0,     0,  1077,  1077,
-  1077,     0,     0,  1531,  1174,     0,  1102,     0,  1534,  1930,
-     0,     0,  1537,     0,     0,     0,  1540,     0,     0,     0,
-  1543,     0,     0,     0,  1546,     0,     0,     0,  1549,     0,
-     0,     0,  1552,     0,     0,     0,  1555,     0,     0,   806,
-   533,   807,   808,   809,   810,   538,   811,   812,   813,     0,
-   814,     0,   815,   816,   817,   818,   819,   820,   821,   822,
-   823,   824,   825,     0,   826,   827,   828,   829,   830,   831,
-     0,   832,   833,   834,   835,   836,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1174,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   567,   568,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1521,     0,     0,
-   205,   574,     0,     0,  1176,     0,  1104,   837,     0,     0,
-     0,     0,     0,     0,     0,   578,     0,   579,     0,     0,
-     0,     0,     0,     0,     0,     0,   207,     0,     0,  1661,
-     0,     0,   580,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   212,   213,     0,   581,     0,
-   582,     0,     0,     0,     0,     0,   586,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   223,
-     0,     0,     0,     0,     0,     0,     0,   838,   839,     0,
-     0,     0,     0,     0,     0,   592,  2059,  1176,     0,     0,
-     0,     0,   594,     0,     0,     0,     0,     0,     0,   228,
-     0,     0,  1728,     0,   840,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1174,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  2240,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   596,  1930,     0,  1930,  1930,
-  1930,  1930,  1930,     0,     0,     0,     0,     0,   283,   284,
-     0,   285,     0,     0,    25,   598,    26,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1843,     0,
-  1847,  1848,     0,  1850,  1851,  2169,  1853,  1854,     0,  1856,
-  1857,     0,  1859,  1860,     0,  1862,  1863,     0,  1865,  1866,
-     0,  1868,  1869,     0,  1871,  1872,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1176,     0,     0,
-     0,     0,     0,  1846,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  2234,     0,  1174,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  1930,     0,     0,     0,     0,     0,     0,     0,
-  1930,  2259,     0,     0,  1930,     0,  1930,     0,     0,  1930,
-  1930,  1930,  1930,  1930,  1930,  1930,  1930,  1930,     0,  1930,
-     0,     0,     0,     0,  2169,  2408,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1930,     0,
-     0,     0,     0,     0,     0,     0,     0,  2169,  2169,  2169,
-  2169,  2169,     0,  1518,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  2013,     0,     0,
-     0,     0,     0,  2016,     0,     0,     0,     0,  2019,  1176,
-     0,     0,     0,  2022,     0,     0,     0,     0,  2025,     0,
-     0,     0,     0,  2028,     0,     0,     0,     0,  2031,     0,
-     0,     0,     0,  2034,     0,     0,     0,     0,  2037,     0,
-     0,     0,     0,     0,     0,     0,  2041,     0,     0,     0,
-  2043,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  2259,     0,     0,     0,     0,
-     0,  2259,     0,  1930,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  2169,     0,     0,     0,     0,     0,     0,     0,
-     0,  2169,  2169,  2169,  2169,  2169,  2169,  2169,  2169,  2169,
-  2169,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  2259,     0,     0,     0,     0,
-     0,     0,  2259,     0,  1930,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  2259,     0,
-  2259,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  2169,     0,     0,     0,     0,     0,     0,     0,     0,  1843,
-     0,     0,  2196,  2197,     0,  2199,  2200,     0,  2202,  2203,
-     0,  2205,  2206,     0,  2208,  2209,     0,  2211,  2212,     0,
-  2214,  2215,     0,  2217,  2218,     0,  2220,  2221,     0,     0,
-     0,     0,     0,  2225,     0,     0,     0,  2228,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   565,   566,   567,   568,     0,     0,   569,     0,     0,     0,
-     0,     0,     0,   397,   570,   571,   572,   573,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,   576,   577,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,   583,   584,   585,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,   587,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,   588,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,   591,   592,     0,     0,     0,   593,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,   597,
-   285,   286,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,   599,  1238,     0,   601,   602,     0,   603,     0,     0,
-     0,     0,     0,   604,  1239,   532,   533,   534,   535,   536,
-   537,   538,   539,   540,   541,     0,   542,     0,   543,   544,
-   545,   546,   547,   548,   549,   550,   551,   552,   553,     0,
-   554,   555,   556,   557,   558,   559,     0,   560,   561,   562,
-   563,   564,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   203,   204,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   565,   566,   567,
-   568,     0,     0,   569,     0,     0,     0,     0,     0,     0,
-   397,   570,   571,   572,   573,     0,   205,   574,     0,     0,
-     0,     0,     0,   575,     0,     0,     0,     0,     0,   576,
-   577,   578,     0,   579,     0,     0,     0,     0,     0,     0,
-     0,     0,   207,     0,     0,   208,     0,     0,   580,     0,
-     0,     0,     0,   209,   210,     0,     0,     0,     0,     0,
-   211,   212,   213,     0,   581,     0,   582,   214,     0,   583,
-   584,   585,   586,   215,     0,   216,   217,     0,     0,     0,
-     0,   587,     0,     0,   218,   219,     0,     0,   220,     0,
-   221,     0,     0,     0,   222,   223,     0,     0,   588,     0,
-     0,     0,     0,   589,   590,   226,   227,     0,     0,     0,
-   591,   592,     0,     0,     0,   593,     0,     0,   594,     0,
-     0,     0,     0,     0,     0,   228,   229,   230,   231,   232,
-   595,     0,   234,   235,   236,     0,   237,   238,     0,   239,
-     0,     0,   240,   241,   242,   243,   244,     0,   245,   246,
-   247,     0,     0,   248,   249,   250,   251,   252,   253,   254,
-   255,   256,     0,     0,     0,     0,   257,     0,   258,   259,
-   260,     0,   398,   261,   262,     0,   263,     0,   264,     0,
-   265,   266,   267,   268,   269,     0,   270,   271,   272,   273,
-   274,   596,   275,     0,   276,   277,   278,   279,   280,     0,
-     0,   281,     0,   282,   283,   284,   597,   285,   286,     0,
-    25,   598,    26,     0,     0,     0,     0,     0,   599,  1800,
-     0,   601,   602,     0,   603,     0,     0,     0,     0,     0,
-   604,  1801,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   565,   566,   567,   568,     0,     0,
-   569,     0,     0,     0,     0,     0,     0,   397,   570,   571,
-   572,   573,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,   576,   577,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,   583,   584,   585,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,   587,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,   588,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,   591,   592,     0,
-     0,     0,   593,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,   398,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,   597,   285,   286,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,   599,     0,     0,   601,   602,
-     0,   603,     0,     0,     0,     0,     0,   604,  1716,   532,
-   533,   534,   535,   536,   537,   538,   539,   540,   541,     0,
-   542,     0,   543,   544,   545,   546,   547,   548,   549,   550,
-   551,   552,   553,     0,   554,   555,   556,   557,   558,   559,
-     0,   560,   561,   562,   563,   564,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   203,   204,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   565,   566,   567,   568,     0,     0,   569,     0,     0,
-     0,     0,     0,     0,   397,   570,   571,   572,   573,     0,
-   205,   574,     0,     0,     0,     0,     0,   575,     0,     0,
-     0,     0,     0,   576,   577,   578,     0,   579,     0,     0,
-     0,     0,     0,     0,     0,     0,   207,     0,     0,   208,
-     0,     0,   580,     0,     0,     0,     0,   209,   210,     0,
-     0,     0,     0,     0,   211,   212,   213,     0,   581,     0,
-   582,   214,     0,   583,   584,   585,   586,   215,     0,   216,
-   217,     0,     0,     0,     0,   587,     0,     0,   218,   219,
-     0,     0,   220,     0,   221,     0,     0,     0,   222,   223,
-     0,     0,   588,     0,     0,     0,     0,   589,   590,   226,
-   227,     0,     0,     0,   591,   592,     0,     0,     0,   593,
-     0,     0,   594,     0,     0,     0,     0,     0,     0,   228,
-   229,   230,   231,   232,   595,     0,   234,   235,   236,     0,
-   237,   238,     0,   239,     0,     0,   240,   241,   242,   243,
-   244,     0,   245,   246,   247,     0,     0,   248,   249,   250,
-   251,   252,   253,   254,   255,   256,     0,     0,     0,     0,
-   257,     0,   258,   259,   260,     0,   398,   261,   262,     0,
-   263,     0,   264,     0,   265,   266,   267,   268,   269,     0,
-   270,   271,   272,   273,   274,   596,   275,     0,   276,   277,
-   278,   279,   280,     0,     0,   281,     0,   282,   283,   284,
-   597,   285,   286,     0,    25,   598,    26,     0,     0,     0,
-     0,     0,   599,     0,     0,   601,   602,     0,   603,     0,
-     0,     0,     0,     0,   604,  1838,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  2155,
-   567,   568,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  2156,  2157,  2158,  2159,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-     0,     0,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-     0,     0,     0,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,     0,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,     0,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,     0,   592,     0,     0,     0,  2161,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,     0,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,  2162,   285,     0,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,  2163,
-     0,     0,     0,  2164,     0,  2165,     0,     0,     0,     0,
-     0,  2166,  2393,   532,   533,   534,   535,   536,   537,   538,
-   539,   540,   541,     0,   542,     0,   543,   544,   545,   546,
-   547,   548,   549,   550,   551,   552,   553,     0,   554,   555,
-   556,   557,   558,   559,     0,   560,   561,   562,   563,   564,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   203,   204,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,  1920,   567,   568,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   205,   574,     0,     0,     0,     0,
-     0,   575,     0,     0,     0,     0,     0,     0,     0,   578,
-     0,   579,     0,     0,     0,     0,     0,     0,     0,     0,
-   207,     0,     0,   208,     0,     0,   580,     0,     0,     0,
-     0,   209,   210,     0,     0,     0,     0,     0,   211,   212,
-   213,     0,   581,     0,   582,   214,     0,  1921,     0,  1922,
-   586,   215,     0,   216,   217,     0,     0,     0,     0,     0,
-     0,     0,   218,   219,     0,     0,   220,     0,   221,     0,
-     0,     0,   222,   223,     0,     0,     0,     0,     0,     0,
-     0,   589,   590,   226,   227,     0,     0,     0,     0,   592,
-     0,     0,     0,     0,     0,     0,   594,     0,     0,     0,
-     0,     0,     0,   228,   229,   230,   231,   232,   595,     0,
-   234,   235,   236,     0,   237,   238,     0,   239,     0,     0,
-   240,   241,   242,   243,   244,     0,   245,   246,   247,     0,
-     0,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     0,     0,     0,     0,   257,     0,   258,   259,   260,     0,
-     0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
-   267,   268,   269,     0,   270,   271,   272,   273,   274,   596,
-   275,     0,   276,   277,   278,   279,   280,     0,     0,   281,
-     0,   282,   283,   284,  1923,   285,     0,     0,    25,   598,
-    26,     0,     0,     0,     0,     0,  1924,     0,     0,     0,
-  1925,     0,  1926,     0,     0,     0,     0,     0,  1927,  2279,
-   172,     0,   173,   174,   175,   176,     0,   177,   178,   179,
-     0,   180,     0,   181,   182,   183,   184,   185,   186,   187,
-   188,   189,   190,   191,     0,   192,   193,   194,   195,   196,
-   197,     0,   198,   199,   200,   201,   202,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   567,   568,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   205,   983,     0,     0,     0,     0,     0,   984,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   985,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,     0,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,     0,     0,     0,   986,   215,     0,
-   216,   217,     0,     0,     0,     0,     0,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,     0,     0,     0,     0,     0,   224,   225,
-   226,   227,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   233,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,     0,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-     0,     0,   285,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,   987,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1073,     0,     0,   565,   566,   567,   568,
-     0,     0,   569,     0,     0,     0,     0,     0,     0,   397,
-   570,   571,   572,   573,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,   576,   577,
-   578,     0,   579,     0,     0,  1074,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,  1075,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,   583,   584,
-   585,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-   587,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,   588,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,  1076,     0,   591,
-   592,     0,     0,     0,   593,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,   398,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,   597,   285,   286,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,   599,     0,     0,
-   601,   602,     0,   603,     0,     0,     0,     0,     0,   604,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  1703,
-     0,     0,   565,   566,   567,   568,     0,     0,   569,     0,
-     0,     0,     0,     0,     0,   397,   570,   571,   572,   573,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,   576,   577,   578,     0,   579,     0,
-     0,  1074,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-  1704,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,   583,   584,   585,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,   587,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,   588,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,  1705,     0,   591,   592,     0,     0,     0,
-   593,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,   597,   285,   286,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,   599,     0,     0,   601,   602,     0,   603,
-     0,     0,     0,     0,     0,   604,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  1733,     0,     0,   565,   566,
-   567,   568,     0,     0,   569,     0,     0,     0,     0,     0,
-     0,   397,   570,   571,   572,   573,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-   576,   577,   578,     0,   579,     0,     0,  1074,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,  1734,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-   583,   584,   585,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,   587,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,   588,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,  1735,
-     0,   591,   592,     0,     0,     0,   593,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,   398,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,   597,   285,   286,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,   599,
-     0,     0,   601,   602,     0,   603,     0,     0,     0,     0,
-     0,   604,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1825,     0,     0,   565,   566,   567,   568,     0,     0,
-   569,     0,     0,     0,     0,     0,     0,   397,   570,   571,
-   572,   573,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,   576,   577,   578,     0,
-   579,     0,     0,  1074,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,  1826,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,   583,   584,   585,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,   587,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,   588,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,  1827,     0,   591,   592,     0,
-     0,     0,   593,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,   398,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,   597,   285,   286,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,   599,     0,     0,   601,   602,
-     0,   603,     0,     0,     0,     0,     0,   604,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,  1194,
-     0,     0,  1195,     0,     0,     0,     0,     0,     0,     0,
-   565,   566,   567,   568,     0,     0,   569,     0,     0,     0,
-     0,     0,     0,   397,   570,   571,   572,   573,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,   576,   577,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,   583,   584,  1196,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,   587,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,   588,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,   591,   592,     0,     0,     0,   593,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,   597,
-   285,   286,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,   599,     0,     0,   601,   602,     0,   603,     0,     0,
-     0,     0,     0,  1197,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,     0,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,  1199,     0,     0,  1200,     0,
-     0,     0,     0,     0,     0,     0,   565,   566,   567,   568,
-     0,     0,   569,     0,     0,     0,     0,     0,     0,   397,
-   570,   571,   572,   573,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,   576,   577,
-   578,     0,   579,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,   583,   584,
-   795,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-   587,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,   588,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,     0,     0,   591,
-   592,     0,     0,     0,   593,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,   398,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,   597,   285,   286,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,   599,     0,     0,
-   601,   602,     0,   603,     0,     0,     0,     0,     0,  1201,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,  1203,     0,     0,  1204,     0,     0,     0,     0,     0,
-     0,     0,   565,   566,   567,   568,     0,     0,   569,     0,
-     0,     0,     0,     0,     0,   397,   570,   571,   572,   573,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,   576,   577,   578,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,   583,   584,   795,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,   587,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,   588,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,     0,     0,   591,   592,     0,     0,     0,
-   593,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,   597,   285,   286,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,   599,     0,     0,   601,   602,     0,   603,
-     0,     0,     0,     0,     0,  1205,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,  1207,     0,     0,
-  1208,     0,     0,     0,     0,     0,     0,     0,   565,   566,
-   567,   568,     0,     0,   569,     0,     0,     0,     0,     0,
-     0,   397,   570,   571,   572,   573,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-   576,   577,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-   583,   584,   795,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,   587,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,   588,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,   591,   592,     0,     0,     0,   593,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,   398,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,   597,   285,   286,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,   599,
-     0,     0,   601,   602,     0,   603,     0,     0,     0,     0,
-     0,  1209,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,  1211,     0,     0,  1212,     0,     0,     0,
-     0,     0,     0,     0,   565,   566,   567,   568,     0,     0,
-   569,     0,     0,     0,     0,     0,     0,   397,   570,   571,
-   572,   573,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,   576,   577,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,   583,   584,   795,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,   587,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,   588,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,   591,   592,     0,
-     0,     0,   593,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,   398,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,   597,   285,   286,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,   599,     0,     0,   601,   602,
-     0,   603,     0,     0,     0,     0,     0,  1213,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,  1215,
-     0,     0,  1216,     0,     0,     0,     0,     0,     0,     0,
-   565,   566,   567,   568,     0,     0,   569,     0,     0,     0,
-     0,     0,     0,   397,   570,   571,   572,   573,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,   576,   577,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,   583,   584,   795,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,   587,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,   588,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,   591,   592,     0,     0,     0,   593,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,   597,
-   285,   286,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,   599,     0,     0,   601,   602,     0,   603,     0,     0,
-     0,     0,     0,  1217,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,     0,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,  1219,     0,     0,  1220,     0,
-     0,     0,     0,     0,     0,     0,   565,   566,   567,   568,
-     0,     0,   569,     0,     0,     0,     0,     0,     0,   397,
-   570,   571,   572,   573,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,   576,   577,
-   578,     0,   579,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,   583,   584,
-   795,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-   587,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,   588,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,     0,     0,   591,
-   592,     0,     0,     0,   593,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,   398,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,   597,   285,   286,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,   599,     0,     0,
-   601,   602,     0,   603,     0,     0,     0,     0,     0,  1221,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,  1754,     0,     0,  1755,     0,     0,     0,     0,     0,
-     0,     0,   565,  1080,   567,   568,     0,     0,   569,     0,
-     0,     0,     0,     0,     0,   397,  1081,  1082,  1083,  1084,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,  1085,  1086,   578,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,     0,   584,  1088,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,  1089,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,  1090,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,     0,     0,  1091,   592,     0,     0,     0,
-  1092,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,     0,   285,   286,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,  1094,     0,     0,  1095,  1096, -1285,  1097,
-     0,     0,     0, -1285,     0,  1756,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,  1759,     0,     0,
-  1760,     0,     0,     0,     0,     0,     0,     0,   565,  1080,
-   567,   568,     0,     0,   569,     0,     0,     0,     0,     0,
-     0,   397,  1081,  1082,  1083,  1084,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-  1085,  1086,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-  1087,   584,  1761,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,  1089,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,  1090,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,  1091,   592,     0,     0,     0,  1092,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,   398,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,  1093,   285,   286,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,  1094,
-     0,     0,  1095,  1096,     0,  1097,     0,     0,     0,     0,
-     0,  1762,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,  1765,     0,     0,  1766,     0,     0,     0,
-     0,     0,     0,     0,   565,  1080,   567,   568,     0,     0,
-   569,     0,     0,     0,     0,     0,     0,   397,  1081,  1082,
-  1083,  1084,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,  1085,  1086,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,  1087,   584,  1088,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,  1089,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,  1090,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,  1091,   592,     0,
-     0,     0,  1092,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,   398,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,  1093,   285,   286,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,  1094,     0,     0,  1095,  1096,
-     0,  1097,     0,     0,     0,     0,     0,  1767,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,  1770,
-     0,     0,  1771,     0,     0,     0,     0,     0,     0,     0,
-   565,  1080,   567,   568,     0,     0,   569,     0,     0,     0,
-     0,     0,     0,   397,  1081,  1082,  1083,  1084,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,  1085,  1086,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,  1087,   584,  1088,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,  1089,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,  1090,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,  1091,   592,     0,     0,     0,  1092,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,  1093,
-   285,   286,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,  1094,     0,     0,  1095,  1096,     0,  1097,     0,     0,
-     0,     0,     0,  1772,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,     0,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,  1775,     0,     0,  1776,     0,
-     0,     0,     0,     0,     0,     0,   565,  1080,   567,   568,
-     0,     0,   569,     0,     0,     0,     0,     0,     0,   397,
-  1081,  1082,  1083,  1084,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,  1085,  1086,
-   578,     0,   579,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,  1087,   584,
-  1088,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-  1089,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,  1090,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,     0,     0,  1091,
-   592,     0,     0,     0,  1092,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,   398,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,  1093,   285,   286,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,  1094,     0,     0,
-  1095,  1096,     0,  1097,     0,     0,     0,     0,     0,  1777,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,  1780,     0,     0,  1781,     0,     0,     0,     0,     0,
-     0,     0,   565,  1080,   567,   568,     0,     0,   569,     0,
-     0,     0,     0,     0,     0,   397,  1081,  1082,  1083,  1084,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,  1085,  1086,   578,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,  1087,   584,  1088,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,  1089,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,  1090,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,     0,     0,  1091,   592,     0,     0,     0,
-  1092,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,  1093,   285,   286,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,  1094,     0,     0,  1095,  1096,     0,  1097,
-     0,     0,     0,     0,     0,  1782,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,  1785,     0,     0,
-  1786,     0,     0,     0,     0,     0,     0,     0,   565,  1080,
-   567,   568,     0,     0,   569,     0,     0,     0,     0,     0,
-     0,   397,  1081,  1082,  1083,  1084,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-  1085,  1086,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-  1087,   584,  1088,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,  1089,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,  1090,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,  1091,   592,     0,     0,     0,  1092,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,   398,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,  1093,   285,   286,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,  1094,
-     0,     0,  1095,  1096,     0,  1097,     0,     0,     0,     0,
-     0,  1787,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,  1790,     0,     0,  1791,     0,     0,     0,
-     0,     0,     0,     0,   565,  1080,   567,   568,     0,     0,
-   569,     0,     0,     0,     0,     0,     0,   397,  1081,  1082,
-  1083,  1084,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,  1085,  1086,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,  1087,   584,  1088,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,  1089,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,  1090,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,  1091,   592,     0,
-     0,     0,  1092,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,   398,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,  1093,   285,   286,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,  1094,     0,     0,  1095,  1096,
-     0,  1097,     0,     0,     0,     0,     0,  1792,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   565,   566,   567,   568,     0,     0,   569,     0,     0,     0,
-     0,     0,     0,   397,   570,   571,   572,   573,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,   576,   577,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,   583,   584,   585,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,   587,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,   588,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,   591,   592,     0,     0,     0,   593,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,   597,
-   285,   286,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,   599,   600,     0,   601,   602,     0,   603,     0,     0,
-     0,     0,     0,   604,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,     0,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   565,   566,   567,   568,
-     0,     0,   569,     0,     0,     0,     0,     0,     0,   397,
-   570,   571,   572,   573,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,   576,   577,
-   578,     0,   579,     0,     0,  1074,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,   583,   584,
-   585,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-   587,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,   588,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,     0,     0,   591,
-   592,     0,     0,     0,   593,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,   398,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,   597,   285,   286,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,   599,     0,     0,
-   601,   602,     0,   603,     0,     0,     0,     0,     0,   604,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   565,   566,   567,   568,     0,     0,   569,     0,
-     0,     0,     0,     0,     0,   397,   570,   571,   572,   573,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,   576,   577,   578,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,   583,   584,   585,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,   587,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,    77,     0,   588,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,     0,     0,   591,   592,     0,     0,     0,
-   593,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,   597,   285,   286,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,   599,     0,     0,   601,   602,     0,   603,
-     0,     0,     0,     0,     0,   604,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   565,   566,
-   567,   568,     0,     0,   569,     0,     0,     0,     0,     0,
-     0,   397,   570,   571,   572,   573,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-   576,   577,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-   583,   584,   795,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,   587,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,    77,     0,   588,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,   591,   592,     0,     0,     0,   593,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,   398,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,   597,   285,   286,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,   599,
-     0,     0,   601,   602,     0,   603,     0,     0,     0,     0,
-     0,   604,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   565,   566,   567,   568,     0,     0,
-   569,     0,     0,     0,     0,     0,     0,   397,   570,   571,
-   572,   573,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,   576,   577,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,   583,   584,   795,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,   587,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,   588,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,   591,   592,     0,
-     0,     0,   593,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,   398,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,   597,   285,   286,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,   599,     0,     0,   601,   602,
-     0,   603,     0,     0,     0,     0,     0,   604,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   565,   566,   567,   568,     0,     0,   569,     0,     0,     0,
-     0,     0,     0,   397,   570,   571,   572,   573,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,   576,   577,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,   583,   584,   585,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,   587,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,   588,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,   591,   592,     0,     0,     0,   593,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,   597,
-   285,   286,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,   599,     0,     0,   601,   602,     0,   603,     0,     0,
-     0,     0,     0,   604,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,     0,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   565,  1080,   567,   568,
-     0,     0,   569,     0,     0,     0,     0,     0,     0,   397,
-  1081,  1082,  1083,  1084,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,  1085,  1086,
-   578,     0,   579,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,  1087,   584,
-  1088,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-  1089,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,  1090,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,     0,     0,  1091,
-   592,     0,     0,     0,  1092,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,   398,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,  1093,   285,   286,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,  1094,     0,     0,
-  1095,  1096,     0,  1097,     0,     0,     0,     0,     0,  1098,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,  1190,     0,     0,  1191,     0,     0,     0,     0,     0,
-     0,     0,   565,   566,   567,   568,     0,     0,   569,     0,
-     0,     0,     0,     0,     0,   397,   570,   571,   572,   573,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,   576,   577,   578,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,     0,   584,   795,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,   587,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,   588,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,     0,     0,   591,   592,     0,     0,     0,
-   593,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,     0,   285,   286,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,   599,     0,     0,   601,   602,     0,   603,
-     0,     0,     0,     0,     0,  1192,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,  1795,     0,     0,
-  1796,     0,     0,     0,     0,     0,     0,     0,   565,  1080,
-   567,   568,     0,     0,   569,     0,     0,     0,     0,     0,
-     0,   397,  1081,  1082,  1083,  1084,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-  1085,  1086,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-     0,   584,  1088,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,  1089,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,  1090,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,  1091,   592,     0,     0,     0,  1092,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,     0,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,   398,   261,   262,     0,   263,     0,     0,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,     0,   285,   286,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1096, -1265,  1097,     0,     0,     0, -1265,
-     0,  1797,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,  1223,     0,     0,  1224,     0,     0,     0,
-     0,     0,     0,     0,   565,   566,   567,   568,     0,     0,
-   569,     0,     0,     0,     0,     0,     0,   397,   570,   571,
-   572,   573,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,   576,   577,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,     0,   584,   795,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,   587,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,   588,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,   591,   592,     0,
-     0,     0,   593,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,     0,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,   398,
-   261,   262,     0,   263,     0,     0,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,     0,   285,   286,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   602,
-     0,   603,     0,     0,     0,     0,     0,  1225,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1158,   567,   568,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   397,  1159,  1160,  1161,  1162,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,     0,     0,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,     0,     0,     0,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,  1163,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,  1164,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,  1165,   592,     0,     0,     0,  1166,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,  1167,
-   285,   286,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,  1168,     0,     0,  1169,  1170,     0,  1171,     0,     0,
-     0,     0,     0,  1172,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,     0,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1158,   567,   568,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   397,
-  1159,  1160,  1161,  1162,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,     0,     0,
-   578,     0,   579,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,     0,     0,
-     0,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-  1163,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,  1164,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,     0,     0,  1165,
-   592,     0,     0,     0,  1166,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,   398,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,     0,   285,   286,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,  1168,     0,     0,
-  1169,  1170,     0,  1171,     0,     0,     0,     0,     0,  1172,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1158,   567,   568,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   397,  1159,  1160,  1161,  1162,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,     0,     0,   578,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,     0,     0,     0,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,  1163,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,  1164,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,     0,     0,  1165,   592,     0,     0,     0,
-  1166,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,     0,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,     0,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,     0,   285,   286,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  1170,     0,  1171,
-     0,     0,     0,     0,     0,  1172,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  2155,
-   567,   568,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  2156,  2157,  2158,  2159,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-     0,     0,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-     0,     0,  2160,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,     0,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,     0,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,     0,   592,     0,     0,     0,  2161,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,     0,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,  2162,   285,     0,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,  2163,
-     0,     0,     0,  2164,     0,  2165,     0,     0,     0,     0,
-     0,  2166,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  2155,   567,   568,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  2156,  2157,
-  2158,  2159,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,     0,     0,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,     0,     0,     0,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,     0,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,     0,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,     0,   592,     0,
-     0,     0,  2161,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,     0,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,  2162,   285,     0,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,  2163,     0,     0,     0,  2164,
-     0,  2165,     0,     0,     0,     0,     0,  2166,   532,   533,
-   534,   535,   536,   537,   538,   539,   540,   541,     0,   542,
-     0,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-   552,   553,     0,   554,   555,   556,   557,   558,   559,     0,
-   560,   561,   562,   563,   564,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1056,   567,   568,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   397,     0,     0,     0,     0,     0,   205,
-   574,     0,     0,     0,     0,     0,   575,     0,     0,     0,
-     0,     0,     0,     0,   578,     0,   579,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,   580,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,   581,     0,   582,
-   214,     0,     0,     0,     0,   586,   215,     0,   216,   217,
-     0,     0,     0,     0,  1057,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,  1058,     0,     0,     0,     0,   589,   590,   226,   227,
-     0,     0,     0,  1059,   592,     0,     0,     0,     0,     0,
-     0,   594,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   595,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,   596,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,  1060,
-   285,     0,     0,    25,   598,    26,     0,     0,     0,     0,
-     0,  1061,     0,     0,     0,  1062,     0,     0,     0,     0,
-     0,     0,     0,  1063,   532,   533,   534,   535,   536,   537,
-   538,   539,   540,   541,     0,   542,     0,   543,   544,   545,
-   546,   547,   548,   549,   550,   551,   552,   553,     0,   554,
-   555,   556,   557,   558,   559,     0,   560,   561,   562,   563,
-   564,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,  2155,   567,   568,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  2156,  2157,  2158,  2159,     0,   205,   574,     0,     0,     0,
-     0,     0,   575,     0,     0,     0,     0,     0,     0,     0,
-   578,     0,   579,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,   580,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,   581,     0,   582,   214,     0,     0,     0,
-     0,   586,   215,     0,   216,   217,     0,     0,     0,     0,
-     0,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,     0,     0,     0,
-     0,     0,   589,   590,   226,   227,     0,     0,     0,     0,
-   592,     0,     0,     0,  2161,     0,     0,   594,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   595,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-   596,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,     0,   285,     0,     0,    25,
-   598,    26,     0,     0,     0,     0,     0,  2163,     0,     0,
-     0,  2164,     0,  2165,     0,     0,     0,     0,     0,  2166,
-   532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     0,   542,     0,   543,   544,   545,   546,   547,   548,   549,
-   550,   551,   552,   553,     0,   554,   555,   556,   557,   558,
-   559,     0,   560,   561,   562,   563,   564,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1056,   567,   568,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   397,     0,     0,     0,     0,
-     0,   205,   574,     0,     0,     0,     0,     0,   575,     0,
-     0,     0,     0,     0,     0,     0,   578,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,   580,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,   581,
-     0,   582,   214,     0,     0,     0,     0,   586,   215,     0,
-   216,   217,     0,     0,     0,     0,  1057,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,  1058,     0,     0,     0,     0,   589,   590,
-   226,   227,     0,     0,     0,  1059,   592,     0,     0,     0,
-     0,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   595,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,   398,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,   596,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,     0,   285,     0,     0,    25,   598,    26,     0,     0,
-     0,     0,     0,  1061,     0,     0,     0,  1062,     0,     0,
-     0,     0,     0,     0,     0,  1063,   532,   533,   534,   535,
-   536,   537,   538,   539,   540,   541,     0,   542,     0,   543,
-   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
-     0,   554,   555,   556,   557,   558,   559,     0,   560,   561,
-   562,   563,   564,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  1920,
-   567,   568,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   205,   574,     0,
-     0,     0,     0,     0,   575,     0,     0,     0,     0,     0,
-     0,     0,   578,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,   580,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,   581,     0,   582,   214,     0,
-  1921,     0,  1922,   586,   215,     0,   216,   217,     0,     0,
-     0,     0,     0,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,     0,
-     0,     0,     0,     0,   589,   590,   226,   227,     0,     0,
-     0,     0,   592,     0,     0,     0,     0,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   595,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,     0,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,   596,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,  1923,   285,     0,
-     0,    25,   598,    26,     0,     0,     0,     0,     0,  1924,
-     0,     0,     0,  1925,     0,  1926,     0,     0,     0,     0,
-     0,  1927,   532,   533,   534,   535,   536,   537,   538,   539,
-   540,   541,     0,   542,     0,   543,   544,   545,   546,   547,
-   548,   549,   550,   551,   552,   553,     0,   554,   555,   556,
-   557,   558,   559,     0,   560,   561,   562,   563,   564,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  1920,   567,   568,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   205,   574,     0,     0,     0,     0,     0,
-   575,     0,     0,     0,     0,     0,     0,     0,   578,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,   580,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,   581,     0,   582,   214,     0,     0,     0,  1922,   586,
-   215,     0,   216,   217,     0,     0,     0,     0,     0,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,     0,     0,     0,     0,     0,
-   589,   590,   226,   227,     0,     0,     0,     0,   592,     0,
-     0,     0,     0,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   595,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,     0,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,   596,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,     0,   285,     0,     0,    25,   598,    26,
-     0,     0,     0,     0,     0,  1924,     0,     0,     0,  1925,
-     0,  1926,     0,     0,     0,     0,   172,  1927,   173,   174,
-   175,   176,     0,   177,   178,   179,     0,   180,     0,   181,
-   182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     0,   192,   193,   194,   195,   196,   197,     0,   198,   199,
-   200,   201,   202,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   397,     0,     0,     0,     0,     0,   205,     0,     0,
-     0,     0,     0,     0,   206,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,     0,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,     0,     0,     0,   214,     0,
-     0,     0,     0,     0,   215,     0,   216,   217,     0,     0,
-     0,     0,     0,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,     0,
-     0,     0,     0,     0,   224,   225,   226,   227,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   233,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,   398,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,     0,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,     0,   172,   285,   173,
-   174,   175,   176,     0,   177,   178,   179,     0,   180,     0,
-   181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-   191,  1559,   192,   193,   194,   195,   196,   197,     0,   198,
-   199,   200,   201,   202,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   203,   204,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   205,     0,
-     0,     0,     0,     0,     0,   206,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   207,     0,     0,   208,     0,     0,
-     0,     0,     0,     0,     0,   209,   210,     0,     0,     0,
-     0,     0,   211,   212,   213,     0,     0,     0,     0,   214,
-     0,     0,     0,     0,     0,   215,     0,   216,   217,     0,
-     0,     0,     0,     0,     0,     0,   218,   219,     0,     0,
-   220,     0,   221,     0,     0,     0,   222,   223,    77,     0,
-     0,     0,     0,     0,     0,   224,   225,   226,   227,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   228,   229,   230,
-   231,   232,   233,     0,   234,   235,   236,     0,   237,   238,
-     0,   239,     0,     0,   240,   241,   242,   243,   244,     0,
-   245,   246,   247,     0,     0,   248,   249,   250,   251,   252,
-   253,   254,   255,   256,     0,     0,     0,     0,   257,     0,
-   258,   259,   260,     0,     0,   261,   262,     0,   263,     0,
-   264,     0,   265,   266,   267,   268,   269,     0,   270,   271,
-   272,   273,   274,     0,   275,     0,   276,   277,   278,   279,
-   280,     0,     0,   281,     0,   282,   283,     0,   172,   285,
-   173,   174,   175,   176,     0,   177,   178,   179,     0,   180,
-     0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-   190,   191,    95,   192,   193,   194,   195,   196,   197,     0,
-   198,   199,   200,   201,   202,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   205,
-     0,     0,     0,     0,     0,     0,   206,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,     0,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,     0,     0,     0,
-   214,     0,     0,     0,     0,     0,   215,     0,   216,   217,
-     0,     0,     0,     0,     0,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,     0,     0,     0,     0,     0,   224,   225,   226,   227,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   233,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,     0,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,  1663,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,   284,   510,
-   285,     0,     0,    25,     0,    26,     0,   483,   484,   485,
-   486,  1664,   488,   489,   490,   172,     0,   173,   174,   175,
-   176,     0,   177,   178,   179,     0,   180,     0,   181,   182,
-   183,   184,   185,   186,   187,   188,   189,   190,   191,     0,
-   192,   193,   194,   195,   196,   197,     0,   198,   199,   200,
-   201,   202,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   203,   204,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   205,     0,     0,  1005,
-     0,     0,     0,   206,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   207,     0,     0,   208,     0,     0,     0,     0,
-     0,     0,   480,   209,   210,     0,     0,     0,     0,     0,
-   211,   212,   213,     0,     0,     0,     0,   214,     0,     0,
-     0,     0,     0,   215,     0,   216,   217,     0,     0,     0,
-     0,     0,     0,     0,   218,   219,   481,     0,   220,     0,
-   221,     0,     0,     0,   222,   223,     0,     0,     0,     0,
-     0,     0,     0,   224,   225,   226,   227,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   228,   229,   230,   231,   232,
-   233,     0,   234,   235,   236,     0,   237,   238,     0,   239,
-     0,     0,   240,   241,   242,   243,   244,     0,   245,   246,
-   247,     0,     0,   248,   249,   250,   251,   252,   253,   254,
-   255,   256,     0,     0,     0,     0,   257,     0,   258,   259,
-   260,     0,     0,   261,   262,     0,   263,     0,   264,     0,
-   265,   266,   267,   268,   269,     0,   270,   271,   272,   273,
-   274,     0,   275,     0,   276,   277,   278,   279,   280,     0,
-     0,   281,     0,   282,   283,     0,   482,   285,     0,     0,
-     0,     0,     0,     0,   483,   484,   485,   486,   487,   488,
-   489,   490,   172,     0,   173,   174,   175,   176,     0,   177,
-   178,   179,     0,   180,     0,   181,   182,   183,   184,   185,
-   186,   187,   188,   189,   190,   191,     0,   192,   193,   194,
-   195,   196,   197,     0,   198,   199,   200,   201,   202,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   205,     0,     0,     0,     0,     0,     0,
-   206,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,     0,     0,     0,     0,   480,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,     0,     0,     0,   214,     0,     0,     0,     0,     0,
-   215,     0,   216,   217,     0,     0,     0,     0,     0,     0,
-     0,   218,   219,   481,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,     0,     0,     0,     0,     0,
-   224,   225,   226,   227,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   233,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,     0,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,     0,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,     0,   482,   285,     0,     0,     0,     0,     0,
-     0,   483,   484,   485,   486,   487,   488,   489,   490,   172,
-     0,   173,   174,   175,   176,     0,   177,   178,   179,     0,
-   180,     0,   181,   182,   183,   184,   185,   186,   187,   188,
-   189,   190,   191,     0,   192,   193,   194,   195,   196,   197,
-     0,   198,   199,   200,   201,   202,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   203,   204,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   397,     0,     0,     0,     0,     0,
-   205,     0,     0,     0,     0,     0,     0,   206,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   207,     0,     0,   208,
-     0,     0,     0,     0,     0,     0,     0,   209,   210,     0,
-     0,     0,     0,     0,   211,   212,   213,     0,     0,     0,
-     0,   214,     0,     0,     0,     0,     0,   215,     0,   216,
-   217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
-     0,     0,   220,     0,   221,     0,     0,     0,   222,   223,
-     0,     0,     0,     0,     0,     0,     0,   224,   225,   226,
-   227,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   228,
-   229,   230,   231,   232,   233,     0,   234,   235,   236,     0,
-   237,   238,     0,   239,     0,     0,   240,   241,   242,   243,
-   244,     0,   245,   246,   247,     0,     0,   248,   249,   250,
-   251,   252,   253,   254,   255,   256,     0,     0,     0,     0,
-   257,     0,   258,   259,   260,     0,   398,   261,   262,     0,
-   263,     0,   264,     0,   265,   266,   267,   268,   269,     0,
-   270,   271,   272,   273,   274,     0,   275,     0,   276,   277,
-   278,   279,   280,     0,     0,   281,     0,   282,   283,     0,
-     0,   285,     0,     0,     0,   598,     0,   172,     0,   173,
-   174,   175,   176,   902,   177,   178,   179,     0,   180,     0,
-   181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-   191,     0,   192,   193,   194,   195,   196,   197,     0,   198,
-   199,   200,   201,   202,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   203,   204,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   397,     0,     0,     0,     0,     0,   205,     0,
-     0,     0,     0,     0,     0,   206,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   207,     0,     0,   208,     0,     0,
-     0,     0,     0,     0,     0,   209,   210,     0,     0,     0,
-     0,     0,   211,   212,   213,     0,     0,     0,     0,   214,
-     0,     0,     0,     0,     0,   215,     0,   216,   217,     0,
-     0,     0,     0,     0,     0,     0,   218,   219,     0,     0,
-   220,     0,   221,     0,     0,     0,   222,   223,     0,     0,
-     0,     0,     0,     0,     0,   224,   225,   226,   227,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   228,   229,   230,
-   231,   232,   233,     0,   234,   235,   236,     0,   237,   238,
-     0,   239,     0,     0,   240,   241,   242,   243,   244,     0,
-   245,   246,   247,     0,     0,   248,   249,   250,   251,   252,
-   253,   254,   255,   256,     0,     0,     0,     0,   257,     0,
-   258,   259,   260,     0,   398,   261,   262,     0,   263,     0,
-   264,     0,   265,   266,   267,   268,   269,     0,   270,   271,
-   272,   273,   274,     0,   275,     0,   276,   277,   278,   279,
-   280,     0,     0,   281,     0,   282,   283,     0,     0,   285,
-     0,   172,     0,   173,   174,   175,   176,     0,   177,   178,
-   179,   412,   180,     0,   181,   182,   183,   184,   185,   186,
-   187,   188,   189,   190,   191,     0,   192,   193,   194,   195,
-   196,   197,     0,   198,   199,   200,   201,   202,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   203,
-   204,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   205,     0,     0,     0,     0,     0,     0,   206,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   207,     0,
-     0,   208,     0,     0,     0,     0,     0,     0,     0,   209,
-   210,     0,     0,     0,     0,     0,   211,   212,   213,     0,
-     0,     0,     0,   214,     0,     0,     0,     0,     0,   215,
-     0,   216,   217,     0,     0,     0,     0,     0,     0,     0,
-   218,   219,     0,     0,   220,     0,   221,     0,     0,     0,
-   222,   223,     0,     0,     0,     0,     0,     0,     0,   224,
-   225,   226,   227,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   228,   229,   230,   231,   232,   233,     0,   234,   235,
-   236,     0,   237,   238,     0,   239,     0,     0,   240,   241,
-   242,   243,   244,     0,   245,   246,   247,     0,     0,   248,
-   249,   250,   251,   252,   253,   254,   255,   256,     0,     0,
-     0,     0,   257,     0,   258,   259,   260,     0,     0,   261,
-   262,     0,   263,     0,   264,     0,   265,   266,   267,   268,
-   269,     0,   270,   271,   272,   273,   274,     0,   275,     0,
-   276,   277,   278,   279,   280,     0,     0,   281,     0,   282,
-   283,     0,     0,   285,     0,   172,     0,   173,   174,   175,
-   176,     0,   177,   178,   179,   748,   180,     0,   181,   182,
-   183,   184,   185,   186,   187,   188,   189,   190,   191,     0,
-   192,   193,   194,   195,   196,   197,     0,   198,   199,   200,
-   201,   202,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   203,   204,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   205,     0,     0,     0,
-     0,     0,     0,   206,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   207,     0,     0,   208,     0,     0,     0,     0,
-     0,     0,     0,   209,   210,     0,     0,     0,     0,     0,
-   211,   212,   213,     0,     0,     0,     0,   214,     0,     0,
-     0,     0,     0,   215,     0,   216,   217,     0,     0,     0,
-     0,     0,     0,     0,   218,   219,     0,     0,   220,     0,
-   221,     0,     0,     0,   222,   223,     0,     0,     0,     0,
-     0,     0,     0,   224,   225,   226,   227,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   228,   229,   230,   231,   232,
-   233,     0,   234,   235,   236,     0,   237,   238,     0,   239,
-     0,     0,   240,   241,   242,   243,   244,     0,   245,   246,
-   247,     0,     0,   248,   249,   250,   251,   252,   253,   254,
-   255,   256,     0,     0,     0,     0,   257,     0,   258,   259,
-   260,     0,     0,   261,   262,     0,   263,     0,   264,     0,
-   265,   266,   267,   268,   269,     0,   270,   271,   272,   273,
-   274,     0,   275,     0,   276,   277,   278,   279,   280,     0,
-     0,   281,     0,   282,   283,     0,     0,   285,     0,   172,
-     0,   173,   174,   175,   176,     0,   177,   178,   179,  1234,
-   180,     0,   181,   182,   183,   184,   185,   186,   187,   188,
-   189,   190,   191,     0,   192,   193,   194,   195,   196,   197,
-     0,   198,   199,   200,   201,   202,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   203,   204,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   205,     0,     0,     0,     0,     0,     0,   206,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   207,     0,     0,   208,
-     0,     0,     0,     0,     0,     0,     0,   209,   210,     0,
-     0,     0,     0,     0,   211,   212,   213,     0,     0,     0,
-     0,   214,     0,     0,     0,     0,     0,   215,     0,   216,
-   217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
-     0,     0,   220,     0,   221,     0,     0,     0,   222,   223,
-     0,     0,     0,     0,     0,     0,     0,   224,   225,   226,
-   227,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   228,
-   229,   230,   231,   232,   233,     0,   234,   235,   236,     0,
-   237,   238,     0,   239,     0,     0,   240,   241,   242,   243,
-   244,     0,   245,   246,   247,     0,     0,   248,   249,   250,
-   251,   252,   253,   254,   255,   256,     0,     0,     0,     0,
-   257,     0,   258,   259,   260,     0,     0,   261,   262,     0,
-   263,     0,   264,     0,   265,   266,   267,   268,   269,     0,
-   270,   271,   272,   273,   274,     0,   275,     0,   276,   277,
-   278,   279,   280,     0,     0,   281,     0,   282,   283,     0,
-     0,   285,     0,   172,     0,   173,   174,   175,   176,     0,
-   177,   178,   179,  1573,   180,     0,   181,   182,   183,   184,
-   185,   186,   187,   188,   189,   190,   191,     0,   192,   193,
-   194,   195,   196,   197,     0,   198,   199,   200,   201,   202,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   203,   204,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
-     0,   206,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   207,     0,     0,   208,     0,     0,     0,     0,     0,     0,
-     0,   209,   210,     0,     0,     0,     0,     0,   211,   212,
-   213,     0,     0,     0,     0,   214,     0,     0,     0,     0,
-     0,   215,     0,   216,   217,     0,     0,     0,     0,     0,
-     0,     0,   218,   219,     0,     0,   220,     0,   221,     0,
-     0,     0,   222,   223,     0,     0,     0,     0,     0,     0,
-     0,   224,   225,   226,   227,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   228,   229,   230,   231,   232,   233,     0,
-   234,   235,   236,     0,   237,   238,     0,   239,     0,     0,
-   240,   241,   242,   243,   244,     0,   245,   246,   247,     0,
-     0,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     0,     0,     0,     0,   257,     0,   258,   259,   260,     0,
-     0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
-   267,   268,   269,     0,   270,   271,   272,   273,   274,     0,
-   275,     0,   276,   277,   278,   279,   280,     0,     0,   281,
-     0,   282,   283,     0,     0,   285,     0,   172,     0,   173,
-   174,   175,   176,     0,   177,   178,   179,  1895,   180,     0,
-   181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-   191,     0,   192,   193,   194,   195,   196,   197,     0,   198,
-   199,   200,   201,   202,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   203,   204,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   397,     0,     0,     0,     0,     0,   205,     0,
-     0,     0,     0,     0,     0,   206,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   207,     0,     0,   208,     0,     0,
-     0,     0,     0,     0,     0,   209,   210,     0,     0,     0,
-     0,     0,   211,   212,   213,     0,     0,     0,     0,   214,
-     0,     0,     0,     0,     0,   215,     0,   216,   217,     0,
-     0,     0,     0,     0,     0,     0,   218,   219,     0,     0,
-   220,     0,   221,     0,     0,     0,   222,   223,     0,     0,
-     0,     0,     0,     0,     0,   224,   225,   226,   227,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   228,   229,   230,
-   231,   232,   233,     0,   234,   235,   236,     0,   237,   238,
-     0,   239,     0,     0,   240,   241,   242,   243,   244,     0,
-   245,   246,   247,     0,     0,   248,   249,   250,   251,   252,
-   253,   254,   255,   256,     0,     0,     0,     0,   257,     0,
-   258,   259,   260,     0,   398,   261,   262,     0,   263,     0,
-   264,     0,   265,   266,   267,   268,   269,     0,   270,   271,
-   272,   273,   274,     0,   275,     0,   276,   277,   278,   279,
-   280,     0,     0,   281,     0,   282,   283,     0,     0,   285,
-     0,     0,   172,   598,   173,   174,   175,   176,     0,   177,
-   178,   179,     0,   180,     0,   181,   182,   183,   184,   185,
-   186,   187,   188,   189,   190,   191,     0,   192,   193,   194,
-   195,   196,   197,     0,   198,   199,   200,   201,   202,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,   304,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   305,     0,     0,
-     0,     0,     0,   205,     0,     0,   306,     0,     0,     0,
-   206,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,     0,     0,     0,   214,     0,     0,     0,     0,     0,
-   215,     0,   216,   217,     0,     0,     0,     0,     0,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,     0,     0,     0,     0,     0,
-   224,   225,   226,   227,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   233,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,     0,
-   261,   262,     0,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,     0,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,   284,     0,   285,   286,   172,     0,   173,   174,
-   175,   176,     0,   177,   178,   179,     0,   180,     0,   181,
-   182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     0,   192,   193,   194,   195,   196,   197,     0,   198,   199,
-   200,   201,   202,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   205,     0,     0,
-   446,     0,     0,     0,   206,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,     0,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,     0,     0,     0,   214,     0,
-     0,     0,     0,     0,   215,     0,   216,   217,     0,     0,
-     0,     0,     0,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,     0,
-     0,     0,     0,     0,   224,   225,   226,   227,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   233,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,     0,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,     0,   275,     0,   276,   277,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,   284,     0,   285,   286,
-   172,     0,   173,   174,   175,   176,     0,   177,   178,   179,
-     0,   180,     0,   181,   182,   183,   184,   185,   186,   187,
-   188,   189,   190,   191,     0,   192,   193,   194,   195,   196,
-   197,     0,   198,   199,   200,   201,   202,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   205,     0,     0,   306,     0,     0,     0,   206,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,     0,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,     0,
-     0,     0,   214,     0,     0,     0,     0,     0,   215,     0,
-   216,   217,     0,     0,     0,     0,     0,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,     0,     0,     0,     0,     0,   224,   225,
-   226,   227,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   233,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,     0,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-   284,     0,   285,   286,   172,     0,   173,   174,   175,   176,
-     0,   177,   178,   179,     0,   180,     0,   181,   182,   183,
-   184,   185,   186,   187,   188,   189,   190,   191,     0,   192,
-   193,   194,   195,   196,   197,     0,   198,   199,   200,   201,
-   202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   205,     0,     0,     0,     0,
-     0,     0,   206,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,     0,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,     0,     0,     0,   214,     0,     0,     0,
-     0,     0,   215,     0,   216,   217,     0,     0,     0,     0,
-     0,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,     0,     0,     0,
-     0,     0,   224,   225,   226,   227,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   233,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-     0,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,   284,     0,   285,   286,   172,     0,
-   173,   174,   175,   176,     0,   177,   178,   179,     0,   180,
-     0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-   190,   191,     0,   192,   193,   194,   195,   196,   197,     0,
-   198,   199,   200,   201,   202,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   205,
-     0,     0,     0,     0,     0,     0,   206,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,     0,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,     0,     0,     0,
-   214,     0,     0,     0,     0,     0,   215,     0,   216,   217,
-     0,     0,     0,     0,     0,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,     0,     0,     0,     0,     0,   224,   225,   226,   227,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   233,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,     0,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,     0,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,     0,     0,
-   285,   286,   172,     0,   173,   174,   175,   176,     0,   177,
-   178,   179,     0,   180,     0,   181,   182,   183,   184,   185,
-   186,   187,   188,   189,   190,   191,     0,   192,   193,   194,
-   195,   196,   197,     0,   198,   199,   200,   201,   202,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1117,     0,     0,     0,     0,     0,
-  1118,     0,     0,     0,  1119,     0,     0,  1120,     0,     0,
-     0,     0,     0,   205,     0,     0,     0,     0,     0,     0,
-   206,     0,  1121,  1122,     0,     0,     0,     0,  1123,     0,
-     0,     0,  1124,     0,     0,     0,     0,  1125,     0,   207,
-     0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,     0,     0,     0,   214,     0,     0,  1126,     0,     0,
-   215,     0,   216,   217,     0,  1127,     0,     0,  1128,  1129,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,     0,  1130,     0,     0,  1131,
-   224,   225,   226,   227,     0,     0,  1132,     0,  1133,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1134,     0,
-     0,     0,   228,   229,   230,   231,   232,   233,  1135,   234,
-   235,   236,  1136,   237,   238,  1137,   239,  1138,  1139,   240,
-   241,   242,   243,   244,  1140,   245,   246,   247,  1141,  1142,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-  1143,     0,  1144,   257,  1145,   258,   259,   260,  1146,  1147,
-   261,   262,  1148,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,  1149,   270,   271,   272,   273,   274,  1150,   275,
-  1151,   276,   277,   278,   279,   280,     0,  1152,   281,  1153,
-   282,   283,     0,   172,   285,   173,   174,   175,   176,     0,
-   177,   178,   179,     0,   180,     0,   181,   182,   183,   184,
-   185,   186,   187,   188,   189,   190,   191,     0,   192,   193,
-   194,   195,   196,   197,     0,   198,   199,   200,   201,   202,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   203,   204,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   567,   568,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   205,   983,     0,     0,     0,     0,
-     0,   984,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   985,     0,     0,     0,     0,     0,     0,     0,     0,
-   207,     0,     0,   208,     0,     0,     0,     0,     0,     0,
-     0,   209,   210,     0,     0,     0,     0,     0,   211,   212,
-   213,     0,   581,     0,   582,   214,     0,     0,     0,     0,
-   986,   215,     0,   216,   217,     0,     0,     0,     0,     0,
-     0,     0,   218,   219,     0,     0,   220,     0,   221,     0,
-     0,     0,   222,   223,     0,     0,     0,     0,     0,     0,
-     0,   224,   225,   226,   227,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   594,     0,     0,     0,
-     0,     0,     0,   228,   229,   230,   231,   232,   233,     0,
-   234,   235,   236,     0,   237,   238,     0,   239,     0,     0,
-   240,   241,   242,   243,   244,     0,   245,   246,   247,     0,
-     0,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     0,     0,     0,     0,   257,     0,   258,   259,   260,     0,
-     0,   261,   262,     0,   263,     0,   264,     0,   265,   266,
-   267,   268,   269,     0,   270,   271,   272,   273,   274,     0,
-   275,     0,   276,   277,   278,   279,   280,     0,     0,   281,
-     0,   282,   283,     0,   172,   285,   173,   174,   175,   176,
-     0,   177,   178,   179,     0,   180,     0,   181,   182,   183,
-   184,   185,   186,   187,   188,   189,   190,   191,     0,   192,
-   193,   194,   195,   196,   197,     0,   198,   199,   200,   201,
-   202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  1304,     0,     0,     0,     0,     0,  1339,     0,     0,     0,
-     0,     0,     0,     0,     0,   205,     0,     0,     0,     0,
-     0,     0,   206,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1306,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,     0,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,     0,     0,     0,   214,     0,     0,     0,
-     0,     0,   215,     0,   216,   217,     0,     0,     0,     0,
-     0,     0,  1307,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,     0,     0,     0,
-     0,     0,   224,   225,   226,   227,     0,     0,     0,     0,
-     0,     0,  1308,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   233,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-     0,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,     0,     0,   285,   172,   391,   173,
-   174,   175,   176,   392,   177,   178,   179,     0,   180,     0,
-   181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-   191,     0,   192,   193,   194,   195,   196,   197,     0,   198,
-   199,   200,   201,   202,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   203,   204,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   205,     0,
-     0,     0,     0,     0,     0,   206,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   207,     0,     0,   208,     0,     0,
-     0,     0,     0,     0,     0,   209,   210,     0,     0,     0,
-     0,     0,   211,   212,   213,   393,     0,     0,     0,   214,
-     0,     0,     0,     0,     0,   215,     0,   216,   217,     0,
-     0,     0,     0,     0,     0,     0,   218,   219,     0,     0,
-   220,     0,   221,     0,     0,     0,   222,   223,     0,     0,
-     0,     0,     0,     0,     0,   394,   225,   226,   227,     0,
-     0,   395,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   228,   229,   230,
-   231,   232,   233,     0,   234,   235,   236,     0,   237,   238,
-     0,   239,     0,     0,   240,   241,   242,   243,   244,     0,
-   245,   246,   247,     0,     0,   248,   249,   250,   251,   252,
-   253,   254,   255,   256,     0,     0,     0,     0,   257,     0,
-   258,   259,   260,     0,     0,   261,   262,     0,   263,     0,
-   264,     0,   265,   266,   267,   268,   269,     0,   270,   271,
-   272,   273,   274,     0,   275,     0,   276,   277,   278,   279,
-   280,     0,     0,   281,     0,   282,   283,     0,   172,   285,
-   173,   174,   175,   176,     0,   177,   178,   179,     0,   180,
-     0,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-   190,   191,     0,   192,   193,   194,   195,   196,   197,     0,
-   198,   199,   200,   201,   202,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   203,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   397,     0,     0,     0,     0,     0,   205,
-     0,     0,     0,     0,     0,     0,   206,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   207,     0,     0,   208,     0,
-     0,     0,     0,     0,     0,     0,   209,   210,     0,     0,
-     0,     0,     0,   211,   212,   213,     0,     0,     0,     0,
-   214,     0,     0,     0,     0,     0,   215,     0,   216,   217,
-     0,     0,     0,     0,     0,     0,     0,   218,   219,     0,
-     0,   220,     0,   221,     0,     0,     0,   222,   223,     0,
-     0,     0,     0,     0,     0,     0,   224,   225,   226,   227,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   228,   229,
-   230,   231,   232,   233,     0,   234,   235,   236,     0,   237,
-   238,     0,   239,     0,     0,   240,   241,   242,   243,   244,
-     0,   245,   246,   247,     0,     0,   248,   249,   250,   251,
-   252,   253,   254,   255,   256,     0,     0,     0,     0,   257,
-     0,   258,   259,   260,     0,   398,   261,   262,     0,   263,
-     0,   264,     0,   265,   266,   267,   268,   269,     0,   270,
-   271,   272,   273,   274,     0,   275,     0,   276,   277,   278,
-   279,   280,     0,     0,   281,     0,   282,   283,     0,   172,
-   285,   173,   174,   175,   176,     0,   177,   178,   179,     0,
-   180,     0,   181,   182,   183,   184,   185,   186,   187,   188,
-   189,   190,   191,     0,   192,   193,   194,   195,   196,   197,
-     0,   198,   199,   200,   201,   202,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   203,   204,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   205,     0,     0,     0,     0,     0,     0,   206,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1361,     0,   207,     0,     0,   208,
-     0,     0,     0,     0,     0,     0,     0,   209,   210,     0,
-     0,     0,     0,     0,   211,   212,   213,     0,     0,     0,
-     0,   214,     0,     0,     0,     0,     0,   215,     0,   216,
-   217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
-     0,  1362,   220,     0,   221,     0,     0,     0,   222,   223,
-     0,     0,     0,     0,     0,     0,     0,   224,   225,   226,
-   227,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   228,
-   229,   230,   231,   232,   233,     0,   234,   235,   236,     0,
-   237,   238,     0,   239,     0,     0,   240,   241,   242,   243,
-   244,     0,   245,   246,   247,     0,     0,   248,   249,   250,
-   251,   252,   253,   254,   255,   256,     0,     0,     0,     0,
-   257,     0,   258,   259,   260,     0,     0,   261,   262,     0,
-   263,     0,   264,     0,   265,   266,   267,   268,   269,     0,
-   270,   271,   272,   273,   274,     0,   275,     0,   276,   277,
-   278,   279,   280,     0,     0,   281,     0,   282,   283,     0,
-   172,   285,   173,   174,   175,   176,     0,   177,   178,   179,
-     0,   180,     0,   181,   182,   183,   184,   185,   186,   187,
-   188,   189,   190,   191,     0,   192,   193,   194,   195,   196,
-   197,     0,   198,   199,   200,   201,   202,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   203,   204,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   205,     0,     0,     0,     0,     0,     0,   206,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-   208,     0,     0,     0,     0,     0,     0,     0,   209,   210,
-     0,     0,     0,     0,     0,   211,   212,   213,     0,     0,
-     0,     0,   214,     0,     0,     0,     0,     0,   215,     0,
-   216,   217,     0,     0,     0,     0,     0,     0,     0,   218,
-   219,     0,     0,   220,     0,   221,     0,     0,     0,   222,
-   223,     0,     0,     0,     0,     0,     0,     0,   420,   225,
-   226,   227,     0,     0,   421,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   228,   229,   230,   231,   232,   233,     0,   234,   235,   236,
-     0,   237,   238,     0,   239,     0,     0,   240,   241,   242,
-   243,   244,     0,   245,   246,   247,     0,     0,   248,   249,
-   250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     0,   257,     0,   258,   259,   260,     0,     0,   261,   262,
-     0,   263,     0,   264,     0,   265,   266,   267,   268,   269,
-     0,   270,   271,   272,   273,   274,     0,   275,     0,   276,
-   277,   278,   279,   280,     0,     0,   281,     0,   282,   283,
-     0,   172,   285,   173,   174,   175,   176,     0,   177,   178,
-   179,     0,   180,     0,   181,   182,   183,   184,   185,   186,
-   187,   188,   189,   190,   191,     0,   192,   193,   194,   195,
-   196,   197,     0,   198,   199,   200,   201,   202,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   203,
-   204,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   205,     0,     0,     0,     0,     0,     0,   206,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   207,     0,
-     0,   208,     0,     0,     0,     0,     0,     0,     0,   209,
-   210,     0,     0,     0,     0,     0,   211,   212,   213,     0,
-     0,     0,     0,   214,     0,     0,     0,     0,     0,   215,
-     0,   216,   217,     0,     0,     0,     0,     0,     0,     0,
-   218,   219,     0,     0,   220,     0,   221,     0,     0,     0,
-   222,   223,     0,     0,     0,     0,     0,     0,     0,   423,
-   225,   226,   227,     0,     0,   424,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   228,   229,   230,   231,   232,   233,     0,   234,   235,
-   236,     0,   237,   238,     0,   239,     0,     0,   240,   241,
-   242,   243,   244,     0,   245,   246,   247,     0,     0,   248,
-   249,   250,   251,   252,   253,   254,   255,   256,     0,     0,
-     0,     0,   257,     0,   258,   259,   260,     0,     0,   261,
-   262,     0,   263,     0,   264,     0,   265,   266,   267,   268,
-   269,     0,   270,   271,   272,   273,   274,     0,   275,     0,
-   276,   277,   278,   279,   280,     0,     0,   281,     0,   282,
-   283,     0,   172,   285,   173,   174,   175,   176,     0,   177,
-   178,   179,     0,   180,     0,   181,   182,   183,   184,   185,
-   186,   187,   188,   189,   190,   191,     0,   192,   193,   194,
-   195,   196,   197,     0,   198,   199,   200,   201,   202,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   203,   204,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   205,     0,     0,     0,     0,     0,     0,
-   206,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
-   209,   210,     0,     0,     0,     0,     0,   211,   212,   213,
-     0,     0,     0,     0,   214,     0,     0,     0,     0,     0,
-   215,     0,   216,   217,     0,     0,     0,     0,     0,     0,
-     0,   218,   219,     0,     0,   220,     0,   221,     0,     0,
-     0,   222,   223,     0,     0,     0,     0,     0,     0,     0,
-   224,   225,   226,   227,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   228,   229,   230,   231,   232,   233,     0,   234,
-   235,   236,     0,   237,   238,     0,   239,     0,     0,   240,
-   241,   242,   243,   244,     0,   245,   246,   247,     0,     0,
-   248,   249,   250,   251,   252,   253,   254,   255,   256,     0,
-     0,     0,     0,   257,     0,   258,   259,   260,     0,     0,
-   261,   262,  1014,   263,     0,   264,     0,   265,   266,   267,
-   268,   269,     0,   270,   271,   272,   273,   274,     0,   275,
-     0,   276,   277,   278,   279,   280,     0,     0,   281,     0,
-   282,   283,     0,   172,   285,   173,   174,   175,   176,     0,
-   177,   178,   179,     0,   180,     0,   181,   182,   183,   184,
-   185,   186,   187,   188,   189,   190,   191,     0,   192,   193,
-   194,   195,   196,   197,     0,   198,   199,   200,   201,   202,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   203,   204,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   205,     0,     0,     0,     0,     0,
-     0,   206,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   207,     0,     0,   208,     0,     0,     0,     0,     0,     0,
-     0,   209,   210,     0,     0,     0,     0,     0,   211,   212,
-   213,     0,     0,     0,     0,   214,     0,     0,     0,     0,
-     0,   215,     0,   216,   217,     0,     0,     0,     0,     0,
-     0,     0,   218,   219,     0,     0,   220,     0,   221,     0,
-     0,     0,   222,   223,     0,     0,     0,     0,     0,     0,
-     0,   224,   225,   226,   227,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   228,   229,   230,   231,   232,   233,     0,
-   234,   235,   236,     0,   237,   238,     0,   239,     0,     0,
-   240,   241,   242,   243,   244,     0,   245,   246,   247,     0,
-     0,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     0,     0,     0,     0,   257,     0,   258,   259,   260,     0,
-     0,   261,   262,  1679,   263,     0,   264,     0,   265,   266,
-   267,   268,   269,     0,   270,   271,   272,   273,   274,     0,
-   275,     0,   276,   277,   278,   279,   280,     0,     0,   281,
-     0,   282,   283,     0,   172,   285,   173,   174,   175,   176,
-     0,   177,   178,   179,     0,   180,     0,   181,   182,   183,
-   184,   185,   186,   187,   188,   189,   190,   191,     0,   192,
-   193,   194,   195,   196,   197,     0,   198,   199,   200,   201,
-   202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   203,   204,     0,     0,     0,     0,     0,  1890,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   205,     0,     0,     0,     0,
-     0,     0,   206,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   207,     0,     0,   208,     0,     0,     0,     0,     0,
-     0,     0,   209,   210,     0,     0,     0,     0,     0,   211,
-   212,   213,     0,     0,     0,     0,   214,     0,     0,     0,
-     0,     0,   215,     0,   216,   217,     0,     0,     0,     0,
-     0,     0,     0,   218,   219,     0,     0,   220,     0,   221,
-     0,     0,     0,   222,   223,     0,     0,     0,     0,     0,
-     0,     0,   224,   225,   226,   227,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   228,   229,   230,   231,   232,   233,
-     0,   234,   235,   236,     0,   237,   238,     0,   239,     0,
-     0,   240,   241,   242,   243,   244,     0,   245,   246,   247,
-     0,     0,   248,   249,   250,   251,   252,   253,   254,   255,
-   256,     0,     0,     0,     0,   257,     0,   258,   259,   260,
-     0,     0,   261,   262,     0,   263,     0,   264,     0,   265,
-   266,   267,   268,   269,     0,   270,   271,   272,   273,   274,
-     0,   275,     0,   276,   277,   278,   279,   280,     0,     0,
-   281,     0,   282,   283,     0,   172,   285,   173,   174,   175,
-   176,     0,   177,   178,   179,     0,   180,     0,   181,   182,
-   183,   184,   185,   186,   187,   188,   189,   190,   191,     0,
-   192,   193,   194,   195,   196,   197,     0,   198,   199,   200,
-   201,   202,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   203,   204,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   205,     0,     0,     0,
-     0,     0,     0,   206,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   207,     0,     0,   208,     0,     0,     0,     0,
-     0,     0,     0,   209,   210,     0,     0,     0,     0,     0,
-   211,   212,   213,     0,     0,     0,     0,   214,     0,     0,
-     0,     0,     0,   215,     0,   216,   217,     0,     0,     0,
-     0,     0,     0,     0,   218,   219,     0,     0,   220,     0,
-   221,     0,     0,     0,   222,   223,     0,     0,     0,     0,
-     0,     0,     0,   224,   225,   226,   227,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   228,   229,   230,   231,   232,
-   233,     0,   234,   235,   236,     0,   237,   238,     0,   239,
-     0,     0,   240,   241,   242,   243,   244,     0,   245,   246,
-   247,     0,     0,   248,   249,   250,   251,   252,   253,   254,
-   255,   256,     0,     0,     0,     0,   257,     0,   258,   259,
-   260,     0,     0,   261,   262,     0,   263,     0,   264,     0,
-   265,   266,   267,   268,   269,     0,   270,   271,   272,   273,
-   274,     0,   275,     0,   276,   277,   278,   279,   280,     0,
-     0,   281,     0,   282,   283,     0,   172,   285,   173,   174,
-   175,   176,     0,   177,   178,   179,     0,   180,     0,   181,
-   182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     0,   192,   193,   194,   195,   196,   197,     0,   198,   199,
-   200,   201,   202,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   203,   204,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   205,     0,     0,
-     0,     0,     0,     0,   206,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,   208,     0,     0,     0,
-     0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
-     0,   211,   212,   213,     0,     0,     0,     0,   214,     0,
-     0,     0,     0,     0,   215,     0,   216,   217,     0,     0,
-     0,     0,     0,     0,     0,   218,   219,     0,     0,   220,
-     0,   221,     0,     0,     0,   222,   223,     0,     0,     0,
-     0,     0,     0,     0,   224,   225,   226,   227,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   228,   229,   230,   231,
-   232,   233,     0,   234,   235,   236,     0,   237,   238,     0,
-   239,     0,     0,   240,   241,   242,   243,   244,     0,   245,
-   246,   247,     0,     0,   248,   249,   250,   251,   252,   253,
-   254,   255,   256,     0,     0,     0,     0,   257,     0,   258,
-   259,   260,     0,     0,   261,   262,     0,   263,     0,   264,
-     0,   265,   266,   267,   268,   269,     0,   270,   271,   272,
-   273,   274,     0,   275,     0,   276,   351,   278,   279,   280,
-     0,     0,   281,     0,   282,   283,     0,   172,   285,   173,
-   719,   175,   176,     0,   177,   178,   179,     0,   180,     0,
-   181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-   191,     0,   192,   193,   194,   195,   196,   197,     0,   198,
-   199,   200,   201,   202,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   203,   204,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   205,     0,
-     0,     0,     0,     0,     0,   206,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   207,     0,     0,   208,     0,     0,
-     0,     0,     0,     0,     0,   209,   210,     0,     0,     0,
-     0,     0,   211,   212,   213,     0,     0,     0,     0,   214,
-     0,     0,     0,     0,     0,   215,     0,   216,   217,     0,
-     0,     0,     0,     0,     0,     0,   218,   219,     0,     0,
-   220,     0,   221,     0,     0,     0,   222,   223,     0,     0,
-     0,     0,     0,     0,     0,   224,   225,   226,   227,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   228,   229,   230,
-   231,   232,   233,     0,   234,   235,   236,     0,   237,   238,
-     0,   239,     0,     0,   240,   241,   242,   243,   244,     0,
-   245,   246,   247,     0,     0,   248,   249,   250,   251,   252,
-   253,   254,   255,   256,     0,     0,     0,     0,   257,     0,
-   258,   259,   260,     0,     0,   261,   262,     0,   263,     0,
-   264,     0,   265,   266,   267,   268,   269,     0,   270,   271,
-   272,   273,   274,     0,   275,     0,   276,   277,   278,   279,
-   280,     0,     0,   281,     0,   282,   283,     0,     0,   285,
-   806,   533,   807,   808,   809,   810,   538,   811,   812,   813,
-     0,   814,     0,   815,   816,   817,   818,   819,   820,   821,
-   822,   823,   824,   825,     0,   826,   827,   828,   829,   830,
-   831,     0,   832,   833,   834,   835,   836,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   567,   568,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   205,   574,     0,     0,     0,     0,     0,   837,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   579,     0,
-     0,     0,     0,     0,     0,     0,     0,   207,     0,     0,
-     0,     0,     0,   580,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   212,   213,     0,   581,
-     0,   582,     0,     0,     0,     0,     0,   586,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   223,     0,     0,     0,     0,     0,     0,     0,   838,   839,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   594,     0,     0,     0,     0,     0,     0,
-   228,     0,     0,     0,     0,   840,   806,   533,   807,   808,
-   809,   810,   538,   811,   812,   813,     0,   814,     0,   815,
-   816,   817,   818,   819,   820,   821,   822,   823,   824,   825,
-     0,   826,   827,   828,   829,   830,   831,     0,   832,   833,
-   834,   835,   836,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1659,     0,   596,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
-   567,   568,   285,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   205,   574,     0,
-     0,     0,     0,     0,   837,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   579,     0,     0,     0,     0,     0,
-     0,     0,     0,   207,     0,     0,     0,     0,     0,   580,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   212,   213,     0,   581,     0,   582,     0,     0,
-     0,     0,     0,   586,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   223,     0,     0,     0,
-     0,     0,     0,     0,   838,   839,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   594,
-     0,     0,     0,     0,     0,     0,   228,     0,     0,     0,
-     0,   840,   806,   533,   807,   808,   809,   810,   538,   811,
-   812,   813,     0,   814,     0,   815,   816,   817,   818,   819,
-   820,   821,   822,   823,   824,   825,     0,   826,   827,   828,
-   829,   830,   831,     0,   832,   833,   834,   835,   836,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   596,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   283,   567,   568,   285,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   205,   574,     0,     0,     0,     0,     0,
-   837,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   579,     0,     0,     0,     0,     0,     0,     0,     0,   207,
-     0,     0,     0,     0,     0,   580,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   212,   213,
-     0,   581,     0,   582,     0,     0,     0,     0,     0,   586,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   223,     0,     0,     0,     0,     0,     0,     0,
-   838,   839,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   594,     0,     0,     0,     0,
-     0,     0,   228,     0,     0,     0,     0,   840,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   283,     0,     0,   285
-};
-
-static const short yycheck[] = {     1,
-     1,     1,   529,    95,    60,   321,    58,   649,   349,   452,
-  1022,   366,   363,   965,    53,    67,   860,    56,   334,   170,
-  1321,   777,  1627,    46,    80,  1910,   862,    53,  1494,    54,
-  1567,   339,  1167,  1168,  1169,  1170,  1171,  1599,   733,   355,
-    46,   618,  1559,   956,   957,  1295,   802,    64,    46,    88,
-    20,  1186,   360,  2139,    46,   568,    20,   114,    18,   114,
-   449,   450,   112,    97,   455,    64,  2116,    97,    67,   582,
-    97,   185,   105,    96,   127,    97,  2162,  2163,  2164,  2165,
-  2166,    23,    60,    19,   318,  1298,   185,   102,    97,   257,
-    96,  1921,   125,  1923,  1924,  1925,  1926,  1927,    96,   174,
-   103,    98,   139,   137,    96,    61,     7,    79,  2421,    10,
-  1073,    83,  1075,  1076,    60,    16,    17,  1087,  1060,  1061,
-  1062,  1063,    34,  1093,  1094,  1095,  1096,  1097,   884,    41,
-   194,    32,    44,    60,    35,    47,   173,   194,   114,   307,
-    52,   113,    54,    55,   174,    53,    54,   194,    56,    57,
-    58,    59,    96,    64,    98,   116,    64,   190,  2471,    67,
-   175,    64,   410,    71,   283,   195,   177,    25,    74,   265,
-    78,    79,   527,   194,    82,   530,   137,   273,    86,    87,
-   124,    60,   193,    91,    92,    93,   305,    98,    98,   161,
-   114,    41,   769,   292,    44,   192,   199,    47,   312,   194,
-  1113,   728,    52,    97,    54,    55,    63,     5,    65,   185,
-   152,  2297,   168,   124,   124,    13,  2266,   178,   179,   191,
-  2306,  2307,  2308,  2309,  2310,  2311,  2312,  2313,  2314,  2315,
-   174,   465,    30,   308,   194,   297,   298,   299,    36,    37,
-   146,    60,   145,   307,   115,   102,   282,   495,   192,   283,
-   307,   301,   307,   644,   307,   149,   283,   296,   214,   162,
-   307,   283,   309,   174,   174,   127,   845,    60,   390,   175,
-   296,   288,   289,    60,   283,   231,   309,  2107,   308,    77,
-   793,   192,   192,   335,   336,  2115,   307,   158,   309,  2119,
-   342,  2121,   178,   179,  2124,  2125,  2126,  2127,  2128,  2129,
-  2130,  2131,  2132,   101,  2134,   357,   280,   359,   697,   308,
-  2360,   255,   307,   111,   309,   367,   286,  1452,  1074,   297,
-   298,   299,   286,  2153,   225,   286,   903,  1932,  1933,   194,
-   907,  1167,  1168,  1169,  1170,  1171,   308,   301,   298,  2425,
-   432,   784,   306,   109,   369,  1811,   282,   194,   120,   285,
-  1186,   297,   298,   299,   393,   266,   266,   284,  1608,    96,
-   216,  1496,  1879,  2413,   308,  2415,  2251,   139,   295,   296,
-   297,   298,   299,   375,  1509,  1510,  1511,  1512,  1513,  1514,
-  1515,   147,   309,   149,   440,   288,   409,   235,   296,    60,
-   114,   228,   190,   296,   174,   303,   109,   121,   196,   311,
-  1613,   173,  1615,   409,   456,   262,    31,   459,    33,   220,
-   462,   409,   320,   321,    60,   195,   418,   409,   297,   298,
-   299,   152,   283,   189,   449,   450,   334,   335,   336,   454,
-  1401,   339,   340,   270,   342,   343,   149,  1974,  2268,  1402,
-   251,   349,   307,   351,   309,   353,   354,   355,  1025,   357,
-   187,   359,   360,   361,   201,   507,   288,  1399,   366,   367,
-   307,   311,   309,   194,   296,   202,  1437,  1409,  1410,  1411,
-  1412,  1413,  1414,  1415,   513,  1438,   189,   385,   297,   298,
-   299,  1451,   604,   177,   282,  1455,    60,  1457,   185,  1066,
-  1460,  1461,  1462,  1463,  1464,  1465,  1466,  1467,  1468,   407,
-    98,  1471,   410,  1347,   297,   298,   299,   950,  1087,   417,
-   297,   298,   299,   311,  1093,  1094,  1095,  1096,  1097,   166,
-   194,   523,   147,    64,   105,  1102,   124,    60,   308,  1500,
-  1374,   302,   301,   441,   221,  1400,   283,   306,  1501,  2369,
-   166,   449,   450,    26,   125,   192,    42,    43,   456,    45,
-    46,   459,    48,    49,   462,    51,   284,    53,   305,   100,
-    56,    57,    58,    59,  1408,   252,   605,  2084,   187,   477,
-   662,  1436,   664,  1486,  2091,   156,  1489,  1490,  1491,  1492,
-  1493,   207,  2048,   202,    60,   282,   283,   495,   285,   286,
-    71,  1233,    98,    71,   192,   647,   635,  1174,   282,   507,
-   639,   285,   641,   642,    34,    79,  1450,  1249,   282,   190,
-   283,   285,    86,    87,  1749,   671,  1452,    91,   124,   527,
-   676,   677,   530,   531,   295,   296,   297,   298,   299,   285,
-   286,  1326,   305,    79,  1499,  1330,   123,   945,   284,   288,
-   121,   304,   305,   121,  1945,  1401,   292,   293,   294,   295,
-   296,   297,   298,   299,   970,   136,   695,   565,   136,   308,
-  1496,  1417,  1418,   309,  1508,   717,    60,   113,   174,   695,
-  1426,   763,   697,  1509,  1510,  1511,  1512,  1513,  1514,  1515,
-    98,  1437,    71,    43,   286,   172,   192,  2249,   596,    49,
-   692,    51,   211,    53,   746,   283,   215,  1610,  1611,   738,
-   752,  1914,  1654,  1916,   756,   757,   124,  1842,   109,    60,
-   284,  2316,   109,   109,  1470,   161,   283,   305,  2235,   194,
-  2237,   295,   296,   297,   298,   299,   240,   635,   305,   216,
-  1326,   308,   121,    60,  1330,   643,   283,   645,   305,   647,
-  1703,  1704,  1705,   257,  1500,   191,   147,   136,   149,   657,
-   147,   284,   149,   149,   128,   109,  2293,   283,   305,   881,
-    14,  1517,   295,   296,   297,   298,   299,   845,   301,   114,
-  1733,  1734,  1735,   306,   192,   302,   778,   779,   780,   305,
-   307,  1751,  2319,   785,    28,  1629,   282,   695,   189,   697,
-   941,   942,   189,   189,   304,   149,   177,   799,   308,    40,
-    41,    42,    43,    44,    45,    46,    47,    48,    49,   717,
-    51,    52,    53,    54,    55,    56,    57,    58,    59,   295,
-   296,   297,   298,   299,   282,   733,   305,   285,  1355,   308,
-   288,   739,   290,    98,   886,   189,   283,   255,   746,   747,
-  1367,   261,   301,     5,   752,   288,   320,   306,   756,   757,
-   288,    13,   310,   235,   856,   763,   858,  1883,   305,   124,
-  1886,   132,  1825,  1826,  1827,   308,   309,  2002,    30,   343,
-   308,   309,  1451,   163,    36,    37,  1455,   283,  1457,   353,
-   307,  1460,  1461,  1462,  1463,  1464,  1465,  1466,  1467,  1468,
-   284,  2104,  1471,  2106,   307,  1472,   309,    60,   283,   305,
-  1022,   295,   296,   297,   298,   299,   283,   301,   283,   174,
-   152,   385,   306,  1749,   283,    77,   390,   307,    60,   309,
-   305,   307,   947,   309,    66,   927,   928,   192,   305,    71,
-   305,   152,   210,   407,   283,   152,   305,   283,   940,   101,
-   940,    60,   204,   417,   295,   296,   297,   298,   299,   111,
-   228,   859,   860,    60,   956,   957,   305,   284,   121,   305,
-   283,   283,    60,  1719,  1976,   292,   293,   294,   295,   296,
-   297,   298,   299,    71,   129,   883,  1098,   885,   886,   121,
-   301,   175,   305,   305,   213,   306,   128,   265,   128,  1432,
-   255,   152,   270,   995,   136,   997,   998,   999,  1000,  1350,
-  1351,   204,    60,   477,   283,   147,  1842,    60,  1349,  1087,
-    68,   283,   307,   155,   309,  1093,  1094,  1095,  1096,  1097,
-   283,   128,   302,   121,   283,   129,   305,   301,   190,    60,
-   128,   217,   306,   305,   196,   943,   222,   945,   136,   947,
-    71,   282,   305,   308,   285,   204,   305,   288,   234,   290,
-   283,   292,   129,   288,   295,   296,   297,   298,   299,  2194,
-   246,   247,   970,   283,   305,   306,   307,   308,   309,    64,
-  1192,   306,   305,   308,   115,  1197,   283,    73,    60,  1201,
-   112,   122,   283,  1205,    60,   305,   272,  1209,   283,   288,
-   121,  1213,    68,   134,  1002,  1217,   238,   128,   305,  1221,
-   283,  1009,  1010,  1225,   305,   136,   283,   306,   283,   308,
-   305,  1113,  1020,   104,   256,   283,   157,   283,  1026,   283,
-   282,   284,   305,  1031,    68,   307,   283,   309,   305,   170,
-   305,   238,   295,   296,   297,   298,   299,   305,  1982,   305,
-   238,   305,   284,   288,   288,   289,   128,  1991,   305,   256,
-   292,   293,   294,   295,   296,   297,   298,   299,   256,   283,
-   283,   306,   283,   308,   301,   284,  2002,   309,   301,   643,
-    73,   645,  1751,   306,   293,   294,   295,   296,   297,   298,
-   299,   305,   305,   657,   305,   185,   284,    98,   295,   296,
-   297,   298,   299,   201,   292,   293,   294,   295,   296,   297,
-   298,   299,   302,   301,   288,  2049,   301,   238,   306,   284,
-   297,   306,  1264,   124,   274,   275,    65,  1256,   293,   294,
-  1272,    70,   306,   283,   308,   256,   284,    76,   301,  1285,
-    68,   284,    81,   306,   292,   293,   294,   295,   296,   297,
-   298,   299,   295,   296,   297,   298,   299,  1593,  1594,  1371,
-    94,   201,   282,   284,   301,   285,   238,  1379,   288,   306,
-   290,   308,  1314,   174,   295,   296,   297,   298,   299,   308,
-  2114,    87,  1180,   747,   256,   301,   120,   307,    68,   309,
-   306,   192,    60,  1322,  1286,  1286,  1286,  1339,    66,   132,
-   295,   296,   297,   298,   299,   139,   140,   676,   677,   115,
-  1302,  1303,  1302,  1303,   309,  1357,   122,  1359,   284,   308,
-   172,  1350,  1351,   295,   296,   297,   298,   299,   134,   295,
-   296,   297,   298,   299,  1232,    93,   307,   143,   309,   173,
-  1332,   295,   296,   297,   298,   299,   307,  2093,   309,   200,
-  1248,   157,  1250,   254,   255,   309,    60,    79,  1350,  1351,
-  1350,  1351,    66,    85,   170,   301,  1264,   152,  2194,   203,
-   306,   288,   308,   290,  1272,    97,   295,   296,   297,   298,
-   299,   301,   307,  1451,   190,   308,   306,  1455,    60,  1457,
-   309,  1383,  1460,  1461,  1462,  1463,  1464,  1465,  1466,  1467,
-  1468,    21,    22,  1471,   305,  1397,   288,   308,   307,    29,
-   309,  1309,   308,  1311,  1312,  1313,  1314,   881,   282,   283,
-   197,   285,  1320,   308,   288,   147,   290,   308,  1326,    94,
-   308,   301,  1330,   308,    21,    22,   306,  1429,  1430,   161,
-   282,  1339,    29,   285,   160,   167,   288,   308,   290,  1347,
-   308,  1349,  1350,  1351,  1352,   120,   128,    78,   307,  1357,
-   309,  1359,  1574,  1361,   307,   307,   309,   309,  1366,   191,
-   308,  2305,    34,  2040,   139,   140,  1374,  1375,  1376,    41,
-   292,   308,    44,   301,   301,    47,  2320,  2321,   306,   306,
-    52,   301,    54,    55,  1486,    79,   306,  1489,  1490,  1491,
-  1492,  1493,   301,    60,   308,  1497,  1498,   306,   173,    66,
-  1408,   308,   308,    97,    71,   121,   284,  2149,   183,   184,
-   307,    53,   309,   305,    56,  2359,    58,   295,   296,   297,
-   298,   299,    64,   308,    60,    67,   305,   301,   203,   301,
-    66,   147,   306,    60,   306,  1009,    78,    79,   301,   308,
-    82,    68,  1450,   306,    86,    87,    68,   304,  1022,    91,
-    92,    93,   301,   147,   121,   304,   238,   306,   308,   308,
-   995,   128,   997,   998,   999,  1000,  1688,   161,   304,   136,
-   284,   301,   301,   167,   256,   135,   306,   306,  2422,   201,
-   147,   295,   296,   297,   298,   299,   121,   135,   155,   301,
-   301,  1593,  1594,  1595,   306,   306,   301,   191,   301,   307,
-  1508,   306,   301,   306,  1643,   301,   135,   306,  1610,  1611,
-   306,   286,    96,   295,   296,   297,   298,   299,   307,  1527,
-   309,   304,   307,  1939,   309,    60,   295,   296,   297,   298,
-   299,    66,   310,   301,  1756,   193,    71,   306,   306,   301,
-  1762,   301,    60,   310,   306,  1767,   306,   310,  1556,   301,
-  1772,  1559,    60,    71,   306,  1777,  1564,   308,    66,  1567,
-  1782,   302,  1664,   298,  1664,  1787,   307,   301,   284,   301,
-  1792,   238,   306,  1751,   306,  1797,   292,   293,   294,   295,
-   296,   297,   298,   299,   302,   308,   121,   301,   264,   256,
-   301,   260,   306,   128,   301,   306,  1604,   301,   244,   306,
-   301,   136,   306,   121,   152,   306,   301,   565,   301,    87,
-   128,   306,   147,   306,   966,   967,   968,   284,   136,  1627,
-   155,  1629,   307,    60,   309,   292,   293,   294,   295,   296,
-   297,   298,   299,   301,    71,   301,   301,   115,   306,   112,
-   306,   306,   309,   127,   122,   301,   301,  1655,   284,  1657,
-   306,   306,   130,   185,   296,  1663,   134,   284,  1232,   295,
-   296,   297,   298,   299,   307,   143,   309,  1675,   295,   296,
-   297,   298,   299,   195,  1248,   301,   301,   301,   320,   157,
-   306,   306,   306,   301,   121,   643,   114,   307,   306,   309,
-   301,   128,   170,   335,   336,   306,  2151,   339,   340,   136,
-   342,   343,   308,   238,   301,   308,   304,   349,   301,   306,
-   147,   353,   354,   306,  1258,   357,  1260,   359,   360,   361,
-   238,   256,   199,   304,   366,   367,   295,   296,   297,   298,
-   299,   301,    78,   174,  1742,   301,   306,   306,   256,   301,
-   306,   185,   301,   385,   306,   185,  1320,   306,   301,   284,
-  1902,   301,   185,   306,  1976,   185,   306,   292,   293,   294,
-   295,   296,   297,   298,   299,   407,   284,   301,   410,   307,
-   181,   309,   306,    60,   309,   417,   284,   295,   296,   297,
-   298,   299,   307,   307,   309,   309,  1938,   295,   296,   297,
-   298,   299,   301,   201,  2421,   301,   307,   306,   309,   441,
-   306,   238,   295,   296,   297,   298,   299,  1959,   309,  1948,
-   301,    60,   309,   306,   456,   306,   301,   459,   307,   256,
-   462,   306,    71,   295,   296,   297,   298,   299,   308,   114,
-  1969,    60,   258,  1841,   306,   477,   301,    66,   307,   307,
-   309,   306,    71,   307,   304,   309,   308,   284,   282,   283,
-   151,   285,   286,   495,   153,   292,   293,   294,   295,   296,
-   297,   298,   299,    28,   310,   507,   297,   310,    27,  2285,
-    83,  1879,   121,   152,   177,   155,   292,   227,   160,   128,
-   269,   152,  1890,    68,   233,   527,   292,   136,   530,   531,
-   193,   292,   121,   307,  1902,   198,   309,   307,   147,   128,
-   175,    82,   205,   114,   309,   208,   309,   136,   173,   212,
-   309,   309,   309,   140,   308,   308,   308,   308,   147,   309,
-   223,   308,   308,   565,  1932,  1933,   155,   309,   204,   232,
-  1938,  1939,   235,   309,    60,   308,   308,   292,   308,   308,
-    66,  1949,   308,   308,  2100,    71,   305,   309,   308,   307,
-    60,  1959,   308,   304,   308,  1963,   259,  2096,   261,   206,
-   308,    71,   309,   266,   308,   268,  1974,   308,   308,   308,
-   308,   308,   308,   308,  1982,   308,   308,   308,   308,   308,
-   308,   308,  1556,  1991,   308,  1559,   308,   308,   308,   238,
-   308,   308,   308,   635,   292,   121,  2098,    93,  2098,   265,
-  2008,   643,   128,   645,  2143,   647,   248,   256,   240,   238,
-   136,   121,   302,   131,   311,   657,   311,   284,   128,   308,
-   131,   147,   308,   121,   292,   201,   136,   256,   194,   155,
-   201,   104,    60,   112,    60,   284,   309,   309,   121,   309,
-   309,  2049,    60,   292,   293,   294,   295,   296,   297,   298,
-   299,   308,   308,   695,  2062,   284,   309,   307,   309,   118,
-   194,   309,   307,   292,   293,   294,   295,   296,   297,   298,
-   299,   309,   309,   309,   309,   717,  2084,   297,   309,   309,
-   309,   309,   112,  2091,   228,   307,   311,   311,   185,   308,
-   308,   733,   279,   118,   155,   112,    68,   739,   185,   236,
-   239,   161,   308,   117,   746,   747,  2114,   308,  2116,   309,
-   752,   309,   238,   309,   756,   757,   309,   309,   309,   309,
-   309,   763,   130,   309,   157,   309,   309,   309,   238,   309,
-   256,   308,   130,   308,   308,   308,   308,   307,  2290,   308,
-   308,   308,  2244,  2151,  2244,  2247,   256,  2247,   308,    73,
-   308,   308,  2291,   308,   308,   308,   308,   308,   284,   801,
-   308,   308,   308,   306,   309,   119,   292,   293,   294,   295,
-   296,   297,   298,   299,   284,   308,   308,   224,   309,   309,
-   309,   309,   309,   309,   309,   295,   296,   297,   298,   299,
-   309,   292,   309,   309,   309,   309,  2298,  2299,    97,    97,
-   309,   309,    60,   845,   309,   309,   309,   309,    66,   309,
-   309,   277,   106,    71,   309,   309,   309,   859,   309,   309,
-   862,   309,  1180,   308,   308,   226,   308,  2235,   308,  2237,
-   131,   308,   149,   154,    60,   131,    60,   309,   309,   309,
-    66,   883,   309,   885,   886,    71,   309,   309,   130,   130,
-   307,   309,  2260,  2355,  2355,  2355,   309,   309,  2266,  2451,
-   309,   309,   308,   121,   309,   309,   309,   309,   309,   309,
-   128,   309,   309,   309,   309,   309,   164,  2285,   136,   132,
-  2419,   304,  2290,    66,   308,  2293,   308,   308,   308,   147,
-  1248,   167,   308,   225,   309,   121,   307,  2305,   308,    60,
-   309,   943,   128,   945,   309,  1879,   309,   309,  2316,   309,
-   136,  2319,  2320,  2321,  2322,  2323,   309,  2419,   309,  2419,
-   309,   147,   309,   309,    34,   309,   309,   309,   309,  2468,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-   309,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-   309,  2359,  2360,   309,   309,    66,   309,   309,   309,  2367,
-  1002,   309,   309,  2371,   309,   308,  2468,  1009,  2468,   309,
-   138,   308,   308,   237,   309,  1949,   309,   152,  1020,   309,
-   238,   309,   302,   306,  1026,    62,   302,   309,     0,  1031,
-     0,    96,   974,   469,  1319,  2403,  1637,   880,   256,   642,
-  1311,  2409,  1976,   347,   727,  2413,  1309,  2415,  1655,  1966,
-  2154,  2419,   238,  2367,  2422,  2467,    60,  2442,  1060,  1061,
-  1062,  1063,    66,  2432,    68,  2462,   284,    71,  1657,  2468,
-   256,  1645,    90,  1352,   292,   293,   294,   295,   296,   297,
-   298,   299,   418,  1351,   651,  1087,    75,   528,  1026,  2319,
-  2434,  1093,  1094,  1095,  1096,  1097,  2464,  2465,   284,  2464,
-  2468,  2318,  2451,   363,  1643,  1272,   292,   293,   294,   295,
-   296,   297,   298,   299,    94,   409,  2418,   121,   509,  1227,
-  1366,  1595,  1266,   912,   128,   284,   435,  2323,  1887,   904,
-  1559,  1884,   136,   292,   293,   294,   295,   296,   297,   298,
-   299,  2465,  1432,   147,   596,  1809,  1742,  1028,  2008,  1248,
-  2084,   155,  2403,   881,   885,  1890,   292,  2091,   943,   444,
-   947,  1598,   635,   454,   519,  1167,  1168,  1169,  1170,  1171,
-   950,   392,  1252,   908,  2251,   169,  1557,  1019,  1230,  2244,
-   964,  2247,    60,    -1,  1186,    -1,    -1,    -1,    66,    -1,
-    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,  1527,
-    -1,    -1,   282,    -1,    71,   285,    -1,   287,   288,    -1,
-   290,    -1,   292,    -1,    -1,   295,   296,   297,   298,   299,
-  1232,    -1,   302,    -1,   238,   305,   306,   307,   308,   309,
-   310,   311,    -1,   121,    -1,    -1,  1248,    -1,  1250,    -1,
-   128,    -1,   256,    -1,    -1,    -1,    -1,    -1,   136,    -1,
-    -1,    -1,  1264,    -1,   121,    -1,    -1,    -1,    -1,   147,
-  1272,   128,    -1,    -1,    -1,    -1,    -1,   155,    -1,   136,
-   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   292,   293,
-   294,   295,   296,   297,   298,   299,    -1,    -1,    -1,    -1,
-    -1,  2235,    -1,  2237,    60,    -1,  1624,  1309,    -1,  1311,
-  1312,  1313,  1314,    -1,    -1,    71,    -1,    -1,  1320,    -1,
-    -1,    -1,    -1,    -1,  1326,    -1,    -1,    -1,  1330,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1339,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1349,  1350,  1351,
-  1352,    -1,    -1,    -1,    -1,  1357,    -1,  1359,    -1,  1361,
-   238,    -1,    -1,    -1,  1366,   121,    -1,    -1,    -1,    -1,
-    -1,    -1,   128,  1375,  1376,    -1,    -1,    -1,   256,    -1,
-   136,   238,    -1,    -1,    -1,    53,    54,    -1,    56,    -1,
-    -1,   147,    -1,    -1,    -1,    -1,    -1,  1399,  1400,   256,
-    -1,    -1,    -1,    -1,    -1,    -1,   284,  1409,  1410,  1411,
-  1412,  1413,  1414,  1415,   292,   293,   294,   295,   296,   297,
-   298,   299,    -1,    -1,  1742,    -1,    -1,   284,    -1,   307,
-    -1,    -1,    -1,    -1,  1436,   292,   293,   294,   295,   296,
-   297,   298,   299,    -1,    -1,    -1,    -1,    -1,    -1,  1451,
-  1452,    -1,    -1,  1455,    -1,  1457,    -1,    -1,  1460,  1461,
-  1462,  1463,  1464,  1465,  1466,  1467,  1468,    -1,     3,  1471,
-    -1,    -1,    -1,     8,    -1,    -1,    11,    12,    -1,    -1,
-    15,    -1,   238,    -1,    -1,    -1,    -1,    -1,    -1,    24,
-    25,    -1,    -1,    -1,  1496,    -1,    -1,  1499,    -1,    -1,
-   256,    -1,    -1,    38,    39,    -1,    -1,  1509,  1510,  1511,
-  1512,  1513,  1514,  1515,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    60,  1841,    -1,    -1,    -1,    -1,   284,    -1,
-    65,    -1,    -1,    71,    -1,    70,   292,   293,   294,   295,
-   296,   297,   298,   299,    -1,    80,    -1,    -1,    -1,    84,
-    -1,    86,    -1,    -1,  1556,    -1,    -1,  1559,    -1,    -1,
-    -1,    96,  1564,    98,    -1,  1567,    -1,   102,    -1,   104,
-    -1,   106,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
-    -1,    -1,   117,   121,    -1,    -1,    -1,    -1,    -1,   124,
-   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   136,    -1,
-    -1,    -1,  1604,  1921,    -1,  1923,  1924,  1925,  1926,  1927,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1624,    -1,    -1,  1627,    -1,   295,   296,    -1,
-    -1,    -1,    -1,    -1,   169,    -1,   171,    60,    -1,   174,
-   175,    -1,  1960,    66,    -1,    -1,    -1,    -1,    71,    -1,
-    -1,    -1,    -1,  1655,    -1,  1657,    -1,   192,    60,    -1,
-    -1,  1663,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
-    -1,    -1,    -1,   208,   209,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   218,   219,    -1,    -1,    -1,    -1,    -1,
-  2008,    -1,    -1,    -1,   229,   230,    -1,    -1,   121,    -1,
-   238,   369,    -1,    -1,    -1,   128,   241,   242,   243,    -1,
-   245,    -1,    -1,   136,   249,    -1,    -1,    -1,   256,   121,
-   255,    -1,    -1,    -1,   147,    -1,   128,    -1,   263,    -1,
-    -1,    -1,   155,    -1,   136,    -1,   271,    -1,    -1,    -1,
-    -1,    -1,    -1,   278,  2062,   147,   284,  1749,    -1,  1751,
-    -1,    -1,    -1,   155,   292,   293,   294,   295,   296,   297,
-   298,   299,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   308,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   449,   450,    -1,    -1,    -1,   454,    -1,    -1,  2107,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2115,  2116,    -1,
-    -1,  2119,    -1,  2121,    -1,    -1,  2124,  2125,  2126,  2127,
-  2128,  2129,  2130,  2131,  2132,   238,  2134,    -1,    -1,    -1,
-    -1,  2139,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   256,    -1,  2153,   238,    -1,    -1,    -1,
-  1842,    -1,    -1,    -1,  2162,  2163,  2164,  2165,  2166,    -1,
-    -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,
-    -1,   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   292,
-   293,   294,   295,   296,   297,   298,   299,  1879,    -1,    -1,
-    -1,    -1,   284,    -1,   307,    -1,    -1,    -1,  1890,    -1,
-   292,   293,   294,   295,   296,   297,   298,   299,    -1,    -1,
-  1902,    -1,    -1,    -1,    -1,   307,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1921,
-    -1,  1923,  1924,  1925,  1926,  1927,    -1,    -1,    -1,    -1,
-  1932,  1933,    -1,    -1,    -1,    -1,  1938,    -1,    -1,    -1,
-    -1,    -1,  2260,    -1,    -1,    -1,    -1,  1949,  2266,    -1,
-  2268,    -1,    -1,    -1,    -1,    -1,    -1,  1959,  1960,    -1,
-    -1,  1963,   630,    60,    -1,    -1,    -1,   635,    -1,    66,
-    -1,    -1,  1974,    -1,    71,    -1,    -1,    -1,    -1,  2297,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2306,  2307,
-  2308,  2309,  2310,  2311,  2312,  2313,  2314,  2315,    -1,    -1,
-  2002,    -1,    40,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    -1,    51,    52,    53,    54,    55,    56,    57,
-    58,    59,    -1,    -1,   121,    -1,    -1,   695,    -1,   697,
-    -1,   128,    -1,    53,    -1,    -1,    56,    -1,    58,   136,
-    -1,    -1,  2360,    -1,    64,    -1,    -1,    67,    -1,  2367,
-   147,  2369,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
-    -1,    -1,    82,    -1,    -1,    -1,    86,    87,    -1,    -1,
-    -1,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  2084,    -1,    -1,    -1,    -1,    -1,    -1,  2091,
-    -1,    -1,    -1,    -1,    -1,  2413,    -1,  2415,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  2107,    -1,  2425,    -1,    -1,
-    -1,    -1,    -1,  2115,    -1,    -1,    -1,  2119,    -1,  2121,
-    -1,    -1,  2124,  2125,  2126,  2127,  2128,  2129,  2130,  2131,
-  2132,    -1,  2134,    -1,    -1,    -1,    -1,  2139,    -1,    -1,
-    -1,   238,    -1,    -1,    -1,    -1,    -1,    60,    -1,  2151,
-    -1,  2153,    -1,    66,    -1,    -1,    69,    -1,    71,   256,
-  2162,  2163,  2164,  2165,  2166,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   845,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    99,   284,    -1,    -1,
-    -1,    -1,  2194,    -1,   862,   292,   293,   294,   295,   296,
-   297,   298,   299,    -1,    -1,    -1,    -1,    -1,   121,    -1,
-    -1,    -1,   880,    -1,    -1,   128,    -1,    -1,   886,    -1,
-    -1,    -1,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,  2235,   147,  2237,    -1,    -1,    -1,    -1,
-    -1,    -1,   155,    -1,   282,    -1,    -1,   285,    -1,    -1,
-   288,    -1,   290,    -1,   292,    -1,    -1,   295,   296,   297,
-   298,   299,    -1,    -1,    -1,    -1,  2268,   305,   306,   307,
-   308,   309,    -1,   311,    -1,    -1,   296,    -1,    -1,   947,
-    -1,   194,    -1,    -1,    -1,    -1,    -1,    -1,  2290,    -1,
-    -1,  2293,    -1,    -1,    -1,  2297,    -1,    -1,    -1,    -1,
-   320,    -1,    -1,    -1,  2306,  2307,  2308,  2309,  2310,  2311,
-  2312,  2313,  2314,  2315,  2316,   335,   336,  2319,    -1,   339,
-   340,  2323,   342,   343,    -1,   238,    -1,    -1,    -1,   349,
-    -1,    -1,    -1,   353,   354,    -1,    -1,   357,    -1,   359,
-   360,   361,    -1,   256,    -1,    -1,   366,   367,    -1,   340,
-    -1,  1019,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   385,    -1,  2369,    -1,  2371,
-   361,   284,   116,    -1,    -1,    -1,    -1,    -1,    -1,   292,
-   293,   294,   295,   296,   297,   298,   299,   407,    -1,    -1,
-   410,    -1,    -1,   137,    -1,    -1,    -1,   417,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2409,    -1,    60,
-    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,  1087,
-    71,   441,    -1,  2425,    -1,  1093,  1094,  1095,  1096,  1097,
-    -1,    -1,    -1,    -1,   178,   179,   456,    -1,    -1,   459,
-  1108,    -1,   462,    -1,    60,    -1,    -1,   191,    -1,   193,
-    66,    -1,    -1,    -1,   198,    71,    -1,   477,    -1,    -1,
-    -1,   205,    -1,  2465,   208,    -1,    -1,    -1,   212,    -1,
-   121,    -1,    -1,    -1,    -1,   495,    -1,   128,    -1,   223,
-    -1,    -1,    -1,    -1,    -1,   136,    -1,   507,   232,    -1,
-    -1,   235,    -1,    -1,    -1,    -1,   147,    -1,   114,  1167,
-  1168,  1169,  1170,  1171,   155,   121,    -1,   527,    -1,    -1,
-   530,   531,   128,    -1,    -1,   259,    -1,   261,  1186,    -1,
-   136,    -1,   266,    -1,   268,    -1,    -1,    -1,    -1,   180,
-    -1,   147,   276,    -1,    -1,    -1,    -1,    -1,    -1,   155,
-    -1,    -1,    -1,    60,    -1,   565,    -1,    -1,    -1,    66,
-    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
-   580,    -1,  1230,    -1,    -1,    -1,    40,    41,    42,    43,
-    44,    45,    46,    47,    48,    49,   596,    51,    52,    53,
-    54,    55,    56,    57,    58,    59,    -1,   238,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   121,   256,    -1,    -1,    -1,    -1,
-    -1,   128,    -1,    -1,    -1,   635,    -1,    -1,    -1,   136,
-    -1,    -1,   238,   643,    -1,   645,    -1,   647,    -1,    -1,
-   147,    -1,    -1,   284,    -1,    -1,    -1,   657,   155,    -1,
-   256,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   284,    -1,
-    -1,    -1,    -1,    -1,    -1,   695,   292,   293,   294,   295,
-   296,   297,   298,   299,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   717,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   733,    -1,    -1,    -1,    -1,    -1,   739,
-    -1,   238,    -1,    -1,    -1,    -1,   746,   747,    -1,    -1,
-    -1,    -1,   752,    -1,    -1,    -1,   756,   757,    -1,   256,
-    -1,    -1,    -1,   763,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   784,    -1,    -1,   284,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   292,   293,   294,   295,   296,
-   297,   298,   299,  1451,  1452,    -1,    -1,  1455,    -1,  1457,
-    -1,    -1,  1460,  1461,  1462,  1463,  1464,  1465,  1466,  1467,
-  1468,    -1,    -1,  1471,    -1,    -1,    -1,    -1,   282,    60,
-   801,   285,    -1,    -1,   288,    66,   290,    68,   292,    -1,
-    71,   295,   296,   297,   298,   299,    -1,    -1,  1496,    -1,
-    -1,   305,   306,   307,   308,   309,    -1,   311,    -1,   859,
-   860,  1509,  1510,  1511,  1512,  1513,  1514,  1515,    -1,    -1,
-    -1,    -1,     8,    -1,   845,    11,    12,    -1,    -1,    15,
-    -1,    -1,    -1,   883,    -1,   885,   886,    -1,    24,    25,
-   121,   862,    -1,    -1,    -1,    -1,    -1,   128,    -1,    -1,
-    -1,    -1,    38,    39,    -1,   136,    -1,    -1,    -1,  1557,
-    -1,    -1,    -1,    -1,    -1,    -1,   147,    -1,    -1,    60,
-    -1,    -1,    -1,    -1,   155,    66,    -1,    -1,    -1,    65,
-    71,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   943,    80,   945,    -1,    -1,    84,    -1,
-    86,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    98,    -1,    -1,    71,   102,    -1,   104,    -1,
-   106,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
-   121,   117,    -1,    -1,    -1,    -1,    -1,   128,   124,    -1,
-    -1,    -1,    -1,    -1,    -1,   136,    -1,    -1,    -1,    -1,
-    -1,    -1,  1002,    -1,    -1,    -1,   147,   238,    -1,  1009,
-    -1,    -1,    -1,    -1,   155,   121,    -1,    -1,    -1,    -1,
-  1020,    -1,   128,    -1,    -1,   256,  1026,    -1,    -1,    -1,
-   136,  1031,    -1,   169,    -1,   171,    -1,    -1,   174,   175,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   284,    -1,    -1,   192,    -1,    -1,    -1,
-    -1,   292,   293,   294,   295,   296,   297,   298,   299,    60,
-    -1,    -1,   208,   209,    -1,    -1,    -1,    -1,    -1,    -1,
-    71,    -1,   218,   219,    -1,    -1,    -1,    -1,    -1,  1060,
-  1061,  1062,  1063,   229,   230,    -1,    -1,   238,    -1,    -1,
-    -1,  1749,    -1,  1751,    -1,   241,   242,   243,    -1,   245,
-    -1,    -1,    -1,   249,    -1,   256,  1087,    -1,    -1,   255,
-    -1,    -1,  1093,  1094,  1095,  1096,  1097,   263,    -1,    -1,
-   121,    -1,   238,    -1,    -1,   271,    -1,   128,    -1,    -1,
-    -1,    -1,   278,   284,    -1,   136,    -1,    -1,    -1,    -1,
-   256,   292,   293,   294,   295,   296,   297,   298,   299,    60,
-    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
-    71,    -1,   308,    -1,    -1,    -1,    -1,    -1,   284,    -1,
-  1180,    -1,    -1,    -1,    -1,    -1,   292,   293,   294,   295,
-   296,   297,   298,   299,  1842,    -1,  1167,  1168,  1169,  1170,
-  1171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  1186,    -1,    -1,    -1,    -1,
-   121,    -1,    -1,    60,    -1,    -1,    -1,   128,    -1,    66,
-    -1,    -1,  1232,    -1,    71,   136,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   147,   238,  1248,    -1,
-  1250,    -1,    -1,    -1,   155,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1264,   256,    -1,    -1,    -1,    -1,
-    -1,    -1,  1272,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   121,    -1,    -1,    -1,    -1,    -1,
-    -1,   128,    -1,   284,    -1,    -1,    -1,    -1,    -1,   136,
-    -1,    -1,   293,   294,   295,   296,   297,   298,   299,  1309,
-   147,  1311,  1312,  1313,  1314,    -1,    -1,    -1,   155,    -1,
-  1320,    -1,    -1,    -1,    -1,    -1,  1326,    -1,    -1,    -1,
-  1330,    -1,    -1,    -1,    -1,    -1,    -1,   238,    -1,  1339,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1347,    -1,  1349,
-  1350,  1351,  1352,    -1,  2002,   256,    -1,  1357,    -1,  1359,
-    -1,  1361,    -1,    -1,    -1,    -1,  1366,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1374,  1375,  1376,    -1,    -1,    -1,
-    -1,    -1,    -1,   284,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
-    -1,   238,    60,    -1,    -1,    -1,    -1,    -1,  1408,    -1,
-    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,   256,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1399,  1400,
-    -1,    -1,  1432,    -1,    -1,    -1,    -1,    60,  1409,  1410,
-  1411,  1412,  1413,  1414,  1415,    -1,    -1,   284,    71,    -1,
-  1450,    -1,    -1,    -1,    -1,   292,   293,   294,   295,   296,
-   297,   298,   299,   121,    -1,  1436,    -1,    -1,    -1,    -1,
-   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   136,    -1,
-  1451,  1452,    -1,    -1,  1455,    -1,  1457,    -1,    -1,  1460,
-  1461,  1462,  1463,  1464,  1465,  1466,  1467,  1468,   121,    -1,
-  1471,    -1,    -1,    -1,    -1,   128,    -1,    -1,  1508,    -1,
-    -1,    -1,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  1496,    -1,  1527,  1499,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1509,  1510,
-  1511,  1512,  1513,  1514,  1515,    -1,  2194,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  1556,    -1,    -1,  1559,
-    -1,    -1,    -1,    -1,  1564,    -1,    -1,  1567,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   256,    -1,
-    -1,    -1,    -1,    -1,  1604,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   284,  1627,    -1,  1629,
-    -1,    -1,    -1,   256,    -1,   293,   294,   295,   296,   297,
-   298,   299,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,  1624,    -1,  1655,    -1,  1657,    -1,    -1,
-    -1,   284,    -1,  1663,    -1,    -1,    -1,    -1,    -1,    -1,
-   293,   294,   295,   296,   297,   298,   299,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-    12,    -1,    14,    -1,    16,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    -1,    28,    29,    30,    31,
-    32,    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1742,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1749,    -1,
-  1751,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,
-    -1,    -1,    -1,    -1,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,   140,    -1,
-   142,    -1,   144,    -1,    -1,    -1,    -1,    -1,   150,    -1,
-    -1,  1841,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   173,   174,    -1,    -1,    -1,    -1,    -1,    -1,   181,
-   182,  1842,    -1,    -1,    -1,    -1,    -1,   189,    -1,  1879,
-    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,
-  1890,   203,    -1,    -1,    -1,    -1,   208,    -1,    -1,    -1,
-    -1,    -1,  1902,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1932,  1933,    -1,    -1,    -1,    -1,  1938,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1949,
-  1921,    -1,  1923,  1924,  1925,  1926,  1927,   269,    -1,  1959,
-    -1,    -1,    -1,  1963,    -1,    -1,    -1,    -1,    -1,    -1,
-   282,   283,    -1,   285,  1974,    -1,   288,   289,   290,    -1,
-    -1,    -1,  1982,    -1,    -1,    -1,   583,    -1,    -1,  1960,
-    -1,  1991,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   597,    -1,   599,  1974,   601,   602,   603,   604,  2008,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  2002,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2049,
-   565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  2062,    -1,    -1,    -1,   663,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  2084,    -1,    -1,    -1,    -1,    -1,
-    -1,  2091,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  2114,    -1,  2116,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   643,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  2107,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  2115,    -1,    -1,   744,  2119,    -1,
-  2121,  2151,    -1,  2124,  2125,  2126,  2127,  2128,  2129,  2130,
-  2131,  2132,    -1,  2134,    -1,    -1,    -1,    -1,  2139,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   773,    -1,    -1,    -1,
-    -1,    -1,  2153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  2162,  2163,  2164,  2165,  2166,    -1,    -1,    -1,    -1,
-   797,   798,    -1,    -1,    -1,    -1,    -1,    -1,   805,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,  2194,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  2235,    -1,  2237,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   845,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  2260,    -1,    -1,    -1,   861,    -1,  2266,    -1,   865,    -1,
-   867,    -1,    -1,   870,   871,   872,   873,   874,   875,   876,
-   877,   878,    -1,    -1,    -1,    -1,   801,    -1,    -1,    -1,
-  2290,    -1,    -1,  2293,    -1,    -1,    -1,  2268,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  2305,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  2316,    -1,    -1,  2319,
-  2320,  2321,    -1,  2323,    -1,    -1,  2297,    -1,    -1,    -1,
-   845,    -1,    -1,    -1,    -1,  2306,  2307,  2308,  2309,  2310,
-  2311,  2312,  2313,  2314,  2315,    -1,    -1,   862,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2359,
-  2360,    -1,    -1,    -1,    -1,    -1,    -1,  2367,    -1,    -1,
-    -1,  2371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2369,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2409,
-    -1,    -1,    -1,  2413,    -1,  2415,   801,    -1,    -1,    -1,
-    -1,    -1,  2422,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  1027,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  2425,    -1,    -1,    -1,    -1,    -1,
-   845,    -1,    -1,    -1,    -1,  2465,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  1073,   862,  1075,  1076,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  1087,    -1,    -1,    -1,    -1,    -1,  1093,  1094,  1095,  1096,
-  1097,  1098,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  1060,  1061,  1062,  1063,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1087,    -1,    -1,  1172,    -1,    -1,  1093,  1094,
-  1095,  1096,  1097,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1188,    -1,    -1,    -1,  1192,    -1,    -1,    -1,    -1,
-  1197,    -1,    -1,    -1,  1201,    -1,    -1,    -1,  1205,    -1,
-    -1,    -1,  1209,    -1,    -1,    -1,  1213,    -1,    -1,    -1,
-  1217,    -1,    -1,    -1,  1221,    -1,    -1,    -1,  1225,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1167,  1168,  1169,  1170,  1171,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1266,
-    -1,  1186,    -1,    -1,    -1,  1060,  1061,  1062,  1063,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1087,    -1,    -1,    -1,    -1,    -1,  1093,  1094,
-  1095,  1096,  1097,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,  1248,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1378,  1167,  1168,  1169,  1170,  1171,    -1,    -1,    -1,
-  1387,    -1,    -1,    -1,    -1,  1180,    -1,    -1,    -1,  1396,
-    -1,  1186,    -1,    -1,    -1,  1402,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   783,    -1,    -1,    -1,    -1,    -1,
-    -1,  1428,    -1,    -1,    -1,    -1,    -1,    -1,  1435,    -1,
-    -1,  1438,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1451,    -1,    -1,    -1,  1455,    -1,
-  1457,    -1,    -1,  1460,  1461,  1462,  1463,  1464,  1465,  1466,
-  1467,  1468,    -1,    -1,  1471,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1399,  1400,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1409,  1410,  1411,  1412,  1413,  1414,
-  1415,    -1,    -1,    -1,  1501,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  1451,  1452,    -1,    -1,
-  1455,    -1,  1457,    -1,    -1,  1460,  1461,  1462,  1463,  1464,
-  1465,  1466,  1467,  1468,    -1,    -1,  1471,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1496,    -1,    -1,  1499,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1509,  1510,  1511,  1512,  1513,  1514,
-  1515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1399,  1400,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1409,  1410,  1411,  1412,  1413,  1414,
-  1415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  1451,  1452,    -1,    -1,
-  1455,    -1,  1457,    -1,    -1,  1460,  1461,  1462,  1463,  1464,
-  1465,  1466,  1467,  1468,    -1,    -1,  1471,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  1703,  1704,  1705,    -1,
-    -1,  1496,    -1,    -1,  1499,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1509,  1510,  1511,  1512,  1513,  1514,
-  1515,    -1,    -1,    -1,    -1,    -1,  1733,  1734,  1735,    -1,
-    -1,    -1,  1527,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1751,    -1,    -1,    -1,    -1,  1756,
-    -1,    -1,    -1,    -1,    -1,  1762,    -1,    -1,    -1,    -1,
-  1767,    -1,    -1,    -1,    -1,  1772,    -1,    -1,    -1,    -1,
-  1777,    -1,    -1,    -1,    -1,  1782,    -1,    -1,    -1,    -1,
-  1787,    -1,    -1,    -1,    -1,  1792,    -1,    -1,    -1,    -1,
-  1797,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  1180,    -1,    -1,    -1,    -1,    -1,    -1,  1825,  1826,
-  1827,    -1,    -1,  1192,  1749,    -1,  1751,    -1,  1197,  1624,
-    -1,    -1,  1201,    -1,    -1,    -1,  1205,    -1,    -1,    -1,
-  1209,    -1,    -1,    -1,  1213,    -1,    -1,    -1,  1217,    -1,
-    -1,    -1,  1221,    -1,    -1,    -1,  1225,    -1,    -1,     3,
-     4,     5,     6,     7,     8,     9,    10,    11,    12,    -1,
-    14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
-    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1842,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1742,    -1,    -1,
-    94,    95,    -1,    -1,  1749,    -1,  1751,   101,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,  1348,
-    -1,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   139,   140,    -1,   142,    -1,
-   144,    -1,    -1,    -1,    -1,    -1,   150,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   173,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,    -1,
-    -1,    -1,    -1,    -1,    -1,   189,  1841,  1842,    -1,    -1,
-    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,
-    -1,    -1,  1431,    -1,   208,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2002,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2094,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   269,  1921,    -1,  1923,  1924,
-  1925,  1926,  1927,    -1,    -1,    -1,    -1,    -1,   282,   283,
-    -1,   285,    -1,    -1,   288,   289,   290,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1527,    -1,
-  1529,  1530,    -1,  1532,  1533,  1960,  1535,  1536,    -1,  1538,
-  1539,    -1,  1541,  1542,    -1,  1544,  1545,    -1,  1547,  1548,
-    -1,  1550,  1551,    -1,  1553,  1554,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2002,    -1,    -1,
-    -1,    -1,    -1,  2008,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2062,    -1,  2194,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  2107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  2115,  2116,    -1,    -1,  2119,    -1,  2121,    -1,    -1,  2124,
-  2125,  2126,  2127,  2128,  2129,  2130,  2131,  2132,    -1,  2134,
-    -1,    -1,    -1,    -1,  2139,  2352,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2153,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2162,  2163,  2164,
-  2165,  2166,    -1,  1742,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1756,    -1,    -1,
-    -1,    -1,    -1,  1762,    -1,    -1,    -1,    -1,  1767,  2194,
-    -1,    -1,    -1,  1772,    -1,    -1,    -1,    -1,  1777,    -1,
-    -1,    -1,    -1,  1782,    -1,    -1,    -1,    -1,  1787,    -1,
-    -1,    -1,    -1,  1792,    -1,    -1,    -1,    -1,  1797,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,  1805,    -1,    -1,    -1,
-  1809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  2260,    -1,    -1,    -1,    -1,
-    -1,  2266,    -1,  2268,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  2297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,  2306,  2307,  2308,  2309,  2310,  2311,  2312,  2313,  2314,
-  2315,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  2360,    -1,    -1,    -1,    -1,
-    -1,    -1,  2367,    -1,  2369,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2413,    -1,
-  2415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  2425,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2008,
-    -1,    -1,  2011,  2012,    -1,  2014,  2015,    -1,  2017,  2018,
-    -1,  2020,  2021,    -1,  2023,  2024,    -1,  2026,  2027,    -1,
-  2029,  2030,    -1,  2032,  2033,    -1,  2035,  2036,    -1,    -1,
-    -1,    -1,    -1,  2042,    -1,    -1,    -1,  2046,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    75,    76,    77,    78,    -1,    -1,    81,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,   107,   108,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,   147,   148,   149,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,   297,    -1,   299,   300,    -1,   302,    -1,    -1,
-    -1,    -1,    -1,   308,   309,     3,     4,     5,     6,     7,
-     8,     9,    10,    11,    12,    -1,    14,    -1,    16,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
-    28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
-    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,
-    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
-    88,    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,
-    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,   107,
-   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,
-    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,
-   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,   147,
-   148,   149,   150,   151,    -1,   153,   154,    -1,    -1,    -1,
-    -1,   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,
-   168,    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,
-    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,
-   188,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,
-    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,
-   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,
-    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,   227,
-   228,    -1,    -1,   231,   232,   233,   234,   235,   236,   237,
-   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,
-   248,    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,
-   258,   259,   260,   261,   262,    -1,   264,   265,   266,   267,
-   268,   269,   270,    -1,   272,   273,   274,   275,   276,    -1,
-    -1,   279,    -1,   281,   282,   283,   284,   285,   286,    -1,
-   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,   297,
-    -1,   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,
-   308,   309,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    75,    76,    77,    78,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,   147,   148,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,   159,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,   188,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,   250,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,   284,   285,   286,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,   299,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,   309,     3,
-     4,     5,     6,     7,     8,     9,    10,    11,    12,    -1,
-    14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
-    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    75,    76,    77,    78,    -1,    -1,    81,    -1,    -1,
-    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,
-    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
-    -1,    -1,    -1,   107,   108,   109,    -1,   111,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,
-    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,
-    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,
-   144,   145,    -1,   147,   148,   149,   150,   151,    -1,   153,
-   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,
-    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,
-    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,
-   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,
-    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,
-   204,   205,   206,   207,   208,    -1,   210,   211,   212,    -1,
-   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,
-   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,
-   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,
-   244,    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,
-   254,    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,
-   264,   265,   266,   267,   268,   269,   270,    -1,   272,   273,
-   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,
-   284,   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,
-    -1,    -1,   296,    -1,    -1,   299,   300,    -1,   302,    -1,
-    -1,    -1,    -1,    -1,   308,   309,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
-    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-    -1,    -1,    -1,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,    -1,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,    -1,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,    -1,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,   309,     3,     4,     5,     6,     7,     8,     9,
-    10,    11,    12,    -1,    14,    -1,    16,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    -1,    28,    29,
-    30,    31,    32,    33,    -1,    35,    36,    37,    38,    39,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,
-    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
-    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,
-    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,
-   140,    -1,   142,    -1,   144,   145,    -1,   147,    -1,   149,
-   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,
-    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,   189,
-    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
-    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,
-   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,
-   220,   221,   222,   223,   224,    -1,   226,   227,   228,    -1,
-    -1,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,
-    -1,   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,
-   260,   261,   262,    -1,   264,   265,   266,   267,   268,   269,
-   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,
-    -1,   281,   282,   283,   284,   285,    -1,    -1,   288,   289,
-   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,    -1,
-   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,   309,
-     3,    -1,     5,     6,     7,     8,    -1,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,    -1,    -1,    -1,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,    -1,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,    -1,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-    -1,    -1,   285,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,   309,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    72,    -1,    -1,    75,    76,    77,    78,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,   107,   108,
-   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,   133,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,   147,   148,
-   149,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,   186,    -1,   188,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,   284,   285,   286,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,
-    -1,    -1,    75,    76,    77,    78,    -1,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,   107,   108,   109,    -1,   111,    -1,
-    -1,   114,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-   133,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,   147,   148,   149,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,   186,    -1,   188,   189,    -1,    -1,    -1,
-   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,   284,   285,   286,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,   296,    -1,    -1,   299,   300,    -1,   302,
-    -1,    -1,    -1,    -1,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    75,    76,
-    77,    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    88,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-   107,   108,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,   133,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-   147,   148,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,   159,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,   176,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,   186,
-    -1,   188,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,   286,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,   299,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    72,    -1,    -1,    75,    76,    77,    78,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
-   111,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,   133,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,   147,   148,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,   159,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,   186,    -1,   188,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,   250,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,   284,   285,   286,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,   299,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    64,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    75,    76,    77,    78,    -1,    -1,    81,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,   107,   108,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,   147,   148,   149,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,    -1,    -1,   299,   300,    -1,   302,    -1,    -1,
-    -1,    -1,    -1,   308,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    64,    -1,    -1,    67,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,   107,   108,
-   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,   147,   148,
-   149,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,   188,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,   284,   285,   286,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    75,    76,    77,    78,    -1,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,   107,   108,   109,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,   147,   148,   149,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,
-   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,   284,   285,   286,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,   296,    -1,    -1,   299,   300,    -1,   302,
-    -1,    -1,    -1,    -1,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,
-    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
-    77,    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    88,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-   107,   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-   147,   148,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,   159,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,   176,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,   188,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,   286,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,   299,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    75,    76,    77,    78,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,   147,   148,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,   159,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,   188,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,   250,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,   284,   285,   286,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,   299,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    64,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    75,    76,    77,    78,    -1,    -1,    81,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,   107,   108,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,   147,   148,   149,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,    -1,    -1,   299,   300,    -1,   302,    -1,    -1,
-    -1,    -1,    -1,   308,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    64,    -1,    -1,    67,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,   107,   108,
-   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,   147,   148,
-   149,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,   188,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,   284,   285,   286,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    75,    76,    77,    78,    -1,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,   107,   108,   109,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,    -1,   148,   149,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,
-   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,    -1,   285,   286,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,   296,    -1,    -1,   299,   300,   301,   302,
-    -1,    -1,    -1,   306,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,
-    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
-    77,    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    88,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-   107,   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-   147,   148,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,   159,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,   176,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,   188,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,   286,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,   299,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    75,    76,    77,    78,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,   147,   148,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,   159,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,   188,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,   250,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,   284,   285,   286,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,   299,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    64,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    75,    76,    77,    78,    -1,    -1,    81,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,   107,   108,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,   147,   148,   149,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,    -1,    -1,   299,   300,    -1,   302,    -1,    -1,
-    -1,    -1,    -1,   308,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    64,    -1,    -1,    67,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,   107,   108,
-   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,   147,   148,
-   149,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,   188,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,   284,   285,   286,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    75,    76,    77,    78,    -1,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,   107,   108,   109,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,   147,   148,   149,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,
-   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,   284,   285,   286,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,   296,    -1,    -1,   299,   300,    -1,   302,
-    -1,    -1,    -1,    -1,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,
-    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
-    77,    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    88,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-   107,   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-   147,   148,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,   159,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,   176,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,   188,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,   286,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,   299,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    75,    76,    77,    78,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,   147,   148,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,   159,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,   188,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,   250,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,   284,   285,   286,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,   299,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    75,    76,    77,    78,    -1,    -1,    81,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,   107,   108,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,   147,   148,   149,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,   297,    -1,   299,   300,    -1,   302,    -1,    -1,
-    -1,    -1,    -1,   308,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,   107,   108,
-   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,   147,   148,
-   149,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,   188,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,   284,   285,   286,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    75,    76,    77,    78,    -1,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,   107,   108,   109,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,   147,   148,   149,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,   174,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,
-   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,   284,   285,   286,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,   296,    -1,    -1,   299,   300,    -1,   302,
-    -1,    -1,    -1,    -1,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
-    77,    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    88,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-   107,   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-   147,   148,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,   159,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,   174,    -1,   176,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,   188,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,   286,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,   299,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    75,    76,    77,    78,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,   147,   148,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,   159,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,   188,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,   250,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,   284,   285,   286,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,   299,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    75,    76,    77,    78,    -1,    -1,    81,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,   107,   108,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,   147,   148,   149,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,    -1,    -1,   299,   300,    -1,   302,    -1,    -1,
-    -1,    -1,    -1,   308,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    78,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,   107,   108,
-   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,   147,   148,
-   149,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,   188,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,   284,   285,   286,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    75,    76,    77,    78,    -1,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,   107,   108,   109,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,    -1,   148,   149,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,
-   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,    -1,   285,   286,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,   296,    -1,    -1,   299,   300,    -1,   302,
-    -1,    -1,    -1,    -1,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,
-    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
-    77,    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    88,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-   107,   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-    -1,   148,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,   159,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,   176,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,   188,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,    -1,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,    -1,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,    -1,   285,   286,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   300,   301,   302,    -1,    -1,    -1,   306,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    64,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    75,    76,    77,    78,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,    -1,   148,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,   159,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,   188,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,    -1,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,   250,
-   251,   252,    -1,   254,    -1,    -1,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,    -1,   285,   286,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,    -1,    -1,    -1,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,   193,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,   286,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,    -1,    -1,   299,   300,    -1,   302,    -1,    -1,
-    -1,    -1,    -1,   308,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,    -1,    -1,
-    -1,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-   159,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,   176,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,   188,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,   250,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,    -1,   285,   286,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-   299,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,    -1,    -1,    -1,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,
-   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,    -1,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,    -1,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,    -1,   285,   286,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   300,    -1,   302,
-    -1,    -1,    -1,    -1,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
-    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    89,    90,    91,    92,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-    -1,    -1,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,    -1,   189,    -1,    -1,    -1,   193,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,    -1,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,    -1,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    90,
-    91,    92,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,    -1,    -1,    -1,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,    -1,   189,    -1,
-    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,    -1,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,   284,   285,    -1,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,    -1,   300,
-    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,     3,     4,
-     5,     6,     7,     8,     9,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    94,
-    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,   126,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,   142,    -1,   144,
-   145,    -1,    -1,    -1,    -1,   150,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,    -1,    -1,
-    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,    -1,    -1,   288,   289,   290,    -1,    -1,    -1,    -1,
-    -1,   296,    -1,    -1,    -1,   300,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   308,     3,     4,     5,     6,     7,     8,
-     9,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    89,    90,    91,    92,    -1,    94,    95,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,   142,    -1,   144,   145,    -1,    -1,    -1,
-    -1,   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,
-   189,    -1,    -1,    -1,   193,    -1,    -1,   196,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,    -1,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-   269,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,    -1,   285,    -1,    -1,   288,
-   289,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,
-    -1,   300,    -1,   302,    -1,    -1,    -1,    -1,    -1,   308,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,   142,
-    -1,   144,   145,    -1,    -1,    -1,    -1,   150,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,   159,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,   176,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,   188,   189,    -1,    -1,    -1,
-    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,   250,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,   269,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,    -1,   285,    -1,    -1,   288,   289,   290,    -1,    -1,
-    -1,    -1,    -1,   296,    -1,    -1,    -1,   300,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   308,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
-    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,   142,    -1,   144,   145,    -1,
-   147,    -1,   149,   150,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,    -1,   189,    -1,    -1,    -1,    -1,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,   269,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,   284,   285,    -1,
-    -1,   288,   289,   290,    -1,    -1,    -1,    -1,    -1,   296,
-    -1,    -1,    -1,   300,    -1,   302,    -1,    -1,    -1,    -1,
-    -1,   308,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,   142,    -1,   144,   145,    -1,    -1,    -1,   149,   150,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,    -1,   189,    -1,
-    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,    -1,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,   269,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,    -1,   285,    -1,    -1,   288,   289,   290,
-    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,    -1,   300,
-    -1,   302,    -1,    -1,    -1,    -1,     3,   308,     5,     6,
-     7,     8,    -1,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    88,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,    -1,    -1,    -1,   145,    -1,
-    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,    -1,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,    -1,     3,   285,     5,
-     6,     7,     8,    -1,    10,    11,    12,    -1,    14,    -1,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,   308,    28,    29,    30,    31,    32,    33,    -1,    35,
-    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
-    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,
-    -1,    -1,   138,   139,   140,    -1,    -1,    -1,    -1,   145,
-    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,
-   166,    -1,   168,    -1,    -1,    -1,   172,   173,   174,    -1,
-    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,
-   206,   207,   208,    -1,   210,   211,   212,    -1,   214,   215,
-    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,
-   226,   227,   228,    -1,    -1,   231,   232,   233,   234,   235,
-   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,
-   246,   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,
-   256,    -1,   258,   259,   260,   261,   262,    -1,   264,   265,
-   266,   267,   268,    -1,   270,    -1,   272,   273,   274,   275,
-   276,    -1,    -1,   279,    -1,   281,   282,    -1,     3,   285,
-     5,     6,     7,     8,    -1,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,   308,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
-    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,    -1,    -1,    -1,
-   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,    -1,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,   269,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,   283,   284,
-   285,    -1,    -1,   288,    -1,   290,    -1,   292,   293,   294,
-   295,   296,   297,   298,   299,     3,    -1,     5,     6,     7,
-     8,    -1,    10,    11,    12,    -1,    14,    -1,    16,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
-    28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
-    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    97,
-    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
-    -1,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,    -1,
-   138,   139,   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,
-    -1,    -1,    -1,   151,    -1,   153,   154,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   162,   163,   164,    -1,   166,    -1,
-   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,
-   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,
-    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,   227,
-   228,    -1,    -1,   231,   232,   233,   234,   235,   236,   237,
-   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,
-   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,    -1,
-   258,   259,   260,   261,   262,    -1,   264,   265,   266,   267,
-   268,    -1,   270,    -1,   272,   273,   274,   275,   276,    -1,
-    -1,   279,    -1,   281,   282,    -1,   284,   285,    -1,    -1,
-    -1,    -1,    -1,    -1,   292,   293,   294,   295,   296,   297,
-   298,   299,     3,    -1,     5,     6,     7,     8,    -1,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,   130,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,    -1,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,    -1,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,    -1,   284,   285,    -1,    -1,    -1,    -1,    -1,
-    -1,   292,   293,   294,   295,   296,   297,   298,   299,     3,
-    -1,     5,     6,     7,     8,    -1,    10,    11,    12,    -1,
-    14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
-    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,
-    94,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,
-    -1,    -1,    -1,    -1,   138,   139,   140,    -1,    -1,    -1,
-    -1,   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,
-   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,
-    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183,
-   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,
-   204,   205,   206,   207,   208,    -1,   210,   211,   212,    -1,
-   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,
-   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,
-   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,
-   244,    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,
-   254,    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,
-   264,   265,   266,   267,   268,    -1,   270,    -1,   272,   273,
-   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,    -1,
-    -1,   285,    -1,    -1,    -1,   289,    -1,     3,    -1,     5,
-     6,     7,     8,   297,    10,    11,    12,    -1,    14,    -1,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    -1,    28,    29,    30,    31,    32,    33,    -1,    35,
-    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    94,    -1,
-    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,
-    -1,    -1,   138,   139,   140,    -1,    -1,    -1,    -1,   145,
-    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,
-   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,
-   206,   207,   208,    -1,   210,   211,   212,    -1,   214,   215,
-    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,
-   226,   227,   228,    -1,    -1,   231,   232,   233,   234,   235,
-   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,
-   246,   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,
-   256,    -1,   258,   259,   260,   261,   262,    -1,   264,   265,
-   266,   267,   268,    -1,   270,    -1,   272,   273,   274,   275,
-   276,    -1,    -1,   279,    -1,   281,   282,    -1,    -1,   285,
-    -1,     3,    -1,     5,     6,     7,     8,    -1,    10,    11,
-    12,   297,    14,    -1,    16,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    -1,    28,    29,    30,    31,
-    32,    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,
-    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,   101,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,
-    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,
-   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,
-    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,   151,
-    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
-   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,
-   182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   203,   204,   205,   206,   207,   208,    -1,   210,   211,
-   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,
-   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,
-   232,   233,   234,   235,   236,   237,   238,   239,    -1,    -1,
-    -1,    -1,   244,    -1,   246,   247,   248,    -1,    -1,   251,
-   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,
-   262,    -1,   264,   265,   266,   267,   268,    -1,   270,    -1,
-   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,
-   282,    -1,    -1,   285,    -1,     3,    -1,     5,     6,     7,
-     8,    -1,    10,    11,    12,   297,    14,    -1,    16,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
-    28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
-    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
-    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,
-   138,   139,   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,
-    -1,    -1,    -1,   151,    -1,   153,   154,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,
-   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,
-   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,
-    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,   227,
-   228,    -1,    -1,   231,   232,   233,   234,   235,   236,   237,
-   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,
-   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,    -1,
-   258,   259,   260,   261,   262,    -1,   264,   265,   266,   267,
-   268,    -1,   270,    -1,   272,   273,   274,   275,   276,    -1,
-    -1,   279,    -1,   281,   282,    -1,    -1,   285,    -1,     3,
-    -1,     5,     6,     7,     8,    -1,    10,    11,    12,   297,
-    14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
-    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    94,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,
-    -1,    -1,    -1,    -1,   138,   139,   140,    -1,    -1,    -1,
-    -1,   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,
-   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,
-    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183,
-   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,
-   204,   205,   206,   207,   208,    -1,   210,   211,   212,    -1,
-   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,
-   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,
-   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,
-   244,    -1,   246,   247,   248,    -1,    -1,   251,   252,    -1,
-   254,    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,
-   264,   265,   266,   267,   268,    -1,   270,    -1,   272,   273,
-   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,    -1,
-    -1,   285,    -1,     3,    -1,     5,     6,     7,     8,    -1,
-    10,    11,    12,   297,    14,    -1,    16,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    -1,    28,    29,
-    30,    31,    32,    33,    -1,    35,    36,    37,    38,    39,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
-    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,
-   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,
-    -1,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,
-    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,
-   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,
-   220,   221,   222,   223,   224,    -1,   226,   227,   228,    -1,
-    -1,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,
-    -1,   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,
-   260,   261,   262,    -1,   264,   265,   266,   267,   268,    -1,
-   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,
-    -1,   281,   282,    -1,    -1,   285,    -1,     3,    -1,     5,
-     6,     7,     8,    -1,    10,    11,    12,   297,    14,    -1,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    -1,    28,    29,    30,    31,    32,    33,    -1,    35,
-    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    94,    -1,
-    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,
-    -1,    -1,   138,   139,   140,    -1,    -1,    -1,    -1,   145,
-    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,
-   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,
-   206,   207,   208,    -1,   210,   211,   212,    -1,   214,   215,
-    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,
-   226,   227,   228,    -1,    -1,   231,   232,   233,   234,   235,
-   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,
-   246,   247,   248,    -1,   250,   251,   252,    -1,   254,    -1,
-   256,    -1,   258,   259,   260,   261,   262,    -1,   264,   265,
-   266,   267,   268,    -1,   270,    -1,   272,   273,   274,   275,
-   276,    -1,    -1,   279,    -1,   281,   282,    -1,    -1,   285,
-    -1,    -1,     3,   289,     5,     6,     7,     8,    -1,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    64,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,
-    -1,    -1,    -1,    94,    -1,    -1,    97,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,    -1,
-   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,    -1,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,   283,    -1,   285,   286,     3,    -1,     5,     6,
-     7,     8,    -1,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
-    97,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,    -1,    -1,    -1,   145,    -1,
-    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,    -1,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,   283,    -1,   285,   286,
-     3,    -1,     5,     6,     7,     8,    -1,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    94,    -1,    -1,    97,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,    -1,
-    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,    -1,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,    -1,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-   283,    -1,   285,   286,     3,    -1,     5,     6,     7,     8,
-    -1,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,
-    -1,    -1,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,    -1,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-    -1,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,   283,    -1,   285,   286,     3,    -1,
-     5,     6,     7,     8,    -1,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
-    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,    -1,    -1,    -1,
-   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,    -1,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,    -1,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,    -1,    -1,
-   285,   286,     3,    -1,     5,     6,     7,     8,    -1,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,
-    81,    -1,    -1,    -1,    85,    -1,    -1,    88,    -1,    -1,
-    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,   103,   104,    -1,    -1,    -1,    -1,   109,    -1,
-    -1,    -1,   113,    -1,    -1,    -1,    -1,   118,    -1,   120,
-    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,    -1,    -1,    -1,   145,    -1,    -1,   148,    -1,    -1,
-   151,    -1,   153,   154,    -1,   156,    -1,    -1,   159,   160,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,    -1,   177,    -1,    -1,   180,
-   181,   182,   183,   184,    -1,    -1,   187,    -1,   189,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   199,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,   209,   210,
-   211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
-   221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-   241,    -1,   243,   244,   245,   246,   247,   248,   249,   250,
-   251,   252,   253,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-   271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
-   281,   282,    -1,     3,   285,     5,     6,     7,     8,    -1,
-    10,    11,    12,    -1,    14,    -1,    16,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    -1,    28,    29,
-    30,    31,    32,    33,    -1,    35,    36,    37,    38,    39,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,
-    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,
-   140,    -1,   142,    -1,   144,   145,    -1,    -1,    -1,    -1,
-   150,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,
-    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
-    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,
-   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,
-   220,   221,   222,   223,   224,    -1,   226,   227,   228,    -1,
-    -1,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,
-    -1,   251,   252,    -1,   254,    -1,   256,    -1,   258,   259,
-   260,   261,   262,    -1,   264,   265,   266,   267,   268,    -1,
-   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,
-    -1,   281,   282,    -1,     3,   285,     5,     6,     7,     8,
-    -1,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,
-    -1,    -1,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-    -1,    -1,   161,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,
-    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,    -1,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-    -1,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,    -1,    -1,   285,     3,     4,     5,
-     6,     7,     8,     9,    10,    11,    12,    -1,    14,    -1,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    -1,    28,    29,    30,    31,    32,    33,    -1,    35,
-    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
-    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,
-    -1,    -1,   138,   139,   140,   141,    -1,    -1,    -1,   145,
-    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,
-   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,
-    -1,   187,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,
-   206,   207,   208,    -1,   210,   211,   212,    -1,   214,   215,
-    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,
-   226,   227,   228,    -1,    -1,   231,   232,   233,   234,   235,
-   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,
-   246,   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,
-   256,    -1,   258,   259,   260,   261,   262,    -1,   264,   265,
-   266,   267,   268,    -1,   270,    -1,   272,   273,   274,   275,
-   276,    -1,    -1,   279,    -1,   281,   282,    -1,     3,   285,
-     5,     6,     7,     8,    -1,    10,    11,    12,    -1,    14,
-    -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    -1,    28,    29,    30,    31,    32,    33,    -1,
-    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    94,
-    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-    -1,    -1,    -1,   138,   139,   140,    -1,    -1,    -1,    -1,
-   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,
-    -1,   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
-   205,   206,   207,   208,    -1,   210,   211,   212,    -1,   214,
-   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,
-    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
-   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,
-    -1,   246,   247,   248,    -1,   250,   251,   252,    -1,   254,
-    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,   264,
-   265,   266,   267,   268,    -1,   270,    -1,   272,   273,   274,
-   275,   276,    -1,    -1,   279,    -1,   281,   282,    -1,     3,
-   285,     5,     6,     7,     8,    -1,    10,    11,    12,    -1,
-    14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
-    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    94,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,
-    -1,    -1,    -1,    -1,   138,   139,   140,    -1,    -1,    -1,
-    -1,   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,
-   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,
-    -1,   165,   166,    -1,   168,    -1,    -1,    -1,   172,   173,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183,
-   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,
-   204,   205,   206,   207,   208,    -1,   210,   211,   212,    -1,
-   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,   223,
-   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,   233,
-   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,    -1,
-   244,    -1,   246,   247,   248,    -1,    -1,   251,   252,    -1,
-   254,    -1,   256,    -1,   258,   259,   260,   261,   262,    -1,
-   264,   265,   266,   267,   268,    -1,   270,    -1,   272,   273,
-   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,    -1,
-     3,   285,     5,     6,     7,     8,    -1,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,   132,
-    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,    -1,
-    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,   151,    -1,
-   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,
-   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
-   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,
-   183,   184,    -1,    -1,   187,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,   204,   205,   206,   207,   208,    -1,   210,   211,   212,
-    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,   222,
-   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,   232,
-   233,   234,   235,   236,   237,   238,   239,    -1,    -1,    -1,
-    -1,   244,    -1,   246,   247,   248,    -1,    -1,   251,   252,
-    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,   262,
-    -1,   264,   265,   266,   267,   268,    -1,   270,    -1,   272,
-   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,   282,
-    -1,     3,   285,     5,     6,     7,     8,    -1,    10,    11,
-    12,    -1,    14,    -1,    16,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    -1,    28,    29,    30,    31,
-    32,    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,
-    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,   101,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,
-    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   131,
-   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,    -1,
-    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,   151,
-    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
-   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,
-   182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   203,   204,   205,   206,   207,   208,    -1,   210,   211,
-   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,   221,
-   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,   231,
-   232,   233,   234,   235,   236,   237,   238,   239,    -1,    -1,
-    -1,    -1,   244,    -1,   246,   247,   248,    -1,    -1,   251,
-   252,    -1,   254,    -1,   256,    -1,   258,   259,   260,   261,
-   262,    -1,   264,   265,   266,   267,   268,    -1,   270,    -1,
-   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,   281,
-   282,    -1,     3,   285,     5,     6,     7,     8,    -1,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,   140,
-    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,
-   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,    -1,
-    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,   210,
-   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,   220,
-   221,   222,   223,   224,    -1,   226,   227,   228,    -1,    -1,
-   231,   232,   233,   234,   235,   236,   237,   238,   239,    -1,
-    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,    -1,
-   251,   252,   253,   254,    -1,   256,    -1,   258,   259,   260,
-   261,   262,    -1,   264,   265,   266,   267,   268,    -1,   270,
-    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,    -1,
-   281,   282,    -1,     3,   285,     5,     6,     7,     8,    -1,
-    10,    11,    12,    -1,    14,    -1,    16,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    -1,    28,    29,
-    30,    31,    32,    33,    -1,    35,    36,    37,    38,    39,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
-    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,   139,
-   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,
-    -1,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,    -1,
-    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,    -1,
-   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,    -1,
-   220,   221,   222,   223,   224,    -1,   226,   227,   228,    -1,
-    -1,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,    -1,
-    -1,   251,   252,   253,   254,    -1,   256,    -1,   258,   259,
-   260,   261,   262,    -1,   264,   265,   266,   267,   268,    -1,
-   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,   279,
-    -1,   281,   282,    -1,     3,   285,     5,     6,     7,     8,
-    -1,    10,    11,    12,    -1,    14,    -1,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    -1,    28,
-    29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
-    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
-    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,   138,
-   139,   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,
-    -1,    -1,   151,    -1,   153,   154,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,   168,
-    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,   208,
-    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,    -1,
-    -1,   220,   221,   222,   223,   224,    -1,   226,   227,   228,
-    -1,    -1,   231,   232,   233,   234,   235,   236,   237,   238,
-   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,   248,
-    -1,    -1,   251,   252,    -1,   254,    -1,   256,    -1,   258,
-   259,   260,   261,   262,    -1,   264,   265,   266,   267,   268,
-    -1,   270,    -1,   272,   273,   274,   275,   276,    -1,    -1,
-   279,    -1,   281,   282,    -1,     3,   285,     5,     6,     7,
-     8,    -1,    10,    11,    12,    -1,    14,    -1,    16,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
-    28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
-    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
-    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,    -1,
-   138,   139,   140,    -1,    -1,    -1,    -1,   145,    -1,    -1,
-    -1,    -1,    -1,   151,    -1,   153,   154,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,    -1,
-   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,   207,
-   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,   217,
-    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,   227,
-   228,    -1,    -1,   231,   232,   233,   234,   235,   236,   237,
-   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,   247,
-   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,    -1,
-   258,   259,   260,   261,   262,    -1,   264,   265,   266,   267,
-   268,    -1,   270,    -1,   272,   273,   274,   275,   276,    -1,
-    -1,   279,    -1,   281,   282,    -1,     3,   285,     5,     6,
-     7,     8,    -1,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,    -1,
-    -1,   138,   139,   140,    -1,    -1,    -1,    -1,   145,    -1,
-    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,   166,
-    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,   206,
-   207,   208,    -1,   210,   211,   212,    -1,   214,   215,    -1,
-   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,   226,
-   227,   228,    -1,    -1,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,   246,
-   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,   256,
-    -1,   258,   259,   260,   261,   262,    -1,   264,   265,   266,
-   267,   268,    -1,   270,    -1,   272,   273,   274,   275,   276,
-    -1,    -1,   279,    -1,   281,   282,    -1,     3,   285,     5,
-     6,     7,     8,    -1,    10,    11,    12,    -1,    14,    -1,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    -1,    28,    29,    30,    31,    32,    33,    -1,    35,
-    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
-    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,    -1,
-    -1,    -1,   138,   139,   140,    -1,    -1,    -1,    -1,   145,
-    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,
-   166,    -1,   168,    -1,    -1,    -1,   172,   173,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   181,   182,   183,   184,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,   205,
-   206,   207,   208,    -1,   210,   211,   212,    -1,   214,   215,
-    -1,   217,    -1,    -1,   220,   221,   222,   223,   224,    -1,
-   226,   227,   228,    -1,    -1,   231,   232,   233,   234,   235,
-   236,   237,   238,   239,    -1,    -1,    -1,    -1,   244,    -1,
-   246,   247,   248,    -1,    -1,   251,   252,    -1,   254,    -1,
-   256,    -1,   258,   259,   260,   261,   262,    -1,   264,   265,
-   266,   267,   268,    -1,   270,    -1,   272,   273,   274,   275,
-   276,    -1,    -1,   279,    -1,   281,   282,    -1,    -1,   285,
-     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-    -1,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
-    33,    -1,    35,    36,    37,    38,    39,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,   101,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-    -1,    -1,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   139,   140,    -1,   142,
-    -1,   144,    -1,    -1,    -1,    -1,    -1,   150,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
-   203,    -1,    -1,    -1,    -1,   208,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    -1,    14,    -1,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    -1,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
-    37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   267,    -1,   269,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   282,
-    77,    78,   285,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    -1,
-    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   139,   140,    -1,   142,    -1,   144,    -1,    -1,
-    -1,    -1,    -1,   150,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   181,   182,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,
-    -1,    -1,    -1,    -1,    -1,    -1,   203,    -1,    -1,    -1,
-    -1,   208,     3,     4,     5,     6,     7,     8,     9,    10,
-    11,    12,    -1,    14,    -1,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
-    31,    32,    33,    -1,    35,    36,    37,    38,    39,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   269,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   282,    77,    78,   285,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
-   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-    -1,    -1,    -1,    -1,    -1,   126,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,   140,
-    -1,   142,    -1,   144,    -1,    -1,    -1,    -1,    -1,   150,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   181,   182,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    -1,   203,    -1,    -1,    -1,    -1,   208,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   282,    -1,    -1,   285
-};
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/share/misc/bison.simple"
-
-/* Skeleton output parser for bison,
-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-#ifndef alloca
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
-#include <alloca.h>
-#else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
-#include <malloc.h>
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-#include <malloc.h>
- #pragma alloca
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
-#endif /* __hpux */
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc.  */
-#endif /* not GNU C.  */
-#endif /* alloca not defined.  */
-
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
-
-/* Note: there must be only one dollar sign in this file.
-   It is replaced by the list of actions, each action
-   as one case of the switch.  */
-
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
-#define YYEOF          0
-#define YYACCEPT       return(0)
-#define YYABORT        return(1)
-#define YYERROR                goto yyerrlab1
-/* Like YYERROR except do call yyerror.
-   This remains here temporarily to ease the
-   transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
-#define YYFAIL         goto yyerrlab
-#define YYRECOVERING()  (!!yyerrstatus)
-#define YYBACKUP(token, value) \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    { yychar = (token), yylval = (value);                      \
-      yychar1 = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK;                                              \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    { yyerror ("syntax error: cannot back up"); YYERROR; }     \
-while (0)
-
-#define YYTERROR       1
-#define YYERRCODE      256
-
-#ifndef YYPURE
-#define YYLEX          yylex()
-#endif
-
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX          yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX          yylex(&yylval, &yylloc)
-#endif
-#else /* not YYLSP_NEEDED */
-#ifdef YYLEX_PARAM
-#define YYLEX          yylex(&yylval, YYLEX_PARAM)
-#else
-#define YYLEX          yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
-#endif
-
-/* If nonreentrant, generate the variables here */
-
-#ifndef YYPURE
-
-int    yychar;                 /*  the lookahead symbol                */
-YYSTYPE        yylval;                 /*  the semantic value of the           */
-                               /*  lookahead symbol                    */
-
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc;                        /*  location data for the lookahead     */
-                               /*  symbol                              */
-#endif
-
-int yynerrs;                   /*  number of parse errors so far       */
-#endif  /* not YYPURE */
-
-#if YYDEBUG != 0
-int yydebug;                   /*  nonzero means print parse trace     */
-/* Since this is uninitialized, it does not stop multiple parsers
-   from coexisting.  */
-#endif
-
-/*  YYINITDEPTH indicates the initial size of the parser's stacks      */
-
-#ifndef        YYINITDEPTH
-#define YYINITDEPTH 200
-#endif
-
-/*  YYMAXDEPTH is the maximum size the stacks can grow to
-    (effective only if the built-in stack extension method is used).  */
-
-#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
-#endif
-
-#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
-#endif
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-int yyparse (void);
-#endif
-\f
-#if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
-#define __yy_memcpy(TO,FROM,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
-#else                          /* not GNU C or C++ */
-#ifndef __cplusplus
-
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (to, from, count)
-     char *to;
-     char *from;
-     int count;
-{
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
-
-  while (i-- > 0)
-    *t++ = *f++;
-}
-
-#else /* __cplusplus */
-
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (char *to, char *from, int count)
-{
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
-
-  while (i-- > 0)
-    *t++ = *f++;
-}
-
-#endif
-#endif
-\f
-#line 196 "/usr/share/misc/bison.simple"
-
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
-
-#ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
-
-int
-yyparse(YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
-{
-  register int yystate;
-  register int yyn;
-  register short *yyssp;
-  register YYSTYPE *yyvsp;
-  int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
-  int yychar1 = 0;             /*  lookahead token as an internal (translated) token number */
-
-  short        yyssa[YYINITDEPTH];     /*  the state stack                     */
-  YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
-
-  short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
-  YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
-
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-
-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-#define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
-
-  int yystacksize = YYINITDEPTH;
-
-#ifdef YYPURE
-  int yychar;
-  YYSTYPE yylval;
-  int yynerrs;
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylloc;
-#endif
-#endif
-
-  YYSTYPE yyval;               /*  the variable used to return         */
-                               /*  semantic values from the action     */
-                               /*  routines                            */
-
-  int yylen;
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Starting parse\n");
-#endif
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-
-  yyssp = yyss - 1;
-  yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
-  yylsp = yyls;
-#endif
-
-/* Push a new state, which is found in  yystate  .  */
-/* In all cases, when you get here, the value and location stacks
-   have just been pushed. so pushing a state here evens the stacks.  */
-yynewstate:
-
-  *++yyssp = yystate;
-
-  if (yyssp >= yyss + yystacksize - 1)
-    {
-      /* Give user a chance to reallocate the stack */
-      /* Use copies of these so that the &'s don't force the real ones into memory. */
-      YYSTYPE *yyvs1 = yyvs;
-      short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
-      YYLTYPE *yyls1 = yyls;
-#endif
-
-      /* Get the current used size of the three stacks, in elements.  */
-      int size = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      /* Each stack pointer address is followed by the size of
-        the data in use in that stack, in bytes.  */
-#ifdef YYLSP_NEEDED
-      /* This used to be a conditional around just the two extra args,
-        but that might be undefined if yyoverflow is a macro.  */
-      yyoverflow("parser stack overflow",
-                &yyss1, size * sizeof (*yyssp),
-                &yyvs1, size * sizeof (*yyvsp),
-                &yyls1, size * sizeof (*yylsp),
-                &yystacksize);
-#else
-      yyoverflow("parser stack overflow",
-                &yyss1, size * sizeof (*yyssp),
-                &yyvs1, size * sizeof (*yyvsp),
-                &yystacksize);
-#endif
-
-      yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
-      yyls = yyls1;
-#endif
-#else /* no yyoverflow */
-      /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
-       {
-         yyerror("parser stack overflow");
-         return 2;
-       }
-      yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
-       yystacksize = YYMAXDEPTH;
-      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
-      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
-#endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + size - 1;
-      yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
-      yylsp = yyls + size - 1;
-#endif
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
-
-      if (yyssp >= yyss + yystacksize - 1)
-       YYABORT;
-    }
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Entering state %d\n", yystate);
-#endif
-
-  goto yybackup;
- yybackup:
-
-/* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
-/* yyresume: */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
-  if (yychar == YYEMPTY)
-    {
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Reading a token: ");
-#endif
-      yychar = YYLEX;
-    }
-
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
-    {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Now at end of input.\n");
-#endif
-    }
-  else
-    {
-      yychar1 = YYTRANSLATE(yychar);
-
-#if YYDEBUG != 0
-      if (yydebug)
-       {
-         fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise meaning
-            of a token, for further debugging info.  */
-#ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-#endif
-         fprintf (stderr, ")\n");
-       }
-#endif
-    }
-
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
-    goto yydefault;
-
-  yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-  else if (yyn == 0)
-    goto yyerrlab;
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-  /* Shift the lookahead token.  */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
-
-  /* Discard the token being shifted unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
-
-  *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
-
-  /* count tokens shifted since error; after three, turn off error status.  */
-  if (yyerrstatus) yyerrstatus--;
-
-  yystate = yyn;
-  goto yynewstate;
-
-/* Do the default action for the current state.  */
-yydefault:
-
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-
-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
-yyreduce:
-  yylen = yyr2[yyn];
-  if (yylen > 0)
-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      int i;
-
-      fprintf (stderr, "Reducing via rule %d (line %d), ",
-              yyn, yyrline[yyn]);
-
-      /* Print the symbols being reduced, and their result.  */
-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
-       fprintf (stderr, "%s ", yytname[yyrhs[i]]);
-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
-
-
-  switch (yyn) {
-
-case 4:
-#line 860 "preproc.y"
-{ connection = NULL; ;
-    break;}
-case 7:
-#line 863 "preproc.y"
-{ fprintf(yyout, "%s", yyvsp[0].str); free(yyvsp[0].str); ;
-    break;}
-case 8:
-#line 864 "preproc.y"
-{ fprintf(yyout, "%s", yyvsp[0].str); free(yyvsp[0].str); ;
-    break;}
-case 9:
-#line 865 "preproc.y"
-{ fputs(yyvsp[0].str, yyout); free(yyvsp[0].str); ;
-    break;}
-case 10:
-#line 866 "preproc.y"
-{ fputs(yyvsp[0].str, yyout); free(yyvsp[0].str); ;
-    break;}
-case 11:
-#line 868 "preproc.y"
-{ connection = yyvsp[0].str; ;
-    break;}
-case 12:
-#line 870 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 13:
-#line 871 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 14:
-#line 872 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 15:
-#line 873 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 16:
-#line 874 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 17:
-#line 875 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 18:
-#line 876 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 19:
-#line 877 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 20:
-#line 878 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 21:
-#line 879 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 22:
-#line 880 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 23:
-#line 881 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 24:
-#line 882 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 25:
-#line 883 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 26:
-#line 884 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 27:
-#line 885 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 28:
-#line 886 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 29:
-#line 887 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 30:
-#line 888 "preproc.y"
-{ output_statement(yyvsp[0].str, 1); ;
-    break;}
-case 31:
-#line 889 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 32:
-#line 890 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 33:
-#line 891 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 34:
-#line 892 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 35:
-#line 893 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 36:
-#line 894 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 37:
-#line 895 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 38:
-#line 896 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 39:
-#line 897 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 40:
-#line 898 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 41:
-#line 899 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 42:
-#line 900 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 43:
-#line 901 "preproc.y"
-{
-                                               if (strncmp(yyvsp[0].str, "/* " , sizeof("/* ")-1) == 0)
-                                                       output_simple_statement(yyvsp[0].str);
-                                               else
-                                                       output_statement(yyvsp[0].str, 1);
-                                       ;
-    break;}
-case 44:
-#line 907 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 45:
-#line 908 "preproc.y"
-{
-                                               fprintf(yyout, "{ ECPGtrans(__LINE__, %s, \"%s\");", connection ? connection : "NULL", yyvsp[0].str);
-                                               whenever_action(2);
-                                               free(yyvsp[0].str);
-                                       ;
-    break;}
-case 46:
-#line 913 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 47:
-#line 914 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 48:
-#line 915 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 49:
-#line 916 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 50:
-#line 917 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 51:
-#line 918 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 52:
-#line 919 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 53:
-#line 920 "preproc.y"
-{ output_statement(yyvsp[0].str, 0); ;
-    break;}
-case 54:
-#line 921 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for connect statement.\n");
-
-                                               fprintf(yyout, "{ ECPGconnect(__LINE__, %s, %d);", yyvsp[0].str, autocommit);
-                                               whenever_action(2);
-                                               free(yyvsp[0].str);
-                                       ;
-    break;}
-case 55:
-#line 929 "preproc.y"
-{
-                                               output_simple_statement(yyvsp[0].str);
-                                       ;
-    break;}
-case 56:
-#line 932 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for connect statement.\n");
-
-                                               fputc('{', yyout);
-                                               fputs(yyvsp[0].str, yyout);
-                                               whenever_action(2);
-                                               free(yyvsp[0].str);
-                                       ;
-    break;}
-case 57:
-#line 941 "preproc.y"
-{
-                                               output_simple_statement(yyvsp[0].str);
-                                       ;
-    break;}
-case 58:
-#line 944 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for disconnect statement.\n");
-
-                                               fprintf(yyout, "{ ECPGdisconnect(__LINE__, \"%s\");", yyvsp[0].str); 
-                                               whenever_action(2);
-                                               free(yyvsp[0].str);
-                                       ;
-    break;}
-case 59:
-#line 952 "preproc.y"
-{
-                                               output_statement(yyvsp[0].str, 0);
-                                       ;
-    break;}
-case 60:
-#line 955 "preproc.y"
-{
-                                               fprintf(yyout, "{ ECPGdeallocate(__LINE__, %s, \"%s\");", connection ? connection : "NULL", yyvsp[0].str); 
-                                               whenever_action(2);
-                                               free(yyvsp[0].str);
-                                       ;
-    break;}
-case 61:
-#line 960 "preproc.y"
-{      
-                                               struct cursor *ptr;
-                                                
-                                               for (ptr = cur; ptr != NULL; ptr=ptr->next)
-                                               {
-                                                      if (strcmp(ptr->name, yyvsp[0].str) == 0)
-                                                               break;
-                                               }
-                                               
-                                               if (ptr == NULL)
-                                               {
-                                                       sprintf(errortext, "trying to open undeclared cursor %s\n", yyvsp[0].str);
-                                                       yyerror(errortext);
-                                               }
-                  
-                                               fprintf(yyout, "{ ECPGdo(__LINE__, %s, \"%s\",", ptr->connection ? ptr->connection : "NULL", ptr->command);
-                                               /* dump variables to C file*/
-                                               dump_variables(ptr->argsinsert, 0);
-                                               dump_variables(argsinsert, 0);
-                                               fputs("ECPGt_EOIT, ", yyout);
-                                               dump_variables(ptr->argsresult, 0);
-                                               fputs("ECPGt_EORT);", yyout);
-                                               whenever_action(2);
-                                               free(yyvsp[0].str);
-                                       ;
-    break;}
-case 62:
-#line 985 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for set connection statement.\n");
-
-                                               fprintf(yyout, "{ ECPGprepare(__LINE__, %s);", yyvsp[0].str); 
-                                               whenever_action(2);
-                                               free(yyvsp[0].str);
-                                       ;
-    break;}
-case 63:
-#line 993 "preproc.y"
-{ /* output already done */ ;
-    break;}
-case 64:
-#line 994 "preproc.y"
-{
-                                               fprintf(yyout, "{ ECPGsetcommit(__LINE__, \"%s\", %s);", yyvsp[0].str, connection ? connection : "NULL");
-                                               whenever_action(2);
-                                                       free(yyvsp[0].str);
-                                       ;
-    break;}
-case 65:
-#line 999 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for set connection statement.\n");
-
-                                               fprintf(yyout, "{ ECPGsetconn(__LINE__, %s);", yyvsp[0].str);
-                                               whenever_action(2);
-                                                       free(yyvsp[0].str);
-                                       ;
-    break;}
-case 66:
-#line 1007 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for typedef statement.\n");
-
-                                               output_simple_statement(yyvsp[0].str);
-                                       ;
-    break;}
-case 67:
-#line 1013 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for var statement.\n");
-
-                                               output_simple_statement(yyvsp[0].str);
-                                       ;
-    break;}
-case 68:
-#line 1019 "preproc.y"
-{
-                                               if (connection)
-                                                       yyerror("no at option for whenever statement.\n");
-
-                                               output_simple_statement(yyvsp[0].str);
-                                       ;
-    break;}
-case 69:
-#line 1041 "preproc.y"
-{
-                                       yyval.str = cat3_str(cat5_str(make1_str("create user"), yyvsp[-5].str, yyvsp[-4].str, yyvsp[-3].str, yyvsp[-2].str), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 70:
-#line 1055 "preproc.y"
-{
-                                       yyval.str = cat3_str(cat5_str(make1_str("alter user"), yyvsp[-5].str, yyvsp[-4].str, yyvsp[-3].str, yyvsp[-2].str), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 71:
-#line 1068 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("drop user"), yyvsp[0].str);
-                               ;
-    break;}
-case 72:
-#line 1073 "preproc.y"
-{ yyval.str = cat2_str(make1_str("with password") , yyvsp[0].str); ;
-    break;}
-case 73:
-#line 1074 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 74:
-#line 1078 "preproc.y"
-{
-                                       yyval.str = make1_str("createdb");
-                               ;
-    break;}
-case 75:
-#line 1082 "preproc.y"
-{
-                                       yyval.str = make1_str("nocreatedb");
-                               ;
-    break;}
-case 76:
-#line 1085 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 77:
-#line 1089 "preproc.y"
-{
-                                       yyval.str = make1_str("createuser");
-                               ;
-    break;}
-case 78:
-#line 1093 "preproc.y"
-{
-                                       yyval.str = make1_str("nocreateuser");
-                               ;
-    break;}
-case 79:
-#line 1096 "preproc.y"
-{ yyval.str = NULL; ;
-    break;}
-case 80:
-#line 1100 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                               ;
-    break;}
-case 81:
-#line 1104 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 82:
-#line 1109 "preproc.y"
-{ yyval.str = cat2_str(make1_str("in group"), yyvsp[0].str); ;
-    break;}
-case 83:
-#line 1110 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 84:
-#line 1113 "preproc.y"
-{ yyval.str = cat2_str(make1_str("valid until"), yyvsp[0].str); ;
-    break;}
-case 85:
-#line 1114 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 86:
-#line 1127 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("set"), yyvsp[-2].str, make1_str("to"), yyvsp[0].str);
-                               ;
-    break;}
-case 87:
-#line 1131 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("set"), yyvsp[-2].str, make1_str("="), yyvsp[0].str);
-                               ;
-    break;}
-case 88:
-#line 1135 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("set time zone"), yyvsp[0].str);
-                               ;
-    break;}
-case 89:
-#line 1139 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("set transaction isolation level"), yyvsp[0].str);
-                               ;
-    break;}
-case 90:
-#line 1143 "preproc.y"
-{
-#ifdef MB
-                                       yyval.str = cat2_str(make1_str("set names"), yyvsp[0].str);
-#else
-                                        yyerror("SET NAMES is not supported");
-#endif
-                                ;
-    break;}
-case 91:
-#line 1152 "preproc.y"
-{ yyval.str = make1_str("read committed"); ;
-    break;}
-case 92:
-#line 1153 "preproc.y"
-{ yyval.str = make1_str("serializable"); ;
-    break;}
-case 93:
-#line 1157 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 94:
-#line 1158 "preproc.y"
-{ yyval.str = make1_str("default"); ;
-    break;}
-case 95:
-#line 1161 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 96:
-#line 1162 "preproc.y"
-{ yyval.str = make1_str("default"); ;
-    break;}
-case 97:
-#line 1163 "preproc.y"
-{ yyval.str = make1_str("local"); ;
-    break;}
-case 98:
-#line 1167 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("show"), yyvsp[0].str);
-                               ;
-    break;}
-case 99:
-#line 1171 "preproc.y"
-{
-                                       yyval.str = make1_str("show time zone");
-                               ;
-    break;}
-case 100:
-#line 1175 "preproc.y"
-{
-                                       yyval.str = make1_str("show transaction isolation level");
-                               ;
-    break;}
-case 101:
-#line 1181 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("reset"), yyvsp[0].str);
-                               ;
-    break;}
-case 102:
-#line 1185 "preproc.y"
-{
-                                       yyval.str = make1_str("reset time zone");
-                               ;
-    break;}
-case 103:
-#line 1189 "preproc.y"
-{
-                                       yyval.str = make1_str("reset transaction isolation level");
-                               ;
-    break;}
-case 104:
-#line 1203 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("alter table"), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 105:
-#line 1209 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("add"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 106:
-#line 1213 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("add("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 107:
-#line 1217 "preproc.y"
-{      yyerror("ALTER TABLE/DROP COLUMN not yet implemented"); ;
-    break;}
-case 108:
-#line 1219 "preproc.y"
-{      yyerror("ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented"); ;
-    break;}
-case 109:
-#line 1221 "preproc.y"
-{      yyerror("ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented"); ;
-    break;}
-case 110:
-#line 1223 "preproc.y"
-{      yyerror("ALTER TABLE/ADD CONSTRAINT not yet implemented"); ;
-    break;}
-case 111:
-#line 1234 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("close"), yyvsp[0].str);
-                               ;
-    break;}
-case 112:
-#line 1249 "preproc.y"
-{
-                                       yyval.str = cat3_str(cat5_str(make1_str("copy"), yyvsp[-5].str, yyvsp[-4].str, yyvsp[-3].str, yyvsp[-2].str), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 113:
-#line 1255 "preproc.y"
-{ yyval.str = make1_str("to"); ;
-    break;}
-case 114:
-#line 1257 "preproc.y"
-{ yyval.str = make1_str("from"); ;
-    break;}
-case 115:
-#line 1265 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 116:
-#line 1266 "preproc.y"
-{ yyval.str = make1_str("stdin"); ;
-    break;}
-case 117:
-#line 1267 "preproc.y"
-{ yyval.str = make1_str("stdout"); ;
-    break;}
-case 118:
-#line 1270 "preproc.y"
-{ yyval.str = make1_str("binary"); ;
-    break;}
-case 119:
-#line 1271 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 120:
-#line 1274 "preproc.y"
-{ yyval.str = make1_str("with oids"); ;
-    break;}
-case 121:
-#line 1275 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 122:
-#line 1281 "preproc.y"
-{ yyval.str = cat2_str(make1_str("using delimiters"), yyvsp[0].str); ;
-    break;}
-case 123:
-#line 1282 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 124:
-#line 1296 "preproc.y"
-{
-                                       yyval.str = cat3_str(cat4_str(make1_str("create"), yyvsp[-6].str, make1_str("table"), yyvsp[-4].str), make3_str(make1_str("("), yyvsp[-2].str, make1_str(")")), yyvsp[0].str);
-                               ;
-    break;}
-case 125:
-#line 1301 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 126:
-#line 1302 "preproc.y"
-{ yyval.str = cat2_str(yyvsp[-1].str,yyvsp[0].str); ;
-    break;}
-case 127:
-#line 1305 "preproc.y"
-{ yyval.str = make1_str("temp"); ;
-    break;}
-case 128:
-#line 1306 "preproc.y"
-{ yyval.str = make1_str("temporary"); ;
-    break;}
-case 129:
-#line 1307 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 130:
-#line 1311 "preproc.y"
-{
-                    yyerror("GLOBAL TEMPORARY TABLE is not currently supported");
-                    yyval.str = make1_str("global");
-               ;
-    break;}
-case 131:
-#line 1315 "preproc.y"
-{ yyval.str = make1_str("local"); ;
-    break;}
-case 132:
-#line 1320 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                               ;
-    break;}
-case 133:
-#line 1324 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 134:
-#line 1327 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 135:
-#line 1330 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 136:
-#line 1331 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 137:
-#line 1335 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 138:
-#line 1339 "preproc.y"
-{
-                       yyval.str = make3_str(yyvsp[-2].str, make1_str(" serial "), yyvsp[0].str);
-               ;
-    break;}
-case 139:
-#line 1344 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 140:
-#line 1345 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 141:
-#line 1348 "preproc.y"
-{ yyval.str = cat2_str(yyvsp[-1].str,yyvsp[0].str); ;
-    break;}
-case 142:
-#line 1349 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 143:
-#line 1353 "preproc.y"
-{
-                       yyval.str = make1_str("primary key");
-                ;
-    break;}
-case 144:
-#line 1357 "preproc.y"
-{
-                       yyval.str = make1_str("");
-               ;
-    break;}
-case 145:
-#line 1364 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("constraint"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 146:
-#line 1368 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 147:
-#line 1382 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("check("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 148:
-#line 1386 "preproc.y"
-{
-                                       yyval.str = make1_str("default null");
-                               ;
-    break;}
-case 149:
-#line 1390 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("default"), yyvsp[0].str);
-                               ;
-    break;}
-case 150:
-#line 1394 "preproc.y"
-{
-                                       yyval.str = make1_str("not null");
-                               ;
-    break;}
-case 151:
-#line 1398 "preproc.y"
-{
-                                       yyval.str = make1_str("unique");
-                               ;
-    break;}
-case 152:
-#line 1402 "preproc.y"
-{
-                                       yyval.str = make1_str("primary key");
-                               ;
-    break;}
-case 153:
-#line 1406 "preproc.y"
-{
-                                       fprintf(stderr, "CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented");
-                                       yyval.str = make1_str("");
-                               ;
-    break;}
-case 154:
-#line 1413 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                               ;
-    break;}
-case 155:
-#line 1417 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 156:
-#line 1431 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 157:
-#line 1433 "preproc.y"
-{      yyval.str = cat2_str(make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 158:
-#line 1435 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("+"), yyvsp[0].str); ;
-    break;}
-case 159:
-#line 1437 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 160:
-#line 1439 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("/"), yyvsp[0].str); ;
-    break;}
-case 161:
-#line 1441 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 162:
-#line 1443 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("*"), yyvsp[0].str); ;
-    break;}
-case 163:
-#line 1445 "preproc.y"
-{      yyerror("boolean expressions not supported in DEFAULT"); ;
-    break;}
-case 164:
-#line 1447 "preproc.y"
-{      yyerror("boolean expressions not supported in DEFAULT"); ;
-    break;}
-case 165:
-#line 1449 "preproc.y"
-{      yyerror("boolean expressions not supported in DEFAULT"); ;
-    break;}
-case 166:
-#line 1455 "preproc.y"
-{      yyval.str = cat2_str(make1_str(";"), yyvsp[0].str); ;
-    break;}
-case 167:
-#line 1457 "preproc.y"
-{      yyval.str = cat2_str(make1_str("|"), yyvsp[0].str); ;
-    break;}
-case 168:
-#line 1459 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("::"), yyvsp[0].str); ;
-    break;}
-case 169:
-#line 1461 "preproc.y"
-{
-                                       yyval.str = cat3_str(make2_str(make1_str("cast("), yyvsp[-3].str) , make1_str("as"), make2_str(yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 170:
-#line 1465 "preproc.y"
-{      yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 171:
-#line 1467 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-2].str, make1_str("()")); ;
-    break;}
-case 172:
-#line 1469 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-3].str, make3_str(make1_str("("), yyvsp[-1].str, make1_str(")"))); ;
-    break;}
-case 173:
-#line 1471 "preproc.y"
-{
-                                       if (!strcmp("<=", yyvsp[-1].str) || !strcmp(">=", yyvsp[-1].str))
-                                               yyerror("boolean expressions not supported in DEFAULT");
-                                       yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 174:
-#line 1477 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 175:
-#line 1479 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 176:
-#line 1482 "preproc.y"
-{      yyval.str = make1_str("current_date"); ;
-    break;}
-case 177:
-#line 1484 "preproc.y"
-{      yyval.str = make1_str("current_time"); ;
-    break;}
-case 178:
-#line 1486 "preproc.y"
-{
-                                       if (yyvsp[-1].str != 0)
-                                               fprintf(stderr, "CURRENT_TIME(%s) precision not implemented; zero used instead",yyvsp[-1].str);
-                                       yyval.str = "current_time";
-                               ;
-    break;}
-case 179:
-#line 1492 "preproc.y"
-{      yyval.str = make1_str("current_timestamp"); ;
-    break;}
-case 180:
-#line 1494 "preproc.y"
-{
-                                       if (yyvsp[-1].str != 0)
-                                               fprintf(stderr, "CURRENT_TIMESTAMP(%s) precision not implemented; zero used instead",yyvsp[-1].str);
-                                       yyval.str = "current_timestamp";
-                               ;
-    break;}
-case 181:
-#line 1500 "preproc.y"
-{      yyval.str = make1_str("current_user"); ;
-    break;}
-case 182:
-#line 1502 "preproc.y"
-{       yyval.str = make1_str("user"); ;
-    break;}
-case 183:
-#line 1510 "preproc.y"
-{
-                                               yyval.str = cat3_str(make1_str("constraint"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 184:
-#line 1514 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 185:
-#line 1518 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("check("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 186:
-#line 1522 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("unique("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 187:
-#line 1526 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("primary key("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 188:
-#line 1530 "preproc.y"
-{
-                                       fprintf(stderr, "CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented");
-                                       yyval.str = "";
-                               ;
-    break;}
-case 189:
-#line 1537 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                               ;
-    break;}
-case 190:
-#line 1541 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 191:
-#line 1547 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 192:
-#line 1549 "preproc.y"
-{      yyval.str = make1_str("null"); ;
-    break;}
-case 193:
-#line 1551 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 194:
-#line 1555 "preproc.y"
-{      yyval.str = cat2_str(make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 195:
-#line 1557 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("+"), yyvsp[0].str); ;
-    break;}
-case 196:
-#line 1559 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 197:
-#line 1561 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("/"), yyvsp[0].str); ;
-    break;}
-case 198:
-#line 1563 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 199:
-#line 1565 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("*"), yyvsp[0].str); ;
-    break;}
-case 200:
-#line 1567 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("="), yyvsp[0].str); ;
-    break;}
-case 201:
-#line 1569 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("<"), yyvsp[0].str); ;
-    break;}
-case 202:
-#line 1571 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(">"), yyvsp[0].str); ;
-    break;}
-case 203:
-#line 1577 "preproc.y"
-{      yyval.str = cat2_str(make1_str(";"), yyvsp[0].str); ;
-    break;}
-case 204:
-#line 1579 "preproc.y"
-{      yyval.str = cat2_str(make1_str("|"), yyvsp[0].str); ;
-    break;}
-case 205:
-#line 1581 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("::"), yyvsp[0].str);
-                               ;
-    break;}
-case 206:
-#line 1585 "preproc.y"
-{
-                                       yyval.str = cat3_str(make2_str(make1_str("cast("), yyvsp[-3].str), make1_str("as"), make2_str(yyvsp[-1].str, make1_str(")"))); 
-                               ;
-    break;}
-case 207:
-#line 1589 "preproc.y"
-{      yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 208:
-#line 1591 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-2].str, make1_str("()")); }
-                               ;
-    break;}
-case 209:
-#line 1595 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-3].str, make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 210:
-#line 1599 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 211:
-#line 1601 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("like"), yyvsp[0].str); ;
-    break;}
-case 212:
-#line 1603 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-3].str, make1_str("not like"), yyvsp[0].str); ;
-    break;}
-case 213:
-#line 1605 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("and"), yyvsp[0].str); ;
-    break;}
-case 214:
-#line 1607 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("or"), yyvsp[0].str); ;
-    break;}
-case 215:
-#line 1609 "preproc.y"
-{      yyval.str = cat2_str(make1_str("not"), yyvsp[0].str); ;
-    break;}
-case 216:
-#line 1611 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 217:
-#line 1613 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 218:
-#line 1615 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, make1_str("isnull")); ;
-    break;}
-case 219:
-#line 1617 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-2].str, make1_str("is null")); ;
-    break;}
-case 220:
-#line 1619 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, make1_str("notnull")); ;
-    break;}
-case 221:
-#line 1621 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not null")); ;
-    break;}
-case 222:
-#line 1623 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-2].str, make1_str("is true")); ;
-    break;}
-case 223:
-#line 1625 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-2].str, make1_str("is false")); ;
-    break;}
-case 224:
-#line 1627 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not true")); ;
-    break;}
-case 225:
-#line 1629 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not false")); ;
-    break;}
-case 226:
-#line 1631 "preproc.y"
-{      yyval.str = cat4_str(yyvsp[-4].str, make1_str("in ("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 227:
-#line 1633 "preproc.y"
-{      yyval.str = cat4_str(yyvsp[-5].str, make1_str("not in ("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 228:
-#line 1635 "preproc.y"
-{      yyval.str = cat5_str(yyvsp[-4].str, make1_str("between"), yyvsp[-2].str, make1_str("and"), yyvsp[0].str); ;
-    break;}
-case 229:
-#line 1637 "preproc.y"
-{      yyval.str = cat5_str(yyvsp[-5].str, make1_str("not between"), yyvsp[-2].str, make1_str("and"), yyvsp[0].str); ;
-    break;}
-case 230:
-#line 1640 "preproc.y"
-{
-               yyval.str = make3_str(yyvsp[-2].str, make1_str(", "), yyvsp[0].str);
-       ;
-    break;}
-case 231:
-#line 1644 "preproc.y"
-{
-               yyval.str = yyvsp[0].str;
-       ;
-    break;}
-case 232:
-#line 1649 "preproc.y"
-{
-               yyval.str = yyvsp[0].str;
-       ;
-    break;}
-case 233:
-#line 1653 "preproc.y"
-{ yyval.str = make1_str("match full"); ;
-    break;}
-case 234:
-#line 1654 "preproc.y"
-{ yyval.str = make1_str("match partial"); ;
-    break;}
-case 235:
-#line 1655 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 236:
-#line 1658 "preproc.y"
-{ yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 237:
-#line 1659 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 238:
-#line 1660 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 239:
-#line 1663 "preproc.y"
-{ yyval.str = cat2_str(make1_str("on delete"), yyvsp[0].str); ;
-    break;}
-case 240:
-#line 1664 "preproc.y"
-{ yyval.str = cat2_str(make1_str("on update"), yyvsp[0].str); ;
-    break;}
-case 241:
-#line 1667 "preproc.y"
-{ yyval.str = make1_str("no action"); ;
-    break;}
-case 242:
-#line 1668 "preproc.y"
-{ yyval.str = make1_str("cascade"); ;
-    break;}
-case 243:
-#line 1669 "preproc.y"
-{ yyval.str = make1_str("set default"); ;
-    break;}
-case 244:
-#line 1670 "preproc.y"
-{ yyval.str = make1_str("set null"); ;
-    break;}
-case 245:
-#line 1673 "preproc.y"
-{ yyval.str = make3_str(make1_str("inherits ("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 246:
-#line 1674 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 247:
-#line 1678 "preproc.y"
-{
-                       yyval.str = cat5_str(cat3_str(make1_str("create"), yyvsp[-5].str, make1_str("table")), yyvsp[-3].str, yyvsp[-2].str, make1_str("as"), yyvsp[0].str); 
-               ;
-    break;}
-case 248:
-#line 1683 "preproc.y"
-{ yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 249:
-#line 1684 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 250:
-#line 1687 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 251:
-#line 1688 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 252:
-#line 1691 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 253:
-#line 1702 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("create sequence"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 254:
-#line 1708 "preproc.y"
-{ yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 255:
-#line 1709 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 256:
-#line 1713 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("cache"), yyvsp[0].str);
-                               ;
-    break;}
-case 257:
-#line 1717 "preproc.y"
-{
-                                       yyval.str = make1_str("cycle");
-                               ;
-    break;}
-case 258:
-#line 1721 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("increment"), yyvsp[0].str);
-                               ;
-    break;}
-case 259:
-#line 1725 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("maxvalue"), yyvsp[0].str);
-                               ;
-    break;}
-case 260:
-#line 1729 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("minvalue"), yyvsp[0].str);
-                               ;
-    break;}
-case 261:
-#line 1733 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("start"), yyvsp[0].str);
-                               ;
-    break;}
-case 262:
-#line 1738 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 263:
-#line 1739 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 264:
-#line 1742 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 265:
-#line 1746 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("-"), yyvsp[0].str);
-                               ;
-    break;}
-case 266:
-#line 1753 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 267:
-#line 1757 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("-"), yyvsp[0].str);
-                               ;
-    break;}
-case 268:
-#line 1772 "preproc.y"
-{
-                               yyval.str = cat4_str(cat5_str(make1_str("create"), yyvsp[-7].str, make1_str("precedural language"), yyvsp[-4].str, make1_str("handler")), yyvsp[-2].str, make1_str("langcompiler"), yyvsp[0].str);
-                       ;
-    break;}
-case 269:
-#line 1777 "preproc.y"
-{ yyval.str = make1_str("trusted"); ;
-    break;}
-case 270:
-#line 1778 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 271:
-#line 1781 "preproc.y"
-{
-                               yyval.str = cat2_str(make1_str("drop procedural language"), yyvsp[0].str);
-                       ;
-    break;}
-case 272:
-#line 1797 "preproc.y"
-{
-                                       yyval.str = cat2_str(cat5_str(cat5_str(make1_str("create trigger"), yyvsp[-11].str, yyvsp[-10].str, yyvsp[-9].str, make1_str("on")), yyvsp[-7].str, yyvsp[-6].str, make1_str("execute procedure"), yyvsp[-3].str), make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 273:
-#line 1802 "preproc.y"
-{ yyval.str = make1_str("before"); ;
-    break;}
-case 274:
-#line 1803 "preproc.y"
-{ yyval.str = make1_str("after"); ;
-    break;}
-case 275:
-#line 1807 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 276:
-#line 1811 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("or"), yyvsp[0].str);
-                               ;
-    break;}
-case 277:
-#line 1815 "preproc.y"
-{
-                                       yyval.str = cat5_str(yyvsp[-4].str, make1_str("or"), yyvsp[-2].str, make1_str("or"), yyvsp[0].str);
-                               ;
-    break;}
-case 278:
-#line 1820 "preproc.y"
-{ yyval.str = make1_str("insert"); ;
-    break;}
-case 279:
-#line 1821 "preproc.y"
-{ yyval.str = make1_str("delete"); ;
-    break;}
-case 280:
-#line 1822 "preproc.y"
-{ yyval.str = make1_str("update"); ;
-    break;}
-case 281:
-#line 1826 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("for"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 282:
-#line 1831 "preproc.y"
-{ yyval.str = make1_str("each"); ;
-    break;}
-case 283:
-#line 1832 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 284:
-#line 1835 "preproc.y"
-{ yyval.str = make1_str("row"); ;
-    break;}
-case 285:
-#line 1836 "preproc.y"
-{ yyval.str = make1_str("statement"); ;
-    break;}
-case 286:
-#line 1840 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 287:
-#line 1842 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 288:
-#line 1844 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 289:
-#line 1848 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 290:
-#line 1852 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 291:
-#line 1855 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 292:
-#line 1856 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 293:
-#line 1860 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("drop trigger"), yyvsp[-2].str, make1_str("on"), yyvsp[0].str);
-                               ;
-    break;}
-case 294:
-#line 1873 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("create"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 295:
-#line 1879 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 296:
-#line 1884 "preproc.y"
-{ yyval.str = make1_str("operator"); ;
-    break;}
-case 297:
-#line 1885 "preproc.y"
-{ yyval.str = make1_str("type"); ;
-    break;}
-case 298:
-#line 1886 "preproc.y"
-{ yyval.str = make1_str("aggregate"); ;
-    break;}
-case 299:
-#line 1889 "preproc.y"
-{ yyval.str = make1_str("procedure"); ;
-    break;}
-case 300:
-#line 1890 "preproc.y"
-{ yyval.str = make1_str("join"); ;
-    break;}
-case 301:
-#line 1891 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 302:
-#line 1892 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 303:
-#line 1893 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 304:
-#line 1896 "preproc.y"
-{ yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 305:
-#line 1899 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 306:
-#line 1900 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 307:
-#line 1903 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("="), yyvsp[0].str);
-                               ;
-    break;}
-case 308:
-#line 1907 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 309:
-#line 1911 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("default ="), yyvsp[0].str);
-                               ;
-    break;}
-case 310:
-#line 1916 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 311:
-#line 1917 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 312:
-#line 1918 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 313:
-#line 1919 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 314:
-#line 1921 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("setof"), yyvsp[0].str);
-                               ;
-    break;}
-case 315:
-#line 1934 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("drop table"), yyvsp[0].str);
-                               ;
-    break;}
-case 316:
-#line 1938 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("drop sequence"), yyvsp[0].str);
-                               ;
-    break;}
-case 317:
-#line 1955 "preproc.y"
-{
-                                       if (strncmp(yyvsp[-4].str, "relative", strlen("relative")) == 0 && atol(yyvsp[-3].str) == 0L)
-                                               yyerror("FETCH/RELATIVE at current position is not supported");
-
-                                       yyval.str = cat4_str(make1_str("fetch"), yyvsp[-4].str, yyvsp[-3].str, yyvsp[-2].str);
-                               ;
-    break;}
-case 318:
-#line 1962 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("fetch"), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 319:
-#line 1967 "preproc.y"
-{ yyval.str = make1_str("forward"); ;
-    break;}
-case 320:
-#line 1968 "preproc.y"
-{ yyval.str = make1_str("backward"); ;
-    break;}
-case 321:
-#line 1969 "preproc.y"
-{ yyval.str = make1_str("relative"); ;
-    break;}
-case 322:
-#line 1971 "preproc.y"
-{
-                                       fprintf(stderr, "FETCH/ABSOLUTE not supported, using RELATIVE");
-                                       yyval.str = make1_str("absolute");
-                               ;
-    break;}
-case 323:
-#line 1975 "preproc.y"
-{ yyval.str = make1_str(""); /* default */ ;
-    break;}
-case 324:
-#line 1978 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 325:
-#line 1979 "preproc.y"
-{ yyval.str = make2_str(make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 326:
-#line 1980 "preproc.y"
-{ yyval.str = make1_str("all"); ;
-    break;}
-case 327:
-#line 1981 "preproc.y"
-{ yyval.str = make1_str("next"); ;
-    break;}
-case 328:
-#line 1982 "preproc.y"
-{ yyval.str = make1_str("prior"); ;
-    break;}
-case 329:
-#line 1983 "preproc.y"
-{ yyval.str = make1_str(""); /*default*/ ;
-    break;}
-case 330:
-#line 1986 "preproc.y"
-{ yyval.str = cat2_str(make1_str("in"), yyvsp[0].str); ;
-    break;}
-case 331:
-#line 1987 "preproc.y"
-{ yyval.str = cat2_str(make1_str("from"), yyvsp[0].str); ;
-    break;}
-case 332:
-#line 1989 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 333:
-#line 2001 "preproc.y"
-{
-                                       yyval.str = cat2_str(cat5_str(make1_str("grant"), yyvsp[-5].str, make1_str("on"), yyvsp[-3].str, make1_str("to")), yyvsp[-1].str);
-                               ;
-    break;}
-case 334:
-#line 2007 "preproc.y"
-{
-                                yyval.str = make1_str("all privileges");
-                               ;
-    break;}
-case 335:
-#line 2011 "preproc.y"
-{
-                                yyval.str = make1_str("all");
-                               ;
-    break;}
-case 336:
-#line 2015 "preproc.y"
-{
-                                yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 337:
-#line 2021 "preproc.y"
-{
-                                               yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 338:
-#line 2025 "preproc.y"
-{
-                                               yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                               ;
-    break;}
-case 339:
-#line 2031 "preproc.y"
-{
-                                               yyval.str = make1_str("select");
-                               ;
-    break;}
-case 340:
-#line 2035 "preproc.y"
-{
-                                               yyval.str = make1_str("insert");
-                               ;
-    break;}
-case 341:
-#line 2039 "preproc.y"
-{
-                                               yyval.str = make1_str("update");
-                               ;
-    break;}
-case 342:
-#line 2043 "preproc.y"
-{
-                                               yyval.str = make1_str("delete");
-                               ;
-    break;}
-case 343:
-#line 2047 "preproc.y"
-{
-                                               yyval.str = make1_str("rule");
-                               ;
-    break;}
-case 344:
-#line 2053 "preproc.y"
-{
-                                               yyval.str = make1_str("public");
-                               ;
-    break;}
-case 345:
-#line 2057 "preproc.y"
-{
-                                               yyval.str = cat2_str(make1_str("group"), yyvsp[0].str);
-                               ;
-    break;}
-case 346:
-#line 2061 "preproc.y"
-{
-                                               yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 347:
-#line 2067 "preproc.y"
-{
-                                       yyerror("WITH GRANT OPTION is not supported.  Only relation owners can set privileges");
-                                ;
-    break;}
-case 349:
-#line 2082 "preproc.y"
-{
-                                       yyval.str = cat2_str(cat5_str(make1_str("revoke"), yyvsp[-4].str, make1_str("on"), yyvsp[-2].str, make1_str("from")), yyvsp[0].str);
-                               ;
-    break;}
-case 350:
-#line 2101 "preproc.y"
-{
-                                       /* should check that access_method is valid,
-                                          etc ... but doesn't */
-                                       yyval.str = cat5_str(cat5_str(make1_str("create"), yyvsp[-9].str, make1_str("index"), yyvsp[-7].str, make1_str("on")), yyvsp[-5].str, yyvsp[-4].str, make3_str(make1_str("("), yyvsp[-2].str, make1_str(")")), yyvsp[0].str);
-                               ;
-    break;}
-case 351:
-#line 2108 "preproc.y"
-{ yyval.str = make1_str("unique"); ;
-    break;}
-case 352:
-#line 2109 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 353:
-#line 2112 "preproc.y"
-{ yyval.str = cat2_str(make1_str("using"), yyvsp[0].str); ;
-    break;}
-case 354:
-#line 2113 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 355:
-#line 2116 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 356:
-#line 2117 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 357:
-#line 2120 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 358:
-#line 2121 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 359:
-#line 2125 "preproc.y"
-{
-                                       yyval.str = cat4_str(yyvsp[-5].str, make3_str(make1_str("("), yyvsp[-3].str, ")"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 360:
-#line 2131 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 361:
-#line 2136 "preproc.y"
-{ yyval.str = cat2_str(make1_str(":"), yyvsp[0].str); ;
-    break;}
-case 362:
-#line 2137 "preproc.y"
-{ yyval.str = cat2_str(make1_str("for"), yyvsp[0].str); ;
-    break;}
-case 363:
-#line 2138 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 364:
-#line 2147 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 365:
-#line 2148 "preproc.y"
-{ yyval.str = cat2_str(make1_str("using"), yyvsp[0].str); ;
-    break;}
-case 366:
-#line 2149 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 367:
-#line 2160 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("extend index"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 368:
-#line 2197 "preproc.y"
-{
-                                       yyval.str = cat2_str(cat5_str(cat5_str(make1_str("create function"), yyvsp[-8].str, yyvsp[-7].str, make1_str("returns"), yyvsp[-5].str), yyvsp[-4].str, make1_str("as"), yyvsp[-2].str, make1_str("language")), yyvsp[0].str);
-                               ;
-    break;}
-case 369:
-#line 2201 "preproc.y"
-{ yyval.str = cat2_str(make1_str("with"), yyvsp[0].str); ;
-    break;}
-case 370:
-#line 2202 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 371:
-#line 2205 "preproc.y"
-{ yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 372:
-#line 2206 "preproc.y"
-{ yyval.str = make1_str("()"); ;
-    break;}
-case 373:
-#line 2209 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 374:
-#line 2211 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 375:
-#line 2215 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 376:
-#line 2220 "preproc.y"
-{ yyval.str = make1_str("setof"); ;
-    break;}
-case 377:
-#line 2221 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 378:
-#line 2243 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("drop"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 379:
-#line 2248 "preproc.y"
-{  yyval.str = make1_str("type"); ;
-    break;}
-case 380:
-#line 2249 "preproc.y"
-{  yyval.str = make1_str("index"); ;
-    break;}
-case 381:
-#line 2250 "preproc.y"
-{  yyval.str = make1_str("rule"); ;
-    break;}
-case 382:
-#line 2251 "preproc.y"
-{  yyval.str = make1_str("view"); ;
-    break;}
-case 383:
-#line 2256 "preproc.y"
-{
-                                               yyval.str = cat3_str(make1_str("drop aggregate"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 384:
-#line 2261 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 385:
-#line 2262 "preproc.y"
-{ yyval.str = make1_str("*"); ;
-    break;}
-case 386:
-#line 2267 "preproc.y"
-{
-                                               yyval.str = cat3_str(make1_str("drop function"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 387:
-#line 2274 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("drop operator"), yyvsp[-3].str, make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 390:
-#line 2281 "preproc.y"
-{ yyval.str = make1_str("+"); ;
-    break;}
-case 391:
-#line 2282 "preproc.y"
-{ yyval.str = make1_str("-"); ;
-    break;}
-case 392:
-#line 2283 "preproc.y"
-{ yyval.str = make1_str("*"); ;
-    break;}
-case 393:
-#line 2284 "preproc.y"
-{ yyval.str = make1_str("%"); ;
-    break;}
-case 394:
-#line 2285 "preproc.y"
-{ yyval.str = make1_str("/"); ;
-    break;}
-case 395:
-#line 2286 "preproc.y"
-{ yyval.str = make1_str("<"); ;
-    break;}
-case 396:
-#line 2287 "preproc.y"
-{ yyval.str = make1_str(">"); ;
-    break;}
-case 397:
-#line 2288 "preproc.y"
-{ yyval.str = make1_str("="); ;
-    break;}
-case 398:
-#line 2292 "preproc.y"
-{
-                                  yyerror("parser: argument type missing (use NONE for unary operators)");
-                               ;
-    break;}
-case 399:
-#line 2296 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 400:
-#line 2298 "preproc.y"
-{ yyval.str = cat2_str(make1_str("none,"), yyvsp[0].str); ;
-    break;}
-case 401:
-#line 2300 "preproc.y"
-{ yyval.str = cat2_str(yyvsp[-2].str, make1_str(", none")); ;
-    break;}
-case 402:
-#line 2314 "preproc.y"
-{
-                                       yyval.str = cat4_str(cat5_str(make1_str("alter table"), yyvsp[-6].str, yyvsp[-5].str, make1_str("rename"), yyvsp[-3].str), yyvsp[-2].str, make1_str("to"), yyvsp[0].str);
-                               ;
-    break;}
-case 403:
-#line 2319 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 404:
-#line 2320 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 405:
-#line 2323 "preproc.y"
-{ yyval.str = make1_str("colmunn"); ;
-    break;}
-case 406:
-#line 2324 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 407:
-#line 2338 "preproc.y"
-{ QueryIsRule=1; ;
-    break;}
-case 408:
-#line 2341 "preproc.y"
-{
-                                       yyval.str = cat2_str(cat5_str(cat5_str(make1_str("create rule"), yyvsp[-10].str, make1_str("as on"), yyvsp[-6].str, make1_str("to")), yyvsp[-4].str, yyvsp[-3].str, make1_str("do"), yyvsp[-1].str), yyvsp[0].str);
-                               ;
-    break;}
-case 409:
-#line 2346 "preproc.y"
-{ yyval.str = make1_str("nothing"); ;
-    break;}
-case 410:
-#line 2347 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 411:
-#line 2348 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 412:
-#line 2349 "preproc.y"
-{ yyval.str = cat3_str(make1_str("["), yyvsp[-1].str, make1_str("]")); ;
-    break;}
-case 413:
-#line 2350 "preproc.y"
-{ yyval.str = cat3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 414:
-#line 2353 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 415:
-#line 2354 "preproc.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
-case 416:
-#line 2358 "preproc.y"
-{  yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 417:
-#line 2360 "preproc.y"
-{  yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, make1_str(";")); ;
-    break;}
-case 418:
-#line 2362 "preproc.y"
-{ yyval.str = cat2_str(yyvsp[-1].str, make1_str(";")); ;
-    break;}
-case 423:
-#line 2372 "preproc.y"
-{
-                                       yyval.str = make3_str(yyvsp[-2].str, make1_str("."), yyvsp[0].str);
-                               ;
-    break;}
-case 424:
-#line 2376 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 425:
-#line 2382 "preproc.y"
-{ yyval.str = make1_str("select"); ;
-    break;}
-case 426:
-#line 2383 "preproc.y"
-{ yyval.str = make1_str("update"); ;
-    break;}
-case 427:
-#line 2384 "preproc.y"
-{ yyval.str = make1_str("delete"); ;
-    break;}
-case 428:
-#line 2385 "preproc.y"
-{ yyval.str = make1_str("insert"); ;
-    break;}
-case 429:
-#line 2388 "preproc.y"
-{ yyval.str = make1_str("instead"); ;
-    break;}
-case 430:
-#line 2389 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 431:
-#line 2402 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("notify"), yyvsp[0].str);
-                               ;
-    break;}
-case 432:
-#line 2408 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("listen"), yyvsp[0].str);
-                                ;
-    break;}
-case 433:
-#line 2414 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("unlisten"), yyvsp[0].str);
-                                ;
-    break;}
-case 434:
-#line 2418 "preproc.y"
-{
-                                       yyval.str = make1_str("unlisten *");
-                                ;
-    break;}
-case 435:
-#line 2435 "preproc.y"
-{ yyval.str = make1_str("rollback"); ;
-    break;}
-case 436:
-#line 2436 "preproc.y"
-{ yyval.str = make1_str("begin transaction"); ;
-    break;}
-case 437:
-#line 2437 "preproc.y"
-{ yyval.str = make1_str("commit"); ;
-    break;}
-case 438:
-#line 2438 "preproc.y"
-{ yyval.str = make1_str("commit"); ;
-    break;}
-case 439:
-#line 2439 "preproc.y"
-{ yyval.str = make1_str("rollback"); ;
-    break;}
-case 440:
-#line 2441 "preproc.y"
-{ yyval.str = ""; ;
-    break;}
-case 441:
-#line 2442 "preproc.y"
-{ yyval.str = ""; ;
-    break;}
-case 442:
-#line 2443 "preproc.y"
-{ yyval.str = ""; ;
-    break;}
-case 443:
-#line 2454 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("create view"), yyvsp[-2].str, make1_str("as"), yyvsp[0].str);
-                               ;
-    break;}
-case 444:
-#line 2468 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("load"), yyvsp[0].str);
-                               ;
-    break;}
-case 445:
-#line 2482 "preproc.y"
-{
-                                       if (strlen(yyvsp[-1].str) == 0 || strlen(yyvsp[0].str) == 0) 
-                                               yyerror("CREATE DATABASE WITH requires at least an option");
-#ifndef MULTIBYTE
-                                       if (strlen(yyvsp[0].str) != 0)
-                                               yyerror("WITH ENCODING is not supported");
-#endif
-                                       yyval.str = cat5_str(make1_str("create database"), yyvsp[-3].str, make1_str("with"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 446:
-#line 2492 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("create database"), yyvsp[0].str);
-                               ;
-    break;}
-case 447:
-#line 2497 "preproc.y"
-{ yyval.str = cat2_str(make1_str("location ="), yyvsp[0].str); ;
-    break;}
-case 448:
-#line 2498 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 449:
-#line 2501 "preproc.y"
-{ yyval.str = cat2_str(make1_str("encoding ="), yyvsp[0].str); ;
-    break;}
-case 450:
-#line 2502 "preproc.y"
-{ yyval.str = NULL; ;
-    break;}
-case 451:
-#line 2505 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 452:
-#line 2506 "preproc.y"
-{ yyval.str = make1_str("default"); ;
-    break;}
-case 453:
-#line 2507 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 454:
-#line 2510 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 455:
-#line 2511 "preproc.y"
-{ yyval.str = make1_str("default"); ;
-    break;}
-case 456:
-#line 2512 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 457:
-#line 2523 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("drop database"), yyvsp[0].str);
-                               ;
-    break;}
-case 458:
-#line 2537 "preproc.y"
-{
-                                  yyval.str = cat4_str(make1_str("cluster"), yyvsp[-2].str, make1_str("on"), yyvsp[0].str);
-                               ;
-    break;}
-case 459:
-#line 2551 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("vacuum"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 460:
-#line 2555 "preproc.y"
-{
-                                       if ( strlen(yyvsp[0].str) > 0 && strlen(yyvsp[-1].str) == 0 )
-                                               yyerror("parser: syntax error at or near \"(\"");
-                                       yyval.str = cat5_str(make1_str("vacuum"), yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 461:
-#line 2562 "preproc.y"
-{ yyval.str = make1_str("verbose"); ;
-    break;}
-case 462:
-#line 2563 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 463:
-#line 2566 "preproc.y"
-{ yyval.str = make1_str("analyse"); ;
-    break;}
-case 464:
-#line 2567 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 465:
-#line 2570 "preproc.y"
-{ yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 466:
-#line 2571 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 467:
-#line 2575 "preproc.y"
-{ yyval.str=yyvsp[0].str; ;
-    break;}
-case 468:
-#line 2577 "preproc.y"
-{ yyval.str=cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 469:
-#line 2589 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("explain"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 476:
-#line 2629 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("insert into"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 477:
-#line 2635 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("values("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 478:
-#line 2639 "preproc.y"
-{
-                                       yyval.str = make1_str("default values");
-                               ;
-    break;}
-case 479:
-#line 2643 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 480:
-#line 2647 "preproc.y"
-{
-                                       yyval.str = make5_str(make1_str("("), yyvsp[-5].str, make1_str(") values ("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 481:
-#line 2651 "preproc.y"
-{
-                                       yyval.str = make4_str(make1_str("("), yyvsp[-2].str, make1_str(")"), yyvsp[0].str);
-                               ;
-    break;}
-case 482:
-#line 2656 "preproc.y"
-{ yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 483:
-#line 2657 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 484:
-#line 2662 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 485:
-#line 2664 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 486:
-#line 2668 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 487:
-#line 2683 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("delete from"), yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 488:
-#line 2689 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("lock"), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 489:
-#line 2694 "preproc.y"
-{ yyval.str = cat3_str(make1_str("in"), yyvsp[-1].str, make1_str("mode")); ;
-    break;}
-case 490:
-#line 2695 "preproc.y"
-{ yyval.str = make1_str("");;
-    break;}
-case 491:
-#line 2698 "preproc.y"
-{ yyval.str = make1_str("share row exclusive"); ;
-    break;}
-case 492:
-#line 2699 "preproc.y"
-{ yyval.str = cat2_str(make1_str("row"), yyvsp[0].str);;
-    break;}
-case 493:
-#line 2700 "preproc.y"
-{ yyval.str = cat2_str(make1_str("access"), yyvsp[0].str);;
-    break;}
-case 494:
-#line 2701 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 495:
-#line 2704 "preproc.y"
-{ yyval.str = make1_str("share"); ;
-    break;}
-case 496:
-#line 2705 "preproc.y"
-{ yyval.str = make1_str("exclusive"); ;
-    break;}
-case 497:
-#line 2719 "preproc.y"
-{
-                                       yyval.str = cat2_str(cat5_str(make1_str("update"), yyvsp[-4].str, make1_str("set"), yyvsp[-2].str, yyvsp[-1].str), yyvsp[0].str);
-                               ;
-    break;}
-case 498:
-#line 2732 "preproc.y"
-{ ForUpdateNotAllowed = 1; ;
-    break;}
-case 499:
-#line 2734 "preproc.y"
-{
-                                       struct cursor *ptr, *this;
-       
-                                       for (ptr = cur; ptr != NULL; ptr = ptr->next)
-                                       {
-                                               if (strcmp(yyvsp[-5].str, ptr->name) == 0)
-                                               {
-                                                       /* re-definition is a bug */
-                                                       sprintf(errortext, "cursor %s already defined", yyvsp[-5].str);
-                                                       yyerror(errortext);
-                                               }
-                                       }
-                        
-                                       this = (struct cursor *) mm_alloc(sizeof(struct cursor));
-
-                                       /* initial definition */
-                                       this->next = cur;
-                                       this->name = yyvsp[-5].str;
-                                       this->connection = connection;
-                                       this->command =  cat5_str(make1_str("declare"), mm_strdup(yyvsp[-5].str), yyvsp[-4].str, make1_str("cursor for"), yyvsp[0].str);
-                                       this->argsinsert = argsinsert;
-                                       this->argsresult = argsresult;
-                                       argsinsert = argsresult = NULL;
-                                                                                       
-                                       cur = this;
-                                       
-                                       yyval.str = cat3_str(make1_str("/*"), mm_strdup(this->command), make1_str("*/"));
-                               ;
-    break;}
-case 500:
-#line 2764 "preproc.y"
-{ yyval.str = make1_str("binary"); ;
-    break;}
-case 501:
-#line 2765 "preproc.y"
-{ yyval.str = make1_str("insensitive"); ;
-    break;}
-case 502:
-#line 2766 "preproc.y"
-{ yyval.str = make1_str("scroll"); ;
-    break;}
-case 503:
-#line 2767 "preproc.y"
-{ yyval.str = make1_str("insensitive scroll"); ;
-    break;}
-case 504:
-#line 2768 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 505:
-#line 2786 "preproc.y"
-{
-                                       if (strlen(yyvsp[-1].str) > 0 && ForUpdateNotAllowed != 0)
-                                                       yyerror("FOR UPDATE is not allowed in this context");
-
-                                       ForUpdateNotAllowed = 0;
-                                       yyval.str = cat4_str(yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 506:
-#line 2803 "preproc.y"
-{
-                               yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); 
-                        ;
-    break;}
-case 507:
-#line 2807 "preproc.y"
-{
-                               yyval.str = yyvsp[0].str; 
-                        ;
-    break;}
-case 508:
-#line 2811 "preproc.y"
-{
-                               yyval.str = cat3_str(yyvsp[-2].str, make1_str("except"), yyvsp[0].str);
-                               ForUpdateNotAllowed = 1;
-                       ;
-    break;}
-case 509:
-#line 2816 "preproc.y"
-{
-                               yyval.str = cat4_str(yyvsp[-3].str, make1_str("union"), yyvsp[-1].str, yyvsp[0].str);
-                               ForUpdateNotAllowed = 1;
-                       ;
-    break;}
-case 510:
-#line 2821 "preproc.y"
-{
-                               yyval.str = cat3_str(yyvsp[-3].str, make1_str("intersect"), yyvsp[-1].str);
-                               ForUpdateNotAllowed = 1;
-                       ;
-    break;}
-case 511:
-#line 2831 "preproc.y"
-{
-                                       yyval.str = cat4_str(cat5_str(make1_str("select"), yyvsp[-6].str, yyvsp[-5].str, yyvsp[-4].str, yyvsp[-3].str), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                                       if (strlen(yyvsp[-1].str) > 0 || strlen(yyvsp[0].str) > 0)
-                                               ForUpdateNotAllowed = 1;
-                               ;
-    break;}
-case 512:
-#line 2838 "preproc.y"
-{ yyval.str= cat4_str(make1_str("into"), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 513:
-#line 2839 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 514:
-#line 2840 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 515:
-#line 2843 "preproc.y"
-{ yyval.str = make1_str("table"); ;
-    break;}
-case 516:
-#line 2844 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 517:
-#line 2847 "preproc.y"
-{ yyval.str = make1_str("all"); ;
-    break;}
-case 518:
-#line 2848 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 519:
-#line 2851 "preproc.y"
-{ yyval.str = make1_str("distinct"); ;
-    break;}
-case 520:
-#line 2852 "preproc.y"
-{ yyval.str = cat2_str(make1_str("distinct on"), yyvsp[0].str); ;
-    break;}
-case 521:
-#line 2853 "preproc.y"
-{ yyval.str = make1_str("all"); ;
-    break;}
-case 522:
-#line 2854 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 523:
-#line 2857 "preproc.y"
-{ yyval.str = cat2_str(make1_str("order by"), yyvsp[0].str); ;
-    break;}
-case 524:
-#line 2858 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 525:
-#line 2861 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 526:
-#line 2862 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 527:
-#line 2866 "preproc.y"
-{
-                                        yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                                ;
-    break;}
-case 528:
-#line 2871 "preproc.y"
-{ yyval.str = cat2_str(make1_str("using"), yyvsp[0].str); ;
-    break;}
-case 529:
-#line 2872 "preproc.y"
-{ yyval.str = make1_str("using <"); ;
-    break;}
-case 530:
-#line 2873 "preproc.y"
-{ yyval.str = make1_str("using >"); ;
-    break;}
-case 531:
-#line 2874 "preproc.y"
-{ yyval.str = make1_str("asc"); ;
-    break;}
-case 532:
-#line 2875 "preproc.y"
-{ yyval.str = make1_str("desc"); ;
-    break;}
-case 533:
-#line 2876 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 534:
-#line 2880 "preproc.y"
-{ yyval.str = cat4_str(make1_str("limit"), yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 535:
-#line 2882 "preproc.y"
-{ yyval.str = cat4_str(make1_str("limit"), yyvsp[-2].str, make1_str("offset"), yyvsp[0].str); ;
-    break;}
-case 536:
-#line 2884 "preproc.y"
-{ yyval.str = cat2_str(make1_str("limit"), yyvsp[0].str); ;
-    break;}
-case 537:
-#line 2886 "preproc.y"
-{ yyval.str = cat4_str(make1_str("offset"), yyvsp[-2].str, make1_str("limit"), yyvsp[0].str); ;
-    break;}
-case 538:
-#line 2888 "preproc.y"
-{ yyval.str = cat2_str(make1_str("offset"), yyvsp[0].str); ;
-    break;}
-case 539:
-#line 2890 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 540:
-#line 2893 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 541:
-#line 2894 "preproc.y"
-{ yyval.str = make1_str("all"); ;
-    break;}
-case 542:
-#line 2895 "preproc.y"
-{ yyval.str = make_name(); ;
-    break;}
-case 543:
-#line 2898 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 544:
-#line 2899 "preproc.y"
-{ yyval.str = make_name(); ;
-    break;}
-case 545:
-#line 2909 "preproc.y"
-{ yyval.str = make1_str("*"); ;
-    break;}
-case 546:
-#line 2910 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 547:
-#line 2913 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 548:
-#line 2916 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 549:
-#line 2918 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 550:
-#line 2921 "preproc.y"
-{ yyval.str = cat2_str(make1_str("group by"), yyvsp[0].str); ;
-    break;}
-case 551:
-#line 2922 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 552:
-#line 2926 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("having"), yyvsp[0].str);
-                               ;
-    break;}
-case 553:
-#line 2929 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 554:
-#line 2933 "preproc.y"
-{
-                       yyval.str = make1_str("for update"); 
-               ;
-    break;}
-case 555:
-#line 2937 "preproc.y"
-{
-                       yyval.str = make1_str("for read only");
-               ;
-    break;}
-case 556:
-#line 2941 "preproc.y"
-{
-                        yyval.str = make1_str("");
-                ;
-    break;}
-case 557:
-#line 2946 "preproc.y"
-{
-                       yyval.str = cat2_str(make1_str("of"), yyvsp[0].str);
-             ;
-    break;}
-case 558:
-#line 2950 "preproc.y"
-{
-                        yyval.str = make1_str("");
-              ;
-    break;}
-case 559:
-#line 2964 "preproc.y"
-{
-                       yyval.str = cat2_str(make1_str("from"), yyvsp[0].str);
-               ;
-    break;}
-case 560:
-#line 2968 "preproc.y"
-{
-                       yyval.str = make1_str("");
-               ;
-    break;}
-case 561:
-#line 2974 "preproc.y"
-{ yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 562:
-#line 2976 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 563:
-#line 2978 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 564:
-#line 2982 "preproc.y"
-{ yyval.str = make3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 565:
-#line 2984 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 566:
-#line 2988 "preproc.y"
-{
-                                        yyval.str = cat3_str(yyvsp[-2].str, make1_str("as"), yyvsp[0].str);
-                                ;
-    break;}
-case 567:
-#line 2992 "preproc.y"
-{
-                                        yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                                ;
-    break;}
-case 568:
-#line 2996 "preproc.y"
-{
-                                        yyval.str = yyvsp[0].str;
-                                ;
-    break;}
-case 569:
-#line 3006 "preproc.y"
-{       yyval.str = yyvsp[0].str; ;
-    break;}
-case 570:
-#line 3008 "preproc.y"
-{       yyerror("UNION JOIN not yet implemented"); ;
-    break;}
-case 571:
-#line 3012 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                                ;
-    break;}
-case 572:
-#line 3018 "preproc.y"
-{
-                                        yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                                ;
-    break;}
-case 573:
-#line 3022 "preproc.y"
-{
-                                        yyval.str = yyvsp[0].str;
-                                ;
-    break;}
-case 574:
-#line 3035 "preproc.y"
-{
-                                       yyval.str = cat4_str(yyvsp[-3].str, make1_str("join"), yyvsp[-1].str, yyvsp[0].str);
-                                ;
-    break;}
-case 575:
-#line 3039 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("natural"), yyvsp[-2].str, make1_str("join"), yyvsp[0].str);
-                                ;
-    break;}
-case 576:
-#line 3043 "preproc.y"
-{      yyval.str = cat2_str(make1_str("cross join"), yyvsp[0].str); ;
-    break;}
-case 577:
-#line 3048 "preproc.y"
-{
-                                        yyval.str = cat2_str(make1_str("full"), yyvsp[0].str);
-                                        fprintf(stderr,"FULL OUTER JOIN not yet implemented\n");
-                                ;
-    break;}
-case 578:
-#line 3053 "preproc.y"
-{
-                                        yyval.str = cat2_str(make1_str("left"), yyvsp[0].str);
-                                        fprintf(stderr,"LEFT OUTER JOIN not yet implemented\n");
-                                ;
-    break;}
-case 579:
-#line 3058 "preproc.y"
-{
-                                        yyval.str = cat2_str(make1_str("right"), yyvsp[0].str);
-                                        fprintf(stderr,"RIGHT OUTER JOIN not yet implemented\n");
-                                ;
-    break;}
-case 580:
-#line 3063 "preproc.y"
-{
-                                        yyval.str = make1_str("outer");
-                                        fprintf(stderr,"OUTER JOIN not yet implemented\n");
-                                ;
-    break;}
-case 581:
-#line 3068 "preproc.y"
-{
-                                        yyval.str = make1_str("inner");
-                               ;
-    break;}
-case 582:
-#line 3072 "preproc.y"
-{
-                                        yyval.str = make1_str("");
-                               ;
-    break;}
-case 583:
-#line 3077 "preproc.y"
-{ yyval.str = make1_str("outer"); ;
-    break;}
-case 584:
-#line 3078 "preproc.y"
-{ yyval.str = make1_str("");  /* no qualifiers */ ;
-    break;}
-case 585:
-#line 3089 "preproc.y"
-{ yyval.str = make3_str(make1_str("using ("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 586:
-#line 3090 "preproc.y"
-{ yyval.str = cat2_str(make1_str("on"), yyvsp[0].str); ;
-    break;}
-case 587:
-#line 3093 "preproc.y"
-{ yyval.str = make3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 588:
-#line 3094 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 589:
-#line 3098 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 590:
-#line 3103 "preproc.y"
-{ yyval.str = cat2_str(make1_str("where"), yyvsp[0].str); ;
-    break;}
-case 591:
-#line 3104 "preproc.y"
-{ yyval.str = make1_str("");  /* no qualifiers */ ;
-    break;}
-case 592:
-#line 3108 "preproc.y"
-{
-                                       /* normal relations */
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 593:
-#line 3113 "preproc.y"
-{
-                                       /* inheritance query */
-                                       yyval.str = cat2_str(yyvsp[-1].str, make1_str("*"));
-                               ;
-    break;}
-case 594:
-#line 3119 "preproc.y"
-{
-                            yyval.index.index1 = 0;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat2_str(make1_str("[]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 595:
-#line 3125 "preproc.y"
-{
-                           char *txt = mm_alloc(20L);
-
-                           sprintf (txt, "%d", yyvsp[-2].ival);
-                            yyval.index.index1 = yyvsp[-2].ival;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat4_str(make1_str("["), txt, make1_str("]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 596:
-#line 3134 "preproc.y"
-{
-                            yyval.index.index1 = -1;
-                            yyval.index.index2 = -1;
-                            yyval.index.str= make1_str("");
-                        ;
-    break;}
-case 597:
-#line 3142 "preproc.y"
-{
-                            yyval.index.index1 = 0;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat2_str(make1_str("[]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 598:
-#line 3148 "preproc.y"
-{
-                           char *txt = mm_alloc(20L);
-
-                           sprintf (txt, "%d", yyvsp[-2].ival);
-                            yyval.index.index1 = yyvsp[-2].ival;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat4_str(make1_str("["), txt, make1_str("]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 599:
-#line 3157 "preproc.y"
-{
-                            yyval.index.index1 = -1;
-                            yyval.index.index2 = -1;
-                            yyval.index.str= make1_str("");
-                        ;
-    break;}
-case 600:
-#line 3164 "preproc.y"
-{ yyval.ival = atol(yyvsp[0].str); ;
-    break;}
-case 601:
-#line 3165 "preproc.y"
-{ yyval.ival = yyvsp[-1].ival; ;
-    break;}
-case 602:
-#line 3166 "preproc.y"
-{ yyval.ival = yyvsp[-2].ival + yyvsp[0].ival; ;
-    break;}
-case 603:
-#line 3167 "preproc.y"
-{ yyval.ival = yyvsp[-2].ival - yyvsp[0].ival; ;
-    break;}
-case 604:
-#line 3168 "preproc.y"
-{ yyval.ival = yyvsp[-2].ival * yyvsp[0].ival; ;
-    break;}
-case 605:
-#line 3169 "preproc.y"
-{ yyval.ival = yyvsp[-2].ival / yyvsp[0].ival; ;
-    break;}
-case 606:
-#line 3170 "preproc.y"
-{ yyval.ival = yyvsp[-2].ival % yyvsp[0].ival; ;
-    break;}
-case 607:
-#line 3185 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].index.str);
-                               ;
-    break;}
-case 608:
-#line 3189 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("setof"), yyvsp[0].str);
-                               ;
-    break;}
-case 609:
-#line 3194 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 610:
-#line 3195 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 611:
-#line 3196 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 612:
-#line 3197 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 613:
-#line 3201 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 614:
-#line 3206 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 615:
-#line 3207 "preproc.y"
-{ yyval.str = make1_str("type"); ;
-    break;}
-case 616:
-#line 3208 "preproc.y"
-{ yyval.str = make1_str("at"); ;
-    break;}
-case 617:
-#line 3209 "preproc.y"
-{ yyval.str = make1_str("autocommit"); ;
-    break;}
-case 618:
-#line 3210 "preproc.y"
-{ yyval.str = make1_str("bool"); ;
-    break;}
-case 619:
-#line 3211 "preproc.y"
-{ yyval.str = make1_str("break"); ;
-    break;}
-case 620:
-#line 3212 "preproc.y"
-{ yyval.str = make1_str("call"); ;
-    break;}
-case 621:
-#line 3213 "preproc.y"
-{ yyval.str = make1_str("connect"); ;
-    break;}
-case 622:
-#line 3214 "preproc.y"
-{ yyval.str = make1_str("connection"); ;
-    break;}
-case 623:
-#line 3215 "preproc.y"
-{ yyval.str = make1_str("continue"); ;
-    break;}
-case 624:
-#line 3216 "preproc.y"
-{ yyval.str = make1_str("deallocate"); ;
-    break;}
-case 625:
-#line 3217 "preproc.y"
-{ yyval.str = make1_str("disconnect"); ;
-    break;}
-case 626:
-#line 3218 "preproc.y"
-{ yyval.str = make1_str("found"); ;
-    break;}
-case 627:
-#line 3219 "preproc.y"
-{ yyval.str = make1_str("go"); ;
-    break;}
-case 628:
-#line 3220 "preproc.y"
-{ yyval.str = make1_str("goto"); ;
-    break;}
-case 629:
-#line 3221 "preproc.y"
-{ yyval.str = make1_str("identified"); ;
-    break;}
-case 630:
-#line 3222 "preproc.y"
-{ yyval.str = make1_str("immediate"); ;
-    break;}
-case 631:
-#line 3223 "preproc.y"
-{ yyval.str = make1_str("indicator"); ;
-    break;}
-case 632:
-#line 3224 "preproc.y"
-{ yyval.str = make1_str("int"); ;
-    break;}
-case 633:
-#line 3225 "preproc.y"
-{ yyval.str = make1_str("long"); ;
-    break;}
-case 634:
-#line 3226 "preproc.y"
-{ yyval.str = make1_str("off"); ;
-    break;}
-case 635:
-#line 3227 "preproc.y"
-{ yyval.str = make1_str("open"); ;
-    break;}
-case 636:
-#line 3228 "preproc.y"
-{ yyval.str = make1_str("prepare"); ;
-    break;}
-case 637:
-#line 3229 "preproc.y"
-{ yyval.str = make1_str("release"); ;
-    break;}
-case 638:
-#line 3230 "preproc.y"
-{ yyval.str = make1_str("section"); ;
-    break;}
-case 639:
-#line 3231 "preproc.y"
-{ yyval.str = make1_str("short"); ;
-    break;}
-case 640:
-#line 3232 "preproc.y"
-{ yyval.str = make1_str("signed"); ;
-    break;}
-case 641:
-#line 3233 "preproc.y"
-{ yyval.str = make1_str("sqlerror"); ;
-    break;}
-case 642:
-#line 3234 "preproc.y"
-{ yyval.str = make1_str("sqlprint"); ;
-    break;}
-case 643:
-#line 3235 "preproc.y"
-{ yyval.str = make1_str("sqlwarning"); ;
-    break;}
-case 644:
-#line 3236 "preproc.y"
-{ yyval.str = make1_str("stop"); ;
-    break;}
-case 645:
-#line 3237 "preproc.y"
-{ yyval.str = make1_str("struct"); ;
-    break;}
-case 646:
-#line 3238 "preproc.y"
-{ yyval.str = make1_str("unsigned"); ;
-    break;}
-case 647:
-#line 3239 "preproc.y"
-{ yyval.str = make1_str("var"); ;
-    break;}
-case 648:
-#line 3240 "preproc.y"
-{ yyval.str = make1_str("whenever"); ;
-    break;}
-case 649:
-#line 3249 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("float"), yyvsp[0].str);
-                               ;
-    break;}
-case 650:
-#line 3253 "preproc.y"
-{
-                                       yyval.str = make1_str("double precision");
-                               ;
-    break;}
-case 651:
-#line 3257 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("decimal"), yyvsp[0].str);
-                               ;
-    break;}
-case 652:
-#line 3261 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("numeric"), yyvsp[0].str);
-                               ;
-    break;}
-case 653:
-#line 3267 "preproc.y"
-{      yyval.str = make1_str("float"); ;
-    break;}
-case 654:
-#line 3269 "preproc.y"
-{      yyval.str = make1_str("double precision"); ;
-    break;}
-case 655:
-#line 3271 "preproc.y"
-{      yyval.str = make1_str("decimal"); ;
-    break;}
-case 656:
-#line 3273 "preproc.y"
-{      yyval.str = make1_str("numeric"); ;
-    break;}
-case 657:
-#line 3277 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) < 1)
-                                               yyerror("precision for FLOAT must be at least 1");
-                                       else if (atol(yyvsp[-1].str) >= 16)
-                                               yyerror("precision for FLOAT must be less than 16");
-                                       yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 658:
-#line 3285 "preproc.y"
-{
-                                       yyval.str = make1_str("");
-                               ;
-    break;}
-case 659:
-#line 3291 "preproc.y"
-{
-                                       if (atol(yyvsp[-3].str) < 1 || atol(yyvsp[-3].str) > NUMERIC_MAX_PRECISION) {
-                                               sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", yyvsp[-3].str, NUMERIC_MAX_PRECISION);
-                                               yyerror(errortext);
-                                       }
-                                       if (atol(yyvsp[-1].str) < 0 || atol(yyvsp[-1].str) > atol(yyvsp[-3].str)) {
-                                               sprintf(errortext, "NUMERIC scale %s must be between 0 and precision %s", yyvsp[-1].str, yyvsp[-3].str);
-                                               yyerror(errortext);
-                                       }
-                                       yyval.str = cat3_str(make2_str(make1_str("("), yyvsp[-3].str), make1_str(","), make2_str(yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 660:
-#line 3303 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) < 1 || atol(yyvsp[-1].str) > NUMERIC_MAX_PRECISION) {
-                                               sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", yyvsp[-1].str, NUMERIC_MAX_PRECISION);
-                                               yyerror(errortext);
-                                       }
-                                       yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 661:
-#line 3311 "preproc.y"
-{
-                                       yyval.str = make1_str("");
-                               ;
-    break;}
-case 662:
-#line 3317 "preproc.y"
-{
-                                       if (atol(yyvsp[-3].str) < 1 || atol(yyvsp[-3].str) > NUMERIC_MAX_PRECISION) {
-                                               sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", yyvsp[-3].str, NUMERIC_MAX_PRECISION);
-                                               yyerror(errortext);
-                                       }
-                                       if (atol(yyvsp[-1].str) < 0 || atol(yyvsp[-1].str) > atol(yyvsp[-3].str)) {
-                                               sprintf(errortext, "NUMERIC scale %s must be between 0 and precision %s", yyvsp[-1].str, yyvsp[-3].str);
-                                               yyerror(errortext);
-                                       }
-                                       yyval.str = cat3_str(make2_str(make1_str("("), yyvsp[-3].str), make1_str(","), make2_str(yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 663:
-#line 3329 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) < 1 || atol(yyvsp[-1].str) > NUMERIC_MAX_PRECISION) {
-                                               sprintf(errortext, "NUMERIC precision %s must be between 1 and %d", yyvsp[-1].str, NUMERIC_MAX_PRECISION);
-                                               yyerror(errortext);
-                                       }
-                                       yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 664:
-#line 3337 "preproc.y"
-{
-                                       yyval.str = make1_str("");
-                               ;
-    break;}
-case 665:
-#line 3347 "preproc.y"
-{
-                                       if (strncasecmp(yyvsp[-3].str, "char", strlen("char")) && strncasecmp(yyvsp[-3].str, "varchar", strlen("varchar")))
-                                               yyerror("internal parsing error; unrecognized character type");
-                                       if (atol(yyvsp[-1].str) < 1) {
-                                               sprintf(errortext, "length for '%s' type must be at least 1",yyvsp[-3].str);
-                                               yyerror(errortext);
-                                       }
-                                       else if (atol(yyvsp[-1].str) > BLCKSZ - 128) {
-                                               sprintf(errortext, "length for type '%s' cannot exceed %d",yyvsp[-3].str,BLCKSZ - 128);
-                                               yyerror(errortext);
-                                       }
-
-                                       yyval.str = cat2_str(yyvsp[-3].str, make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 666:
-#line 3362 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 667:
-#line 3368 "preproc.y"
-{
-                                       if (strlen(yyvsp[0].str) > 0) 
-                                               fprintf(stderr, "COLLATE %s not yet implemented",yyvsp[0].str);
-
-                                       yyval.str = cat4_str(make1_str("character"), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 668:
-#line 3374 "preproc.y"
-{ yyval.str = cat2_str(make1_str("char"), yyvsp[0].str); ;
-    break;}
-case 669:
-#line 3375 "preproc.y"
-{ yyval.str = make1_str("varchar"); ;
-    break;}
-case 670:
-#line 3376 "preproc.y"
-{ yyval.str = cat2_str(make1_str("national character"), yyvsp[0].str); ;
-    break;}
-case 671:
-#line 3377 "preproc.y"
-{ yyval.str = cat2_str(make1_str("nchar"), yyvsp[0].str); ;
-    break;}
-case 672:
-#line 3380 "preproc.y"
-{ yyval.str = make1_str("varying"); ;
-    break;}
-case 673:
-#line 3381 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 674:
-#line 3384 "preproc.y"
-{ yyval.str = cat2_str(make1_str("character set"), yyvsp[0].str); ;
-    break;}
-case 675:
-#line 3385 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 676:
-#line 3388 "preproc.y"
-{ yyval.str = cat2_str(make1_str("collate"), yyvsp[0].str); ;
-    break;}
-case 677:
-#line 3389 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 678:
-#line 3393 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 679:
-#line 3397 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("timestamp"), yyvsp[0].str);
-                               ;
-    break;}
-case 680:
-#line 3401 "preproc.y"
-{
-                                       yyval.str = make1_str("time");
-                               ;
-    break;}
-case 681:
-#line 3405 "preproc.y"
-{
-                                       yyval.str = cat2_str(make1_str("interval"), yyvsp[0].str);
-                               ;
-    break;}
-case 682:
-#line 3410 "preproc.y"
-{ yyval.str = make1_str("year"); ;
-    break;}
-case 683:
-#line 3411 "preproc.y"
-{ yyval.str = make1_str("month"); ;
-    break;}
-case 684:
-#line 3412 "preproc.y"
-{ yyval.str = make1_str("day"); ;
-    break;}
-case 685:
-#line 3413 "preproc.y"
-{ yyval.str = make1_str("hour"); ;
-    break;}
-case 686:
-#line 3414 "preproc.y"
-{ yyval.str = make1_str("minute"); ;
-    break;}
-case 687:
-#line 3415 "preproc.y"
-{ yyval.str = make1_str("second"); ;
-    break;}
-case 688:
-#line 3418 "preproc.y"
-{ yyval.str = make1_str("with time zone"); ;
-    break;}
-case 689:
-#line 3419 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 690:
-#line 3422 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 691:
-#line 3423 "preproc.y"
-{ yyval.str = make1_str("year to #month"); ;
-    break;}
-case 692:
-#line 3424 "preproc.y"
-{ yyval.str = make1_str("day to hour"); ;
-    break;}
-case 693:
-#line 3425 "preproc.y"
-{ yyval.str = make1_str("day to minute"); ;
-    break;}
-case 694:
-#line 3426 "preproc.y"
-{ yyval.str = make1_str("day to second"); ;
-    break;}
-case 695:
-#line 3427 "preproc.y"
-{ yyval.str = make1_str("hour to minute"); ;
-    break;}
-case 696:
-#line 3428 "preproc.y"
-{ yyval.str = make1_str("minute to second"); ;
-    break;}
-case 697:
-#line 3429 "preproc.y"
-{ yyval.str = make1_str("hour to second"); ;
-    break;}
-case 698:
-#line 3430 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 699:
-#line 3441 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 700:
-#line 3443 "preproc.y"
-{
-                                       yyval.str = make1_str("null");
-                               ;
-    break;}
-case 701:
-#line 3458 "preproc.y"
-{
-                                       yyval.str = make5_str(make1_str("("), yyvsp[-5].str, make1_str(") in ("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 702:
-#line 3462 "preproc.y"
-{
-                                       yyval.str = make5_str(make1_str("("), yyvsp[-6].str, make1_str(") not in ("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 703:
-#line 3466 "preproc.y"
-{
-                                       yyval.str = make4_str(make5_str(make1_str("("), yyvsp[-6].str, make1_str(")"), yyvsp[-4].str, yyvsp[-3].str), make1_str("("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 704:
-#line 3470 "preproc.y"
-{
-                                       yyval.str = make3_str(make5_str(make1_str("("), yyvsp[-5].str, make1_str(")"), yyvsp[-3].str, make1_str("(")), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 705:
-#line 3474 "preproc.y"
-{
-                                       yyval.str = cat3_str(make3_str(make1_str("("), yyvsp[-5].str, make1_str(")")), yyvsp[-3].str, make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 706:
-#line 3480 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                               ;
-    break;}
-case 707:
-#line 3485 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 708:
-#line 3486 "preproc.y"
-{ yyval.str = "<"; ;
-    break;}
-case 709:
-#line 3487 "preproc.y"
-{ yyval.str = "="; ;
-    break;}
-case 710:
-#line 3488 "preproc.y"
-{ yyval.str = ">"; ;
-    break;}
-case 711:
-#line 3489 "preproc.y"
-{ yyval.str = "+"; ;
-    break;}
-case 712:
-#line 3490 "preproc.y"
-{ yyval.str = "-"; ;
-    break;}
-case 713:
-#line 3491 "preproc.y"
-{ yyval.str = "*"; ;
-    break;}
-case 714:
-#line 3492 "preproc.y"
-{ yyval.str = "%"; ;
-    break;}
-case 715:
-#line 3493 "preproc.y"
-{ yyval.str = "/"; ;
-    break;}
-case 716:
-#line 3496 "preproc.y"
-{ yyval.str = make1_str("ANY"); ;
-    break;}
-case 717:
-#line 3497 "preproc.y"
-{ yyval.str = make1_str("ALL"); ;
-    break;}
-case 718:
-#line 3502 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                               ;
-    break;}
-case 719:
-#line 3506 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 720:
-#line 3521 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 721:
-#line 3525 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 722:
-#line 3527 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 723:
-#line 3529 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 724:
-#line 3533 "preproc.y"
-{      yyval.str = cat2_str(make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 725:
-#line 3535 "preproc.y"
-{       yyval.str = cat2_str(make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 726:
-#line 3537 "preproc.y"
-{       yyval.str = cat2_str(yyvsp[-1].str, make1_str("%")); ;
-    break;}
-case 727:
-#line 3539 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("+"), yyvsp[0].str); ;
-    break;}
-case 728:
-#line 3541 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 729:
-#line 3543 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("/"), yyvsp[0].str); ;
-    break;}
-case 730:
-#line 3545 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 731:
-#line 3547 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("*"), yyvsp[0].str); ;
-    break;}
-case 732:
-#line 3549 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("<"), yyvsp[0].str); ;
-    break;}
-case 733:
-#line 3551 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(">"), yyvsp[0].str); ;
-    break;}
-case 734:
-#line 3553 "preproc.y"
-{       yyval.str = cat2_str(yyvsp[-2].str, make1_str("= NULL")); ;
-    break;}
-case 735:
-#line 3555 "preproc.y"
-{       yyval.str = cat2_str(make1_str("= NULL"), yyvsp[0].str); ;
-    break;}
-case 736:
-#line 3557 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("="), yyvsp[0].str); ;
-    break;}
-case 737:
-#line 3562 "preproc.y"
-{      yyval.str = cat2_str(make1_str(";"), yyvsp[0].str); ;
-    break;}
-case 738:
-#line 3564 "preproc.y"
-{      yyval.str = cat2_str(make1_str("|"), yyvsp[0].str); ;
-    break;}
-case 739:
-#line 3566 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("::"), yyvsp[0].str);
-                               ;
-    break;}
-case 740:
-#line 3570 "preproc.y"
-{
-                                       yyval.str = cat3_str(make2_str(make1_str("cast("), yyvsp[-3].str), make1_str("as"), make2_str(yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 741:
-#line 3574 "preproc.y"
-{      yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 742:
-#line 3576 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);       ;
-    break;}
-case 743:
-#line 3578 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("like"), yyvsp[0].str); ;
-    break;}
-case 744:
-#line 3580 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-3].str, make1_str("not like"), yyvsp[0].str); ;
-    break;}
-case 745:
-#line 3582 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 746:
-#line 3584 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 747:
-#line 3586 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-3].str, make1_str("(*)")); 
-                               ;
-    break;}
-case 748:
-#line 3590 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-2].str, make1_str("()")); 
-                               ;
-    break;}
-case 749:
-#line 3594 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-3].str, make1_str("("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 750:
-#line 3598 "preproc.y"
-{
-                                       yyval.str = make1_str("current_date");
-                               ;
-    break;}
-case 751:
-#line 3602 "preproc.y"
-{
-                                       yyval.str = make1_str("current_time");
-                               ;
-    break;}
-case 752:
-#line 3606 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) != 0)
-                                               fprintf(stderr,"CURRENT_TIME(%s) precision not implemented; zero used instead", yyvsp[-1].str);
-                                       yyval.str = make1_str("current_time");
-                               ;
-    break;}
-case 753:
-#line 3612 "preproc.y"
-{
-                                       yyval.str = make1_str("current_timestamp");
-                               ;
-    break;}
-case 754:
-#line 3616 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) != 0)
-                                               fprintf(stderr,"CURRENT_TIMESTAMP(%s) precision not implemented; zero used instead",yyvsp[-1].str);
-                                       yyval.str = make1_str("current_timestamp");
-                               ;
-    break;}
-case 755:
-#line 3622 "preproc.y"
-{
-                                       yyval.str = make1_str("current_user");
-                               ;
-    break;}
-case 756:
-#line 3626 "preproc.y"
-{
-                                       yyval.str = make1_str("user");
-                               ;
-    break;}
-case 757:
-#line 3630 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("exists("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 758:
-#line 3634 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("extract("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 759:
-#line 3638 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("position("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 760:
-#line 3642 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("substring("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 761:
-#line 3647 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(both"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 762:
-#line 3651 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(leading"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 763:
-#line 3655 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(trailing"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 764:
-#line 3659 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 765:
-#line 3663 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, make1_str("isnull")); ;
-    break;}
-case 766:
-#line 3665 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-2].str, make1_str("is null")); ;
-    break;}
-case 767:
-#line 3667 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, make1_str("notnull")); ;
-    break;}
-case 768:
-#line 3669 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not null")); ;
-    break;}
-case 769:
-#line 3676 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-2].str, make1_str("is true")); }
-                               ;
-    break;}
-case 770:
-#line 3680 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not false")); }
-                               ;
-    break;}
-case 771:
-#line 3684 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-2].str, make1_str("is false")); }
-                               ;
-    break;}
-case 772:
-#line 3688 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not true")); }
-                               ;
-    break;}
-case 773:
-#line 3692 "preproc.y"
-{
-                                       yyval.str = cat5_str(yyvsp[-4].str, make1_str("between"), yyvsp[-2].str, make1_str("and"), yyvsp[0].str); 
-                               ;
-    break;}
-case 774:
-#line 3696 "preproc.y"
-{
-                                       yyval.str = cat5_str(yyvsp[-5].str, make1_str("not between"), yyvsp[-2].str, make1_str("and"), yyvsp[0].str); 
-                               ;
-    break;}
-case 775:
-#line 3700 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str(" in ("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 776:
-#line 3704 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str(" not in ("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 777:
-#line 3708 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-4].str, yyvsp[-3].str, make3_str(make1_str("("), yyvsp[-1].str, make1_str(")"))); 
-                               ;
-    break;}
-case 778:
-#line 3712 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("+("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 779:
-#line 3716 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("-("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 780:
-#line 3720 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("/("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 781:
-#line 3724 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("%("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 782:
-#line 3728 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("*("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 783:
-#line 3732 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("<("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 784:
-#line 3736 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str(">("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 785:
-#line 3740 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("=("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 786:
-#line 3744 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-5].str, yyvsp[-4].str, make3_str(make1_str("any("), yyvsp[-1].str, make1_str(")"))); 
-                               ;
-    break;}
-case 787:
-#line 3748 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("+ any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 788:
-#line 3752 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("- any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 789:
-#line 3756 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("/ any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 790:
-#line 3760 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("% any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 791:
-#line 3764 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("* any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 792:
-#line 3768 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("< any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 793:
-#line 3772 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("> any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 794:
-#line 3776 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("= any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 795:
-#line 3780 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-5].str, yyvsp[-4].str, make3_str(make1_str("all ("), yyvsp[-1].str, make1_str(")"))); 
-                               ;
-    break;}
-case 796:
-#line 3784 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("+ all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 797:
-#line 3788 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("- all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 798:
-#line 3792 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("/ all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 799:
-#line 3796 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("% all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 800:
-#line 3800 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("* all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 801:
-#line 3804 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("< all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 802:
-#line 3808 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("> all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 803:
-#line 3812 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("= all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 804:
-#line 3816 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("and"), yyvsp[0].str); ;
-    break;}
-case 805:
-#line 3818 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("or"), yyvsp[0].str); ;
-    break;}
-case 806:
-#line 3820 "preproc.y"
-{      yyval.str = cat2_str(make1_str("not"), yyvsp[0].str); ;
-    break;}
-case 807:
-#line 3822 "preproc.y"
-{       yyval.str = yyvsp[0].str; ;
-    break;}
-case 808:
-#line 3824 "preproc.y"
-{ yyval.str = make1_str("?"); ;
-    break;}
-case 809:
-#line 3833 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 810:
-#line 3837 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 811:
-#line 3839 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 812:
-#line 3843 "preproc.y"
-{      yyval.str = cat2_str(make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 813:
-#line 3845 "preproc.y"
-{       yyval.str = cat2_str(make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 814:
-#line 3847 "preproc.y"
-{       yyval.str = cat2_str(yyvsp[-1].str, make1_str("%")); ;
-    break;}
-case 815:
-#line 3849 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("+"), yyvsp[0].str); ;
-    break;}
-case 816:
-#line 3851 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 817:
-#line 3853 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("/"), yyvsp[0].str); ;
-    break;}
-case 818:
-#line 3855 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 819:
-#line 3857 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("*"), yyvsp[0].str); ;
-    break;}
-case 820:
-#line 3862 "preproc.y"
-{      yyval.str = cat2_str(make1_str(";"), yyvsp[0].str); ;
-    break;}
-case 821:
-#line 3864 "preproc.y"
-{      yyval.str = cat2_str(make1_str("|"), yyvsp[0].str); ;
-    break;}
-case 822:
-#line 3866 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("::"), yyvsp[0].str);
-                               ;
-    break;}
-case 823:
-#line 3870 "preproc.y"
-{
-                                       yyval.str = cat3_str(make2_str(make1_str("cast("), yyvsp[-3].str), make1_str("as"), make2_str(yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 824:
-#line 3874 "preproc.y"
-{      yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 825:
-#line 3876 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);       ;
-    break;}
-case 826:
-#line 3878 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 827:
-#line 3880 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 828:
-#line 3882 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-2].str, make1_str("()")); 
-                               ;
-    break;}
-case 829:
-#line 3886 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-3].str, make1_str("("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 830:
-#line 3890 "preproc.y"
-{
-                                       yyval.str = make1_str("current_date");
-                               ;
-    break;}
-case 831:
-#line 3894 "preproc.y"
-{
-                                       yyval.str = make1_str("current_time");
-                               ;
-    break;}
-case 832:
-#line 3898 "preproc.y"
-{
-                                       if (yyvsp[-1].str != 0)
-                                               fprintf(stderr,"CURRENT_TIME(%s) precision not implemented; zero used instead", yyvsp[-1].str);
-                                       yyval.str = make1_str("current_time");
-                               ;
-    break;}
-case 833:
-#line 3904 "preproc.y"
-{
-                                       yyval.str = make1_str("current_timestamp");
-                               ;
-    break;}
-case 834:
-#line 3908 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) != 0)
-                                               fprintf(stderr,"CURRENT_TIMESTAMP(%s) precision not implemented; zero used instead",yyvsp[-1].str);
-                                       yyval.str = make1_str("current_timestamp");
-                               ;
-    break;}
-case 835:
-#line 3914 "preproc.y"
-{
-                                       yyval.str = make1_str("current_user");
-                               ;
-    break;}
-case 836:
-#line 3918 "preproc.y"
-{
-                                       yyval.str = make1_str("user");
-                               ;
-    break;}
-case 837:
-#line 3922 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("position ("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 838:
-#line 3926 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("substring ("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 839:
-#line 3931 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(both"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 840:
-#line 3935 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(leading"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 841:
-#line 3939 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(trailing"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 842:
-#line 3943 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 843:
-#line 3947 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 844:
-#line 3951 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("["), yyvsp[-2].str, make1_str("]"), yyvsp[0].str);
-                               ;
-    break;}
-case 845:
-#line 3955 "preproc.y"
-{
-                                       yyval.str = cat2_str(cat5_str(make1_str("["), yyvsp[-4].str, make1_str(":"), yyvsp[-2].str, make1_str("]")), yyvsp[0].str);
-                               ;
-    break;}
-case 846:
-#line 3959 "preproc.y"
-{      yyval.str = make1_str(""); ;
-    break;}
-case 847:
-#line 3963 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 848:
-#line 3965 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str); ;
-    break;}
-case 849:
-#line 3967 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str("using"), yyvsp[0].str); ;
-    break;}
-case 850:
-#line 3971 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("from"), yyvsp[0].str);
-                               ;
-    break;}
-case 851:
-#line 3975 "preproc.y"
-{      yyval.str = make1_str(""); ;
-    break;}
-case 852:
-#line 3977 "preproc.y"
-{ yyval.str = make1_str("?"); ;
-    break;}
-case 853:
-#line 3980 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 854:
-#line 3981 "preproc.y"
-{ yyval.str = make1_str("timezone_hour"); ;
-    break;}
-case 855:
-#line 3982 "preproc.y"
-{ yyval.str = make1_str("timezone_minute"); ;
-    break;}
-case 856:
-#line 3986 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("in"), yyvsp[0].str); ;
-    break;}
-case 857:
-#line 3988 "preproc.y"
-{      yyval.str = make1_str(""); ;
-    break;}
-case 858:
-#line 3992 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 859:
-#line 3996 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 860:
-#line 3998 "preproc.y"
-{      yyval.str = cat2_str(make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 861:
-#line 4000 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("+"), yyvsp[0].str); ;
-    break;}
-case 862:
-#line 4002 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 863:
-#line 4004 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("/"), yyvsp[0].str); ;
-    break;}
-case 864:
-#line 4006 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 865:
-#line 4008 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("*"), yyvsp[0].str); ;
-    break;}
-case 866:
-#line 4010 "preproc.y"
-{      yyval.str = cat2_str(make1_str("|"), yyvsp[0].str); ;
-    break;}
-case 867:
-#line 4012 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("::"), yyvsp[0].str);
-                               ;
-    break;}
-case 868:
-#line 4016 "preproc.y"
-{
-                                       yyval.str = cat3_str(make2_str(make1_str("cast("), yyvsp[-3].str), make1_str("as"), make2_str(yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 869:
-#line 4020 "preproc.y"
-{      yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 870:
-#line 4022 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 871:
-#line 4024 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 872:
-#line 4026 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 873:
-#line 4028 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 874:
-#line 4032 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-2].str, make1_str("()"));
-                               ;
-    break;}
-case 875:
-#line 4036 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-3].str, make1_str("("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 876:
-#line 4040 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("position("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 877:
-#line 4044 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("substring("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 878:
-#line 4049 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(both"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 879:
-#line 4053 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(leading"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 880:
-#line 4057 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(trailing"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 881:
-#line 4061 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 882:
-#line 4067 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 883:
-#line 4071 "preproc.y"
-{      yyval.str = make1_str(""); ;
-    break;}
-case 884:
-#line 4075 "preproc.y"
-{      yyval.str = cat2_str(make1_str("from"), yyvsp[0].str); ;
-    break;}
-case 885:
-#line 4077 "preproc.y"
-{
-                                       yyval.str = make1_str("");
-                               ;
-    break;}
-case 886:
-#line 4083 "preproc.y"
-{      yyval.str = cat2_str(make1_str("for"), yyvsp[0].str); ;
-    break;}
-case 887:
-#line 4085 "preproc.y"
-{      yyval.str = make1_str(""); ;
-    break;}
-case 888:
-#line 4089 "preproc.y"
-{ yyval.str = cat3_str(yyvsp[-2].str, make1_str("from"), yyvsp[0].str); ;
-    break;}
-case 889:
-#line 4091 "preproc.y"
-{ yyval.str = cat2_str(make1_str("from"), yyvsp[0].str); ;
-    break;}
-case 890:
-#line 4093 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 891:
-#line 4097 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 892:
-#line 4101 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 893:
-#line 4105 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 894:
-#line 4107 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);;
-    break;}
-case 895:
-#line 4111 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str; 
-                               ;
-    break;}
-case 896:
-#line 4115 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 897:
-#line 4119 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 898:
-#line 4121 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);;
-    break;}
-case 899:
-#line 4140 "preproc.y"
-{ yyval.str = cat5_str(make1_str("case"), yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].str, make1_str("end")); ;
-    break;}
-case 900:
-#line 4142 "preproc.y"
-{
-                                       yyval.str = cat5_str(make1_str("nullif("), yyvsp[-3].str, make1_str(","), yyvsp[-1].str, make1_str(")"));
-
-                                       fprintf(stderr, "NULLIF() not yet fully implemented");
-                                ;
-    break;}
-case 901:
-#line 4148 "preproc.y"
-{
-                                       yyval.str = cat3_str(make1_str("coalesce("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 902:
-#line 4154 "preproc.y"
-{ yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 903:
-#line 4156 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 904:
-#line 4160 "preproc.y"
-{
-                                       yyval.str = cat4_str(make1_str("when"), yyvsp[-2].str, make1_str("then"), yyvsp[0].str);
-                               ;
-    break;}
-case 905:
-#line 4165 "preproc.y"
-{ yyval.str = cat2_str(make1_str("else"), yyvsp[0].str); ;
-    break;}
-case 906:
-#line 4166 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 907:
-#line 4170 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 908:
-#line 4174 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 909:
-#line 4178 "preproc.y"
-{       yyval.str = make1_str(""); ;
-    break;}
-case 910:
-#line 4182 "preproc.y"
-{
-                                       yyval.str = make3_str(yyvsp[-2].str, make1_str("."), yyvsp[0].str);
-                               ;
-    break;}
-case 911:
-#line 4186 "preproc.y"
-{
-                                       yyval.str = make3_str(yyvsp[-2].str, make1_str("."), yyvsp[0].str);
-                               ;
-    break;}
-case 912:
-#line 4192 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 913:
-#line 4194 "preproc.y"
-{ yyval.str = make3_str(yyvsp[-2].str, make1_str("."), yyvsp[0].str); ;
-    break;}
-case 914:
-#line 4196 "preproc.y"
-{ yyval.str = make2_str(yyvsp[-2].str, make1_str(".*")); ;
-    break;}
-case 915:
-#line 4207 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(","),yyvsp[0].str);  ;
-    break;}
-case 916:
-#line 4209 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 917:
-#line 4210 "preproc.y"
-{ yyval.str = make1_str("*"); ;
-    break;}
-case 918:
-#line 4214 "preproc.y"
-{
-                                       yyval.str = cat4_str(yyvsp[-3].str, yyvsp[-2].str, make1_str("="), yyvsp[0].str);
-                               ;
-    break;}
-case 919:
-#line 4218 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 920:
-#line 4222 "preproc.y"
-{
-                                       yyval.str = make2_str(yyvsp[-2].str, make1_str(".*"));
-                               ;
-    break;}
-case 921:
-#line 4233 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);  ;
-    break;}
-case 922:
-#line 4235 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 923:
-#line 4240 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("as"), yyvsp[0].str);
-                               ;
-    break;}
-case 924:
-#line 4244 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 925:
-#line 4248 "preproc.y"
-{
-                                       yyval.str = make2_str(yyvsp[-2].str, make1_str(".*"));
-                               ;
-    break;}
-case 926:
-#line 4252 "preproc.y"
-{
-                                       yyval.str = make1_str("*");
-                               ;
-    break;}
-case 927:
-#line 4257 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 928:
-#line 4258 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 929:
-#line 4262 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 930:
-#line 4266 "preproc.y"
-{
-                                       /* disallow refs to variable system tables */
-                                       if (strcmp(LogRelationName, yyvsp[0].str) == 0
-                                          || strcmp(VariableRelationName, yyvsp[0].str) == 0) {
-                                               sprintf(errortext, make1_str("%s cannot be accessed by users"),yyvsp[0].str);
-                                               yyerror(errortext);
-                                       }
-                                       else
-                                               yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 931:
-#line 4278 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 932:
-#line 4279 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 933:
-#line 4280 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 934:
-#line 4281 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 935:
-#line 4282 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 936:
-#line 4288 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 937:
-#line 4289 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 938:
-#line 4291 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 939:
-#line 4298 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 940:
-#line 4302 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 941:
-#line 4306 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 942:
-#line 4310 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 943:
-#line 4314 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 944:
-#line 4316 "preproc.y"
-{
-                                       yyval.str = make1_str("true");
-                               ;
-    break;}
-case 945:
-#line 4320 "preproc.y"
-{
-                                       yyval.str = make1_str("false");
-                               ;
-    break;}
-case 946:
-#line 4326 "preproc.y"
-{
-                                       yyval.str = cat2_str(make_name(), yyvsp[0].str);
-                               ;
-    break;}
-case 947:
-#line 4331 "preproc.y"
-{ yyval.str = make_name();;
-    break;}
-case 948:
-#line 4332 "preproc.y"
-{ yyval.str = make_name();;
-    break;}
-case 949:
-#line 4333 "preproc.y"
-{
-                                                       yyval.str = (char *)mm_alloc(strlen(yyvsp[0].str) + 3);
-                                                       yyval.str[0]='\'';
-                                                       strcpy(yyval.str+1, yyvsp[0].str);
-                                                       yyval.str[strlen(yyvsp[0].str)+2]='\0';
-                                                       yyval.str[strlen(yyvsp[0].str)+1]='\'';
-                                                       free(yyvsp[0].str);
-                                               ;
-    break;}
-case 950:
-#line 4341 "preproc.y"
-{ yyval.str = yyvsp[0].str;;
-    break;}
-case 951:
-#line 4349 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 952:
-#line 4351 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 953:
-#line 4353 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 954:
-#line 4363 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 955:
-#line 4364 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 956:
-#line 4365 "preproc.y"
-{ yyval.str = make1_str("absolute"); ;
-    break;}
-case 957:
-#line 4366 "preproc.y"
-{ yyval.str = make1_str("access"); ;
-    break;}
-case 958:
-#line 4367 "preproc.y"
-{ yyval.str = make1_str("action"); ;
-    break;}
-case 959:
-#line 4368 "preproc.y"
-{ yyval.str = make1_str("after"); ;
-    break;}
-case 960:
-#line 4369 "preproc.y"
-{ yyval.str = make1_str("aggregate"); ;
-    break;}
-case 961:
-#line 4370 "preproc.y"
-{ yyval.str = make1_str("backward"); ;
-    break;}
-case 962:
-#line 4371 "preproc.y"
-{ yyval.str = make1_str("before"); ;
-    break;}
-case 963:
-#line 4372 "preproc.y"
-{ yyval.str = make1_str("cache"); ;
-    break;}
-case 964:
-#line 4373 "preproc.y"
-{ yyval.str = make1_str("committed"); ;
-    break;}
-case 965:
-#line 4374 "preproc.y"
-{ yyval.str = make1_str("createdb"); ;
-    break;}
-case 966:
-#line 4375 "preproc.y"
-{ yyval.str = make1_str("createuser"); ;
-    break;}
-case 967:
-#line 4376 "preproc.y"
-{ yyval.str = make1_str("cycle"); ;
-    break;}
-case 968:
-#line 4377 "preproc.y"
-{ yyval.str = make1_str("database"); ;
-    break;}
-case 969:
-#line 4378 "preproc.y"
-{ yyval.str = make1_str("delimiters"); ;
-    break;}
-case 970:
-#line 4379 "preproc.y"
-{ yyval.str = make1_str("double"); ;
-    break;}
-case 971:
-#line 4380 "preproc.y"
-{ yyval.str = make1_str("each"); ;
-    break;}
-case 972:
-#line 4381 "preproc.y"
-{ yyval.str = make1_str("encoding"); ;
-    break;}
-case 973:
-#line 4382 "preproc.y"
-{ yyval.str = make1_str("exclusive"); ;
-    break;}
-case 974:
-#line 4383 "preproc.y"
-{ yyval.str = make1_str("forward"); ;
-    break;}
-case 975:
-#line 4384 "preproc.y"
-{ yyval.str = make1_str("function"); ;
-    break;}
-case 976:
-#line 4385 "preproc.y"
-{ yyval.str = make1_str("handler"); ;
-    break;}
-case 977:
-#line 4386 "preproc.y"
-{ yyval.str = make1_str("increment"); ;
-    break;}
-case 978:
-#line 4387 "preproc.y"
-{ yyval.str = make1_str("index"); ;
-    break;}
-case 979:
-#line 4388 "preproc.y"
-{ yyval.str = make1_str("inherits"); ;
-    break;}
-case 980:
-#line 4389 "preproc.y"
-{ yyval.str = make1_str("insensitive"); ;
-    break;}
-case 981:
-#line 4390 "preproc.y"
-{ yyval.str = make1_str("instead"); ;
-    break;}
-case 982:
-#line 4391 "preproc.y"
-{ yyval.str = make1_str("isnull"); ;
-    break;}
-case 983:
-#line 4392 "preproc.y"
-{ yyval.str = make1_str("key"); ;
-    break;}
-case 984:
-#line 4393 "preproc.y"
-{ yyval.str = make1_str("language"); ;
-    break;}
-case 985:
-#line 4394 "preproc.y"
-{ yyval.str = make1_str("lancompiler"); ;
-    break;}
-case 986:
-#line 4395 "preproc.y"
-{ yyval.str = make1_str("location"); ;
-    break;}
-case 987:
-#line 4396 "preproc.y"
-{ yyval.str = make1_str("match"); ;
-    break;}
-case 988:
-#line 4397 "preproc.y"
-{ yyval.str = make1_str("maxvalue"); ;
-    break;}
-case 989:
-#line 4398 "preproc.y"
-{ yyval.str = make1_str("minvalue"); ;
-    break;}
-case 990:
-#line 4399 "preproc.y"
-{ yyval.str = make1_str("mode"); ;
-    break;}
-case 991:
-#line 4400 "preproc.y"
-{ yyval.str = make1_str("next"); ;
-    break;}
-case 992:
-#line 4401 "preproc.y"
-{ yyval.str = make1_str("nocreatedb"); ;
-    break;}
-case 993:
-#line 4402 "preproc.y"
-{ yyval.str = make1_str("nocreateuser"); ;
-    break;}
-case 994:
-#line 4403 "preproc.y"
-{ yyval.str = make1_str("nothing"); ;
-    break;}
-case 995:
-#line 4404 "preproc.y"
-{ yyval.str = make1_str("notnull"); ;
-    break;}
-case 996:
-#line 4405 "preproc.y"
-{ yyval.str = make1_str("of"); ;
-    break;}
-case 997:
-#line 4406 "preproc.y"
-{ yyval.str = make1_str("oids"); ;
-    break;}
-case 998:
-#line 4407 "preproc.y"
-{ yyval.str = make1_str("only"); ;
-    break;}
-case 999:
-#line 4408 "preproc.y"
-{ yyval.str = make1_str("operator"); ;
-    break;}
-case 1000:
-#line 4409 "preproc.y"
-{ yyval.str = make1_str("option"); ;
-    break;}
-case 1001:
-#line 4410 "preproc.y"
-{ yyval.str = make1_str("password"); ;
-    break;}
-case 1002:
-#line 4411 "preproc.y"
-{ yyval.str = make1_str("prior"); ;
-    break;}
-case 1003:
-#line 4412 "preproc.y"
-{ yyval.str = make1_str("privileges"); ;
-    break;}
-case 1004:
-#line 4413 "preproc.y"
-{ yyval.str = make1_str("procedural"); ;
-    break;}
-case 1005:
-#line 4414 "preproc.y"
-{ yyval.str = make1_str("read"); ;
-    break;}
-case 1006:
-#line 4416 "preproc.y"
-{ yyval.str = make1_str("relative"); ;
-    break;}
-case 1007:
-#line 4417 "preproc.y"
-{ yyval.str = make1_str("rename"); ;
-    break;}
-case 1008:
-#line 4418 "preproc.y"
-{ yyval.str = make1_str("returns"); ;
-    break;}
-case 1009:
-#line 4419 "preproc.y"
-{ yyval.str = make1_str("row"); ;
-    break;}
-case 1010:
-#line 4420 "preproc.y"
-{ yyval.str = make1_str("rule"); ;
-    break;}
-case 1011:
-#line 4421 "preproc.y"
-{ yyval.str = make1_str("scroll"); ;
-    break;}
-case 1012:
-#line 4422 "preproc.y"
-{ yyval.str = make1_str("sequence"); ;
-    break;}
-case 1013:
-#line 4423 "preproc.y"
-{ yyval.str = make1_str("serial"); ;
-    break;}
-case 1014:
-#line 4424 "preproc.y"
-{ yyval.str = make1_str("serializable"); ;
-    break;}
-case 1015:
-#line 4425 "preproc.y"
-{ yyval.str = make1_str("share"); ;
-    break;}
-case 1016:
-#line 4426 "preproc.y"
-{ yyval.str = make1_str("start"); ;
-    break;}
-case 1017:
-#line 4427 "preproc.y"
-{ yyval.str = make1_str("statement"); ;
-    break;}
-case 1018:
-#line 4428 "preproc.y"
-{ yyval.str = make1_str("stdin"); ;
-    break;}
-case 1019:
-#line 4429 "preproc.y"
-{ yyval.str = make1_str("stdout"); ;
-    break;}
-case 1020:
-#line 4430 "preproc.y"
-{ yyval.str = make1_str("time"); ;
-    break;}
-case 1021:
-#line 4431 "preproc.y"
-{ yyval.str = make1_str("timestamp"); ;
-    break;}
-case 1022:
-#line 4432 "preproc.y"
-{ yyval.str = make1_str("timezone_hour"); ;
-    break;}
-case 1023:
-#line 4433 "preproc.y"
-{ yyval.str = make1_str("timezone_minute"); ;
-    break;}
-case 1024:
-#line 4434 "preproc.y"
-{ yyval.str = make1_str("trigger"); ;
-    break;}
-case 1025:
-#line 4435 "preproc.y"
-{ yyval.str = make1_str("trusted"); ;
-    break;}
-case 1026:
-#line 4436 "preproc.y"
-{ yyval.str = make1_str("type"); ;
-    break;}
-case 1027:
-#line 4437 "preproc.y"
-{ yyval.str = make1_str("valid"); ;
-    break;}
-case 1028:
-#line 4438 "preproc.y"
-{ yyval.str = make1_str("version"); ;
-    break;}
-case 1029:
-#line 4439 "preproc.y"
-{ yyval.str = make1_str("zone"); ;
-    break;}
-case 1030:
-#line 4440 "preproc.y"
-{ yyval.str = make1_str("at"); ;
-    break;}
-case 1031:
-#line 4441 "preproc.y"
-{ yyval.str = make1_str("bool"); ;
-    break;}
-case 1032:
-#line 4442 "preproc.y"
-{ yyval.str = make1_str("break"); ;
-    break;}
-case 1033:
-#line 4443 "preproc.y"
-{ yyval.str = make1_str("call"); ;
-    break;}
-case 1034:
-#line 4444 "preproc.y"
-{ yyval.str = make1_str("connect"); ;
-    break;}
-case 1035:
-#line 4445 "preproc.y"
-{ yyval.str = make1_str("continue"); ;
-    break;}
-case 1036:
-#line 4446 "preproc.y"
-{ yyval.str = make1_str("deallocate"); ;
-    break;}
-case 1037:
-#line 4447 "preproc.y"
-{ yyval.str = make1_str("disconnect"); ;
-    break;}
-case 1038:
-#line 4448 "preproc.y"
-{ yyval.str = make1_str("found"); ;
-    break;}
-case 1039:
-#line 4449 "preproc.y"
-{ yyval.str = make1_str("go"); ;
-    break;}
-case 1040:
-#line 4450 "preproc.y"
-{ yyval.str = make1_str("goto"); ;
-    break;}
-case 1041:
-#line 4451 "preproc.y"
-{ yyval.str = make1_str("identified"); ;
-    break;}
-case 1042:
-#line 4452 "preproc.y"
-{ yyval.str = make1_str("immediate"); ;
-    break;}
-case 1043:
-#line 4453 "preproc.y"
-{ yyval.str = make1_str("indicator"); ;
-    break;}
-case 1044:
-#line 4454 "preproc.y"
-{ yyval.str = make1_str("int"); ;
-    break;}
-case 1045:
-#line 4455 "preproc.y"
-{ yyval.str = make1_str("long"); ;
-    break;}
-case 1046:
-#line 4456 "preproc.y"
-{ yyval.str = make1_str("off"); ;
-    break;}
-case 1047:
-#line 4457 "preproc.y"
-{ yyval.str = make1_str("open"); ;
-    break;}
-case 1048:
-#line 4458 "preproc.y"
-{ yyval.str = make1_str("prepare"); ;
-    break;}
-case 1049:
-#line 4459 "preproc.y"
-{ yyval.str = make1_str("release"); ;
-    break;}
-case 1050:
-#line 4460 "preproc.y"
-{ yyval.str = make1_str("section"); ;
-    break;}
-case 1051:
-#line 4461 "preproc.y"
-{ yyval.str = make1_str("short"); ;
-    break;}
-case 1052:
-#line 4462 "preproc.y"
-{ yyval.str = make1_str("signed"); ;
-    break;}
-case 1053:
-#line 4463 "preproc.y"
-{ yyval.str = make1_str("sqlerror"); ;
-    break;}
-case 1054:
-#line 4464 "preproc.y"
-{ yyval.str = make1_str("sqlprint"); ;
-    break;}
-case 1055:
-#line 4465 "preproc.y"
-{ yyval.str = make1_str("sqlwarning"); ;
-    break;}
-case 1056:
-#line 4466 "preproc.y"
-{ yyval.str = make1_str("stop"); ;
-    break;}
-case 1057:
-#line 4467 "preproc.y"
-{ yyval.str = make1_str("struct"); ;
-    break;}
-case 1058:
-#line 4468 "preproc.y"
-{ yyval.str = make1_str("unsigned"); ;
-    break;}
-case 1059:
-#line 4469 "preproc.y"
-{ yyval.str = make1_str("var"); ;
-    break;}
-case 1060:
-#line 4470 "preproc.y"
-{ yyval.str = make1_str("whenever"); ;
-    break;}
-case 1061:
-#line 4482 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1062:
-#line 4483 "preproc.y"
-{ yyval.str = make1_str("abort"); ;
-    break;}
-case 1063:
-#line 4484 "preproc.y"
-{ yyval.str = make1_str("analyze"); ;
-    break;}
-case 1064:
-#line 4485 "preproc.y"
-{ yyval.str = make1_str("binary"); ;
-    break;}
-case 1065:
-#line 4486 "preproc.y"
-{ yyval.str = make1_str("case"); ;
-    break;}
-case 1066:
-#line 4487 "preproc.y"
-{ yyval.str = make1_str("cluster"); ;
-    break;}
-case 1067:
-#line 4488 "preproc.y"
-{ yyval.str = make1_str("coalesce"); ;
-    break;}
-case 1068:
-#line 4489 "preproc.y"
-{ yyval.str = make1_str("constraint"); ;
-    break;}
-case 1069:
-#line 4490 "preproc.y"
-{ yyval.str = make1_str("copy"); ;
-    break;}
-case 1070:
-#line 4491 "preproc.y"
-{ yyval.str = make1_str("current"); ;
-    break;}
-case 1071:
-#line 4492 "preproc.y"
-{ yyval.str = make1_str("do"); ;
-    break;}
-case 1072:
-#line 4493 "preproc.y"
-{ yyval.str = make1_str("else"); ;
-    break;}
-case 1073:
-#line 4494 "preproc.y"
-{ yyval.str = make1_str("end"); ;
-    break;}
-case 1074:
-#line 4495 "preproc.y"
-{ yyval.str = make1_str("explain"); ;
-    break;}
-case 1075:
-#line 4496 "preproc.y"
-{ yyval.str = make1_str("extend"); ;
-    break;}
-case 1076:
-#line 4497 "preproc.y"
-{ yyval.str = make1_str("false"); ;
-    break;}
-case 1077:
-#line 4498 "preproc.y"
-{ yyval.str = make1_str("foreign"); ;
-    break;}
-case 1078:
-#line 4499 "preproc.y"
-{ yyval.str = make1_str("group"); ;
-    break;}
-case 1079:
-#line 4500 "preproc.y"
-{ yyval.str = make1_str("listen"); ;
-    break;}
-case 1080:
-#line 4501 "preproc.y"
-{ yyval.str = make1_str("load"); ;
-    break;}
-case 1081:
-#line 4502 "preproc.y"
-{ yyval.str = make1_str("lock"); ;
-    break;}
-case 1082:
-#line 4503 "preproc.y"
-{ yyval.str = make1_str("move"); ;
-    break;}
-case 1083:
-#line 4504 "preproc.y"
-{ yyval.str = make1_str("new"); ;
-    break;}
-case 1084:
-#line 4505 "preproc.y"
-{ yyval.str = make1_str("none"); ;
-    break;}
-case 1085:
-#line 4506 "preproc.y"
-{ yyval.str = make1_str("nullif"); ;
-    break;}
-case 1086:
-#line 4507 "preproc.y"
-{ yyval.str = make1_str("order"); ;
-    break;}
-case 1087:
-#line 4508 "preproc.y"
-{ yyval.str = make1_str("position"); ;
-    break;}
-case 1088:
-#line 4509 "preproc.y"
-{ yyval.str = make1_str("precision"); ;
-    break;}
-case 1089:
-#line 4510 "preproc.y"
-{ yyval.str = make1_str("reset"); ;
-    break;}
-case 1090:
-#line 4511 "preproc.y"
-{ yyval.str = make1_str("setof"); ;
-    break;}
-case 1091:
-#line 4512 "preproc.y"
-{ yyval.str = make1_str("show"); ;
-    break;}
-case 1092:
-#line 4513 "preproc.y"
-{ yyval.str = make1_str("table"); ;
-    break;}
-case 1093:
-#line 4514 "preproc.y"
-{ yyval.str = make1_str("then"); ;
-    break;}
-case 1094:
-#line 4515 "preproc.y"
-{ yyval.str = make1_str("transaction"); ;
-    break;}
-case 1095:
-#line 4516 "preproc.y"
-{ yyval.str = make1_str("true"); ;
-    break;}
-case 1096:
-#line 4517 "preproc.y"
-{ yyval.str = make1_str("vacuum"); ;
-    break;}
-case 1097:
-#line 4518 "preproc.y"
-{ yyval.str = make1_str("verbose"); ;
-    break;}
-case 1098:
-#line 4519 "preproc.y"
-{ yyval.str = make1_str("when"); ;
-    break;}
-case 1099:
-#line 4523 "preproc.y"
-{
-                                       if (QueryIsRule)
-                                               yyval.str = make1_str("current");
-                                       else
-                                               yyerror("CURRENT used in non-rule query");
-                               ;
-    break;}
-case 1100:
-#line 4530 "preproc.y"
-{
-                                       if (QueryIsRule)
-                                               yyval.str = make1_str("new");
-                                       else
-                                               yyerror("NEW used in non-rule query");
-                               ;
-    break;}
-case 1101:
-#line 4546 "preproc.y"
-{
-                       yyval.str = make5_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str, make1_str(","), yyvsp[-1].str);
-                ;
-    break;}
-case 1102:
-#line 4550 "preproc.y"
-{
-                       yyval.str = make1_str("NULL,NULL,NULL,\"DEFAULT\"");
-                ;
-    break;}
-case 1103:
-#line 4555 "preproc.y"
-{
-                      yyval.str = make3_str(make1_str("NULL,"), yyvsp[0].str, make1_str(",NULL"));
-               ;
-    break;}
-case 1104:
-#line 4560 "preproc.y"
-{
-                 /* old style: dbname[@server][:port] */
-                 if (strlen(yyvsp[-1].str) > 0 && *(yyvsp[-1].str) != '@')
-                 {
-                   sprintf(errortext, "parse error at or near '%s'", yyvsp[-1].str);
-                   yyerror(errortext);
-                 }
-
-                 yyval.str = make5_str(make1_str("\""), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str, make1_str("\""));
-               ;
-    break;}
-case 1105:
-#line 4571 "preproc.y"
-{
-                 /* new style: <tcp|unix>:postgresql://server[:port][/dbname] */
-                  if (strncmp(yyvsp[-4].str, "://", 3) != 0)
-                 {
-                   sprintf(errortext, "parse error at or near '%s'", yyvsp[-4].str);
-                   yyerror(errortext);
-                 }
-
-                 if (strncmp(yyvsp[-5].str, "unix", 4) == 0 && strncmp(yyvsp[-4].str + 3, "localhost", 9) != 0)
-                 {
-                   sprintf(errortext, "unix domain sockets only work on 'localhost' but not on '%9.9s'", yyvsp[-4].str);
-                    yyerror(errortext);
-                 }
-
-                 if (strncmp(yyvsp[-5].str, "unix", 4) != 0 && strncmp(yyvsp[-5].str, "tcp", 3) != 0)
-                 {
-                   sprintf(errortext, "only protocols 'tcp' and 'unix' are supported");
-                    yyerror(errortext);
-                 }
-       
-                 yyval.str = make4_str(make5_str(make1_str("\""), yyvsp[-5].str, yyvsp[-4].str, yyvsp[-3].str, make1_str("/")), yyvsp[-1].str, yyvsp[0].str, make1_str("\""));
-               ;
-    break;}
-case 1106:
-#line 4594 "preproc.y"
-{
-                 yyval.str = yyvsp[0].str;
-               ;
-    break;}
-case 1107:
-#line 4598 "preproc.y"
-{
-                 yyval.str = mm_strdup(yyvsp[0].str);
-                 yyval.str[0] = '\"';
-                 yyval.str[strlen(yyval.str) - 1] = '\"';
-                 free(yyvsp[0].str);
-               ;
-    break;}
-case 1108:
-#line 4606 "preproc.y"
-{
-                 if (strcmp(yyvsp[0].str, "postgresql") != 0 && strcmp(yyvsp[0].str, "postgres") != 0)
-                 {
-                   sprintf(errortext, "parse error at or near '%s'", yyvsp[0].str);
-                   yyerror(errortext); 
-                 }
-
-                 if (strcmp(yyvsp[-1].str, "tcp") != 0 && strcmp(yyvsp[-1].str, "unix") != 0)
-                 {
-                   sprintf(errortext, "Illegal connection type %s", yyvsp[-1].str);
-                   yyerror(errortext);
-                 }
-
-                 yyval.str = make3_str(yyvsp[-1].str, make1_str(":"), yyvsp[0].str);
-               ;
-    break;}
-case 1109:
-#line 4623 "preproc.y"
-{
-                 if (strcmp(yyvsp[-1].str, "@") != 0 && strcmp(yyvsp[-1].str, "://") != 0)
-                 {
-                   sprintf(errortext, "parse error at or near '%s'", yyvsp[-1].str);
-                   yyerror(errortext);
-                 }
-
-                 yyval.str = make2_str(yyvsp[-1].str, yyvsp[0].str);
-               ;
-    break;}
-case 1110:
-#line 4633 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1111:
-#line 4634 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1112:
-#line 4636 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1113:
-#line 4637 "preproc.y"
-{ yyval.str = make3_str(yyvsp[-2].str, make1_str("."), yyvsp[0].str); ;
-    break;}
-case 1114:
-#line 4639 "preproc.y"
-{ yyval.str = make2_str(make1_str(":"), yyvsp[0].str); ;
-    break;}
-case 1115:
-#line 4640 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1116:
-#line 4642 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1117:
-#line 4643 "preproc.y"
-{ yyval.str = make1_str("NULL"); ;
-    break;}
-case 1118:
-#line 4645 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1119:
-#line 4646 "preproc.y"
-{ yyval.str = make1_str("NULL,NULL"); ;
-    break;}
-case 1120:
-#line 4649 "preproc.y"
-{
-                        yyval.str = make2_str(yyvsp[0].str, make1_str(",NULL"));
-               ;
-    break;}
-case 1121:
-#line 4653 "preproc.y"
-{
-                       yyval.str = make3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                ;
-    break;}
-case 1122:
-#line 4657 "preproc.y"
-{
-                       yyval.str = make3_str(yyvsp[-3].str, make1_str(","), yyvsp[0].str);
-                ;
-    break;}
-case 1123:
-#line 4661 "preproc.y"
-{
-                       yyval.str = make3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-                ;
-    break;}
-case 1124:
-#line 4665 "preproc.y"
-{ if (yyvsp[0].str[0] == '\"')
-                               yyval.str = yyvsp[0].str;
-                         else
-                               yyval.str = make3_str(make1_str("\""), yyvsp[0].str, make1_str("\""));
-                       ;
-    break;}
-case 1125:
-#line 4670 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1126:
-#line 4671 "preproc.y"
-{ yyval.str = make3_str(make1_str("\""), yyvsp[0].str, make1_str("\"")); ;
-    break;}
-case 1127:
-#line 4674 "preproc.y"
-{ /* check if we have a char variable */
-                       struct variable *p = find_variable(yyvsp[0].str);
-                       enum ECPGttype typ = p->type->typ;
-
-                       /* if array see what's inside */
-                       if (typ == ECPGt_array)
-                               typ = p->type->u.element->typ;
-
-                        switch (typ)
-                        {
-                            case ECPGt_char:
-                            case ECPGt_unsigned_char:
-                                yyval.str = yyvsp[0].str;
-                                break;
-                            case ECPGt_varchar:
-                                yyval.str = make2_str(yyvsp[0].str, make1_str(".arr"));
-                                break;
-                            default:
-                                yyerror("invalid datatype");
-                                break;
-                        }
-               ;
-    break;}
-case 1128:
-#line 4698 "preproc.y"
-{
-                       if (strlen(yyvsp[-1].str) == 0)
-                               yyerror("parse error");
-                               
-                       if (strcmp(yyvsp[-1].str, "?") != 0)
-                       {
-                               sprintf(errortext, "parse error at or near %s", yyvsp[-1].str);
-                               yyerror(errortext);
-                       }
-                       
-                       yyval.str = make2_str(make1_str("?"), yyvsp[0].str);
-               ;
-    break;}
-case 1129:
-#line 4710 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1130:
-#line 4717 "preproc.y"
-{
-                                       struct cursor *ptr, *this;
-                                       struct variable *thisquery = (struct variable *)mm_alloc(sizeof(struct variable));
-
-                                       for (ptr = cur; ptr != NULL; ptr = ptr->next)
-                                       {
-                                               if (strcmp(yyvsp[-4].str, ptr->name) == 0)
-                                               {
-                                                       /* re-definition is a bug */
-                                                       sprintf(errortext, "cursor %s already defined", yyvsp[-4].str);
-                                                       yyerror(errortext);
-                                               }
-                                       }
-
-                                       this = (struct cursor *) mm_alloc(sizeof(struct cursor));
-
-                                       /* initial definition */
-                                       this->next = cur;
-                                       this->name = yyvsp[-4].str;
-                                       this->connection = connection;
-                                       this->command =  cat4_str(make1_str("declare"), mm_strdup(yyvsp[-4].str), yyvsp[-3].str, make1_str("cursor for ?"));
-                                       this->argsresult = NULL;
-
-                                       thisquery->type = &ecpg_query;
-                                       thisquery->brace_level = 0;
-                                       thisquery->next = NULL;
-                                       thisquery->name = (char *) mm_alloc(sizeof("ECPGprepared_statement(\"\")") + strlen(yyvsp[0].str));
-                                       sprintf(thisquery->name, "ECPGprepared_statement(\"%s\")", yyvsp[0].str);
-
-                                       this->argsinsert = NULL;
-                                       add_variable(&(this->argsinsert), thisquery, &no_indicator); 
-
-                                       cur = this;
-                                       
-                                       yyval.str = cat3_str(make1_str("/*"), mm_strdup(this->command), make1_str("*/"));
-                               ;
-    break;}
-case 1131:
-#line 4759 "preproc.y"
-{ yyval.str = make3_str(make1_str("ECPGdeallocate(__LINE__, \""), yyvsp[0].str, make1_str("\");")); ;
-    break;}
-case 1132:
-#line 4765 "preproc.y"
-{
-               fputs("/* exec sql begin declare section */", yyout);
-               output_line_number();
-       ;
-    break;}
-case 1133:
-#line 4770 "preproc.y"
-{
-               fprintf(yyout, "%s/* exec sql end declare section */", yyvsp[-1].str);
-               free(yyvsp[-1].str);
-               output_line_number();
-       ;
-    break;}
-case 1134:
-#line 4776 "preproc.y"
-{;
-    break;}
-case 1135:
-#line 4778 "preproc.y"
-{;
-    break;}
-case 1136:
-#line 4781 "preproc.y"
-{
-               yyval.str = make1_str("");
-       ;
-    break;}
-case 1137:
-#line 4785 "preproc.y"
-{
-               yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-       ;
-    break;}
-case 1138:
-#line 4790 "preproc.y"
-{
-               actual_storage[struct_level] = mm_strdup(yyvsp[0].str);
-       ;
-    break;}
-case 1139:
-#line 4794 "preproc.y"
-{
-               actual_type[struct_level].type_enum = yyvsp[0].type.type_enum;
-               actual_type[struct_level].type_dimension = yyvsp[0].type.type_dimension;
-               actual_type[struct_level].type_index = yyvsp[0].type.type_index;
-       ;
-    break;}
-case 1140:
-#line 4800 "preproc.y"
-{
-               yyval.str = cat4_str(yyvsp[-5].str, yyvsp[-3].type.type_str, yyvsp[-1].str, make1_str(";\n"));
-       ;
-    break;}
-case 1141:
-#line 4804 "preproc.y"
-{ yyval.str = make1_str("extern"); ;
-    break;}
-case 1142:
-#line 4805 "preproc.y"
-{ yyval.str = make1_str("static"); ;
-    break;}
-case 1143:
-#line 4806 "preproc.y"
-{ yyval.str = make1_str("signed"); ;
-    break;}
-case 1144:
-#line 4807 "preproc.y"
-{ yyval.str = make1_str("const"); ;
-    break;}
-case 1145:
-#line 4808 "preproc.y"
-{ yyval.str = make1_str("register"); ;
-    break;}
-case 1146:
-#line 4809 "preproc.y"
-{ yyval.str = make1_str("auto"); ;
-    break;}
-case 1147:
-#line 4810 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1148:
-#line 4813 "preproc.y"
-{
-                       yyval.type.type_enum = yyvsp[0].type_enum;
-                       yyval.type.type_str = mm_strdup(ECPGtype_name(yyvsp[0].type_enum));
-                       yyval.type.type_dimension = -1;
-                       yyval.type.type_index = -1;
-               ;
-    break;}
-case 1149:
-#line 4820 "preproc.y"
-{
-                       yyval.type.type_enum = ECPGt_varchar;
-                       yyval.type.type_str = make1_str("");
-                       yyval.type.type_dimension = -1;
-                       yyval.type.type_index = -1;
-               ;
-    break;}
-case 1150:
-#line 4827 "preproc.y"
-{
-                       yyval.type.type_enum = ECPGt_struct;
-                       yyval.type.type_str = yyvsp[0].str;
-                       yyval.type.type_dimension = -1;
-                       yyval.type.type_index = -1;
-               ;
-    break;}
-case 1151:
-#line 4834 "preproc.y"
-{
-                       yyval.type.type_enum = ECPGt_union;
-                       yyval.type.type_str = yyvsp[0].str;
-                       yyval.type.type_dimension = -1;
-                       yyval.type.type_index = -1;
-               ;
-    break;}
-case 1152:
-#line 4841 "preproc.y"
-{
-                       yyval.type.type_str = yyvsp[0].str;
-                       yyval.type.type_enum = ECPGt_int;
-               
-       yyval.type.type_dimension = -1;
-                       yyval.type.type_index = -1;
-               ;
-    break;}
-case 1153:
-#line 4849 "preproc.y"
-{
-                       /* this is for typedef'ed types */
-                       struct typedefs *this = get_typedef(yyvsp[0].str);
-
-                       yyval.type.type_str = (this->type->type_enum == ECPGt_varchar) ? make1_str("") : mm_strdup(this->name);
-                        yyval.type.type_enum = this->type->type_enum;
-                       yyval.type.type_dimension = this->type->type_dimension;
-                       yyval.type.type_index = this->type->type_index;
-                       struct_member_list[struct_level] = ECPGstruct_member_dup(this->struct_member_list);
-               ;
-    break;}
-case 1154:
-#line 4861 "preproc.y"
-{
-               yyval.str = cat4_str(yyvsp[-3].str, make1_str("{"), yyvsp[-1].str, make1_str("}"));
-       ;
-    break;}
-case 1155:
-#line 4865 "preproc.y"
-{ yyval.str = cat2_str(make1_str("enum"), yyvsp[0].str); ;
-    break;}
-case 1156:
-#line 4868 "preproc.y"
-{
-           ECPGfree_struct_member(struct_member_list[struct_level]);
-           free(actual_storage[struct_level--]);
-           yyval.str = cat4_str(yyvsp[-3].str, make1_str("{"), yyvsp[-1].str, make1_str("}"));
-       ;
-    break;}
-case 1157:
-#line 4875 "preproc.y"
-{
-           ECPGfree_struct_member(struct_member_list[struct_level]);
-           free(actual_storage[struct_level--]);
-           yyval.str = cat4_str(yyvsp[-3].str, make1_str("{"), yyvsp[-1].str, make1_str("}"));
-       ;
-    break;}
-case 1158:
-#line 4882 "preproc.y"
-{
-            struct_member_list[struct_level++] = NULL;
-            if (struct_level >= STRUCT_DEPTH)
-                 yyerror("Too many levels in nested structure definition");
-           yyval.str = cat2_str(make1_str("struct"), yyvsp[0].str);
-       ;
-    break;}
-case 1159:
-#line 4890 "preproc.y"
-{
-            struct_member_list[struct_level++] = NULL;
-            if (struct_level >= STRUCT_DEPTH)
-                 yyerror("Too many levels in nested structure definition");
-           yyval.str = cat2_str(make1_str("union"), yyvsp[0].str);
-       ;
-    break;}
-case 1160:
-#line 4897 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1161:
-#line 4898 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1162:
-#line 4900 "preproc.y"
-{ yyval.type_enum = ECPGt_short; ;
-    break;}
-case 1163:
-#line 4901 "preproc.y"
-{ yyval.type_enum = ECPGt_unsigned_short; ;
-    break;}
-case 1164:
-#line 4902 "preproc.y"
-{ yyval.type_enum = ECPGt_int; ;
-    break;}
-case 1165:
-#line 4903 "preproc.y"
-{ yyval.type_enum = ECPGt_unsigned_int; ;
-    break;}
-case 1166:
-#line 4904 "preproc.y"
-{ yyval.type_enum = ECPGt_long; ;
-    break;}
-case 1167:
-#line 4905 "preproc.y"
-{ yyval.type_enum = ECPGt_unsigned_long; ;
-    break;}
-case 1168:
-#line 4906 "preproc.y"
-{ yyval.type_enum = ECPGt_float; ;
-    break;}
-case 1169:
-#line 4907 "preproc.y"
-{ yyval.type_enum = ECPGt_double; ;
-    break;}
-case 1170:
-#line 4908 "preproc.y"
-{ yyval.type_enum = ECPGt_bool; ;
-    break;}
-case 1171:
-#line 4909 "preproc.y"
-{ yyval.type_enum = ECPGt_char; ;
-    break;}
-case 1172:
-#line 4910 "preproc.y"
-{ yyval.type_enum = ECPGt_unsigned_char; ;
-    break;}
-case 1173:
-#line 4912 "preproc.y"
-{ yyval.type_enum = ECPGt_varchar; ;
-    break;}
-case 1174:
-#line 4915 "preproc.y"
-{
-               yyval.str = yyvsp[0].str;
-       ;
-    break;}
-case 1175:
-#line 4919 "preproc.y"
-{
-               yyval.str = cat3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-       ;
-    break;}
-case 1176:
-#line 4924 "preproc.y"
-{
-                       struct ECPGtype * type;
-                        int dimension = yyvsp[-1].index.index1; /* dimension of array */
-                        int length = yyvsp[-1].index.index2;    /* lenght of string */
-                        char dim[14L], ascii_len[12];
-
-                       adjust_array(actual_type[struct_level].type_enum, &dimension, &length, actual_type[struct_level].type_dimension, actual_type[struct_level].type_index, strlen(yyvsp[-3].str));
-
-                       switch (actual_type[struct_level].type_enum)
-                       {
-                          case ECPGt_struct:
-                          case ECPGt_union:
-                               if (dimension < 0)
-                                   type = ECPGmake_struct_type(struct_member_list[struct_level], actual_type[struct_level].type_enum);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_struct_type(struct_member_list[struct_level], actual_type[struct_level].type_enum), dimension); 
-
-                               yyval.str = make4_str(yyvsp[-3].str, mm_strdup(yyvsp[-2].str), yyvsp[-1].index.str, yyvsp[0].str);
-                               break;
-                           case ECPGt_varchar:
-                               if (dimension == -1)
-                                   type = ECPGmake_simple_type(actual_type[struct_level].type_enum, length);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, length), dimension);
-
-                               switch(dimension)
-                               {
-                                  case 0:
-                                 case -1:
-                                  case 1:
-                                      *dim = '\0';
-                                      break;
-                                  default:
-                                      sprintf(dim, "[%d]", dimension);
-                                      break;
-                               }
-                              sprintf(ascii_len, "%d", length);
-
-                               if (length == 0)
-                                  yyerror ("pointer to varchar are not implemented");
-
-                              if (dimension == 0)
-                                  yyval.str = make4_str(make5_str(mm_strdup(actual_storage[struct_level]), make1_str(" struct varchar_"), mm_strdup(yyvsp[-2].str), make1_str(" { int len; char arr["), mm_strdup(ascii_len)), make1_str("]; } *"), mm_strdup(yyvsp[-2].str), yyvsp[0].str);
-                              else
-                                   yyval.str = make5_str(make5_str(mm_strdup(actual_storage[struct_level]), make1_str(" struct varchar_"), mm_strdup(yyvsp[-2].str), make1_str(" { int len; char arr["), mm_strdup(ascii_len)), make1_str("]; } "), mm_strdup(yyvsp[-2].str), mm_strdup(dim), yyvsp[0].str);
-
-                               break;
-                           case ECPGt_char:
-                           case ECPGt_unsigned_char:
-                               if (dimension == -1)
-                                   type = ECPGmake_simple_type(actual_type[struct_level].type_enum, length);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, length), dimension);
-
-                              yyval.str = make4_str(yyvsp[-3].str, mm_strdup(yyvsp[-2].str), yyvsp[-1].index.str, yyvsp[0].str);
-                               break;
-                           default:
-                               if (dimension < 0)
-                                   type = ECPGmake_simple_type(actual_type[struct_level].type_enum, 1);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, 1), dimension);
-
-                              yyval.str = make4_str(yyvsp[-3].str, mm_strdup(yyvsp[-2].str), yyvsp[-1].index.str, yyvsp[0].str);
-                               break;
-                       }
-
-                       if (struct_level == 0)
-                               new_variable(yyvsp[-2].str, type);
-                       else
-                               ECPGmake_struct_member(yyvsp[-2].str, type, &(struct_member_list[struct_level - 1]));
-
-                       free(yyvsp[-2].str);
-               ;
-    break;}
-case 1177:
-#line 4998 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1178:
-#line 4999 "preproc.y"
-{ yyval.str = make2_str(make1_str("="), yyvsp[0].str); ;
-    break;}
-case 1179:
-#line 5001 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1180:
-#line 5002 "preproc.y"
-{ yyval.str = make1_str("*"); ;
-    break;}
-case 1181:
-#line 5009 "preproc.y"
-{
-               /* this is only supported for compatibility */
-               yyval.str = cat3_str(make1_str("/* declare statement"), yyvsp[0].str, make1_str("*/"));
-       ;
-    break;}
-case 1182:
-#line 5016 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1183:
-#line 5018 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1184:
-#line 5019 "preproc.y"
-{ yyval.str = make1_str("CURRENT"); ;
-    break;}
-case 1185:
-#line 5020 "preproc.y"
-{ yyval.str = make1_str("ALL"); ;
-    break;}
-case 1186:
-#line 5021 "preproc.y"
-{ yyval.str = make1_str("CURRENT"); ;
-    break;}
-case 1187:
-#line 5023 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1188:
-#line 5024 "preproc.y"
-{ yyval.str = make1_str("DEFAULT"); ;
-    break;}
-case 1189:
-#line 5030 "preproc.y"
-{ 
-               struct variable *thisquery = (struct variable *)mm_alloc(sizeof(struct variable));
-
-               thisquery->type = &ecpg_query;
-               thisquery->brace_level = 0;
-               thisquery->next = NULL;
-               thisquery->name = yyvsp[0].str;
-
-               add_variable(&argsinsert, thisquery, &no_indicator); 
-
-               yyval.str = make1_str("?");
-       ;
-    break;}
-case 1190:
-#line 5043 "preproc.y"
-{
-               struct variable *thisquery = (struct variable *)mm_alloc(sizeof(struct variable));
-
-               thisquery->type = &ecpg_query;
-               thisquery->brace_level = 0;
-               thisquery->next = NULL;
-               thisquery->name = (char *) mm_alloc(sizeof("ECPGprepared_statement(\"\")") + strlen(yyvsp[0].str));
-               sprintf(thisquery->name, "ECPGprepared_statement(\"%s\")", yyvsp[0].str);
-
-               add_variable(&argsinsert, thisquery, &no_indicator); 
-       ;
-    break;}
-case 1191:
-#line 5054 "preproc.y"
-{
-               yyval.str = make1_str("?");
-       ;
-    break;}
-case 1193:
-#line 5059 "preproc.y"
-{ yyval.str = make3_str(make1_str("\""), yyvsp[0].str, make1_str("\"")); ;
-    break;}
-case 1194:
-#line 5065 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1195:
-#line 5070 "preproc.y"
-{
-               yyval.str = yyvsp[-1].str;
-;
-    break;}
-case 1196:
-#line 5074 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1197:
-#line 5075 "preproc.y"
-{
-                                       /* yyerror ("open cursor with variables not implemented yet"); */
-                                       yyval.str = make1_str("");
-                               ;
-    break;}
-case 1200:
-#line 5087 "preproc.y"
-{
-               yyval.str = make4_str(make1_str("\""), yyvsp[-2].str, make1_str("\", "), yyvsp[0].str);
-       ;
-    break;}
-case 1201:
-#line 5097 "preproc.y"
-{
-               if (strncmp(yyvsp[-1].str, "begin", 5) == 0)
-                        yyerror("RELEASE does not make sense when beginning a transaction");
-
-               fprintf(yyout, "ECPGtrans(__LINE__, %s, \"%s\");", connection, yyvsp[-1].str);
-               whenever_action(0);
-               fprintf(yyout, "ECPGdisconnect(\"\");"); 
-               whenever_action(0);
-               free(yyvsp[-1].str);
-       ;
-    break;}
-case 1202:
-#line 5113 "preproc.y"
-{
-                               yyval.str = yyvsp[0].str;
-                        ;
-    break;}
-case 1203:
-#line 5117 "preproc.y"
-{ yyval.str = make1_str("on"); ;
-    break;}
-case 1204:
-#line 5118 "preproc.y"
-{ yyval.str = make1_str("off"); ;
-    break;}
-case 1207:
-#line 5127 "preproc.y"
-{
-                               yyval.str = yyvsp[0].str;
-                        ;
-    break;}
-case 1208:
-#line 5135 "preproc.y"
-{
-               /* add entry to list */
-               struct typedefs *ptr, *this;
-               int dimension = yyvsp[-1].index.index1;
-               int length = yyvsp[-1].index.index2;
-
-               for (ptr = types; ptr != NULL; ptr = ptr->next)
-               {
-                       if (strcmp(yyvsp[-4].str, ptr->name) == 0)
-                       {
-                               /* re-definition is a bug */
-                               sprintf(errortext, "type %s already defined", yyvsp[-4].str);
-                               yyerror(errortext);
-                       }
-               }
-
-               adjust_array(yyvsp[-2].type.type_enum, &dimension, &length, yyvsp[-2].type.type_dimension, yyvsp[-2].type.type_index, strlen(yyvsp[0].str));
-
-               this = (struct typedefs *) mm_alloc(sizeof(struct typedefs));
-
-               /* initial definition */
-               this->next = types;
-               this->name = yyvsp[-4].str;
-               this->type = (struct this_type *) mm_alloc(sizeof(struct this_type));
-               this->type->type_enum = yyvsp[-2].type.type_enum;
-               this->type->type_str = mm_strdup(yyvsp[-4].str);
-               this->type->type_dimension = dimension; /* dimension of array */
-               this->type->type_index = length;    /* lenght of string */
-               this->struct_member_list = struct_member_list[struct_level];
-
-               if (yyvsp[-2].type.type_enum != ECPGt_varchar &&
-                   yyvsp[-2].type.type_enum != ECPGt_char &&
-                   yyvsp[-2].type.type_enum != ECPGt_unsigned_char &&
-                   this->type->type_index >= 0)
-                            yyerror("No multi-dimensional array support for simple data types");
-
-               types = this;
-
-               yyval.str = cat5_str(cat3_str(make1_str("/* exec sql type"), mm_strdup(yyvsp[-4].str), make1_str("is")), mm_strdup(yyvsp[-2].type.type_str), mm_strdup(yyvsp[-1].index.str), yyvsp[0].str, make1_str("*/"));
-       ;
-    break;}
-case 1209:
-#line 5177 "preproc.y"
-{
-                            yyval.index.index1 = 0;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat2_str(make1_str("[]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1210:
-#line 5183 "preproc.y"
-{
-                            yyval.index.index1 = 0;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat2_str(make1_str("[]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1211:
-#line 5189 "preproc.y"
-{
-                           char *txt = mm_alloc(20L);
-
-                           sprintf (txt, "%d", yyvsp[-2].ival);
-                            yyval.index.index1 = yyvsp[-2].ival;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat4_str(make1_str("["), txt, make1_str("]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1212:
-#line 5198 "preproc.y"
-{
-                           char *txt = mm_alloc(20L);
-
-                           sprintf (txt, "%d", yyvsp[-2].ival);
-                            yyval.index.index1 = yyvsp[-2].ival;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat4_str(make1_str("["), txt, make1_str("]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1213:
-#line 5207 "preproc.y"
-{
-                            yyval.index.index1 = -1;
-                            yyval.index.index2 = -1;
-                            yyval.index.str= make1_str("");
-                        ;
-    break;}
-case 1214:
-#line 5215 "preproc.y"
-{
-                            yyval.index.index1 = 0;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat2_str(make1_str("[]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1215:
-#line 5221 "preproc.y"
-{
-                            yyval.index.index1 = 0;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat2_str(make1_str("[]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1216:
-#line 5227 "preproc.y"
-{
-                           char *txt = mm_alloc(20L);
-
-                           sprintf (txt, "%d", yyvsp[-2].ival);
-                            yyval.index.index1 = yyvsp[-2].ival;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat4_str(make1_str("["), txt, make1_str("]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1217:
-#line 5236 "preproc.y"
-{
-                           char *txt = mm_alloc(20L);
-
-                           sprintf (txt, "%d", yyvsp[-2].ival);
-                            yyval.index.index1 = yyvsp[-2].ival;
-                            yyval.index.index2 = yyvsp[0].index.index1;
-                            yyval.index.str = cat4_str(make1_str("["), txt, make1_str("]"), yyvsp[0].index.str);
-                        ;
-    break;}
-case 1218:
-#line 5245 "preproc.y"
-{
-                            yyval.index.index1 = -1;
-                            yyval.index.index2 = -1;
-                            yyval.index.str= make1_str("");
-                        ;
-    break;}
-case 1219:
-#line 5251 "preproc.y"
-{ yyval.str = make1_str("reference"); ;
-    break;}
-case 1220:
-#line 5252 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1221:
-#line 5255 "preproc.y"
-{
-               yyval.type.type_str = make1_str("char");
-                yyval.type.type_enum = ECPGt_char;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1222:
-#line 5262 "preproc.y"
-{
-               yyval.type.type_str = make1_str("varchar");
-                yyval.type.type_enum = ECPGt_varchar;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1223:
-#line 5269 "preproc.y"
-{
-               yyval.type.type_str = make1_str("float");
-                yyval.type.type_enum = ECPGt_float;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1224:
-#line 5276 "preproc.y"
-{
-               yyval.type.type_str = make1_str("double");
-                yyval.type.type_enum = ECPGt_double;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1225:
-#line 5283 "preproc.y"
-{
-               yyval.type.type_str = make1_str("int");
-                       yyval.type.type_enum = ECPGt_int;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1226:
-#line 5290 "preproc.y"
-{
-               yyval.type.type_str = make1_str("int");
-                       yyval.type.type_enum = ECPGt_int;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1227:
-#line 5297 "preproc.y"
-{
-               yyval.type.type_str = make1_str("short");
-                       yyval.type.type_enum = ECPGt_short;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1228:
-#line 5304 "preproc.y"
-{
-               yyval.type.type_str = make1_str("long");
-                       yyval.type.type_enum = ECPGt_long;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1229:
-#line 5311 "preproc.y"
-{
-               yyval.type.type_str = make1_str("bool");
-                       yyval.type.type_enum = ECPGt_bool;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1230:
-#line 5318 "preproc.y"
-{
-               yyval.type.type_str = make1_str("unsigned int");
-                       yyval.type.type_enum = ECPGt_unsigned_int;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1231:
-#line 5325 "preproc.y"
-{
-               yyval.type.type_str = make1_str("unsigned short");
-                       yyval.type.type_enum = ECPGt_unsigned_short;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1232:
-#line 5332 "preproc.y"
-{
-               yyval.type.type_str = make1_str("unsigned long");
-                       yyval.type.type_enum = ECPGt_unsigned_long;
-               yyval.type.type_index = -1;
-               yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1233:
-#line 5339 "preproc.y"
-{
-               struct_member_list[struct_level++] = NULL;
-               if (struct_level >= STRUCT_DEPTH)
-                       yyerror("Too many levels in nested structure definition");
-       ;
-    break;}
-case 1234:
-#line 5344 "preproc.y"
-{
-               ECPGfree_struct_member(struct_member_list[struct_level--]);
-               yyval.type.type_str = cat3_str(make1_str("struct {"), yyvsp[-1].str, make1_str("}"));
-               yyval.type.type_enum = ECPGt_struct;
-                yyval.type.type_index = -1;
-                yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1235:
-#line 5352 "preproc.y"
-{
-               struct_member_list[struct_level++] = NULL;
-               if (struct_level >= STRUCT_DEPTH)
-                       yyerror("Too many levels in nested structure definition");
-       ;
-    break;}
-case 1236:
-#line 5357 "preproc.y"
-{
-               ECPGfree_struct_member(struct_member_list[struct_level--]);
-               yyval.type.type_str = cat3_str(make1_str("union {"), yyvsp[-1].str, make1_str("}"));
-               yyval.type.type_enum = ECPGt_union;
-                yyval.type.type_index = -1;
-                yyval.type.type_dimension = -1;
-       ;
-    break;}
-case 1237:
-#line 5365 "preproc.y"
-{
-               struct typedefs *this = get_typedef(yyvsp[0].str);
-
-               yyval.type.type_str = mm_strdup(yyvsp[0].str);
-               yyval.type.type_enum = this->type->type_enum;
-               yyval.type.type_dimension = this->type->type_dimension;
-               yyval.type.type_index = this->type->type_index;
-               struct_member_list[struct_level] = this->struct_member_list;
-       ;
-    break;}
-case 1240:
-#line 5378 "preproc.y"
-{
-               yyval.str = make1_str("");
-       ;
-    break;}
-case 1241:
-#line 5382 "preproc.y"
-{
-               yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-       ;
-    break;}
-case 1242:
-#line 5388 "preproc.y"
-{
-               actual_type[struct_level].type_enum = yyvsp[0].type.type_enum;
-               actual_type[struct_level].type_dimension = yyvsp[0].type.type_dimension;
-               actual_type[struct_level].type_index = yyvsp[0].type.type_index;
-       ;
-    break;}
-case 1243:
-#line 5394 "preproc.y"
-{
-               yyval.str = cat3_str(yyvsp[-3].type.type_str, yyvsp[-1].str, make1_str(";"));
-       ;
-    break;}
-case 1244:
-#line 5399 "preproc.y"
-{
-               yyval.str = yyvsp[0].str;
-       ;
-    break;}
-case 1245:
-#line 5403 "preproc.y"
-{
-               yyval.str = make3_str(yyvsp[-2].str, make1_str(","), yyvsp[0].str);
-       ;
-    break;}
-case 1246:
-#line 5408 "preproc.y"
-{
-                       int dimension = yyvsp[0].index.index1;
-                       int length = yyvsp[0].index.index2;
-                       struct ECPGtype * type;
-                        char dim[14L];
-
-                       adjust_array(actual_type[struct_level].type_enum, &dimension, &length, actual_type[struct_level].type_dimension, actual_type[struct_level].type_index, strlen(yyvsp[-2].str));
-
-                       switch (actual_type[struct_level].type_enum)
-                       {
-                          case ECPGt_struct:
-                          case ECPGt_union:
-                               if (dimension < 0)
-                                   type = ECPGmake_struct_type(struct_member_list[struct_level], actual_type[struct_level].type_enum);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_struct_type(struct_member_list[struct_level], actual_type[struct_level].type_enum), dimension); 
-
-                               break;
-                           case ECPGt_varchar:
-                               if (dimension == -1)
-                                   type = ECPGmake_simple_type(actual_type[struct_level].type_enum, length);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, length), dimension);
-
-                               switch(dimension)
-                               {
-                                  case 0:
-                                      strcpy(dim, "[]");
-                                      break;
-                                 case -1:
-                                  case 1:
-                                      *dim = '\0';
-                                      break;
-                                  default:
-                                      sprintf(dim, "[%d]", dimension);
-                                      break;
-                                }
-
-                               break;
-                           case ECPGt_char:
-                           case ECPGt_unsigned_char:
-                               if (dimension == -1)
-                                   type = ECPGmake_simple_type(actual_type[struct_level].type_enum, length);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, length), dimension);
-
-                               break;
-                           default:
-                              if (length >= 0)
-                                   yyerror("No multi-dimensional array support for simple data types");
-
-                               if (dimension < 0)
-                                   type = ECPGmake_simple_type(actual_type[struct_level].type_enum, 1);
-                               else
-                                   type = ECPGmake_array_type(ECPGmake_simple_type(actual_type[struct_level].type_enum, 1), dimension);
-
-                               break;
-                       }
-
-                       if (struct_level == 0)
-                               new_variable(yyvsp[-1].str, type);
-                       else
-                               ECPGmake_struct_member(yyvsp[-1].str, type, &(struct_member_list[struct_level - 1]));
-
-                       yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].index.str);
-               ;
-    break;}
-case 1247:
-#line 5479 "preproc.y"
-{
-               struct variable *p = find_variable(yyvsp[-4].str);
-               int dimension = yyvsp[-1].index.index1;
-               int length = yyvsp[-1].index.index2;
-               struct ECPGtype * type;
-
-               adjust_array(yyvsp[-2].type.type_enum, &dimension, &length, yyvsp[-2].type.type_dimension, yyvsp[-2].type.type_index, strlen(yyvsp[0].str));
-
-               switch (yyvsp[-2].type.type_enum)
-               {
-                  case ECPGt_struct:
-                  case ECPGt_union:
-                        if (dimension < 0)
-                            type = ECPGmake_struct_type(struct_member_list[struct_level], yyvsp[-2].type.type_enum);
-                        else
-                            type = ECPGmake_array_type(ECPGmake_struct_type(struct_member_list[struct_level], yyvsp[-2].type.type_enum), dimension); 
-                        break;
-                   case ECPGt_varchar:
-                        if (dimension == -1)
-                            type = ECPGmake_simple_type(yyvsp[-2].type.type_enum, length);
-                        else
-                            type = ECPGmake_array_type(ECPGmake_simple_type(yyvsp[-2].type.type_enum, length), dimension);
-
-                       break;
-                   case ECPGt_char:
-                   case ECPGt_unsigned_char:
-                        if (dimension == -1)
-                            type = ECPGmake_simple_type(yyvsp[-2].type.type_enum, length);
-                        else
-                            type = ECPGmake_array_type(ECPGmake_simple_type(yyvsp[-2].type.type_enum, length), dimension);
-
-                       break;
-                  default:
-                       if (length >= 0)
-                           yyerror("No multi-dimensional array support for simple data types");
-
-                        if (dimension < 0)
-                            type = ECPGmake_simple_type(yyvsp[-2].type.type_enum, 1);
-                        else
-                            type = ECPGmake_array_type(ECPGmake_simple_type(yyvsp[-2].type.type_enum, 1), dimension);
-
-                       break;
-               }       
-
-               ECPGfree_type(p->type);
-               p->type = type;
-
-               yyval.str = cat5_str(cat3_str(make1_str("/* exec sql var"), mm_strdup(yyvsp[-4].str), make1_str("is")), mm_strdup(yyvsp[-2].type.type_str), mm_strdup(yyvsp[-1].index.str), yyvsp[0].str, make1_str("*/"));
-       ;
-    break;}
-case 1248:
-#line 5533 "preproc.y"
-{
-       when_error.code = yyvsp[0].action.code;
-       when_error.command = yyvsp[0].action.command;
-       yyval.str = cat3_str(make1_str("/* exec sql whenever sqlerror "), yyvsp[0].action.str, make1_str("; */\n"));
-;
-    break;}
-case 1249:
-#line 5538 "preproc.y"
-{
-       when_nf.code = yyvsp[0].action.code;
-       when_nf.command = yyvsp[0].action.command;
-       yyval.str = cat3_str(make1_str("/* exec sql whenever not found "), yyvsp[0].action.str, make1_str("; */\n"));
-;
-    break;}
-case 1250:
-#line 5543 "preproc.y"
-{
-       when_warn.code = yyvsp[0].action.code;
-       when_warn.command = yyvsp[0].action.command;
-       yyval.str = cat3_str(make1_str("/* exec sql whenever sql_warning "), yyvsp[0].action.str, make1_str("; */\n"));
-;
-    break;}
-case 1251:
-#line 5549 "preproc.y"
-{
-       yyval.action.code = W_NOTHING;
-       yyval.action.command = NULL;
-       yyval.action.str = make1_str("continue");
-;
-    break;}
-case 1252:
-#line 5554 "preproc.y"
-{
-       yyval.action.code = W_SQLPRINT;
-       yyval.action.command = NULL;
-       yyval.action.str = make1_str("sqlprint");
-;
-    break;}
-case 1253:
-#line 5559 "preproc.y"
-{
-       yyval.action.code = W_STOP;
-       yyval.action.command = NULL;
-       yyval.action.str = make1_str("stop");
-;
-    break;}
-case 1254:
-#line 5564 "preproc.y"
-{
-        yyval.action.code = W_GOTO;
-        yyval.action.command = strdup(yyvsp[0].str);
-       yyval.action.str = cat2_str(make1_str("goto "), yyvsp[0].str);
-;
-    break;}
-case 1255:
-#line 5569 "preproc.y"
-{
-        yyval.action.code = W_GOTO;
-        yyval.action.command = strdup(yyvsp[0].str);
-       yyval.action.str = cat2_str(make1_str("goto "), yyvsp[0].str);
-;
-    break;}
-case 1256:
-#line 5574 "preproc.y"
-{
-       yyval.action.code = W_DO;
-       yyval.action.command = make4_str(yyvsp[-3].str, make1_str("("), yyvsp[-1].str, make1_str(")"));
-       yyval.action.str = cat2_str(make1_str("do"), mm_strdup(yyval.action.command));
-;
-    break;}
-case 1257:
-#line 5579 "preproc.y"
-{
-        yyval.action.code = W_BREAK;
-        yyval.action.command = NULL;
-        yyval.action.str = make1_str("break");
-;
-    break;}
-case 1258:
-#line 5584 "preproc.y"
-{
-       yyval.action.code = W_DO;
-       yyval.action.command = make4_str(yyvsp[-3].str, make1_str("("), yyvsp[-1].str, make1_str(")"));
-       yyval.action.str = cat2_str(make1_str("call"), mm_strdup(yyval.action.command));
-;
-    break;}
-case 1259:
-#line 5592 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str);
-                               ;
-    break;}
-case 1260:
-#line 5596 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 1261:
-#line 5598 "preproc.y"
-{      yyval.str = yyvsp[0].str;  ;
-    break;}
-case 1262:
-#line 5600 "preproc.y"
-{
-                                       yyval.str = yyvsp[0].str;
-                               ;
-    break;}
-case 1263:
-#line 5604 "preproc.y"
-{      yyval.str = cat2_str(make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 1264:
-#line 5606 "preproc.y"
-{       yyval.str = cat2_str(make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 1265:
-#line 5608 "preproc.y"
-{       yyval.str = cat2_str(yyvsp[-1].str, make1_str("%")); ;
-    break;}
-case 1266:
-#line 5610 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("+"), yyvsp[0].str); ;
-    break;}
-case 1267:
-#line 5612 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("-"), yyvsp[0].str); ;
-    break;}
-case 1268:
-#line 5614 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("/"), yyvsp[0].str); ;
-    break;}
-case 1269:
-#line 5616 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("%"), yyvsp[0].str); ;
-    break;}
-case 1270:
-#line 5618 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("*"), yyvsp[0].str); ;
-    break;}
-case 1271:
-#line 5620 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("<"), yyvsp[0].str); ;
-    break;}
-case 1272:
-#line 5622 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str(">"), yyvsp[0].str); ;
-    break;}
-case 1273:
-#line 5624 "preproc.y"
-{       yyval.str = cat2_str(yyvsp[-2].str, make1_str("= NULL")); ;
-    break;}
-case 1274:
-#line 5626 "preproc.y"
-{       yyval.str = cat2_str(make1_str("= NULL"), yyvsp[0].str); ;
-    break;}
-case 1275:
-#line 5628 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("="), yyvsp[0].str); ;
-    break;}
-case 1276:
-#line 5632 "preproc.y"
-{      yyval.str = cat2_str(make1_str(";"), yyvsp[0].str); ;
-    break;}
-case 1277:
-#line 5634 "preproc.y"
-{      yyval.str = cat2_str(make1_str("|"), yyvsp[0].str); ;
-    break;}
-case 1278:
-#line 5636 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-2].str, make1_str("::"), yyvsp[0].str);
-                               ;
-    break;}
-case 1279:
-#line 5640 "preproc.y"
-{
-                                       yyval.str = cat3_str(make2_str(make1_str("cast("), yyvsp[-3].str), make1_str("as"), make2_str(yyvsp[-1].str, make1_str(")")));
-                               ;
-    break;}
-case 1280:
-#line 5644 "preproc.y"
-{      yyval.str = make3_str(make1_str("("), yyvsp[-1].str, make1_str(")")); ;
-    break;}
-case 1281:
-#line 5646 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);       ;
-    break;}
-case 1282:
-#line 5648 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("like"), yyvsp[0].str); ;
-    break;}
-case 1283:
-#line 5650 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-3].str, make1_str("not like"), yyvsp[0].str); ;
-    break;}
-case 1284:
-#line 5652 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 1285:
-#line 5654 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 1286:
-#line 5656 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-3].str, make1_str("(*)")); 
-                               ;
-    break;}
-case 1287:
-#line 5660 "preproc.y"
-{
-                                       yyval.str = cat2_str(yyvsp[-2].str, make1_str("()")); 
-                               ;
-    break;}
-case 1288:
-#line 5664 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-3].str, make1_str("("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1289:
-#line 5668 "preproc.y"
-{
-                                       yyval.str = make1_str("current_date");
-                               ;
-    break;}
-case 1290:
-#line 5672 "preproc.y"
-{
-                                       yyval.str = make1_str("current_time");
-                               ;
-    break;}
-case 1291:
-#line 5676 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) != 0)
-                                               fprintf(stderr,"CURRENT_TIME(%s) precision not implemented; zero used instead", yyvsp[-1].str);
-                                       yyval.str = make1_str("current_time");
-                               ;
-    break;}
-case 1292:
-#line 5682 "preproc.y"
-{
-                                       yyval.str = make1_str("current_timestamp");
-                               ;
-    break;}
-case 1293:
-#line 5686 "preproc.y"
-{
-                                       if (atol(yyvsp[-1].str) != 0)
-                                               fprintf(stderr,"CURRENT_TIMESTAMP(%s) precision not implemented; zero used instead",yyvsp[-1].str);
-                                       yyval.str = make1_str("current_timestamp");
-                               ;
-    break;}
-case 1294:
-#line 5692 "preproc.y"
-{
-                                       yyval.str = make1_str("current_user");
-                               ;
-    break;}
-case 1295:
-#line 5696 "preproc.y"
-{
-                                       yyval.str = make1_str("user");
-                               ;
-    break;}
-case 1296:
-#line 5700 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("exists("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1297:
-#line 5704 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("extract("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1298:
-#line 5708 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("position("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1299:
-#line 5712 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("substring("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1300:
-#line 5717 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(both"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1301:
-#line 5721 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(leading"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1302:
-#line 5725 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim(trailing"), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1303:
-#line 5729 "preproc.y"
-{
-                                       yyval.str = make3_str(make1_str("trim("), yyvsp[-1].str, make1_str(")"));
-                               ;
-    break;}
-case 1304:
-#line 5733 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, make1_str("isnull")); ;
-    break;}
-case 1305:
-#line 5735 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-2].str, make1_str("is null")); ;
-    break;}
-case 1306:
-#line 5737 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-1].str, make1_str("notnull")); ;
-    break;}
-case 1307:
-#line 5739 "preproc.y"
-{      yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not null")); ;
-    break;}
-case 1308:
-#line 5746 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-2].str, make1_str("is true")); }
-                               ;
-    break;}
-case 1309:
-#line 5750 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not false")); }
-                               ;
-    break;}
-case 1310:
-#line 5754 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-2].str, make1_str("is false")); }
-                               ;
-    break;}
-case 1311:
-#line 5758 "preproc.y"
-{
-                               {       yyval.str = cat2_str(yyvsp[-3].str, make1_str("is not true")); }
-                               ;
-    break;}
-case 1312:
-#line 5762 "preproc.y"
-{
-                                       yyval.str = cat5_str(yyvsp[-4].str, make1_str("between"), yyvsp[-2].str, make1_str("and"), yyvsp[0].str); 
-                               ;
-    break;}
-case 1313:
-#line 5766 "preproc.y"
-{
-                                       yyval.str = cat5_str(yyvsp[-5].str, make1_str("not between"), yyvsp[-2].str, make1_str("and"), yyvsp[0].str); 
-                               ;
-    break;}
-case 1314:
-#line 5770 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str(" in ("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1315:
-#line 5774 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str(" not in ("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1316:
-#line 5778 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-4].str, yyvsp[-3].str, make3_str(make1_str("("), yyvsp[-1].str, make1_str(")"))); 
-                               ;
-    break;}
-case 1317:
-#line 5782 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("+("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1318:
-#line 5786 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("-("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1319:
-#line 5790 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("/("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1320:
-#line 5794 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("%("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1321:
-#line 5798 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("*("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1322:
-#line 5802 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("<("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1323:
-#line 5806 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str(">("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1324:
-#line 5810 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-4].str, make1_str("=("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1325:
-#line 5814 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-5].str, yyvsp[-4].str, make3_str(make1_str("any ("), yyvsp[-1].str, make1_str(")"))); 
-                               ;
-    break;}
-case 1326:
-#line 5818 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("+ any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1327:
-#line 5822 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("- any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1328:
-#line 5826 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("/ any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1329:
-#line 5830 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("% any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1330:
-#line 5834 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("* any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1331:
-#line 5838 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("< any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1332:
-#line 5842 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("> any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1333:
-#line 5846 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("= any("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1334:
-#line 5850 "preproc.y"
-{
-                                       yyval.str = cat3_str(yyvsp[-5].str, yyvsp[-4].str, make3_str(make1_str("all ("), yyvsp[-1].str, make1_str(")"))); 
-                               ;
-    break;}
-case 1335:
-#line 5854 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("+ all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1336:
-#line 5858 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("- all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1337:
-#line 5862 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("/ all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1338:
-#line 5866 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("% all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1339:
-#line 5870 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("* all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1340:
-#line 5874 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("< all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1341:
-#line 5878 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("> all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1342:
-#line 5882 "preproc.y"
-{
-                                       yyval.str = make4_str(yyvsp[-5].str, make1_str("=all("), yyvsp[-1].str, make1_str(")")); 
-                               ;
-    break;}
-case 1343:
-#line 5886 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("and"), yyvsp[0].str); ;
-    break;}
-case 1344:
-#line 5888 "preproc.y"
-{      yyval.str = cat3_str(yyvsp[-2].str, make1_str("or"), yyvsp[0].str); ;
-    break;}
-case 1345:
-#line 5890 "preproc.y"
-{      yyval.str = cat2_str(make1_str("not"), yyvsp[0].str); ;
-    break;}
-case 1346:
-#line 5892 "preproc.y"
-{       yyval.str = yyvsp[0].str; ;
-    break;}
-case 1347:
-#line 5894 "preproc.y"
-{      yyval.str = yyvsp[0].str; ;
-    break;}
-case 1350:
-#line 5899 "preproc.y"
-{ reset_variables();;
-    break;}
-case 1351:
-#line 5901 "preproc.y"
-{ yyval.str = make1_str(""); ;
-    break;}
-case 1352:
-#line 5902 "preproc.y"
-{ yyval.str = make2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 1353:
-#line 5904 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1354:
-#line 5905 "preproc.y"
-{ yyval.str = make2_str(yyvsp[-1].str, yyvsp[0].str); ;
-    break;}
-case 1355:
-#line 5907 "preproc.y"
-{
-               add_variable(&argsresult, find_variable(yyvsp[-1].str), (yyvsp[0].str == NULL) ? &no_indicator : find_variable(yyvsp[0].str)); 
-;
-    break;}
-case 1356:
-#line 5911 "preproc.y"
-{
-               add_variable(&argsinsert, find_variable(yyvsp[-1].str), (yyvsp[0].str == NULL) ? &no_indicator : find_variable(yyvsp[0].str)); 
-;
-    break;}
-case 1357:
-#line 5915 "preproc.y"
-{
-               add_variable(&argsinsert, find_variable(yyvsp[0].str), &no_indicator); 
-               yyval.str = make1_str("?");
-;
-    break;}
-case 1358:
-#line 5920 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1359:
-#line 5922 "preproc.y"
-{ yyval.str = NULL; ;
-    break;}
-case 1360:
-#line 5923 "preproc.y"
-{ check_indicator((find_variable(yyvsp[0].str))->type); yyval.str = yyvsp[0].str; ;
-    break;}
-case 1361:
-#line 5924 "preproc.y"
-{ check_indicator((find_variable(yyvsp[0].str))->type); yyval.str = yyvsp[0].str; ;
-    break;}
-case 1362:
-#line 5925 "preproc.y"
-{ check_indicator((find_variable(yyvsp[0].str))->type); yyval.str = yyvsp[0].str; ;
-    break;}
-case 1363:
-#line 5927 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1364:
-#line 5928 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1365:
-#line 5933 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1366:
-#line 5935 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1367:
-#line 5937 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1368:
-#line 5939 "preproc.y"
-{
-                       yyval.str = make2_str(yyvsp[-1].str, yyvsp[0].str);
-               ;
-    break;}
-case 1370:
-#line 5943 "preproc.y"
-{ yyval.str = make1_str(";"); ;
-    break;}
-case 1371:
-#line 5945 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1372:
-#line 5946 "preproc.y"
-{ yyval.str = make3_str(make1_str("\""), yyvsp[0].str, make1_str("\"")); ;
-    break;}
-case 1373:
-#line 5947 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1374:
-#line 5948 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1375:
-#line 5949 "preproc.y"
-{ yyval.str = make1_str("*"); ;
-    break;}
-case 1376:
-#line 5950 "preproc.y"
-{ yyval.str = make1_str("+"); ;
-    break;}
-case 1377:
-#line 5951 "preproc.y"
-{ yyval.str = make1_str("-"); ;
-    break;}
-case 1378:
-#line 5952 "preproc.y"
-{ yyval.str = make1_str("/"); ;
-    break;}
-case 1379:
-#line 5953 "preproc.y"
-{ yyval.str = make1_str("%"); ;
-    break;}
-case 1380:
-#line 5954 "preproc.y"
-{ yyval.str = make1_str("auto"); ;
-    break;}
-case 1381:
-#line 5955 "preproc.y"
-{ yyval.str = make1_str("bool"); ;
-    break;}
-case 1382:
-#line 5956 "preproc.y"
-{ yyval.str = make1_str("char"); ;
-    break;}
-case 1383:
-#line 5957 "preproc.y"
-{ yyval.str = make1_str("const"); ;
-    break;}
-case 1384:
-#line 5958 "preproc.y"
-{ yyval.str = make1_str("double"); ;
-    break;}
-case 1385:
-#line 5959 "preproc.y"
-{ yyval.str = make1_str("enum"); ;
-    break;}
-case 1386:
-#line 5960 "preproc.y"
-{ yyval.str = make1_str("extern"); ;
-    break;}
-case 1387:
-#line 5961 "preproc.y"
-{ yyval.str = make1_str("float"); ;
-    break;}
-case 1388:
-#line 5962 "preproc.y"
-{ yyval.str = make1_str("int"); ;
-    break;}
-case 1389:
-#line 5963 "preproc.y"
-{ yyval.str = make1_str("long"); ;
-    break;}
-case 1390:
-#line 5964 "preproc.y"
-{ yyval.str = make1_str("register"); ;
-    break;}
-case 1391:
-#line 5965 "preproc.y"
-{ yyval.str = make1_str("short"); ;
-    break;}
-case 1392:
-#line 5966 "preproc.y"
-{ yyval.str = make1_str("signed"); ;
-    break;}
-case 1393:
-#line 5967 "preproc.y"
-{ yyval.str = make1_str("static"); ;
-    break;}
-case 1394:
-#line 5968 "preproc.y"
-{ yyval.str = make1_str("struct"); ;
-    break;}
-case 1395:
-#line 5969 "preproc.y"
-{ yyval.str = make1_str("union"); ;
-    break;}
-case 1396:
-#line 5970 "preproc.y"
-{ yyval.str = make1_str("unsigned"); ;
-    break;}
-case 1397:
-#line 5971 "preproc.y"
-{ yyval.str = make1_str("varchar"); ;
-    break;}
-case 1398:
-#line 5972 "preproc.y"
-{ yyval.str = make_name(); ;
-    break;}
-case 1399:
-#line 5973 "preproc.y"
-{ yyval.str = make1_str("["); ;
-    break;}
-case 1400:
-#line 5974 "preproc.y"
-{ yyval.str = make1_str("]"); ;
-    break;}
-case 1401:
-#line 5975 "preproc.y"
-{ yyval.str = make1_str("("); ;
-    break;}
-case 1402:
-#line 5976 "preproc.y"
-{ yyval.str = make1_str(")"); ;
-    break;}
-case 1403:
-#line 5977 "preproc.y"
-{ yyval.str = make1_str("="); ;
-    break;}
-case 1404:
-#line 5978 "preproc.y"
-{ yyval.str = make1_str(","); ;
-    break;}
-case 1405:
-#line 5980 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1406:
-#line 5981 "preproc.y"
-{ yyval.str = make3_str(make1_str("\""), yyvsp[0].str, make1_str("\""));;
-    break;}
-case 1407:
-#line 5982 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1408:
-#line 5983 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1409:
-#line 5984 "preproc.y"
-{ yyval.str = make1_str(","); ;
-    break;}
-case 1410:
-#line 5986 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1411:
-#line 5987 "preproc.y"
-{ yyval.str = make3_str(make1_str("\""), yyvsp[0].str, make1_str("\"")); ;
-    break;}
-case 1412:
-#line 5988 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1413:
-#line 5989 "preproc.y"
-{ yyval.str = yyvsp[0].str; ;
-    break;}
-case 1414:
-#line 5990 "preproc.y"
-{ yyval.str = make3_str(make1_str("{"), yyvsp[-1].str, make1_str("}")); ;
-    break;}
-case 1415:
-#line 5992 "preproc.y"
-{
-    braces_open++;
-    yyval.str = make1_str("{");
-;
-    break;}
-case 1416:
-#line 5997 "preproc.y"
-{
-    remove_variables(braces_open--);
-    yyval.str = make1_str("}");
-;
-    break;}
-}
-   /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/share/misc/bison.simple"
-\f
-  yyvsp -= yylen;
-  yyssp -= yylen;
-#ifdef YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
-
-  *++yyvsp = yyval;
-
-#ifdef YYLSP_NEEDED
-  yylsp++;
-  if (yylen == 0)
-    {
-      yylsp->first_line = yylloc.first_line;
-      yylsp->first_column = yylloc.first_column;
-      yylsp->last_line = (yylsp-1)->last_line;
-      yylsp->last_column = (yylsp-1)->last_column;
-      yylsp->text = 0;
-    }
-  else
-    {
-      yylsp->last_line = (yylsp+yylen-1)->last_line;
-      yylsp->last_column = (yylsp+yylen-1)->last_column;
-    }
-#endif
-
-  /* Now "shift" the result of the reduction.
-     Determine what state that goes to,
-     based on the state we popped back to
-     and the rule number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTBASE];
-
-  goto yynewstate;
-
-yyerrlab:   /* here on detecting error */
-
-  if (! yyerrstatus)
-    /* If not already recovering from an error, report this error.  */
-    {
-      ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
-      yyn = yypact[yystate];
-
-      if (yyn > YYFLAG && yyn < YYLAST)
-       {
-         int size = 0;
-         char *msg;
-         int x, count;
-
-         count = 0;
-         /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
-         for (x = (yyn < 0 ? -yyn : 0);
-              x < (sizeof(yytname) / sizeof(char *)); x++)
-           if (yycheck[x + yyn] == x)
-             size += strlen(yytname[x]) + 15, count++;
-         msg = (char *) malloc(size + 15);
-         if (msg != 0)
-           {
-             strcpy(msg, "parse error");
-
-             if (count < 5)
-               {
-                 count = 0;
-                 for (x = (yyn < 0 ? -yyn : 0);
-                      x < (sizeof(yytname) / sizeof(char *)); x++)
-                   if (yycheck[x + yyn] == x)
-                     {
-                       strcat(msg, count == 0 ? ", expecting `" : " or `");
-                       strcat(msg, yytname[x]);
-                       strcat(msg, "'");
-                       count++;
-                     }
-               }
-             yyerror(msg);
-             free(msg);
-           }
-         else
-           yyerror ("parse error; also virtual memory exceeded");
-       }
-      else
-#endif /* YYERROR_VERBOSE */
-       yyerror("parse error");
-    }
-
-  goto yyerrlab1;
-yyerrlab1:   /* here on error raised explicitly by an action */
-
-  if (yyerrstatus == 3)
-    {
-      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
-
-      /* return failure if at end of input */
-      if (yychar == YYEOF)
-       YYABORT;
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
-      yychar = YYEMPTY;
-    }
-
-  /* Else will try to reuse lookahead token
-     after shifting the error token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-yyerrdefault:  /* current state does not do anything special for the error token. */
-
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
-  if (yyn) goto yydefault;
-#endif
-
-yyerrpop:   /* pop the current state because it cannot handle the error token */
-
-  if (yyssp == yyss) YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
-  yylsp--;
-#endif
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "Error: state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
-
-yyerrhandle:
-
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
-
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
-
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-  else if (yyn == 0)
-    goto yyerrpop;
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting error token, ");
-#endif
-
-  *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
-
-  yystate = yyn;
-  goto yynewstate;
-}
-#line 6002 "preproc.y"
-
-
-void yyerror(char * error)
-{
-    fprintf(stderr, "%s:%d: %s\n", input_filename, yylineno, error);
-    exit(PARSE_ERROR);
-}
diff --git a/src/interfaces/ecpg/preproc/y.tab.h b/src/interfaces/ecpg/preproc/y.tab.h
deleted file mode 100644 (file)
index b93c3da..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-typedef union {
-       double                  dval;
-        int                     ival;
-       char *                  str;
-       struct when             action;
-       struct index            index;
-       int                     tagname;
-       struct this_type        type;
-       enum ECPGttype          type_enum;
-} YYSTYPE;
-#define        SQL_BREAK       258
-#define        SQL_CALL        259
-#define        SQL_CONNECT     260
-#define        SQL_CONNECTION  261
-#define        SQL_CONTINUE    262
-#define        SQL_DISCONNECT  263
-#define        SQL_FOUND       264
-#define        SQL_GO  265
-#define        SQL_GOTO        266
-#define        SQL_IDENTIFIED  267
-#define        SQL_IMMEDIATE   268
-#define        SQL_INDICATOR   269
-#define        SQL_OPEN        270
-#define        SQL_RELEASE     271
-#define        SQL_SECTION     272
-#define        SQL_SEMI        273
-#define        SQL_SQLERROR    274
-#define        SQL_SQLPRINT    275
-#define        SQL_START       276
-#define        SQL_STOP        277
-#define        SQL_WHENEVER    278
-#define        S_ANYTHING      279
-#define        S_AUTO  280
-#define        S_BOOL  281
-#define        S_CHAR  282
-#define        S_CONST 283
-#define        S_DOUBLE        284
-#define        S_ENUM  285
-#define        S_EXTERN        286
-#define        S_FLOAT 287
-#define        S_INT   288
-#define        S       289
-#define        S_LONG  290
-#define        S_REGISTER      291
-#define        S_SHORT 292
-#define        S_SIGNED        293
-#define        S_STATIC        294
-#define        S_STRUCT        295
-#define        S_UNSIGNED      296
-#define        S_VARCHAR       297
-#define        TYPECAST        298
-#define        ACTION  299
-#define        ADD     300
-#define        ALL     301
-#define        ALTER   302
-#define        AND     303
-#define        ANY     304
-#define        AS      305
-#define        ASC     306
-#define        BEGIN_TRANS     307
-#define        BETWEEN 308
-#define        BOTH    309
-#define        BY      310
-#define        CASCADE 311
-#define        CAST    312
-#define        CHAR    313
-#define        CHARACTER       314
-#define        CHECK   315
-#define        CLOSE   316
-#define        COLLATE 317
-#define        COLUMN  318
-#define        COMMIT  319
-#define        CONSTRAINT      320
-#define        CREATE  321
-#define        CROSS   322
-#define        CURRENT 323
-#define        CURRENT_DATE    324
-#define        CURRENT_TIME    325
-#define        CURRENT_TIMESTAMP       326
-#define        CURRENT_USER    327
-#define        CURSOR  328
-#define        DAY_P   329
-#define        DECIMAL 330
-#define        DECLARE 331
-#define        DEFAULT 332
-#define        DELETE  333
-#define        DESC    334
-#define        DISTINCT        335
-#define        DOUBLE  336
-#define        DROP    337
-#define        END_TRANS       338
-#define        EXECUTE 339
-#define        EXISTS  340
-#define        EXTRACT 341
-#define        FETCH   342
-#define        FLOAT   343
-#define        FOR     344
-#define        FOREIGN 345
-#define        FROM    346
-#define        FULL    347
-#define        GRANT   348
-#define        GROUP   349
-#define        HAVING  350
-#define        HOUR_P  351
-#define        IN      352
-#define        INNER_P 353
-#define        INSERT  354
-#define        INTERVAL        355
-#define        INTO    356
-#define        IS      357
-#define        JOIN    358
-#define        KEY     359
-#define        LANGUAGE        360
-#define        LEADING 361
-#define        LEFT    362
-#define        LIKE    363
-#define        LOCAL   364
-#define        MATCH   365
-#define        MINUTE_P        366
-#define        MONTH_P 367
-#define        NATIONAL        368
-#define        NATURAL 369
-#define        NCHAR   370
-#define        NO      371
-#define        NOT     372
-#define        NOTIFY  373
-#define        NULL_P  374
-#define        NUMERIC 375
-#define        ON      376
-#define        OPTION  377
-#define        OR      378
-#define        ORDER   379
-#define        OUTER_P 380
-#define        PARTIAL 381
-#define        POSITION        382
-#define        PRECISION       383
-#define        PRIMARY 384
-#define        PRIVILEGES      385
-#define        PROCEDURE       386
-#define        PUBLIC  387
-#define        REFERENCES      388
-#define        REVOKE  389
-#define        RIGHT   390
-#define        ROLLBACK        391
-#define        SECOND_P        392
-#define        SELECT  393
-#define        SET     394
-#define        SUBSTRING       395
-#define        TABLE   396
-#define        TIME    397
-#define        TIMESTAMP       398
-#define        TIMEZONE_HOUR   399
-#define        TIMEZONE_MINUTE 400
-#define        TO      401
-#define        TRAILING        402
-#define        TRANSACTION     403
-#define        TRIM    404
-#define        UNION   405
-#define        UNIQUE  406
-#define        UPDATE  407
-#define        USER    408
-#define        USING   409
-#define        VALUES  410
-#define        VARCHAR 411
-#define        VARYING 412
-#define        VIEW    413
-#define        WHERE   414
-#define        WITH    415
-#define        WORK    416
-#define        YEAR_P  417
-#define        ZONE    418
-#define        FALSE_P 419
-#define        TRIGGER 420
-#define        TRUE_P  421
-#define        TYPE_P  422
-#define        ABORT_TRANS     423
-#define        AFTER   424
-#define        AGGREGATE       425
-#define        ANALYZE 426
-#define        BACKWARD        427
-#define        BEFORE  428
-#define        BINARY  429
-#define        CACHE   430
-#define        CLUSTER 431
-#define        COPY    432
-#define        CYCLE   433
-#define        DATABASE        434
-#define        DELIMITERS      435
-#define        DO      436
-#define        EACH    437
-#define        EXPLAIN 438
-#define        EXTEND  439
-#define        FORWARD 440
-#define        FUNCTION        441
-#define        HANDLER 442
-#define        INCREMENT       443
-#define        INDEX   444
-#define        INHERITS        445
-#define        INSTEAD 446
-#define        ISNULL  447
-#define        LANCOMPILER     448
-#define        LISTEN  449
-#define        LOAD    450
-#define        LOCK_P  451
-#define        LOCATION        452
-#define        MAXVALUE        453
-#define        MINVALUE        454
-#define        MOVE    455
-#define        NEW     456
-#define        NONE    457
-#define        NOTHING 458
-#define        NOTNULL 459
-#define        OIDS    460
-#define        OPERATOR        461
-#define        PROCEDURAL      462
-#define        RECIPE  463
-#define        RENAME  464
-#define        RESET   465
-#define        RETURNS 466
-#define        ROW     467
-#define        RULE    468
-#define        SEQUENCE        469
-#define        SETOF   470
-#define        SHOW    471
-#define        START   472
-#define        STATEMENT       473
-#define        STDIN   474
-#define        STDOUT  475
-#define        TRUSTED 476
-#define        VACUUM  477
-#define        VERBOSE 478
-#define        VERSION 479
-#define        ARCHIVE 480
-#define        PASSWORD        481
-#define        CREATEDB        482
-#define        NOCREATEDB      483
-#define        CREATEUSER      484
-#define        NOCREATEUSER    485
-#define        VALID   486
-#define        UNTIL   487
-#define        IDENT   488
-#define        SCONST  489
-#define        Op      490
-#define        CSTRING 491
-#define        CVARIABLE       492
-#define        CPP_LINE        493
-#define        ICONST  494
-#define        PARAM   495
-#define        FCONST  496
-#define        OP      497
-#define        UMINUS  498
-#define        REDUCE  499
-
-
-extern YYSTYPE yylval;