[svn:parrot] r46097 - in branches/ops_pct: . compilers/data_json compilers/imcc compilers/json compilers/ncigen compilers/nqp compilers/opsc compilers/pct compilers/pct/src/PAST compilers/pct/src/PCT compilers/pct/src/POST compilers/pge compilers/pge/PGE compilers/pirc compilers/pirc/src compilers/tge config/auto config/auto/attributes config/auto/cgoto config/auto/crypto config/auto/gdbm config/auto/sizes config/auto/zlib config/gen config/gen/config_h config/gen/config_pm config/gen/crypto config/gen/makefiles config/gen/platform config/gen/platform/ansi config/gen/platform/generic config/gen/platform/win32 config/init config/init/hints config/inter docs docs/book/draft docs/book/pct docs/dev docs/pdds docs/pdds/draft docs/pmc docs/project examples/benchmarks examples/c examples/config/file examples/embed examples/japh examples/json examples/languages/abc examples/languages/squaak examples/languages/squaak/src/parser examples/library examples/nci examples/pge examp les/pir examples/pir/befunge examples/sdl examples/shootout examples/tutorial ext/Parrot-Embed ext/Parrot-Embed/lib/Parrot ext/Parrot-Embed/t ext/SQLite3 ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure/Options lib/Parrot/Configure/Options/Conf lib/Parrot/Configure/Options/Test lib/Parrot/Configure/Step lib/Parrot/Docs/Section lib/Parrot/Harness lib/Parrot/OpTrans lib/Parrot/Ops2c lib/Parrot/Ops2pm lib/Parrot/Pmc2c lib/Parrot/Pmc2c/PMC ports/cpan ports/cygwin ports/debian ports/fedora ports/fedora/2.3.0 ports/mandriva ports/suse ports/suse/2.2.0 ports/ubuntu runtime/parrot/languages runtime/parrot/library runtime/parrot/library/CGI runtime/parrot/library/Config runtime/parrot/library/Getopt runtime/parrot/library/HTTP runtime/parrot/library/MIME runtime/parrot/library/Math runtime/parrot/library/ProfTest runtime/parrot/library/Stream runtime/parrot/library/String runtime/parrot/library/TAP runtime/parrot/library/Test runtim e/parrot/library/Test/Builder src src/call src/dynoplibs src/dynpmc src/gc src/interp src/io src/nci src/ops src/packfile src/pmc src/runcore src/string src/string/charset src/string/encoding t t/codingstd t/compilers/data_json t/compilers/imcc/imcpasm t/compilers/imcc/reg t/compilers/imcc/syn t/compilers/json t/compilers/pct t/compilers/pge t/compilers/pge/p5regex t/compilers/pge/perl6regex t/compilers/tge t/configure/testlib t/distro t/dynoplibs t/dynpmc t/examples t/include t/library t/native_pbc t/oo t/op t/pharness t/pir t/pmc t/profiling t/run t/src t/steps/auto t/steps/gen t/steps/init t/steps/init/hints t/steps/inter t/tools/install/testlib t/tools/ops2cutils t/tools/ops2pm tools/build tools/dev tools/install tools/util

cotto at svn.parrot.org cotto at svn.parrot.org
Wed Apr 28 03:18:54 UTC 2010


Author: cotto
Date: Wed Apr 28 03:18:28 2010
New Revision: 46097
URL: https://trac.parrot.org/parrot/changeset/46097

Log:
sync branch with trunk plus some fixes to fix the build

Added:
   branches/ops_pct/config/auto/zlib/   (props changed)
      - copied from r46093, trunk/config/auto/zlib/
   branches/ops_pct/ports/fedora/2.3.0/   (props changed)
      - copied from r46093, trunk/ports/fedora/2.3.0/
   branches/ops_pct/ports/suse/2.2.0/   (props changed)
      - copied from r46093, trunk/ports/suse/2.2.0/
   branches/ops_pct/runtime/parrot/library/ProfTest/   (props changed)
      - copied from r46093, trunk/runtime/parrot/library/ProfTest/
   branches/ops_pct/runtime/parrot/library/TAP/   (props changed)
      - copied from r46093, trunk/runtime/parrot/library/TAP/
   branches/ops_pct/t/compilers/data_json/   (props changed)
      - copied from r46093, trunk/t/compilers/data_json/
   branches/ops_pct/t/profiling/
      - copied from r46093, trunk/t/profiling/
Deleted:
   branches/ops_pct/META.yml
   branches/ops_pct/Makefile.PL
   branches/ops_pct/compilers/json/
   branches/ops_pct/compilers/ncigen/
   branches/ops_pct/compilers/nqp/
   branches/ops_pct/config/auto/cgoto/
   branches/ops_pct/config/auto/cgoto.pm
   branches/ops_pct/config/auto/crypto/
   branches/ops_pct/config/auto/crypto.pm
   branches/ops_pct/config/auto/gdbm/
   branches/ops_pct/config/auto/gdbm.pm
   branches/ops_pct/config/gen/config_pm/config_lib_pasm.in
   branches/ops_pct/config/gen/crypto/
   branches/ops_pct/config/gen/crypto.pm
   branches/ops_pct/config/gen/platform/platform_interface.h
   branches/ops_pct/ext/SQLite3/
   branches/ops_pct/ext/nqp-rx/.gitignore
   branches/ops_pct/lib/Parrot/OpTrans/CGP.pm
   branches/ops_pct/lib/Parrot/OpTrans/CGoto.pm
   branches/ops_pct/lib/Parrot/OpTrans/CPrederef.pm
   branches/ops_pct/lib/Parrot/OpTrans/CSwitch.pm
   branches/ops_pct/ports/cpan/
   branches/ops_pct/ports/fedora/parrot.patch
   branches/ops_pct/ports/fedora/parrot.spec.fedora
   branches/ops_pct/ports/suse/parrot.spec.suse
   branches/ops_pct/runtime/parrot/library/SQLite3.pir
   branches/ops_pct/src/dynpmc/gdbmhash.pmc
   branches/ops_pct/src/pmc/cpointer.pmc
   branches/ops_pct/src/pmc/retcontinuation.pmc
   branches/ops_pct/t/compilers/json/
   branches/ops_pct/t/distro/meta_yml.t
   branches/ops_pct/t/dynpmc/gdbmhash.t
   branches/ops_pct/t/pmc/cpointer.t
   branches/ops_pct/t/pmc/retcontinuation.t
   branches/ops_pct/t/steps/auto/cgoto-01.t
   branches/ops_pct/t/steps/auto/crypto-01.t
   branches/ops_pct/t/steps/auto/gdbm-01.t
Modified:
   branches/ops_pct/   (props changed)
   branches/ops_pct/CREDITS
   branches/ops_pct/ChangeLog
   branches/ops_pct/Configure.pl
   branches/ops_pct/DEPRECATED.pod
   branches/ops_pct/MANIFEST
   branches/ops_pct/MANIFEST.SKIP
   branches/ops_pct/MANIFEST.generated
   branches/ops_pct/NEWS
   branches/ops_pct/PBC_COMPAT
   branches/ops_pct/README
   branches/ops_pct/README_cygwin.pod
   branches/ops_pct/README_win32.pod
   branches/ops_pct/RESPONSIBLE_PARTIES
   branches/ops_pct/VERSION
   branches/ops_pct/compilers/data_json/Defines.mak
   branches/ops_pct/compilers/data_json/Rules.mak   (contents, props changed)
   branches/ops_pct/compilers/imcc/Rules.in   (contents, props changed)
   branches/ops_pct/compilers/imcc/imcc.l
   branches/ops_pct/compilers/imcc/imcc.y
   branches/ops_pct/compilers/imcc/imclexer.c
   branches/ops_pct/compilers/imcc/imcparser.c
   branches/ops_pct/compilers/imcc/imcparser.h
   branches/ops_pct/compilers/imcc/instructions.c
   branches/ops_pct/compilers/imcc/main.c
   branches/ops_pct/compilers/imcc/optimizer.c
   branches/ops_pct/compilers/imcc/parser_util.c
   branches/ops_pct/compilers/imcc/pbc.c
   branches/ops_pct/compilers/imcc/pcc.c
   branches/ops_pct/compilers/imcc/symreg.c
   branches/ops_pct/compilers/imcc/symreg.h
   branches/ops_pct/compilers/imcc/unit.h
   branches/ops_pct/compilers/opsc/Defines.mak   (props changed)
   branches/ops_pct/compilers/opsc/Rules.mak   (props changed)
   branches/ops_pct/compilers/pct/Rules.mak   (props changed)
   branches/ops_pct/compilers/pct/src/PAST/Compiler.pir
   branches/ops_pct/compilers/pct/src/PCT/HLLCompiler.pir
   branches/ops_pct/compilers/pct/src/POST/Node.pir
   branches/ops_pct/compilers/pge/PGE/Exp.pir
   branches/ops_pct/compilers/pge/PGE/OPTable.pir
   branches/ops_pct/compilers/pge/PGE/Perl6Regex.pir
   branches/ops_pct/compilers/pge/PGE/Regex.pir
   branches/ops_pct/compilers/pge/Rules.mak   (props changed)
   branches/ops_pct/compilers/pirc/Rules.mak
   branches/ops_pct/compilers/pirc/src/pircompiler.c
   branches/ops_pct/compilers/pirc/src/pircompiler.h
   branches/ops_pct/compilers/pirc/src/pircompunit.c
   branches/ops_pct/compilers/pirc/src/pircompunit.h
   branches/ops_pct/compilers/pirc/src/pirlexer.h
   branches/ops_pct/compilers/pirc/src/pirparser.c
   branches/ops_pct/compilers/pirc/src/pirsymbol.c
   branches/ops_pct/compilers/pirc/src/pirsymbol.h
   branches/ops_pct/compilers/tge/Rules.mak   (props changed)
   branches/ops_pct/config/auto/arch.pm
   branches/ops_pct/config/auto/attributes.pm
   branches/ops_pct/config/auto/attributes/test_c.in
   branches/ops_pct/config/auto/sizes/intval_maxmin_c.in   (props changed)
   branches/ops_pct/config/auto/warnings.pm
   branches/ops_pct/config/gen/config_h/config_h.in
   branches/ops_pct/config/gen/config_pm.pm
   branches/ops_pct/config/gen/config_pm/config_pir.in
   branches/ops_pct/config/gen/core_pmcs.pm
   branches/ops_pct/config/gen/makefiles.pm
   branches/ops_pct/config/gen/makefiles/docs.in
   branches/ops_pct/config/gen/makefiles/dynpmc.in
   branches/ops_pct/config/gen/makefiles/root.in
   branches/ops_pct/config/gen/opengl.pm
   branches/ops_pct/config/gen/platform.pm
   branches/ops_pct/config/gen/platform/ansi/dl.c
   branches/ops_pct/config/gen/platform/generic/dl.c
   branches/ops_pct/config/gen/platform/generic/env.c
   branches/ops_pct/config/gen/platform/generic/itimer.c
   branches/ops_pct/config/gen/platform/win32/dl.c
   branches/ops_pct/config/init/defaults.pm
   branches/ops_pct/config/init/hints.pm
   branches/ops_pct/config/init/hints/cygwin.pm
   branches/ops_pct/config/init/hints/irix.pm
   branches/ops_pct/config/init/optimize.pm
   branches/ops_pct/config/inter/progs.pm
   branches/ops_pct/docs/book/draft/README   (props changed)
   branches/ops_pct/docs/book/draft/appa_glossary.pod   (props changed)
   branches/ops_pct/docs/book/draft/appb_patch_submission.pod   (props changed)
   branches/ops_pct/docs/book/draft/appc_command_line_options.pod   (contents, props changed)
   branches/ops_pct/docs/book/draft/appd_build_options.pod   (props changed)
   branches/ops_pct/docs/book/draft/appe_source_code.pod   (props changed)
   branches/ops_pct/docs/book/draft/ch01_introduction.pod   (props changed)
   branches/ops_pct/docs/book/draft/ch02_getting_started.pod   (props changed)
   branches/ops_pct/docs/book/draft/ch07_dynpmcs.pod   (contents, props changed)
   branches/ops_pct/docs/book/draft/ch08_dynops.pod   (props changed)
   branches/ops_pct/docs/book/draft/ch10_opcode_reference.pod   (props changed)
   branches/ops_pct/docs/book/draft/ch11_directive_reference.pod   (props changed)
   branches/ops_pct/docs/book/draft/ch12_operator_reference.pod   (props changed)
   branches/ops_pct/docs/book/draft/chXX_hlls.pod   (contents, props changed)
   branches/ops_pct/docs/book/draft/chXX_library.pod   (props changed)
   branches/ops_pct/docs/book/draft/chXX_testing_and_debugging.pod   (props changed)
   branches/ops_pct/docs/book/pct/ch01_introduction.pod   (props changed)
   branches/ops_pct/docs/book/pct/ch02_getting_started.pod   (props changed)
   branches/ops_pct/docs/book/pct/ch03_compiler_tools.pod   (props changed)
   branches/ops_pct/docs/book/pct/ch04_pge.pod   (props changed)
   branches/ops_pct/docs/book/pct/ch05_nqp.pod   (props changed)
   branches/ops_pct/docs/configuration.pod
   branches/ops_pct/docs/dev/c_functions.pod   (props changed)
   branches/ops_pct/docs/dev/infant.pod
   branches/ops_pct/docs/dev/pccmethods.pod
   branches/ops_pct/docs/dev/pmc_freeze.pod
   branches/ops_pct/docs/dev/pmc_obj_design_meeting_notes.pod
   branches/ops_pct/docs/dev/profiling.pod
   branches/ops_pct/docs/embed.pod
   branches/ops_pct/docs/intro.pod
   branches/ops_pct/docs/parrothist.pod
   branches/ops_pct/docs/pdds/draft/pdd01_overview.pod
   branches/ops_pct/docs/pdds/draft/pdd05_opfunc.pod
   branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod
   branches/ops_pct/docs/pdds/draft/pdd08_keys.pod
   branches/ops_pct/docs/pdds/draft/pdd10_embedding.pod
   branches/ops_pct/docs/pdds/draft/pdd11_extending.pod
   branches/ops_pct/docs/pdds/draft/pdd14_numbers.pod
   branches/ops_pct/docs/pdds/draft/pdd16_native_call.pod
   branches/ops_pct/docs/pdds/draft/pdd29_compiler_tools.pod
   branches/ops_pct/docs/pdds/draft/pdd31_hll.pod
   branches/ops_pct/docs/pdds/draft/pdd31_hll_interop.pod
   branches/ops_pct/docs/pdds/pdd00_pdd.pod
   branches/ops_pct/docs/pdds/pdd03_calling_conventions.pod
   branches/ops_pct/docs/pdds/pdd07_codingstd.pod
   branches/ops_pct/docs/pdds/pdd09_gc.pod
   branches/ops_pct/docs/pdds/pdd15_objects.pod
   branches/ops_pct/docs/pdds/pdd17_pmc.pod
   branches/ops_pct/docs/pdds/pdd18_security.pod
   branches/ops_pct/docs/pdds/pdd19_pir.pod
   branches/ops_pct/docs/pdds/pdd20_lexical_vars.pod
   branches/ops_pct/docs/pdds/pdd21_namespaces.pod
   branches/ops_pct/docs/pdds/pdd22_io.pod
   branches/ops_pct/docs/pdds/pdd23_exceptions.pod
   branches/ops_pct/docs/pdds/pdd24_events.pod
   branches/ops_pct/docs/pdds/pdd25_concurrency.pod
   branches/ops_pct/docs/pdds/pdd26_ast.pod
   branches/ops_pct/docs/pdds/pdd27_multiple_dispatch.pod
   branches/ops_pct/docs/pdds/pdd28_strings.pod
   branches/ops_pct/docs/pdds/pdd30_install.pod   (contents, props changed)
   branches/ops_pct/docs/pdds/pdd_template.pod
   branches/ops_pct/docs/pmc.pod
   branches/ops_pct/docs/pmc/documentation.pod
   branches/ops_pct/docs/pmc2c.pod
   branches/ops_pct/docs/porting_intro.pod
   branches/ops_pct/docs/project/release_manager_guide.pod
   branches/ops_pct/docs/running.pod
   branches/ops_pct/examples/benchmarks/oo1.pir
   branches/ops_pct/examples/benchmarks/oo2.pir
   branches/ops_pct/examples/c/test_main.c
   branches/ops_pct/examples/config/file/configcompiler
   branches/ops_pct/examples/config/file/configwithfatalstep
   branches/ops_pct/examples/embed/cotorra.c   (contents, props changed)
   branches/ops_pct/examples/japh/japh3.pasm
   branches/ops_pct/examples/json/postalcodes.pir
   branches/ops_pct/examples/languages/abc/   (props changed)
   branches/ops_pct/examples/languages/abc/setup.pir
   branches/ops_pct/examples/languages/squaak/   (props changed)
   branches/ops_pct/examples/languages/squaak/setup.pir
   branches/ops_pct/examples/languages/squaak/src/parser/actions.pm
   branches/ops_pct/examples/library/ncurses_life.pir
   branches/ops_pct/examples/nci/Xlib.pir
   branches/ops_pct/examples/nci/xlibtest.pir
   branches/ops_pct/examples/pge/demo.pir   (contents, props changed)
   branches/ops_pct/examples/pir/befunge/setup.pir
   branches/ops_pct/examples/pir/pirric.pir
   branches/ops_pct/examples/pir/substr.pir
   branches/ops_pct/examples/sdl/mandel.pir
   branches/ops_pct/examples/shootout/ack.pir
   branches/ops_pct/examples/shootout/binarytrees.pir
   branches/ops_pct/examples/shootout/fasta.pir
   branches/ops_pct/examples/shootout/knucleotide.pir
   branches/ops_pct/examples/shootout/partialsums.pir
   branches/ops_pct/examples/shootout/pidigits.pir
   branches/ops_pct/examples/shootout/random.pir
   branches/ops_pct/examples/shootout/recursive-2.pir
   branches/ops_pct/examples/shootout/recursive.pir
   branches/ops_pct/examples/shootout/regexdna.pir
   branches/ops_pct/examples/shootout/revcomp.pir
   branches/ops_pct/examples/shootout/takfp.pir
   branches/ops_pct/examples/tutorial/56_defined.pir
   branches/ops_pct/ext/Parrot-Embed/Build.PL
   branches/ops_pct/ext/Parrot-Embed/MANIFEST
   branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs
   branches/ops_pct/ext/Parrot-Embed/t/interp.t
   branches/ops_pct/ext/nqp-rx/Rules.mak   (props changed)
   branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/ops_pct/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/ops_pct/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/ops_pct/include/parrot/   (props changed)
   branches/ops_pct/include/parrot/call.h   (contents, props changed)
   branches/ops_pct/include/parrot/charset.h
   branches/ops_pct/include/parrot/compiler.h
   branches/ops_pct/include/parrot/context.h
   branches/ops_pct/include/parrot/debugger.h
   branches/ops_pct/include/parrot/dynext.h
   branches/ops_pct/include/parrot/embed.h
   branches/ops_pct/include/parrot/encoding.h
   branches/ops_pct/include/parrot/exceptions.h
   branches/ops_pct/include/parrot/exit.h
   branches/ops_pct/include/parrot/extend.h
   branches/ops_pct/include/parrot/gc_api.h   (contents, props changed)
   branches/ops_pct/include/parrot/global_setup.h
   branches/ops_pct/include/parrot/hash.h
   branches/ops_pct/include/parrot/imcc.h
   branches/ops_pct/include/parrot/interpreter.h
   branches/ops_pct/include/parrot/io.h
   branches/ops_pct/include/parrot/io_unix.h
   branches/ops_pct/include/parrot/key.h
   branches/ops_pct/include/parrot/misc.h
   branches/ops_pct/include/parrot/nci.h
   branches/ops_pct/include/parrot/oo.h
   branches/ops_pct/include/parrot/op.h
   branches/ops_pct/include/parrot/oplib.h
   branches/ops_pct/include/parrot/oplib/core_ops.h
   branches/ops_pct/include/parrot/packfile.h
   branches/ops_pct/include/parrot/pmc.h
   branches/ops_pct/include/parrot/pmc_freeze.h
   branches/ops_pct/include/parrot/pobj.h
   branches/ops_pct/include/parrot/runcore_api.h   (contents, props changed)
   branches/ops_pct/include/parrot/runcore_profiling.h   (contents, props changed)
   branches/ops_pct/include/parrot/runcore_trace.h   (props changed)
   branches/ops_pct/include/parrot/string.h
   branches/ops_pct/include/parrot/string_funcs.h
   branches/ops_pct/include/parrot/string_primitives.h
   branches/ops_pct/include/parrot/sub.h
   branches/ops_pct/include/parrot/thread.h
   branches/ops_pct/include/parrot/vtables.h
   branches/ops_pct/lib/Parrot/Configure/Options/Conf.pm
   branches/ops_pct/lib/Parrot/Configure/Options/Conf/Shared.pm
   branches/ops_pct/lib/Parrot/Configure/Options/Test/Prepare.pm
   branches/ops_pct/lib/Parrot/Configure/Step/List.pm
   branches/ops_pct/lib/Parrot/Configure/Step/Test.pm   (props changed)
   branches/ops_pct/lib/Parrot/Distribution.pm
   branches/ops_pct/lib/Parrot/Docs/Section/Compilers.pm
   branches/ops_pct/lib/Parrot/H2inc.pm   (contents, props changed)
   branches/ops_pct/lib/Parrot/Harness/DefaultTests.pm
   branches/ops_pct/lib/Parrot/Harness/Options.pm
   branches/ops_pct/lib/Parrot/Harness/Smoke.pm
   branches/ops_pct/lib/Parrot/Headerizer.pm
   branches/ops_pct/lib/Parrot/Manifest.pm
   branches/ops_pct/lib/Parrot/OpTrans.pm
   branches/ops_pct/lib/Parrot/OpTrans/C.pm
   branches/ops_pct/lib/Parrot/Ops2c/Auxiliary.pm
   branches/ops_pct/lib/Parrot/Ops2c/Utils.pm
   branches/ops_pct/lib/Parrot/Ops2pm/Base.pm
   branches/ops_pct/lib/Parrot/OpsRenumber.pm
   branches/ops_pct/lib/Parrot/Pmc2c/Attribute.pm
   branches/ops_pct/lib/Parrot/Pmc2c/Dumper.pm
   branches/ops_pct/lib/Parrot/Pmc2c/Emitter.pm
   branches/ops_pct/lib/Parrot/Pmc2c/Library.pm
   branches/ops_pct/lib/Parrot/Pmc2c/MethodEmitter.pm
   branches/ops_pct/lib/Parrot/Pmc2c/Object.pm
   branches/ops_pct/lib/Parrot/Pmc2c/PCCMETHOD.pm
   branches/ops_pct/lib/Parrot/Pmc2c/PMC.pm
   branches/ops_pct/lib/Parrot/Pmc2c/PMC/Null.pm
   branches/ops_pct/lib/Parrot/Pmc2c/PMC/Object.pm
   branches/ops_pct/lib/Parrot/Pmc2c/PMC/ParrotClass.pm
   branches/ops_pct/lib/Parrot/Pmc2c/PMC/default.pm
   branches/ops_pct/lib/Parrot/Pmc2c/PMCEmitter.pm
   branches/ops_pct/lib/Parrot/Pmc2c/Parser.pm
   branches/ops_pct/lib/Parrot/Pmc2c/Pmc2cMain.pm
   branches/ops_pct/lib/Parrot/Pmc2c/UtilFunctions.pm
   branches/ops_pct/lib/Parrot/Vtable.pm
   branches/ops_pct/ports/cygwin/README
   branches/ops_pct/ports/cygwin/parrot-1.0.0-1.cygport   (props changed)
   branches/ops_pct/ports/debian/control.in
   branches/ops_pct/ports/debian/libparrot-dev.install.in   (props changed)
   branches/ops_pct/ports/debian/libparrot.install.in   (props changed)
   branches/ops_pct/ports/debian/parrot-doc.install.in   (props changed)
   branches/ops_pct/ports/debian/parrot.install.in   (props changed)
   branches/ops_pct/ports/mandriva/parrot.spec.mandriva   (props changed)
   branches/ops_pct/ports/ubuntu/control.in
   branches/ops_pct/runtime/parrot/languages/   (props changed)
   branches/ops_pct/runtime/parrot/library/CGI/QueryHash.pir
   branches/ops_pct/runtime/parrot/library/Config/JSON.pir
   branches/ops_pct/runtime/parrot/library/Crow.pir
   branches/ops_pct/runtime/parrot/library/Getopt/Obj.pir
   branches/ops_pct/runtime/parrot/library/HTTP/Daemon.pir
   branches/ops_pct/runtime/parrot/library/JSON.pir
   branches/ops_pct/runtime/parrot/library/MIME/Base64.pir
   branches/ops_pct/runtime/parrot/library/Math/Rand.pir   (props changed)
   branches/ops_pct/runtime/parrot/library/OpenGL.pir
   branches/ops_pct/runtime/parrot/library/P6object.pir
   branches/ops_pct/runtime/parrot/library/Rules.mak   (props changed)
   branches/ops_pct/runtime/parrot/library/Stream/Base.pir
   branches/ops_pct/runtime/parrot/library/String/Utils.pir
   branches/ops_pct/runtime/parrot/library/Test/Builder.pir
   branches/ops_pct/runtime/parrot/library/Test/Builder/Output.pir
   branches/ops_pct/runtime/parrot/library/Test/Builder/Test.pir
   branches/ops_pct/runtime/parrot/library/Test/More.pir
   branches/ops_pct/runtime/parrot/library/distutils.pir
   branches/ops_pct/runtime/parrot/library/pcore.pir
   branches/ops_pct/runtime/parrot/library/uuid.pir
   branches/ops_pct/src/byteorder.c
   branches/ops_pct/src/call/args.c
   branches/ops_pct/src/call/context.c
   branches/ops_pct/src/call/context_accessors.c
   branches/ops_pct/src/call/ops.c   (contents, props changed)
   branches/ops_pct/src/call/pcc.c   (contents, props changed)
   branches/ops_pct/src/debug.c
   branches/ops_pct/src/dynext.c
   branches/ops_pct/src/dynoplibs/Defines.in
   branches/ops_pct/src/dynoplibs/Rules.in
   branches/ops_pct/src/dynpmc/rational.pmc
   branches/ops_pct/src/embed.c
   branches/ops_pct/src/exceptions.c
   branches/ops_pct/src/exit.c
   branches/ops_pct/src/extend.c
   branches/ops_pct/src/gc/   (props changed)
   branches/ops_pct/src/gc/alloc_memory.c   (props changed)
   branches/ops_pct/src/gc/alloc_resources.c   (contents, props changed)
   branches/ops_pct/src/gc/api.c   (contents, props changed)
   branches/ops_pct/src/gc/gc_inf.c
   branches/ops_pct/src/gc/gc_ms.c
   branches/ops_pct/src/gc/gc_private.h
   branches/ops_pct/src/gc/malloc.c   (props changed)
   branches/ops_pct/src/gc/malloc_trace.c   (props changed)
   branches/ops_pct/src/gc/mark_sweep.c   (contents, props changed)
   branches/ops_pct/src/gc/system.c   (contents, props changed)
   branches/ops_pct/src/global.c
   branches/ops_pct/src/global_setup.c
   branches/ops_pct/src/hash.c
   branches/ops_pct/src/hll.c
   branches/ops_pct/src/interp/inter_cb.c   (props changed)
   branches/ops_pct/src/interp/inter_create.c   (contents, props changed)
   branches/ops_pct/src/interp/inter_misc.c   (contents, props changed)
   branches/ops_pct/src/io/api.c
   branches/ops_pct/src/io/buffer.c
   branches/ops_pct/src/io/filehandle.c
   branches/ops_pct/src/io/socket_api.c
   branches/ops_pct/src/io/unix.c
   branches/ops_pct/src/io/utf8.c
   branches/ops_pct/src/io/win32.c
   branches/ops_pct/src/key.c
   branches/ops_pct/src/library.c
   branches/ops_pct/src/main.c
   branches/ops_pct/src/misc.c
   branches/ops_pct/src/multidispatch.c
   branches/ops_pct/src/nci/api.c
   branches/ops_pct/src/nci/core_thunks.c
   branches/ops_pct/src/nci/extra_thunks.c
   branches/ops_pct/src/oo.c
   branches/ops_pct/src/ops/bit.ops
   branches/ops_pct/src/ops/cmp.ops
   branches/ops_pct/src/ops/core.ops
   branches/ops_pct/src/ops/core_ops.c
   branches/ops_pct/src/ops/object.ops
   branches/ops_pct/src/ops/ops.num
   branches/ops_pct/src/ops/pmc.ops
   branches/ops_pct/src/ops/set.ops
   branches/ops_pct/src/ops/string.ops
   branches/ops_pct/src/ops/var.ops
   branches/ops_pct/src/packdump.c
   branches/ops_pct/src/packfile.c
   branches/ops_pct/src/packfile/pf_items.c
   branches/ops_pct/src/parrot_debugger.c
   branches/ops_pct/src/pbc_dump.c
   branches/ops_pct/src/pbc_merge.c
   branches/ops_pct/src/pmc.c
   branches/ops_pct/src/pmc/addrregistry.pmc
   branches/ops_pct/src/pmc/arrayiterator.pmc
   branches/ops_pct/src/pmc/bigint.pmc
   branches/ops_pct/src/pmc/bignum.pmc
   branches/ops_pct/src/pmc/boolean.pmc
   branches/ops_pct/src/pmc/callcontext.pmc
   branches/ops_pct/src/pmc/capture.pmc
   branches/ops_pct/src/pmc/class.pmc
   branches/ops_pct/src/pmc/codestring.pmc
   branches/ops_pct/src/pmc/complex.pmc
   branches/ops_pct/src/pmc/continuation.pmc
   branches/ops_pct/src/pmc/coroutine.pmc
   branches/ops_pct/src/pmc/default.pmc
   branches/ops_pct/src/pmc/env.pmc
   branches/ops_pct/src/pmc/eval.pmc
   branches/ops_pct/src/pmc/eventhandler.pmc
   branches/ops_pct/src/pmc/exception.pmc
   branches/ops_pct/src/pmc/exceptionhandler.pmc
   branches/ops_pct/src/pmc/exporter.pmc
   branches/ops_pct/src/pmc/file.pmc
   branches/ops_pct/src/pmc/filehandle.pmc
   branches/ops_pct/src/pmc/fixedbooleanarray.pmc
   branches/ops_pct/src/pmc/fixedfloatarray.pmc
   branches/ops_pct/src/pmc/fixedintegerarray.pmc
   branches/ops_pct/src/pmc/fixedpmcarray.pmc
   branches/ops_pct/src/pmc/fixedstringarray.pmc
   branches/ops_pct/src/pmc/float.pmc
   branches/ops_pct/src/pmc/handle.pmc
   branches/ops_pct/src/pmc/hash.pmc
   branches/ops_pct/src/pmc/hashiterator.pmc
   branches/ops_pct/src/pmc/hashiteratorkey.pmc
   branches/ops_pct/src/pmc/imageio.pmc
   branches/ops_pct/src/pmc/imageiosize.pmc
   branches/ops_pct/src/pmc/integer.pmc
   branches/ops_pct/src/pmc/iterator.pmc
   branches/ops_pct/src/pmc/key.pmc
   branches/ops_pct/src/pmc/lexinfo.pmc
   branches/ops_pct/src/pmc/lexpad.pmc
   branches/ops_pct/src/pmc/managedstruct.pmc
   branches/ops_pct/src/pmc/multisub.pmc
   branches/ops_pct/src/pmc/namespace.pmc
   branches/ops_pct/src/pmc/nci.pmc
   branches/ops_pct/src/pmc/null.pmc
   branches/ops_pct/src/pmc/object.pmc
   branches/ops_pct/src/pmc/opcode.pmc
   branches/ops_pct/src/pmc/oplib.pmc
   branches/ops_pct/src/pmc/orderedhash.pmc
   branches/ops_pct/src/pmc/orderedhashiterator.pmc
   branches/ops_pct/src/pmc/os.pmc
   branches/ops_pct/src/pmc/packfile.pmc
   branches/ops_pct/src/pmc/packfileannotation.pmc
   branches/ops_pct/src/pmc/packfileannotations.pmc
   branches/ops_pct/src/pmc/packfileconstanttable.pmc
   branches/ops_pct/src/pmc/packfiledirectory.pmc
   branches/ops_pct/src/pmc/packfilefixupentry.pmc
   branches/ops_pct/src/pmc/packfilefixuptable.pmc
   branches/ops_pct/src/pmc/packfilerawsegment.pmc
   branches/ops_pct/src/pmc/packfilesegment.pmc
   branches/ops_pct/src/pmc/parrotinterpreter.pmc
   branches/ops_pct/src/pmc/parrotlibrary.pmc
   branches/ops_pct/src/pmc/parrotrunningthread.pmc
   branches/ops_pct/src/pmc/parrotthread.pmc
   branches/ops_pct/src/pmc/pmcproxy.pmc
   branches/ops_pct/src/pmc/pointer.pmc
   branches/ops_pct/src/pmc/resizablebooleanarray.pmc
   branches/ops_pct/src/pmc/resizablefloatarray.pmc
   branches/ops_pct/src/pmc/resizableintegerarray.pmc
   branches/ops_pct/src/pmc/resizablepmcarray.pmc
   branches/ops_pct/src/pmc/resizablestringarray.pmc
   branches/ops_pct/src/pmc/role.pmc
   branches/ops_pct/src/pmc/scalar.pmc
   branches/ops_pct/src/pmc/scheduler.pmc
   branches/ops_pct/src/pmc/schedulermessage.pmc
   branches/ops_pct/src/pmc/sockaddr.pmc
   branches/ops_pct/src/pmc/socket.pmc
   branches/ops_pct/src/pmc/string.pmc
   branches/ops_pct/src/pmc/stringhandle.pmc
   branches/ops_pct/src/pmc/stringiterator.pmc
   branches/ops_pct/src/pmc/sub.pmc
   branches/ops_pct/src/pmc/task.pmc
   branches/ops_pct/src/pmc/timer.pmc
   branches/ops_pct/src/pmc/undef.pmc
   branches/ops_pct/src/pmc/unmanagedstruct.pmc
   branches/ops_pct/src/pmc_freeze.c
   branches/ops_pct/src/runcore/cores.c   (contents, props changed)
   branches/ops_pct/src/runcore/main.c   (contents, props changed)
   branches/ops_pct/src/runcore/profiling.c   (contents, props changed)
   branches/ops_pct/src/runcore/trace.c   (contents, props changed)
   branches/ops_pct/src/scheduler.c
   branches/ops_pct/src/spf_render.c
   branches/ops_pct/src/spf_vtable.c
   branches/ops_pct/src/string/api.c
   branches/ops_pct/src/string/charset.c
   branches/ops_pct/src/string/charset/ascii.c
   branches/ops_pct/src/string/charset/ascii.h
   branches/ops_pct/src/string/charset/binary.c
   branches/ops_pct/src/string/charset/binary.h
   branches/ops_pct/src/string/charset/iso-8859-1.c
   branches/ops_pct/src/string/charset/iso-8859-1.h
   branches/ops_pct/src/string/charset/unicode.c
   branches/ops_pct/src/string/charset/unicode.h
   branches/ops_pct/src/string/encoding.c
   branches/ops_pct/src/string/encoding/fixed_8.c
   branches/ops_pct/src/string/encoding/fixed_8.h
   branches/ops_pct/src/string/encoding/ucs2.c
   branches/ops_pct/src/string/encoding/ucs2.h
   branches/ops_pct/src/string/encoding/utf16.c
   branches/ops_pct/src/string/encoding/utf16.h
   branches/ops_pct/src/string/encoding/utf8.c
   branches/ops_pct/src/string/encoding/utf8.h
   branches/ops_pct/src/string/primitives.c
   branches/ops_pct/src/sub.c
   branches/ops_pct/src/thread.c
   branches/ops_pct/src/utils.c
   branches/ops_pct/src/vtables.c
   branches/ops_pct/t/codingstd/c_function_docs.t
   branches/ops_pct/t/codingstd/c_parens.t
   branches/ops_pct/t/codingstd/pdd_format.t
   branches/ops_pct/t/compilers/imcc/imcpasm/optc.t
   branches/ops_pct/t/compilers/imcc/reg/spill.t
   branches/ops_pct/t/compilers/imcc/syn/file.t
   branches/ops_pct/t/compilers/imcc/syn/labels.t
   branches/ops_pct/t/compilers/imcc/syn/objects.t
   branches/ops_pct/t/compilers/imcc/syn/op.t
   branches/ops_pct/t/compilers/imcc/syn/regressions.t
   branches/ops_pct/t/compilers/imcc/syn/scope.t
   branches/ops_pct/t/compilers/imcc/syn/subflags.t
   branches/ops_pct/t/compilers/imcc/syn/tail.t
   branches/ops_pct/t/compilers/imcc/syn/veracity.t
   branches/ops_pct/t/compilers/pct/complete_workflow.t
   branches/ops_pct/t/compilers/pge/02-match.t
   branches/ops_pct/t/compilers/pge/03-optable.t
   branches/ops_pct/t/compilers/pge/04-compile.t
   branches/ops_pct/t/compilers/pge/p5regex/p5rx.t
   branches/ops_pct/t/compilers/pge/perl6regex/01-regex.t
   branches/ops_pct/t/compilers/pge/pge-hs.t
   branches/ops_pct/t/compilers/tge/NoneGrammar.tg   (props changed)
   branches/ops_pct/t/compilers/tge/basic.t
   branches/ops_pct/t/compilers/tge/parser.t
   branches/ops_pct/t/configure/testlib/adefectivefoobar
   branches/ops_pct/t/configure/testlib/bdefectivefoobar
   branches/ops_pct/t/configure/testlib/cdefectivefoobar
   branches/ops_pct/t/configure/testlib/ddefectivefoobar
   branches/ops_pct/t/configure/testlib/verbosefoobar
   branches/ops_pct/t/distro/file_metadata.t
   branches/ops_pct/t/dynoplibs/math.t
   branches/ops_pct/t/dynoplibs/obscure.t
   branches/ops_pct/t/dynpmc/foo2.t
   branches/ops_pct/t/dynpmc/rational.t
   branches/ops_pct/t/dynpmc/rotest.t
   branches/ops_pct/t/dynpmc/subproxy.t
   branches/ops_pct/t/examples/shootout.t
   branches/ops_pct/t/examples/tutorial.t
   branches/ops_pct/t/harness
   branches/ops_pct/t/include/fp_equality.t
   branches/ops_pct/t/library/configure.t
   branches/ops_pct/t/library/getopt_obj.t
   branches/ops_pct/t/library/hllmacros.t
   branches/ops_pct/t/library/md5.t
   branches/ops_pct/t/library/mime_base64.t
   branches/ops_pct/t/library/p6object.t
   branches/ops_pct/t/library/parrotlib.t
   branches/ops_pct/t/library/pcre.t
   branches/ops_pct/t/library/protoobject.t
   branches/ops_pct/t/library/rand.t
   branches/ops_pct/t/library/range.t
   branches/ops_pct/t/library/test_builder_tester.t
   branches/ops_pct/t/library/test_class.t
   branches/ops_pct/t/library/test_more.t
   branches/ops_pct/t/library/uuid.t
   branches/ops_pct/t/native_pbc/annotations.pbc
   branches/ops_pct/t/native_pbc/integer_1.pbc
   branches/ops_pct/t/native_pbc/number_1.pbc
   branches/ops_pct/t/native_pbc/string_1.pbc
   branches/ops_pct/t/oo/attributes.t
   branches/ops_pct/t/oo/composition.t
   branches/ops_pct/t/oo/inheritance.t
   branches/ops_pct/t/oo/isa.t
   branches/ops_pct/t/oo/metamodel.t
   branches/ops_pct/t/oo/methods.t
   branches/ops_pct/t/oo/mro-c3.t
   branches/ops_pct/t/oo/names.t
   branches/ops_pct/t/oo/new.t
   branches/ops_pct/t/oo/ops.t
   branches/ops_pct/t/oo/proxy.t
   branches/ops_pct/t/oo/root_new.t   (contents, props changed)
   branches/ops_pct/t/oo/subclass.t
   branches/ops_pct/t/oo/vtableoverride.t
   branches/ops_pct/t/op/00ff-dos.t
   branches/ops_pct/t/op/00ff-unix.t
   branches/ops_pct/t/op/64bit.t
   branches/ops_pct/t/op/annotate-old.t
   branches/ops_pct/t/op/annotate.t
   branches/ops_pct/t/op/arithmetics.t
   branches/ops_pct/t/op/arithmetics_pmc.t
   branches/ops_pct/t/op/box.t
   branches/ops_pct/t/op/calling.t
   branches/ops_pct/t/op/cc_params.t
   branches/ops_pct/t/op/cmp-nonbranch.t
   branches/ops_pct/t/op/comp.t
   branches/ops_pct/t/op/copy.t
   branches/ops_pct/t/op/debuginfo.t
   branches/ops_pct/t/op/errorson.t
   branches/ops_pct/t/op/exceptions.t
   branches/ops_pct/t/op/fetch.t
   branches/ops_pct/t/op/gc-leaky.t
   branches/ops_pct/t/op/gc.t
   branches/ops_pct/t/op/globals.t
   branches/ops_pct/t/op/ifunless.t
   branches/ops_pct/t/op/inf_nan.t
   branches/ops_pct/t/op/integer.t
   branches/ops_pct/t/op/interp.t
   branches/ops_pct/t/op/io.t
   branches/ops_pct/t/op/literal.t
   branches/ops_pct/t/op/number.t
   branches/ops_pct/t/op/sprintf.t
   branches/ops_pct/t/op/sprintf2.t
   branches/ops_pct/t/op/string.t
   branches/ops_pct/t/op/string_cmp.t
   branches/ops_pct/t/op/string_cs.t
   branches/ops_pct/t/op/stringu.t
   branches/ops_pct/t/op/time.t
   branches/ops_pct/t/op/trans.t
   branches/ops_pct/t/op/vivify.t
   branches/ops_pct/t/pharness/02-get_test_prog_args.t
   branches/ops_pct/t/pir/macro.t
   branches/ops_pct/t/pir/registernames.t
   branches/ops_pct/t/pmc/addrregistry.t
   branches/ops_pct/t/pmc/arrayiterator.t
   branches/ops_pct/t/pmc/bigint.t
   branches/ops_pct/t/pmc/boolean.t
   branches/ops_pct/t/pmc/callcontext.t
   branches/ops_pct/t/pmc/capture.t
   branches/ops_pct/t/pmc/class.t
   branches/ops_pct/t/pmc/codestring.t
   branches/ops_pct/t/pmc/complex.t
   branches/ops_pct/t/pmc/config.t
   branches/ops_pct/t/pmc/context.t
   branches/ops_pct/t/pmc/continuation.t
   branches/ops_pct/t/pmc/default.t
   branches/ops_pct/t/pmc/env.t
   branches/ops_pct/t/pmc/eval.t
   branches/ops_pct/t/pmc/eventhandler.t
   branches/ops_pct/t/pmc/exception-old.t
   branches/ops_pct/t/pmc/exception.t
   branches/ops_pct/t/pmc/exceptionhandler.t
   branches/ops_pct/t/pmc/fixedbooleanarray.t
   branches/ops_pct/t/pmc/fixedfloatarray.t
   branches/ops_pct/t/pmc/fixedintegerarray.t
   branches/ops_pct/t/pmc/fixedpmcarray.t
   branches/ops_pct/t/pmc/fixedstringarray.t
   branches/ops_pct/t/pmc/float.t
   branches/ops_pct/t/pmc/freeze.t
   branches/ops_pct/t/pmc/handle.t
   branches/ops_pct/t/pmc/hash.t
   branches/ops_pct/t/pmc/hashiterator.t
   branches/ops_pct/t/pmc/imageio.t
   branches/ops_pct/t/pmc/imageiosize.t
   branches/ops_pct/t/pmc/integer.t
   branches/ops_pct/t/pmc/io.t
   branches/ops_pct/t/pmc/key.t
   branches/ops_pct/t/pmc/lexinfo.t
   branches/ops_pct/t/pmc/lexpad.t
   branches/ops_pct/t/pmc/managedstruct.t
   branches/ops_pct/t/pmc/multidispatch.t
   branches/ops_pct/t/pmc/namespace-old.t   (contents, props changed)
   branches/ops_pct/t/pmc/namespace.t
   branches/ops_pct/t/pmc/nci.t
   branches/ops_pct/t/pmc/null.t
   branches/ops_pct/t/pmc/object.t
   branches/ops_pct/t/pmc/objects.t
   branches/ops_pct/t/pmc/opcode.t
   branches/ops_pct/t/pmc/oplib.t
   branches/ops_pct/t/pmc/packfile.t
   branches/ops_pct/t/pmc/packfileannotation.t
   branches/ops_pct/t/pmc/packfileannotations.t
   branches/ops_pct/t/pmc/packfileconstanttable.t
   branches/ops_pct/t/pmc/packfiledirectory.t
   branches/ops_pct/t/pmc/packfilefixupentry.t
   branches/ops_pct/t/pmc/packfilefixuptable.t
   branches/ops_pct/t/pmc/packfilerawsegment.t
   branches/ops_pct/t/pmc/packfilesegment.t
   branches/ops_pct/t/pmc/parrotclass.t
   branches/ops_pct/t/pmc/parrotinterpreter.t
   branches/ops_pct/t/pmc/parrotlibrary.t
   branches/ops_pct/t/pmc/parrotobject.t
   branches/ops_pct/t/pmc/parrotrunningthread.t
   branches/ops_pct/t/pmc/parrotthread.t
   branches/ops_pct/t/pmc/pmcproxy.t
   branches/ops_pct/t/pmc/pointer.t
   branches/ops_pct/t/pmc/prop.t
   branches/ops_pct/t/pmc/resizablebooleanarray.t
   branches/ops_pct/t/pmc/resizablefloatarray.t
   branches/ops_pct/t/pmc/resizableintegerarray.t
   branches/ops_pct/t/pmc/resizablepmcarray.t
   branches/ops_pct/t/pmc/ro.t
   branches/ops_pct/t/pmc/role.t
   branches/ops_pct/t/pmc/scalar.t
   branches/ops_pct/t/pmc/scheduler.t
   branches/ops_pct/t/pmc/schedulermessage.t
   branches/ops_pct/t/pmc/sockaddr.t
   branches/ops_pct/t/pmc/socket.t
   branches/ops_pct/t/pmc/string.t
   branches/ops_pct/t/pmc/stringiterator.t
   branches/ops_pct/t/pmc/threads.t
   branches/ops_pct/t/pmc/undef.t
   branches/ops_pct/t/pmc/unmanagedstruct.t
   branches/ops_pct/t/run/exit.t
   branches/ops_pct/t/src/basic.t
   branches/ops_pct/t/src/embed.t   (contents, props changed)
   branches/ops_pct/t/src/extend.t
   branches/ops_pct/t/src/warnings.t
   branches/ops_pct/t/steps/auto/arch-01.t
   branches/ops_pct/t/steps/gen/platform-01.t
   branches/ops_pct/t/steps/init/defaults-01.t
   branches/ops_pct/t/steps/init/hints/linux-01.t   (props changed)
   branches/ops_pct/t/steps/inter/progs-04.t
   branches/ops_pct/t/tools/install/testlib/README
   branches/ops_pct/t/tools/ops2cutils/01-new.t
   branches/ops_pct/t/tools/ops2cutils/03-print_c_header_file.t
   branches/ops_pct/t/tools/ops2cutils/04-print_c_source_top.t
   branches/ops_pct/t/tools/ops2cutils/05-print_c_source_bottom.t
   branches/ops_pct/t/tools/ops2cutils/06-dynamic.t
   branches/ops_pct/t/tools/ops2cutils/07-make_incdir.t
   branches/ops_pct/t/tools/ops2cutils/08-nolines.t
   branches/ops_pct/t/tools/ops2cutils/09-dynamic_nolines.t
   branches/ops_pct/t/tools/ops2cutils/10-print_c_source_file.t
   branches/ops_pct/t/tools/ops2pm/05-renum_op_map_file.t
   branches/ops_pct/tools/build/h2inc.pl   (props changed)
   branches/ops_pct/tools/build/headerizer.pl
   branches/ops_pct/tools/build/ops2c.pl
   branches/ops_pct/tools/dev/branch_status.pl
   branches/ops_pct/tools/dev/checkdepend.pl
   branches/ops_pct/tools/dev/fetch_languages.pl   (props changed)
   branches/ops_pct/tools/dev/gen_charset_tables.pl
   branches/ops_pct/tools/dev/install_files.pl
   branches/ops_pct/tools/dev/mk_gitignore.pl   (props changed)
   branches/ops_pct/tools/dev/mk_inno.pl
   branches/ops_pct/tools/dev/mk_manifest_and_skip.pl
   branches/ops_pct/tools/dev/mk_native_pbc
   branches/ops_pct/tools/dev/nci_thunk_gen.pir
   branches/ops_pct/tools/dev/parrot-fuzzer
   branches/ops_pct/tools/dev/pbc_to_exe.pir
   branches/ops_pct/tools/install/smoke.pl
   branches/ops_pct/tools/util/parrot-config.pir
   branches/ops_pct/tools/util/perlcritic-cage.conf   (props changed)
   branches/ops_pct/tools/util/release.json

Modified: branches/ops_pct/CREDITS
==============================================================================
--- branches/ops_pct/CREDITS	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/CREDITS	Wed Apr 28 03:18:28 2010	(r46097)
@@ -402,7 +402,7 @@
 
 N: Gerd Pokorra
 E: pokorra at uni-siegen.de
-D: Release manager for 1.9.0
+D: Release manager for 1.9.0 and 2.3.0
 
 N: Goplat
 D: Win98 and other fixes.
@@ -573,7 +573,8 @@
 D: Getopt/Obj.pir
 
 N: Julian Albo
-U: julianalbo
+U: NotFound
+A: julianalbo
 E: julian.notfound at gmail.com
 
 N: Julian Fondren
@@ -767,10 +768,6 @@
 N: Nigelsandever
 D: Win32 patches
 
-N: Notfound
-D: Bugfixing and cage cleaning.
-E: julian.notfound at gmail.com
-
 N: Nuno 'smash' Carvalho
 U: smash
 D: PGE/perl6/abc debugging and testing
@@ -922,6 +919,11 @@
 N: Stefan Lidman
 D: sqrt ops
 
+N: Stefan O'Rear
+E: stefanor at cox.net
+D: Perl 5 interoperability, Blizkost
+U: sorear
+
 N: Stéphane Payrard
 D: Various code fixes and improvements
 

Modified: branches/ops_pct/ChangeLog
==============================================================================
--- branches/ops_pct/ChangeLog	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/ChangeLog	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,5 +1,13 @@
 #1 $Id$
 
+2010.04.20     Gerd
+	* Released 2.3.0
+	See NEWS for more.
+
+2010.03.16     cotto
+	* Released 2.2.0
+	See NEWS for more.
+
 2010.02.16     darbelo
 	* Released 2.1.0
 	See NEWS for more.

Modified: branches/ops_pct/Configure.pl
==============================================================================
--- branches/ops_pct/Configure.pl	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/Configure.pl	Wed Apr 28 03:18:28 2010	(r46097)
@@ -343,10 +343,6 @@
 
 Use the given ops files.
 
-=item C<--cgoto=0>
-
-Don't build cgoto core. This is recommended when you are short of memory.
-
 =item C<--jitcapable>
 
 Use JIT system.
@@ -623,7 +619,6 @@
     auto::jit
     auto::frames
     auto::cpu
-    auto::cgoto
     auto::inline
     auto::gc
     auto::memalign
@@ -632,10 +627,8 @@
     auto::env
     auto::gmp
     auto::readline
-    auto::gdbm
     auto::pcre
     auto::opengl
-    auto::crypto
     auto::gettext
     auto::snprintf
     # auto::perldoc
@@ -644,7 +637,6 @@
     auto::icu
     gen::config_h
     gen::core_pmcs
-    gen::crypto
     gen::opengl
     gen::makefiles
     gen::platform

Modified: branches/ops_pct/DEPRECATED.pod
==============================================================================
--- branches/ops_pct/DEPRECATED.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/DEPRECATED.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -7,8 +7,8 @@
 
 =head1 Experimental Status
 
-These features are not considered stable, even though they may
-have shipped in a stable release of parrot[2]. Use them at your own
+These features are not considered supported, even though they may
+have shipped in a supported release of parrot[2]. Use them at your own
 risk, as they can be removed or changed in any release. These
 items are marked below with C<[experimental]>.
 
@@ -37,6 +37,10 @@
 
 =over 4
 
+=item gziphandle [experimental]
+
+L<https://trac.parrot.org/parrot/ticket/1580>
+
 =item moved to dynpmc [eligible in 1.1]
 
 AddrRegistry, CodeString, Env, Eval, File, OS, PCCMETHOD_Test, StringHandle,
@@ -60,27 +64,64 @@
 
 L<https://trac.parrot.org/parrot/ticket/103>
 
-=item CPointer PMC [eligible in 2.1]
+=item NCI without signature ("raw" pointers) [eligible in 2.4]
+
+No equivalent functionality is promised. You shouldn't be using this. Here be
+segfaults.
+
+L<https://trac.parrot.org/parrot/ticket/1549>
+
+=item UnManagedStruct handling nested structure [eligible in 2.4]
+
+UnManagedStruct will be simplified to only support flat structures. This means
+that elements which themselves have structure - struct pointers and function
+pointers will be stored as C<void *> and C<void (*)(void)> respectively. To use
+these, they will need to be cast to the appropriate signature on access.
+
+L<https://trac.parrot.org/parrot/ticket/1551>
+
+=item UnManagedStruct initializer structure [eligible in 2.4]
+
+The initializer structure will cease to be an array of triples. In stead, an
+array of flags (no counts or offsets), or a string representation of the same
+information may be used.
 
-And all uses in the Parrot calling conventions.
+L<https://trac.parrot.org/parrot/ticket/1552>
 
-L<https://trac.parrot.org/parrot/ticket/1407>
+=item UnManagedStruct get_integer, set_integer_native [eligible in 2.4]
 
-=item Digest dynpmcs [eligible in 2.4]
+These will no longer refer to the byte length of the buffer, but to the number
+of times the struct is repeated; emulating an array of structs.
 
-The digest dynpmcs are, since the posting of this notice, available on
-http://gitorious.org/digest-dynpmcs and will no longer be distributed
-with parrot after 2.3.
+L<https://trac.parrot.org/parrot/ticket/1553>
 
-L<https://trac.parrot.org/parrot/ticket/1467>
+=item ManagedStruct reallocations based on shape changes [eligible in 2.4]
 
-=item gdbmhash dynpmc [eligible in 2.4]
+Since shape changes may simply be used for re-interpreting data, and may also
+occur in several steps, re-allocating after any one shape change may be
+undesirable. In stead, an explicit allocate/reallocate method will be provided.
 
-The gdbmhash dynpmc is, since the posting of this notice, available on
-http://gitorious.org/dbm-dynpmcs and will no longer be distributed
-with parrot after 2.3.
+L<https://trac.parrot.org/parrot/ticket/1554>
 
-L<https://trac.parrot.org/parrot/ticket/1469>
+=item Auto-vivification of nested aggregates [eligible in 2.4]
+
+Auto-vivifation of nested aggregated is deprecated.
+
+E.g.
+
+  $P0 = new ['Hash']
+  $S1 = $P0['foo';'bar';'baz']
+
+will not auto-vivify nested hashes and return PMCNULL early.
+
+L<https://trac.parrot.org/parrot/ticket/1561>
+
+=item PMC must use manual_attrs or auto_attrs flag [eligible in 2.4]
+
+PMCs must no longer use default value for manual/auto attribute allocation,
+manual_attrs or auto_attrs must be specified.
+
+L<http://trac.parrot.org/parrot/ticket/1506>
 
 =back
 
@@ -122,10 +163,6 @@
 
 =item get_results opcode order and features [eligible in 2.1]
 
-Move get_results to follow invoke.
-
-L<https://trac.parrot.org/parrot/ticket/1405>
-
 get_results no longer used to fetch exception object.
 
 L<https://trac.parrot.org/parrot/ticket/1406>
@@ -135,6 +172,63 @@
 Ability to get the string name of the current GC core from the interpinfo_s_i.
 See r43900 and r43904 for details.
 
+L<https://trac.parrot.org/parrot/ticket/1581>
+
+=item NCI_FB_CB and NCI_FB_UD in iglobals [experimental]
+
+Hooks allowing a runtime-loadable dynamic frame builder.
+
+L<https://trac.parrot.org/parrot/ticket/1582>
+
+=item loadlib_p_s_p [experimental]
+
+Ability to use non-default dynamic loading behaviour.
+
+L<https://trac.parrot.org/parrot/ticket/1583>
+
+=item pushaction, pushmark, popmark [eligible in 2.4]
+
+L<https://trac.parrot.org/parrot/ticket/876>
+
+=item new_callback_p_p_p_s [eligible in 2.4]
+
+To be replaced with new_callback_p_p_p_p_s.
+
+L<https://trac.parrot.org/parrot/ticket/1548>
+
+=item dlfunc and new_callback signature string format [eligible in 2.4]
+
+These will be changed to allow more flexibility in types.
+
+L<https://trac.parrot.org/parrot/ticket/1565>
+
+=item find_lex [eligible in 2.4]
+
+find_lex will not throw exception for non-existing lexicals.
+
+L<https://trac.parrot.org/parrot/ticket/1207>
+
+=item substr_s_i_i_s [eligible in 2.4]
+
+This op will be replaced with replace_s_s_i_i_s op to clearly indicate
+semantic. Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=item substr_s_s_i_i_s [eligible in 2.4]
+
+This op is deprecated. Use replace_s_s_i_i_s or substr_s_s_i_i (or both)
+instead. Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=item inplace string updates. [eligible in 2.4]
+
+All "inplace" string update ops are deprecated. E.g. "chopn_s", etc.
+Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
 =back
 
 =head1 Bytecode
@@ -185,14 +279,6 @@
 
 L<https://trac.parrot.org/parrot/ticket/907>
 
-=item Subs marked with C<:vtable>/C<:method> aren't in namespace [eligible in 1.1]
-
-Subs marked with C<:vtable> or C<:method> flags are no longer given a
-namespace entry by default.  Use the C<:nsentry> flag to cause this
-to happen.
-
-L<https://trac.parrot.org/parrot/ticket/389>
-
 =item C API coding standards cleanup [eligible in 1.1]
 
 All C API functions that aren't currently named according to the
@@ -207,24 +293,55 @@
  Parrot_gc_free_pmc_attributes
 
 These items and related helper functions are added as experimental support
-for L<https://trac.parrot.org/parrot/ticket/895>
+for L<https://trac.parrot.org/parrot/ticket/1506>
 
 =item STRING Out parameters in Parrot_str_* functions [eligible in 2.1]
 
 All STRING modification functions will return a STRING pointer; capture and use
 this rather than relying on in-place modification of an existing pointer.
 
+L<https://trac.parrot.org/parrot/ticket/1584>
+
 =item STRING_is_null function [eligible in 2.4]
 
 renamed to Parrot_str_is_null
 
+L<https://trac.parrot.org/parrot/ticket/1585>
+
 =item Parrot_string_* [eligible in 2.4]
 
 rename Parrot_string_cstring to Parrot_str_cstring
 
-=item STRING functions which don't have Parrot_str_ prefix
+L<https://trac.parrot.org/parrot/ticket/1586>
+
+=item STRING COW [eligible in 2.4]
+
+COW strings are to be removed. All "inplace" string modification
+functions and all "inplace" string ops are deprecated.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
 
-The string subsytem is gradually getting an overhaul.
+=item Parrot_PMC_* in src/extend.c [eligible in 2.4]
+
+These are duplicates of functions in src/extend_vtable.c. Exceptions:
+
+  Parrot_PMC_new
+  Parrot_PMC_typenum
+  Parrot_PMC_null
+  Parrot_PMC_set_vtable
+  Parrot_PMC_newclass
+
+L<https://trac.parrot.org/parrot/ticket/1587>
+
+=item Parrot_VTABLE, Parrot_get_vtable, Parrot_PMC_set_vtable [eligible in 2.4]
+
+These do not expose any functionality that should be available to code outside
+of parrot core.
+
+These might get revived in some form to allow for creating new types and adding
+vtable-overrides, if that functionality becomes desired.
+
+L<https://trac.parrot.org/parrot/ticket/1588>
 
 =back
 
@@ -278,23 +395,6 @@
 
 =back
 
-=head1 Compilers
-
-=over 4
-
-=item json [eligible in 2.4]
-
-The json compiler was dupicated into data_json some time ago. If you're
-using json, just use data_json instead, it's the same code. See TT #1461.
-
-=item nqp [eligible in 2.4]
-
-Replaced by ext/nqp-rx and parrot-nqp.
-
-L<http://trac.parrot.org/parrot/ticket/1462>
-
-=back
-
 =head1 Parrot library
 
 =over 4
@@ -306,7 +406,7 @@
 A way to provide an equivalent of -L and -I parrot command line options
 to language that doesn't support it.
 
-=item JSON, JSON, and Config;JSON [eligible in 1.5]
+=item JSON, and Config;JSON [eligible in 1.5]
 
 L<https://trac.parrot.org/parrot/ticket/508>
 
@@ -331,7 +431,7 @@
 =item 2
 
 For an item to be considered experimental, it can B<never> have shipped in
-a stable release without the C<[experimental]> tag; otherwise, it must be
+a supported release without the C<[experimental]> tag; otherwise, it must be
 deprecated normally before removal or incompatible change.
 
 =back

Modified: branches/ops_pct/MANIFEST
==============================================================================
--- branches/ops_pct/MANIFEST	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/MANIFEST	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,11 +1,12 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Sun Mar 14 21:20:56 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 28 02:47:10 2010 UT
 #
 # See below for documentation on the format of this file.
 #
-# See docs/submissions.pod on how to recreate this file after SVN
+# See docs/submissions.pod and the documentation in
+# tools/dev/mk_manifest_and_skip.pl on how to recreate this file after SVN
 # has been told about new or deleted files.
 CREDITS                                                     [main]doc
 ChangeLog                                                   []
@@ -17,8 +18,6 @@
 MANIFEST                                                    []
 MANIFEST.SKIP                                               []
 MANIFEST.generated                                          []
-META.yml                                                    []
-Makefile.PL                                                 []
 NEWS                                                        [main]doc
 PBC_COMPAT                                                  [main]doc
 PLATFORMS                                                   [devel]doc
@@ -62,72 +61,6 @@
 compilers/imcc/symreg.c                                     [imcc]
 compilers/imcc/symreg.h                                     [imcc]
 compilers/imcc/unit.h                                       [imcc]
-compilers/json/Defines.mak                                  [json]
-compilers/json/JSON.pir                                     [json]
-compilers/json/JSON/grammar.pg                              [json]
-compilers/json/JSON/pge2pir.tg                              [json]
-compilers/json/Rules.mak                                    [json]
-compilers/ncigen/MAINTAINER                                 [ncigen]
-compilers/ncigen/NCIGEN.TODO                                [ncigen]
-compilers/ncigen/NCIGENP6.pm                                [ncigen]
-compilers/ncigen/README                                     []doc
-compilers/ncigen/config/makefiles/ncigen.in                 [ncigen]
-compilers/ncigen/lib/Parrot/Test/NCIGENAST.pm               [ncigen]
-compilers/ncigen/ncigen.pir                                 [ncigen]
-compilers/ncigen/ncigen.pl                                  [ncigen]
-compilers/ncigen/src/NCIGENAST.pir                          [ncigen]
-compilers/ncigen/src/NCIPIR.pir                             [ncigen]
-compilers/ncigen/src/builtins/say.pir                       [ncigen]
-compilers/ncigen/src/parser/actions.pm                      [ncigen]
-compilers/ncigen/src/parser/grammar.pg                      [ncigen]
-compilers/ncigen/t/NCIGENAST/struct_00.t                    [test]
-compilers/ncigen/t/NCIGENAST/typedef_00.t                   [test]
-compilers/ncigen/t/harness                                  [test]
-compilers/ncigen/t/parse_00.t                               [test]
-compilers/ncigen/t/parse_01.t                               [test]
-compilers/ncigen/t/parse_02.t                               [test]
-compilers/nqp/Defines.mak                                   [nqp]
-compilers/nqp/README.pod                                    []doc
-compilers/nqp/Rules.mak                                     [nqp]
-compilers/nqp/TODO.pod                                      [nqp]
-compilers/nqp/bootstrap/actions.pm                          [nqp]
-compilers/nqp/bootstrap/nqp.pir                             [nqp]
-compilers/nqp/bootstrap/t/harness                           [test]
-compilers/nqp/nqp.pir                                       [nqp]
-compilers/nqp/src/Grammar.pg                                [nqp]
-compilers/nqp/src/Grammar/Actions.pir                       [nqp]
-compilers/nqp/src/builtins.pir                              [nqp]
-compilers/nqp/t/01-literals.t                               [test]
-compilers/nqp/t/02-if-else.t                                [test]
-compilers/nqp/t/02-if.t                                     [test]
-compilers/nqp/t/03-unless.t                                 [test]
-compilers/nqp/t/04-comments.t                               [test]
-compilers/nqp/t/05-pod.t                                    [test]
-compilers/nqp/t/06-args-pos.t                               [test]
-compilers/nqp/t/07-boolean.t                                [test]
-compilers/nqp/t/08-blocks.t                                 [test]
-compilers/nqp/t/09-var.t                                    [test]
-compilers/nqp/t/10-sub.t                                    [test]
-compilers/nqp/t/11-cmp.t                                    [test]
-compilers/nqp/t/12-list.t                                   [test]
-compilers/nqp/t/13-logical.t                                [test]
-compilers/nqp/t/14-op.t                                     [test]
-compilers/nqp/t/15-module.t                                 [test]
-compilers/nqp/t/16-while.t                                  [test]
-compilers/nqp/t/17-class.t                                  [test]
-compilers/nqp/t/18-inline.t                                 [test]
-compilers/nqp/t/19-hash_access.t                            [test]
-compilers/nqp/t/20-list_access.t                            [test]
-compilers/nqp/t/22-optional_args.t                          [test]
-compilers/nqp/t/23-named_args.t                             [test]
-compilers/nqp/t/24-scalar_context.t                         [test]
-compilers/nqp/t/25-list_context.t                           [test]
-compilers/nqp/t/26-method_ops.t                             [test]
-compilers/nqp/t/27-ternary.t                                [test]
-compilers/nqp/t/28-return.t                                 [test]
-compilers/nqp/t/29-self.t                                   [test]
-compilers/nqp/t/30-subclass.t                               [test]
-compilers/nqp/t/harness                                     [test]
 compilers/opsc/Defines.mak                                  [opsc]
 compilers/opsc/Rules.mak                                    [opsc]
 compilers/opsc/TODO                                         [opsc]
@@ -251,8 +184,6 @@
 config/auto/backtrace/test_dlinfo_c.in                      []
 config/auto/byteorder.pm                                    []
 config/auto/byteorder/test_c.in                             []
-config/auto/cgoto.pm                                        []
-config/auto/cgoto/test_c.in                                 []
 config/auto/cpu.pm                                          []
 config/auto/cpu/i386/auto.pm                                []
 config/auto/cpu/i386/test_gcc_cmpxchg_c.in                  []
@@ -261,8 +192,6 @@
 config/auto/cpu/sun4/auto.pm                                []
 config/auto/cpu/sun4/test_atomic_c.in                       []
 config/auto/cpu/x86_64/auto.pm                              []
-config/auto/crypto.pm                                       []
-config/auto/crypto/crypto_c.in                              []
 config/auto/ctags.pm                                        []
 config/auto/env.pm                                          []
 config/auto/env/test_setenv_c.in                            []
@@ -276,8 +205,6 @@
 config/auto/gc/test_c.in                                    []
 config/auto/gcc.pm                                          []
 config/auto/gcc/test_c.in                                   []
-config/auto/gdbm.pm                                         []
-config/auto/gdbm/gdbm_c.in                                  []
 config/auto/gettext.pm                                      []
 config/auto/gettext/gettext_c.in                            []
 config/auto/glibc.pm                                        []
@@ -335,13 +262,9 @@
 config/gen/config_h/has_header_h.in                         []
 config/gen/config_pm.pm                                     []
 config/gen/config_pm/Config_pm.in                           []
-config/gen/config_pm/config_lib_pasm.in                     []
 config/gen/config_pm/config_pir.in                          []
 config/gen/config_pm/myconfig.in                            []
 config/gen/core_pmcs.pm                                     []
-config/gen/crypto.pm                                        []
-config/gen/crypto/digest_pmc.in                             []
-config/gen/crypto/digest_t.in                               []
 config/gen/makefiles.pm                                     []
 config/gen/makefiles/docs.in                                []
 config/gen/makefiles/dynpmc.in                              []
@@ -386,7 +309,6 @@
 config/gen/platform/openbsd/math.c                          []
 config/gen/platform/openbsd/memexec.c                       []
 config/gen/platform/openbsd/misc.h                          []
-config/gen/platform/platform_interface.h                    []
 config/gen/platform/solaris/math.c                          []
 config/gen/platform/solaris/time.c                          []
 config/gen/platform/win32/begin.c                           []
@@ -952,15 +874,6 @@
 ext/Parrot-Embed/tools/check_embed_coverage.pl              []
 ext/Parrot-Embed/tools/write_typemap.pl                     []
 ext/Parrot-Embed/typemap                                    []
-ext/SQLite3/DBDI.pm                                         []
-ext/SQLite3/DBDI/Driver/SQLite3.pm                          []
-ext/SQLite3/Makefile.PL                                     []
-ext/SQLite3/Makefile.in                                     []
-ext/SQLite3/SQLite3.pir                                     []
-ext/SQLite3/gen_sqlite3.pl                                  []
-ext/SQLite3/t/test.p6                                       [test]
-ext/SQLite3/test.pir                                        []
-ext/nqp-rx/.gitignore                                       []
 ext/nqp-rx/CREDITS                                          []
 ext/nqp-rx/Defines.mak                                      []
 ext/nqp-rx/LICENSE                                          []
@@ -1152,10 +1065,6 @@
 lib/Parrot/Op.pm                                            [devel]lib
 lib/Parrot/OpTrans.pm                                       [devel]lib
 lib/Parrot/OpTrans/C.pm                                     [devel]lib
-lib/Parrot/OpTrans/CGP.pm                                   [devel]lib
-lib/Parrot/OpTrans/CGoto.pm                                 [devel]lib
-lib/Parrot/OpTrans/CPrederef.pm                             [devel]lib
-lib/Parrot/OpTrans/CSwitch.pm                               [devel]lib
 lib/Parrot/Ops2c/Auxiliary.pm                               [devel]lib
 lib/Parrot/Ops2c/Utils.pm                                   [devel]lib
 lib/Parrot/Ops2pm.pm                                        [devel]lib
@@ -1285,7 +1194,6 @@
 runtime/parrot/library/SDL/Sprite.pir                       [library]
 runtime/parrot/library/SDL/StopWatch.pir                    [library]
 runtime/parrot/library/SDL/Surface.pir                      [library]
-runtime/parrot/library/SQLite3.pir                          [library]
 runtime/parrot/library/Stream/Base.pir                      [library]
 runtime/parrot/library/Stream/Combiner.pir                  [library]
 runtime/parrot/library/Stream/Coroutine.pir                 [library]
@@ -1340,16 +1248,15 @@
 src/dynoplibs/math.ops                                      []
 src/dynoplibs/obscure.ops                                   []
 src/dynpmc/README.pod                                       []doc
-src/dynpmc/dynlexpad.pmc                                    [devel]src
+src/dynpmc/dynlexpad.pmc                                    []
 src/dynpmc/ext.pir                                          []
-src/dynpmc/foo.pmc                                          [devel]src
-src/dynpmc/foo2.pmc                                         [devel]src
-src/dynpmc/gdbmhash.pmc                                     [devel]src
+src/dynpmc/foo.pmc                                          []
+src/dynpmc/foo2.pmc                                         []
 src/dynpmc/main.pasm                                        []
-src/dynpmc/pccmethod_test.pmc                               [devel]src
-src/dynpmc/rational.pmc                                     [devel]src
-src/dynpmc/rotest.pmc                                       [devel]src
-src/dynpmc/subproxy.pmc                                     [devel]src
+src/dynpmc/pccmethod_test.pmc                               []
+src/dynpmc/rational.pmc                                     []
+src/dynpmc/rotest.pmc                                       []
+src/dynpmc/subproxy.pmc                                     []
 src/embed.c                                                 []
 src/exceptions.c                                            []
 src/exit.c                                                  []
@@ -1424,92 +1331,90 @@
 src/pbc_dump.c                                              []
 src/pbc_merge.c                                             []
 src/pmc.c                                                   []
-src/pmc/addrregistry.pmc                                    [devel]src
-src/pmc/arrayiterator.pmc                                   [devel]src
-src/pmc/bigint.pmc                                          [devel]src
-src/pmc/bignum.pmc                                          [devel]src
-src/pmc/boolean.pmc                                         [devel]src
-src/pmc/callcontext.pmc                                     [devel]src
-src/pmc/capture.pmc                                         [devel]src
-src/pmc/class.pmc                                           [devel]src
-src/pmc/codestring.pmc                                      [devel]src
-src/pmc/complex.pmc                                         [devel]src
-src/pmc/continuation.pmc                                    [devel]src
-src/pmc/coroutine.pmc                                       [devel]src
-src/pmc/cpointer.pmc                                        [devel]src
-src/pmc/default.pmc                                         [devel]src
-src/pmc/env.pmc                                             [devel]src
-src/pmc/eval.pmc                                            [devel]src
-src/pmc/eventhandler.pmc                                    [devel]src
-src/pmc/exception.pmc                                       [devel]src
-src/pmc/exceptionhandler.pmc                                [devel]src
-src/pmc/exporter.pmc                                        [devel]src
-src/pmc/file.pmc                                            [devel]src
-src/pmc/filehandle.pmc                                      [devel]src
-src/pmc/fixedbooleanarray.pmc                               [devel]src
-src/pmc/fixedfloatarray.pmc                                 [devel]src
-src/pmc/fixedintegerarray.pmc                               [devel]src
-src/pmc/fixedpmcarray.pmc                                   [devel]src
-src/pmc/fixedstringarray.pmc                                [devel]src
-src/pmc/float.pmc                                           [devel]src
-src/pmc/handle.pmc                                          [devel]src
-src/pmc/hash.pmc                                            [devel]src
-src/pmc/hashiterator.pmc                                    [devel]src
-src/pmc/hashiteratorkey.pmc                                 [devel]src
-src/pmc/imageio.pmc                                         [devel]src
-src/pmc/imageiosize.pmc                                     [devel]src
-src/pmc/integer.pmc                                         [devel]src
-src/pmc/iterator.pmc                                        [devel]src
-src/pmc/key.pmc                                             [devel]src
-src/pmc/lexinfo.pmc                                         [devel]src
-src/pmc/lexpad.pmc                                          [devel]src
-src/pmc/managedstruct.pmc                                   [devel]src
-src/pmc/multisub.pmc                                        [devel]src
-src/pmc/namespace.pmc                                       [devel]src
-src/pmc/nci.pmc                                             [devel]src
-src/pmc/null.pmc                                            [devel]src
-src/pmc/object.pmc                                          [devel]src
-src/pmc/opcode.pmc                                          [devel]src
-src/pmc/oplib.pmc                                           [devel]src
-src/pmc/orderedhash.pmc                                     [devel]src
-src/pmc/orderedhashiterator.pmc                             [devel]src
-src/pmc/os.pmc                                              [devel]src
-src/pmc/packfile.pmc                                        [devel]src
-src/pmc/packfileannotation.pmc                              [devel]src
-src/pmc/packfileannotations.pmc                             [devel]src
-src/pmc/packfileconstanttable.pmc                           [devel]src
-src/pmc/packfiledirectory.pmc                               [devel]src
-src/pmc/packfilefixupentry.pmc                              [devel]src
-src/pmc/packfilefixuptable.pmc                              [devel]src
-src/pmc/packfilerawsegment.pmc                              [devel]src
-src/pmc/packfilesegment.pmc                                 [devel]src
-src/pmc/parrotinterpreter.pmc                               [devel]src
-src/pmc/parrotlibrary.pmc                                   [devel]src
-src/pmc/parrotrunningthread.pmc                             [devel]src
-src/pmc/parrotthread.pmc                                    [devel]src
+src/pmc/addrregistry.pmc                                    []
+src/pmc/arrayiterator.pmc                                   []
+src/pmc/bigint.pmc                                          []
+src/pmc/bignum.pmc                                          []
+src/pmc/boolean.pmc                                         []
+src/pmc/callcontext.pmc                                     []
+src/pmc/capture.pmc                                         []
+src/pmc/class.pmc                                           []
+src/pmc/codestring.pmc                                      []
+src/pmc/complex.pmc                                         []
+src/pmc/continuation.pmc                                    []
+src/pmc/coroutine.pmc                                       []
+src/pmc/default.pmc                                         []
+src/pmc/env.pmc                                             []
+src/pmc/eval.pmc                                            []
+src/pmc/eventhandler.pmc                                    []
+src/pmc/exception.pmc                                       []
+src/pmc/exceptionhandler.pmc                                []
+src/pmc/exporter.pmc                                        []
+src/pmc/file.pmc                                            []
+src/pmc/filehandle.pmc                                      []
+src/pmc/fixedbooleanarray.pmc                               []
+src/pmc/fixedfloatarray.pmc                                 []
+src/pmc/fixedintegerarray.pmc                               []
+src/pmc/fixedpmcarray.pmc                                   []
+src/pmc/fixedstringarray.pmc                                []
+src/pmc/float.pmc                                           []
+src/pmc/handle.pmc                                          []
+src/pmc/hash.pmc                                            []
+src/pmc/hashiterator.pmc                                    []
+src/pmc/hashiteratorkey.pmc                                 []
+src/pmc/imageio.pmc                                         []
+src/pmc/imageiosize.pmc                                     []
+src/pmc/integer.pmc                                         []
+src/pmc/iterator.pmc                                        []
+src/pmc/key.pmc                                             []
+src/pmc/lexinfo.pmc                                         []
+src/pmc/lexpad.pmc                                          []
+src/pmc/managedstruct.pmc                                   []
+src/pmc/multisub.pmc                                        []
+src/pmc/namespace.pmc                                       []
+src/pmc/nci.pmc                                             []
+src/pmc/null.pmc                                            []
+src/pmc/object.pmc                                          []
+src/pmc/opcode.pmc                                          []
+src/pmc/oplib.pmc                                           []
+src/pmc/orderedhash.pmc                                     []
+src/pmc/orderedhashiterator.pmc                             []
+src/pmc/os.pmc                                              []
+src/pmc/packfile.pmc                                        []
+src/pmc/packfileannotation.pmc                              []
+src/pmc/packfileannotations.pmc                             []
+src/pmc/packfileconstanttable.pmc                           []
+src/pmc/packfiledirectory.pmc                               []
+src/pmc/packfilefixupentry.pmc                              []
+src/pmc/packfilefixuptable.pmc                              []
+src/pmc/packfilerawsegment.pmc                              []
+src/pmc/packfilesegment.pmc                                 []
+src/pmc/parrotinterpreter.pmc                               []
+src/pmc/parrotlibrary.pmc                                   []
+src/pmc/parrotrunningthread.pmc                             []
+src/pmc/parrotthread.pmc                                    []
 src/pmc/pmc.num                                             []
-src/pmc/pmcproxy.pmc                                        [devel]src
-src/pmc/pointer.pmc                                         [devel]src
-src/pmc/resizablebooleanarray.pmc                           [devel]src
-src/pmc/resizablefloatarray.pmc                             [devel]src
-src/pmc/resizableintegerarray.pmc                           [devel]src
-src/pmc/resizablepmcarray.pmc                               [devel]src
-src/pmc/resizablestringarray.pmc                            [devel]src
-src/pmc/retcontinuation.pmc                                 [devel]src
-src/pmc/role.pmc                                            [devel]src
-src/pmc/scalar.pmc                                          [devel]src
-src/pmc/scheduler.pmc                                       [devel]src
-src/pmc/schedulermessage.pmc                                [devel]src
-src/pmc/sockaddr.pmc                                        [devel]src
-src/pmc/socket.pmc                                          [devel]src
-src/pmc/string.pmc                                          [devel]src
-src/pmc/stringhandle.pmc                                    [devel]src
-src/pmc/stringiterator.pmc                                  [devel]src
-src/pmc/sub.pmc                                             [devel]src
-src/pmc/task.pmc                                            [devel]src
-src/pmc/timer.pmc                                           [devel]src
-src/pmc/undef.pmc                                           [devel]src
-src/pmc/unmanagedstruct.pmc                                 [devel]src
+src/pmc/pmcproxy.pmc                                        []
+src/pmc/pointer.pmc                                         []
+src/pmc/resizablebooleanarray.pmc                           []
+src/pmc/resizablefloatarray.pmc                             []
+src/pmc/resizableintegerarray.pmc                           []
+src/pmc/resizablepmcarray.pmc                               []
+src/pmc/resizablestringarray.pmc                            []
+src/pmc/role.pmc                                            []
+src/pmc/scalar.pmc                                          []
+src/pmc/scheduler.pmc                                       []
+src/pmc/schedulermessage.pmc                                []
+src/pmc/sockaddr.pmc                                        []
+src/pmc/socket.pmc                                          []
+src/pmc/string.pmc                                          []
+src/pmc/stringhandle.pmc                                    []
+src/pmc/stringiterator.pmc                                  []
+src/pmc/sub.pmc                                             []
+src/pmc/task.pmc                                            []
+src/pmc/timer.pmc                                           []
+src/pmc/undef.pmc                                           []
+src/pmc/unmanagedstruct.pmc                                 []
 src/pmc_freeze.c                                            []
 src/runcore/cores.c                                         []
 src/runcore/main.c                                          []
@@ -1611,8 +1516,6 @@
 t/compilers/imcc/syn/symbols.t                              [test]
 t/compilers/imcc/syn/tail.t                                 [test]
 t/compilers/imcc/syn/veracity.t                             [test]
-t/compilers/json/from_parrot.t                              [test]
-t/compilers/json/to_parrot.t                                [test]
 t/compilers/pct/complete_workflow.t                         [test]
 t/compilers/pct/past.t                                      [test]
 t/compilers/pct/pct_hllcompiler.t                           [test]
@@ -1718,13 +1621,11 @@
 t/configure/testlib/verbosefoobar                           [test]
 t/distro/file_metadata.t                                    [test]
 t/distro/manifest.t                                         [test]
-t/distro/meta_yml.t                                         [test]
 t/dynoplibs/math.t                                          [test]
 t/dynoplibs/obscure.t                                       [test]
 t/dynpmc/dynlexpad.t                                        [test]
 t/dynpmc/foo.t                                              [test]
 t/dynpmc/foo2.t                                             [test]
-t/dynpmc/gdbmhash.t                                         [test]
 t/dynpmc/pccmethod_test.t                                   [test]
 t/dynpmc/rational.t                                         [test]
 t/dynpmc/rotest.t                                           [test]
@@ -1903,7 +1804,6 @@
 t/pmc/context.t                                             [test]
 t/pmc/continuation.t                                        [test]
 t/pmc/coroutine.t                                           [test]
-t/pmc/cpointer.t                                            [test]
 t/pmc/default.t                                             [test]
 t/pmc/env.t                                                 [test]
 t/pmc/eval.t                                                [test]
@@ -1977,7 +1877,6 @@
 t/pmc/resizableintegerarray.t                               [test]
 t/pmc/resizablepmcarray.t                                   [test]
 t/pmc/resizablestringarray.t                                [test]
-t/pmc/retcontinuation.t                                     [test]
 t/pmc/ro.t                                                  [test]
 t/pmc/role.t                                                [test]
 t/pmc/scalar.t                                              [test]
@@ -2015,16 +1914,13 @@
 t/steps/auto/attributes-01.t                                [test]
 t/steps/auto/backtrace-01.t                                 [test]
 t/steps/auto/byteorder-01.t                                 [test]
-t/steps/auto/cgoto-01.t                                     [test]
 t/steps/auto/cpu-01.t                                       [test]
-t/steps/auto/crypto-01.t                                    [test]
 t/steps/auto/ctags-01.t                                     [test]
 t/steps/auto/env-01.t                                       [test]
 t/steps/auto/format-01.t                                    [test]
 t/steps/auto/frames-01.t                                    [test]
 t/steps/auto/gc-01.t                                        [test]
 t/steps/auto/gcc-01.t                                       [test]
-t/steps/auto/gdbm-01.t                                      [test]
 t/steps/auto/gettext-01.t                                   [test]
 t/steps/auto/glibc-01.t                                     [test]
 t/steps/auto/gmp-01.t                                       [test]

Modified: branches/ops_pct/MANIFEST.SKIP
==============================================================================
--- branches/ops_pct/MANIFEST.SKIP	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/MANIFEST.SKIP	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Mon Mar  8 22:07:22 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 28 02:20:18 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -65,8 +65,8 @@
 ^all_cstring\.str/
 ^blib$
 ^blib/
-^config_lib\.pasm$
-^config_lib\.pasm/
+^config_lib\.pir$
+^config_lib\.pir/
 ^cover_db$
 ^cover_db/
 ^install_config\.fpmc$
@@ -131,6 +131,10 @@
 ^pirc/
 ^tags$
 ^tags/
+^tapir$
+^tapir/
+^tapir\..*$
+^tapir\..*/
 ^temp\.file$
 ^temp\.file/
 ^test$
@@ -184,37 +188,6 @@
 ^compilers/imcc/imcparser\.h/
 ^compilers/imcc/imcparser\.output$
 ^compilers/imcc/imcparser\.output/
-# generated from svn:ignore of 'compilers/json/'
-^compilers/json/JSON\.pbc$
-^compilers/json/JSON\.pbc/
-# generated from svn:ignore of 'compilers/json/JSON/'
-^compilers/json/JSON/.*\.pbc$
-^compilers/json/JSON/.*\.pbc/
-^compilers/json/JSON/.*\.pir$
-^compilers/json/JSON/.*\.pir/
-# generated from svn:ignore of 'compilers/ncigen/'
-^compilers/ncigen/Makefile$
-^compilers/ncigen/Makefile/
-^compilers/ncigen/ncigen\.pbc$
-^compilers/ncigen/ncigen\.pbc/
-# generated from svn:ignore of 'compilers/ncigen/src/'
-^compilers/ncigen/src/gen_actions\.pir$
-^compilers/ncigen/src/gen_actions\.pir/
-^compilers/ncigen/src/gen_builtins\.pir$
-^compilers/ncigen/src/gen_builtins\.pir/
-^compilers/ncigen/src/gen_grammar\.pir$
-^compilers/ncigen/src/gen_grammar\.pir/
-# generated from svn:ignore of 'compilers/nqp/'
-^compilers/nqp/nqp\.pbc$
-^compilers/nqp/nqp\.pbc/
-# generated from svn:ignore of 'compilers/nqp/bootstrap/'
-^compilers/nqp/bootstrap/gen_actions\.pir$
-^compilers/nqp/bootstrap/gen_actions\.pir/
-^compilers/nqp/bootstrap/nqp\.pbc$
-^compilers/nqp/bootstrap/nqp\.pbc/
-# generated from svn:ignore of 'compilers/nqp/src/'
-^compilers/nqp/src/Grammar_gen\.pir$
-^compilers/nqp/src/Grammar_gen\.pir/
 # generated from svn:ignore of 'compilers/pct/src/PAST/'
 ^compilers/pct/src/PAST/.*\.pbc$
 ^compilers/pct/src/PAST/.*\.pbc/
@@ -464,6 +437,8 @@
 ^include/parrot/feature\.h/
 ^include/parrot/has_header\.h$
 ^include/parrot/has_header\.h/
+^include/parrot/opsenum\.h$
+^include/parrot/opsenum\.h/
 ^include/parrot/pbcversion\.h$
 ^include/parrot/pbcversion\.h/
 ^include/parrot/platform\.h$
@@ -548,6 +523,9 @@
 ^runtime/parrot/include/.*\.pasm/
 ^runtime/parrot/include/.*\.pbc$
 ^runtime/parrot/include/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/languages/'
+^runtime/parrot/languages/data_json$
+^runtime/parrot/languages/data_json/
 # generated from svn:ignore of 'runtime/parrot/library/'
 ^runtime/parrot/library/.*\.pbc$
 ^runtime/parrot/library/.*\.pbc/
@@ -599,12 +577,20 @@
 # generated from svn:ignore of 'runtime/parrot/library/Parrot/'
 ^runtime/parrot/library/Parrot/.*\.pbc$
 ^runtime/parrot/library/Parrot/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/ProfTest/'
+^runtime/parrot/library/ProfTest/.*\.pbc$
+^runtime/parrot/library/ProfTest/.*\.pbc/
+^runtime/parrot/library/ProfTest/.*\.pir$
+^runtime/parrot/library/ProfTest/.*\.pir/
 # generated from svn:ignore of 'runtime/parrot/library/Stream/'
 ^runtime/parrot/library/Stream/.*\.pbc$
 ^runtime/parrot/library/Stream/.*\.pbc/
 # generated from svn:ignore of 'runtime/parrot/library/String/'
 ^runtime/parrot/library/String/Utils\.pbc$
 ^runtime/parrot/library/String/Utils\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/TAP/'
+^runtime/parrot/library/TAP/.*\.pbc$
+^runtime/parrot/library/TAP/.*\.pbc/
 # generated from svn:ignore of 'runtime/parrot/library/Tcl/'
 ^runtime/parrot/library/Tcl/.*\.pbc$
 ^runtime/parrot/library/Tcl/.*\.pbc/
@@ -767,8 +753,6 @@
 # generated from svn:ignore of 'src/gc/'
 ^src/gc/.*\.bundle$
 ^src/gc/.*\.bundle/
-^src/gc/.*\.c$
-^src/gc/.*\.c/
 ^src/gc/.*\.def$
 ^src/gc/.*\.def/
 ^src/gc/.*\.dll$
@@ -878,6 +862,13 @@
 ^t/benchmark/.*\.pasm/
 ^t/benchmark/.*\.pir$
 ^t/benchmark/.*\.pir/
+# generated from svn:ignore of 't/compilers/data_json/'
+^t/compilers/data_json/.*\.pbc$
+^t/compilers/data_json/.*\.pbc/
+^t/compilers/data_json/.*\.pir$
+^t/compilers/data_json/.*\.pir/
+^t/compilers/data_json/.*_pbcexe$
+^t/compilers/data_json/.*_pbcexe/
 # generated from svn:ignore of 't/compilers/imcc/'
 ^t/compilers/imcc/.*\.pbc$
 ^t/compilers/imcc/.*\.pbc/
@@ -908,13 +899,6 @@
 ^t/compilers/imcc/syn/.*\.pir/
 ^t/compilers/imcc/syn/.*_pbcexe.*$
 ^t/compilers/imcc/syn/.*_pbcexe.*/
-# generated from svn:ignore of 't/compilers/json/'
-^t/compilers/json/.*\.pbc$
-^t/compilers/json/.*\.pbc/
-^t/compilers/json/.*\.pir$
-^t/compilers/json/.*\.pir/
-^t/compilers/json/.*_pbcexe$
-^t/compilers/json/.*_pbcexe/
 # generated from svn:ignore of 't/compilers/pct/'
 ^t/compilers/pct/.*\.pbc$
 ^t/compilers/pct/.*\.pbc/

Modified: branches/ops_pct/MANIFEST.generated
==============================================================================
--- branches/ops_pct/MANIFEST.generated	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/MANIFEST.generated	Wed Apr 28 03:18:28 2010	(r46097)
@@ -2,16 +2,12 @@
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
 # Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.2.1.0.dylib                    [main]lib
+blib/lib/libparrot.2.3.0.dylib                    [main]lib
 blib/lib/libparrot.a                              [main]lib
 blib/lib/libparrot.dylib                          [main]lib
-blib/lib/libparrot.so.2.1.0                       [main]lib
+blib/lib/libparrot.so.2.3.0                       [main]lib
 blib/lib/libparrot.so                             [main]lib
 compilers/data_json/data_json.pbc                 [data_json]
-compilers/json/JSON.pbc                           [json]
-compilers/json/JSON/grammar.pbc                   [json]
-compilers/json/JSON/pge2pir.pbc                   [json]
-compilers/nqp/nqp.pbc                             [nqp]
 config/gen/call_list/opengl.in                    []
 docs/ops/bit.pod                                  [doc]
 docs/ops/cmp.pod                                  [doc]
@@ -37,14 +33,10 @@
 include/parrot/extend_vtable.h                    [main]include
 include/parrot/feature.h                          [main]include
 include/parrot/has_header.h                       [main]include
-include/parrot/oplib/core_ops_cg.h                [main]include
-include/parrot/oplib/core_ops_cgp.h               [main]include
 include/parrot/oplib/core_ops.h                   [main]include
-include/parrot/oplib/core_ops_switch.h            [main]include
 include/parrot/oplib/ops.h                        [main]include
 include/parrot/pbcversion.h                       [devel]include
 include/parrot/platform.h                         [main]include
-include/parrot/platform_interface.h               [main]include
 include/parrot/platform_limits.h                  [devel]include
 include/parrot/vtable.h                           [main]include
 install_config.fpmc                               [main]lib
@@ -67,6 +59,8 @@
 installable_pbc_to_exe                            [main]bin
 installable_parrot-nqp.exe                        [main]bin
 installable_parrot-nqp                            [main]bin
+installable_tapir.exe                             [main]bin
+installable_tapir                                 [main]bin
 lib/Parrot/Config/Generated.pm                    [devel]lib
 libparrot.dll                                     [main]bin
 libparrot.lib                                     [main]bin
@@ -74,30 +68,18 @@
 lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm                [devel]lib
 lib/Parrot/PMC.pm                                 [devel]lib
 parrot.pc                                         [main]pkgconfig
-runtime/parrot/dynext/digest_group.bundle         [library]
-runtime/parrot/dynext/digest_group.dll            [library]
-runtime/parrot/dynext/digest_group.dylib          [library]
-runtime/parrot/dynext/digest_group.so             [library]
 runtime/parrot/dynext/dynlexpad.bundle            [library]
 runtime/parrot/dynext/dynlexpad.dll               [library]
 runtime/parrot/dynext/dynlexpad.dylib             [library]
 runtime/parrot/dynext/dynlexpad.so                [library]
-runtime/parrot/dynext/gdbmhash.bundle             [library]
-runtime/parrot/dynext/gdbmhash.dll                [library]
-runtime/parrot/dynext/gdbmhash.dylib              [library]
-runtime/parrot/dynext/gdbmhash.so                 [library]
+runtime/parrot/dynext/gziphandle.bundle           [library]
+runtime/parrot/dynext/gziphandle.dll              [library]
+runtime/parrot/dynext/gziphandle.dylib            [library]
+runtime/parrot/dynext/gziphandle.so               [library]
 runtime/parrot/dynext/libglutcb.bundle            [library]
 runtime/parrot/dynext/libglutcb.dll               [library]
 runtime/parrot/dynext/libglutcb.dylib             [library]
 runtime/parrot/dynext/libglutcb.so                [library]
-runtime/parrot/dynext/libnci_test.bundle          [library]
-runtime/parrot/dynext/libnci_test.dll             [library]
-runtime/parrot/dynext/libnci_test.dylib           [library]
-runtime/parrot/dynext/libnci_test.so              [library]
-runtime/parrot/dynext/match_group.bundle          [library]
-runtime/parrot/dynext/match_group.dll             [library]
-runtime/parrot/dynext/match_group.dylib           [library]
-runtime/parrot/dynext/match_group.so              [library]
 runtime/parrot/dynext/math_ops.so                 [library]
 runtime/parrot/dynext/math_ops.bundle             [library]
 runtime/parrot/dynext/math_ops.dll                [library]
@@ -110,17 +92,15 @@
 runtime/parrot/dynext/rational.dll                [library]
 runtime/parrot/dynext/rational.dylib              [library]
 runtime/parrot/dynext/rational.so                 [library]
-runtime/parrot/dynext/subproxy.bundle             [library]
-runtime/parrot/dynext/subproxy.dll                [library]
-runtime/parrot/dynext/subproxy.dylib              [library]
-runtime/parrot/dynext/subproxy.so                 [library]
 runtime/parrot/include/call_bits.pasm             [main]
 runtime/parrot/include/cclass.pasm                [main]
 runtime/parrot/include/config.fpmc                []
 runtime/parrot/include/datatypes.pasm             [main]
+runtime/parrot/include/dlopenflags.pasm           [main]
 runtime/parrot/include/errors.pasm                [main]
 runtime/parrot/include/except_severity.pasm       [main]
 runtime/parrot/include/except_types.pasm          [main]
+runtime/parrot/include/hash_key_type.pasm         [main]
 runtime/parrot/include/iglobals.pasm              [main]
 runtime/parrot/include/interpcores.pasm           [main]
 runtime/parrot/include/interpdebug.pasm           [main]
@@ -171,6 +151,7 @@
 runtime/parrot/library/OpenGL_funcs.pir           [main]
 runtime/parrot/library/OpenGL_funcs.pbc           [main]
 runtime/parrot/library/OpenGL.pbc                 [main]
+runtime/parrot/library/osutils.pbc                [main]
 runtime/parrot/library/P6object.pbc               [main]
 runtime/parrot/library/P6Regex.pbc                [main]
 runtime/parrot/library/Parrot/Capture_PIR.pbc     [main]
@@ -203,6 +184,9 @@
 runtime/parrot/library/Stream/Replay.pbc          [main]
 runtime/parrot/library/Stream/Sub.pbc             [main]
 runtime/parrot/library/Stream/Writer.pbc          [main]
+runtime/parrot/library/TAP/Formatter.pbc          [main]
+runtime/parrot/library/TAP/Harness.pbc            [main]
+runtime/parrot/library/TAP/Parser.pbc             [main]
 runtime/parrot/library/Tcl/Glob.pbc               [main]
 runtime/parrot/library/TclLibrary.pbc             [main]
 runtime/parrot/library/Test/Builder/Test.pbc      [main]
@@ -222,8 +206,6 @@
 src/jit_emit.h                                    []
 src/nci.c                                         []
 src/null_config.c                                 []
-src/ops/core_ops_cgp.c                            []
-src/ops/core_ops_switch.c                         []
 src/parrot_config.c                               []
 src/pmc/boolean.dump                              [devel]src
 src/pmc/continuation.dump                         [devel]src

Deleted: branches/ops_pct/META.yml
==============================================================================
--- branches/ops_pct/META.yml	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,41 +0,0 @@
-# $Id$
-#
-# This file describes the CPAN distribution for Parrot.
-# See http://module-build.sourceforge.net/META-spec-current.html for details.
----
-name: parrot
-version: 2.1.0
-author: parrot-dev at lists.parrot.org
-abstract: a virtual machine designed for dynamic languages
-license: artistic2
-no_index:
-    directory:
-        - config
-        - languages
-        - lib
-        - lib/Digest
-        - lib/File
-        - lib/Parse
-        - lib/Perl/Critic
-        - lib/Pod
-        - t
-        - tools
-    file:
-        - lib/IO/CaptureOutput.pm
-        - lib/SmartLink.pm
-    package:
-        - DB
-        - Parrot::Test::DB
-        - Parrot::Distribution
-        - Parrot::Docs::HTMLPage
-        - Parrot::OpTrans::CGP
-        - Parrot::OpTrans::CSwitch
-        - Parrot::OpsFile
-requires:
-  Storable: 2.12
-  perl: 5.8.4
-resources:
-    homepage:   'http://parrot.org/'
-    license:    'http://opensource.org/licenses/artistic-license-2.0.php'
-    bugtracker: 'https://trac.parrot.org/parrot/'
-generated_by: Humans

Deleted: branches/ops_pct/Makefile.PL
==============================================================================
--- branches/ops_pct/Makefile.PL	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,45 +0,0 @@
-#! perl
-
-# Copyright (C) 2007-2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Makefile.PL - CPAN installer passthrough to configure Parrot
-
-=head1 DESCRIPTION
-
-This file exists only to allow users of a CPAN shell to configure and build
-Parrot.  If you're reading this yourself, use F<Configure.pl>
-
-=cut
-
-use strict;
-use warnings;
-
-BEGIN { require 5.008 }
-
-my %translations =
-(
-    INSTALL_BASE => 'prefix',
-    LIB          => 'lib',
-    PREFIX       => 'prefix',
-);
-
-my @commands;
-
-for my $arg (@ARGV)
-{
-    my ($name, $value) = split /=/, $arg, 2;
-    next unless exists $translations{ $name };
-    push @commands, "--$name=$value";
-}
-
-system( $^X, 'Configure.pl', @commands );
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/ops_pct/NEWS
==============================================================================
--- branches/ops_pct/NEWS	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/NEWS	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,5 +1,44 @@
 # $Id$
 
+New in 2.4.0
+- Deprecations
+  + Tools to distribute on CPAN were removed
+
+New in 2.3.0
+- Core
+  + Allow passing parameters to the dynamic linker ('dlopen' improved)
+  + loadlib opcode added
+  + Calling conventions are now much more consistent, and follows natural
+    semantics of handling arguments and return values
+  + Recursive make for src/dynpmc removed
+  + Datatype STRINGNULL for a single Null STRING added
+  + config_lib.pasm replaced with config_lib.pir
+- Platforms
+  + Improved handling of new compilers
+  + Cygwin packages will be updated again with Parrot releases
+  + Fedora packages add desktop files
+  + gzip and bzip2 compressed tar files for releases
+- Tools
+  + tapir executable added; tapir is a TAP test harness
+  + Added TAP options --merge --ignore-exit
+- Miscellaneous
+  + 3 month cycle for supported releases
+  + Review and vote of GSoC applications
+
+New in 2.2.0
+- Core changes
+  + Most internal allocations now use the GC
+  + RNG non-randomnes fixes
+  + Elimination of much dead code
+- API changes
+  + PMCs can now be initialized from an int
+  + Many legacy ops are removed
+- Platforms
+  + Sun cc and Intel icc support have been restored
+  + Compiler invocation no longer goes through a Perl script
+- Tools
+  + NCI thunks are now generated by self-hosted PIR code
+
 New in 2.1.0
 - Core changes
   + GC performance and encapsulation were greatly improved.

Modified: branches/ops_pct/PBC_COMPAT
==============================================================================
--- branches/ops_pct/PBC_COMPAT	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/PBC_COMPAT	Wed Apr 28 03:18:28 2010	(r46097)
@@ -27,6 +27,10 @@
 
 # please insert tab separated entries at the top of the list
 
+6.9	2010.04.27	bacek	remove deprecated in-place string ops (bitwise, charset, case change)
+6.8	2010.04.27	bacek	remove deprecated in-place substr ops
+6.7	2010.04.22	coke	remove RetContinuation PMC
+6.6	2010.04.17	bacek	add replace op
 6.5	2010.03.09	cotto	remove cpu_ret op
 6.4	2010.03.02	cotto	remove prederef__ and reserved
 6.3	2010.02.16	whiteknight	Add OpLib and Opcode PMCs

Modified: branches/ops_pct/README
==============================================================================
--- branches/ops_pct/README	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/README	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.1.0
+This is Parrot, version 2.3.0
 ------------------------------
 
 Parrot is Copyright (C) 2001-2010, Parrot Foundation.
@@ -92,14 +92,6 @@
 
     perldoc -F docs/intro.pod
 
-NOTES
------
-
-On some older computers with little RAM, the computed-goto dispatch core
-(ops/core_ops_cg.c) may take a while to compile or may fail to compile at all.
-You can pass a flag to Configure.pl (--cgoto=0) to disable the computed-goto
-core, at a slight cost in runtime speed.
-
 CHANGES
 -------
 

Modified: branches/ops_pct/README_cygwin.pod
==============================================================================
--- branches/ops_pct/README_cygwin.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/README_cygwin.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -25,22 +25,22 @@
 
 Runtime requirements:
 
-  libreadline6 ncurses libintl8 libgmp3 libgdbm4
+  libreadline6 ncurses libintl8 libgmp3
 
 Optional requirements:
 
-  libicu38 libpq5 openssl
+  libicu38 libpq5
 
   for opengl: w32api opengl or libglut3 xorg-x11-base xorg-x11-bin-dlls
 
 Build requirements:
 
   gcc make perl parrot readline libncurses-devel libgmp-devel
-  libgdbm-devel pcre-devel
+  pcre-devel
 
 Optional build requirements:
 
-  libicu-devel openssl-devel
+  libicu-devel
 
   for Cygwin/X opengl: freeglut libglut-devel xorg-x11-devel
 

Modified: branches/ops_pct/README_win32.pod
==============================================================================
--- branches/ops_pct/README_win32.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/README_win32.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -85,15 +85,9 @@
 
 The availability of these libraries is checked by Configure.pl.
 
-B<libcrypto> - a part of libssl / OpenSSL
-L<http://gnuwin32.sourceforge.net/>
-
 B<gettext> - library and tools for native language support
 L<http://gnuwin32.sourceforge.net/>
 
-B<gdbm> - GNU database manager
-L<http://gnuwin32.sourceforge.net/>
-
 B<GMP> - GNU multiple precision arithmetic library
 L<http://developer.berlios.de/projects/win32gmp/>
 

Modified: branches/ops_pct/RESPONSIBLE_PARTIES
==============================================================================
--- branches/ops_pct/RESPONSIBLE_PARTIES	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/RESPONSIBLE_PARTIES	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2009, Parrot Foundation.
+# Copyright (C) 2002-2010, Parrot Foundation.
 # $Id$
 
 This is a list of project roles, with a partial list of the folks who have
@@ -62,6 +62,7 @@
                                 Reini Urban (cygwin)
                                 Will Coleda (MacPorts)
                                 Jerry Gay (Windows)
+                                Gerd Pokorra (Fedora)
 
 
 Patch Monster                   chromatic

Modified: branches/ops_pct/VERSION
==============================================================================
--- branches/ops_pct/VERSION	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/VERSION	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1 +1 @@
-2.1.0
+2.3.0

Modified: branches/ops_pct/compilers/data_json/Defines.mak
==============================================================================
--- branches/ops_pct/compilers/data_json/Defines.mak	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/data_json/Defines.mak	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,6 +1,6 @@
-DATA_JSON_LIB_PBCS = $(LIBRARY_DIR)/data_json.pbc
+DATA_JSON_LIB_PBCS = runtime/parrot/languages/data_json/data_json.pbc
 
-DATA_JSON_CLEANUPS = $(LIBRARY_DIR)/data_json.pbc \
+DATA_JSON_CLEANUPS = $(DATA_JSON_LIB_PBCS) \
     compilers/data_json/data_json.pbc \
     compilers/data_json/data_json/grammar.pir \
     compilers/data_json/data_json/pge2pir.pir

Modified: branches/ops_pct/compilers/data_json/Rules.mak
==============================================================================
--- branches/ops_pct/compilers/data_json/Rules.mak	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/data_json/Rules.mak	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,5 @@
-$(LIBRARY_DIR)/data_json.pbc: compilers/data_json/data_json.pbc
+runtime/parrot/languages/data_json/data_json.pbc: compilers/data_json/data_json.pbc
+	$(MKPATH) runtime/parrot/languages/data_json
 	$(CP) compilers/data_json/data_json.pbc $@
 
 compilers/data_json/data_json.pbc : \

Modified: branches/ops_pct/compilers/imcc/Rules.in
==============================================================================
--- branches/ops_pct/compilers/imcc/Rules.in	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/Rules.in	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,5 @@
 compilers/imcc/pcc$(O) : \
+    compilers/imcc/pcc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -12,6 +13,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/instructions$(O) : \
+    compilers/imcc/instructions.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -25,6 +27,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/pbc$(O) : \
+    compilers/imcc/pbc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -38,6 +41,7 @@
     include/pmc/pmc_sub.h
 
 compilers/imcc/parser_util$(O) : \
+    compilers/imcc/parser_util.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -56,6 +60,7 @@
     include/pmc/pmc_sub.h
 
 compilers/imcc/imc$(O) : \
+    compilers/imcc/imc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -68,6 +73,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/cfg$(O) : \
+    compilers/imcc/cfg.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -80,6 +86,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/debug$(O) : \
+    compilers/imcc/debug.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -126,6 +133,7 @@
 	$(CC) $(CFLAGS) @optimize::compilers/imcc/imcparser.c@ @ccwarn::compilers/imcc/imcparser.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c compilers/imcc/imcparser.c
 
 compilers/imcc/main$(O) : \
+    compilers/imcc/main.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -159,6 +167,7 @@
 	$(CC) $(CFLAGS) @optimize::compilers/imcc/optimizer.c@ @ccwarn::compilers/imcc/optimizer.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c compilers/imcc/optimizer.c
 
 compilers/imcc/reg_alloc$(O) : \
+    compilers/imcc/reg_alloc.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -171,6 +180,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/sets$(O) : \
+    compilers/imcc/sets.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \
@@ -182,6 +192,7 @@
     $(PARROT_H_HEADERS)
 
 compilers/imcc/symreg$(O) : \
+    compilers/imcc/symreg.c \
     compilers/imcc/cfg.h \
     compilers/imcc/debug.h \
     compilers/imcc/imc.h \

Modified: branches/ops_pct/compilers/imcc/imcc.l
==============================================================================
--- branches/ops_pct/compilers/imcc/imcc.l	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/imcc.l	Wed Apr 28 03:18:28 2010	(r46097)
@@ -87,10 +87,14 @@
 
 static void include_file(PARROT_INTERP, char *file_name, ARGMOD(void *yyscanner));
 
+static int handle_identifier(PARROT_INTERP, YYSTYPE *valp, ARGIN(const char *id));
+
 #define YY_DECL int yylex(YYSTYPE *valp, yyscan_t yyscanner, PARROT_INTERP)
 
 #define YYCHOP() (yytext[--yyleng] = '\0')
 
+#define SET_LINE_NUMBER (IMCC_INFO(interp)->line = yylineno)
+
 #define DUP_AND_RET(valp, token)             \
   do {                                       \
       if (valp) (valp)->s = mem_sys_strdup(yytext); \
@@ -111,6 +115,7 @@
 %option reentrant
 %option never-interactive
 %option stack
+%option yylineno
 
 LETTER          [a-zA-Z_@]
 DIGIT           [0-9]
@@ -133,7 +138,7 @@
 STRINGCONSTANT  {SQ_STRING}|{DQ_STRING}
 SQ_STRING       \'[^'\n]*\'
 RANKSPEC        \[[,]*\]
-EOL        \r?\n
+EOL             \r?\n
 WS              [\t\f\r\x1a ]
 SP              [ ]
 
@@ -167,7 +172,10 @@
             return 0;
         }
 
+<*>^{WS}*            { SET_LINE_NUMBER; }
+
 <heredoc1>.*{EOL} {
+            SET_LINE_NUMBER;
             IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
             BEGIN(heredoc2);
     }
@@ -177,7 +185,6 @@
          * arrange them before all wildcard state matches */
 
         /* Newline in the heredoc. Realloc and cat on. */
-        IMCC_INFO(interp)->line++;
         IMCC_INFO(interp)->heredoc_content =
             (char*)mem_sys_realloc(IMCC_INFO(interp)->heredoc_content,
                             strlen(IMCC_INFO(interp)->heredoc_content) +
@@ -187,6 +194,7 @@
     }
 
 <heredoc2>.* {
+        SET_LINE_NUMBER;
         /* Are we at the end of the heredoc? */
         if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
             /* End of the heredoc. */
@@ -209,7 +217,7 @@
             yy_pop_state(yyscanner);
             yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest, yyscanner);
 
-            /* the EOF rule will increment the line number; decrement here */
+            /* not sure we need this decrement; more testing needed */
             IMCC_INFO(interp)->line--;
             return STRINGC;
         }
@@ -244,7 +252,7 @@
 <*>setline{SP}+ { yy_push_state(cmt1, yyscanner);  }
 
 <cmt1>{DIGITS} {
-        IMCC_INFO(interp)->line = atoi(yytext);
+        yylineno = IMCC_INFO(interp)->line = atoi(yytext);
         yy_pop_state(yyscanner);
         yy_push_state(cmt4, yyscanner);
         return LINECOMMENT;
@@ -252,7 +260,6 @@
 
 <cmt4>.*{EOL} {
         yy_pop_state(yyscanner);
-        IMCC_INFO(interp)->line++;
     }
 
 <INITIAL,emit>{EOL} {
@@ -260,7 +267,6 @@
             BEGIN(INITIAL);
 
         IMCC_INFO(interp)->expect_pasm = 0;
-        IMCC_INFO(interp)->line++;
 
         return '\n';
     }
@@ -276,7 +282,6 @@
             yy_pop_state(yyscanner);
 
         IMCC_INFO(interp)->expect_pasm = 0;
-        IMCC_INFO(interp)->line++;
 
         return '\n';
     }
@@ -284,23 +289,24 @@
 
 <INITIAL,emit,macro>^"=cut"{EOL} {
     /* this is a stand-alone =cut, but we're not in POD mode, so ignore.  */
-    IMCC_INFO(interp)->line++;
+    SET_LINE_NUMBER;
 }
 
-<INITIAL,emit,macro>^"=" {
+<INITIAL,emit,macro>^"=".*{EOL} {
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 1;
         yy_push_state(pod, yyscanner);
     }
 
 <pod>^"=cut"{EOL} {
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 0;
         yy_pop_state(yyscanner);
-        IMCC_INFO(interp)->line++;
     }
 
-<pod>.*         { /*ignore*/ }
+<pod>.* { SET_LINE_NUMBER; }
 
-<pod>{EOL}      { IMCC_INFO(interp)->line++; }
+<pod>{EOL}      { /* ignore */ }
 
 <*>".line"               return TK_LINE;
 <*>".file"               return TK_FILE;
@@ -337,7 +343,7 @@
 ":instanceof"              return SUB_INSTANCE_OF;
 ":subid"                   return SUBID;
 
-".get_result"                  return RESULT;
+".get_result"              return RESULT;
 ".get_results"             return GET_RESULTS;
 ".yield"                   return YIELDT;
 ".set_yield"               return SET_YIELD;
@@ -447,6 +453,8 @@
     }
 
 <emit,INITIAL>".macro" {
+        /* the initial whitespace catcher misses this one */
+        SET_LINE_NUMBER;
         return read_macro(valp, interp, yyscanner);
     }
 
@@ -485,7 +493,6 @@
     }
 
 <emit,INITIAL>{ID}"$" {
-
         if (valp) {
             char *label;
             size_t len;
@@ -635,34 +642,8 @@
         return REG;
     }
 
-<emit,INITIAL>{ID} {
-        if (!IMCC_INFO(interp)->is_def) {
-            SymReg *r = find_sym(interp, yytext);
-
-            if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
-                valp->sr = r;
-                return VAR;
-            }
-
-            if (IMCC_INFO(interp)->cur_unit
-            &&  IMCC_INFO(interp)->cur_unit->instructions
-            && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
-            &&  r->pcc_sub)
-            {
-                if (((r->pcc_sub->pragma & P_METHOD)
-                ||   (IMCC_INFO(interp)->cur_unit->is_vtable_method))
-                &&   !strcmp(yytext, "self")) {
-                    valp->sr = mk_ident(interp, "self", 'P');
-                    IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
-                    return VAR;
-                }
-            }
-        }
-
-        valp->s = mem_sys_strdup(yytext);
-        return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
-    }
 
+<emit,INITIAL>{ID} { return handle_identifier(interp, valp, yytext); }
 
 <emit,INITIAL>{WS}+ /* skip */;
 
@@ -684,10 +665,13 @@
 
 <INITIAL><<EOF>> yyterminate();
 
-<macro>".endm"         DUP_AND_RET(valp, ENDM);
+<macro>".endm"         {
+        /* the initial whitespace catcher misses this one */
+        SET_LINE_NUMBER;
+        DUP_AND_RET(valp, ENDM);
+}
 
 <macro>{WS}*{EOL} {
-        IMCC_INFO(interp)->line++;
         DUP_AND_RET(valp, '\n');
     }
 
@@ -745,7 +729,6 @@
     return IDENTIFIER;
 }
 
-<macro>^{WS}+                       /* skip leading ws */;
 <macro>{WS}+                        DUP_AND_RET(valp, ' ');
 <macro>[SNIP]{DIGITS}               DUP_AND_RET(valp, REG);
 <macro>"$"[SNIP]{DIGITS}            DUP_AND_RET(valp, REG);
@@ -814,6 +797,9 @@
     frame->s.next             = (parser_state_t *)IMCC_INFO(interp)->frames;
     IMCC_INFO(interp)->frames = frame;
 
+    /* start at the effective *starting line* of the macro */
+    IMCC_INFO(interp)->line   = frame->s.line - 2;
+
     yy_scan_string(expansion, yyscanner);
 }
 
@@ -1069,9 +1055,6 @@
     IMCC_INFO(interp)->macro_buffer   = NULL;
     IMCC_INFO(interp)->cur_macro_name = NULL;
 
-    /* the ENDM rule doesn't set the line number */
-    IMCC_INFO(interp)->line--;
-
     return MACRO;
 }
 
@@ -1232,8 +1215,6 @@
             }
         }
 
-        /* let the normal EOF rules match line numbers */
-        IMCC_INFO(interp)->line = m->line - 1;
         scan_string(frame, m->expansion, yyscanner);
 
         return 1;
@@ -1283,15 +1264,19 @@
 scan_file(PARROT_INTERP, macro_frame_t *frame, FILE *file, void *yyscanner)
 {
     yyguts_t * const yyg      = (yyguts_t *)yyscanner;
+    const      int   oldline  = IMCC_INFO(interp)->line;
     frame->buffer             = YY_CURRENT_BUFFER;
     frame->s.next             = (parser_state_t *)IMCC_INFO(interp)->frames;
     IMCC_INFO(interp)->frames = frame;
     IMCC_INFO(interp)->state  = (parser_state_t *)IMCC_INFO(interp)->frames;
 
-    IMCC_INFO(interp)->line   = 1;
+    /* let the start of line rule increment this to 1 */
+    IMCC_INFO(interp)->line   = 0;
 
     yy_switch_to_buffer(yy_create_buffer(file, YY_BUF_SIZE, yyscanner),
         yyscanner);
+
+    IMCC_INFO(interp)->line   = oldline;
 }
 
 void
@@ -1469,6 +1454,36 @@
     return yyg->yy_hold_char == '\0';
 }
 
+static int
+handle_identifier(PARROT_INTERP, YYSTYPE *valp, const char *text)
+{
+    if (!IMCC_INFO(interp)->is_def) {
+        SymReg *r = find_sym(interp, text);
+
+        if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
+            valp->sr = r;
+            return VAR;
+        }
+
+        if (IMCC_INFO(interp)->cur_unit
+        &&  IMCC_INFO(interp)->cur_unit->instructions
+        && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
+        &&  r->pcc_sub)
+        {
+            if (((r->pcc_sub->pragma & P_METHOD)
+            ||   (IMCC_INFO(interp)->cur_unit->is_vtable_method))
+            &&   !strcmp(text, "self")) {
+                valp->sr = mk_ident(interp, "self", 'P');
+                IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
+                return VAR;
+            }
+        }
+    }
+
+    valp->s = mem_sys_strdup(text);
+    return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
+}
+
 /*
  * Local variables:
  *   c-file-style: "parrot"

Modified: branches/ops_pct/compilers/imcc/imcc.y
==============================================================================
--- branches/ops_pct/compilers/imcc/imcc.y	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/imcc.y	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1085,7 +1085,7 @@
 %nonassoc '\n'
 %nonassoc <t> PARAM
 
-%token <t> HLL TK_LINE TK_FILE
+%token <t> SOL HLL TK_LINE TK_FILE
 %token <t> GOTO ARG IF UNLESS PNULL SET_RETURN SET_YIELD
 %token <t> ADV_FLAT ADV_SLURPY ADV_OPTIONAL ADV_OPT_FLAG ADV_NAMED ADV_ARROW
 %token <t> NEW ADV_INVOCANT ADV_CALL_SIG
@@ -1494,13 +1494,13 @@
 ns_entry_name:
     NS_ENTRY
          {
-           $$ = 0;
+           $$ = P_NSENTRY;
            IMCC_INFO(interp)->cur_unit->ns_entry_name     = NULL;
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
          }
    | NS_ENTRY '(' any_string ')'
          {
-           $$ = 0;
+           $$ = P_NSENTRY;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = $3;
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
          }
@@ -2510,26 +2510,19 @@
      * before the newline, and thus, line is the line *after* the
      * error. Instead of duplicating code for both cases (the 'newline' and
      * non-newline case, do the test twice; efficiency is not important when
-     * we have an error anyway.
-     */
+     * we have an error anyway. */
     if (!at_eof(yyscanner)) {
-        if (*chr == '\n') {
-            IMCC_INFO(interp)->line--;
-        }
-
         IMCC_warning(interp, "error:imcc:%s", s);
+
         /* don't print the current token if it is a newline */
-        if (*chr != '\n') {
+        if (*chr != '\n')
             IMCC_warning(interp, " ('%s')", chr);
-        }
-        IMCC_print_inc(interp);
-
-        if (*chr == '\n') {
-            IMCC_INFO(interp)->line++;
-        }
 
+        IMCC_print_inc(interp);
     }
-    else { /* scanner is at end of file; just to be sure, do not print "current" token. */
+
+    /* scanner is at EOF; just to be sure, don't print "current" token */
+    else {
         IMCC_warning(interp, "error:imcc:%s", s);
         IMCC_print_inc(interp);
     }

Modified: branches/ops_pct/compilers/imcc/imclexer.c
==============================================================================
--- branches/ops_pct/compilers/imcc/imclexer.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/imclexer.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -204,7 +204,20 @@
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
-    #define YY_LESS_LINENO(n)
+    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
+     *       access to the local variable yy_act. Since yyless() is a macro, it would break
+     *       existing scanners that call yyless() from OUTSIDE yylex. 
+     *       One obvious solution it to make yy_act a global. I tried that, and saw
+     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
+     *       normally declared as a register variable-- so it is not worth it.
+     */
+    #define  YY_LESS_LINENO(n) \
+            do { \
+                int yyl;\
+                for ( yyl = n; yyl < yyleng; ++yyl )\
+                    if ( yytext[yyl] == '\n' )\
+                        --yylineno;\
+            }while(0)
     
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
@@ -385,125 +398,129 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[1062] =
+static yyconst flex_int16_t yy_accept[1095] =
     {   0,
-        0,    0,    0,    0,    0,    0,   16,   16,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        3,    3,  149,  135,  134,   10,  134,  135,  135,   11,
-      135,  135,  135,  135,  135,  135,  115,  135,   95,  135,
-      119,  119,  135,   87,  135,   89,  133,  133,  133,  133,
-      133,  133,  133,  133,  135,  135,   14,  134,  134,  135,
-      135,  135,  135,  133,   14,  147,  142,  137,  142,  147,
-      147,  147,  147,  147,  119,  119,  147,  145,  145,  145,
-      141,  141,   14,   16,   17,   16,   16,   16,   16,   16,
-       16,   16,   16,   16,   16,   16,  148,  135,    8,    8,
-
-      135,  135,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    5,  135,    9,  135,  135,  135,  135,  135,
-      119,  119,  135,  135,  135,  135,   12,  135,  135,  135,
-      135,  135,  119,  119,  135,  135,  135,  148,    1,  148,
-      148,  148,  148,  148,  119,  119,  148,  148,  148,    3,
-        2,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,  134,    0,   10,   92,    0,  124,    0,  131,  131,
-      131,  131,  131,  100,   84,  103,    0,   93,   98,    0,
-      119,   96,   97,  118,  109,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-
-      117,  117,  101,   99,  118,    0,    0,  123,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   81,   88,   91,   64,   90,   82,  114,    0,
-      133,  116,  132,  133,   74,  133,  133,  133,  133,  133,
-      133,  104,   85,  105,   86,    0,  134,  117,  117,  117,
-      117,  117,  117,    0,    0,    0,    0,  142,  137,  142,
-        0,    0,    0,  146,  146,  146,  146,  145,    0,  143,
-      145,  141,  141,   16,   17,   16,   16,   16,   16,   16,
-       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,   16,   16,    0,    0,    8,    0,    4,
+        0,    1,    0,    1,    0,    1,   17,    1,    0,    1,
+        0,    1,    0,    1,    0,    1,    0,    1,    0,    1,
+        4,    1,  149,  136,  135,   11,  135,  136,  136,   12,
+      136,  136,  136,  136,  136,  136,  116,  136,   96,  136,
+      120,  120,  136,   88,  136,   90,  134,  134,  134,  134,
+      134,  134,  134,  134,  136,  136,    1,    1,  136,  135,
+      135,  136,  136,  136,  136,  134,    1,    1,  136,  147,
+      142,  138,  142,  147,  147,  147,  147,  147,  120,  120,
+      147,  145,  145,  145,    1,    1,  147,   17,   18,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,    1,
+
+        1,   17,  148,  136,    9,    9,  136,  136,    1,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    1,
+        6,  136,   10,  136,  136,  136,  136,  136,  120,  120,
+      136,  136,  136,    1,    1,  136,   13,  136,  136,  136,
+      136,  136,  120,  120,  136,  136,  136,    1,    1,  148,
+        2,  148,  148,  148,  148,  148,  120,  120,  148,  148,
+      148,    1,    1,    4,    3,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    1,    1,  135,    0,   11,
+       93,    0,  125,    0,  132,  132,  132,  132,  132,  101,
+       85,  104,    0,   94,   99,    0,  120,   97,   98,  119,
+
+      110,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  102,  100,
+      119,    0,    0,  124,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   82,   89,
+       92,   65,   91,   83,  115,    0,  134,  117,  133,  134,
+       75,  134,  134,  134,  134,  134,  134,  105,   86,  106,
+       87,    1,    0,   15,    0,   92,   65,    0,  135,  118,
+      118,  118,  118,  118,  118,    0,    0,    0,    0,    1,
+      142,  138,  142,    0,    0,    0,  146,  146,  146,  146,
+      145,    0,  143,  145,    1,    1,   17,   18,   17,   17,
 
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,    1,   17,    0,
+        0,    9,    0,    1,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    1,    0,   10,    0,    0,    0,  125,    0,
+        0,    0,    0,  120,  119,    0,    0,  119,    0,    0,
+      124,    0,    0,    0,    0,    0,    0,    1,    1,    0,
+       13,    0,    0,    0,  125,    0,    0,    0,    0,  120,
+      119,    0,    0,  119,    0,    0,  124,    0,    0,    0,
+        0,    0,    0,    1,    1,    0,    2,    0,    0,    0,
+
+      125,    0,    0,    0,    0,  120,  119,    0,    0,  119,
+        0,    0,  124,    0,    0,    0,    0,    0,    0,    1,
+        1,    4,    3,    4,    4,    4,    4,    4,    4,    4,
         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    0,    9,    0,
-        0,    0,  124,    0,    0,    0,    0,  119,  118,    0,
-        0,  118,    0,    0,  123,    0,    0,    0,    0,    0,
-        0,    0,   12,    0,    0,    0,  124,    0,    0,    0,
-        0,  119,  118,    0,    0,  118,    0,    0,  123,    0,
-        0,    0,    0,    0,    0,    0,    1,    0,    0,    0,
-      124,    0,    0,    0,    0,  119,  118,    0,    0,  118,
-        0,    0,  123,    0,    0,    0,    0,    0,    0,    3,
-        2,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-       94,  127,  128,  130,  129,    0,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  102,  118,  121,    0,  118,  122,  120,    0,    0,
+        4,    4,    1,   95,  128,  129,  131,  130,    0,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  103,  119,  122,    0,  119,  123,
+      121,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  107,
-      106,   83,  113,    0,    0,  132,  133,   77,  133,   78,
-       79,  133,  133,  133,    0,  117,  117,    0,    0,  138,
-      144,  140,  146,  146,  146,  146,  146,  145,   16,   16,
-
-       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,    0,    0,    0,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    4,    0,    0,
-        0,  118,  121,    0,  118,  122,  120,    0,    0,    0,
-        0,    0,    0,    0,    0,  118,  121,    0,  118,  122,
-      120,    0,    0,    0,    0,    0,    0,    0,    0,  118,
-      121,    0,  118,  122,  120,    0,    0,    0,    0,    0,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    0,  118,   68,  117,  117,  117,
-      117,   24,  117,  117,  117,  117,  117,   21,  117,  117,
 
-      117,  117,  117,  117,  117,  117,  117,  117,  117,   23,
-      117,  117,    0,    0,    0,    0,    0,    0,    0,   45,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  125,    0,    0,  108,    0,  126,
-        0,    0,    0,   73,   76,  133,  133,  133,  133,    0,
-      140,  146,  146,  146,  146,  145,  145,   16,   16,   16,
-       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,    0,    0,    0,    0,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    0,  118,    0,
-        0,    0,    0,  125,    0,    0,    0,    0,    0,  126,
-
-        0,    0,    0,    0,    0,    0,  118,    0,    0,    0,
-        0,  125,    0,    0,    0,    0,    0,  126,    0,    0,
-        0,    0,    0,    0,  118,    0,    0,    0,    0,  125,
-        0,    0,    0,    0,    0,  126,    0,    0,    0,    0,
-        0,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,  117,  117,   27,  117,
-      117,   19,  117,  117,  117,  117,   18,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,   43,
-        0,   59,    0,   40,    0,    0,   39,   38,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  108,  107,   84,  114,    0,    0,  133,  134,
+       78,  134,   79,   80,  134,  134,  134,    0,  118,  118,
+        0,    0,  139,  144,  141,  146,  146,  146,  146,  146,
+      145,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,    0,    0,    0,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    0,    0,    0,  119,  122,    0,  119,  123,  121,
+        0,    0,    0,    0,    0,    0,    0,    0,  119,  122,
+        0,  119,  123,  121,    0,    0,    0,    0,    0,    0,
+        0,    0,  119,  122,    0,  119,  123,  121,    0,    0,
+
+        0,    0,    0,    4,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    0,  119,   69,
+      118,  118,  118,  118,   25,  118,  118,  118,  118,  118,
+       22,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,   24,  118,  118,    0,    0,    0,    0,    0,
+        0,    0,   46,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  126,    0,    0,
+      109,    0,  127,    0,    0,    0,   74,   77,  134,  134,
+      134,  134,    0,  141,  146,  146,  146,  146,  145,  145,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+
+       17,   17,   17,   17,   17,   17,    0,    0,    0,    0,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        0,  119,    0,    0,    0,    0,  126,    0,    0,    0,
+        0,    0,  127,    0,    0,    0,    0,    0,    0,  119,
+        0,    0,    0,    0,  126,    0,    0,    0,    0,    0,
+      127,    0,    0,    0,    0,    0,    0,  119,    0,    0,
+        0,    0,  126,    0,    0,    0,    0,    0,  127,    0,
+        0,    0,    0,    0,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    4,    4,  118,
+      118,   28,  118,  118,   20,  118,  118,  118,  118,   19,
+
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,   44,    0,   60,    0,   41,    0,    0,   40,
+       39,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  134,  134,  134,  134,   14,    0,  137,
+       20,  146,   19,  145,  145,   17,   17,   17,   17,   16,
+       17,   20,   19,    0,    0,    5,    5,    5,    5,   20,
+       19,    0,    0,   20,   19,    0,    0,   20,   19,    0,
+        0,    4,    4,    4,    4,  118,  118,   71,  118,  118,
+      118,  118,  118,  118,  118,  118,   70,  112,  118,  118,
+      118,   73,  118,  118,  118,  118,  118,  118,   54,    0,
+
+        0,    0,    0,    0,   38,   64,    0,    0,    0,   45,
+        0,    0,   51,    0,    0,  134,  134,   81,   76,  146,
+      145,  145,   17,   17,    0,    0,    5,    5,    0,    0,
+        0,    0,    0,    0,    4,    4,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,   56,  118,  118,  118,  118,    0,    0,    0,    0,
+       37,    0,    0,    0,    0,   61,    0,   47,  134,  134,
+      140,  145,  145,   17,   17,    0,    0,    5,    5,    0,
+        0,    0,    0,    0,    0,    4,    4,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  113,  118,   59,  118,
+
+      118,  118,  118,   32,   23,  118,  118,  118,    0,    0,
+        0,    0,   48,    0,    0,    0,    0,    0,    8,   17,
+        8,    5,    5,    0,    8,    0,    8,    0,    8,    4,
+        4,   21,  118,  118,  118,   27,  118,  118,  118,  118,
+       31,  118,  118,  118,   29,  118,  118,   58,   67,    0,
+        0,   66,   63,   62,   43,    0,    7,    7,    7,    7,
+        7,    4,  118,  118,  118,  118,   36,  118,  118,  118,
+       30,   68,  118,   55,   42,    0,    0,   26,  118,  118,
+       34,   52,  118,  118,   57,   50,   49,  118,   35,   53,
+       72,  111,   33,    0
 
-      133,  133,  133,  133,   13,    0,  136,   19,  146,   18,
-      145,  145,   16,   16,   16,   16,   15,   16,   19,   18,
-        0,    0,    4,    4,    4,    4,   19,   18,    0,    0,
-       19,   18,    0,    0,   19,   18,    0,    0,    3,    3,
-        3,    3,  117,  117,   70,  117,  117,  117,  117,  117,
-      117,  117,  117,   69,  111,  117,  117,  117,   72,  117,
-      117,  117,  117,  117,  117,   53,    0,    0,    0,    0,
-        0,   37,   63,    0,    0,    0,   44,    0,    0,   50,
-        0,    0,  133,  133,   80,   75,  146,  145,  145,   16,
-       16,    0,    0,    4,    4,    0,    0,    0,    0,    0,
-
-        0,    3,    3,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,   55,  117,
-      117,  117,  117,    0,    0,    0,    0,   36,    0,    0,
-        0,    0,   60,    0,   46,  133,  133,  139,  145,  145,
-       16,   16,    0,    0,    4,    4,    0,    0,    0,    0,
-        0,    0,    3,    3,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  112,  117,   58,  117,  117,  117,  117,
-       31,   22,  117,  117,  117,    0,    0,    0,    0,   47,
-        0,    0,    0,    0,    0,    7,   16,    7,    4,    4,
-        0,    7,    0,    7,    0,    7,    3,    3,   20,  117,
-
-      117,  117,   26,  117,  117,  117,  117,   30,  117,  117,
-      117,   28,  117,  117,   57,   66,    0,    0,   65,   62,
-       61,   42,    0,    6,    6,    6,    6,    6,    3,  117,
-      117,  117,  117,   35,  117,  117,  117,   29,   67,  117,
-       54,   41,    0,    0,   25,  117,  117,   33,   51,  117,
-      117,   56,   49,   48,  117,   34,   52,   71,  110,   32,
-        0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -549,283 +566,289 @@
        10,   10,   10,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[1213] =
+static yyconst flex_int16_t yy_base[1251] =
     {   0,
-        0, 4304,   64, 4303,  129,   81,  194, 4302,  259,    0,
-      324,    0,   72,   77,  389,    0,  454,    0,  519,    0,
-      584,    0, 4326, 6980,   98, 6980,  106, 4300,   64, 6980,
-       83, 4299,  102, 4311,   82,  633, 6980,  640,  647,  638,
-      694,  724,  729,   48,  100,  645,  703,  741,  711,  769,
-      709,  743,  777,  782,  704,  710,  771,  734,  799,  789,
-      812,  777, 4298,  798, 4277, 6980,  837, 6980,  843,  715,
-      816, 4308,  857,  863,    0,  869, 4291,  726,  885,  797,
-      890,  914, 4270,    0, 6980, 4310,  810, 4300,  903,  907,
-      942,  903, 4285, 1004, 1069, 4243, 6980,  928,  914, 1015,
-
-     4263,  641,    0,    0,  854,  970,  947, 1118,  941, 4261,
-     1180, 1245,  819,  821, 6980,  830,  934,  909, 1021, 1085,
-     1308, 1087,  927, 1370, 1435,  877, 6980,  893, 1050,  940,
-     1043, 1099, 1498, 1171,  996, 1560, 1625,  952, 6980,  979,
-     1156, 1047, 1209, 1273, 1688, 1180, 1093, 1750, 1815,    0,
-     6980, 4281,  933, 4271, 1091, 1123, 1864, 1236, 4258, 1926,
-     1991, 1151, 1096, 6980, 6980,  946, 6980,    0,    0, 1156,
-     1216, 1261, 1267, 6980, 6980, 6980, 4269, 6980, 6980, 1280,
-     1381, 6980, 6980, 1285, 6980,    0, 4246, 4226, 4232, 1013,
-     4224, 4223,  721, 4219,  947,   59,  709,  856, 4225,  671,
-
-     4228, 4219, 4239, 6980, 1313, 1105, 1336, 6980, 1108,    0,
-     4210, 4220, 4210, 1113,  977, 1006,  810,  739, 4206,   16,
-     4206, 4199, 1215, 6980, 6980, 6980, 6980, 1176, 4234, 4233,
-     1330, 4248, 1397, 1398, 1381, 1446, 1455, 1447, 1457, 1456,
-     1473, 6980, 6980, 6980, 6980, 4194, 1213, 4199, 4199, 1267,
-     4209, 4139, 4136, 1214, 4121, 4118,  995, 1361, 6980, 1420,
-     4154, 1409,    0,    0, 4123, 4125, 1049, 1010, 4167, 1526,
-     1451, 1481, 1490,    0, 6980, 1032,    0,    0, 4161, 1534,
-     1571, 1576, 4122, 4121, 1633, 1254, 1588,    0, 1348, 2038,
-     1155, 2085, 2150, 2215, 4110, 4119, 4118, 1639, 1099,    0,
-
-     1311,    0, 1560, 1682, 1750, 4117, 4116, 1762, 1277, 1599,
-        0, 1502, 2262, 1296, 2309, 2374, 2439, 1337, 6980, 1345,
-     1536, 1671, 1357, 1388, 1500, 1526, 1716, 2502, 1832, 1643,
-     1663, 1844, 1677, 1783, 1405, 1726, 2546, 1736, 2593, 2658,
-     2723, 1473, 6980, 1484, 1791, 1803, 1494, 1505, 1547, 1683,
-     1892, 2786, 1942, 1673, 1729, 1964, 1853, 1901, 1522, 1856,
-     2830, 1885, 2877, 2942, 3007, 1532, 6980, 1554, 1842, 1967,
-     1608, 1641, 1797, 1944, 1956, 3070, 2008, 1808, 1866, 2031,
-     1905, 2101, 1679, 2020, 3114, 2066, 3161, 3226, 3291,    0,
-     6980, 1192,    0,    0, 4153, 1960, 2107, 2215, 4114, 4113,
-
-     2227, 1695, 2124,    0, 1934, 3338, 1582, 3385, 3450, 3515,
-     1897, 1999, 2023, 2027, 2043, 2244,    0, 4128, 4108, 4112,
-     4108, 4104, 4111, 4104, 4095, 4099, 1070, 4090, 4098, 1014,
-     4106, 4090, 4096, 4097, 4089, 4101, 4081, 4080, 4095, 4087,
-     4088, 6980, 2232, 1706, 2111, 2248, 2055,    0, 4058, 4060,
-     4068, 4057, 1727, 4046, 4065, 4056, 4046, 4053, 4051, 4056,
-     4039, 4038, 4038, 4035, 4051, 4039, 4046, 1201, 4075, 6980,
-     6980, 4061, 6980, 1681, 4062, 2277, 2457, 2278, 2279, 2280,
-     2320, 2461, 2322, 2451, 4025, 4039, 4040, 4031, 4057, 6980,
-     2331,    0,    0, 4034, 4027, 4034, 4023, 2445, 2341, 3955,
-
-     3952, 2469, 1848, 2320, 2345, 2093, 3562, 1982, 3992, 2094,
-     3609, 3674, 3944, 3951, 3948, 1647, 2519, 3949, 3946, 2507,
-     1938, 2349, 2523, 2223, 3721, 2469, 3768, 3833, 2609, 2068,
-     2272, 2739, 2482, 2551, 2558, 2617, 3896, 2506, 2344, 2761,
-     3943, 4008, 2631, 2295, 2556, 2751, 2623, 2772, 2792, 2806,
-     4071, 2795, 2513, 2814, 4118, 4183, 2825, 2479, 2579, 2893,
-     2636, 2905, 2915, 2901, 4246, 2858, 2741, 3035, 4293, 4358,
-     3029, 3947, 3944, 3007, 2006, 2565, 2758, 2474, 4405, 2099,
-     3984, 2480, 4452, 4517, 2847, 2909,    0, 3941, 3944, 3942,
-     3934, 3950, 3944, 3948, 3945, 3936, 3932,    0, 3939, 3939,
-
-     3940, 3924, 3931, 3933, 3937, 3935, 3935, 3915, 3933,    0,
-     3922, 3921, 3918, 3919, 3906, 3918, 3904, 3903, 3905, 6980,
-     3892, 3883, 3886, 3875, 3887, 3879,  861, 3885, 3871, 3872,
-     3878, 3871, 3880, 2507, 6980,    0, 3910, 6980, 2511, 6980,
-        0, 3898, 3913, 2814, 2815, 3045, 3046, 3054, 2848, 2029,
-        0, 3867, 3868, 3867, 3866, 1821, 2484, 3037, 3059, 3865,
-     3864, 2524,    0,    0, 3897, 2574,    0,    0, 4582, 3901,
-     4647, 3857, 2132, 3860, 3859,  724, 1376, 3063, 3089, 3858,
-     3857, 2904,    0, 4712, 3895, 4777, 3851, 3102, 3109, 3094,
-     3099, 3143, 3148, 2144, 2268, 3032, 3177, 3321, 3323, 2355,
-
-     2455, 4842, 3134, 4907, 3790, 3187, 3191, 3150, 3307, 3329,
-     3331, 2553, 2645, 3211, 3309, 3336, 3338, 2747, 2753, 4972,
-     3195, 5037, 3781, 3200, 3401, 3316, 3319, 3545, 3547, 2763,
-     2780, 3403, 3414, 3553, 3555, 2839, 2852, 5102, 3344, 5167,
-     3780, 3353, 3408, 3783, 3782, 2779,    0,    0, 3815, 2808,
-        0,    0, 5232, 3819, 5297, 3775, 3765, 3770,    0, 3763,
-     3057,    0, 3764, 3778, 3759, 3774,    0, 3766, 3765, 3761,
-     3773, 3755, 3768, 3759, 3752, 3752, 3307, 3763, 3761, 6980,
-     3764, 6980, 3759, 6980, 3757, 3746, 6980, 6980, 3734, 3737,
-     3739, 3716, 3715, 3707, 3701, 3713, 3693, 3702, 3684, 3626,
-
-     3552, 3736, 3554, 3737, 6980, 3669,    0,    0, 3619,    0,
-     3396, 3519,    0,    0, 5362, 1118, 6980, 3661, 6980, 6980,
-     1128,  765,    0,    0, 5427, 1480, 2929, 3037, 3014, 1171,
-     3090, 3122, 3098, 1211, 3189, 3213, 3363, 1266,    0,    0,
-     3381, 1336, 3617, 3616,    0, 3614, 3608, 3602, 3604, 3596,
-     3600, 3596, 3581,    0, 3589, 3581, 3545, 3557,    0, 3534,
-     3535, 3529, 3527, 3519, 3523,    0, 3479, 3484, 3465, 3374,
-     3356, 6980, 6980, 3331, 3326, 3301, 6980, 3292, 3281, 6980,
-     3291, 3283, 3555, 3620, 3425, 3430, 3431, 2847, 3520, 1611,
-     1698, 1299, 1618, 2512, 2595, 1193, 1553, 1622, 1743, 1841,
-
-     1919, 2425, 2754, 3259, 3161, 3149, 3138, 3136, 3081, 3083,
-     3073, 3062, 3056, 3044, 3044, 3034, 3016, 3017,    0, 3004,
-     2987, 2988, 2972, 2860, 2794, 2730, 2709, 6980, 2689, 2697,
-     2612, 2592, 6980, 2511, 6980, 3632, 3635, 3438, 3623, 3637,
-     1400, 1463, 2254, 2817, 2564, 2848, 1937, 3127, 3302, 3374,
-     3526, 3539, 3548, 3562, 2432, 2427, 2409, 2396, 2293, 2277,
-     2277, 2256, 2243,    0, 2226,    0, 2202, 2199, 2187, 2167,
-        0,    0, 2082, 2056, 2037, 2031, 1977, 1967, 1914, 6980,
-     1881, 1868, 1851, 1793, 1609, 1837, 2111, 1829, 2617, 1808,
-     3658, 3542, 3664, 3751, 3793, 3798, 2933, 1786,    0, 1727,
-
-     1707, 1695,    0, 1649, 1655, 1633, 1570,    0, 1534, 1460,
-     1444,    0, 1397, 1388,    0, 6980, 1366, 1282, 6980, 6980,
-     6980, 6980, 1280, 6980,    0, 3434, 3441, 3593,    0, 1233,
-     1218, 1201, 1158,    0, 1128, 1115, 1027,    0,    0,  907,
-        0, 6980,  898,  839,    0,  816,  767,    0,  719,  662,
-      614,    0, 6980, 6980,  598,    0,    0,    0,    0,    0,
-     6980, 5492, 5498, 5508, 5516, 5520, 5528, 5535, 5546, 5557,
-     5568, 5579, 5586, 5597, 5608, 5619, 5630, 5641, 5652, 5663,
-     5674, 5685, 5696, 5707, 5718, 5729, 5740, 5751, 5762, 5773,
-     5784, 5795, 5801, 5811, 5817, 5823, 5828, 5836, 5845, 5851,
-
-     5855, 5861, 5868, 5879, 5890, 5901, 5912, 5923, 5934, 5945,
-     5956, 5967, 5978, 5989, 6000, 6011, 6022, 6033, 6044, 6055,
-     6066, 6077, 6088, 6099, 6110, 6121, 6127, 6132, 6138, 6147,
-     6158, 6169, 6176, 6184, 6190, 6196, 6202, 6209, 6220, 6231,
-     6242, 6253, 6264, 6271, 6282, 6293, 6304, 6315, 6326, 6337,
-     6348, 6359, 6370, 6381, 6392, 6403, 6414, 6425, 6436, 6447,
-     6458, 6469, 6480, 6491, 6502, 6513, 6524, 6530, 6541, 6552,
-     6563, 6570, 6578, 6584, 6590, 6597, 6608, 6619, 6630, 6641,
-     6652, 6659, 6670, 6681, 6692, 6703, 6714, 6725, 6736, 6747,
-     6758, 6769, 6780, 6791, 6802, 6813, 6824, 6835, 6846, 6857,
-
-     6868, 6879, 6890, 6901, 6912, 6918, 6926, 6932, 6939, 6950,
-     6957, 6968
+        0,   64,   88,   70,  153,   75,  218,   82,  283,  113,
+      348,  117,  109,  412,  434,  121,  499,  130,  564,  135,
+      629,  140, 4665, 7097,  693, 7097,  697, 4639,   63, 7097,
+      385, 4638,   56, 4648,   58,  686, 7097,  696,  703,   60,
+      750,  780,  785,   72,   83,  124,  703,  797,  767,  825,
+      765,  759,  769,  833,   63,  766,  848,  856,  851,  422,
+      864,  862,  871,  838, 4623,  848,  803,  898,  819, 7097,
+      902, 7097,  906,   84,  898, 4570,  920,  929,    0,  935,
+     4553,  405,  951,  828,  941,  956,  909,    0, 7097, 4573,
+      689, 4563,  965,  969, 1004,  965, 4550, 1066, 1131,  991,
+
+      995, 4529, 7097,  990, 1009, 1077, 4549,   87, 1001,    0,
+        0,  791, 1032, 1066, 1180, 1003, 4547, 1242, 1307, 1013,
+      878,  426, 7097,  894, 1111, 1010, 1105, 1160, 1370, 1129,
+      959, 1432, 1497, 1057, 1098,  974, 7097, 1032, 1163, 1052,
+     1218, 1276, 1560, 1300, 1149, 1622, 1687, 1157, 1182, 1041,
+     7097, 1101, 1185, 1116, 1266, 1337, 1750, 1306, 1209, 1812,
+     1877, 1225, 1259,    0, 7097, 4567,  880, 4557, 1254, 1356,
+     1926, 1369, 4544, 1988, 2053, 1213, 1287, 1297, 1346, 7097,
+     7097, 1168, 7097,    0,    0, 1344, 1360, 1374, 1398, 7097,
+     7097, 7097, 4555, 7097, 7097, 1406, 1443, 7097, 7097, 1448,
+
+     7097,    0, 4532, 4512, 4518, 1136, 4510, 4512,  658, 4508,
+     1425,  105,  883,  922, 4514,  727, 4517, 4508, 4532, 7097,
+     1505, 1174, 1466, 7097, 1185,    0, 4503, 4513, 4502, 1179,
+      816, 1292,  685,  947, 4498,   22, 4498, 4491, 1109, 7097,
+     7097, 7097, 7097, 1252, 4526, 4525, 1406, 4540, 1525, 1533,
+     1443, 1543, 1467, 1544, 1549, 1560, 1562, 7097, 7097, 7097,
+     7097, 1593, 1290, 7097, 1300, 1366, 1382, 1513, 1449, 4492,
+     4492, 1482, 4502, 4501, 4498, 1349, 4483, 4476, 1162, 1582,
+     1616, 7097, 1639, 4512, 1630,    0,    0, 4481, 4483, 1199,
+     1321, 4523, 1638, 1515, 1661, 1665,    0, 7097, 1265,    0,
+
+        0, 4505, 1652, 1698, 1704, 4458, 4457, 1716, 1391, 1661,
+        0, 1472, 2100, 1543, 2147, 2212, 2277, 1607, 4446, 4455,
+     4454, 1744,  909, 1674,    0, 1736,    0, 1687, 1823, 1828,
+     4453, 4452, 1885, 1510, 1778,    0, 1710, 2324, 1563, 2371,
+     2436, 2501, 1753, 1536, 7097, 1597, 1799, 1856, 1601, 1612,
+     1737, 1756, 1851, 2564, 1905, 1778, 1784, 2004, 1894, 1918,
+     1652, 1954, 2608, 1964, 2655, 2720, 2785, 1805, 1862, 1681,
+     7097, 1718, 1926, 1946, 1772, 1828, 1907, 1975, 2016, 2848,
+     2026, 1960, 1981, 2070, 2013, 2082, 1858, 2091, 2892, 2037,
+     2939, 3004, 3069, 2078, 2103, 1978, 7097, 2018, 2128, 2134,
+
+     2039, 2084, 2111, 2121, 2163, 3132, 2293, 2136, 2301, 2387,
+     2172, 2174, 2123, 2305, 3176, 2194, 3223, 3288, 3353, 2200,
+     2205,    0, 7097, 1321,    0,    0, 4489, 2299, 2382, 2310,
+     4450, 4449, 2501, 2160, 2341,    0, 2314, 3400, 1735, 3447,
+     3512, 3577, 2345, 2416, 2403, 2410, 2513, 2517, 2529,    0,
+     4464, 4441, 4445, 4441, 4438, 4445, 4367, 4358, 4362,  786,
+     4353, 4361, 1051, 4369, 4353, 4359, 4360, 4352, 4364, 4348,
+     4347, 4362, 4354, 4357, 7097, 2533, 2180, 2537, 2550, 2394,
+        0, 4348, 4350, 4358, 4347, 2249, 4336, 4355, 4346, 4335,
+     4342, 4340, 4345, 4331, 4330, 4330, 4327, 4343, 4335, 4342,
+
+     1390, 4371, 7097, 7097, 4357, 7097, 1441, 4354, 2564, 2566,
+     2579, 2581, 2583, 2584, 2592, 2624, 2600, 2334, 4332, 4333,
+     4324, 4348, 7097, 2663,    0,    0, 4304, 4297, 4304, 4293,
+     2598, 2677, 4294, 4291, 2785, 2308, 2668, 2681, 2509, 3624,
+     1921, 4331, 1937, 3671, 3736, 4283, 4290, 4287, 1754, 2690,
+     4288, 4282, 2797, 2339, 2694, 2801, 2557, 3783, 2610, 3830,
+     3895, 2826, 2809, 2622, 2834, 2615, 2854, 2868, 2880, 3958,
+     2920, 2829, 2926, 4005, 4070, 2888, 2922, 2832, 2955, 2912,
+     2967, 2977, 3085, 4133, 3104, 2894, 3110, 4180, 4245, 3126,
+     3087, 2914, 3153, 3096, 3099, 3165, 3173, 4308, 3119, 2979,
+
+     3160, 4355, 4420, 3193, 4283, 4280, 3223, 2345, 2973, 3169,
+     2842, 4467, 2011, 4320, 2129, 4514, 4579, 3235, 3239,    0,
+     4277, 4276, 4274, 4266, 4282, 4276, 4280, 4277, 4268, 4264,
+        0, 4271, 4271, 4273, 4257, 4264, 4197, 4201, 4199, 4199,
+     4179, 4197,    0, 4186, 4185, 4182, 4183, 4174, 4186, 4172,
+     4171, 4175, 7097, 4183, 4174, 4177, 4166, 4178, 4170,  783,
+     4176, 4162, 4162, 4168, 4161, 4173, 2584, 7097,    0, 4203,
+     7097, 2637, 7097,    0, 4191, 4206, 2870, 3116, 3364, 3365,
+     3373, 3194, 2423,    0, 4160, 4165, 4164, 4163, 3108, 3374,
+     3245, 3251, 4162, 4161, 2794,    0,    0, 4190, 2819,    0,
+
+        0, 4644, 4193, 4709, 4149, 2558, 4128, 4126, 1733, 1818,
+     3255, 3259, 4124, 4123, 3158,    0, 4774, 4161, 4839, 4117,
+     3380, 3388, 3391, 3428, 3475, 3607, 2638, 2704, 3401, 3463,
+     3609, 3615, 2714, 2965, 4904, 3094, 4969, 4115, 3473, 3477,
+     3437, 3593, 3617, 3622, 3178, 3198, 3497, 3595, 3624, 3699,
+     3247, 3279, 5034, 3431, 5099, 4110, 3485, 3688, 3602, 3605,
+     3811, 3817, 3281, 3382, 3701, 3711, 3862, 3986, 3465, 3481,
+     5164, 3630, 5229, 4108, 3639, 3679, 4110, 4105, 2921,    0,
+        0, 4138, 3103,    0,    0, 5294, 4142, 5359, 4098, 4088,
+     4093,    0, 4086, 1855,    0, 4087, 4101, 4082, 4097,    0,
+
+     4089, 4088, 4084, 4027, 4009, 4022, 4013, 4005, 4005, 1006,
+     4017, 4015, 7097, 4018, 7097, 4013, 7097, 4015, 4012, 7097,
+     7097, 4001, 4000, 3996, 3965, 3950, 3942, 3925, 3931, 3915,
+     3923, 3906, 3842, 3976, 4148, 4016, 3800, 7097, 3487,    0,
+        0, 3834,    0, 2580, 3640,    0,    0, 5424, 1059, 7097,
+     3878, 7097, 7097, 1332, 1986,    0,    0, 5489, 1540, 3499,
+     3713, 3668, 1097, 3717, 3721, 3676, 1231, 3725, 3727, 3682,
+     1504,    0,    0, 3756, 3158, 3821, 3796,    0, 3780, 3773,
+     3767, 3764, 3757, 3689, 3680, 3662,    0, 3649, 3643, 3619,
+     3623,    0, 3580, 3582, 3566, 3569, 3530, 3468,    0, 3428,
+
+     3400, 3386, 3394, 3388, 7097, 7097, 3370, 3365, 3358, 7097,
+     3352, 3340, 7097, 3352, 3329, 3975, 4150, 3851, 3852, 3874,
+     3836, 3948, 1800, 1908, 1438, 1810, 2247, 2260, 1174, 1745,
+     1870, 2063, 2494, 2496, 2778, 2831, 3313, 3820, 3318, 3227,
+     3222, 3181, 3127, 3114, 3102, 3094, 3083, 3070, 3043, 2951,
+     2947,    0, 2936, 2919, 2926, 2868, 2816, 2797, 2770, 2652,
+     7097, 2629, 2634, 2629, 2553, 7097, 2533, 7097, 3958, 3960,
+     3882, 2382, 3857, 1295, 2643,  772, 1490, 3211, 3599,  942,
+     1965, 2950, 3091, 3458, 3588, 3841, 3990, 2518, 2475, 2462,
+     2384, 2368, 2350, 2349, 2332, 2324,    0, 2289,    0, 2268,
+
+     2265, 2236, 2164,    0,    0, 2129, 2130, 2112, 2102, 2075,
+     2051, 2025, 7097, 2027, 2018, 1972, 1947, 1709, 1986, 2898,
+     1978, 3418, 1947, 3885, 4030, 4039, 4033, 4044, 4049, 3625,
+     1931,    0, 1842, 1816, 1765,    0, 1728, 1728, 1694, 1650,
+        0, 1585, 1556, 1522,    0, 1476, 1429,    0, 7097, 1375,
+     1360, 7097, 7097, 7097, 7097, 1321, 7097,    0, 3846, 3868,
+     3969,    0, 1275, 1198, 1185, 1145,    0, 1117, 1071, 1024,
+        0,    0,  926,    0, 7097,  869,  827,    0,  752,  675,
+        0,  367,  356,   61,    0, 7097, 7097,   23,    0,    0,
+        0,    0,    0, 7097, 5554, 5560, 5570, 5578, 5589, 5593,
+
+     5601, 5608, 5619, 5630, 5641, 5652, 5659, 5670, 5681, 5692,
+     5703, 5714, 5725, 5736, 5747, 5758, 5769, 5780, 5791, 5802,
+     5813, 5824, 5835, 5846, 5857, 5868, 5874, 5884, 5890, 5896,
+     5901, 5909, 5918, 5929, 5935, 5939, 5945, 5952, 5963, 5974,
+     5985, 5996, 6007, 6018, 6029, 6040, 6051, 6062, 6073, 6084,
+     6095, 6106, 6117, 6128, 6139, 6150, 6161, 6172, 6183, 6194,
+     6205, 6211, 6216, 6222, 6231, 6242, 6253, 6260, 6268, 6279,
+     6285, 6291, 6297, 6304, 6315, 6326, 6337, 6348, 6359, 6366,
+     6377, 6388, 6399, 6410, 6421, 6432, 6443, 6454, 6465, 6476,
+     6487, 6498, 6509, 6520, 6531, 6542, 6553, 6564, 6575, 6586,
+
+     6597, 6608, 6619, 6625, 6636, 6647, 6658, 6665, 6673, 6684,
+     6690, 6696, 6703, 6714, 6725, 6736, 6747, 6758, 6765, 6776,
+     6787, 6798, 6809, 6820, 6831, 6842, 6853, 6864, 6875, 6886,
+     6897, 6908, 6919, 6930, 6941, 6952, 6963, 6974, 6985, 6996,
+     7007, 7018, 7024, 7032, 7043, 7049, 7056, 7067, 7074, 7085
     } ;
 
-static yyconst flex_int16_t yy_def[1213] =
+static yyconst flex_int16_t yy_def[1251] =
     {   0,
-     1061,    1,    1,    3, 1061,    5, 1061,    7, 1061,    9,
-     1061,   11,    9,    9, 1061,   15, 1061,   17, 1061,   19,
-     1061,   21, 1061, 1061, 1061, 1061, 1061, 1061, 1062, 1061,
-     1063, 1061, 1061, 1064, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1065, 1065, 1065, 1065,
-     1065, 1065, 1065, 1065, 1061, 1061, 1061, 1061, 1061, 1061,
-       39, 1061, 1061, 1065, 1061, 1061, 1061, 1061, 1061, 1062,
-     1066, 1064, 1061, 1067,   41, 1061, 1061, 1068, 1068, 1068,
-     1061, 1061, 1061, 1069, 1061, 1069, 1070, 1071, 1069, 1069,
-     1069,   91, 1069, 1072, 1072, 1069, 1061, 1061,   41, 1061,
-
-     1073, 1073, 1074, 1074, 1075, 1074, 1074, 1074,  108, 1074,
-     1076, 1076, 1062, 1077, 1061, 1077, 1078, 1079, 1077, 1077,
-     1077,  121, 1077, 1080, 1080, 1081, 1061, 1081, 1082, 1083,
-     1081, 1081, 1081,  133, 1081, 1084, 1084, 1085, 1061, 1085,
-     1086, 1087, 1085, 1085, 1085,  145, 1085, 1088, 1088, 1089,
-     1061, 1089, 1090, 1091, 1089, 1089, 1089,  157, 1089, 1092,
-     1092, 1061, 1061, 1061, 1061, 1062, 1061, 1062, 1093, 1093,
-     1093, 1093, 1093, 1061, 1061, 1061, 1094, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1095, 1095, 1095, 1095, 1095,
-     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
-
-     1095, 1095, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1096,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1097,
-     1098, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
-     1098, 1061, 1061, 1061, 1061, 1061, 1061, 1095, 1095, 1095,
-     1095, 1095, 1095, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1100, 1100, 1101, 1102, 1102, 1102, 1102, 1103, 1099, 1103,
-     1103, 1061, 1061, 1104, 1061, 1105, 1104, 1105, 1106, 1104,
-     1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
-     1104, 1107, 1061, 1107, 1104, 1061, 1061, 1061, 1097, 1108,
-
-     1109, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
-     1108, 1108, 1108, 1108, 1110, 1061, 1110, 1111, 1061, 1111,
-     1112, 1112, 1111, 1112, 1113, 1113, 1111, 1111, 1111, 1111,
-     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1114, 1061,
-     1114, 1115, 1061, 1115, 1116, 1116, 1115, 1116, 1117, 1117,
-     1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
-     1115, 1115, 1118, 1061, 1118, 1119, 1061, 1119, 1120, 1120,
-     1119, 1120, 1121, 1121, 1119, 1119, 1119, 1119, 1119, 1119,
-     1119, 1119, 1119, 1119, 1119, 1119, 1122, 1061, 1122, 1123,
-     1061, 1124, 1123, 1124, 1125, 1123, 1123, 1123, 1123, 1123,
-
-     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1126, 1061, 1126,
-     1061, 1127, 1127, 1127, 1127, 1061, 1128, 1128, 1128, 1128,
-     1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
-     1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
-     1128, 1061, 1061, 1061, 1061, 1061, 1061, 1129, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1130, 1131, 1061,
-     1061, 1061, 1061, 1132, 1133, 1134, 1134, 1134, 1134, 1134,
-     1134, 1134, 1134, 1134, 1061, 1128, 1128, 1061, 1135, 1061,
-     1135, 1136, 1137, 1137, 1137, 1137, 1137, 1138, 1139, 1139,
-
-     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1141, 1142,
-     1143, 1061, 1139, 1061, 1061, 1144, 1145, 1145, 1145, 1145,
-     1145, 1145, 1145, 1145, 1145, 1146, 1147, 1061, 1148, 1148,
-     1148, 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1150, 1151,
-     1152, 1061, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
-     1153, 1154, 1155, 1156, 1157, 1061, 1158, 1158, 1158, 1158,
-     1158, 1158, 1158, 1158, 1158, 1159, 1160, 1161, 1162, 1061,
-     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1164,
-     1165, 1166, 1167, 1061, 1061, 1061, 1168, 1168, 1168, 1168,
-     1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
-
-     1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
-     1168, 1168, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1169, 1061, 1169, 1170, 1061, 1171, 1061,
-     1171, 1172, 1061, 1173, 1173, 1173, 1173, 1173, 1173, 1061,
-     1174, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177,
-     1177, 1178, 1177, 1178, 1179, 1180, 1177, 1180, 1181, 1177,
-     1061,  671, 1177, 1061, 1061, 1182, 1182, 1183, 1183, 1183,
-     1183, 1184, 1183, 1185, 1183, 1061,  686, 1186, 1186, 1186,
-     1186, 1187, 1187, 1186, 1187, 1188, 1188, 1189, 1189, 1186,
-
-     1189, 1190, 1186, 1061,  704, 1191, 1191, 1191, 1191, 1192,
-     1192, 1191, 1192, 1193, 1193, 1194, 1194, 1191, 1194, 1195,
-     1191, 1061,  722, 1196, 1196, 1196, 1196, 1197, 1197, 1196,
-     1197, 1198, 1198, 1199, 1199, 1196, 1199, 1200, 1196, 1061,
-      740, 1201, 1201, 1201, 1201, 1202, 1201, 1202, 1203, 1204,
-     1201, 1204, 1205, 1201, 1061,  755, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
-     1207, 1207, 1207, 1207, 1061, 1061, 1208, 1208, 1208, 1208,
-     1209, 1209, 1210, 1210, 1061,  815, 1061, 1210, 1061, 1061,
-     1211, 1211, 1212, 1212, 1061,  825, 1186, 1186,  704,  704,
-     1191, 1191,  722,  722, 1196, 1196,  740,  740, 1201, 1201,
-      755,  755, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1207, 1207, 1207, 1207, 1208, 1209, 1209,  815,
-      815, 1211, 1211,  825,  825,  704,  704,  722,  722,  740,
-
-      740,  755,  755, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1207, 1207, 1061, 1209, 1209,
-      815,  815, 1211, 1211,  825,  825,  704,  704,  722,  722,
-      740,  740,  755,  755, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1210, 1210, 1212, 1212,
-     1186, 1186, 1191, 1191, 1196, 1196, 1201, 1201, 1206, 1206,
-
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1206, 1206, 1206, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1210, 1186, 1191, 1196, 1201, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1061, 1061, 1061, 1206, 1206, 1206, 1206, 1206, 1206,
-     1206, 1206, 1061, 1061, 1206, 1206, 1206, 1206, 1206, 1206,
-        0, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061
+     1094,    1,    1,    3, 1094,    5, 1094,    7, 1094,    9,
+     1094,   11,    9,    9, 1094,   15, 1094,   17, 1094,   19,
+     1094,   21, 1094, 1094, 1094, 1094, 1094, 1094, 1095, 1094,
+     1096, 1094, 1094, 1097, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1098, 1098, 1098, 1098,
+     1098, 1098, 1098, 1098, 1094, 1094, 1094, 1094, 1099, 1094,
+     1094, 1094,   39, 1094, 1094, 1098, 1094, 1094, 1099, 1094,
+     1094, 1094, 1094, 1095, 1100, 1097, 1094, 1101,   41, 1094,
+     1094, 1102, 1102, 1102, 1094, 1094, 1099, 1103, 1094, 1103,
+     1104, 1105, 1103, 1103, 1103,   95, 1103, 1106, 1106, 1103,
+
+     1103, 1103, 1094, 1094,   41, 1094, 1107, 1107, 1094, 1108,
+     1108, 1109, 1108, 1108, 1108,  115, 1108, 1110, 1110, 1108,
+     1095, 1111, 1094, 1111, 1112, 1113, 1111, 1111, 1111,  129,
+     1111, 1114, 1114, 1111, 1111, 1115, 1094, 1115, 1116, 1117,
+     1115, 1115, 1115,  143, 1115, 1118, 1118, 1115, 1115, 1119,
+     1094, 1119, 1120, 1121, 1119, 1119, 1119,  157, 1119, 1122,
+     1122, 1119, 1119, 1123, 1094, 1123, 1124, 1125, 1123, 1123,
+     1123,  171, 1123, 1126, 1126, 1123, 1123, 1094, 1094, 1094,
+     1094, 1095, 1094, 1095, 1127, 1127, 1127, 1127, 1127, 1094,
+     1094, 1094, 1128, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+     1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1130, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1131, 1132, 1133, 1132, 1132,
+     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1094, 1094, 1094,
+     1094, 1094, 1134, 1094, 1134, 1134, 1134, 1134, 1094, 1129,
+     1129, 1129, 1129, 1129, 1129, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1135, 1135, 1136, 1137, 1137, 1137, 1137,
+     1138, 1133, 1138, 1138, 1094, 1094, 1139, 1094, 1140, 1139,
+
+     1140, 1141, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+     1139, 1139, 1139, 1139, 1142, 1094, 1142, 1139, 1139, 1094,
+     1094, 1094, 1131, 1094, 1143, 1144, 1143, 1143, 1143, 1143,
+     1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1145,
+     1094, 1145, 1143, 1146, 1094, 1146, 1147, 1147, 1146, 1147,
+     1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+     1146, 1146, 1146, 1146, 1149, 1094, 1149, 1146, 1146, 1150,
+     1094, 1150, 1151, 1151, 1150, 1151, 1152, 1152, 1150, 1150,
+     1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
+     1153, 1094, 1153, 1150, 1150, 1154, 1094, 1154, 1155, 1155,
+
+     1154, 1155, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154,
+     1154, 1154, 1154, 1154, 1154, 1154, 1157, 1094, 1157, 1154,
+     1154, 1158, 1094, 1159, 1158, 1159, 1160, 1158, 1158, 1158,
+     1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1161,
+     1094, 1161, 1158, 1094, 1162, 1162, 1162, 1162, 1094, 1163,
+     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+     1163, 1163, 1163, 1163, 1094, 1094, 1094, 1094, 1094, 1094,
+     1164, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1165, 1166, 1094, 1094, 1094, 1094, 1167, 1168, 1169, 1169,
+     1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1163, 1163,
+     1094, 1171, 1094, 1171, 1172, 1173, 1173, 1173, 1173, 1173,
+     1174, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
+     1176, 1177, 1178, 1179, 1094, 1175, 1094, 1094, 1180, 1181,
+     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1183,
+     1094, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
+     1185, 1186, 1187, 1188, 1094, 1189, 1189, 1189, 1189, 1189,
+     1189, 1189, 1189, 1189, 1190, 1191, 1192, 1193, 1094, 1194,
+     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1196,
+
+     1197, 1198, 1094, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
+     1199, 1199, 1200, 1201, 1202, 1203, 1094, 1094, 1094, 1204,
+     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
+     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
+     1204, 1204, 1204, 1204, 1204, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1205, 1094, 1205, 1206,
+     1094, 1207, 1094, 1207, 1208, 1094, 1209, 1209, 1209, 1209,
+     1209, 1209, 1210, 1211, 1212, 1212, 1212, 1212, 1213, 1213,
+     1214, 1214, 1214, 1214, 1215, 1214, 1215, 1216, 1217, 1214,
+
+     1217, 1218, 1214, 1094,  704, 1214, 1094, 1094, 1219, 1219,
+     1220, 1220, 1220, 1220, 1221, 1220, 1222, 1220, 1094,  719,
+     1223, 1223, 1223, 1223, 1224, 1224, 1223, 1224, 1225, 1225,
+     1226, 1226, 1223, 1226, 1227, 1223, 1094,  737, 1228, 1228,
+     1228, 1228, 1229, 1229, 1228, 1229, 1230, 1230, 1231, 1231,
+     1228, 1231, 1232, 1228, 1094,  755, 1233, 1233, 1233, 1233,
+     1234, 1234, 1233, 1234, 1235, 1235, 1236, 1236, 1233, 1236,
+     1237, 1233, 1094,  773, 1238, 1238, 1238, 1238, 1239, 1238,
+     1239, 1240, 1241, 1238, 1241, 1242, 1238, 1094,  788, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1244, 1244, 1244, 1244, 1094, 1245, 1246,
+     1246, 1246, 1246, 1247, 1247, 1248, 1248, 1094,  848, 1094,
+     1248, 1094, 1094, 1249, 1249, 1250, 1250, 1094,  858, 1223,
+     1223,  737,  737, 1228, 1228,  755,  755, 1233, 1233,  773,
+      773, 1238, 1238,  788,  788, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1244, 1244, 1244, 1244, 1246,
+     1247, 1247,  848,  848, 1249, 1249,  858,  858,  737,  737,
+      755,  755,  773,  773,  788,  788, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1244, 1244,
+     1094, 1247, 1247,  848,  848, 1249, 1249,  858,  858,  737,
+      737,  755,  755,  773,  773,  788,  788, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248,
+     1248, 1250, 1250, 1223, 1223, 1228, 1228, 1233, 1233, 1238,
+     1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248, 1223, 1228,
+     1233, 1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1094, 1094, 1094, 1243, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1094, 1094, 1243, 1243, 1243,
+     1243, 1243, 1243,    0, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094
     } ;
 
-static yyconst flex_int16_t yy_nxt[7046] =
+static yyconst flex_int16_t yy_nxt[7163] =
     {   0,
        24,   25,   26,   27,   25,   28,   29,   30,   31,   32,
        33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
@@ -833,778 +856,791 @@
        47,   47,   48,   47,   48,   47,   48,   48,   47,   24,
        47,   47,   47,   47,   47,   47,   47,   49,   47,   50,
        47,   47,   51,   47,   52,   47,   47,   53,   47,   54,
-       47,   47,   47,   55,   56,   58,  464,   59,   58,   24,
-      167,  223,  224,   24,   24,  465,   24,   60,  113,   60,
-       61,   24,   81,  113,   82,   81,   62,   63,   24,   24,
-       41,   42,   42,   42,  178,   41,   42,   42,   42,  162,
-
-      431,  162,  162,  168,  432,   83,  179,  162,  164,  162,
-      162,   47,  175,   47,  163,  170,   47,  171,   47,  172,
-      173,   64,  163,   47,  225,  226,  176,   24,   24,   66,
-       67,   68,   69,   67,   66,   70,   66,   71,   66,   66,
-       72,   66,   73,   66,   73,   74,   66,   75,   76,   76,
-       76,   66,   77,   66,   66,   78,   78,   78,   78,   78,
-       78,   79,   78,   79,   78,   79,   79,   78,   66,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   80,   78,   78,   78,
-       78,   78,   66,   66,   84,   84,   85,   86,   84,   84,
-
-       87,   84,   84,   84,   84,   88,   84,   89,   84,   89,
-       90,   84,   91,   92,   92,   92,   84,   93,   84,   84,
-       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-       94,   94,   94,   84,   94,   94,   94,   94,   94,   94,
-       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-       94,   95,   94,   94,   94,   94,   94,   84,   84,   24,
-       24,   97,   24,   24,   24,   29,   24,   24,   24,   24,
-       34,   24,   60,   24,   60,   98,   24,   99,  100,  100,
-      100,   24,   63,   24,   24,  101,  101,  101,  101,  101,
-      101,  101,  101,  101,  101,  101,  101,  101,   24,  101,
-
-      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
-      101,  101,  101,  101,  101,  101,  102,  101,  101,  101,
-      101,  101,   24,   24,  103,  103,  104,  103,  103,  103,
-       29,  103,  103,  103,  103,  105,  103,  106,  103,  106,
-      107,  103,  108,  109,  109,  109,  103,  110,  103,  103,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  103,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  112,  111,  111,  111,  111,  111,  103,  103,  114,
-      114,  115,  116,  114,  114,  117,  114,  114,  114,  114,
-
-      118,  114,  119,  114,  119,  120,  114,  121,  122,  122,
-      122,  114,  123,  114,  114,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  114,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  125,  124,  124,  124,
-      124,  124,  114,  114,  126,  126,  127,  128,  126,  126,
-      129,  126,  126,  126,  126,  130,  126,  131,  126,  131,
-      132,  126,  133,  134,  134,  134,  126,  135,  126,  126,
-      136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      136,  136,  136,  126,  136,  136,  136,  136,  136,  136,
-
-      136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      136,  137,  136,  136,  136,  136,  136,  126,  126,  138,
-      138,  139,  140,  138,  138,  141,  138,  138,  138,  138,
-      142,  138,  143,  138,  143,  144,  138,  145,  146,  146,
-      146,  138,  147,  138,  138,  148,  148,  148,  148,  148,
-      148,  148,  148,  148,  148,  148,  148,  148,  138,  148,
-      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
-      148,  148,  148,  148,  148,  148,  149,  148,  148,  148,
-      148,  148,  138,  138,  150,  150,  151,  152,  150,  150,
+       47,   47,   47,   55,   56,   57,  191,   58,   57,  183,
+      194,   67,  497,   68,   67, 1093,   85,  219,   86,   85,
+      192,  498,  195,  100,  220,  101,  100,  258,   59,   60,
+      183,   61,   60,   24,   69,  239,  240,   24,   24,   87,
+
+       24,   62,  184,   62,   63,   24,  102,  241,  242,  292,
+       64,   65,   24,   24,  109,  121,  109,  109,  120, 1092,
+      120,  120,  134,  184,  135,  134,  259,   41,   42,   42,
+       42,  148,  323,  149,  148,   47,  162,   47,  163,  162,
+       47,  176,   47,  177,  176,   66,  464,   47,  243,  244,
+      465,   24,   24,   70,   71,   72,   73,   71,   70,   74,
+       70,   75,   70,   70,   76,   70,   77,   70,   77,   78,
+       70,   79,   80,   80,   80,   70,   81,   70,   70,   82,
+       82,   82,   82,   82,   82,   83,   82,   83,   82,   83,
+       83,   82,   70,   82,   82,   82,   82,   82,   82,   82,
+
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       84,   82,   82,   82,   82,   82,   70,   70,   88,   88,
+       89,   90,   88,   88,   91,   88,   88,   88,   88,   92,
+       88,   93,   88,   93,   94,   88,   95,   96,   96,   96,
+       88,   97,   88,   88,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   88,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   99,   98,   98,   98,   98,
+       98,   88,   88,   24,   24,  103,   24,   24,   24,   29,
+       24,   24,   24,   24,   34,   24,   62,   24,   62,  104,
+
+       24,  105,  106,  106,  106,   24,   65,   24,   24,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,   24,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      108,  107,  107,  107,  107,  107,   24,   24,  110,  110,
+      111,  110,  110,  110,   29,  110,  110,  110,  110,  112,
+      110,  113,  110,  113,  114,  110,  115,  116,  116,  116,
+      110,  117,  110,  110,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  110,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+
+      118,  118,  118,  118,  118,  119,  118,  118,  118,  118,
+      118,  110,  110,  109, 1091,  109,  109,  186,  121,  187,
+      246,  188,  189,  269, 1090,  269,  269,  292,  345,  346,
+       41,   42,   42,   42,  122,  122,  123,  124,  122,  122,
+      125,  122,  122,  122,  122,  126,  122,  127,  122,  127,
+      128,  122,  129,  130,  130,  130,  122,  131,  122,  122,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  122,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  133,  132,  132,  132,  132,  132,  122,  122,  136,
+
+      136,  137,  138,  136,  136,  139,  136,  136,  136,  136,
+      140,  136,  141,  136,  141,  142,  136,  143,  144,  144,
+      144,  136,  145,  136,  136,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  146,  146,  136,  146,
+      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  147,  146,  146,  146,
+      146,  146,  136,  136,  150,  150,  151,  152,  150,  150,
       153,  150,  150,  150,  150,  154,  150,  155,  150,  155,
-
       156,  150,  157,  158,  158,  158,  150,  159,  150,  150,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+
       160,  160,  160,  150,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
-      160,  161,  160,  160,  160,  160,  160,  150,  150,  180,
-     1060,  181,  181,  181,  181,  203,  180,  182,  181,  181,
-      181,  181,  204,  269,  183,  184,  184,  184,  184,  227,
-      228,  185, 1059,  186,  186,  186,  186,  186,  187,  186,
-      186,  186,  186,  186,  186,  186,  299,  186,  188,  189,
-      190,  186,  191,  192,  193,  186,  194,  195,  196,  197,
-
-      186,  198,  186,  199,  200,  201,  186,  186,  186,  202,
-      205,  229,  181,  181,  181,  181,  438,  229,  230,  229,
-     1058,  167,  206,  207,  230,  232,  230,  208,  242,  209,
-      439,  232,  210,  232,  244,  247,  206,  247,  247,  207,
-      205,  230,  181,  181,  181,  181,  269,  209,  269,  229,
-      433,  229,  434,  207,  168,  210,  230,  208,  230,  233,
-      233,  233,  233,  232,  234,  232,  425,  243,  237,  207,
-      211,  426,  212,  821,  245,  213, 1057,  229,  214,  215,
-      216,  217,  218,  219,  230,  229,  220,  269,  221,  222,
-      229,  232,  230,  461,  238,  225,  226,  230,  462,  232,
-
-      247,  164,  247,  247,  232,  180,  229,  181,  181,  181,
-      181, 1056,  230,  230,  246,  235,  277,  893,  211,  269,
-      232,  236,  239,  319,  320,  167,  254,  215,  216,  255,
-      256,  219,  319,  320,  241,  240, 1061,  222,  258,  259,
-      260,  258,  271,  239,  258,  259,  260,  258,  262,  278,
-      262,  459,  262,  262,  186,  248,  300,  186,  168,  186,
-      177,  249,  250,  251,  252,  302,  253,  460,  186,  186,
-      186,  263, 1055,  180,  186,  181,  181,  181,  181,  343,
-      344,  184,  184,  184,  184,  205, 1054,  181,  181,  181,
-      181,  272,  259,  273,  272,  343,  344,  435,  207,  436,
-
-      230,  793,  208,  270,  270,  270,  270,  269,  265,  266,
-      794,  319,  326,  267,  207,  272,  259,  273,  272,  280,
-      323,  281,  281,  281,  281,  282,  282,  282,  282,  319,
-      320,  274,  298,  298,  298,  298,  319,  322,  274,  393,
-      323,  274,  343,  350, 1053,  274,  184,  184,  184,  184,
-      338,  347,  167,  283,  367,  368,  274,  284,  285, 1052,
-      281,  281,  281,  281,  274,  305,  305,  305,  305,  300,
-      286,  287,  394,  324,  296,  288,  300,  289,  297,  300,
-      290,  367,  368,  300,  286,  168,  303,  287,  304,  304,
-      304,  304,  428,  306,  300,  289,  429,  307,  343,  344,
-
-      430,  468,  300,  290,  274,  274,  469,  274,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  274,  274,  362,
-      274,  274,  454,  319,  320,  230,  293,  274,  274,  274,
-      455,  205,  269,  298,  298,  298,  298,  327,  277,  328,
-      328,  328,  328,  274,  207,  343,  344,  456,  208,  367,
-      374,  457,  343,  346,  421,  600,  347,  601,  371,  351,
-      207,  352,  352,  352,  352,  458,  422,  274,  274,  274,
-      274,  278,  274,  274,  274,  274,  274,  274,  274,  274,
-      274,  274,  274,  274, 1051,  274,  274,  319,  320,  348,
-      496,  293,  274,  274,  274,  367,  368,  411,  497,  411,
-
-      411,  343,  344,  329,  329,  329,  329,  396,  274,  397,
-      397,  397,  397,  596,  294,  318,  386,  353,  353,  353,
-      353,  269,  318,  444,  444,  318,  447,  447,  447,  318,
-      597,  330,  274,  274,  308,  331,  304,  304,  304,  304,
-      318,  398,  398,  398,  398,  354,  309,  310,  318,  355,
-      269,  311,  162,  312,  162,  162,  313,  516,  367,  370,
-      309,  508,  371,  310,  452,  453,  509,  163,  292,  399,
-      891,  312, 1050,  400,  412,  412,  412,  412,  892,  313,
-      300,  300,  300,  300,  300,  300, 1049,  300,  300,  300,
-      300,  300,  300,  300,  300,  372,  300,  300,  393,  342,
-
-      471,  472,  316,  300,  300,  300,  342,  635,  366,  342,
-     1048,  367,  368,  342,  247,  366,  247,  247,  366,  300,
-      339,  468,  366,  897,  342,  375,  469,  376,  376,  376,
-      376,  394,  342,  366,  413,  413,  413,  413,  947,  470,
-      636,  366,  339,  300,  300,  300,  300,  300,  300,  300,
-      300, 1047,  300,  300,  300,  300,  300,  300,  300,  300,
-      363,  300,  300,  899,  390,  452,  488,  316,  300,  300,
-      300,  390,  503,  503,  390,  367,  368, 1046,  390,  414,
-      414,  414,  414, 1045,  300,  415,  415,  415,  415,  390,
-      317,  377,  377,  377,  377,  521,  521,  390,  184,  184,
-
-      184,  184,  468,  184,  184,  184,  184,  526,  300,  300,
-      319,  320,  428,  300,  416,  387,  429,  177,  901,  378,
-      487,  269,  302,  379,  332, 1044,  328,  328,  328,  328,
-      416,  443,  443,  443,  443, 1043,  333,  334,  229,  319,
-      320,  335,  416,  336,  943,  230,  337,  319,  320,  445,
-      333,  445,  232,  334,  446,  446,  446,  446,  416,  319,
-      320,  336,  258,  259,  260,  258,  506,  506,  506,  337,
-      318,  318,  319,  320,  318,  318,  318,  318,  318,  318,
-      318,  318,  318,  318,  318,  408,  318,  318,  903,  229,
-      319,  322,  340,  318,  318,  318,  230,  205,  269,  181,
-
-      181,  181,  181,  232,  987,  229,  229,  319,  320,  318,
-      207, 1042,  230,  230,  208,  476,  476,  476,  476,  232,
-      232,  258,  259,  260,  258,  822,  207,  491,  491,  491,
-      491,  490, 1041,  318,  318,  318,  318,  319,  320,  318,
-      318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
-      292,  318,  318, 1040,  229,  229,  477,  340,  318,  318,
-      318,  230,  230,  229,  229,  229,  230,  988,  232,  232,
-      230,  230,  230,  269,  318,  343,  344,  232,  232,  232,
-      341,  229,  272,  259,  273,  272,  343,  344,  230, 1039,
-      481,  272,  259,  273,  272,  232,  343,  344,  318,  318,
-
-      343,  344,  319,  326,  478,  479,  480,  343,  346,  498,
-     1038,  323,  483,  292,  356,  482,  352,  352,  352,  352,
-      524,  524,  524,  484,  343,  344,  357,  358,  319,  326,
-      315,  359,  895,  360,  367,  368,  361,  323,  319,  322,
-      357,  230,  323,  358,  270,  270,  270,  270,  269,  343,
-      350,  360,  282,  282,  282,  282,  367,  368,  347,  361,
-      342,  342,  343,  344,  342,  342,  342,  342,  342,  342,
-      342,  342,  342,  342,  342,  324,  342,  342,  305,  305,
-      305,  305,  364,  342,  342,  342, 1037,  285,  580,  281,
-      281,  281,  281,  581,  282,  282,  282,  282,  948,  342,
-
-      287,  504,  339,  504,  288,  499,  505,  505,  505,  505,
-      367,  368,  522,  985,  522, 1024,  287,  523,  523,  523,
-      523,  499, 1036,  342,  342,  342,  342,  343,  344,  342,
-      342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
-      269,  342,  342,  367,  370,  319,  320,  364,  342,  342,
-      342,  502,  502,  502,  502,  205,  941,  298,  298,  298,
-      298,  292,  499,  944,  342,  319,  320,  949,  207,  269,
-      365,  363,  208,  319,  322,  343,  344,  323,  499,  319,
-      320,  367,  368, 1035,  207,  343,  350,  640,  342,  342,
-      367,  368,  530,  676,  347,  533,  533,  677,  308, 1034,
-
-      304,  304,  304,  304,  380, 1033,  376,  376,  376,  376,
-      324,  310,  531,  575,  575,  311,  381,  382,  319,  320,
-      641,  383,  544,  384,  444,  444,  385,  310,  319,  320,
-      381,  343,  344,  382,  329,  329,  329,  329,  319,  320,
-     1032,  384,  538,  942,  536,  536,  536,  539,  292,  385,
-      366,  366,  367,  368,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366, 1031,  366,  366,  305,  305,
-      305,  305,  388,  366,  366,  366,  617, 1030,  545,  517,
-      520,  520,  520,  520,  618,  319,  320,  619,  950,  366,
-      998,  517,  363,  343,  346,  517,  534,  347,  534,  367,
-
-      374,  535,  535,  535,  535,  343,  346,  517,  371,  347,
-      367,  368,  990,  366,  366,  366,  366,  367,  368,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      348,  366,  366,  988,  319,  320,  230,  388,  366,  366,
-      366,  986,  348,  269,  367,  370,  319,  320,  371, 1023,
-      329,  329,  329,  329,  366,  343,  344,  558,  343,  344,
-      389,  529,  532,  532,  532,  532,  503,  503,  367,  368,
-      811,  547,  547,  529,  550,  550,  550,  529,  366,  366,
-      401,  372,  397,  397,  397,  397,  951,  343,  344,  529,
-      387,  552,  402,  403,  343,  344,  553,  404,  411,  405,
-
-      411,  411,  406,  343,  344, 1022,  402,  367,  368,  403,
-      353,  353,  353,  353,  548,  559,  548,  405, 1021,  549,
-      549,  549,  549,  561,  561,  406,  390,  390, 1020,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  991,  390,  390,  343,  344,  367,  374,  409,  390,
-      390,  390,  578,  578,  578,  371,  521,  521,  367,  368,
-      353,  353,  353,  353,  952,  390,  343,  344,  387,  367,
-      370,  543, 1019,  371,  377,  377,  377,  377,  398,  398,
-      398,  398,  546,  546,  546,  546,  339,  543,  663,  390,
-      390,  390,  390,  543,  390,  390,  390,  390,  390,  390,
-
-      390,  390,  390,  390,  390,  390,  372,  390,  390,  543,
-      367,  368, 1018,  409,  390,  390,  390,  412,  412,  412,
-      412,  664,  367,  368,  575,  575,  377,  377,  377,  377,
-      390,  805,  806,  367,  368, 1017,  410,  557,  564,  564,
-      564,  413,  413,  413,  413,  414,  414,  414,  414,  560,
-      560,  560,  560,  557,  390,  390,  507,  507,  507,  507,
-      557,  415,  415,  415,  415,  507,  507,  507,  367,  368,
-      319,  320,  566,  447,  447,  447,  557,  567, 1016,  507,
-      507,  507,  507,  507,  507,  274,  274, 1015,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
-
-      667,  274,  274,  367,  368,  747, 1014,  293,  274,  274,
-      274,  506,  506,  506,  562,  987,  562, 1025,  690,  563,
-      563,  563,  563,  401,  274,  397,  397,  397,  397,  446,
-      446,  446,  446,  668,  817,  818,  403,  576,  748,  576,
-      404, 1013,  577,  577,  577,  577,  319,  320,  274,  274,
-      274,  274,  403,  274,  274,  274,  510,  274,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
-      274,  274,  274,  274,  274,  274,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  274,
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-
-      511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  274,  274,  274,  274, 1012,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
-     1011,  274,  274,  398,  398,  398,  398,  293,  274,  274,
-      274,  524,  524,  524,  571,  574,  574,  574,  574, 1010,
-      443,  443,  443,  443,  274, 1009,  571,  585,  985,  585,
-      571,  416,  586,  586,  586,  586,  446,  446,  446,  446,
-      319,  693,  571,  512,  319,  320,  269,  416,  274,  274,
-      525,  525,  525,  525, 1008,  229,  229,  229,  229,  525,
-      525,  525,  230,  230,  230,  230, 1007,  343,  344,  232,
-
-      232,  232,  232,  525,  525,  525,  525,  525,  525,  300,
-      300,  300,  300,  300,  300, 1006,  300,  300,  300,  300,
-      300,  300,  300,  300,  691,  300,  300, 1005,  229,  645,
-      229,  316,  300,  300,  300,  230, 1004,  230,  505,  505,
-      505,  505,  232, 1003,  232,  708,  319,  697,  300,  491,
-      491,  491,  491,  490,  658,  694,  658,  319,  320,  659,
-      659,  659,  659,  505,  505,  505,  505,  523,  523,  523,
-      523,  648,  300,  300,  300,  300,  300,  300,  300,  300,
-      474,  300,  300,  300,  300,  300,  300,  300,  300,  300,
-      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
-
-      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
-      527,  527,  527,  300,  527,  527,  527,  527,  527,  527,
-      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
-      527,  527,  527,  527,  527,  527,  527,  300,  300,  300,
-      300,  300,  300,  300,  300, 1002,  300,  300,  300,  300,
-      300,  300,  300,  300, 1001,  300,  300,  319,  699,  229,
-      230,  316,  300,  300,  300,  229,  230,  269, 1000,  229,
-      953,  300,  230,  232,  408,  637,  230,  999,  300,  232,
-      683,  367,  368,  232,  319,  320,  751,  502,  502,  502,
-      502,  656,  578,  578,  578,  657,  649,  528,  499,  230,
-
-      533,  533,  300,  300,  319,  320,  269,  646,  319,  693,
-      644,  647,  694,  635,  499,  343,  715,  640,  332,  752,
-      328,  328,  328,  328,  712,  520,  520,  520,  520,  726,
-      663,  334,  678,  812,  678,  335,  517,  679,  679,  679,
-      679,  523,  523,  523,  523,  695,  636,  334,  319,  320,
-      641,  984,  517,  319,  320,  343,  344,  945,  343,  344,
-      319,  320,  315,  664,  537,  537,  537,  537,  989,  535,
-      535,  535,  535,  537,  537,  537,  535,  535,  535,  535,
-      667,  367,  368,  577,  577,  577,  577,  537,  537,  537,
-      537,  537,  537,  318,  318,  319,  320,  318,  318,  318,
-
-      318,  318,  318,  318,  318,  318,  318,  318,  709,  318,
-      318,  319,  320,  668,  315,  340,  318,  318,  318,  319,
-      320,  989,  688, 1024,  688,  343,  344,  689,  689,  689,
-      689,  727,  318,  343,  344,  536,  536,  536,  367,  368,
-      946,  547,  547,  983,  706,  315,  706,  343,  711,  707,
-      707,  707,  707,  982,  561,  561,  318,  318,  318,  318,
-      319,  320,  318,  318,  540,  318,  318,  318,  318,  318,
-      318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
-      318,  318,  318,  318,  541,  541,  541,  541,  541,  541,
-      541,  541,  541,  541,  541,  541,  541,  318,  541,  541,
-
-      541,  541,  541,  541,  541,  541,  541,  541,  541,  541,
-      541,  541,  541,  541,  541,  541,  541,  541,  541,  541,
-      541,  318,  318,  318,  318,  319,  320,  318,  318,  318,
-      318,  318,  318,  318,  318,  318,  318,  318,  981,  318,
-      318,  319,  320,  367,  733,  340,  318,  318,  318,  343,
-      344,  980,  730,  343,  344,  343,  717,  532,  532,  532,
-      532,  979,  318,  319,  699,  367,  368,  700,  529,  546,
-      546,  546,  546,  978,  343,  344,  577,  577,  577,  577,
-      543,  542,  367,  729,  529,  747,  318,  318,  343,  344,
-      549,  549,  549,  549,  343,  344,  543,  343,  711,  954,
-
-      701,  712,  356,  408,  352,  352,  352,  352,  343,  344,
-      549,  549,  549,  549,  751,  358,  343,  717,  748,  359,
-      718,  986,  229,  229,  550,  550,  550,  367,  368,  230,
-      230,  358,  343,  344,  713,  977,  232,  232,  724,  269,
-      724,  367,  368,  725,  725,  725,  725,  752,  551,  551,
-      551,  551,  990,  719,  367,  735,  229,  551,  551,  551,
-      367,  729,  230,  230,  730,  586,  586,  586,  586,  269,
-      232,  551,  551,  551,  551,  551,  551,  342,  342,  343,
-      344,  342,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  342,  939,  342,  342,  367,  368,  731,  315,  364,
-
-      342,  342,  342,  367,  368,  804,  300,  367,  368,  976,
-      637,  560,  560,  560,  560,  683,  342,  367,  368,  564,
-      564,  564,  557,  563,  563,  563,  563,  586,  586,  586,
-      586,  319,  320,  563,  563,  563,  563,  997,  557, 1029,
-      342,  342,  342,  342,  343,  344,  342,  342,  554,  342,
-      342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  342,  342,  342,  342,  342,  342,  342,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  342,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-
-      555,  555,  555,  555,  555,  342,  342,  342,  342,  343,
-      344,  342,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  342,  975,  342,  342,  574,  574,  574,  574,  364,
-      342,  342,  342,  974,  319,  697,  571,  367,  735,  319,
-      320,  736,  742,  694,  742,  973,  342,  743,  743,  743,
-      743,  972,  571,  229,  229,  659,  659,  659,  659,  971,
-      230,  230,  229,  339,  896,  556,  970,  232,  232,  230,
-      342,  342,  367,  368,  737,  969,  232,  659,  659,  659,
-      659,  679,  679,  679,  679,  968,  380,  967,  376,  376,
-      376,  376,  343,  344,  801,  802,  319,  320,  966,  382,
-
-      846,  319,  320,  383,  319,  320,  803,  679,  679,  679,
-      679,  319,  320,  847,  965,  382,  367,  368,  964,  848,
-      689,  689,  689,  689,  343,  344,  963,  689,  689,  689,
-      689,  992,  565,  565,  565,  565,  319,  320,  962,  827,
-      540,  565,  565,  565,  828,  319,  693,  363,  898,  694,
-      319,  693,  343,  344,  694,  565,  565,  565,  565,  565,
-      565,  366,  366,  367,  368,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  339,  366,  366,  319,
-      697,  961,  695,  388,  366,  366,  366,  695,  694,  343,
-      344,  367,  368,  343,  344,  831,  960,  343,  344,  959,
-
-      366,  554,  367,  368,  956,  707,  707,  707,  707,  707,
-      707,  707,  707,  343,  715,  367,  368,  957,  725,  725,
-      725,  725,  712,  958,  366,  366,  366,  366,  367,  368,
-      366,  366,  568,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  569,  569,  569,  569,  569,  569,  569,  569,
-      569,  569,  569,  569,  569,  366,  569,  569,  569,  569,
-      569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
-      569,  569,  569,  569,  569,  569,  569,  569,  569,  366,
-      366,  366,  366,  367,  368,  366,  366,  366,  366,  366,
-
-      366,  366,  366,  366,  366,  366,  993,  366,  366,  343,
-      344,  343,  715,  388,  366,  366,  366,  955,  367,  368,
-      712,  367,  368,  319,  699,  319,  699,  700,  935,  700,
-      366,  343,  711,  343,  711,  712,  934,  712,  343,  717,
-      343,  717,  718,  933,  718,  932,  367,  368,  862,  570,
-      568,  363,  832,  931,  366,  366,  579,  579,  579,  579,
-      701,  835,  701,  863,  836,  579,  579,  579,  713,  864,
-      713,  743,  743,  743,  743,  719,  930,  719,  994,  579,
-      579,  579,  579,  579,  579,  390,  390,  929,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-
-      928,  390,  390,  367,  368,  367,  733,  409,  390,  390,
-      390,  230,  387,  900,  730,  927,  367,  733,  269,  725,
-      725,  725,  725,  363,  390,  730,  743,  743,  743,  743,
-      408,  902,  938,  229,  938,  938,  319,  320,  229,  938,
-      230,  938,  938,  343,  344,  230,  888,  232,  390,  390,
-      390,  390,  232,  390,  390,  390,  582,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  583,  583,  583,  583,
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  390,
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
-
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
-      583,  583,  583,  390,  390,  390,  390,  926,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      995,  390,  390,  925,  230,  230,  924,  409,  390,  390,
-      390,  269,  269,  996,  319,  320,  992,  367,  729,  367,
-      729,  730,  997,  730,  390,  367,  735,  367,  735,  736,
-      229,  736,  229,  229,  923,  940,  998,  230,  922,  230,
-      230,  889,  921,  584,  232,  387,  232,  232,  390,  390,
-      507,  507,  507,  507,  731,  920,  731,  919,  387,  507,
-      507,  507,  737,  918,  737,  367,  368,  408,  917,  916,
-
-      936,  885,  883,  507,  507,  507,  507,  507,  507,  274,
-      274,  408,  274,  274,  274,  274,  274,  274,  274,  274,
-      274,  274,  274,  274,  915,  274,  274,  985,  229,  914,
-      913,  670,  274,  274,  274,  230,  985,  912,  230,  986,
-      229,  986,  232,  229,  911,  269,  910,  230,  274,  909,
-      230,  908,  230,  907,  232,  906,  905,  232,  904,  269,
-      319,  320,  991,  817, 1026,  937,  343,  344,  993,  887,
-     1027,  805,  274,  274,  274,  274,  882,  274,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  274,  274,  292,
-      274,  274,  292,  292,  292,  292,  293,  274,  274,  274,
-
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  274,  292,  292,  292,  292,  292,  292,
-      671,  292,  292,  292,  672,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  274,  274,  525,
-      525,  525,  525,  881,  229,  229,  880,  879,  525,  525,
-      525,  230,  230,  343,  344,  994,  878,  877,  232,  232,
-      876,  875,  525,  525,  525,  525,  525,  525,  300,  300,
-      300,  300,  300,  300,  874,  300,  300,  300,  300,  300,
-      300,  300,  300,  873,  300,  300,  872,  871,  884,  870,
-      685,  300,  300,  300,  886,  367,  368,  995,  869, 1028,
-
-      367,  368,  996,  868,  867,  866,  865,  300,  861,  860,
-      859,  858,  857,  856,  855,  854,  853,  852,  851,  850,
-      849,  845,  844,  843,  842,  582,  747,  840,  839,  838,
-      834,  300,  300,  300,  300,  300,  300,  300,  300,  830,
-      300,  300,  300,  300,  300,  300,  300,  300,  315,  300,
-      300,  315,  315,  315,  315,  316,  300,  300,  300,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  300,  315,  315,  315,  315,  315,  315,  686,
-      315,  315,  315,  687,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  300,  300,  319,  320,
-
-      826,  474,  824,  823,  820,  819,  816,  510,  663,  814,
-      813,  810,  809,  808,  537,  537,  537,  537,  807,  474,
-      643,  635,  800,  537,  537,  537,  799,  798,  797,  796,
-      795,  792,  791,  790,  789,  788,  787,  537,  537,  537,
-      537,  537,  537,  318,  318,  319,  320,  318,  318,  318,
-      318,  318,  318,  318,  318,  318,  318,  318,  786,  318,
-      318,  785,  784,  783,  782,  703,  318,  318,  318,  781,
-      780,  779,  778,  777,  776,  775,  774,  773,  772,  771,
-      770,  769,  318,  768,  767,  766,  765,  764,  763,  762,
-      761,  760,  759,  758,  757,  747,  745,  744,  681,  680,
-
-      675,  674,  673,  663,  661,  660,  318,  318,  318,  318,
-      319,  320,  318,  318,  318,  318,  318,  318,  318,  318,
-      318,  318,  318,  339,  318,  318,  339,  339,  339,  339,
-      340,  318,  318,  318,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  318,  339,  339,
-      339,  339,  339,  339,  704,  339,  339,  339,  705,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-      339,  318,  318,  343,  344,  655,  654,  653,  652,  490,
-      617,  600,  596,  650,  643,  638,  635,  633,  632,  551,
-      551,  551,  551,  631,  630,  629,  628,  627,  551,  551,
-
-      551,  626,  625,  624,  623,  622,  621,  620,  616,  615,
-      614,  613,  551,  551,  551,  551,  551,  551,  342,  342,
-      343,  344,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  342,  342,  612,  342,  342,  611,  610,  609,  608,
-      721,  342,  342,  342,  607,  606,  605,  604,  603,  602,
-      599,  598,  595,  594,  593,  592,  591,  342,  590,  589,
-      588,  587,  573,  572,  393,  519,  518,  515,  514,  513,
-      501,  500,  277,  474,  495,  494,  490,  462,  460,  436,
-      433,  342,  342,  342,  342,  343,  344,  342,  342,  342,
-      342,  342,  342,  342,  342,  342,  342,  342,  363,  342,
-
-      342,  363,  363,  363,  363,  364,  342,  342,  342,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  342,  363,  363,  363,  363,  363,  363,  722,
-      363,  363,  363,  723,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  342,  342,  367,  368,
-      431,  486,  422,  485,  474,  269,  473,  467,  466,  463,
-      451,  450,  449,  442,  565,  565,  565,  565,  441,  440,
-      437,  427,  424,  565,  565,  565,  423,  420,  419,  418,
-      167,  407,  393,  391,  314,  269,  295,  565,  565,  565,
-      565,  565,  565,  366,  366,  367,  368,  366,  366,  366,
-
-      366,  366,  366,  366,  366,  366,  366,  366,  291,  366,
-      366,  277,  275,  246,  257,  739,  366,  366,  366,  167,
-      246,  257,  167,  174,  165, 1061,   96,   65,   57, 1061,
-     1061, 1061,  366, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061,  366,  366,  366,  366,
-      367,  368,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  387,  366,  366,  387,  387,  387,  387,
-      388,  366,  366,  366,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  366,  387,  387,
-
-      387,  387,  387,  387,  740,  387,  387,  387,  741,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  366,  366,  579,  579,  579,  579, 1061, 1061, 1061,
-     1061, 1061,  579,  579,  579, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061,  579,  579,  579,  579,
-      579,  579,  390,  390, 1061,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390, 1061,  390,  390,
-     1061, 1061, 1061, 1061,  754,  390,  390,  390, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061,  390, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061,  390,  390,  390,  390, 1061,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  408,  390,  390,  408,  408,  408,  408,  409,
-      390,  390,  390,  408,  408,  408,  408,  408,  408,  408,
-      408,  408,  408,  408,  408,  408,  390,  408,  408,  408,
-      408,  408,  408,  755,  408,  408,  408,  756,  408,  408,
-      408,  408,  408,  408,  408,  408,  408,  408,  408,  408,
-      390,  390,  274,  274, 1061,  274,  274,  274,  274,  274,
-      274,  274,  274,  274,  274,  274,  274, 1061,  274,  274,
-
-     1061, 1061, 1061, 1061,  670,  274,  274,  274, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061,  274, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061,  274,  274,  274,  274, 1061,
-      274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
-      274,  274,  292,  274,  274,  292,  292,  292,  292,  293,
-      274,  274,  274,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  274,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  815,  292,  292,  292,
-
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      274,  274,  300,  300,  300,  300,  300,  300, 1061,  300,
-      300,  300,  300,  300,  300,  300,  300, 1061,  300,  300,
-     1061, 1061, 1061, 1061,  685,  300,  300,  300, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061,  300, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061,  300,  300,  300,  300,  300,
-      300,  300,  300, 1061,  300,  300,  300,  300,  300,  300,
-      300,  300,  315,  300,  300,  315,  315,  315,  315,  316,
-
-      300,  300,  300,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  300,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  825,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      300,  300,  318,  318,  319,  320,  318,  318,  318,  318,
-      318,  318,  318,  318,  318,  318,  318, 1061,  318,  318,
-     1061, 1061, 1061, 1061,  703,  318,  318,  318, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061,  318, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
-     1061, 1061, 1061, 1061, 1061,  318,  318,  318,  318,  319,
-      320,  318,  318,  318,  318,  318,  318,  318,  318,  318,
-      318,  318,  339,  318,  318,  339,  339,  339,  339,  340,
-      318,  318,  318,  339,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  318,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  829,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-      318,  318,  342,  342,  343,  344,  342,  342,  342,  342,
-      342,  342,  342,  342,  342,  342,  342, 1061,  342,  342,
-     1061, 1061, 1061, 1061,  721,  342,  342,  342, 1061, 1061,
-
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061,  342, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061,  342,  342,  342,  342,  343,
-      344,  342,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  342,  363,  342,  342,  363,  363,  363,  363,  364,
-      342,  342,  342,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  342,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  833,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-
-      342,  342,  366,  366,  367,  368,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366, 1061,  366,  366,
-     1061, 1061, 1061, 1061,  739,  366,  366,  366, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061,  366, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061,  366,  366,  366,  366,  367,
-      368,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  387,  366,  366,  387,  387,  387,  387,  388,
-      366,  366,  366,  387,  387,  387,  387,  387,  387,  387,
-
-      387,  387,  387,  387,  387,  387,  366,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  837,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      366,  366,  390,  390, 1061,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390, 1061,  390,  390,
-     1061, 1061, 1061, 1061,  754,  390,  390,  390, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061,  390, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061,  390,  390,  390,  390, 1061,
-
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  408,  390,  390,  408,  408,  408,  408,  409,
-      390,  390,  390,  408,  408,  408,  408,  408,  408,  408,
-      408,  408,  408,  408,  408,  408,  390,  408,  408,  408,
-      408,  408,  408,  408,  408,  408,  841,  408,  408,  408,
-      408,  408,  408,  408,  408,  408,  408,  408,  408,  408,
-      390,  390,  274,  274, 1061,  274,  274,  274,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  292,  274,  274,
-      292,  292,  292,  292,  293,  274,  274,  274,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-
-      292,  274,  292,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  890,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  274,  274,  300,  300,  300,
-      300,  300,  300, 1061,  300,  300,  300,  300,  300,  300,
-      300,  300,  315,  300,  300,  315,  315,  315,  315,  316,
-      300,  300,  300,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  300,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  894,  315,  315,
+      160,  161,  160,  160,  160,  160,  160,  150,  150,  164,
+      164,  165,  166,  164,  164,  167,  164,  164,  164,  164,
+      168,  164,  169,  164,  169,  170,  164,  171,  172,  172,
+      172,  164,  173,  164,  164,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  164,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  175,  174,  174,  174,
+      174,  174,  164,  164,  178,  300,  178,  178,  178,  180,
+
+      178,  178,  196,  458,  197,  197,  197,  197,  459,  179,
+      198,  245,  196,  179,  197,  197,  197,  197,  246, 1089,
+      199,  200,  200,  200,  200,  248,  492,  201,  301,  202,
+      202,  202,  202,  202,  203,  202,  202,  202,  202,  202,
+      202,  202,  493,  202,  204,  205,  206,  202,  207,  208,
+      209,  202,  210,  211,  212,  213,  202,  214,  202,  215,
+      216,  217,  202,  202,  202,  218,  221,  245,  197,  197,
+      197,  197,  471,  245,  246,  245, 1018,  245,  222,  223,
+      246,  248,  246,  224,  246,  225,  472,  248,  226,  248,
+      260,  248,  222,  325,  292,  223,  221,  193,  197,  197,
+
+      197,  197,  327,  225,  280,  245,  280,  280, 1088,  223,
+      254,  226,  246,  224,  255,  249,  249,  249,  249,  248,
+      250,  264,  265,  826,  253,  223,  227,  256,  228,  629,
+      261,  229,  827,  245,  230,  231,  232,  233,  234,  235,
+      246,  245,  236,  246,  237,  238,  630,  248,  246,  262,
+      292,  262,  262,  264,  265,  248,  245,  262,  180,  262,
+      262,  487,  268,  246,  179,  269,  180,  269,  269,  488,
+      248,  251,  179,  294, 1087,  266,  267,  252,  196,  227,
+      197,  197,  197,  197,  183,  257,  425,  276,  231,  232,
+      277,  278,  235,  255,  268, 1094,  345,  346,  238,  280,
+
+      180,  280,  280,  281,  282,  283,  281,  281,  282,  283,
+      281,  264,  265,  202,  270, 1086,  202,  184,  202,  426,
+      271,  272,  273,  274,  466,  275,  467,  202,  202,  202,
+      285,  292,  285,  202,  285,  285,  196,  286,  197,  197,
+      197,  197,  295,  282,  296,  295, 1024,  200,  200,  200,
+      200,  221,  268,  197,  197,  197,  197,  295,  282,  296,
+      295,  345,  346,  468,  223,  469,  246,  549,  224,  293,
+      293,  293,  293,  292,  288,  289,  371,  372, 1085,  290,
+      223,  303,  364,  304,  304,  304,  304,  305,  305,  305,
+      305,  365,  318,  297,  318,  318,  318,  298,  318,  318,
+
+      297,  494,  324,  297,  324,  324,  495,  297,  200,  200,
+      200,  200,  345,  352,  343,  306,  343,  343,  297,  307,
+      308,  349,  304,  304,  304,  304,  297,  322,  322,  322,
+      322,  325,  309,  310,  371,  372,  320,  311,  325,  312,
+      321,  325,  313,  397,  398,  325,  309,  895,  328,  310,
+      329,  329,  329,  329,  371,  378,  325,  312,  368,  345,
+      369,  368,  896,  375,  325,  313,  297,  297,  897,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297, 1084,  297,  297,  330,  330,  330,  330,  316,  297,
+      297,  297,  633,  221,  634,  322,  322,  322,  322,  368,
+
+      345,  369,  368,  397,  398,  297,  223,  345,  346,  315,
+      224,  924,  331,  345,  348,  501,  332,  349,  397,  404,
+      502,  353,  223,  354,  354,  354,  354,  401, 1083,  297,
+      297,  297,  297,  503,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  365,  297,  297,  930,
+      350,  371,  372,  316,  297,  297,  297,  344,  394,  371,
+      395,  394,  345,  346,  344,  371,  374,  344,  501,  375,
+      297,  344,  390,  502,  183, 1082,  317,  454,  355,  355,
+      355,  355,  344,  394,  371,  395,  394,  397,  400,  455,
+      344,  401,  477,  477,  297,  297,  333, 1081,  329,  329,
+
+      329,  329,  376,  480,  480,  480,  356,  184,  334,  335,
+      357,  397,  398,  336,  443,  337,  443,  443,  338,  980,
+      371,  372,  334,  365,  402,  335,  420,  397,  421,  420,
+      485,  486,  416,  337,  379, 1080,  380,  380,  380,  380,
+      529,  338,  325,  325,  325,  325,  325,  325,  530,  325,
+      325,  325,  325,  325,  325,  325,  325, 1079,  325,  325,
+      420,  397,  421,  420,  341,  325,  325,  325,  397,  398,
+      428,  300,  429,  429,  429,  429,  504,  505,  371,  372,
+      391,  325,  405,  932,  406,  406,  406,  406,  443,  423,
+      443,  443,  264,  265,  381,  381,  381,  381,  178, 1020,
+
+      178,  178,  264,  265,  301,  325,  325,  325,  325,  325,
+      325,  325,  325,  179,  325,  325,  325,  325,  325,  325,
+      325,  325,  382,  325,  325, 1078,  383,  425,  370,  341,
+      325,  325,  325,  489,  396,  370,  246,  490,  370,  397,
+      398,  396,  370,  292,  396,  315,  325,  444,  396,  444,
+      444,  491,  342,  370,  292,  407,  407,  407,  407,  396,
+      426,  370,  445,  445,  445,  445, 1077,  396,  264,  265,
+      325,  325,  345,  346,  430,  430,  430,  430,  446,  446,
+      446,  446,  925,  408,  264,  265,  358,  409,  354,  354,
+      354,  354,  447,  447,  447,  447,  668,  422,  359,  360,
+
+      485,  521,  431,  361,  422,  362,  432,  422,  363,  536,
+      536,  422,  359, 1076,  245,  360,  448,  448,  448,  448,
+     1075,  246,  422,  362,  200,  200,  200,  200,  248,  669,
+      422,  363,  344,  344,  345,  346,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  673,  344,  344,
+      269,  245,  269,  269,  366,  344,  344,  344,  246,  221,
+      292,  197,  197,  197,  197,  248,  200,  200,  200,  200,
+      461,  344,  223, 1074,  462,  245,  224,  449,  463,  478,
+      674,  478,  246,  976,  479,  479,  479,  479,  223,  248,
+      539,  539,  539,  449, 1019,  344,  344,  344,  344,  345,
+
+      346,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  292,  344,  344,  264,  265,  512,  513,  366,
+      344,  344,  344,  476,  476,  476,  476,  461,  554,  554,
+      246,  462, 1073,  245,  449,  520,  344,  292,  345,  346,
+      246,  245,  367,  509,  509,  509,  509,  248,  246,  541,
+      449,  245,  245,  417,  542,  248,  934,  245,  246,  246,
+      344,  344,  371,  372,  246,  248,  248, 1072,  245,  501,
+      245,  248,  518,  531,  559,  246,  384,  246,  380,  380,
+      380,  380,  248,  280,  248,  280,  280,  514,  385,  386,
+      340,  510,  928,  387,  262,  388,  262,  262,  389,  345,
+
+      346,  511,  385,  345,  346,  386, 1071,  515,  318,  179,
+      318,  318,  517,  388,  345,  348,  516,  281,  282,  283,
+      281,  389,  370,  370,  371,  372,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  370, 1070,  370,  370,
+      281,  282,  283,  281,  392,  370,  370,  370,  524,  524,
+      524,  524,  523,  246,  345,  346,  293,  293,  293,  293,
+      292,  370,  295,  282,  296,  295,  295,  282,  296,  295,
+      305,  305,  305,  305,  537,  324,  537,  324,  324,  538,
+      538,  538,  538,  371,  372,  370,  370,  370,  370,  371,
+      372,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+
+      370,  370, 1069,  370,  370,  330,  330,  330,  330,  392,
+      370,  370,  370, 1018,  308, 1057,  304,  304,  304,  304,
+      371,  372,  305,  305,  305,  305,  370,  310,  557,  557,
+      557,  311,  393,  532,  535,  535,  535,  535,  325,  345,
+      352,  613,  193,  310, 1068,  532,  614,  327,  349,  532,
+      370,  370,  397,  398,  343,  292,  343,  343,  345,  352,
+      221,  532,  322,  322,  322,  322,  410,  349,  406,  406,
+      406,  406, 1067,  223,  371,  372,  292,  224,  411,  412,
+      345,  346,  854,  413, 1066,  414,  345,  346,  415,  223,
+      981,  555,  411,  555,  365,  412,  556,  556,  556,  556,
+
+      709,  345,  348,  414,  710,  349,  368,  345,  369,  368,
+     1065,  415,  396,  396,  397,  398,  396,  396,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  563,  396,  396,
+      371,  374,  292,  564,  418,  396,  396,  396,  350,  333,
+      292,  329,  329,  329,  329,  974,  330,  330,  330,  330,
+      315,  396,  335,  345,  346,  977,  336,  550,  345,  348,
+      371,  372,  349,  368,  345,  369,  368,  855,  335,  355,
+      355,  355,  355,  550, 1064,  396,  396,  396,  396,  397,
+      398,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      396,  396, 1063,  396,  396,  350,  345,  346,  879,  418,
+
+      396,  396,  396,  553,  553,  553,  553,  345,  346,  371,
+      378,  880,  566,  566,  550,  982,  396,  881,  375,  391,
+      345,  346,  419,  355,  355,  355,  355,  696,  371,  374,
+      550,  567,  375,  567,  562, 1031,  568,  568,  568,  568,
+      396,  396,  433,  700,  429,  429,  429,  429,  371,  374,
+      562, 1023,  375,  975,  434,  435,  345,  346,  315,  436,
+      697,  437,  371,  372,  438,  376,  345,  346,  434, 1025,
+      571,  435,  569,  569,  569,  572,  701,  371,  378,  437,
+      397,  398, 1021,  371,  372,  376,  375,  438,  422,  422,
+     1019,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+
+      422,  422,  422, 1056,  422,  422,  345,  346,  292,  577,
+      441,  422,  422,  422,  365,  371,  372,  780,  371,  372,
+      397,  398,  565,  565,  565,  565, 1055,  422,  371,  372,
+      578,  580,  580,  562,  381,  381,  381,  381,  926,  371,
+      372,  397,  398,  585,  381,  381,  381,  381,  586,  562,
+      781,  422,  422,  422,  422,  576,  422,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  422,  422, 1054,  422,
+      422,  576,  371,  372, 1053,  441,  422,  422,  422,  394,
+      371,  395,  394, 1052,  371,  372,  397,  400,  579,  579,
+      579,  579,  422,  371,  372,  581, 1051,  581,  442,  576,
+
+      582,  582,  582,  582,  394,  371,  395,  394,  983,  583,
+      583,  583,  391,  397,  404,  576,  422,  422,  540,  540,
+      540,  540,  401,  397,  404,  397,  398,  540,  540,  540,
+      397,  400,  401, 1050,  401,  784,  397,  400,  397,  398,
+      401,  540,  540,  540,  540,  540,  540,  297,  297, 1049,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297, 1048,  297,  297,  397,  398,  402,  785,  316,
+      297,  297,  297,  402,  397,  398,  397,  398,  608,  608,
+     1047,  407,  407,  407,  407,  591,  297,  595, 1046,  595,
+      594,  594,  596,  596,  596,  596,  397,  398,  477,  477,
+
+      599,  420,  397,  421,  420,  600,  420,  397,  421,  420,
+      297,  297,  297,  297, 1045,  297,  297,  297,  543,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  544,  544,
+      544,  544,  544,  544,  544,  544,  544,  544,  544,  544,
+      544,  297,  544,  544,  544,  544,  544,  544,  544,  544,
+      544,  544,  544,  544,  544,  544,  544,  544,  544,  544,
+      544,  544,  544,  544,  544,  297,  297,  297,  297, 1044,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297,  978,  297,  297,  397,  398,  340,  650,  316,
+
+      297,  297,  297,  397,  398,  979,  651,  397,  398,  652,
+      340,  407,  407,  407,  407, 1043,  297,  430,  430,  430,
+      430, 1042,  590,  597,  597,  597,  536,  536,  430,  430,
+      430,  430,  611,  611,  611,  545,  264,  265,  590,  604,
+      297,  297,  558,  558,  558,  558,  443, 1041,  443,  443,
+      592,  558,  558,  558,  609,  604,  609,  554,  554,  610,
+      610,  610,  610,  608,  608,  558,  558,  558,  558,  558,
+      558,  325,  325,  325,  325,  325,  325, 1040,  325,  325,
+      325,  325,  325,  325,  325,  325, 1018,  325,  325,  397,
+      398, 1039,  683,  341,  325,  325,  325,  246,  433, 1038,
+
+      429,  429,  429,  429,  292,  593,  593,  593,  593, 1037,
+      325,  435,  480,  480,  480,  436,  590,  444, 1036,  444,
+      444,  445,  445,  445,  445,  838,  839,  435,  446,  446,
+      446,  446,  590, 1035,  325,  325,  325,  325,  325,  325,
+      325,  325,  507,  325,  325,  325,  325,  325,  325,  325,
+      325,  325,  325,  325,  325,  325,  325,  325,  325,  325,
+      325,  325,  560,  560,  560,  560,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  325,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  560,  560,  560,  560,  325,
+
+      325,  325,  325,  325,  325,  325,  325, 1034,  325,  325,
+      325,  325,  325,  325,  325,  325, 1033,  325,  325,  607,
+      607,  607,  607,  341,  325,  325,  325,  539,  539,  539,
+      604,  447,  447,  447,  447,  448,  448,  448,  448,  984,
+      325,  985,  618,  417,  618,  417,  604,  619,  619,  619,
+      619,  476,  476,  476,  476,  479,  479,  479,  479,  561,
+      850,  851,  449, 1032,  325,  325,  345,  346,  479,  479,
+      479,  479,  245, 1017,  245,  557,  557,  557,  449,  246,
+      358,  246,  354,  354,  354,  354,  248,  245,  248,  245,
+      668,  245,  245,  360,  246,  246,  246,  361,  246,  246,
+
+      245,  248,  292,  248, 1016,  248,  248,  246,  245,  360,
+      345,  346,  325,  246,  248,  246,  670,  345,  346,  677,
+      292,  716,  248,  669,  345,  346,  570,  570,  570,  570,
+      921,  678,  245,  566,  566,  570,  570,  570,  679,  246,
+      345,  346,  680,  673,  689,  682,  248, 1021,  690,  570,
+      570,  570,  570,  570,  570,  344,  344,  345,  346,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+     1015,  344,  344,  681,  724, 1014,  674,  366,  344,  344,
+      344,  524,  524,  524,  524,  523,  538,  538,  538,  538,
+      691, 1013,  691,  315,  344,  692,  692,  692,  692,  538,
+
+      538,  538,  538,  711, 1012,  711,  345,  726,  712,  712,
+      712,  712,  556,  556,  556,  556,  345,  346,  344,  344,
+      344,  344,  345,  346,  344,  344,  573,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  574,  574,  574,  574,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  344,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
+      574,  574,  574,  344,  344,  344,  344,  345,  346,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+
+      696,  344,  344,  535,  535,  535,  535,  366,  344,  344,
+      344,  345,  346, 1011,  532,  553,  553,  553,  553,  556,
+      556,  556,  556,  986,  344,  700,  550,  440,  345,  346,
+      532,  345,  730,  697,  371,  372,  345,  346, 1010,  721,
+      727,  721,  550,  575,  722,  722,  722,  722,  344,  344,
+      371,  372,  565,  565,  565,  565,  345,  346,  701,  723,
+      611,  611,  611,  562,  384, 1009,  380,  380,  380,  380,
+      345,  346,  568,  568,  568,  568,  987,  386,  245,  562,
+      440,  387,  345,  346,  742,  246,  568,  568,  568,  568,
+      371,  372,  248,  386,  371,  372,  371,  748,  569,  569,
+
+      569,  739, 1020,  739, 1058,  745,  740,  740,  740,  740,
+      584,  584,  584,  584,  371,  372,  397,  398, 1008,  584,
+      584,  584,  345,  726,  371,  372,  727,  780,  345,  732,
+      580,  580,  733,  584,  584,  584,  584,  584,  584,  370,
+      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370, 1026,  370,  370,  371,  372,  728,
+      781,  392,  370,  370,  370,  734,  760,  345,  732,  371,
+      372, 1007,  741,  579,  579,  579,  579, 1006,  370,  371,
+      372,  397,  766, 1005,  576,  582,  582,  582,  582, 1004,
+      763,  610,  610,  610,  610,  582,  582,  582,  582,  391,
+
+      576, 1003,  370,  370,  370,  370,  371,  372,  370,  370,
+      587,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  370,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  588,  588,  370,  370,  370,
+      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370, 1002,  370,  370,  371,  372,  397,
+      398,  392,  370,  370,  370, 1027,  345,  346,  397,  398,
+
+      573,  397,  398,  583,  583,  583,  371,  744,  370,  784,
+      745, 1001,  371,  750,  594,  594,  751,  596,  596,  596,
+      596,  397,  762,  246,  245,  763, 1000,  589,  397,  398,
+      292,  246,  370,  370,  397,  398,  999,  759,  248,  757,
+      391,  757,  785,  746,  758,  758,  758,  758,  410,  752,
+      406,  406,  406,  406,  998,  397,  398,  844,  764,  997,
+      325,  412,  397,  768,  670,  413,  769,  397,  398,  716,
+      996,  593,  593,  593,  593,  397,  398,  412,  397,  398,
+      371,  372,  590,  596,  596,  596,  596,  610,  610,  610,
+      610,  597,  597,  597,  598,  598,  598,  598,  590,  770,
+
+      371,  744,  245,  598,  598,  598,  775,  440,  775,  246,
+      936,  776,  776,  776,  776, 1022,  248,  598,  598,  598,
+      598,  598,  598,  396,  396,  397,  398,  396,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  995,  396,
+      396,  607,  607,  607,  607,  418,  396,  396,  396,  371,
+      372,  837,  604,  619,  619,  619,  619,  619,  619,  619,
+      619,  340,  396,  692,  692,  692,  692,  994,  604,  692,
+      692,  692,  692,  712,  712,  712,  712,  712,  712,  712,
+      712,  371,  750,  397,  398,  993,  396,  396,  396,  396,
+      397,  398,  396,  396,  601,  396,  396,  396,  396,  396,
+
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      396,  396,  396,  396,  602,  602,  602,  602,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  396,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
+      602,  396,  396,  396,  396,  397,  398,  396,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  992,  396,
+      396,  988,  245,  245,  968,  418,  396,  396,  396,  246,
+      246,  245,  345,  346,  397,  762,  248,  248,  246,  246,
+      345,  346,  396,  345,  346,  248,  292,  967,  722,  722,
+
+      722,  722,  966,  345,  730,  965,  722,  722,  722,  722,
+      964,  603,  727,  834,  835,  963,  396,  396,  612,  612,
+      612,  612, 1022,  845, 1057,  836,  962,  612,  612,  612,
+      345,  346,  961,  371,  372,  960,  860,  587,  959,  371,
+      372,  612,  612,  612,  612,  612,  612,  422,  422,  958,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422, 1028,  422,  422,  345,  730,  397,  398,  441,
+      422,  422,  422,  861,  727,  371,  372,  345,  726,  371,
+      372,  727,  864,  397,  768,  957,  422,  397,  398,  838,
+      265,  740,  740,  740,  740,  740,  740,  740,  740,  371,
+
+      748,  345,  346,  758,  758,  758,  758,  417,  745,  956,
+      422,  422,  422,  422,  728,  422,  422,  422,  615,  422,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  422,  422,  616,  616,
+      616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
+      616,  422,  616,  616,  616,  616,  616,  616,  616,  616,
+      616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
+      616,  616,  616,  616,  616,  422,  422,  422,  422,  955,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422, 1029,  422,  422,  371,  372,  371,  748,  441,
+
+      422,  422,  422, 1023,  397,  398,  745,  397,  398,  345,
+      726,  345,  732,  727,  954,  733,  422,  345,  732,  371,
+      744,  733,  953,  745,  371,  744,  371,  750,  745, 1030,
+      751, 1062,  397,  398,  952,  617,  601,  417,  865,  951,
+      422,  422,  540,  540,  540,  540,  728,  868,  734,  340,
+      869,  540,  540,  540,  734,  246,  746,  776,  776,  776,
+      776,  746,  292,  752,  950,  540,  540,  540,  540,  540,
+      540,  297,  297,  949,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  948,  297,  297,  947,
+      397,  398,  922,  703,  297,  297,  297,  776,  776,  776,
+
+      776,  371,  750,  397,  766,  751,  758,  758,  758,  758,
+      297,  946,  763,  397,  766,  345,  346,  365,  929,  371,
+      372,  945,  763,  371,  372,  391,  931,  397,  398,  397,
+      398,  417,  933,  944,  297,  297,  297,  297,  752,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  315,  297,  297,  315,  315,  315,  315,  316,  297,
+      297,  297,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  315,  297,  315,  315,  315,  315,
+      315,  315,  704,  315,  315,  315,  705,  315,  315,  315,
+      315,  315,  315,  315,  315,  315,  315,  315,  315,  297,
+
+      297,  558,  558,  558,  558,  440,  935,  943,  245,  942,
+      558,  558,  558,  397,  762,  246,  941,  763,  940,  397,
+      762,  939,  248,  763,  558,  558,  558,  558,  558,  558,
+      325,  325,  325,  325,  325,  325,  938,  325,  325,  325,
+      325,  325,  325,  325,  325, 1030,  325,  325,  345,  346,
+      764,  246,  718,  325,  325,  325,  764,  919,  292,  245,
+      245, 1019,  937,  989,  397,  768,  246,  246,  769,  325,
+      371,  372,  246,  248,  248,  971,  990,  971,  971,  292,
+      850,  972,  991,  971,  920,  971,  971,  345,  346, 1024,
+      440, 1059,  915,  325,  325,  325,  325,  325,  325,  325,
+
+      325,  770,  325,  325,  325,  325,  325,  325,  325,  325,
+      340,  325,  325,  340,  340,  340,  340,  341,  325,  325,
+      325,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  325,  340,  340,  340,  340,  340,
+      340,  719,  340,  340,  340,  720,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  325,  325,
+      345,  346, 1018,  246, 1019,  914,  245,  913,  245,  912,
+      292,  397,  398,  246,  911,  246,  570,  570,  570,  570,
+      248,  910,  248,  245,  245,  570,  570,  570,  397,  768,
+      246,  246,  769,  973, 1031,  909,  908,  248,  248,  570,
+
+      570,  570,  570,  570,  570,  344,  344,  345,  346,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      969,  344,  344,  907,  245,  770,  916,  736,  344,  344,
+      344,  246,  345,  346, 1025,  371,  372, 1027,  248,  440,
+      906,  371,  372, 1026,  344, 1060,  397,  398, 1028,  905,
+     1061,  397,  398, 1029,  904,  903,  902,  901,  900,  899,
+      898,  894,  893,  918,  892,  891,  890,  889,  344,  344,
+      344,  344,  345,  346,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  365,  344,  344,  365,  365,
+      365,  365,  366,  344,  344,  344,  365,  365,  365,  365,
+
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  344,
+      365,  365,  365,  365,  365,  365,  737,  365,  365,  365,
+      738,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365,  344,  344,  371,  372,  888,  887,  886,
+      885,  884,  883,  882,  878,  877,  876,  875,  615,  780,
+      873,  584,  584,  584,  584,  872,  245,  871,  245,  867,
+      584,  584,  584,  246,  863,  246,  859,  507,  857,  856,
+      248,  853,  248,  852,  584,  584,  584,  584,  584,  584,
+      370,  370,  371,  372,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  970,  370,  370,  849,  543,
+
+      917,  696,  754,  370,  370,  370,  847,  846,  843,  842,
+      841,  840,  507,  676,  668,  833,  832,  831,  830,  370,
+      829,  828,  825,  824,  823,  822,  821,  820,  819,  818,
+      817,  816,  815,  814,  813,  812,  811,  810,  809,  808,
+      807,  806,  805,  370,  370,  370,  370,  371,  372,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
+      391,  370,  370,  391,  391,  391,  391,  392,  370,  370,
+      370,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  370,  391,  391,  391,  391,  391,
+      391,  755,  391,  391,  391,  756,  391,  391,  391,  391,
+
+      391,  391,  391,  391,  391,  391,  391,  391,  370,  370,
+      397,  398,  804,  803,  802,  801,  800,  799,  798,  797,
+      796,  795,  794,  793,  792,  791,  598,  598,  598,  598,
+      790,  780,  778,  777,  714,  598,  598,  598,  713,  708,
+      707,  706,  696,  694,  693,  688,  687,  686,  685,  598,
+      598,  598,  598,  598,  598,  396,  396,  397,  398,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      523,  396,  396,  650,  633,  629,  676,  772,  396,  396,
+      396,  671,  668,  666,  665,  664,  663,  662,  661,  660,
+      659,  658,  657,  656,  396,  655,  654,  653,  649,  648,
+
+      647,  646,  645,  644,  643,  642,  641,  640,  639,  638,
+      637,  636,  635,  632,  631,  628,  627,  626,  396,  396,
+      396,  396,  397,  398,  396,  396,  396,  396,  396,  396,
+      396,  396,  396,  396,  396,  417,  396,  396,  417,  417,
+      417,  417,  418,  396,  396,  396,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  396,
+      417,  417,  417,  417,  417,  417,  773,  417,  417,  417,
+      774,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  396,  396,  612,  612,  612,  612,  625,
+      624,  623,  622,  621,  612,  612,  612,  620,  606,  605,
+
+      425,  552,  551,  548,  547,  546,  534,  533,  612,  612,
+      612,  612,  612,  612,  422,  422,  300,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  422,  422,  422,  507,
+      422,  422,  528,  527,  523,  495,  787,  422,  422,  422,
+      493,  469,  466,  464,  519,  455,  507,  292,  506,  500,
+      499,  496,  484,  422,  483,  482,  475,  474,  473,  470,
+      460,  457,  456,  453,  452,  451,  183,  439,  425,  423,
+      339,  292,  319,  314,  300,  298,  279,  422,  422,  422,
+      422,  183,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  422,  440,  422,  422,  440,  440,  440,
+
+      440,  441,  422,  422,  422,  440,  440,  440,  440,  440,
+      440,  440,  440,  440,  440,  440,  440,  440,  422,  440,
+      440,  440,  440,  440,  440,  788,  440,  440,  440,  789,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
+      440,  440,  422,  422,  297,  297,  279,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  183,
+      297,  297,  190,  181, 1094, 1094,  703,  297,  297,  297,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  297, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  297,  297,  297,
+      297, 1094,  297,  297,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  315,  297,  297,  315,  315,  315,
+      315,  316,  297,  297,  297,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  315,  315,  315,  315,  297,  315,
+      315,  315,  315,  315,  315,  315,  315,  315,  848,  315,
       315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      300,  300,  166, 1061,  166,  166,  166,  166,  166,  166,
+      315,  315,  297,  297,  325,  325,  325,  325,  325,  325,
+     1094,  325,  325,  325,  325,  325,  325,  325,  325, 1094,
+      325,  325, 1094, 1094, 1094, 1094,  718,  325,  325,  325,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  325, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  325,  325,  325,
+      325,  325,  325,  325,  325, 1094,  325,  325,  325,  325,
+      325,  325,  325,  325,  340,  325,  325,  340,  340,  340,
+      340,  341,  325,  325,  325,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  325,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  858,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+
+      340,  340,  325,  325,  344,  344,  345,  346,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344, 1094,
+      344,  344, 1094, 1094, 1094, 1094,  736,  344,  344,  344,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  344, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  344,  344,  344,
+      344,  345,  346,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  365,  344,  344,  365,  365,  365,
+      365,  366,  344,  344,  344,  365,  365,  365,  365,  365,
 
-      166,  166,  166,  169, 1061, 1061,  169,  169,  177, 1061,
-      177,  177,  177,  177,  177,  177,  177,  177,  177,  231,
-      231,  231,  231,  231,  231,  231,  231,  261,  261,  261,
-      261,  264, 1061,  264, 1061,  264,  264,  264,  264,  268,
-      268,  268,  268,  268,  268,  268,  274, 1061,  274,  274,
-      274,  274,  274,  274,  274,  274,  274,  276, 1061,  276,
-      276,  276,  276,  276,  276,  276,  276,  276,  279, 1061,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  292,
-     1061,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      230,  230,  230,  230,  230,  230,  230,  300,  300, 1061,
-
-      300,  300,  300,  300,  300,  300,  300,  300,  301,  301,
-      301,  301,  301,  301,  301,  301,  301,  301,  301,  315,
-      315, 1061,  315,  315,  315,  315,  315,  315,  315,  315,
-      318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
-      318,  321,  321,  321,  321,  321,  321,  321,  321,  321,
-      321,  321,  325,  325,  325,  325,  325,  325,  325,  325,
-      325,  325,  325,  339,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  342,  342,  342,  342,  342,  342,
-      342,  342,  342,  342,  342,  345,  345,  345,  345,  345,
-      345,  345,  345,  345,  345,  345,  349,  349,  349,  349,
-
-      349,  349,  349,  349,  349,  349,  349,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  369,
-      369,  369,  369,  369,  369,  369,  369,  369,  369,  369,
-      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
-      373,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  390, 1061,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  392, 1061,  392,  392,  392,  392,  392,
-      392,  392,  392,  392,  395, 1061,  395,  395,  395,  395,
-      395,  395,  395,  395,  395,  408, 1061,  408,  408,  408,
-
-      408,  408,  408,  408,  408,  408,  169, 1061, 1061,  169,
-      169,  177, 1061,  177,  177,  177,  177,  177,  177,  177,
-      177,  177,  417, 1061, 1061,  417,  417,  417,  448, 1061,
-     1061,  448,  230,  230,  230,  230,  230,  230,  230,  231,
-      231,  231,  231,  231,  231,  231,  231,  475, 1061, 1061,
-     1061, 1061,  475,  475,  475,  475,  489,  489,  489,  489,
-      489,  489,  492,  492,  492,  492,  493, 1061,  493,  493,
-      493,  493,  268,  268,  268,  268,  268,  268,  268,  274,
-     1061,  274,  274,  274,  274,  274,  274,  274,  274,  274,
-      276, 1061,  276,  276,  276,  276,  276,  276,  276,  276,
-
-      276,  279, 1061,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  292, 1061,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  300,  300, 1061,  300,  300,  300,  300,
-      300,  300,  300,  300,  301,  301,  301,  301,  301,  301,
-      301,  301,  301,  301,  301,  315,  315, 1061,  315,  315,
-      315,  315,  315,  315,  315,  315,  318,  318,  318,  318,
-      318,  318,  318,  318,  318,  318,  318,  321,  321,  321,
-      321,  321,  321,  321,  321,  321,  321,  321,  325,  325,
-      325,  325,  325,  325,  325,  325,  325,  325,  325,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-
-      342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  345,  345,  345,  345,  345,  345,  345,  345,  345,
-      345,  345,  349,  349,  349,  349,  349,  349,  349,  349,
-      349,  349,  349,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  363,  363,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  369,  369,  369,  369,  369,
-      369,  369,  369,  369,  369,  369,  373,  373,  373,  373,
-      373,  373,  373,  373,  373,  373,  373,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387,  390, 1061,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  392,
-
-     1061,  392,  392,  392,  392,  392,  392,  392,  392,  392,
-      395, 1061,  395,  395,  395,  395,  395,  395,  395,  395,
-      395,  408, 1061,  408,  408,  408,  408,  408,  408,  408,
-      408,  408,  169, 1061, 1061,  169,  169,  417, 1061, 1061,
-      417,  417,  417,  448, 1061, 1061,  448,  634, 1061,  634,
-      634,  634,  634,  634,  634,  634,  634,  634,  637, 1061,
-      637,  637,  637,  637,  637,  637,  637,  637,  637,  639,
-     1061,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      642,  642,  642,  642,  642,  642,  642,  231,  231,  231,
-      231,  231,  231,  231,  231,  489,  489,  489,  489,  489,
-
-      489,  651, 1061,  651,  651,  651,  651,  493, 1061,  493,
-      493,  493,  493,  268,  268,  268,  268,  268,  268,  268,
-      274, 1061,  274,  274,  274,  274,  274,  274,  274,  274,
-      274,  662, 1061,  662,  662,  662,  662,  662,  662,  662,
-      662,  662,  665, 1061,  665,  665,  665,  665,  665,  665,
-      665,  665,  665,  666, 1061,  666,  666,  666,  666,  666,
-      666,  666,  666,  666,  669, 1061,  669,  669,  669,  669,
-      669,  669,  669,  669,  669,  230,  230,  230,  230,  230,
-      230,  230,  300,  300, 1061,  300,  300,  300,  300,  300,
-      300,  300,  300,  682,  682,  682,  682,  682,  682,  682,
-
-      682,  682,  682,  682,  684,  684, 1061,  684,  684,  684,
-      684,  684,  684,  684,  684,  318,  318,  318,  318,  318,
-      318,  318,  318,  318,  318,  318,  692,  692,  692,  692,
-      692,  692,  692,  692,  692,  692,  692,  696,  696,  696,
-      696,  696,  696,  696,  696,  696,  696,  696,  698,  698,
-      698,  698,  698,  698,  698,  698,  698,  698,  698,  702,
-      702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
-      342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
-      342,  710,  710,  710,  710,  710,  710,  710,  710,  710,
-      710,  710,  714,  714,  714,  714,  714,  714,  714,  714,
-
-      714,  714,  714,  716,  716,  716,  716,  716,  716,  716,
-      716,  716,  716,  716,  720,  720,  720,  720,  720,  720,
-      720,  720,  720,  720,  720,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  728,  728,  728,  728,
-      728,  728,  728,  728,  728,  728,  728,  732,  732,  732,
-      732,  732,  732,  732,  732,  732,  732,  732,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  738,
-      738,  738,  738,  738,  738,  738,  738,  738,  738,  738,
-      390, 1061,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  746, 1061,  746,  746,  746,  746,  746,  746,  746,
-
-      746,  746,  749, 1061,  749,  749,  749,  749,  749,  749,
-      749,  749,  749,  750, 1061,  750,  750,  750,  750,  750,
-      750,  750,  750,  750,  753, 1061,  753,  753,  753,  753,
-      753,  753,  753,  753,  753,  417, 1061, 1061,  417,  417,
-      417,  634, 1061,  634,  634,  634,  634,  634,  634,  634,
-      634,  634,  637, 1061,  637,  637,  637,  637,  637,  637,
-      637,  637,  637,  639, 1061,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  642,  642,  642,  642,  642,  642,
-      642,  231,  231,  231,  231,  231,  231,  231,  231,  651,
-     1061,  651,  651,  651,  651,  493, 1061,  493,  493,  493,
-
-      493,  268,  268,  268,  268,  268,  268,  268,  274, 1061,
-      274,  274,  274,  274,  274,  274,  274,  274,  274,  662,
-     1061,  662,  662,  662,  662,  662,  662,  662,  662,  662,
-      665, 1061,  665,  665,  665,  665,  665,  665,  665,  665,
-      665,  666, 1061,  666,  666,  666,  666,  666,  666,  666,
-      666,  666,  669, 1061,  669,  669,  669,  669,  669,  669,
-      669,  669,  669,  230,  230,  230,  230,  230,  230,  230,
-      300,  300, 1061,  300,  300,  300,  300,  300,  300,  300,
-      300,  682,  682,  682,  682,  682,  682,  682,  682,  682,
-      682,  682,  684,  684, 1061,  684,  684,  684,  684,  684,
-
-      684,  684,  684,  318,  318,  318,  318,  318,  318,  318,
-      318,  318,  318,  318,  692,  692,  692,  692,  692,  692,
-      692,  692,  692,  692,  692,  696,  696,  696,  696,  696,
-      696,  696,  696,  696,  696,  696,  698,  698,  698,  698,
-      698,  698,  698,  698,  698,  698,  698,  702,  702,  702,
-      702,  702,  702,  702,  702,  702,  702,  702,  342,  342,
-      342,  342,  342,  342,  342,  342,  342,  342,  342,  710,
-      710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714,  716,  716,  716,  716,  716,  716,  716,  716,  716,
-
-      716,  716,  720,  720,  720,  720,  720,  720,  720,  720,
-      720,  720,  720,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  728,  728,  728,  728,  728,  728,
-      728,  728,  728,  728,  728,  732,  732,  732,  732,  732,
-      732,  732,  732,  732,  732,  732,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  738,  738,  738,
-      738,  738,  738,  738,  738,  738,  738,  738,  390, 1061,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  746,
-     1061,  746,  746,  746,  746,  746,  746,  746,  746,  746,
-      749, 1061,  749,  749,  749,  749,  749,  749,  749,  749,
-
-      749,  750, 1061,  750,  750,  750,  750,  750,  750,  750,
-      750,  750,  753, 1061,  753,  753,  753,  753,  753,  753,
-      753,  753,  753,  417, 1061, 1061,  417,  417,  417,  231,
-      231,  231,  231,  231,  231,  231,  231,  493, 1061,  493,
-      493,  493,  493,  268,  268,  268,  268,  268,  268,  268,
-      274, 1061,  274,  274,  274,  274,  274,  274,  274,  274,
-      274,  230,  230,  230,  230,  230,  230,  230,  300,  300,
-     1061,  300,  300,  300,  300,  300,  300,  300,  300,   23,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061
+      365,  365,  365,  365,  365,  365,  365,  365,  344,  365,
+      365,  365,  365,  365,  365,  365,  365,  365,  862,  365,
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  344,  344,  370,  370,  371,  372,  370,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  370, 1094,
+      370,  370, 1094, 1094, 1094, 1094,  754,  370,  370,  370,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  370, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  370,  370,  370,
+
+      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  391,  370,  370,  391,  391,  391,
+      391,  392,  370,  370,  370,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  370,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  866,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  370,  370,  396,  396,  397,  398,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396, 1094,
+      396,  396, 1094, 1094, 1094, 1094,  772,  396,  396,  396,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094,  396, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  396,  396,  396,
+      396,  397,  398,  396,  396,  396,  396,  396,  396,  396,
+      396,  396,  396,  396,  417,  396,  396,  417,  417,  417,
+      417,  418,  396,  396,  396,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  396,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  870,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  396,  396,  422,  422, 1094,  422,  422,  422,
+
+      422,  422,  422,  422,  422,  422,  422,  422,  422, 1094,
+      422,  422, 1094, 1094, 1094, 1094,  787,  422,  422,  422,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094,  422, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094,  422,  422,  422,
+      422, 1094,  422,  422,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  422,  440,  422,  422,  440,  440,  440,
+      440,  441,  422,  422,  422,  440,  440,  440,  440,  440,
+      440,  440,  440,  440,  440,  440,  440,  440,  422,  440,
+
+      440,  440,  440,  440,  440,  440,  440,  440,  874,  440,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
+      440,  440,  422,  422,  297,  297, 1094,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  297,  315,
+      297,  297,  315,  315,  315,  315,  316,  297,  297,  297,
+      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  297,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  923,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  315,  315,  315,  297,  297,  325,
+      325,  325,  325,  325,  325, 1094,  325,  325,  325,  325,
+
+      325,  325,  325,  325,  340,  325,  325,  340,  340,  340,
+      340,  341,  325,  325,  325,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  325,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  927,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  325,  325,  182, 1094,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  185, 1094, 1094,  185,  185,
+      193, 1094,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  247,  247,  247,  247,  247,  247,  247,  247,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+
+      284,  284,  284,  284,  287, 1094,  287, 1094,  287,  287,
+      287,  287,  291,  291,  291,  291,  291,  291,  291,  297,
+     1094,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      299, 1094,  299,  299,  299,  299,  299,  299,  299,  299,
+      299,  302, 1094,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  315, 1094,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  246,  246,  246,  246,  246,  246,  246,
+      325,  325, 1094,  325,  325,  325,  325,  325,  325,  325,
+      325,  326,  326,  326,  326,  326,  326,  326,  326,  326,
+      326,  326,  340,  340, 1094,  340,  340,  340,  340,  340,
+
+      340,  340,  340,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  347,  347,  347,  347,  347,  347,
+      347,  347,  347,  347,  347,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  365,  365,  365,  365,
+      365,  365,  365,  365,  365,  365,  365,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  370,  370,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  377,
+      377,  377,  377,  377,  377,  377,  377,  377,  377,  377,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+
+      396,  396,  399,  399,  399,  399,  399,  399,  399,  399,
+      399,  399,  399,  403,  403,  403,  403,  403,  403,  403,
+      403,  403,  403,  403,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  422, 1094,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  424, 1094,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  427, 1094,  427,
+      427,  427,  427,  427,  427,  427,  427,  427,  440, 1094,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  185,
+     1094, 1094,  185,  185,  193, 1094,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  450, 1094, 1094,  450,  450,
+
+      450,  481, 1094, 1094,  481,  246,  246,  246,  246,  246,
+      246,  246,  247,  247,  247,  247,  247,  247,  247,  247,
+      508, 1094, 1094, 1094, 1094,  508,  508,  508,  508,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      522,  522,  522,  522,  522,  522,  525,  525,  525,  525,
+      526, 1094,  526,  526,  526,  526,  291,  291,  291,  291,
+      291,  291,  291,  297, 1094,  297,  297,  297,  297,  297,
+      297,  297,  297,  297,  299, 1094,  299,  299,  299,  299,
+      299,  299,  299,  299,  299,  302, 1094,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  315, 1094,  315,  315,
+
+      315,  315,  315,  315,  315,  315,  315,  325,  325, 1094,
+      325,  325,  325,  325,  325,  325,  325,  325,  326,  326,
+      326,  326,  326,  326,  326,  326,  326,  326,  326,  340,
+      340, 1094,  340,  340,  340,  340,  340,  340,  340,  340,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  347,  347,  347,  347,  347,  347,  347,  347,  347,
+      347,  347,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365,  365,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  373,  373,  373,  373,  373,
+
+      373,  373,  373,  373,  373,  373,  377,  377,  377,  377,
+      377,  377,  377,  377,  377,  377,  377,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  399,
+      399,  399,  399,  399,  399,  399,  399,  399,  399,  399,
+      403,  403,  403,  403,  403,  403,  403,  403,  403,  403,
+      403,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  422, 1094,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  424, 1094,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  427, 1094,  427,  427,  427,  427,
+
+      427,  427,  427,  427,  427,  440, 1094,  440,  440,  440,
+      440,  440,  440,  440,  440,  440,  185, 1094, 1094,  185,
+      185,  450, 1094, 1094,  450,  450,  450,  481, 1094, 1094,
+      481,  667, 1094,  667,  667,  667,  667,  667,  667,  667,
+      667,  667,  670, 1094,  670,  670,  670,  670,  670,  670,
+      670,  670,  670,  672, 1094,  672,  672,  672,  672,  672,
+      672,  672,  672,  672,  675,  675,  675,  675,  675,  675,
+      675,  247,  247,  247,  247,  247,  247,  247,  247,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      522,  522,  522,  522,  522,  522,  684, 1094,  684,  684,
+
+      684,  684,  526, 1094,  526,  526,  526,  526,  291,  291,
+      291,  291,  291,  291,  291,  297, 1094,  297,  297,  297,
+      297,  297,  297,  297,  297,  297,  695, 1094,  695,  695,
+      695,  695,  695,  695,  695,  695,  695,  698, 1094,  698,
+      698,  698,  698,  698,  698,  698,  698,  698,  699, 1094,
+      699,  699,  699,  699,  699,  699,  699,  699,  699,  702,
+     1094,  702,  702,  702,  702,  702,  702,  702,  702,  702,
+      246,  246,  246,  246,  246,  246,  246,  325,  325, 1094,
+      325,  325,  325,  325,  325,  325,  325,  325,  715,  715,
+      715,  715,  715,  715,  715,  715,  715,  715,  715,  717,
+
+      717, 1094,  717,  717,  717,  717,  717,  717,  717,  717,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  725,  725,  725,  725,  725,  725,  725,  725,  725,
+      725,  725,  729,  729,  729,  729,  729,  729,  729,  729,
+      729,  729,  729,  731,  731,  731,  731,  731,  731,  731,
+      731,  731,  731,  731,  735,  735,  735,  735,  735,  735,
+      735,  735,  735,  735,  735,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  370,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  743,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  749,  749,
+
+      749,  749,  749,  749,  749,  749,  749,  749,  749,  753,
+      753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      396,  761,  761,  761,  761,  761,  761,  761,  761,  761,
+      761,  761,  765,  765,  765,  765,  765,  765,  765,  765,
+      765,  765,  765,  767,  767,  767,  767,  767,  767,  767,
+      767,  767,  767,  767,  771,  771,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  422, 1094,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  779, 1094,  779,  779,
+      779,  779,  779,  779,  779,  779,  779,  782, 1094,  782,
+
+      782,  782,  782,  782,  782,  782,  782,  782,  783, 1094,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  786,
+     1094,  786,  786,  786,  786,  786,  786,  786,  786,  786,
+      450, 1094, 1094,  450,  450,  450,  667, 1094,  667,  667,
+      667,  667,  667,  667,  667,  667,  667,  670, 1094,  670,
+      670,  670,  670,  670,  670,  670,  670,  670,  672, 1094,
+      672,  672,  672,  672,  672,  672,  672,  672,  672,  675,
+      675,  675,  675,  675,  675,  675,  247,  247,  247,  247,
+      247,  247,  247,  247,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  684, 1094,  684,  684,  684,
+
+      684,  526, 1094,  526,  526,  526,  526,  291,  291,  291,
+      291,  291,  291,  291,  297, 1094,  297,  297,  297,  297,
+      297,  297,  297,  297,  297,  695, 1094,  695,  695,  695,
+      695,  695,  695,  695,  695,  695,  698, 1094,  698,  698,
+      698,  698,  698,  698,  698,  698,  698,  699, 1094,  699,
+      699,  699,  699,  699,  699,  699,  699,  699,  702, 1094,
+      702,  702,  702,  702,  702,  702,  702,  702,  702,  246,
+      246,  246,  246,  246,  246,  246,  325,  325, 1094,  325,
+      325,  325,  325,  325,  325,  325,  325,  715,  715,  715,
+      715,  715,  715,  715,  715,  715,  715,  715,  717,  717,
+
+     1094,  717,  717,  717,  717,  717,  717,  717,  717,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
+      725,  729,  729,  729,  729,  729,  729,  729,  729,  729,
+      729,  729,  731,  731,  731,  731,  731,  731,  731,  731,
+      731,  731,  731,  735,  735,  735,  735,  735,  735,  735,
+      735,  735,  735,  735,  370,  370,  370,  370,  370,  370,
+      370,  370,  370,  370,  370,  743,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  749,  749,  749,
+
+      749,  749,  749,  749,  749,  749,  749,  749,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  753,  753,  396,
+      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
+      761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
+      761,  765,  765,  765,  765,  765,  765,  765,  765,  765,
+      765,  765,  767,  767,  767,  767,  767,  767,  767,  767,
+      767,  767,  767,  771,  771,  771,  771,  771,  771,  771,
+      771,  771,  771,  771,  422, 1094,  422,  422,  422,  422,
+      422,  422,  422,  422,  422,  779, 1094,  779,  779,  779,
+      779,  779,  779,  779,  779,  779,  782, 1094,  782,  782,
+
+      782,  782,  782,  782,  782,  782,  782,  783, 1094,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  786, 1094,
+      786,  786,  786,  786,  786,  786,  786,  786,  786,  450,
+     1094, 1094,  450,  450,  450,  247,  247,  247,  247,  247,
+      247,  247,  247,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  526, 1094,  526,  526,  526,  526,
+      291,  291,  291,  291,  291,  291,  291,  297, 1094,  297,
+      297,  297,  297,  297,  297,  297,  297,  297,  246,  246,
+      246,  246,  246,  246,  246,  325,  325, 1094,  325,  325,
+      325,  325,  325,  325,  325,  325,   23, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094
     } ;
 
-static yyconst flex_int16_t yy_chk[7046] =
+static yyconst flex_int16_t yy_chk[7163] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1612,582 +1648,560 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    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,  220,    3,    3,    3,
-       29,   44,   44,    3,    3,  220,    3,    3,   13,    3,
-        3,    3,    6,   14,    6,    6,    3,    3,    3,    3,
-       13,   13,   13,   13,   35,   14,   14,   14,   14,   25,
-
-      196,   25,   25,   29,  196,    6,   35,   27,   27,   27,
-       27,    3,   33,    3,   25,   31,    3,   31,    3,   31,
-       31,    3,   27,    3,   45,   45,   33,    3,    3,    5,
+        1,    1,    1,    1,    1,    2,   33,    2,    2,   29,
+       35,    4,  236,    4,    4, 1088,    6,   40,    6,    6,
+       33,  236,   35,    8,   40,    8,    8,   55,    2,    3,
+       74,    3,    3,    3,    4,   44,   44,    3,    3,    6,
+
+        3,    3,   29,    3,    3,    3,    8,   45,   45,  108,
+        3,    3,    3,    3,   10,   13,   10,   10,   12, 1084,
+       12,   12,   16,   74,   16,   16,   55,   13,   13,   13,
+       13,   18,  108,   18,   18,    3,   20,    3,   20,   20,
+        3,   22,    3,   22,   22,    3,  212,    3,   46,   46,
+      212,    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,    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,    7,    7,    7,
 
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        7,    7,    7,    7,    7,    7,    7,    7,    7,    9,
-        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
+        7,    7,    7,    9,    9,    9,    9,    9,    9,    9,
         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+
         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
-
         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
-        9,    9,    9,    9,   11,   11,   11,   11,   11,   11,
+        9,    9,    9,    9,    9,    9,    9,    9,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   15,
-       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
 
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   14, 1083,   14,   14,   31,   14,   31,
+       82,   31,   31,   60, 1082,   60,   60,   82,  122,  122,
+       14,   14,   14,   14,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
-       15,   15,   15,   15,   17,   17,   17,   17,   17,   17,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   17,
+
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,   17,   17,   17,   17,   17,   17,   17,   17,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
+
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   21,   21,   21,   21,   21,   21,
+       19,   19,   19,   19,   19,   19,   19,   19,   19,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
-
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
-       21,   21,   21,   21,   21,   21,   21,   21,   21,   36,
-     1055,   36,   36,   36,   36,   40,   38,   36,   38,   38,
-       38,   38,   40,  102,   38,   39,   39,   39,   39,   46,
-       46,   39, 1051,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,  102,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   25,   91,   25,   25,   27,   27,
 
+       27,   27,   36,  209,   36,   36,   36,   36,  209,   25,
+       36,   47,   38,   27,   38,   38,   38,   38,   47, 1080,
+       38,   39,   39,   39,   39,   47,  233,   39,   91,   39,
        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       41,   47,   41,   41,   41,   41,  200,   51,   47,   49,
-     1050,   70,   41,   41,   51,   47,   49,   41,   55,   41,
-      200,   51,   41,   49,   56,   58,   41,   58,   58,   41,
-       42,   78,   42,   42,   42,   42,  676,   41,   78,   48,
-      197,   52,  197,   42,   70,   41,   48,   42,   52,   48,
-       48,   48,   48,   48,   49,   52,  193,   55,   51,   42,
-       43,  193,   43,  676,   56,   43, 1049,   50,   43,   43,
-       43,   43,   43,   43,   50,   53,   43,  822,   43,   43,
-       54,   50,   53,  218,   52,   57,   57,   54,  218,   53,
-
-       59,   59,   59,   59,   54,   60,   64,   60,   60,   60,
-       60, 1047,   80,   64,   57,   50,   87,  822,   62,   80,
-       64,   50,   53,  114,  114,  113,   62,   62,   62,   62,
-       62,   62,  116,  116,   54,   53,   61,   62,   67,   67,
-       67,   67,   80,   64,   69,   69,   69,   69,   71,   87,
-       71,  217,   71,   71,   61,   61,  105,   61,  113,   61,
-      105,   61,   61,   61,   61,  105,   61,  217,   61,   61,
-       61,   74, 1046,   73,   61,   73,   73,   73,   73,  126,
-      126,   74,   74,   74,   74,   76, 1044,   76,   76,   76,
-       76,   81,   81,   81,   81,  128,  128,  198,   76,  198,
-
-       79,  627,   76,   79,   79,   79,   79,   79,   74,   74,
-      627,  118,  118,   74,   76,   82,   82,   82,   82,   89,
-      118,   89,   89,   89,   89,   90,   90,   90,   90,  123,
-      123,   92,   99,   99,   99,   99,  117,  117,   92,  153,
-      117,   92,  130,  130, 1043,   92,   98,   98,   98,   98,
-      123,  130,  166,   90,  138,  138,   92,   90,   91, 1040,
-       91,   91,   91,   91,   92,  107,  107,  107,  107,  109,
-       91,   91,  153,  117,   98,   91,  109,   91,   98,  109,
-       91,  140,  140,  109,   91,  166,  106,   91,  106,  106,
-      106,  106,  195,  107,  109,   91,  195,  107,  135,  135,
-
-      195,  257,  109,   91,   94,   94,  257,   94,   94,   94,
-       94,   94,   94,   94,   94,   94,   94,   94,   94,  135,
-       94,   94,  215,  119,  119,  268,   94,   94,   94,   94,
-      215,  100,  268,  100,  100,  100,  100,  119,  276,  119,
-      119,  119,  119,   94,  100,  131,  131,  216,  100,  142,
-      142,  216,  129,  129,  190,  430,  129,  430,  142,  131,
-      100,  131,  131,  131,  131,  216,  190,   94,   94,   95,
-       95,  276,   95,   95,   95,   95,   95,   95,   95,   95,
-       95,   95,   95,   95, 1037,   95,   95,  120,  120,  129,
-      267,   95,   95,   95,   95,  147,  147,  163,  267,  163,
-
-      163,  132,  132,  120,  120,  120,  120,  155,   95,  155,
-      155,  155,  155,  427,   95,  122,  147,  132,  132,  132,
-      132,  299,  122,  206,  206,  122,  209,  209,  209,  122,
-      427,  120,   95,   95,  108,  120,  108,  108,  108,  108,
-      122,  156,  156,  156,  156,  132,  108,  108,  122,  132,
-      821,  108,  162,  108,  162,  162,  108,  299,  141,  141,
-      108,  291,  141,  108,  214,  214,  291,  162,  816,  156,
-      816,  108, 1036,  156,  170,  170,  170,  170,  821,  108,
-      111,  111,  111,  111,  111,  111, 1035,  111,  111,  111,
-      111,  111,  111,  111,  111,  141,  111,  111,  392,  134,
-
-      228,  228,  111,  111,  111,  111,  134,  468,  146,  134,
-     1033,  143,  143,  134,  247,  146,  247,  247,  146,  111,
-      830,  223,  146,  830,  134,  143,  223,  143,  143,  143,
-      143,  392,  134,  146,  171,  171,  171,  171,  896,  223,
-      468,  146,  896,  111,  111,  112,  112,  112,  112,  112,
-      112, 1032,  112,  112,  112,  112,  112,  112,  112,  112,
-      834,  112,  112,  834,  158,  254,  254,  112,  112,  112,
-      112,  158,  286,  286,  158,  144,  144, 1031,  158,  172,
-      172,  172,  172, 1030,  112,  173,  173,  173,  173,  158,
-      112,  144,  144,  144,  144,  309,  309,  158,  180,  180,
-
-      180,  180,  314,  184,  184,  184,  184,  314,  112,  112,
-      121,  121,  250,  301,  184,  838,  250,  301,  838,  144,
-      250,  892,  301,  144,  121, 1023,  121,  121,  121,  121,
-      184,  205,  205,  205,  205, 1018,  121,  121,  231,  318,
-      318,  121,  205,  121,  892,  231,  121,  320,  320,  207,
-      121,  207,  231,  121,  207,  207,  207,  207,  205,  323,
-      323,  121,  258,  258,  258,  258,  289,  289,  289,  121,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  842,  124,  124,  842,  235,
-      324,  324,  124,  124,  124,  124,  235,  181,  677,  181,
-
-      181,  181,  181,  235,  941,  233,  234,  335,  335,  124,
-      181, 1017,  233,  234,  181,  233,  233,  233,  233,  233,
-      234,  260,  260,  260,  260,  677,  181,  262,  262,  262,
-      262,  262, 1014,  124,  124,  125,  125,  125,  125,  125,
-      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
-      941,  125,  125, 1013,  236,  238,  234,  125,  125,  125,
-      125,  236,  238,  237,  240,  239,  271,  942,  236,  238,
-      237,  240,  239,  271,  125,  342,  342,  237,  240,  239,
-      125,  241,  272,  272,  272,  272,  344,  344,  241, 1011,
-      238,  273,  273,  273,  273,  241,  347,  347,  125,  125,
-
-      133,  133,  325,  325,  236,  237,  237,  348,  348,  271,
-     1010,  325,  240,  942,  133,  239,  133,  133,  133,  133,
-      312,  312,  312,  241,  359,  359,  133,  133,  326,  326,
-      826,  133,  826,  133,  366,  366,  133,  326,  321,  321,
-      133,  270,  321,  133,  270,  270,  270,  270,  270,  349,
-      349,  133,  280,  280,  280,  280,  368,  368,  349,  133,
-      136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      136,  136,  136,  136,  136,  321,  136,  136,  303,  303,
-      303,  303,  136,  136,  136,  136, 1009,  281,  407,  281,
-      281,  281,  281,  407,  282,  282,  282,  282,  897,  136,
-
-      281,  287,  897,  287,  281,  282,  287,  287,  287,  287,
-      371,  371,  310,  985,  310,  985,  281,  310,  310,  310,
-      310,  282, 1007,  136,  136,  137,  137,  137,  137,  137,
-      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
-      893,  137,  137,  372,  372,  330,  330,  137,  137,  137,
-      137,  285,  285,  285,  285,  298,  890,  298,  298,  298,
-      298,  890,  285,  893,  137,  331,  331,  898,  298,  516,
-      137,  898,  298,  322,  322,  354,  354,  322,  285,  333,
-      333,  383,  383, 1006,  298,  350,  350,  474,  137,  137,
-      145,  145,  330,  516,  350,  333,  333,  516,  304, 1005,
-
-      304,  304,  304,  304,  145, 1004,  145,  145,  145,  145,
-      322,  304,  331,  402,  402,  304,  145,  145,  327,  327,
-      474,  145,  354,  145,  444,  444,  145,  304,  336,  336,
-      145,  355,  355,  145,  327,  327,  327,  327,  338,  338,
-     1002,  145,  338,  891,  336,  336,  336,  338,  891,  145,
-      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
-      148,  148,  148,  148,  148, 1001,  148,  148,  305,  305,
-      305,  305,  148,  148,  148,  148,  453, 1000,  355,  305,
-      308,  308,  308,  308,  453,  334,  334,  453,  899,  148,
-      998,  308,  899,  345,  345,  305,  334,  345,  334,  373,
-
-      373,  334,  334,  334,  334,  346,  346,  308,  373,  346,
-      378,  378,  990,  148,  148,  149,  149,  149,  149,  149,
-      149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
-      345,  149,  149,  988,  329,  329,  656,  149,  149,  149,
-      149,  986,  346,  656,  369,  369,  332,  332,  369,  984,
-      329,  329,  329,  329,  149,  357,  357,  378,  360,  360,
-      149,  329,  332,  332,  332,  332,  503,  503,  379,  379,
-      656,  357,  357,  332,  360,  360,  360,  329,  149,  149,
-      157,  369,  157,  157,  157,  157,  900,  362,  362,  332,
-      900,  362,  157,  157,  351,  351,  362,  157,  411,  157,
-
-      411,  411,  157,  358,  358,  983,  157,  381,  381,  157,
-      351,  351,  351,  351,  358,  379,  358,  157,  982,  358,
-      358,  358,  358,  381,  381,  157,  160,  160,  981,  160,
-      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
-      160,  947,  160,  160,  353,  353,  374,  374,  160,  160,
-      160,  160,  405,  405,  405,  374,  521,  521,  375,  375,
-      353,  353,  353,  353,  901,  160,  356,  356,  901,  370,
-      370,  353,  979,  370,  375,  375,  375,  375,  396,  396,
-      396,  396,  356,  356,  356,  356,  947,  353,  508,  160,
-      160,  161,  161,  356,  161,  161,  161,  161,  161,  161,
-
-      161,  161,  161,  161,  161,  161,  370,  161,  161,  356,
-      377,  377,  978,  161,  161,  161,  161,  412,  412,  412,
-      412,  508,  384,  384,  575,  575,  377,  377,  377,  377,
-      161,  650,  650,  380,  380,  977,  161,  377,  384,  384,
-      384,  413,  413,  413,  413,  414,  414,  414,  414,  380,
-      380,  380,  380,  377,  161,  161,  290,  290,  290,  290,
-      380,  415,  415,  415,  415,  290,  290,  290,  386,  386,
-      530,  530,  386,  447,  447,  447,  380,  386,  976,  290,
-      290,  290,  290,  290,  290,  292,  292,  975,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-
-      510,  292,  292,  382,  382,  580,  974,  292,  292,  292,
-      292,  506,  506,  506,  382,  987,  382,  987,  530,  382,
-      382,  382,  382,  397,  292,  397,  397,  397,  397,  445,
-      445,  445,  445,  510,  673,  673,  397,  403,  580,  403,
-      397,  973,  403,  403,  403,  403,  694,  694,  292,  292,
-      293,  293,  397,  293,  293,  293,  293,  293,  293,  293,
-      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
-      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
-      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
-      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
-
-      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
-      293,  293,  293,  293,  293,  294,  294,  970,  294,  294,
-      294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
-      969,  294,  294,  398,  398,  398,  398,  294,  294,  294,
-      294,  524,  524,  524,  398,  401,  401,  401,  401,  968,
-      443,  443,  443,  443,  294,  967,  401,  416,  943,  416,
-      398,  443,  416,  416,  416,  416,  446,  446,  446,  446,
-      695,  695,  401,  294,  531,  531,  943,  443,  294,  294,
-      313,  313,  313,  313,  965,  476,  478,  479,  480,  313,
-      313,  313,  476,  478,  479,  480,  963,  544,  544,  476,
-
-      478,  479,  480,  313,  313,  313,  313,  313,  313,  315,
-      315,  315,  315,  315,  315,  962,  315,  315,  315,  315,
-      315,  315,  315,  315,  531,  315,  315,  961,  481,  479,
-      483,  315,  315,  315,  315,  481,  960,  483,  504,  504,
-      504,  504,  481,  959,  483,  544,  539,  539,  315,  491,
-      491,  491,  491,  491,  499,  539,  499,  700,  700,  499,
-      499,  499,  499,  505,  505,  505,  505,  522,  522,  522,
-      522,  483,  315,  315,  316,  316,  316,  316,  316,  316,
+       39,   39,  233,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   41,   52,   41,   41,
+       41,   41,  216,   51,   52,   49,  976,   53,   41,   41,
+       51,   52,   49,   41,   53,   41,  216,   51,   41,   49,
+       56,   53,   41,  112,  976,   41,   42,  112,   42,   42,
+
+       42,   42,  112,   41,   67,   48,   67,   67, 1079,   42,
+       52,   41,   48,   42,   53,   48,   48,   48,   48,   48,
+       49,   69,   69,  660,   51,   42,   43,   53,   43,  460,
+       56,   43,  660,   50,   43,   43,   43,   43,   43,   43,
+       50,   54,   43,   84,   43,   43,  460,   50,   54,   57,
+       84,   57,   57,   59,   59,   54,   66,   58,   58,   58,
+       58,  231,   69,   66,   57,   61,   61,   61,   61,  231,
+       66,   50,   58,   84, 1077,   59,   59,   50,   62,   64,
+       62,   62,   62,   62,  121,   54,  167,   64,   64,   64,
+       64,   64,   64,   66,   59,   63,  124,  124,   64,   68,
+
+       68,   68,   68,   71,   71,   71,   71,   73,   73,   73,
+       73,   87,   87,   63,   63, 1076,   63,  121,   63,  167,
+       63,   63,   63,   63,  213,   63,  213,   63,   63,   63,
+       75,  323,   75,   63,   75,   75,   77,   78,   77,   77,
+       77,   77,   85,   85,   85,   85,  980,   78,   78,   78,
+       78,   80,   87,   80,   80,   80,   80,   86,   86,   86,
+       86,  131,  131,  214,   80,  214,   83,  323,   80,   83,
+       83,   83,   83,   83,   78,   78,  136,  136, 1073,   78,
+       80,   93,  131,   93,   93,   93,   93,   94,   94,   94,
+       94,  980,  100,   96,  100,  100,  101,  101,  101,  101,
+
+       96,  234,  109,   96,  109,  109,  234,   96,  104,  104,
+      104,  104,  126,  126,  120,   94,  120,  120,   96,   94,
+       95,  126,   95,   95,   95,   95,   96,  105,  105,  105,
+      105,  116,   95,   95,  138,  138,  104,   95,  116,   95,
+      104,  116,   95,  150,  150,  116,   95,  810,  113,   95,
+      113,  113,  113,  113,  140,  140,  116,   95,  134,  134,
+      134,  134,  810,  140,  116,   95,   98,   98,  810,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98, 1070,   98,   98,  114,  114,  114,  114,   98,   98,
+       98,   98,  463,  106,  463,  106,  106,  106,  106,  135,
+
+      135,  135,  135,  152,  152,   98,  106,  127,  127,  849,
+      106,  849,  114,  125,  125,  239,  114,  125,  154,  154,
+      239,  127,  106,  127,  127,  127,  127,  154, 1069,   98,
+       98,   99,   99,  239,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,  863,   99,   99,  863,
+      125,  145,  145,   99,   99,   99,   99,  130,  148,  148,
+      148,  148,  128,  128,  130,  139,  139,  130,  279,  139,
+       99,  130,  145,  279,  182, 1068,   99,  206,  128,  128,
+      128,  128,  130,  149,  149,  149,  149,  153,  153,  206,
+      130,  153,  222,  222,   99,   99,  115, 1066,  115,  115,
+
+      115,  115,  139,  225,  225,  225,  128,  182,  115,  115,
+      128,  159,  159,  115,  176,  115,  176,  176,  115,  929,
+      141,  141,  115,  929,  153,  115,  162,  162,  162,  162,
+      230,  230,  159,  115,  141, 1065,  141,  141,  141,  141,
+      290,  115,  118,  118,  118,  118,  118,  118,  290,  118,
+      118,  118,  118,  118,  118,  118,  118, 1064,  118,  118,
+      163,  163,  163,  163,  118,  118,  118,  118,  155,  155,
+      169,  299,  169,  169,  169,  169,  244,  244,  142,  142,
+      867,  118,  155,  867,  155,  155,  155,  155,  177,  177,
+      177,  177,  263,  263,  142,  142,  142,  142,  178,  974,
+
+      178,  178,  265,  265,  299,  118,  118,  119,  119,  119,
+      119,  119,  119,  178,  119,  119,  119,  119,  119,  119,
+      119,  119,  142,  119,  119, 1063,  142,  424,  144,  119,
+      119,  119,  119,  232,  158,  144,  291,  232,  144,  156,
+      156,  158,  144,  291,  158,  974,  119,  179,  158,  179,
+      179,  232,  119,  144,  854,  156,  156,  156,  156,  158,
+      424,  144,  186,  186,  186,  186, 1056,  158,  266,  266,
+      119,  119,  129,  129,  170,  170,  170,  170,  187,  187,
+      187,  187,  854,  156,  267,  267,  129,  156,  129,  129,
+      129,  129,  188,  188,  188,  188,  501,  172,  129,  129,
+
+      276,  276,  170,  129,  172,  129,  170,  172,  129,  309,
+      309,  172,  129, 1051,  247,  129,  189,  189,  189,  189,
+     1050,  247,  172,  129,  196,  196,  196,  196,  247,  501,
+      172,  129,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  507,  132,  132,
+      269,  251,  269,  269,  132,  132,  132,  132,  251,  197,
+      925,  197,  197,  197,  197,  251,  200,  200,  200,  200,
+      211,  132,  197, 1047,  211,  253,  197,  200,  211,  223,
+      507,  223,  253,  925,  223,  223,  223,  223,  197,  253,
+      312,  312,  312,  200,  977,  132,  132,  133,  133,  133,
+
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  977,  133,  133,  268,  268,  253,  253,  133,
+      133,  133,  133,  221,  221,  221,  221,  272,  334,  334,
+      294,  272, 1046,  249,  221,  272,  133,  294,  344,  344,
+      249,  250,  133,  249,  249,  249,  249,  249,  250,  314,
+      221,  252,  254,  871,  314,  250,  871,  255,  252,  254,
+      133,  133,  143,  143,  255,  252,  254, 1044,  256,  339,
+      257,  255,  268,  294,  339,  256,  143,  257,  143,  143,
+      143,  143,  256,  280,  257,  280,  280,  254,  143,  143,
+      859,  250,  859,  143,  262,  143,  262,  262,  143,  346,
+
+      346,  252,  143,  349,  349,  143, 1043,  255,  318,  262,
+      318,  318,  257,  143,  350,  350,  256,  281,  281,  281,
+      281,  143,  146,  146,  146,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  146, 1042,  146,  146,
+      283,  283,  283,  283,  146,  146,  146,  146,  285,  285,
+      285,  285,  285,  293,  361,  361,  293,  293,  293,  293,
+      293,  146,  295,  295,  295,  295,  296,  296,  296,  296,
+      303,  303,  303,  303,  310,  324,  310,  324,  324,  310,
+      310,  310,  310,  370,  370,  146,  146,  147,  147,  147,
+      147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
+
+      147,  147, 1040,  147,  147,  328,  328,  328,  328,  147,
+      147,  147,  147, 1018,  304, 1018,  304,  304,  304,  304,
+      372,  372,  305,  305,  305,  305,  147,  304,  337,  337,
+      337,  304,  147,  305,  308,  308,  308,  308,  326,  351,
+      351,  439,  326,  304, 1039,  308,  439,  326,  351,  305,
+      147,  147,  157,  157,  343,  709,  343,  343,  352,  352,
+      322,  308,  322,  322,  322,  322,  157,  352,  157,  157,
+      157,  157, 1038,  322,  375,  375,  549,  322,  157,  157,
+      356,  356,  709,  157, 1037,  157,  357,  357,  157,  322,
+      930,  335,  157,  335,  930,  157,  335,  335,  335,  335,
+
+      549,  347,  347,  157,  549,  347,  368,  368,  368,  368,
+     1035,  157,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  356,  160,  160,
+      376,  376,  926,  357,  160,  160,  160,  160,  347,  329,
+      710,  329,  329,  329,  329,  923,  330,  330,  330,  330,
+      923,  160,  329,  353,  353,  926,  329,  330,  348,  348,
+      387,  387,  348,  369,  369,  369,  369,  710,  329,  353,
+      353,  353,  353,  330, 1034,  160,  160,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161, 1033,  161,  161,  348,  359,  359,  794,  161,
+
+      161,  161,  161,  333,  333,  333,  333,  355,  355,  377,
+      377,  794,  359,  359,  333,  931,  161,  794,  377,  931,
+      360,  360,  161,  355,  355,  355,  355,  541,  373,  373,
+      333,  360,  373,  360,  355, 1031,  360,  360,  360,  360,
+      161,  161,  171,  543,  171,  171,  171,  171,  374,  374,
+      355, 1023,  374,  924,  171,  171,  362,  362,  924,  171,
+      541,  171,  382,  382,  171,  373,  364,  364,  171,  981,
+      364,  171,  362,  362,  362,  364,  543,  378,  378,  171,
+      396,  396, 1021,  383,  383,  374,  378,  171,  174,  174,
+     1019,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174,  174,  174, 1017,  174,  174,  358,  358,  855,  382,
+      174,  174,  174,  174,  981,  385,  385,  613,  379,  379,
+      398,  398,  358,  358,  358,  358, 1016,  174,  381,  381,
+      383,  385,  385,  358,  379,  379,  379,  379,  855,  390,
+      390,  401,  401,  390,  381,  381,  381,  381,  390,  358,
+      613,  174,  174,  175,  175,  381,  175,  175,  175,  175,
+      175,  175,  175,  175,  175,  175,  175,  175, 1015,  175,
+      175,  381,  384,  384, 1014,  175,  175,  175,  175,  394,
+      394,  394,  394, 1012,  386,  386,  402,  402,  384,  384,
+      384,  384,  175,  388,  388,  386, 1011,  386,  175,  384,
+
+      386,  386,  386,  386,  395,  395,  395,  395,  932,  388,
+      388,  388,  932,  403,  403,  384,  175,  175,  313,  313,
+      313,  313,  403,  404,  404,  413,  413,  313,  313,  313,
+      399,  399,  404, 1010,  399,  615,  400,  400,  408,  408,
+      400,  313,  313,  313,  313,  313,  313,  315,  315, 1009,
+      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315, 1008,  315,  315,  405,  405,  399,  615,  315,
+      315,  315,  315,  400,  411,  411,  412,  412,  434,  434,
+     1007,  405,  405,  405,  405,  408,  315,  412, 1006,  412,
+      411,  411,  412,  412,  412,  412,  416,  416,  477,  477,
+
+      416,  420,  420,  420,  420,  416,  421,  421,  421,  421,
+      315,  315,  316,  316, 1003,  316,  316,  316,  316,  316,
       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-
       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  317,
-      317,  317,  317,  317,  317,  958,  317,  317,  317,  317,
-      317,  317,  317,  317,  957,  317,  317,  701,  701,  484,
-      498,  317,  317,  317,  317,  477,  484,  498,  956,  482,
-      902,  526,  477,  484,  902,  526,  482,  955,  317,  477,
-      526,  558,  558,  482,  533,  533,  582,  502,  502,  502,
-      502,  498,  578,  578,  578,  498,  484,  317,  502,  657,
-
-      533,  533,  317,  317,  328,  328,  657,  482,  538,  538,
-      477,  482,  538,  634,  502,  553,  553,  639,  328,  582,
-      328,  328,  328,  328,  553,  520,  520,  520,  520,  558,
-      662,  328,  517,  657,  517,  328,  520,  517,  517,  517,
-      517,  523,  523,  523,  523,  538,  634,  328,  337,  337,
-      639,  934,  520,  534,  534,  712,  712,  894,  545,  545,
-      535,  535,  894,  662,  337,  337,  337,  337,  945,  534,
-      534,  534,  534,  337,  337,  337,  535,  535,  535,  535,
-      666,  559,  559,  576,  576,  576,  576,  337,  337,  337,
-      337,  337,  337,  339,  339,  339,  339,  339,  339,  339,
-
-      339,  339,  339,  339,  339,  339,  339,  339,  545,  339,
-      339,  529,  529,  666,  945,  339,  339,  339,  339,  536,
-      536,  989,  529,  989,  529,  547,  547,  529,  529,  529,
-      529,  559,  339,  543,  543,  536,  536,  536,  561,  561,
-      895,  547,  547,  932,  543,  895,  543,  713,  713,  543,
-      543,  543,  543,  931,  561,  561,  339,  339,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  341,  341,  341,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  930,  341,
-      341,  532,  532,  567,  567,  341,  341,  341,  341,  718,
-      718,  929,  567,  546,  546,  719,  719,  532,  532,  532,
-      532,  927,  341,  540,  540,  730,  730,  540,  532,  546,
-      546,  546,  546,  926,  548,  548,  577,  577,  577,  577,
-      546,  341,  731,  731,  532,  746,  341,  341,  352,  352,
-      548,  548,  548,  548,  549,  549,  546,  552,  552,  903,
-
-      540,  552,  352,  903,  352,  352,  352,  352,  550,  550,
-      549,  549,  549,  549,  750,  352,  554,  554,  746,  352,
-      554,  944,  644,  645,  550,  550,  550,  557,  557,  644,
-      645,  352,  361,  361,  552,  925,  644,  645,  557,  944,
-      557,  736,  736,  557,  557,  557,  557,  750,  361,  361,
-      361,  361,  946,  554,  737,  737,  649,  361,  361,  361,
-      566,  566,  888,  649,  566,  585,  585,  585,  585,  888,
-      649,  361,  361,  361,  361,  361,  361,  363,  363,  363,
-      363,  363,  363,  363,  363,  363,  363,  363,  363,  363,
-      363,  363,  888,  363,  363,  560,  560,  566,  946,  363,
-
-      363,  363,  363,  564,  564,  649,  682,  562,  562,  924,
-      682,  560,  560,  560,  560,  682,  363,  563,  563,  564,
-      564,  564,  560,  562,  562,  562,  562,  586,  586,  586,
-      586,  827,  827,  563,  563,  563,  563,  997,  560,  997,
-      363,  363,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-
-      364,  364,  364,  364,  364,  364,  364,  365,  365,  365,
+      316,  316,  316,  316,  316,  316,  316,  317,  317, 1002,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  927,  317,  317,  407,  407,  927,  486,  317,
+
+      317,  317,  317,  409,  409,  928,  486,  414,  414,  486,
+      928,  407,  407,  407,  407, 1001,  317,  428,  428,  428,
+      428, 1000,  407,  414,  414,  414,  536,  536,  430,  430,
+      430,  430,  437,  437,  437,  317,  518,  518,  407,  430,
+      317,  317,  338,  338,  338,  338,  443,  998,  443,  443,
+      409,  338,  338,  338,  435,  430,  435,  554,  554,  435,
+      435,  435,  435,  608,  608,  338,  338,  338,  338,  338,
+      338,  340,  340,  340,  340,  340,  340,  996,  340,  340,
+      340,  340,  340,  340,  340,  340,  972,  340,  340,  410,
+      410,  995,  518,  340,  340,  340,  340,  972,  429,  994,
+
+      429,  429,  429,  429,  972,  410,  410,  410,  410,  993,
+      340,  429,  480,  480,  480,  429,  410,  444,  992,  444,
+      444,  445,  445,  445,  445,  683,  683,  429,  446,  446,
+      446,  446,  410,  991,  340,  340,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  342,  342,  342,  342,  342,  342,  990,  342,  342,
+      342,  342,  342,  342,  342,  342,  989,  342,  342,  433,
+      433,  433,  433,  342,  342,  342,  342,  539,  539,  539,
+      433,  447,  447,  447,  447,  448,  448,  448,  448,  933,
+      342,  934,  449,  933,  449,  934,  433,  449,  449,  449,
+      449,  476,  476,  476,  476,  478,  478,  478,  478,  342,
+      706,  706,  476,  988,  342,  342,  354,  354,  479,  479,
+      479,  479,  509,  967,  510,  557,  557,  557,  476,  509,
+      354,  510,  354,  354,  354,  354,  509,  511,  510,  512,
+      667,  513,  514,  354,  511,  844,  512,  354,  513,  514,
+
+      515,  511,  844,  512,  965,  513,  514,  515,  517,  354,
+      363,  363,  559,  531,  515,  517,  559,  566,  566,  510,
+      531,  559,  517,  667,  564,  564,  363,  363,  363,  363,
+      844,  512,  516,  566,  566,  363,  363,  363,  515,  516,
+      727,  727,  515,  672,  531,  517,  516,  975,  531,  363,
+      363,  363,  363,  363,  363,  365,  365,  365,  365,  365,
       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  923,  365,  365,  574,  574,  574,  574,  365,
-      365,  365,  365,  922,  696,  696,  574,  568,  568,  828,
-      828,  568,  571,  696,  571,  921,  365,  571,  571,  571,
-      571,  920,  574,  646,  647,  658,  658,  658,  658,  918,
-      646,  647,  648,  829,  829,  365,  917,  646,  647,  648,
-      365,  365,  376,  376,  568,  916,  648,  659,  659,  659,
-      659,  678,  678,  678,  678,  915,  376,  914,  376,  376,
-      376,  376,  831,  831,  646,  647,  690,  690,  913,  376,
-
-      761,  691,  691,  376,  688,  688,  648,  679,  679,  679,
-      679,  689,  689,  761,  912,  376,  385,  385,  911,  761,
-      688,  688,  688,  688,  832,  832,  910,  689,  689,  689,
-      689,  948,  385,  385,  385,  385,  703,  703,  909,  690,
-      703,  385,  385,  385,  691,  692,  692,  833,  833,  692,
-      693,  693,  708,  708,  693,  385,  385,  385,  385,  385,
-      385,  387,  387,  387,  387,  387,  387,  387,  387,  387,
-      387,  387,  387,  387,  387,  387,  948,  387,  387,  697,
-      697,  908,  692,  387,  387,  387,  387,  693,  697,  706,
-      706,  835,  835,  707,  707,  708,  907,  721,  721,  906,
-
-      387,  721,  724,  724,  905,  706,  706,  706,  706,  707,
-      707,  707,  707,  714,  714,  836,  836,  905,  724,  724,
-      724,  724,  714,  905,  387,  387,  388,  388,  388,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  389,  389,  389,  389,  389,  389,  389,  389,  389,
-
-      389,  389,  389,  389,  389,  389,  949,  389,  389,  709,
-      709,  715,  715,  389,  389,  389,  389,  904,  726,  726,
-      715,  727,  727,  698,  698,  699,  699,  698,  882,  699,
-      389,  710,  710,  711,  711,  710,  881,  711,  716,  716,
-      717,  717,  716,  879,  717,  878,  739,  739,  777,  389,
-      739,  949,  709,  876,  389,  389,  406,  406,  406,  406,
-      698,  726,  699,  777,  727,  406,  406,  406,  710,  777,
-      711,  742,  742,  742,  742,  716,  875,  717,  950,  406,
-      406,  406,  406,  406,  406,  408,  408,  874,  408,  408,
-      408,  408,  408,  408,  408,  408,  408,  408,  408,  408,
-
-      871,  408,  408,  725,  725,  732,  732,  408,  408,  408,
-      408,  811,  837,  837,  732,  870,  733,  733,  811,  725,
-      725,  725,  725,  950,  408,  733,  743,  743,  743,  743,
-      841,  841,  887,  885,  887,  887, 1026, 1026,  886,  938,
-      885,  938,  938, 1027, 1027,  886,  811,  885,  408,  408,
-      409,  409,  886,  409,  409,  409,  409,  409,  409,  409,
-      409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
-      409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
-      409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
-      409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
-
-      409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
-      409,  409,  409,  409,  409,  410,  410,  869,  410,  410,
-      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
-      951,  410,  410,  868,  812,  889,  867,  410,  410,  410,
-      410,  812,  889,  952,  992,  992,  992,  728,  728,  729,
-      729,  728,  953,  729,  410,  734,  734,  735,  735,  734,
-      801,  735,  803,  883,  865,  889,  954,  801,  864,  803,
-      883,  812,  863,  410,  801,  951,  803,  883,  410,  410,
-      507,  507,  507,  507,  728,  862,  729,  861,  952,  507,
-      507,  507,  734,  860,  735, 1028, 1028,  953,  858,  857,
-
-      883,  803,  801,  507,  507,  507,  507,  507,  507,  511,
-      511,  954,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  856,  511,  511,  939,  884,  855,
-      853,  511,  511,  511,  511,  884,  936,  852,  939,  937,
-      936,  940,  884,  937,  851,  939,  850,  936,  511,  849,
-      937,  848,  940,  847,  936,  846,  844,  937,  843,  940,
-      991,  991,  991,  818,  991,  884,  993,  993,  993,  809,
-      993,  806,  511,  511,  512,  512,  800,  512,  512,  512,
-      512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
-      512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
-
-      512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
-      512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
-      512,  512,  512,  512,  512,  512,  512,  512,  512,  512,
-      512,  512,  512,  512,  512,  512,  512,  512,  512,  525,
-      525,  525,  525,  799,  802,  804,  798,  797,  525,  525,
-      525,  802,  804,  994,  994,  994,  796,  795,  802,  804,
-      794,  793,  525,  525,  525,  525,  525,  525,  527,  527,
-      527,  527,  527,  527,  792,  527,  527,  527,  527,  527,
-      527,  527,  527,  791,  527,  527,  790,  789,  802,  786,
-      527,  527,  527,  527,  804,  995,  995,  995,  785,  995,
-
-      996,  996,  996,  783,  781,  779,  778,  527,  776,  775,
-      774,  773,  772,  771,  770,  769,  768,  766,  765,  764,
-      763,  760,  758,  757,  756,  754,  749,  745,  744,  741,
-      723,  527,  527,  528,  528,  528,  528,  528,  528,  705,
-      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
-      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
-      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
-      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
-      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
-      528,  528,  528,  528,  528,  528,  528,  528,  537,  537,
-
-      687,  685,  681,  680,  675,  674,  672,  670,  665,  661,
-      660,  655,  654,  653,  537,  537,  537,  537,  652,  643,
-      642,  637,  633,  537,  537,  537,  632,  631,  630,  629,
-      628,  626,  625,  624,  623,  622,  621,  537,  537,  537,
-      537,  537,  537,  541,  541,  541,  541,  541,  541,  541,
-      541,  541,  541,  541,  541,  541,  541,  541,  619,  541,
-      541,  618,  617,  616,  615,  541,  541,  541,  541,  614,
-      613,  612,  611,  609,  608,  607,  606,  605,  604,  603,
-      602,  601,  541,  600,  599,  597,  596,  595,  594,  593,
-      592,  591,  590,  589,  588,  581,  573,  572,  519,  518,
-
-      515,  514,  513,  509,  501,  500,  541,  541,  542,  542,
-      542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
-      542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
-      542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
-      542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
-      542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
-      542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
-      542,  542,  542,  551,  551,  497,  496,  495,  494,  489,
-      488,  487,  486,  485,  475,  472,  469,  467,  466,  551,
-      551,  551,  551,  465,  464,  463,  462,  461,  551,  551,
-
-      551,  460,  459,  458,  457,  456,  455,  454,  452,  451,
-      450,  449,  551,  551,  551,  551,  551,  551,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  441,  555,  555,  440,  439,  438,  437,
-      555,  555,  555,  555,  436,  435,  434,  433,  432,  431,
-      429,  428,  426,  425,  424,  423,  422,  555,  421,  420,
-      419,  418,  400,  399,  395,  307,  306,  297,  296,  295,
-      284,  283,  279,  269,  266,  265,  261,  256,  255,  253,
-      252,  555,  555,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  556,  565,  565,
-      251,  249,  248,  246,  232,  230,  229,  222,  221,  219,
-      213,  212,  211,  203,  565,  565,  565,  565,  202,  201,
-      199,  194,  192,  565,  565,  565,  191,  189,  188,  187,
-      177,  159,  154,  152,  110,  101,   96,  565,  565,  565,
-      565,  565,  565,  569,  569,  569,  569,  569,  569,  569,
-
-      569,  569,  569,  569,  569,  569,  569,  569,   93,  569,
-      569,   88,   86,   83,   77,  569,  569,  569,  569,   72,
-       65,   63,   34,   32,   28,   23,    8,    4,    2,    0,
-        0,    0,  569,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  569,  569,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
-      570,  570,  570,  579,  579,  579,  579,    0,    0,    0,
-        0,    0,  579,  579,  579,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  579,  579,  579,  579,
-      579,  579,  583,  583,    0,  583,  583,  583,  583,  583,
-      583,  583,  583,  583,  583,  583,  583,    0,  583,  583,
-        0,    0,    0,    0,  583,  583,  583,  583,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  583,    0,    0,    0,    0,    0,    0,    0,    0,
+      964,  365,  365,  516,  564,  963,  672,  365,  365,  365,
+      365,  524,  524,  524,  524,  524,  537,  537,  537,  537,
+      532,  962,  532,  975,  365,  532,  532,  532,  532,  538,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  583,  583,  584,  584,    0,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
-      584,  584,  669,  669,    0,  669,  669,  669,  669,  669,
-      669,  669,  669,  669,  669,  669,  669,    0,  669,  669,
+      538,  538,  538,  550,  960,  550,  728,  728,  550,  550,
+      550,  550,  555,  555,  555,  555,  733,  733,  365,  365,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  367,  367,  367,  367,  367,
+      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
 
-        0,    0,    0,    0,  669,  669,  669,  669,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  669,    0,    0,    0,    0,    0,    0,    0,    0,
+      695,  367,  367,  535,  535,  535,  535,  367,  367,  367,
+      367,  563,  563,  959,  535,  553,  553,  553,  553,  556,
+      556,  556,  556,  935,  367,  699,  553,  935,  562,  562,
+      535,  572,  572,  695,  578,  578,  565,  565,  958,  562,
+      572,  562,  553,  367,  562,  562,  562,  562,  367,  367,
+      380,  380,  565,  565,  565,  565,  567,  567,  699,  563,
+      611,  611,  611,  565,  380,  957,  380,  380,  380,  380,
+      568,  568,  567,  567,  567,  567,  936,  380,  677,  565,
+      936,  380,  569,  569,  578,  677,  568,  568,  568,  568,
+      576,  576,  677,  380,  389,  389,  586,  586,  569,  569,
+
+      569,  576, 1020,  576, 1020,  586,  576,  576,  576,  576,
+      389,  389,  389,  389,  580,  580,  592,  592,  956,  389,
+      389,  389,  571,  571,  577,  577,  571,  779,  573,  573,
+      580,  580,  573,  389,  389,  389,  389,  389,  389,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  982,  391,  391,  579,  579,  571,
+      779,  391,  391,  391,  391,  573,  592,  734,  734,  581,
+      581,  955,  577,  579,  579,  579,  579,  954,  391,  582,
+      582,  600,  600,  953,  579,  581,  581,  581,  581,  951,
+      600,  609,  609,  609,  609,  582,  582,  582,  582,  982,
+
+      579,  950,  391,  391,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  393,
+      393,  393,  393,  393,  393,  393,  393,  393,  393,  393,
+      393,  393,  393,  393,  949,  393,  393,  583,  583,  591,
+      591,  393,  393,  393,  393,  983,  736,  736,  594,  594,
+
+      736,  595,  595,  583,  583,  583,  585,  585,  393,  783,
+      585,  948,  587,  587,  594,  594,  587,  595,  595,  595,
+      595,  599,  599,  689,  678,  599,  947,  393,  590,  590,
+      689,  678,  393,  393,  406,  406,  946,  591,  678,  590,
+      983,  590,  783,  585,  590,  590,  590,  590,  406,  587,
+      406,  406,  406,  406,  945,  593,  593,  689,  599,  944,
+      715,  406,  601,  601,  715,  406,  601,  596,  596,  715,
+      943,  593,  593,  593,  593,  597,  597,  406,  415,  415,
+      745,  745,  593,  596,  596,  596,  596,  610,  610,  610,
+      610,  597,  597,  597,  415,  415,  415,  415,  593,  601,
+
+      746,  746,  682,  415,  415,  415,  604,  875,  604,  682,
+      875,  604,  604,  604,  604,  978,  682,  415,  415,  415,
+      415,  415,  415,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  942,  417,
+      417,  607,  607,  607,  607,  417,  417,  417,  417,  751,
+      751,  682,  607,  618,  618,  618,  618,  619,  619,  619,
+      619,  978,  417,  691,  691,  691,  691,  941,  607,  692,
+      692,  692,  692,  711,  711,  711,  711,  712,  712,  712,
+      712,  752,  752,  763,  763,  940,  417,  417,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419,  419,  419,  419,  419,  939,  419,
+      419,  937,  679,  680,  915,  419,  419,  419,  419,  679,
+      680,  681,  721,  721,  764,  764,  679,  680,  681,  690,
+      722,  722,  419,  723,  723,  681,  690,  914,  721,  721,
+
+      721,  721,  912,  729,  729,  911,  722,  722,  722,  722,
+      909,  419,  729,  679,  680,  908,  419,  419,  438,  438,
+      438,  438, 1022,  690, 1022,  681,  907,  438,  438,  438,
+      724,  724,  904,  754,  754,  903,  723,  754,  902,  741,
+      741,  438,  438,  438,  438,  438,  438,  440,  440,  901,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
+      440,  440,  984,  440,  440,  730,  730,  769,  769,  440,
+      440,  440,  440,  724,  730,  739,  739,  725,  725,  740,
+      740,  725,  741,  770,  770,  900,  440,  757,  757,  839,
+      839,  739,  739,  739,  739,  740,  740,  740,  740,  747,
+
+      747,  860,  860,  757,  757,  757,  757,  984,  747,  898,
+      440,  440,  441,  441,  725,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  442,  442,  897,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  985,  442,  442,  742,  742,  748,  748,  442,
+
+      442,  442,  442,  979,  759,  759,  748,  760,  760,  726,
+      726,  731,  731,  726,  896,  731,  442,  732,  732,  743,
+      743,  732,  895,  743,  744,  744,  749,  749,  744, 1030,
+      749, 1030,  772,  772,  894,  442,  772,  985,  742,  893,
+      442,  442,  540,  540,  540,  540,  726,  759,  731,  979,
+      760,  540,  540,  540,  732,  845,  743,  775,  775,  775,
+      775,  744,  845,  749,  891,  540,  540,  540,  540,  540,
+      540,  544,  544,  890,  544,  544,  544,  544,  544,  544,
+      544,  544,  544,  544,  544,  544,  889,  544,  544,  888,
+      758,  758,  845,  544,  544,  544,  544,  776,  776,  776,
+
+      776,  750,  750,  765,  765,  750,  758,  758,  758,  758,
+      544,  886,  765,  766,  766,  861,  861,  862,  862,  864,
+      864,  885,  766,  865,  865,  866,  866,  868,  868,  869,
+      869,  870,  870,  884,  544,  544,  545,  545,  750,  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,  558,  558,  558,  558,  874,  874,  883,  837,  882,
+      558,  558,  558,  761,  761,  837,  881,  761,  880,  762,
+      762,  879,  837,  762,  558,  558,  558,  558,  558,  558,
+      560,  560,  560,  560,  560,  560,  877,  560,  560,  560,
+      560,  560,  560,  560,  560,  986,  560,  560, 1059, 1059,
+      761,  921,  560,  560,  560,  560,  762,  837,  921,  918,
+      919,  973,  876,  938,  767,  767,  918,  919,  767,  560,
+     1060, 1060,  973,  918,  919,  920,  938,  920,  920,  973,
+      851,  921,  938,  971,  842,  971,  971, 1024, 1024, 1024,
+      986, 1024,  833,  560,  560,  561,  561,  561,  561,  561,
+
+      561,  767,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
+      570,  570,  969,  922,  970,  832,  969,  831,  970,  830,
+      922, 1061, 1061,  969,  829,  970,  570,  570,  570,  570,
+      969,  828,  970,  916,  834,  570,  570,  570,  768,  768,
+      916,  834,  768,  922,  987,  827,  826,  916,  834,  570,
+
+      570,  570,  570,  570,  570,  574,  574,  574,  574,  574,
+      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
+      916,  574,  574,  825,  836,  768,  834,  574,  574,  574,
+      574,  836, 1025, 1025, 1025, 1027, 1027, 1027,  836,  987,
+      824, 1026, 1026, 1026,  574, 1026, 1028, 1028, 1028,  823,
+     1028, 1029, 1029, 1029,  822,  819,  818,  816,  814,  812,
+      811,  809,  808,  836,  807,  806,  805,  804,  574,  574,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  584,  584,  803,  802,  801,
+      799,  798,  797,  796,  793,  791,  790,  789,  787,  782,
+      778,  584,  584,  584,  584,  777,  835,  774,  917,  756,
+      584,  584,  584,  835,  738,  917,  720,  718,  714,  713,
+      835,  708,  917,  707,  584,  584,  584,  584,  584,  584,
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  917,  588,  588,  705,  703,
+
+      835,  698,  588,  588,  588,  588,  694,  693,  688,  687,
+      686,  685,  676,  675,  670,  666,  665,  664,  663,  588,
+      662,  661,  659,  658,  657,  656,  655,  654,  652,  651,
+      650,  649,  648,  647,  646,  645,  644,  642,  641,  640,
+      639,  638,  637,  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,
+      598,  598,  636,  635,  634,  633,  632,  630,  629,  628,
+      627,  626,  625,  624,  623,  622,  598,  598,  598,  598,
+      621,  614,  606,  605,  552,  598,  598,  598,  551,  548,
+      547,  546,  542,  534,  533,  530,  529,  528,  527,  598,
+      598,  598,  598,  598,  598,  602,  602,  602,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
+      522,  602,  602,  521,  520,  519,  508,  602,  602,  602,
+      602,  505,  502,  500,  499,  498,  497,  496,  495,  494,
+      493,  492,  491,  490,  602,  489,  488,  487,  485,  484,
+
+      483,  482,  474,  473,  472,  471,  470,  469,  468,  467,
+      466,  465,  464,  462,  461,  459,  458,  457,  602,  602,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+      603,  603,  603,  603,  603,  612,  612,  612,  612,  456,
+      455,  454,  453,  452,  612,  612,  612,  451,  432,  431,
+
+      427,  332,  331,  321,  320,  319,  307,  306,  612,  612,
+      612,  612,  612,  612,  616,  616,  302,  616,  616,  616,
+      616,  616,  616,  616,  616,  616,  616,  616,  616,  292,
+      616,  616,  289,  288,  284,  278,  616,  616,  616,  616,
+      277,  275,  274,  273,  271,  270,  248,  246,  245,  238,
+      237,  235,  229,  616,  228,  227,  219,  218,  217,  215,
+      210,  208,  207,  205,  204,  203,  193,  173,  168,  166,
+      117,  107,  102,   97,   92,   90,   81,  616,  616,  617,
+      617,   76,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  702,  702,   65,  702,  702,  702,
+      702,  702,  702,  702,  702,  702,  702,  702,  702,   34,
+      702,  702,   32,   28,   23,    0,  702,  702,  702,  702,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  669,  669,  671,  671,    0,
-      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
-      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
-      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
-      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
-      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
-
-      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
-      671,  671,  684,  684,  684,  684,  684,  684,    0,  684,
-      684,  684,  684,  684,  684,  684,  684,    0,  684,  684,
-        0,    0,    0,    0,  684,  684,  684,  684,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  684,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  684,  684,  686,  686,  686,
-      686,  686,  686,    0,  686,  686,  686,  686,  686,  686,
-      686,  686,  686,  686,  686,  686,  686,  686,  686,  686,
-
-      686,  686,  686,  686,  686,  686,  686,  686,  686,  686,
-      686,  686,  686,  686,  686,  686,  686,  686,  686,  686,
-      686,  686,  686,  686,  686,  686,  686,  686,  686,  686,
-      686,  686,  686,  686,  686,  686,  686,  686,  686,  686,
-      686,  686,  702,  702,  702,  702,  702,  702,  702,  702,
-      702,  702,  702,  702,  702,  702,  702,    0,  702,  702,
-        0,    0,    0,    0,  702,  702,  702,  702,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  702,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  702,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,  702,  702,  704,  704,  704,
+        0,    0,    0,    0,    0,    0,    0,  702,  702,  704,
+      704,    0,  704,  704,  704,  704,  704,  704,  704,  704,
       704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
       704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
       704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
       704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
       704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  720,  720,  720,  720,  720,  720,  720,  720,
-      720,  720,  720,  720,  720,  720,  720,    0,  720,  720,
-        0,    0,    0,    0,  720,  720,  720,  720,    0,    0,
+      704,  704,  704,  704,  717,  717,  717,  717,  717,  717,
+        0,  717,  717,  717,  717,  717,  717,  717,  717,    0,
+      717,  717,    0,    0,    0,    0,  717,  717,  717,  717,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  720,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  717,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  720,  720,  722,  722,  722,
-      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
-      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
-      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
-      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
-      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
-      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
-
-      722,  722,  738,  738,  738,  738,  738,  738,  738,  738,
-      738,  738,  738,  738,  738,  738,  738,    0,  738,  738,
-        0,    0,    0,    0,  738,  738,  738,  738,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  717,  717,  719,
+      719,  719,  719,  719,  719,    0,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+
+      719,  719,  719,  719,  735,  735,  735,  735,  735,  735,
+      735,  735,  735,  735,  735,  735,  735,  735,  735,    0,
+      735,  735,    0,    0,    0,    0,  735,  735,  735,  735,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  738,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  735,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  738,  738,  740,  740,  740,
-      740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
-      740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
-      740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
-
-      740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
-      740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
-      740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
-      740,  740,  753,  753,    0,  753,  753,  753,  753,  753,
-      753,  753,  753,  753,  753,  753,  753,    0,  753,  753,
-        0,    0,    0,    0,  753,  753,  753,  753,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  735,  735,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
+      737,  737,  737,  737,  753,  753,  753,  753,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  753,  753,    0,
+      753,  753,    0,    0,    0,    0,  753,  753,  753,  753,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  753,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  753,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  753,  753,  755,  755,    0,
+        0,    0,    0,    0,    0,    0,    0,  753,  753,  755,
 
       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
@@ -2195,194 +2209,241 @@
       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  815,  815,    0,  815,  815,  815,  815,  815,
-      815,  815,  815,  815,  815,  815,  815,  815,  815,  815,
-      815,  815,  815,  815,  815,  815,  815,  815,  815,  815,
-      815,  815,  815,  815,  815,  815,  815,  815,  815,  815,
-
-      815,  815,  815,  815,  815,  815,  815,  815,  815,  815,
-      815,  815,  815,  815,  815,  815,  815,  815,  815,  815,
-      815,  815,  815,  815,  815,  815,  815,  825,  825,  825,
-      825,  825,  825,    0,  825,  825,  825,  825,  825,  825,
-      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
-      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
-      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
-      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
-      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
-      825,  825, 1062,    0, 1062, 1062, 1062, 1062, 1062, 1062,
-
-     1062, 1062, 1062, 1063,    0,    0, 1063, 1063, 1064,    0,
-     1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1065,
-     1065, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 1066, 1066,
-     1066, 1067,    0, 1067,    0, 1067, 1067, 1067, 1067, 1068,
-     1068, 1068, 1068, 1068, 1068, 1068, 1069,    0, 1069, 1069,
-     1069, 1069, 1069, 1069, 1069, 1069, 1069, 1070,    0, 1070,
-     1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071,    0,
-     1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1072,
-        0, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072,
-     1073, 1073, 1073, 1073, 1073, 1073, 1073, 1074, 1074,    0,
-
-     1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1075, 1075,
-     1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1076,
-     1076,    0, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
-     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
-     1077, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
-     1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
-     1080, 1080, 1080, 1080, 1081, 1081, 1081, 1081, 1081, 1081,
-     1081, 1081, 1081, 1081, 1081, 1082, 1082, 1082, 1082, 1082,
-     1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083,
-
-     1083, 1083, 1083, 1083, 1083, 1083, 1083, 1084, 1084, 1084,
-     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1085, 1085,
-     1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1086,
-     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
-     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
-     1087, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088,
-     1088, 1088, 1089,    0, 1089, 1089, 1089, 1089, 1089, 1089,
-     1089, 1089, 1089, 1090,    0, 1090, 1090, 1090, 1090, 1090,
-     1090, 1090, 1090, 1090, 1091,    0, 1091, 1091, 1091, 1091,
-     1091, 1091, 1091, 1091, 1091, 1092,    0, 1092, 1092, 1092,
-
-     1092, 1092, 1092, 1092, 1092, 1092, 1093,    0,    0, 1093,
-     1093, 1094,    0, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1095,    0,    0, 1095, 1095, 1095, 1096,    0,
-        0, 1096, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098,
-     1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,    0,    0,
-        0,    0, 1099, 1099, 1099, 1099, 1100, 1100, 1100, 1100,
-     1100, 1100, 1101, 1101, 1101, 1101, 1102,    0, 1102, 1102,
-     1102, 1102, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1104,
-        0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
-     1105,    0, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
-
-     1105, 1106,    0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
-     1106, 1106, 1107,    0, 1107, 1107, 1107, 1107, 1107, 1107,
-     1107, 1107, 1107, 1108, 1108,    0, 1108, 1108, 1108, 1108,
-     1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109, 1109,
-     1109, 1109, 1109, 1109, 1109, 1110, 1110,    0, 1110, 1110,
-     1110, 1110, 1110, 1110, 1110, 1110, 1111, 1111, 1111, 1111,
-     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1112,
-     1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113, 1113,
-     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1114,
-     1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
-
-     1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
-     1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
-     1116, 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
-     1117, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
-     1118, 1118, 1118, 1118, 1119, 1119, 1119, 1119, 1119, 1119,
-     1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, 1120,
-     1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121, 1121,
-     1121, 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122,
-     1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123,    0,
-     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124,
-
-        0, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
-     1125,    0, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
-     1125, 1126,    0, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
-     1126, 1126, 1127,    0,    0, 1127, 1127, 1128,    0,    0,
-     1128, 1128, 1128, 1129,    0,    0, 1129, 1130,    0, 1130,
-     1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1131,    0,
-     1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1132,
-        0, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
-     1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134,
-     1134, 1134, 1134, 1134, 1134, 1135, 1135, 1135, 1135, 1135,
-
-     1135, 1136,    0, 1136, 1136, 1136, 1136, 1137,    0, 1137,
-     1137, 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
-     1139,    0, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
-     1139, 1140,    0, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
-     1140, 1140, 1141,    0, 1141, 1141, 1141, 1141, 1141, 1141,
-     1141, 1141, 1141, 1142,    0, 1142, 1142, 1142, 1142, 1142,
-     1142, 1142, 1142, 1142, 1143,    0, 1143, 1143, 1143, 1143,
-     1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144,
-     1144, 1144, 1145, 1145,    0, 1145, 1145, 1145, 1145, 1145,
-     1145, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
-
-     1146, 1146, 1146, 1146, 1147, 1147,    0, 1147, 1147, 1147,
-     1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1148, 1148,
-     1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 1149, 1149,
-     1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, 1150, 1150,
-     1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1151, 1151,
-     1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152,
-     1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152,
-     1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
-     1153, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
-     1154, 1154, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
-
-     1155, 1155, 1155, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
-     1156, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1157, 1157,
-     1157, 1157, 1157, 1157, 1157, 1158, 1158, 1158, 1158, 1158,
-     1158, 1158, 1158, 1158, 1158, 1158, 1159, 1159, 1159, 1159,
-     1159, 1159, 1159, 1159, 1159, 1159, 1159, 1160, 1160, 1160,
-     1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1161, 1161,
-     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1162,
-     1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
-     1163,    0, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
-     1163, 1164,    0, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
-
-     1164, 1164, 1165,    0, 1165, 1165, 1165, 1165, 1165, 1165,
-     1165, 1165, 1165, 1166,    0, 1166, 1166, 1166, 1166, 1166,
-     1166, 1166, 1166, 1166, 1167,    0, 1167, 1167, 1167, 1167,
-     1167, 1167, 1167, 1167, 1167, 1168,    0,    0, 1168, 1168,
-     1168, 1169,    0, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
-     1169, 1169, 1170,    0, 1170, 1170, 1170, 1170, 1170, 1170,
-     1170, 1170, 1170, 1171,    0, 1171, 1171, 1171, 1171, 1171,
-     1171, 1171, 1171, 1171, 1172, 1172, 1172, 1172, 1172, 1172,
-     1172, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1174,
-        0, 1174, 1174, 1174, 1174, 1175,    0, 1175, 1175, 1175,
-
-     1175, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177,    0,
-     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178,
-        0, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
-     1179,    0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
-     1179, 1180,    0, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
-     1180, 1180, 1181,    0, 1181, 1181, 1181, 1181, 1181, 1181,
-     1181, 1181, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
-     1183, 1183,    0, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
-     1183, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
-     1184, 1184, 1185, 1185,    0, 1185, 1185, 1185, 1185, 1185,
-
-     1185, 1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
-     1186, 1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187,
-     1187, 1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188,
-     1188, 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189,
-     1189, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190,
-     1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191,
-     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192,
-     1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
-     1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
-     1193, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+      755,  755,  755,  755,  771,  771,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  771,  771,  771,  771,    0,
+      771,  771,    0,    0,    0,    0,  771,  771,  771,  771,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,  771,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  771,  771,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  786,  786,    0,  786,  786,  786,
+
+      786,  786,  786,  786,  786,  786,  786,  786,  786,    0,
+      786,  786,    0,    0,    0,    0,  786,  786,  786,  786,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  786,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  786,  786,  788,
+      788,    0,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
+      788,  788,  788,  788,  848,  848,    0,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  858,
+      858,  858,  858,  858,  858,    0,  858,  858,  858,  858,
+
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
+      858,  858,  858,  858, 1095,    0, 1095, 1095, 1095, 1095,
+     1095, 1095, 1095, 1095, 1095, 1096,    0,    0, 1096, 1096,
+     1097,    0, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
+     1097, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
+     1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+
+     1100, 1100, 1100, 1100, 1101,    0, 1101,    0, 1101, 1101,
+     1101, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
+        0, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+     1104,    0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
+     1104, 1105,    0, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+     1105, 1105, 1106,    0, 1106, 1106, 1106, 1106, 1106, 1106,
+     1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+     1108, 1108,    0, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
+     1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+     1109, 1109, 1110, 1110,    0, 1110, 1110, 1110, 1110, 1110,
+
+     1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
+     1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112,
+     1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113,
+     1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114,
+     1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 1115, 1115,
+     1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116,
+     1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117,
+     1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
+     1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+     1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
+
+     1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
+     1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
+     1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, 1122, 1122,
+     1122, 1122, 1122, 1122, 1122, 1123,    0, 1123, 1123, 1123,
+     1123, 1123, 1123, 1123, 1123, 1123, 1124,    0, 1124, 1124,
+     1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125,    0, 1125,
+     1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126,    0,
+     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,
+        0,    0, 1127, 1127, 1128,    0, 1128, 1128, 1128, 1128,
+     1128, 1128, 1128, 1128, 1128, 1129,    0,    0, 1129, 1129,
+
+     1129, 1130,    0,    0, 1130, 1131, 1131, 1131, 1131, 1131,
+     1131, 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+     1133,    0,    0,    0,    0, 1133, 1133, 1133, 1133, 1134,
+     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
+     1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136, 1136, 1136,
+     1137,    0, 1137, 1137, 1137, 1137, 1138, 1138, 1138, 1138,
+     1138, 1138, 1138, 1139,    0, 1139, 1139, 1139, 1139, 1139,
+     1139, 1139, 1139, 1139, 1140,    0, 1140, 1140, 1140, 1140,
+     1140, 1140, 1140, 1140, 1140, 1141,    0, 1141, 1141, 1141,
+     1141, 1141, 1141, 1141, 1141, 1141, 1142,    0, 1142, 1142,
+
+     1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143,    0,
+     1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1144,
+     1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145,
+     1145,    0, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
+     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+     1146, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
+     1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+     1148, 1148, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1149, 1149, 1149, 1150, 1150, 1150, 1150, 1150, 1150,
+     1150, 1150, 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1151,
+
+     1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152,
+     1152, 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153,
+     1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154,
+     1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155,
+     1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
+     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+     1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+     1157, 1157, 1158,    0, 1158, 1158, 1158, 1158, 1158, 1158,
+     1158, 1158, 1158, 1159,    0, 1159, 1159, 1159, 1159, 1159,
+     1159, 1159, 1159, 1159, 1160,    0, 1160, 1160, 1160, 1160,
+
+     1160, 1160, 1160, 1160, 1160, 1161,    0, 1161, 1161, 1161,
+     1161, 1161, 1161, 1161, 1161, 1161, 1162,    0,    0, 1162,
+     1162, 1163,    0,    0, 1163, 1163, 1163, 1164,    0,    0,
+     1164, 1165,    0, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
+     1165, 1165, 1166,    0, 1166, 1166, 1166, 1166, 1166, 1166,
+     1166, 1166, 1166, 1167,    0, 1167, 1167, 1167, 1167, 1167,
+     1167, 1167, 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
+     1168, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,
+     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
+     1171, 1171, 1171, 1171, 1171, 1171, 1172,    0, 1172, 1172,
+
+     1172, 1172, 1173,    0, 1173, 1173, 1173, 1173, 1174, 1174,
+     1174, 1174, 1174, 1174, 1174, 1175,    0, 1175, 1175, 1175,
+     1175, 1175, 1175, 1175, 1175, 1175, 1176,    0, 1176, 1176,
+     1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177,    0, 1177,
+     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178,    0,
+     1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
+        0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+     1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1181,    0,
+     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1182,
+     1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183,
+
+     1183,    0, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
+     1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
+     1184, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+     1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
+     1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+     1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1188,
+     1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, 1189,
+     1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190,
+     1190, 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191, 1191,
+     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1192,
 
-     1194, 1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
-     1195, 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
-     1196, 1196, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197,
-     1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1198,
-     1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1199, 1199,
-     1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200,
-     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,    0,
-     1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202,
-        0, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
-     1203,    0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
-
-     1203, 1204,    0, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
-     1204, 1204, 1205,    0, 1205, 1205, 1205, 1205, 1205, 1205,
-     1205, 1205, 1205, 1206,    0,    0, 1206, 1206, 1206, 1207,
-     1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208,    0, 1208,
-     1208, 1208, 1208, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
-     1210,    0, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
-     1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1212, 1212,
-        0, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-     1061, 1061, 1061, 1061, 1061
+     1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193,
+     1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+     1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+     1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+     1196, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
+     1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1198, 1198,
+     1198, 1198, 1198, 1198, 1198, 1199,    0, 1199, 1199, 1199,
+     1199, 1199, 1199, 1199, 1199, 1199, 1200,    0, 1200, 1200,
+     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,    0, 1201,
+
+     1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202,    0,
+     1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1203,
+        0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
+     1204,    0,    0, 1204, 1204, 1204, 1205,    0, 1205, 1205,
+     1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206,    0, 1206,
+     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207,    0,
+     1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208,
+     1208, 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209,
+     1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210,
+     1210, 1210, 1210, 1210, 1210, 1211,    0, 1211, 1211, 1211,
+
+     1211, 1212,    0, 1212, 1212, 1212, 1212, 1213, 1213, 1213,
+     1213, 1213, 1213, 1213, 1214,    0, 1214, 1214, 1214, 1214,
+     1214, 1214, 1214, 1214, 1214, 1215,    0, 1215, 1215, 1215,
+     1215, 1215, 1215, 1215, 1215, 1215, 1216,    0, 1216, 1216,
+     1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217,    0, 1217,
+     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218,    0,
+     1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219,
+     1219, 1219, 1219, 1219, 1219, 1219, 1220, 1220,    0, 1220,
+     1220, 1220, 1220, 1220, 1220, 1220, 1220, 1221, 1221, 1221,
+     1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1222, 1222,
+
+        0, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1223,
+     1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+     1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
+     1224, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
+     1225, 1225, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+     1226, 1226, 1226, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
+     1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, 1228,
+     1228, 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229,
+     1229, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230,
+     1230, 1230, 1230, 1230, 1230, 1230, 1230, 1231, 1231, 1231,
+
+     1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1232, 1232,
+     1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1233,
+     1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
+     1235, 1235, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
+     1237, 1237, 1237, 1237, 1238,    0, 1238, 1238, 1238, 1238,
+     1238, 1238, 1238, 1238, 1238, 1239,    0, 1239, 1239, 1239,
+     1239, 1239, 1239, 1239, 1239, 1239, 1240,    0, 1240, 1240,
+
+     1240, 1240, 1240, 1240, 1240, 1240, 1240, 1241,    0, 1241,
+     1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242,    0,
+     1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243,
+        0,    0, 1243, 1243, 1243, 1244, 1244, 1244, 1244, 1244,
+     1244, 1244, 1244, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
+     1245, 1245, 1245, 1245, 1246,    0, 1246, 1246, 1246, 1246,
+     1247, 1247, 1247, 1247, 1247, 1247, 1247, 1248,    0, 1248,
+     1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1249, 1249,
+     1249, 1249, 1249, 1249, 1249, 1250, 1250,    0, 1250, 1250,
+     1250, 1250, 1250, 1250, 1250, 1250, 1094, 1094, 1094, 1094,
+
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
+     1094, 1094
     } ;
 
+/* Table of booleans, true if rule could match eol. */
+static yyconst flex_int32_t yy_rule_can_match_eol[149] =
+    {   0,
+0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0,     };
+
 /* The intent behind this definition is that it'll catch
  * any uses of REJECT which flex missed.
  */
@@ -2460,10 +2521,14 @@
 
 static void include_file(PARROT_INTERP, char *file_name, ARGMOD(void *yyscanner));
 
+static int handle_identifier(PARROT_INTERP, YYSTYPE *valp, ARGIN(const char *id));
+
 #define YY_DECL int yylex(YYSTYPE *valp,yyscan_t yyscanner,PARROT_INTERP)
 
 #define YYCHOP() (yytext[--yyleng] = '\0')
 
+#define SET_LINE_NUMBER (IMCC_INFO(interp)->line = yylineno)
+
 #define DUP_AND_RET(valp, token)             \
   do {                                       \
       if (valp) (valp)->s = mem_sys_strdup(yytext); \
@@ -2489,7 +2554,7 @@
 
 
 
-#line 2493 "compilers/imcc/imclexer.c"
+#line 2558 "compilers/imcc/imclexer.c"
 
 #define INITIAL 0
 #define emit 1
@@ -2734,7 +2799,7 @@
 	register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 152 "compilers/imcc/imcc.l"
+#line 157 "compilers/imcc/imcc.l"
 
         /* for emacs "*/
         if (IMCC_INFO(interp)->expect_pasm == 1 && !IMCC_INFO(interp)->in_pod) {
@@ -2753,7 +2818,7 @@
             return 0;
         }
 
-#line 2757 "compilers/imcc/imclexer.c"
+#line 2822 "compilers/imcc/imclexer.c"
 
 	if ( !yyg->yy_init )
 		{
@@ -2807,13 +2872,13 @@
 			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 >= 1062 )
+				if ( yy_current_state >= 1095 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 1061 );
+		while ( yy_current_state != 1094 );
 		yy_cp = yyg->yy_last_accepting_cpos;
 		yy_current_state = yyg->yy_last_accepting_state;
 
@@ -2822,6 +2887,18 @@
 
 		YY_DO_BEFORE_ACTION;
 
+		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
+			{
+			int yyl;
+			for ( yyl = 0; yyl < yyleng; ++yyl )
+				if ( yytext[yyl] == '\n' )
+					   
+    do{ yylineno++;
+        yycolumn=0;
+    }while(0)
+;
+			}
+
 do_action:	/* This label is used only to access EOF actions. */
 
 		switch ( yy_act )
@@ -2834,24 +2911,29 @@
 			goto yy_find_action;
 
 case 1:
-/* rule 1 can match eol */
 YY_RULE_SETUP
-#line 170 "compilers/imcc/imcc.l"
+#line 175 "compilers/imcc/imcc.l"
+{ SET_LINE_NUMBER; }
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 177 "compilers/imcc/imcc.l"
 {
+            SET_LINE_NUMBER;
             IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
             BEGIN(heredoc2);
     }
 	YY_BREAK
-case 2:
-/* rule 2 can match eol */
+case 3:
+/* rule 3 can match eol */
 YY_RULE_SETUP
-#line 175 "compilers/imcc/imcc.l"
+#line 183 "compilers/imcc/imcc.l"
 {
         /* heredocs have highest priority
          * arrange them before all wildcard state matches */
 
         /* Newline in the heredoc. Realloc and cat on. */
-        IMCC_INFO(interp)->line++;
         IMCC_INFO(interp)->heredoc_content =
             (char*)mem_sys_realloc(IMCC_INFO(interp)->heredoc_content,
                             strlen(IMCC_INFO(interp)->heredoc_content) +
@@ -2860,10 +2942,11 @@
                strlen(IMCC_INFO(interp)->heredoc_content), yytext);
     }
 	YY_BREAK
-case 3:
+case 4:
 YY_RULE_SETUP
-#line 189 "compilers/imcc/imcc.l"
+#line 196 "compilers/imcc/imcc.l"
 {
+        SET_LINE_NUMBER;
         /* Are we at the end of the heredoc? */
         if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
             /* End of the heredoc. */
@@ -2886,7 +2969,7 @@
             yy_pop_state(yyscanner);
             yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest,yyscanner);
 
-            /* the EOF rule will increment the line number; decrement here */
+            /* not sure we need this decrement; more testing needed */
             IMCC_INFO(interp)->line--;
             return STRINGC;
         }
@@ -2901,10 +2984,10 @@
         }
     }
 	YY_BREAK
-case 4:
-/* rule 4 can match eol */
+case 5:
+/* rule 5 can match eol */
 YY_RULE_SETUP
-#line 227 "compilers/imcc/imcc.l"
+#line 235 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
         yy_push_state(cmt3, yyscanner);
@@ -2915,68 +2998,66 @@
         return FILECOMMENT;
     }
 	YY_BREAK
-case 5:
+case 6:
 YY_RULE_SETUP
-#line 237 "compilers/imcc/imcc.l"
+#line 245 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
         yy_push_state(cmt4, yyscanner);
     }
 	YY_BREAK
-case 6:
+case 7:
 YY_RULE_SETUP
-#line 242 "compilers/imcc/imcc.l"
+#line 250 "compilers/imcc/imcc.l"
 { yy_push_state(cmt2, yyscanner); }
 	YY_BREAK
-case 7:
+case 8:
 YY_RULE_SETUP
-#line 244 "compilers/imcc/imcc.l"
+#line 252 "compilers/imcc/imcc.l"
 { yy_push_state(cmt1, yyscanner);  }
 	YY_BREAK
-case 8:
+case 9:
 YY_RULE_SETUP
-#line 246 "compilers/imcc/imcc.l"
+#line 254 "compilers/imcc/imcc.l"
 {
-        IMCC_INFO(interp)->line = atoi(yytext);
+        yylineno = IMCC_INFO(interp)->line = atoi(yytext);
         yy_pop_state(yyscanner);
         yy_push_state(cmt4, yyscanner);
         return LINECOMMENT;
     }
 	YY_BREAK
-case 9:
-/* rule 9 can match eol */
+case 10:
+/* rule 10 can match eol */
 YY_RULE_SETUP
-#line 253 "compilers/imcc/imcc.l"
+#line 261 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
-        IMCC_INFO(interp)->line++;
     }
 	YY_BREAK
-case 10:
-/* rule 10 can match eol */
+case 11:
+/* rule 11 can match eol */
 YY_RULE_SETUP
-#line 258 "compilers/imcc/imcc.l"
+#line 265 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->expect_pasm == 2)
             BEGIN(INITIAL);
 
         IMCC_INFO(interp)->expect_pasm = 0;
-        IMCC_INFO(interp)->line++;
 
         return '\n';
     }
 	YY_BREAK
-case 11:
+case 12:
 YY_RULE_SETUP
-#line 268 "compilers/imcc/imcc.l"
+#line 274 "compilers/imcc/imcc.l"
 {
         yy_push_state(cmt5, yyscanner);
     }
 	YY_BREAK
-case 12:
-/* rule 12 can match eol */
+case 13:
+/* rule 13 can match eol */
 YY_RULE_SETUP
-#line 272 "compilers/imcc/imcc.l"
+#line 278 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->expect_pasm == 2)
             BEGIN(INITIAL);
@@ -2984,512 +3065,513 @@
             yy_pop_state(yyscanner);
 
         IMCC_INFO(interp)->expect_pasm = 0;
-        IMCC_INFO(interp)->line++;
 
         return '\n';
     }
 	YY_BREAK
-case 13:
-/* rule 13 can match eol */
+case 14:
+/* rule 14 can match eol */
 YY_RULE_SETUP
-#line 285 "compilers/imcc/imcc.l"
+#line 290 "compilers/imcc/imcc.l"
 {
     /* this is a stand-alone =cut, but we're not in POD mode, so ignore.  */
-    IMCC_INFO(interp)->line++;
+    SET_LINE_NUMBER;
 }
 	YY_BREAK
-case 14:
+case 15:
+/* rule 15 can match eol */
 YY_RULE_SETUP
-#line 290 "compilers/imcc/imcc.l"
+#line 295 "compilers/imcc/imcc.l"
 {
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 1;
         yy_push_state(pod, yyscanner);
     }
 	YY_BREAK
-case 15:
-/* rule 15 can match eol */
+case 16:
+/* rule 16 can match eol */
 YY_RULE_SETUP
-#line 295 "compilers/imcc/imcc.l"
+#line 301 "compilers/imcc/imcc.l"
 {
+        SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 0;
         yy_pop_state(yyscanner);
-        IMCC_INFO(interp)->line++;
     }
 	YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 301 "compilers/imcc/imcc.l"
-{ /*ignore*/ }
-	YY_BREAK
 case 17:
-/* rule 17 can match eol */
 YY_RULE_SETUP
-#line 303 "compilers/imcc/imcc.l"
-{ IMCC_INFO(interp)->line++; }
+#line 307 "compilers/imcc/imcc.l"
+{ SET_LINE_NUMBER; }
 	YY_BREAK
 case 18:
+/* rule 18 can match eol */
 YY_RULE_SETUP
-#line 305 "compilers/imcc/imcc.l"
-return TK_LINE;
+#line 309 "compilers/imcc/imcc.l"
+{ /* ignore */ }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 306 "compilers/imcc/imcc.l"
-return TK_FILE;
+#line 311 "compilers/imcc/imcc.l"
+return TK_LINE;
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 307 "compilers/imcc/imcc.l"
-return ANNOTATE;
+#line 312 "compilers/imcc/imcc.l"
+return TK_FILE;
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 308 "compilers/imcc/imcc.l"
-return LEXICAL;
+#line 313 "compilers/imcc/imcc.l"
+return ANNOTATE;
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 309 "compilers/imcc/imcc.l"
-return ARG;
+#line 314 "compilers/imcc/imcc.l"
+return LEXICAL;
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 310 "compilers/imcc/imcc.l"
-return SUB;
+#line 315 "compilers/imcc/imcc.l"
+return ARG;
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 311 "compilers/imcc/imcc.l"
-return ESUB;
+#line 316 "compilers/imcc/imcc.l"
+return SUB;
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 312 "compilers/imcc/imcc.l"
-return PCC_BEGIN;
+#line 317 "compilers/imcc/imcc.l"
+return ESUB;
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 313 "compilers/imcc/imcc.l"
-return PCC_END;
+#line 318 "compilers/imcc/imcc.l"
+return PCC_BEGIN;
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 314 "compilers/imcc/imcc.l"
-return PCC_CALL;
+#line 319 "compilers/imcc/imcc.l"
+return PCC_END;
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 315 "compilers/imcc/imcc.l"
-return NCI_CALL;
+#line 320 "compilers/imcc/imcc.l"
+return PCC_CALL;
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 316 "compilers/imcc/imcc.l"
-return METH_CALL;
+#line 321 "compilers/imcc/imcc.l"
+return NCI_CALL;
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 317 "compilers/imcc/imcc.l"
-return INVOCANT;
+#line 322 "compilers/imcc/imcc.l"
+return METH_CALL;
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 318 "compilers/imcc/imcc.l"
-return PCC_SUB;
+#line 323 "compilers/imcc/imcc.l"
+return INVOCANT;
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 319 "compilers/imcc/imcc.l"
-return PCC_BEGIN_RETURN;
+#line 324 "compilers/imcc/imcc.l"
+return PCC_SUB;
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 320 "compilers/imcc/imcc.l"
-return PCC_END_RETURN;
+#line 325 "compilers/imcc/imcc.l"
+return PCC_BEGIN_RETURN;
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 321 "compilers/imcc/imcc.l"
-return PCC_BEGIN_YIELD;
+#line 326 "compilers/imcc/imcc.l"
+return PCC_END_RETURN;
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 322 "compilers/imcc/imcc.l"
-return PCC_END_YIELD;
+#line 327 "compilers/imcc/imcc.l"
+return PCC_BEGIN_YIELD;
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 324 "compilers/imcc/imcc.l"
-return METHOD;
+#line 328 "compilers/imcc/imcc.l"
+return PCC_END_YIELD;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 325 "compilers/imcc/imcc.l"
-return MULTI;
+#line 330 "compilers/imcc/imcc.l"
+return METHOD;
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 326 "compilers/imcc/imcc.l"
-return MAIN;
+#line 331 "compilers/imcc/imcc.l"
+return MULTI;
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 327 "compilers/imcc/imcc.l"
-return LOAD;
+#line 332 "compilers/imcc/imcc.l"
+return MAIN;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 328 "compilers/imcc/imcc.l"
-return INIT;
+#line 333 "compilers/imcc/imcc.l"
+return LOAD;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 329 "compilers/imcc/imcc.l"
-return IMMEDIATE;
+#line 334 "compilers/imcc/imcc.l"
+return INIT;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 330 "compilers/imcc/imcc.l"
-return POSTCOMP;
+#line 335 "compilers/imcc/imcc.l"
+return IMMEDIATE;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 331 "compilers/imcc/imcc.l"
-return ANON;
+#line 336 "compilers/imcc/imcc.l"
+return POSTCOMP;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 332 "compilers/imcc/imcc.l"
-return OUTER;
+#line 337 "compilers/imcc/imcc.l"
+return ANON;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 333 "compilers/imcc/imcc.l"
-return NEED_LEX;
+#line 338 "compilers/imcc/imcc.l"
+return OUTER;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 334 "compilers/imcc/imcc.l"
-return VTABLE_METHOD;
+#line 339 "compilers/imcc/imcc.l"
+return NEED_LEX;
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 335 "compilers/imcc/imcc.l"
-return NS_ENTRY;
+#line 340 "compilers/imcc/imcc.l"
+return VTABLE_METHOD;
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 336 "compilers/imcc/imcc.l"
-return UNIQUE_REG;
+#line 341 "compilers/imcc/imcc.l"
+return NS_ENTRY;
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 337 "compilers/imcc/imcc.l"
-return SUB_INSTANCE_OF;
+#line 342 "compilers/imcc/imcc.l"
+return UNIQUE_REG;
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 338 "compilers/imcc/imcc.l"
-return SUBID;
+#line 343 "compilers/imcc/imcc.l"
+return SUB_INSTANCE_OF;
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 340 "compilers/imcc/imcc.l"
-return RESULT;
+#line 344 "compilers/imcc/imcc.l"
+return SUBID;
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 341 "compilers/imcc/imcc.l"
-return GET_RESULTS;
+#line 346 "compilers/imcc/imcc.l"
+return RESULT;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 342 "compilers/imcc/imcc.l"
-return YIELDT;
+#line 347 "compilers/imcc/imcc.l"
+return GET_RESULTS;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 343 "compilers/imcc/imcc.l"
-return SET_YIELD;
+#line 348 "compilers/imcc/imcc.l"
+return YIELDT;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 344 "compilers/imcc/imcc.l"
-return RETURN;
+#line 349 "compilers/imcc/imcc.l"
+return SET_YIELD;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 345 "compilers/imcc/imcc.l"
-return SET_RETURN;
+#line 350 "compilers/imcc/imcc.l"
+return RETURN;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 346 "compilers/imcc/imcc.l"
-return TAILCALL;
+#line 351 "compilers/imcc/imcc.l"
+return SET_RETURN;
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 347 "compilers/imcc/imcc.l"
-return LOADLIB;
+#line 352 "compilers/imcc/imcc.l"
+return TAILCALL;
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 349 "compilers/imcc/imcc.l"
-return ADV_FLAT;
+#line 353 "compilers/imcc/imcc.l"
+return LOADLIB;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 350 "compilers/imcc/imcc.l"
-return ADV_SLURPY;
+#line 355 "compilers/imcc/imcc.l"
+return ADV_FLAT;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 351 "compilers/imcc/imcc.l"
-return ADV_OPTIONAL;
+#line 356 "compilers/imcc/imcc.l"
+return ADV_SLURPY;
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 352 "compilers/imcc/imcc.l"
-return ADV_OPT_FLAG;
+#line 357 "compilers/imcc/imcc.l"
+return ADV_OPTIONAL;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 353 "compilers/imcc/imcc.l"
-return ADV_NAMED;
+#line 358 "compilers/imcc/imcc.l"
+return ADV_OPT_FLAG;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 354 "compilers/imcc/imcc.l"
-return ADV_ARROW;
+#line 359 "compilers/imcc/imcc.l"
+return ADV_NAMED;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 355 "compilers/imcc/imcc.l"
-return ADV_INVOCANT;
+#line 360 "compilers/imcc/imcc.l"
+return ADV_ARROW;
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 356 "compilers/imcc/imcc.l"
-return ADV_CALL_SIG;
+#line 361 "compilers/imcc/imcc.l"
+return ADV_INVOCANT;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 358 "compilers/imcc/imcc.l"
+#line 362 "compilers/imcc/imcc.l"
+return ADV_CALL_SIG;
+	YY_BREAK
+case 68:
+YY_RULE_SETUP
+#line 364 "compilers/imcc/imcc.l"
 return NAMESPACE;
 	YY_BREAK
-case 68:
+case 69:
 YY_RULE_SETUP
-#line 359 "compilers/imcc/imcc.l"
+#line 365 "compilers/imcc/imcc.l"
 return HLL;
 	YY_BREAK
-case 69:
+case 70:
 YY_RULE_SETUP
-#line 361 "compilers/imcc/imcc.l"
+#line 367 "compilers/imcc/imcc.l"
 return LOCAL;
 	YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 362 "compilers/imcc/imcc.l"
+#line 368 "compilers/imcc/imcc.l"
 return CONST;
 	YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 363 "compilers/imcc/imcc.l"
+#line 369 "compilers/imcc/imcc.l"
 return GLOBAL_CONST;
 	YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 364 "compilers/imcc/imcc.l"
+#line 370 "compilers/imcc/imcc.l"
 return PARAM;
 	YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 365 "compilers/imcc/imcc.l"
+#line 371 "compilers/imcc/imcc.l"
 return GOTO;
 	YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 366 "compilers/imcc/imcc.l"
+#line 372 "compilers/imcc/imcc.l"
 return IF;
 	YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 367 "compilers/imcc/imcc.l"
+#line 373 "compilers/imcc/imcc.l"
 return UNLESS;
 	YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 368 "compilers/imcc/imcc.l"
+#line 374 "compilers/imcc/imcc.l"
 return PNULL;
 	YY_BREAK
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 369 "compilers/imcc/imcc.l"
+#line 375 "compilers/imcc/imcc.l"
 return INTV;
 	YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 370 "compilers/imcc/imcc.l"
+#line 376 "compilers/imcc/imcc.l"
 return FLOATV;
 	YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 372 "compilers/imcc/imcc.l"
+#line 378 "compilers/imcc/imcc.l"
 return PMCV;
 	YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 373 "compilers/imcc/imcc.l"
+#line 379 "compilers/imcc/imcc.l"
 return STRINGV;
 	YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 374 "compilers/imcc/imcc.l"
+#line 380 "compilers/imcc/imcc.l"
 return SHIFT_LEFT;
 	YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 375 "compilers/imcc/imcc.l"
+#line 381 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT;
 	YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 376 "compilers/imcc/imcc.l"
+#line 382 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT_U;
 	YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 377 "compilers/imcc/imcc.l"
+#line 383 "compilers/imcc/imcc.l"
 return LOG_AND;
 	YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 378 "compilers/imcc/imcc.l"
+#line 384 "compilers/imcc/imcc.l"
 return LOG_OR;
 	YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 379 "compilers/imcc/imcc.l"
+#line 385 "compilers/imcc/imcc.l"
 return LOG_XOR;
 	YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 380 "compilers/imcc/imcc.l"
+#line 386 "compilers/imcc/imcc.l"
 return RELOP_LT;
 	YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 381 "compilers/imcc/imcc.l"
+#line 387 "compilers/imcc/imcc.l"
 return RELOP_LTE;
 	YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 382 "compilers/imcc/imcc.l"
+#line 388 "compilers/imcc/imcc.l"
 return RELOP_GT;
 	YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 383 "compilers/imcc/imcc.l"
+#line 389 "compilers/imcc/imcc.l"
 return RELOP_GTE;
 	YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 384 "compilers/imcc/imcc.l"
+#line 390 "compilers/imcc/imcc.l"
 return RELOP_EQ;
 	YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 385 "compilers/imcc/imcc.l"
+#line 391 "compilers/imcc/imcc.l"
 return RELOP_NE;
 	YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 386 "compilers/imcc/imcc.l"
+#line 392 "compilers/imcc/imcc.l"
 return POW;
 	YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 388 "compilers/imcc/imcc.l"
+#line 394 "compilers/imcc/imcc.l"
 return CONCAT;
 	YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 389 "compilers/imcc/imcc.l"
+#line 395 "compilers/imcc/imcc.l"
 return DOT;
 	YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 391 "compilers/imcc/imcc.l"
+#line 397 "compilers/imcc/imcc.l"
 return PLUS_ASSIGN;
 	YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 392 "compilers/imcc/imcc.l"
+#line 398 "compilers/imcc/imcc.l"
 return MINUS_ASSIGN;
 	YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 393 "compilers/imcc/imcc.l"
+#line 399 "compilers/imcc/imcc.l"
 return MUL_ASSIGN;
 	YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 394 "compilers/imcc/imcc.l"
+#line 400 "compilers/imcc/imcc.l"
 return DIV_ASSIGN;
 	YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 395 "compilers/imcc/imcc.l"
+#line 401 "compilers/imcc/imcc.l"
 return MOD_ASSIGN;
 	YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 396 "compilers/imcc/imcc.l"
+#line 402 "compilers/imcc/imcc.l"
 return FDIV;
 	YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 397 "compilers/imcc/imcc.l"
+#line 403 "compilers/imcc/imcc.l"
 return FDIV_ASSIGN;
 	YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 398 "compilers/imcc/imcc.l"
+#line 404 "compilers/imcc/imcc.l"
 return BAND_ASSIGN;
 	YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 399 "compilers/imcc/imcc.l"
+#line 405 "compilers/imcc/imcc.l"
 return BOR_ASSIGN;
 	YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 400 "compilers/imcc/imcc.l"
+#line 406 "compilers/imcc/imcc.l"
 return BXOR_ASSIGN;
 	YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 401 "compilers/imcc/imcc.l"
+#line 407 "compilers/imcc/imcc.l"
 return SHR_ASSIGN;
 	YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 402 "compilers/imcc/imcc.l"
+#line 408 "compilers/imcc/imcc.l"
 return SHL_ASSIGN;
 	YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 403 "compilers/imcc/imcc.l"
+#line 409 "compilers/imcc/imcc.l"
 return SHR_U_ASSIGN;
 	YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 404 "compilers/imcc/imcc.l"
+#line 410 "compilers/imcc/imcc.l"
 return CONCAT_ASSIGN;
 	YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 406 "compilers/imcc/imcc.l"
+#line 412 "compilers/imcc/imcc.l"
 {
         char *macro_name   = NULL;
         int   start_cond   = YY_START;
@@ -3533,16 +3615,18 @@
         return MACRO;
     }
 	YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 449 "compilers/imcc/imcc.l"
+#line 455 "compilers/imcc/imcc.l"
 {
+        /* the initial whitespace catcher misses this one */
+        SET_LINE_NUMBER;
         return read_macro(valp, interp, yyscanner);
     }
 	YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 453 "compilers/imcc/imcc.l"
+#line 461 "compilers/imcc/imcc.l"
 {
         const int c = yylex(valp,yyscanner,interp);
 
@@ -3555,9 +3639,9 @@
         include_file(interp, yytext + 1, yyscanner);
     }
 	YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 465 "compilers/imcc/imcc.l"
+#line 473 "compilers/imcc/imcc.l"
 {
         if (valp) {
             char *label;
@@ -3580,11 +3664,10 @@
         return LABEL;
     }
 	YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 487 "compilers/imcc/imcc.l"
+#line 495 "compilers/imcc/imcc.l"
 {
-
         if (valp) {
             char *label;
             size_t len;
@@ -3604,14 +3687,14 @@
         return IDENTIFIER;
      }
 	YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 508 "compilers/imcc/imcc.l"
+#line 515 "compilers/imcc/imcc.l"
 return COMMA;
 	YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 510 "compilers/imcc/imcc.l"
+#line 517 "compilers/imcc/imcc.l"
 {
         /* trim last ':' */
         YYCHOP();
@@ -3622,9 +3705,9 @@
         return LABEL;
     }
 	YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 520 "compilers/imcc/imcc.l"
+#line 527 "compilers/imcc/imcc.l"
 {
         char   * const macro_name = mem_sys_strdup(yytext + 1);
         int failed = expand_macro(interp, macro_name, yyscanner);
@@ -3635,34 +3718,34 @@
         }
     }
 	YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 532 "compilers/imcc/imcc.l"
-DUP_AND_RET(valp, FLOATC);
-	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 533 "compilers/imcc/imcc.l"
-DUP_AND_RET(valp, INTC);
+#line 539 "compilers/imcc/imcc.l"
+DUP_AND_RET(valp, FLOATC);
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 534 "compilers/imcc/imcc.l"
+#line 540 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 535 "compilers/imcc/imcc.l"
+#line 541 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 536 "compilers/imcc/imcc.l"
+#line 542 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 538 "compilers/imcc/imcc.l"
+#line 543 "compilers/imcc/imcc.l"
+DUP_AND_RET(valp, INTC);
+	YY_BREAK
+case 124:
+YY_RULE_SETUP
+#line 545 "compilers/imcc/imcc.l"
 {
         valp->s = mem_sys_strdup(yytext);
 
@@ -3673,18 +3756,18 @@
         return STRINGC;
     }
 	YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 548 "compilers/imcc/imcc.l"
+#line 555 "compilers/imcc/imcc.l"
 {
         valp->s = mem_sys_strdup(yytext);
 
         return STRINGC;
     }
 	YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 554 "compilers/imcc/imcc.l"
+#line 561 "compilers/imcc/imcc.l"
 {
         macro_frame_t *frame;
 
@@ -3713,9 +3796,9 @@
         yy_push_state(heredoc1, yyscanner);
     }
 	YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 582 "compilers/imcc/imcc.l"
+#line 589 "compilers/imcc/imcc.l"
 {
         /* charset:"..." */
         valp->s = mem_sys_strdup(yytext);
@@ -3724,9 +3807,9 @@
         return USTRINGC;
     }
 	YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 590 "compilers/imcc/imcc.l"
+#line 597 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3735,9 +3818,9 @@
         return IREG;
     }
 	YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 598 "compilers/imcc/imcc.l"
+#line 605 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3746,9 +3829,9 @@
         return NREG;
     }
 	YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 606 "compilers/imcc/imcc.l"
+#line 613 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3757,9 +3840,9 @@
         return SREG;
     }
 	YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 614 "compilers/imcc/imcc.l"
+#line 621 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3768,17 +3851,17 @@
         return PREG;
     }
 	YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 622 "compilers/imcc/imcc.l"
+#line 629 "compilers/imcc/imcc.l"
 {
         IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
             "'%s' is not a valid register name", yytext);
     }
 	YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 627 "compilers/imcc/imcc.l"
+#line 634 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->state->pasm_file == 0)
             IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3790,52 +3873,26 @@
         return REG;
     }
 	YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 638 "compilers/imcc/imcc.l"
-{
-        if (!IMCC_INFO(interp)->is_def) {
-            SymReg *r = find_sym(interp, yytext);
-
-            if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
-                valp->sr = r;
-                return VAR;
-            }
-
-            if (IMCC_INFO(interp)->cur_unit
-            &&  IMCC_INFO(interp)->cur_unit->instructions
-            && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
-            &&  r->pcc_sub)
-            {
-                if (((r->pcc_sub->pragma & P_METHOD)
-                ||   (IMCC_INFO(interp)->cur_unit->is_vtable_method))
-                &&   !strcmp(yytext, "self")) {
-                    valp->sr = mk_ident(interp, "self", 'P');
-                    IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
-                    return VAR;
-                }
-            }
-        }
-
-        valp->s = mem_sys_strdup(yytext);
-        return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
-    }
+#line 646 "compilers/imcc/imcc.l"
+{ return handle_identifier(interp, valp, yytext); }
 	YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 667 "compilers/imcc/imcc.l"
+#line 648 "compilers/imcc/imcc.l"
 /* skip */;
 	YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 669 "compilers/imcc/imcc.l"
+#line 650 "compilers/imcc/imcc.l"
 {
         /* catch all except for state macro */
         return yytext[0];
     }
 	YY_BREAK
 case YY_STATE_EOF(emit):
-#line 674 "compilers/imcc/imcc.l"
+#line 655 "compilers/imcc/imcc.l"
 {
         BEGIN(INITIAL);
 
@@ -3848,31 +3905,34 @@
     }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 685 "compilers/imcc/imcc.l"
+#line 666 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 687 "compilers/imcc/imcc.l"
-DUP_AND_RET(valp, ENDM);
+#line 668 "compilers/imcc/imcc.l"
+{
+        /* the initial whitespace catcher misses this one */
+        SET_LINE_NUMBER;
+        DUP_AND_RET(valp, ENDM);
+}
 	YY_BREAK
-case 137:
-/* rule 137 can match eol */
+case 138:
+/* rule 138 can match eol */
 YY_RULE_SETUP
-#line 689 "compilers/imcc/imcc.l"
+#line 674 "compilers/imcc/imcc.l"
 {
-        IMCC_INFO(interp)->line++;
         DUP_AND_RET(valp, '\n');
     }
 	YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 694 "compilers/imcc/imcc.l"
+#line 678 "compilers/imcc/imcc.l"
 return LABEL;
 	YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 696 "compilers/imcc/imcc.l"
+#line 680 "compilers/imcc/imcc.l"
 {
 
         if (yylex(valp,yyscanner,interp) != LABEL)
@@ -3897,9 +3957,9 @@
         return LABEL;
     }
 	YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 720 "compilers/imcc/imcc.l"
+#line 704 "compilers/imcc/imcc.l"
 {
     if (valp) {
         if (!IMCC_INFO(interp)->cur_macro_name) {
@@ -3928,51 +3988,46 @@
     return IDENTIFIER;
 }
 	YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 748 "compilers/imcc/imcc.l"
-/* skip leading ws */;
-	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 749 "compilers/imcc/imcc.l"
+#line 732 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, ' ');
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 750 "compilers/imcc/imcc.l"
+#line 733 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 751 "compilers/imcc/imcc.l"
+#line 734 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 752 "compilers/imcc/imcc.l"
+#line 735 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, IDENTIFIER);
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 753 "compilers/imcc/imcc.l"
+#line 736 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, MACRO);
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 754 "compilers/imcc/imcc.l"
+#line 737 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, yytext[0]);
 	YY_BREAK
 case YY_STATE_EOF(macro):
-#line 755 "compilers/imcc/imcc.l"
+#line 738 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 757 "compilers/imcc/imcc.l"
+#line 740 "compilers/imcc/imcc.l"
 ECHO;
 	YY_BREAK
-#line 3976 "compilers/imcc/imclexer.c"
+#line 4031 "compilers/imcc/imclexer.c"
 case YY_STATE_EOF(pod):
 case YY_STATE_EOF(cmt1):
 case YY_STATE_EOF(cmt2):
@@ -4275,7 +4330,7 @@
 		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 >= 1062 )
+			if ( yy_current_state >= 1095 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4304,11 +4359,11 @@
 	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 >= 1062 )
+		if ( yy_current_state >= 1095 )
 			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 == 1061);
+	yy_is_jam = (yy_current_state == 1094);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -4346,6 +4401,10 @@
 
 	*--yy_cp = (char) c;
 
+    if ( c == '\n' ){
+        --yylineno;
+    }
+
 	yyg->yytext_ptr = yy_bp;
 	yyg->yy_hold_char = *yy_cp;
 	yyg->yy_c_buf_p = yy_cp;
@@ -4423,6 +4482,12 @@
 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
 
 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
+		   
+    do{ yylineno++;
+        yycolumn=0;
+    }while(0)
+;
 
 	return c;
 }
@@ -5174,7 +5239,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 757 "compilers/imcc/imcc.l"
+#line 740 "compilers/imcc/imcc.l"
 
 
 
@@ -5236,6 +5301,9 @@
     frame->s.next             = (parser_state_t *)IMCC_INFO(interp)->frames;
     IMCC_INFO(interp)->frames = frame;
 
+    /* start at the effective *starting line* of the macro */
+    IMCC_INFO(interp)->line   = frame->s.line - 2;
+
     yy_scan_string(expansion,yyscanner);
 }
 
@@ -5491,9 +5559,6 @@
     IMCC_INFO(interp)->macro_buffer   = NULL;
     IMCC_INFO(interp)->cur_macro_name = NULL;
 
-    /* the ENDM rule doesn't set the line number */
-    IMCC_INFO(interp)->line--;
-
     return MACRO;
 }
 
@@ -5654,8 +5719,6 @@
             }
         }
 
-        /* let the normal EOF rules match line numbers */
-        IMCC_INFO(interp)->line = m->line - 1;
         scan_string(frame, m->expansion, yyscanner);
 
         return 1;
@@ -5705,14 +5768,18 @@
 scan_file(PARROT_INTERP, macro_frame_t *frame, FILE *file, void *yyscanner)
 {
     yyguts_t * const yyg      = (yyguts_t *)yyscanner;
+    const      int   oldline  = IMCC_INFO(interp)->line;
     frame->buffer             = YY_CURRENT_BUFFER;
     frame->s.next             = (parser_state_t *)IMCC_INFO(interp)->frames;
     IMCC_INFO(interp)->frames = frame;
     IMCC_INFO(interp)->state  = (parser_state_t *)IMCC_INFO(interp)->frames;
 
-    IMCC_INFO(interp)->line   = 1;
+    /* let the start of line rule increment this to 1 */
+    IMCC_INFO(interp)->line   = 0;
 
     yy_switch_to_buffer(yy_create_buffer(file,YY_BUF_SIZE,yyscanner),yyscanner);
+
+    IMCC_INFO(interp)->line   = oldline;
 }
 
 void
@@ -5889,6 +5956,36 @@
     return yyg->yy_hold_char == '\0';
 }
 
+static int
+handle_identifier(PARROT_INTERP, YYSTYPE *valp, const char *text)
+{
+    if (!IMCC_INFO(interp)->is_def) {
+        SymReg *r = find_sym(interp, text);
+
+        if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
+            valp->sr = r;
+            return VAR;
+        }
+
+        if (IMCC_INFO(interp)->cur_unit
+        &&  IMCC_INFO(interp)->cur_unit->instructions
+        && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
+        &&  r->pcc_sub)
+        {
+            if (((r->pcc_sub->pragma & P_METHOD)
+            ||   (IMCC_INFO(interp)->cur_unit->is_vtable_method))
+            &&   !strcmp(text, "self")) {
+                valp->sr = mk_ident(interp, "self", 'P');
+                IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
+                return VAR;
+            }
+        }
+    }
+
+    valp->s = mem_sys_strdup(text);
+    return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
+}
+
 /*
  * Local variables:
  *   c-file-style: "parrot"

Modified: branches/ops_pct/compilers/imcc/imcparser.c
==============================================================================
--- branches/ops_pct/compilers/imcc/imcparser.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/imcparser.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1184,245 +1184,247 @@
    enum yytokentype {
      LOW_PREC = 258,
      PARAM = 259,
-     HLL = 260,
-     TK_LINE = 261,
-     TK_FILE = 262,
-     GOTO = 263,
-     ARG = 264,
-     IF = 265,
-     UNLESS = 266,
-     PNULL = 267,
-     SET_RETURN = 268,
-     SET_YIELD = 269,
-     ADV_FLAT = 270,
-     ADV_SLURPY = 271,
-     ADV_OPTIONAL = 272,
-     ADV_OPT_FLAG = 273,
-     ADV_NAMED = 274,
-     ADV_ARROW = 275,
-     NEW = 276,
-     ADV_INVOCANT = 277,
-     ADV_CALL_SIG = 278,
-     NAMESPACE = 279,
-     DOT_METHOD = 280,
-     SUB = 281,
-     SYM = 282,
-     LOCAL = 283,
-     LEXICAL = 284,
-     CONST = 285,
-     ANNOTATE = 286,
-     INC = 287,
-     DEC = 288,
-     GLOBAL_CONST = 289,
-     PLUS_ASSIGN = 290,
-     MINUS_ASSIGN = 291,
-     MUL_ASSIGN = 292,
-     DIV_ASSIGN = 293,
-     CONCAT_ASSIGN = 294,
-     BAND_ASSIGN = 295,
-     BOR_ASSIGN = 296,
-     BXOR_ASSIGN = 297,
-     FDIV = 298,
-     FDIV_ASSIGN = 299,
-     MOD_ASSIGN = 300,
-     SHR_ASSIGN = 301,
-     SHL_ASSIGN = 302,
-     SHR_U_ASSIGN = 303,
-     SHIFT_LEFT = 304,
-     SHIFT_RIGHT = 305,
-     INTV = 306,
-     FLOATV = 307,
-     STRINGV = 308,
-     PMCV = 309,
-     LOG_XOR = 310,
-     RELOP_EQ = 311,
-     RELOP_NE = 312,
-     RELOP_GT = 313,
-     RELOP_GTE = 314,
-     RELOP_LT = 315,
-     RELOP_LTE = 316,
-     RESULT = 317,
-     RETURN = 318,
-     TAILCALL = 319,
-     YIELDT = 320,
-     GET_RESULTS = 321,
-     POW = 322,
-     SHIFT_RIGHT_U = 323,
-     LOG_AND = 324,
-     LOG_OR = 325,
-     COMMA = 326,
-     ESUB = 327,
-     DOTDOT = 328,
-     PCC_BEGIN = 329,
-     PCC_END = 330,
-     PCC_CALL = 331,
-     PCC_SUB = 332,
-     PCC_BEGIN_RETURN = 333,
-     PCC_END_RETURN = 334,
-     PCC_BEGIN_YIELD = 335,
-     PCC_END_YIELD = 336,
-     NCI_CALL = 337,
-     METH_CALL = 338,
-     INVOCANT = 339,
-     MAIN = 340,
-     LOAD = 341,
-     INIT = 342,
-     IMMEDIATE = 343,
-     POSTCOMP = 344,
-     METHOD = 345,
-     ANON = 346,
-     OUTER = 347,
-     NEED_LEX = 348,
-     MULTI = 349,
-     VTABLE_METHOD = 350,
-     LOADLIB = 351,
-     SUB_INSTANCE_OF = 352,
-     SUBID = 353,
-     NS_ENTRY = 354,
-     UNIQUE_REG = 355,
-     LABEL = 356,
-     EMIT = 357,
-     EOM = 358,
-     IREG = 359,
-     NREG = 360,
-     SREG = 361,
-     PREG = 362,
-     IDENTIFIER = 363,
-     REG = 364,
-     MACRO = 365,
-     ENDM = 366,
-     STRINGC = 367,
-     INTC = 368,
-     FLOATC = 369,
-     USTRINGC = 370,
-     PARROT_OP = 371,
-     VAR = 372,
-     LINECOMMENT = 373,
-     FILECOMMENT = 374,
-     DOT = 375,
-     CONCAT = 376
+     SOL = 260,
+     HLL = 261,
+     TK_LINE = 262,
+     TK_FILE = 263,
+     GOTO = 264,
+     ARG = 265,
+     IF = 266,
+     UNLESS = 267,
+     PNULL = 268,
+     SET_RETURN = 269,
+     SET_YIELD = 270,
+     ADV_FLAT = 271,
+     ADV_SLURPY = 272,
+     ADV_OPTIONAL = 273,
+     ADV_OPT_FLAG = 274,
+     ADV_NAMED = 275,
+     ADV_ARROW = 276,
+     NEW = 277,
+     ADV_INVOCANT = 278,
+     ADV_CALL_SIG = 279,
+     NAMESPACE = 280,
+     DOT_METHOD = 281,
+     SUB = 282,
+     SYM = 283,
+     LOCAL = 284,
+     LEXICAL = 285,
+     CONST = 286,
+     ANNOTATE = 287,
+     INC = 288,
+     DEC = 289,
+     GLOBAL_CONST = 290,
+     PLUS_ASSIGN = 291,
+     MINUS_ASSIGN = 292,
+     MUL_ASSIGN = 293,
+     DIV_ASSIGN = 294,
+     CONCAT_ASSIGN = 295,
+     BAND_ASSIGN = 296,
+     BOR_ASSIGN = 297,
+     BXOR_ASSIGN = 298,
+     FDIV = 299,
+     FDIV_ASSIGN = 300,
+     MOD_ASSIGN = 301,
+     SHR_ASSIGN = 302,
+     SHL_ASSIGN = 303,
+     SHR_U_ASSIGN = 304,
+     SHIFT_LEFT = 305,
+     SHIFT_RIGHT = 306,
+     INTV = 307,
+     FLOATV = 308,
+     STRINGV = 309,
+     PMCV = 310,
+     LOG_XOR = 311,
+     RELOP_EQ = 312,
+     RELOP_NE = 313,
+     RELOP_GT = 314,
+     RELOP_GTE = 315,
+     RELOP_LT = 316,
+     RELOP_LTE = 317,
+     RESULT = 318,
+     RETURN = 319,
+     TAILCALL = 320,
+     YIELDT = 321,
+     GET_RESULTS = 322,
+     POW = 323,
+     SHIFT_RIGHT_U = 324,
+     LOG_AND = 325,
+     LOG_OR = 326,
+     COMMA = 327,
+     ESUB = 328,
+     DOTDOT = 329,
+     PCC_BEGIN = 330,
+     PCC_END = 331,
+     PCC_CALL = 332,
+     PCC_SUB = 333,
+     PCC_BEGIN_RETURN = 334,
+     PCC_END_RETURN = 335,
+     PCC_BEGIN_YIELD = 336,
+     PCC_END_YIELD = 337,
+     NCI_CALL = 338,
+     METH_CALL = 339,
+     INVOCANT = 340,
+     MAIN = 341,
+     LOAD = 342,
+     INIT = 343,
+     IMMEDIATE = 344,
+     POSTCOMP = 345,
+     METHOD = 346,
+     ANON = 347,
+     OUTER = 348,
+     NEED_LEX = 349,
+     MULTI = 350,
+     VTABLE_METHOD = 351,
+     LOADLIB = 352,
+     SUB_INSTANCE_OF = 353,
+     SUBID = 354,
+     NS_ENTRY = 355,
+     UNIQUE_REG = 356,
+     LABEL = 357,
+     EMIT = 358,
+     EOM = 359,
+     IREG = 360,
+     NREG = 361,
+     SREG = 362,
+     PREG = 363,
+     IDENTIFIER = 364,
+     REG = 365,
+     MACRO = 366,
+     ENDM = 367,
+     STRINGC = 368,
+     INTC = 369,
+     FLOATC = 370,
+     USTRINGC = 371,
+     PARROT_OP = 372,
+     VAR = 373,
+     LINECOMMENT = 374,
+     FILECOMMENT = 375,
+     DOT = 376,
+     CONCAT = 377
    };
 #endif
 /* Tokens.  */
 #define LOW_PREC 258
 #define PARAM 259
-#define HLL 260
-#define TK_LINE 261
-#define TK_FILE 262
-#define GOTO 263
-#define ARG 264
-#define IF 265
-#define UNLESS 266
-#define PNULL 267
-#define SET_RETURN 268
-#define SET_YIELD 269
-#define ADV_FLAT 270
-#define ADV_SLURPY 271
-#define ADV_OPTIONAL 272
-#define ADV_OPT_FLAG 273
-#define ADV_NAMED 274
-#define ADV_ARROW 275
-#define NEW 276
-#define ADV_INVOCANT 277
-#define ADV_CALL_SIG 278
-#define NAMESPACE 279
-#define DOT_METHOD 280
-#define SUB 281
-#define SYM 282
-#define LOCAL 283
-#define LEXICAL 284
-#define CONST 285
-#define ANNOTATE 286
-#define INC 287
-#define DEC 288
-#define GLOBAL_CONST 289
-#define PLUS_ASSIGN 290
-#define MINUS_ASSIGN 291
-#define MUL_ASSIGN 292
-#define DIV_ASSIGN 293
-#define CONCAT_ASSIGN 294
-#define BAND_ASSIGN 295
-#define BOR_ASSIGN 296
-#define BXOR_ASSIGN 297
-#define FDIV 298
-#define FDIV_ASSIGN 299
-#define MOD_ASSIGN 300
-#define SHR_ASSIGN 301
-#define SHL_ASSIGN 302
-#define SHR_U_ASSIGN 303
-#define SHIFT_LEFT 304
-#define SHIFT_RIGHT 305
-#define INTV 306
-#define FLOATV 307
-#define STRINGV 308
-#define PMCV 309
-#define LOG_XOR 310
-#define RELOP_EQ 311
-#define RELOP_NE 312
-#define RELOP_GT 313
-#define RELOP_GTE 314
-#define RELOP_LT 315
-#define RELOP_LTE 316
-#define RESULT 317
-#define RETURN 318
-#define TAILCALL 319
-#define YIELDT 320
-#define GET_RESULTS 321
-#define POW 322
-#define SHIFT_RIGHT_U 323
-#define LOG_AND 324
-#define LOG_OR 325
-#define COMMA 326
-#define ESUB 327
-#define DOTDOT 328
-#define PCC_BEGIN 329
-#define PCC_END 330
-#define PCC_CALL 331
-#define PCC_SUB 332
-#define PCC_BEGIN_RETURN 333
-#define PCC_END_RETURN 334
-#define PCC_BEGIN_YIELD 335
-#define PCC_END_YIELD 336
-#define NCI_CALL 337
-#define METH_CALL 338
-#define INVOCANT 339
-#define MAIN 340
-#define LOAD 341
-#define INIT 342
-#define IMMEDIATE 343
-#define POSTCOMP 344
-#define METHOD 345
-#define ANON 346
-#define OUTER 347
-#define NEED_LEX 348
-#define MULTI 349
-#define VTABLE_METHOD 350
-#define LOADLIB 351
-#define SUB_INSTANCE_OF 352
-#define SUBID 353
-#define NS_ENTRY 354
-#define UNIQUE_REG 355
-#define LABEL 356
-#define EMIT 357
-#define EOM 358
-#define IREG 359
-#define NREG 360
-#define SREG 361
-#define PREG 362
-#define IDENTIFIER 363
-#define REG 364
-#define MACRO 365
-#define ENDM 366
-#define STRINGC 367
-#define INTC 368
-#define FLOATC 369
-#define USTRINGC 370
-#define PARROT_OP 371
-#define VAR 372
-#define LINECOMMENT 373
-#define FILECOMMENT 374
-#define DOT 375
-#define CONCAT 376
+#define SOL 260
+#define HLL 261
+#define TK_LINE 262
+#define TK_FILE 263
+#define GOTO 264
+#define ARG 265
+#define IF 266
+#define UNLESS 267
+#define PNULL 268
+#define SET_RETURN 269
+#define SET_YIELD 270
+#define ADV_FLAT 271
+#define ADV_SLURPY 272
+#define ADV_OPTIONAL 273
+#define ADV_OPT_FLAG 274
+#define ADV_NAMED 275
+#define ADV_ARROW 276
+#define NEW 277
+#define ADV_INVOCANT 278
+#define ADV_CALL_SIG 279
+#define NAMESPACE 280
+#define DOT_METHOD 281
+#define SUB 282
+#define SYM 283
+#define LOCAL 284
+#define LEXICAL 285
+#define CONST 286
+#define ANNOTATE 287
+#define INC 288
+#define DEC 289
+#define GLOBAL_CONST 290
+#define PLUS_ASSIGN 291
+#define MINUS_ASSIGN 292
+#define MUL_ASSIGN 293
+#define DIV_ASSIGN 294
+#define CONCAT_ASSIGN 295
+#define BAND_ASSIGN 296
+#define BOR_ASSIGN 297
+#define BXOR_ASSIGN 298
+#define FDIV 299
+#define FDIV_ASSIGN 300
+#define MOD_ASSIGN 301
+#define SHR_ASSIGN 302
+#define SHL_ASSIGN 303
+#define SHR_U_ASSIGN 304
+#define SHIFT_LEFT 305
+#define SHIFT_RIGHT 306
+#define INTV 307
+#define FLOATV 308
+#define STRINGV 309
+#define PMCV 310
+#define LOG_XOR 311
+#define RELOP_EQ 312
+#define RELOP_NE 313
+#define RELOP_GT 314
+#define RELOP_GTE 315
+#define RELOP_LT 316
+#define RELOP_LTE 317
+#define RESULT 318
+#define RETURN 319
+#define TAILCALL 320
+#define YIELDT 321
+#define GET_RESULTS 322
+#define POW 323
+#define SHIFT_RIGHT_U 324
+#define LOG_AND 325
+#define LOG_OR 326
+#define COMMA 327
+#define ESUB 328
+#define DOTDOT 329
+#define PCC_BEGIN 330
+#define PCC_END 331
+#define PCC_CALL 332
+#define PCC_SUB 333
+#define PCC_BEGIN_RETURN 334
+#define PCC_END_RETURN 335
+#define PCC_BEGIN_YIELD 336
+#define PCC_END_YIELD 337
+#define NCI_CALL 338
+#define METH_CALL 339
+#define INVOCANT 340
+#define MAIN 341
+#define LOAD 342
+#define INIT 343
+#define IMMEDIATE 344
+#define POSTCOMP 345
+#define METHOD 346
+#define ANON 347
+#define OUTER 348
+#define NEED_LEX 349
+#define MULTI 350
+#define VTABLE_METHOD 351
+#define LOADLIB 352
+#define SUB_INSTANCE_OF 353
+#define SUBID 354
+#define NS_ENTRY 355
+#define UNIQUE_REG 356
+#define LABEL 357
+#define EMIT 358
+#define EOM 359
+#define IREG 360
+#define NREG 361
+#define SREG 362
+#define PREG 363
+#define IDENTIFIER 364
+#define REG 365
+#define MACRO 366
+#define ENDM 367
+#define STRINGC 368
+#define INTC 369
+#define FLOATC 370
+#define USTRINGC 371
+#define PARROT_OP 372
+#define VAR 373
+#define LINECOMMENT 374
+#define FILECOMMENT 375
+#define DOT 376
+#define CONCAT 377
 
 
 
@@ -1443,7 +1445,7 @@
 
 
 /* Line 214 of yacc.c  */
-#line 1436 "compilers/imcc/imcparser.c"
+#line 1438 "compilers/imcc/imcparser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1455,7 +1457,7 @@
 
 
 /* Line 264 of yacc.c  */
-#line 1448 "compilers/imcc/imcparser.c"
+#line 1450 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -1670,10 +1672,10 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  31
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   659
+#define YYLAST   686
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  139
+#define YYNTOKENS  140
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  126
 /* YYNRULES -- Number of rules.  */
@@ -1683,7 +1685,7 @@
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   376
+#define YYMAXUTOK   377
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -1694,16 +1696,16 @@
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        4,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   129,     2,     2,     2,   135,   136,     2,
-     126,   127,   133,   132,     2,   131,     2,   134,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,   138,
-       2,   123,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   130,     2,     2,     2,   136,   137,     2,
+     127,   128,   134,   133,     2,   132,     2,   135,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,   139,
+       2,   124,     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,   124,     2,   125,     2,     2,     2,     2,     2,     2,
+       2,   125,     2,   126,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     128,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,   137,     2,   130,     2,     2,     2,
+     129,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,   138,     2,   131,     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,
@@ -1728,7 +1730,7 @@
       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
+     116,   117,   118,   119,   120,   121,   122,   123
 };
 
 #if YYDEBUG
@@ -1775,102 +1777,102 @@
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     140,     0,    -1,   141,    -1,   142,    -1,   141,   142,    -1,
-     162,    -1,   147,    -1,   164,    -1,   159,    -1,   111,     4,
-      -1,   143,    -1,   144,    -1,     4,    -1,   146,     4,    -1,
-      97,   113,     4,    -1,     7,   114,    72,   113,     4,    -1,
-       8,   113,     4,    -1,    32,   113,    72,   264,    -1,     6,
-     113,    -1,    -1,    31,   148,   223,   109,   123,   264,    -1,
-      -1,    31,   150,   114,   255,   123,   152,    -1,    -1,    31,
-     151,   113,   255,   123,   152,    -1,   113,    -1,   116,    -1,
-     154,    -1,   153,   154,    -1,   212,   155,     4,    -1,   111,
-       4,    -1,   120,    -1,   119,    -1,   162,    -1,   149,    -1,
-     143,    -1,    -1,   156,   117,   158,    -1,    -1,    78,   157,
-     186,   102,    -1,    13,   256,    -1,    30,   113,    72,   110,
-      -1,    -1,   249,    -1,    -1,   103,   160,   161,   104,    -1,
-      -1,   153,    -1,    25,   163,     4,    -1,   124,   257,   125,
-      -1,   124,   125,    -1,    -1,    -1,    -1,    27,   165,   252,
-     166,   186,     4,   167,   168,   181,    73,    -1,    -1,     4,
-      -1,   168,   169,     4,    -1,    -1,     5,   170,   171,    -1,
-     223,   109,   195,    -1,    95,   126,   179,   127,    -1,    93,
-     126,   113,   127,    -1,    93,   126,   109,   127,    -1,    96,
-      -1,    96,   126,   113,   127,    -1,    91,    -1,    91,   126,
-     152,   127,    -1,   100,    -1,   100,   126,   152,   127,    -1,
-      98,   126,   113,   127,    -1,    99,    -1,    99,   126,   152,
-     127,    -1,    -1,   179,    72,   180,    -1,   180,    -1,    52,
-      -1,    53,    -1,    55,    -1,    54,    -1,   109,    -1,   113,
-      -1,   124,   257,   125,    -1,    -1,   209,    -1,    -1,    75,
-       4,   183,   190,   185,   189,   184,   192,    76,    -1,    -1,
-     214,     4,    -1,    -1,    85,   256,     4,    -1,    -1,   187,
-      -1,   188,    -1,   187,   188,    -1,    87,    -1,    88,    -1,
-      86,    -1,    89,    -1,    90,    -1,    92,    -1,    94,    -1,
-     172,    -1,   173,    -1,   174,    -1,   175,    -1,   176,    -1,
-     177,    -1,   178,    -1,    77,   256,    72,   256,     4,    -1,
-      77,   256,     4,    -1,    83,   256,     4,    -1,    84,   248,
-       4,    -1,    84,   113,     4,    -1,    84,   248,    72,   256,
-       4,    -1,    84,   113,    72,   256,     4,    -1,    -1,   190,
-     191,     4,    -1,    10,   238,    -1,    -1,   192,   193,     4,
-      -1,    63,   248,   195,    -1,    -1,    29,   194,   223,   217,
-      -1,    -1,   195,   196,    -1,    17,    -1,    18,    -1,    19,
-      -1,    20,    -1,    20,   126,   113,   127,    -1,    20,   126,
-     116,   127,    -1,   101,    -1,    24,    -1,    -1,    79,     4,
-     198,   201,    80,    -1,   205,    -1,    -1,    81,     4,   200,
-     202,    82,    -1,    -1,   201,     4,    -1,   201,   203,     4,
-      -1,    -1,   202,     4,    -1,   202,   204,     4,    -1,    14,
-     256,   239,    -1,    15,   256,   239,    -1,    -1,   207,   126,
-     206,   208,   127,    -1,    64,    -1,    66,    -1,    -1,   238,
-      -1,   113,    21,   256,    -1,   208,    72,   238,    -1,   208,
-      72,   113,    21,   256,    -1,   211,    -1,   209,   211,    -1,
-      -1,   210,   215,    -1,   111,     4,    -1,   120,    -1,   119,
-      -1,   144,    -1,   145,    -1,    -1,   213,    -1,   213,   214,
-      -1,   214,    -1,   102,    -1,   212,   219,     4,    -1,     1,
-       4,    -1,   217,    -1,   216,    72,   217,    -1,   109,   218,
-      -1,    -1,   101,    -1,   225,    -1,   243,    -1,    -1,    29,
-     220,   223,   216,    -1,    30,   113,    72,   248,    -1,    30,
-     116,    72,   248,    -1,    -1,    31,   221,   223,   109,   123,
-     264,    -1,   149,    -1,    -1,    35,   222,   223,   109,   123,
-     264,    -1,    65,   235,    -1,     9,   254,    -1,   117,   249,
-      -1,    13,   256,    -1,   235,    -1,   182,    -1,   197,    -1,
-     199,    -1,    -1,    52,    -1,    53,    -1,    54,    -1,    55,
-      -1,   109,    -1,   248,   123,   256,    -1,   248,   123,   227,
-     256,    -1,   248,   123,   256,   228,   256,    -1,   248,   123,
-     256,   124,   257,   125,    -1,   248,   124,   257,   125,   123,
-     256,    -1,   248,   123,   128,   224,   124,   257,   125,    -1,
-     248,   123,   235,    -1,    -1,   126,   226,   242,   127,   123,
-     234,   126,   237,   127,    -1,   229,    -1,   231,    -1,   233,
-      -1,   248,   123,    13,    -1,   129,    -1,   130,    -1,   131,
-      -1,   131,    -1,   132,    -1,   133,    -1,   134,    -1,   135,
-      -1,    44,    -1,    68,    -1,   122,    -1,    57,    -1,    58,
-      -1,    59,    -1,    60,    -1,    61,    -1,    62,    -1,    50,
-      -1,    51,    -1,    69,    -1,    70,    -1,    71,    -1,    56,
-      -1,   136,    -1,   137,    -1,   130,    -1,    -1,    67,   230,
-     126,   242,   127,    -1,   248,   232,   256,    -1,    36,    -1,
-      37,    -1,    38,    -1,    39,    -1,    46,    -1,    45,    -1,
-      40,    -1,    41,    -1,    42,    -1,    43,    -1,    47,    -1,
-      48,    -1,    49,    -1,   248,   123,   117,   158,    -1,   109,
-      -1,   113,    -1,   116,    -1,   248,    -1,   248,   121,   253,
-      -1,   248,   121,   116,    -1,   248,   121,   113,    -1,   248,
-     121,   248,    -1,    -1,   234,   236,   126,   237,   127,    -1,
-      -1,   237,    72,   238,    -1,   238,    -1,   237,    72,   113,
-      21,   256,    -1,   256,    21,   256,    -1,   113,    21,   256,
-      -1,   256,   239,    -1,    -1,   239,   240,    -1,    16,    -1,
-      20,    -1,    24,    -1,    20,   126,   116,   127,    -1,    20,
-     126,   113,   127,    -1,   248,   195,    -1,   242,    72,   241,
-      -1,   242,    72,   113,    21,   248,    -1,   241,    -1,   113,
-      21,   248,    -1,    -1,   245,    -1,   244,    -1,    12,   256,
-     247,   256,     9,   254,    -1,    12,    13,   256,     9,   254,
-      -1,    12,   256,   246,   254,    -1,    11,   256,   246,   254,
-      -1,    11,   256,   247,   256,     9,   254,    -1,    11,    13,
-     256,     9,   254,    -1,    72,    -1,     9,    -1,    57,    -1,
-      58,    -1,    59,    -1,    60,    -1,    61,    -1,    62,    -1,
-     118,    -1,   263,    -1,    -1,   250,    -1,   250,    72,   251,
-      -1,   251,    -1,   255,    -1,   248,   124,   257,   125,    -1,
-     124,   259,   125,    -1,   253,    -1,   113,    -1,   116,    -1,
-     109,    -1,   117,    -1,   109,    -1,   117,    -1,   254,    -1,
-     256,    -1,   248,    -1,   264,    -1,    -1,   258,   261,    -1,
-      -1,   260,   261,    -1,   262,    -1,   261,   138,   262,    -1,
-     256,    -1,   105,    -1,   106,    -1,   107,    -1,   108,    -1,
-     110,    -1,   114,    -1,   115,    -1,   113,    -1,   116,    -1
+     141,     0,    -1,   142,    -1,   143,    -1,   142,   143,    -1,
+     163,    -1,   148,    -1,   165,    -1,   160,    -1,   112,     4,
+      -1,   144,    -1,   145,    -1,     4,    -1,   147,     4,    -1,
+      98,   114,     4,    -1,     8,   115,    73,   114,     4,    -1,
+       9,   114,     4,    -1,    33,   114,    73,   265,    -1,     7,
+     114,    -1,    -1,    32,   149,   224,   110,   124,   265,    -1,
+      -1,    32,   151,   115,   256,   124,   153,    -1,    -1,    32,
+     152,   114,   256,   124,   153,    -1,   114,    -1,   117,    -1,
+     155,    -1,   154,   155,    -1,   213,   156,     4,    -1,   112,
+       4,    -1,   121,    -1,   120,    -1,   163,    -1,   150,    -1,
+     144,    -1,    -1,   157,   118,   159,    -1,    -1,    79,   158,
+     187,   103,    -1,    14,   257,    -1,    31,   114,    73,   111,
+      -1,    -1,   250,    -1,    -1,   104,   161,   162,   105,    -1,
+      -1,   154,    -1,    26,   164,     4,    -1,   125,   258,   126,
+      -1,   125,   126,    -1,    -1,    -1,    -1,    28,   166,   253,
+     167,   187,     4,   168,   169,   182,    74,    -1,    -1,     4,
+      -1,   169,   170,     4,    -1,    -1,     5,   171,   172,    -1,
+     224,   110,   196,    -1,    96,   127,   180,   128,    -1,    94,
+     127,   114,   128,    -1,    94,   127,   110,   128,    -1,    97,
+      -1,    97,   127,   114,   128,    -1,    92,    -1,    92,   127,
+     153,   128,    -1,   101,    -1,   101,   127,   153,   128,    -1,
+      99,   127,   114,   128,    -1,   100,    -1,   100,   127,   153,
+     128,    -1,    -1,   180,    73,   181,    -1,   181,    -1,    53,
+      -1,    54,    -1,    56,    -1,    55,    -1,   110,    -1,   114,
+      -1,   125,   258,   126,    -1,    -1,   210,    -1,    -1,    76,
+       4,   184,   191,   186,   190,   185,   193,    77,    -1,    -1,
+     215,     4,    -1,    -1,    86,   257,     4,    -1,    -1,   188,
+      -1,   189,    -1,   188,   189,    -1,    88,    -1,    89,    -1,
+      87,    -1,    90,    -1,    91,    -1,    93,    -1,    95,    -1,
+     173,    -1,   174,    -1,   175,    -1,   176,    -1,   177,    -1,
+     178,    -1,   179,    -1,    78,   257,    73,   257,     4,    -1,
+      78,   257,     4,    -1,    84,   257,     4,    -1,    85,   249,
+       4,    -1,    85,   114,     4,    -1,    85,   249,    73,   257,
+       4,    -1,    85,   114,    73,   257,     4,    -1,    -1,   191,
+     192,     4,    -1,    11,   239,    -1,    -1,   193,   194,     4,
+      -1,    64,   249,   196,    -1,    -1,    30,   195,   224,   218,
+      -1,    -1,   196,   197,    -1,    18,    -1,    19,    -1,    20,
+      -1,    21,    -1,    21,   127,   114,   128,    -1,    21,   127,
+     117,   128,    -1,   102,    -1,    25,    -1,    -1,    80,     4,
+     199,   202,    81,    -1,   206,    -1,    -1,    82,     4,   201,
+     203,    83,    -1,    -1,   202,     4,    -1,   202,   204,     4,
+      -1,    -1,   203,     4,    -1,   203,   205,     4,    -1,    15,
+     257,   240,    -1,    16,   257,   240,    -1,    -1,   208,   127,
+     207,   209,   128,    -1,    65,    -1,    67,    -1,    -1,   239,
+      -1,   114,    22,   257,    -1,   209,    73,   239,    -1,   209,
+      73,   114,    22,   257,    -1,   212,    -1,   210,   212,    -1,
+      -1,   211,   216,    -1,   112,     4,    -1,   121,    -1,   120,
+      -1,   145,    -1,   146,    -1,    -1,   214,    -1,   214,   215,
+      -1,   215,    -1,   103,    -1,   213,   220,     4,    -1,     1,
+       4,    -1,   218,    -1,   217,    73,   218,    -1,   110,   219,
+      -1,    -1,   102,    -1,   226,    -1,   244,    -1,    -1,    30,
+     221,   224,   217,    -1,    31,   114,    73,   249,    -1,    31,
+     117,    73,   249,    -1,    -1,    32,   222,   224,   110,   124,
+     265,    -1,   150,    -1,    -1,    36,   223,   224,   110,   124,
+     265,    -1,    66,   236,    -1,    10,   255,    -1,   118,   250,
+      -1,    14,   257,    -1,   236,    -1,   183,    -1,   198,    -1,
+     200,    -1,    -1,    53,    -1,    54,    -1,    55,    -1,    56,
+      -1,   110,    -1,   249,   124,   257,    -1,   249,   124,   228,
+     257,    -1,   249,   124,   257,   229,   257,    -1,   249,   124,
+     257,   125,   258,   126,    -1,   249,   125,   258,   126,   124,
+     257,    -1,   249,   124,   129,   225,   125,   258,   126,    -1,
+     249,   124,   236,    -1,    -1,   127,   227,   243,   128,   124,
+     235,   127,   238,   128,    -1,   230,    -1,   232,    -1,   234,
+      -1,   249,   124,    14,    -1,   130,    -1,   131,    -1,   132,
+      -1,   132,    -1,   133,    -1,   134,    -1,   135,    -1,   136,
+      -1,    45,    -1,    69,    -1,   123,    -1,    58,    -1,    59,
+      -1,    60,    -1,    61,    -1,    62,    -1,    63,    -1,    51,
+      -1,    52,    -1,    70,    -1,    71,    -1,    72,    -1,    57,
+      -1,   137,    -1,   138,    -1,   131,    -1,    -1,    68,   231,
+     127,   243,   128,    -1,   249,   233,   257,    -1,    37,    -1,
+      38,    -1,    39,    -1,    40,    -1,    47,    -1,    46,    -1,
+      41,    -1,    42,    -1,    43,    -1,    44,    -1,    48,    -1,
+      49,    -1,    50,    -1,   249,   124,   118,   159,    -1,   110,
+      -1,   114,    -1,   117,    -1,   249,    -1,   249,   122,   254,
+      -1,   249,   122,   117,    -1,   249,   122,   114,    -1,   249,
+     122,   249,    -1,    -1,   235,   237,   127,   238,   128,    -1,
+      -1,   238,    73,   239,    -1,   239,    -1,   238,    73,   114,
+      22,   257,    -1,   257,    22,   257,    -1,   114,    22,   257,
+      -1,   257,   240,    -1,    -1,   240,   241,    -1,    17,    -1,
+      21,    -1,    25,    -1,    21,   127,   117,   128,    -1,    21,
+     127,   114,   128,    -1,   249,   196,    -1,   243,    73,   242,
+      -1,   243,    73,   114,    22,   249,    -1,   242,    -1,   114,
+      22,   249,    -1,    -1,   246,    -1,   245,    -1,    13,   257,
+     248,   257,    10,   255,    -1,    13,    14,   257,    10,   255,
+      -1,    13,   257,   247,   255,    -1,    12,   257,   247,   255,
+      -1,    12,   257,   248,   257,    10,   255,    -1,    12,    14,
+     257,    10,   255,    -1,    73,    -1,    10,    -1,    58,    -1,
+      59,    -1,    60,    -1,    61,    -1,    62,    -1,    63,    -1,
+     119,    -1,   264,    -1,    -1,   251,    -1,   251,    73,   252,
+      -1,   252,    -1,   256,    -1,   249,   125,   258,   126,    -1,
+     125,   260,   126,    -1,   254,    -1,   114,    -1,   117,    -1,
+     110,    -1,   118,    -1,   110,    -1,   118,    -1,   255,    -1,
+     257,    -1,   249,    -1,   265,    -1,    -1,   259,   262,    -1,
+      -1,   261,   262,    -1,   263,    -1,   262,   139,   263,    -1,
+     257,    -1,   106,    -1,   107,    -1,   108,    -1,   109,    -1,
+     111,    -1,   115,    -1,   116,    -1,   114,    -1,   117,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -1918,8 +1920,8 @@
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "LOW_PREC", "'\\n'", "PARAM", "HLL",
-  "TK_LINE", "TK_FILE", "GOTO", "ARG", "IF", "UNLESS", "PNULL",
+  "$end", "error", "$undefined", "LOW_PREC", "'\\n'", "PARAM", "SOL",
+  "HLL", "TK_LINE", "TK_FILE", "GOTO", "ARG", "IF", "UNLESS", "PNULL",
   "SET_RETURN", "SET_YIELD", "ADV_FLAT", "ADV_SLURPY", "ADV_OPTIONAL",
   "ADV_OPT_FLAG", "ADV_NAMED", "ADV_ARROW", "NEW", "ADV_INVOCANT",
   "ADV_CALL_SIG", "NAMESPACE", "DOT_METHOD", "SUB", "SYM", "LOCAL",
@@ -1984,48 +1986,48 @@
      344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
      354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
      364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
-     374,   375,   376,    61,    91,    93,    40,    41,   110,    33,
-     126,    45,    43,    42,    47,    37,    38,   124,    59
+     374,   375,   376,   377,    61,    91,    93,    40,    41,   110,
+      33,   126,    45,    43,    42,    47,    37,    38,   124,    59
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   139,   140,   141,   141,   142,   142,   142,   142,   142,
-     142,   142,   142,   143,   143,   144,   144,   145,   146,   148,
-     147,   150,   149,   151,   149,   152,   152,   153,   153,   154,
-     154,   154,   154,   154,   154,   154,   156,   155,   157,   155,
-     155,   155,   155,   158,   160,   159,   161,   161,   162,   163,
-     163,   165,   166,   167,   164,   168,   168,   168,   170,   169,
-     171,   172,   173,   173,   174,   174,   175,   175,   176,   176,
-     177,   178,   178,   179,   179,   179,   180,   180,   180,   180,
-     180,   180,   180,   181,   181,   183,   182,   184,   184,   185,
-     185,   186,   186,   187,   187,   188,   188,   188,   188,   188,
-     188,   188,   188,   188,   188,   188,   188,   188,   188,   189,
-     189,   189,   189,   189,   189,   189,   190,   190,   191,   192,
-     192,   193,   194,   193,   195,   195,   196,   196,   196,   196,
-     196,   196,   196,   196,   198,   197,   197,   200,   199,   201,
-     201,   201,   202,   202,   202,   203,   204,   206,   205,   207,
-     207,   208,   208,   208,   208,   208,   209,   209,   210,   211,
-     211,   211,   211,   211,   211,   212,   212,   213,   213,   214,
-     215,   215,   216,   216,   217,   218,   218,   219,   219,   220,
-     219,   219,   219,   221,   219,   219,   222,   219,   219,   219,
-     219,   219,   219,   219,   219,   219,   219,   223,   223,   223,
-     223,   224,   225,   225,   225,   225,   225,   225,   225,   226,
-     225,   225,   225,   225,   225,   227,   227,   227,   228,   228,
-     228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
-     228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
-     228,   230,   229,   231,   232,   232,   232,   232,   232,   232,
-     232,   232,   232,   232,   232,   232,   232,   233,   234,   234,
-     234,   234,   234,   234,   234,   234,   236,   235,   237,   237,
-     237,   237,   237,   237,   238,   239,   239,   240,   240,   240,
-     240,   240,   241,   242,   242,   242,   242,   242,   243,   243,
-     244,   244,   244,   245,   245,   245,   246,   246,   247,   247,
-     247,   247,   247,   247,   248,   248,   249,   249,   250,   250,
-     251,   251,   251,   252,   252,   252,   253,   253,   254,   254,
-     255,   255,   256,   256,   258,   257,   260,   259,   261,   261,
-     262,   263,   263,   263,   263,   263,   264,   264,   264,   264
+       0,   140,   141,   142,   142,   143,   143,   143,   143,   143,
+     143,   143,   143,   144,   144,   145,   145,   146,   147,   149,
+     148,   151,   150,   152,   150,   153,   153,   154,   154,   155,
+     155,   155,   155,   155,   155,   155,   157,   156,   158,   156,
+     156,   156,   156,   159,   161,   160,   162,   162,   163,   164,
+     164,   166,   167,   168,   165,   169,   169,   169,   171,   170,
+     172,   173,   174,   174,   175,   175,   176,   176,   177,   177,
+     178,   179,   179,   180,   180,   180,   181,   181,   181,   181,
+     181,   181,   181,   182,   182,   184,   183,   185,   185,   186,
+     186,   187,   187,   188,   188,   189,   189,   189,   189,   189,
+     189,   189,   189,   189,   189,   189,   189,   189,   189,   190,
+     190,   190,   190,   190,   190,   190,   191,   191,   192,   193,
+     193,   194,   195,   194,   196,   196,   197,   197,   197,   197,
+     197,   197,   197,   197,   199,   198,   198,   201,   200,   202,
+     202,   202,   203,   203,   203,   204,   205,   207,   206,   208,
+     208,   209,   209,   209,   209,   209,   210,   210,   211,   212,
+     212,   212,   212,   212,   212,   213,   213,   214,   214,   215,
+     216,   216,   217,   217,   218,   219,   219,   220,   220,   221,
+     220,   220,   220,   222,   220,   220,   223,   220,   220,   220,
+     220,   220,   220,   220,   220,   220,   220,   224,   224,   224,
+     224,   225,   226,   226,   226,   226,   226,   226,   226,   227,
+     226,   226,   226,   226,   226,   228,   228,   228,   229,   229,
+     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
+     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
+     229,   231,   230,   232,   233,   233,   233,   233,   233,   233,
+     233,   233,   233,   233,   233,   233,   233,   234,   235,   235,
+     235,   235,   235,   235,   235,   235,   237,   236,   238,   238,
+     238,   238,   238,   238,   239,   240,   240,   241,   241,   241,
+     241,   241,   242,   243,   243,   243,   243,   243,   244,   244,
+     245,   245,   245,   246,   246,   246,   247,   247,   248,   248,
+     248,   248,   248,   248,   249,   249,   250,   250,   251,   251,
+     252,   252,   252,   253,   253,   253,   254,   254,   255,   255,
+     256,   256,   257,   257,   259,   258,   261,   260,   262,   262,
+     263,   264,   264,   264,   264,   264,   265,   265,   265,   265
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -2152,79 +2154,79 @@
 #define YYPACT_NINF -424
 static const yytype_int16 yypact[] =
 {
-     219,  -424,   -86,   -55,   -62,   -58,  -424,  -424,    -8,  -424,
-      82,   163,   219,  -424,  -424,  -424,   169,  -424,  -424,  -424,
-    -424,  -424,    93,   171,    58,   184,    95,   166,   188,    70,
-    -424,  -424,  -424,  -424,    90,  -424,  -424,    81,   439,  -424,
+     212,  -424,   -90,   -80,   -21,   -28,  -424,  -424,     9,  -424,
+     118,   151,   212,  -424,  -424,  -424,   149,  -424,  -424,  -424,
+    -424,  -424,    93,   153,    32,   163,   154,   125,   171,   180,
+    -424,  -424,  -424,  -424,    68,  -424,  -424,    66,   441,  -424,
     -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
-     100,  -424,   109,  -424,   220,  -424,  -424,  -424,  -424,   160,
-    -424,   129,  -424,    67,   133,  -424,   232,  -424,  -424,  -424,
+      94,  -424,    89,  -424,   204,  -424,  -424,  -424,  -424,   247,
+    -424,   104,  -424,    13,   108,  -424,   209,  -424,  -424,  -424,
     -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
-      99,  -424,  -424,  -424,   421,   117,   131,   135,  -424,  -424,
-    -424,   439,   136,  -424,   250,   134,  -424,  -424,   439,  -424,
-    -424,  -424,  -424,  -424,   130,  -424,   132,  -424,   137,   142,
-     146,   147,   149,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
-     251,   421,  -424,   115,   425,   425,  -424,   204,   421,  -424,
-     350,  -424,    48,   -19,   161,   164,   165,    48,    48,  -424,
-    -424,  -424,  -424,  -424,  -424,   159,  -424,   177,   182,   200,
-    -424,  -424,   179,  -424,   234,  -424,  -424,  -424,  -424,   180,
-     181,   183,  -424,  -424,  -424,  -424,  -424,  -424,  -424,   -64,
-    -424,   186,   190,   191,   192,   300,    48,    48,  -424,  -424,
-     196,   439,  -424,   350,  -424,  -424,  -424,   198,   161,  -424,
-    -424,  -424,  -424,  -424,  -424,    49,  -424,  -424,  -424,    99,
-     199,  -424,  -424,  -424,  -424,   213,   323,  -424,  -424,  -424,
-    -424,   324,   256,    60,     8,  -424,  -424,   166,   259,  -424,
-    -424,  -424,  -424,   328,   230,  -424,  -424,   224,   115,  -424,
-     -67,   253,   270,   439,  -424,    71,    42,  -424,  -424,   509,
-    -424,  -424,   330,   337,   338,  -424,  -424,  -424,   350,  -424,
-    -424,  -424,  -424,  -424,  -424,   223,   341,  -424,  -424,  -424,
-    -424,  -424,  -424,  -424,  -424,  -424,   405,  -424,  -424,  -424,
-     439,   229,   439,   229,  -424,   166,   278,   290,   166,   166,
-    -424,   243,   244,  -424,  -424,  -424,  -424,   523,  -424,  -424,
-     246,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
-    -424,  -424,  -424,  -424,   379,    22,  -424,   439,     5,   364,
-    -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,   -67,   439,
-     365,   -67,   439,   272,   247,   247,   280,   281,   523,  -424,
-    -424,  -424,   358,  -424,   -39,  -424,   453,   467,  -424,  -424,
-    -424,  -424,  -424,   261,   265,   350,   283,  -424,  -424,  -424,
-     439,  -424,    28,   369,   268,  -424,  -424,  -424,  -424,   271,
-    -424,  -424,  -424,   -67,  -424,   385,   -67,  -424,   389,   298,
-     329,  -424,  -424,  -424,   282,   284,   -36,     0,    27,    11,
-     247,   532,   285,     5,   382,   -27,  -424,  -424,   388,   -24,
-    -424,   393,  -424,  -424,   293,  -424,  -424,  -424,  -424,  -424,
+      75,  -424,  -424,  -424,   483,    91,   103,   114,  -424,  -424,
+    -424,   441,   115,  -424,   226,   113,  -424,  -424,   441,  -424,
+    -424,  -424,  -424,  -424,   106,  -424,   109,  -424,   119,   121,
+     122,   123,   124,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
+     231,   483,  -424,    74,   255,   255,  -424,   172,   483,  -424,
+     426,  -424,   -40,   -69,   387,   141,   142,   -40,   -40,  -424,
+    -424,  -424,  -424,  -424,  -424,   133,  -424,   134,   152,   159,
+    -424,  -424,   145,  -424,   193,  -424,  -424,  -424,  -424,   146,
+     147,   148,  -424,  -424,  -424,  -424,  -424,  -424,  -424,   -58,
+    -424,   160,   161,   162,   174,   273,   -40,   -40,  -424,  -424,
+     156,   441,  -424,   426,  -424,  -424,  -424,   165,   387,  -424,
+    -424,  -424,  -424,  -424,  -424,    29,  -424,  -424,  -424,    75,
+     177,  -424,  -424,  -424,  -424,   166,   283,  -424,  -424,  -424,
+    -424,   300,   232,    34,    18,  -424,  -424,   125,   234,  -424,
+    -424,  -424,  -424,   304,   229,  -424,  -424,   203,    74,  -424,
+     -85,   272,   320,   441,  -424,    -7,    24,  -424,  -424,   535,
+    -424,  -424,   313,   314,   315,  -424,  -424,  -424,   426,  -424,
+    -424,  -424,  -424,  -424,  -424,   194,   318,  -424,  -424,  -424,
+    -424,  -424,  -424,  -424,  -424,  -424,   444,  -424,  -424,  -424,
+     441,   164,   441,   164,  -424,   125,   250,   253,   125,   125,
+    -424,   205,   215,  -424,  -424,  -424,  -424,   549,  -424,  -424,
+     227,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
+    -424,  -424,  -424,  -424,   396,    54,  -424,   441,    38,   322,
+    -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,   -85,   441,
+     339,   -85,   441,   243,   222,   222,   245,   248,   549,  -424,
+    -424,  -424,   335,  -424,   -47,  -424,   479,   493,  -424,  -424,
+    -424,  -424,  -424,   233,   249,   426,   265,  -424,  -424,  -424,
+     441,  -424,   -18,   393,   251,  -424,  -424,  -424,  -424,   257,
+    -424,  -424,  -424,   -85,  -424,   375,   -85,  -424,   380,   290,
+     321,  -424,  -424,  -424,   269,   274,   -37,     2,     8,     4,
+     222,   558,   275,    38,   379,   -33,  -424,  -424,   381,   -27,
+    -424,   383,  -424,  -424,   281,  -424,  -424,  -424,  -424,  -424,
     -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
     -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
-     439,   301,    85,  -424,   -67,  -424,   -67,  -424,  -424,   272,
-     115,   115,  -424,   439,   439,   -37,   402,  -424,   439,  -424,
-     417,  -424,   439,  -424,   419,  -424,   413,  -424,   509,   439,
-     481,  -424,   162,   439,   495,  -424,   439,  -424,   310,  -424,
-     439,   309,   322,  -424,  -424,  -424,  -424,  -424,  -424,   457,
-     439,   439,   541,   133,  -424,  -424,  -424,  -424,  -424,   247,
-     336,  -424,   450,  -424,  -424,   347,  -424,  -424,  -424,   455,
-    -424,  -424,   352,  -424,  -424,  -424,  -424,  -424,    10,   475,
-      12,    26,  -424,   477,   162,   162,  -424,   467,   439,    86,
-     439,  -424,  -424,   439,  -424,  -424,   439,  -424,   439,    94,
-    -424,   -23,  -424,   355,   356,  -424,   486,   490,   494,  -424,
-     247,  -424,   514,  -424,  -424,  -424,  -424,  -424,  -424,   166,
-    -424,  -424,   272,     5,  -424
+     441,   284,    84,  -424,   -85,  -424,   -85,  -424,  -424,   243,
+      74,    74,  -424,   441,   441,   -12,   403,  -424,   441,  -424,
+     405,  -424,   441,  -424,   409,  -424,   392,  -424,   535,   441,
+     507,  -424,   131,   441,   521,  -424,   441,  -424,   271,  -424,
+     441,   289,   291,  -424,  -424,  -424,  -424,  -424,  -424,   416,
+     441,   441,   567,   108,  -424,  -424,  -424,  -424,  -424,   222,
+     294,  -424,   401,  -424,  -424,   297,  -424,  -424,  -424,   408,
+    -424,  -424,   299,  -424,  -424,  -424,  -424,  -424,     5,   442,
+       6,    17,  -424,   443,   131,   131,  -424,   493,   441,    85,
+     441,  -424,  -424,   441,  -424,  -424,   441,  -424,   441,    41,
+    -424,   -22,  -424,   329,   330,  -424,   445,   455,   456,  -424,
+     222,  -424,   457,  -424,  -424,  -424,  -424,  -424,  -424,   125,
+    -424,  -424,   243,    38,  -424
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -424,  -424,  -424,   510,    -1,  -161,  -424,  -424,  -424,  -424,
-     299,  -424,  -424,   -68,  -424,   465,  -424,  -424,  -424,   203,
-    -424,  -424,  -424,     3,  -424,  -424,  -424,  -424,  -424,  -424,
+    -424,  -424,  -424,   436,    10,  -166,  -424,  -424,  -424,  -424,
+     242,  -424,  -424,   -62,  -424,   412,  -424,  -424,  -424,   128,
+    -424,  -424,  -424,    23,  -424,  -424,  -424,  -424,  -424,  -424,
     -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
-    -424,   339,  -424,  -424,  -424,  -424,  -424,   397,  -424,   415,
+    -424,   279,  -424,  -424,  -424,  -424,  -424,   340,  -424,   353,
     -424,  -424,  -424,  -424,  -424,  -424,  -330,  -424,  -424,  -424,
     -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,  -424,
-    -424,  -424,   343,   348,  -424,   -63,  -424,  -424,  -423,  -424,
+    -424,  -424,   263,   282,  -424,   -63,  -424,  -424,  -423,  -424,
     -424,  -424,  -424,  -424,  -214,  -424,  -424,  -424,  -424,  -424,
-    -424,  -424,  -424,  -424,  -424,    89,  -226,  -424,    43,  -292,
-    -329,  -424,   170,   236,  -424,  -424,  -424,   292,   297,  -128,
-     331,  -424,   395,  -424,   286,  -219,   -47,   -38,  -164,  -424,
-    -424,  -424,   403,   478,  -424,  -116
+    -424,  -424,  -424,  -424,  -424,    31,  -225,  -424,   -30,  -320,
+    -344,  -424,   117,   167,  -424,  -424,  -424,   216,   235,  -128,
+     252,  -424,   316,  -424,   207,  -219,    -8,   -38,  -164,  -424,
+    -424,  -424,   328,   419,  -424,  -116
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -2234,203 +2236,209 @@
 #define YYTABLE_NINF -262
 static const yytype_int16 yytable[] =
 {
-      79,    96,   152,   227,   187,   383,   465,   141,   188,   223,
-     433,   269,  -165,   280,   512,   441,   515,  -165,   200,  -165,
-    -165,  -165,   356,   357,   358,   359,   442,    21,    57,   360,
-     517,   437,    62,   381,   209,   342,   381,  -165,  -165,  -165,
-     470,   438,   142,  -165,   386,   450,   471,   472,   454,   454,
-     143,    23,   209,   126,   204,   152,     3,     4,    57,    22,
-      79,   323,    62,   189,   326,   327,    24,     3,     4,   173,
-     174,   -42,  -165,  -165,  -165,  -165,     2,   145,   147,   351,
-      91,   205,   513,  -165,   516,   434,    30,  -165,   382,  -165,
-     160,   432,   205,   443,   161,     5,   266,    92,   518,   364,
-     451,    52,   367,   455,   533,    28,   361,   439,   196,   197,
-      53,   281,   268,  -165,  -165,  -165,  -165,  -165,  -165,   544,
-     152,  -165,   -83,   529,  -165,  -165,  -165,    68,    69,    70,
-      71,   245,    72,   -84,  -165,   343,    74,    75,   344,   345,
-      77,   468,   354,    79,   423,    93,   504,   425,   505,   304,
-     346,   347,   348,   349,  -261,   -23,   -21,   530,   483,   335,
-     206,   157,   490,    31,   158,    34,     2,     8,   207,   208,
-     531,   206,    53,    33,   -46,    35,   340,   352,   484,   207,
-     208,    54,   485,    36,   276,     5,   486,   277,    39,    55,
-      56,    52,    51,   271,   273,   274,   372,   373,   461,   523,
-     335,   462,   524,    66,    40,   463,    67,   464,    41,    85,
-     543,    42,    43,   162,   163,   164,   165,   152,    46,    47,
-      48,    49,   -23,     1,    88,     2,     3,     4,    73,    74,
-      75,    76,   309,    90,   320,    53,    97,    98,   310,   230,
-     123,   231,   232,   233,     5,   124,     6,   458,   125,   127,
-       7,   130,   445,   335,   129,   139,   132,     8,   133,   234,
-     235,   236,    53,   134,   -47,   237,   270,   353,   135,   355,
-     166,    54,   136,   137,   167,   138,   148,   171,   172,    55,
-      56,   365,   176,   272,   368,   168,   311,   312,   313,   314,
-     315,   316,   178,   492,   238,   239,   240,   241,   387,   391,
-     177,   317,   179,   182,   194,   242,   183,   184,   185,   243,
-     186,   244,   395,   190,   466,   467,     8,   191,   192,   193,
-     281,   198,     9,   202,   216,   542,   218,   219,   220,   221,
-      10,   228,   229,   267,   283,    68,    69,    70,    71,   245,
-      72,   284,   285,   246,   501,   289,   247,   248,    77,   288,
-     324,   506,    68,    69,    70,    71,   249,    72,    68,    69,
-      70,    71,   325,    72,   304,    77,    73,    74,    75,    76,
-     328,    77,   337,   363,   366,    68,    69,    70,    71,   380,
-      72,   369,   459,    73,    74,    75,    76,  -259,    77,   374,
-     375,  -260,   393,   421,   424,   387,   469,   422,   426,   427,
-     475,   429,   540,   449,   477,   430,   474,   431,   448,   453,
-     503,   481,   387,   396,   456,   488,   387,   457,   491,   397,
-     398,   476,   494,   478,   460,   399,   400,   401,   402,   403,
-     404,   405,   498,   499,   479,   493,   495,   406,   407,   408,
-     409,   291,   292,   293,   294,   295,   296,   297,   298,   496,
-     299,   300,   301,   302,   303,    68,    69,    70,    71,   142,
-      72,   497,   507,    73,    74,    75,    76,   143,    77,   391,
-     522,   508,   525,   509,   150,   526,   510,   511,   527,   514,
-     528,   520,   534,   535,    68,    69,    70,    71,    40,    72,
-     536,   410,   338,   411,   537,   339,    43,    77,   538,   412,
-     413,   414,   415,   416,   417,   418,   419,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   541,   110,
-     111,   112,    32,   250,    89,   149,   304,   203,   305,   306,
-      68,    69,    70,    71,   142,    72,   140,   480,    73,    74,
-      75,    76,   143,    77,    68,    69,    70,    71,   392,    72,
-     521,   447,    73,    74,    75,    76,   222,    77,    68,    69,
-      70,    71,   224,    72,   376,   321,   384,    74,    75,    76,
-     322,    77,    68,    69,    70,    71,   131,    72,   201,   286,
-     388,    74,    75,    76,   199,    77,    68,    69,    70,    71,
-     341,    72,     0,     0,   482,    74,    75,    76,     0,    77,
-      68,    69,    70,    71,     0,    72,     0,     0,   489,    74,
-      75,    76,     0,    77,    68,    69,    70,    71,   245,    72,
-       0,     0,   246,     0,     0,   247,     0,    77,    68,    69,
-      70,    71,     0,    72,     0,     0,   332,    68,    69,    70,
-      71,    77,    72,     0,     0,   446,    68,    69,    70,    71,
-      77,    72,     0,     0,   500,     0,     0,     0,     0,    77
+      79,    96,   152,   227,   187,   383,   465,   141,   441,   512,
+     515,   269,   437,   433,   280,   188,   386,   -42,   200,   223,
+     442,   517,  -165,   438,    21,   142,   381,    91,  -165,   209,
+    -165,  -165,  -165,   143,   204,    22,   381,     3,     4,    57,
+     450,   160,     3,     4,    92,   161,   454,   209,  -165,  -165,
+    -165,   454,    62,   126,  -165,   152,   356,   357,   358,   359,
+      79,   323,   205,   360,   326,   327,   470,   205,   342,    57,
+     189,   529,   471,   472,   157,   173,   174,   158,   513,   516,
+     351,   382,    62,  -165,  -165,  -165,  -165,   443,   434,   439,
+     518,   432,    93,    23,  -165,   451,   266,    24,  -165,   364,
+    -165,   455,   367,   -83,   304,   530,   533,   276,   -84,  -261,
+     277,   281,   268,   468,   196,   197,   145,   147,   531,   544,
+     152,    53,    30,    28,  -165,  -165,  -165,  -165,  -165,  -165,
+     483,   504,  -165,   505,   490,  -165,  -165,  -165,   -23,   -21,
+     361,   206,   354,    79,   423,  -165,   206,   425,   484,   207,
+     208,    31,   485,    33,   207,   208,   486,    35,    36,   335,
+      68,    69,    70,    71,   245,    72,    34,    39,   343,    74,
+      75,   344,   345,    77,   310,    51,   340,   352,    46,    47,
+      48,    49,    66,   346,   347,   348,   349,     2,    73,    74,
+      75,    76,    67,   271,   273,   274,   372,   373,   461,   523,
+     335,   462,   524,   -23,    85,   463,     5,   464,    88,    90,
+     543,    53,    52,    97,    98,   123,     1,   152,   124,     2,
+       3,     4,   311,   312,   313,   314,   315,   316,   125,   127,
+     129,   130,   309,   132,   320,   139,   133,   317,     5,   230,
+       6,   231,   232,   233,     7,   148,   134,   458,   135,   136,
+     137,   138,   445,   335,     2,   171,   172,   176,   177,   234,
+     235,   236,   179,   178,    40,   237,   183,   353,    41,   355,
+     182,    42,    43,     5,   184,   185,   186,   194,     8,    52,
+     218,   365,   198,    53,   368,   -46,   270,   219,   190,   191,
+     192,   202,    54,   492,   238,   239,   240,   241,   387,   391,
+      55,    56,   193,   216,   220,   242,   221,   228,   229,   243,
+       8,   244,   395,   267,   466,   467,     9,   283,   284,   285,
+     281,   288,   289,   324,    10,   542,   325,   304,    68,    69,
+      70,    71,   363,    72,   272,    68,    69,    70,    71,   245,
+      72,    77,   328,   246,   501,     8,   247,   248,    77,   366,
+      53,   506,   -47,   369,   337,   374,   249,   380,   375,    54,
+    -259,    68,    69,    70,    71,   142,    72,    55,    56,    73,
+      74,    75,    76,   143,    77,   393,  -260,   421,    68,    69,
+      70,    71,   459,    72,   422,   424,    73,    74,    75,    76,
+     426,    77,   427,   430,   429,   387,   469,   493,   431,   448,
+     475,   449,   540,   453,   477,   456,   457,   474,   460,   476,
+     503,   481,   387,   478,   479,   488,   387,   495,   491,   496,
+     497,   507,   494,   508,   509,   511,    68,    69,    70,    71,
+     510,    72,   498,   499,    73,    74,    75,    76,   396,    77,
+     162,   163,   164,   165,   397,   398,   514,   520,    32,   536,
+     399,   400,   401,   402,   403,   404,   405,   534,   535,   537,
+     538,   541,   406,   407,   408,   409,   250,   203,   149,   391,
+     522,    89,   525,   392,   140,   526,   222,   521,   527,   480,
+     528,   291,   292,   293,   294,   295,   296,   297,   298,   321,
+     299,   300,   301,   302,   303,   376,   224,   166,   447,   201,
+     286,   167,    68,    69,    70,    71,    40,    72,   322,   199,
+     338,   341,   168,   339,    43,    77,   410,   131,   411,     0,
+       0,     0,     0,     0,   412,   413,   414,   415,   416,   417,
+     418,   419,    68,    69,    70,    71,   142,    72,     0,     0,
+      73,    74,    75,    76,   143,    77,     0,    68,    69,    70,
+      71,   150,    72,     0,     0,    73,    74,    75,    76,     0,
+      77,     0,     0,     0,     0,     0,   304,     0,   305,   306,
+      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+     109,     0,   110,   111,   112,    68,    69,    70,    71,     0,
+      72,     0,     0,   384,    74,    75,    76,     0,    77,    68,
+      69,    70,    71,     0,    72,     0,     0,   388,    74,    75,
+      76,     0,    77,    68,    69,    70,    71,     0,    72,     0,
+       0,   482,    74,    75,    76,     0,    77,    68,    69,    70,
+      71,     0,    72,     0,     0,   489,    74,    75,    76,     0,
+      77,    68,    69,    70,    71,   245,    72,     0,     0,   246,
+       0,     0,   247,     0,    77,    68,    69,    70,    71,     0,
+      72,     0,     0,   332,    68,    69,    70,    71,    77,    72,
+       0,     0,   446,    68,    69,    70,    71,    77,    72,     0,
+       0,   500,     0,     0,     0,     0,    77
 };
 
 static const yytype_int16 yycheck[] =
 {
-      38,    64,   130,   217,   168,   335,   429,   123,    72,     1,
-      10,   230,     4,   239,     4,     4,     4,     9,   182,    11,
-      12,    13,    17,    18,    19,    20,    15,   113,    29,    24,
-       4,     4,    29,    72,   195,    13,    72,    29,    30,    31,
-      77,    14,   109,    35,   336,    72,    83,    84,    72,    72,
-     117,   113,   213,    91,     5,   183,     7,     8,    59,   114,
-      98,   275,    59,   127,   278,   279,   124,     7,     8,   137,
-     138,     4,    64,    65,    66,    67,     6,   124,   125,   305,
-      13,    32,    72,    75,    72,    85,     4,    79,   127,    81,
-     109,   127,    32,    82,   113,    25,   224,    30,    72,   318,
-     127,    31,   321,   127,   127,   113,   101,    80,   176,   177,
-     102,   239,   228,   105,   106,   107,   108,   109,   110,   542,
-     248,   113,    73,    29,   116,   117,   118,   105,   106,   107,
-     108,   109,   110,    73,   126,   113,   114,   115,   116,   117,
-     118,   433,   306,   181,   363,    78,   475,   366,   477,   121,
-     128,   129,   130,   131,   126,   113,   114,    63,   450,   287,
-     111,   113,   454,     0,   116,    72,     6,    97,   119,   120,
-      76,   111,   102,     4,   104,     4,   304,   305,    16,   119,
-     120,   111,    20,   125,   113,    25,    24,   116,     4,   119,
-     120,    31,     4,   231,   232,   233,   324,   325,   113,   113,
-     328,   116,   116,   113,   109,   424,   125,   426,   113,   109,
-     540,   116,   117,    52,    53,    54,    55,   345,    52,    53,
-      54,    55,   113,     4,     4,     6,     7,     8,   113,   114,
-     115,   116,   270,   104,   272,   102,     4,   138,     9,     9,
-     123,    11,    12,    13,    25,   114,    27,   411,   113,   113,
-      31,   117,   380,   381,     4,     4,   126,    97,   126,    29,
-      30,    31,   102,   126,   104,    35,    13,   305,   126,   307,
-     109,   111,   126,   126,   113,   126,    72,   113,   113,   119,
-     120,   319,   123,    13,   322,   124,    57,    58,    59,    60,
-      61,    62,   110,   457,    64,    65,    66,    67,   336,   337,
-     123,    72,   102,   124,     4,    75,    72,   127,   127,    79,
-     127,    81,   350,   127,   430,   431,    97,   127,   127,   127,
-     448,   125,   103,   125,   125,   539,   113,     4,     4,    73,
-     111,    72,     4,   109,     4,   105,   106,   107,   108,   109,
-     110,     4,     4,   113,   472,     4,   116,   117,   118,   126,
-      72,   479,   105,   106,   107,   108,   126,   110,   105,   106,
-     107,   108,    72,   110,   121,   118,   113,   114,   115,   116,
-     126,   118,   126,     9,     9,   105,   106,   107,   108,    21,
-     110,   109,   420,   113,   114,   115,   116,   126,   118,   109,
-     109,   126,   109,   125,     9,   433,   434,   126,     9,   101,
-     438,    72,   530,    21,   442,   123,     4,   123,   123,    21,
-     473,   449,   450,    44,    21,   453,   454,   124,   456,    50,
-      51,     4,   460,     4,   123,    56,    57,    58,    59,    60,
-      61,    62,   470,   471,    21,   125,   127,    68,    69,    70,
-      71,    36,    37,    38,    39,    40,    41,    42,    43,   127,
-      45,    46,    47,    48,    49,   105,   106,   107,   108,   109,
-     110,     4,   126,   113,   114,   115,   116,   117,   118,   507,
-     508,    21,   510,   126,   124,   513,    21,   125,   516,     4,
-     518,     4,   127,   127,   105,   106,   107,   108,   109,   110,
-       4,   122,   113,   124,     4,   116,   117,   118,     4,   130,
-     131,   132,   133,   134,   135,   136,   137,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,     4,    98,
-      99,   100,    12,   224,    59,   128,   121,   188,   123,   124,
-     105,   106,   107,   108,   109,   110,   121,   448,   113,   114,
-     115,   116,   117,   118,   105,   106,   107,   108,   345,   110,
-     507,   381,   113,   114,   115,   116,   213,   118,   105,   106,
-     107,   108,   214,   110,   328,   273,   113,   114,   115,   116,
-     273,   118,   105,   106,   107,   108,    98,   110,   183,   248,
-     113,   114,   115,   116,   181,   118,   105,   106,   107,   108,
-     304,   110,    -1,    -1,   113,   114,   115,   116,    -1,   118,
-     105,   106,   107,   108,    -1,   110,    -1,    -1,   113,   114,
-     115,   116,    -1,   118,   105,   106,   107,   108,   109,   110,
-      -1,    -1,   113,    -1,    -1,   116,    -1,   118,   105,   106,
-     107,   108,    -1,   110,    -1,    -1,   113,   105,   106,   107,
-     108,   118,   110,    -1,    -1,   113,   105,   106,   107,   108,
-     118,   110,    -1,    -1,   113,    -1,    -1,    -1,    -1,   118
+      38,    64,   130,   217,   168,   335,   429,   123,     4,     4,
+       4,   230,     4,    11,   239,    73,   336,     4,   182,     1,
+      16,     4,     4,    15,   114,   110,    73,    14,    10,   195,
+      12,    13,    14,   118,     5,   115,    73,     8,     9,    29,
+      73,   110,     8,     9,    31,   114,    73,   213,    30,    31,
+      32,    73,    29,    91,    36,   183,    18,    19,    20,    21,
+      98,   275,    33,    25,   278,   279,    78,    33,    14,    59,
+     128,    30,    84,    85,   114,   137,   138,   117,    73,    73,
+     305,   128,    59,    65,    66,    67,    68,    83,    86,    81,
+      73,   128,    79,   114,    76,   128,   224,   125,    80,   318,
+      82,   128,   321,    74,   122,    64,   128,   114,    74,   127,
+     117,   239,   228,   433,   176,   177,   124,   125,    77,   542,
+     248,   103,     4,   114,   106,   107,   108,   109,   110,   111,
+     450,   475,   114,   477,   454,   117,   118,   119,   114,   115,
+     102,   112,   306,   181,   363,   127,   112,   366,    17,   120,
+     121,     0,    21,     4,   120,   121,    25,     4,   126,   287,
+     106,   107,   108,   109,   110,   111,    73,     4,   114,   115,
+     116,   117,   118,   119,    10,     4,   304,   305,    53,    54,
+      55,    56,   114,   129,   130,   131,   132,     7,   114,   115,
+     116,   117,   126,   231,   232,   233,   324,   325,   114,   114,
+     328,   117,   117,   114,   110,   424,    26,   426,     4,   105,
+     540,   103,    32,     4,   139,   124,     4,   345,   115,     7,
+       8,     9,    58,    59,    60,    61,    62,    63,   114,   114,
+       4,   118,   270,   127,   272,     4,   127,    73,    26,    10,
+      28,    12,    13,    14,    32,    73,   127,   411,   127,   127,
+     127,   127,   380,   381,     7,   114,   114,   124,   124,    30,
+      31,    32,   103,   111,   110,    36,    73,   305,   114,   307,
+     125,   117,   118,    26,   128,   128,   128,     4,    98,    32,
+     114,   319,   126,   103,   322,   105,    14,     4,   128,   128,
+     128,   126,   112,   457,    65,    66,    67,    68,   336,   337,
+     120,   121,   128,   126,     4,    76,    74,    73,     4,    80,
+      98,    82,   350,   110,   430,   431,   104,     4,     4,     4,
+     448,   127,     4,    73,   112,   539,    73,   122,   106,   107,
+     108,   109,    10,   111,    14,   106,   107,   108,   109,   110,
+     111,   119,   127,   114,   472,    98,   117,   118,   119,    10,
+     103,   479,   105,   110,   127,   110,   127,    22,   110,   112,
+     127,   106,   107,   108,   109,   110,   111,   120,   121,   114,
+     115,   116,   117,   118,   119,   110,   127,   126,   106,   107,
+     108,   109,   420,   111,   127,    10,   114,   115,   116,   117,
+      10,   119,   102,   124,    73,   433,   434,   126,   124,   124,
+     438,    22,   530,    22,   442,    22,   125,     4,   124,     4,
+     473,   449,   450,     4,    22,   453,   454,   128,   456,   128,
+       4,   127,   460,    22,   127,   126,   106,   107,   108,   109,
+      22,   111,   470,   471,   114,   115,   116,   117,    45,   119,
+      53,    54,    55,    56,    51,    52,     4,     4,    12,     4,
+      57,    58,    59,    60,    61,    62,    63,   128,   128,     4,
+       4,     4,    69,    70,    71,    72,   224,   188,   128,   507,
+     508,    59,   510,   345,   121,   513,   213,   507,   516,   448,
+     518,    37,    38,    39,    40,    41,    42,    43,    44,   273,
+      46,    47,    48,    49,    50,   328,   214,   110,   381,   183,
+     248,   114,   106,   107,   108,   109,   110,   111,   273,   181,
+     114,   304,   125,   117,   118,   119,   123,    98,   125,    -1,
+      -1,    -1,    -1,    -1,   131,   132,   133,   134,   135,   136,
+     137,   138,   106,   107,   108,   109,   110,   111,    -1,    -1,
+     114,   115,   116,   117,   118,   119,    -1,   106,   107,   108,
+     109,   125,   111,    -1,    -1,   114,   115,   116,   117,    -1,
+     119,    -1,    -1,    -1,    -1,    -1,   122,    -1,   124,   125,
+      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
+      97,    -1,    99,   100,   101,   106,   107,   108,   109,    -1,
+     111,    -1,    -1,   114,   115,   116,   117,    -1,   119,   106,
+     107,   108,   109,    -1,   111,    -1,    -1,   114,   115,   116,
+     117,    -1,   119,   106,   107,   108,   109,    -1,   111,    -1,
+      -1,   114,   115,   116,   117,    -1,   119,   106,   107,   108,
+     109,    -1,   111,    -1,    -1,   114,   115,   116,   117,    -1,
+     119,   106,   107,   108,   109,   110,   111,    -1,    -1,   114,
+      -1,    -1,   117,    -1,   119,   106,   107,   108,   109,    -1,
+     111,    -1,    -1,   114,   106,   107,   108,   109,   119,   111,
+      -1,    -1,   114,   106,   107,   108,   109,   119,   111,    -1,
+      -1,   114,    -1,    -1,    -1,    -1,   119
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,     4,     6,     7,     8,    25,    27,    31,    97,   103,
-     111,   140,   141,   142,   143,   144,   146,   147,   159,   162,
-     164,   113,   114,   113,   124,   163,   165,   148,   113,   160,
-       4,     0,   142,     4,    72,     4,   125,   257,   258,     4,
-     109,   113,   116,   117,   252,   253,    52,    53,    54,    55,
-     223,     4,    31,   102,   111,   119,   120,   143,   149,   153,
-     154,   161,   162,   212,   213,   214,   113,   125,   105,   106,
-     107,   108,   110,   113,   114,   115,   116,   118,   248,   256,
-     261,   262,   263,   264,   166,   109,   150,   151,     4,   154,
-     104,    13,    30,    78,   155,   156,   214,     4,   138,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      98,    99,   100,   172,   173,   174,   175,   176,   177,   178,
-     186,   187,   188,   123,   114,   113,   256,   113,   157,     4,
-     117,   262,   126,   126,   126,   126,   126,   126,   126,     4,
-     188,   264,   109,   117,   254,   255,   256,   255,    72,   186,
-     124,   158,   248,   249,   250,   251,   255,   113,   116,   152,
-     109,   113,    52,    53,    54,    55,   109,   113,   124,   179,
-     180,   113,   113,   152,   152,   167,   123,   123,   110,   102,
-     259,   260,   124,    72,   127,   127,   127,   257,    72,   127,
-     127,   127,   127,   127,     4,   168,   152,   152,   125,   261,
-     257,   251,   125,   180,     5,    32,   111,   119,   120,   144,
-     145,   169,   181,   209,   210,   211,   125,   170,   113,     4,
-       4,    73,   211,     1,   212,   215,   171,   223,    72,     4,
-       9,    11,    12,    13,    29,    30,    31,    35,    64,    65,
-      66,    67,    75,    79,    81,   109,   113,   116,   117,   126,
-     149,   182,   197,   199,   205,   207,   219,   225,   229,   231,
-     233,   234,   235,   243,   244,   245,   248,   109,   264,   254,
-      13,   256,    13,   256,   256,   220,   113,   116,   221,   222,
-     235,   248,   230,     4,     4,     4,   249,   226,   126,     4,
-     236,    36,    37,    38,    39,    40,    41,    42,    43,    45,
-      46,    47,    48,    49,   121,   123,   124,   232,   195,   256,
-       9,    57,    58,    59,    60,    61,    62,    72,   246,   247,
-     256,   246,   247,   223,    72,    72,   223,   223,   126,   183,
-     198,   200,   113,   241,   242,   248,   206,   126,   113,   116,
-     248,   253,    13,   113,   116,   117,   128,   129,   130,   131,
-     227,   235,   248,   256,   257,   256,    17,    18,    19,    20,
-      24,   101,   196,     9,   254,   256,     9,   254,   256,   109,
-     216,   217,   248,   248,   109,   109,   242,   190,   201,   202,
-      21,    72,   127,   195,   113,   208,   238,   256,   113,   237,
-     238,   256,   158,   109,   224,   256,    44,    50,    51,    56,
-      57,    58,    59,    60,    61,    62,    68,    69,    70,    71,
-     122,   124,   130,   131,   132,   133,   134,   135,   136,   137,
-     228,   125,   126,   254,     9,   254,     9,   101,   218,    72,
-     123,   123,   127,    10,    85,   185,   191,     4,    14,    80,
-     203,     4,    15,    82,   204,   248,   113,   241,   123,    21,
-      72,   127,   239,    21,    72,   127,    21,   124,   257,   256,
-     123,   113,   116,   254,   254,   217,   264,   264,   238,   256,
-      77,    83,    84,   189,     4,   256,     4,   256,     4,    21,
-     234,   256,   113,   238,    16,    20,    24,   240,   256,   113,
-     238,   256,   257,   125,   256,   127,   127,     4,   256,   256,
-     113,   248,   184,   214,   239,   239,   248,   126,    21,   126,
-      21,   125,     4,    72,     4,     4,    72,     4,    72,   192,
-       4,   237,   256,   113,   116,   256,   256,   256,   256,    29,
-      63,    76,   193,   127,   127,   127,     4,     4,     4,   194,
-     248,     4,   223,   195,   217
+       0,     4,     7,     8,     9,    26,    28,    32,    98,   104,
+     112,   141,   142,   143,   144,   145,   147,   148,   160,   163,
+     165,   114,   115,   114,   125,   164,   166,   149,   114,   161,
+       4,     0,   143,     4,    73,     4,   126,   258,   259,     4,
+     110,   114,   117,   118,   253,   254,    53,    54,    55,    56,
+     224,     4,    32,   103,   112,   120,   121,   144,   150,   154,
+     155,   162,   163,   213,   214,   215,   114,   126,   106,   107,
+     108,   109,   111,   114,   115,   116,   117,   119,   249,   257,
+     262,   263,   264,   265,   167,   110,   151,   152,     4,   155,
+     105,    14,    31,    79,   156,   157,   215,     4,   139,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      99,   100,   101,   173,   174,   175,   176,   177,   178,   179,
+     187,   188,   189,   124,   115,   114,   257,   114,   158,     4,
+     118,   263,   127,   127,   127,   127,   127,   127,   127,     4,
+     189,   265,   110,   118,   255,   256,   257,   256,    73,   187,
+     125,   159,   249,   250,   251,   252,   256,   114,   117,   153,
+     110,   114,    53,    54,    55,    56,   110,   114,   125,   180,
+     181,   114,   114,   153,   153,   168,   124,   124,   111,   103,
+     260,   261,   125,    73,   128,   128,   128,   258,    73,   128,
+     128,   128,   128,   128,     4,   169,   153,   153,   126,   262,
+     258,   252,   126,   181,     5,    33,   112,   120,   121,   145,
+     146,   170,   182,   210,   211,   212,   126,   171,   114,     4,
+       4,    74,   212,     1,   213,   216,   172,   224,    73,     4,
+      10,    12,    13,    14,    30,    31,    32,    36,    65,    66,
+      67,    68,    76,    80,    82,   110,   114,   117,   118,   127,
+     150,   183,   198,   200,   206,   208,   220,   226,   230,   232,
+     234,   235,   236,   244,   245,   246,   249,   110,   265,   255,
+      14,   257,    14,   257,   257,   221,   114,   117,   222,   223,
+     236,   249,   231,     4,     4,     4,   250,   227,   127,     4,
+     237,    37,    38,    39,    40,    41,    42,    43,    44,    46,
+      47,    48,    49,    50,   122,   124,   125,   233,   196,   257,
+      10,    58,    59,    60,    61,    62,    63,    73,   247,   248,
+     257,   247,   248,   224,    73,    73,   224,   224,   127,   184,
+     199,   201,   114,   242,   243,   249,   207,   127,   114,   117,
+     249,   254,    14,   114,   117,   118,   129,   130,   131,   132,
+     228,   236,   249,   257,   258,   257,    18,    19,    20,    21,
+      25,   102,   197,    10,   255,   257,    10,   255,   257,   110,
+     217,   218,   249,   249,   110,   110,   243,   191,   202,   203,
+      22,    73,   128,   196,   114,   209,   239,   257,   114,   238,
+     239,   257,   159,   110,   225,   257,    45,    51,    52,    57,
+      58,    59,    60,    61,    62,    63,    69,    70,    71,    72,
+     123,   125,   131,   132,   133,   134,   135,   136,   137,   138,
+     229,   126,   127,   255,    10,   255,    10,   102,   219,    73,
+     124,   124,   128,    11,    86,   186,   192,     4,    15,    81,
+     204,     4,    16,    83,   205,   249,   114,   242,   124,    22,
+      73,   128,   240,    22,    73,   128,    22,   125,   258,   257,
+     124,   114,   117,   255,   255,   218,   265,   265,   239,   257,
+      78,    84,    85,   190,     4,   257,     4,   257,     4,    22,
+     235,   257,   114,   239,    17,    21,    25,   241,   257,   114,
+     239,   257,   258,   126,   257,   128,   128,     4,   257,   257,
+     114,   249,   185,   215,   240,   240,   249,   127,    22,   127,
+      22,   126,     4,    73,     4,     4,    73,     4,    73,   193,
+       4,   238,   257,   114,   117,   257,   257,   257,   257,    30,
+      64,    77,   194,   128,   128,   128,     4,     4,     4,   195,
+     249,     4,   224,   196,   218
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -3795,7 +3803,7 @@
 /* Line 1455 of yacc.c  */
 #line 1496 "compilers/imcc/imcc.y"
     {
-           (yyval.t) = 0;
+           (yyval.t) = P_NSENTRY;
            IMCC_INFO(interp)->cur_unit->ns_entry_name     = NULL;
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
          }
@@ -3806,7 +3814,7 @@
 /* Line 1455 of yacc.c  */
 #line 1502 "compilers/imcc/imcc.y"
     {
-           (yyval.t) = 0;
+           (yyval.t) = P_NSENTRY;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
          }
@@ -5853,7 +5861,7 @@
 
 
 /* Line 1455 of yacc.c  */
-#line 5846 "compilers/imcc/imcparser.c"
+#line 5854 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -6093,26 +6101,19 @@
      * before the newline, and thus, line is the line *after* the
      * error. Instead of duplicating code for both cases (the 'newline' and
      * non-newline case, do the test twice; efficiency is not important when
-     * we have an error anyway.
-     */
+     * we have an error anyway. */
     if (!at_eof(yyscanner)) {
-        if (*chr == '\n') {
-            IMCC_INFO(interp)->line--;
-        }
-
         IMCC_warning(interp, "error:imcc:%s", s);
+
         /* don't print the current token if it is a newline */
-        if (*chr != '\n') {
+        if (*chr != '\n')
             IMCC_warning(interp, " ('%s')", chr);
-        }
-        IMCC_print_inc(interp);
-
-        if (*chr == '\n') {
-            IMCC_INFO(interp)->line++;
-        }
 
+        IMCC_print_inc(interp);
     }
-    else { /* scanner is at end of file; just to be sure, do not print "current" token. */
+
+    /* scanner is at EOF; just to be sure, don't print "current" token */
+    else {
         IMCC_warning(interp, "error:imcc:%s", s);
         IMCC_print_inc(interp);
     }

Modified: branches/ops_pct/compilers/imcc/imcparser.h
==============================================================================
--- branches/ops_pct/compilers/imcc/imcparser.h	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/imcparser.h	Wed Apr 28 03:18:28 2010	(r46097)
@@ -52,245 +52,247 @@
    enum yytokentype {
      LOW_PREC = 258,
      PARAM = 259,
-     HLL = 260,
-     TK_LINE = 261,
-     TK_FILE = 262,
-     GOTO = 263,
-     ARG = 264,
-     IF = 265,
-     UNLESS = 266,
-     PNULL = 267,
-     SET_RETURN = 268,
-     SET_YIELD = 269,
-     ADV_FLAT = 270,
-     ADV_SLURPY = 271,
-     ADV_OPTIONAL = 272,
-     ADV_OPT_FLAG = 273,
-     ADV_NAMED = 274,
-     ADV_ARROW = 275,
-     NEW = 276,
-     ADV_INVOCANT = 277,
-     ADV_CALL_SIG = 278,
-     NAMESPACE = 279,
-     DOT_METHOD = 280,
-     SUB = 281,
-     SYM = 282,
-     LOCAL = 283,
-     LEXICAL = 284,
-     CONST = 285,
-     ANNOTATE = 286,
-     INC = 287,
-     DEC = 288,
-     GLOBAL_CONST = 289,
-     PLUS_ASSIGN = 290,
-     MINUS_ASSIGN = 291,
-     MUL_ASSIGN = 292,
-     DIV_ASSIGN = 293,
-     CONCAT_ASSIGN = 294,
-     BAND_ASSIGN = 295,
-     BOR_ASSIGN = 296,
-     BXOR_ASSIGN = 297,
-     FDIV = 298,
-     FDIV_ASSIGN = 299,
-     MOD_ASSIGN = 300,
-     SHR_ASSIGN = 301,
-     SHL_ASSIGN = 302,
-     SHR_U_ASSIGN = 303,
-     SHIFT_LEFT = 304,
-     SHIFT_RIGHT = 305,
-     INTV = 306,
-     FLOATV = 307,
-     STRINGV = 308,
-     PMCV = 309,
-     LOG_XOR = 310,
-     RELOP_EQ = 311,
-     RELOP_NE = 312,
-     RELOP_GT = 313,
-     RELOP_GTE = 314,
-     RELOP_LT = 315,
-     RELOP_LTE = 316,
-     RESULT = 317,
-     RETURN = 318,
-     TAILCALL = 319,
-     YIELDT = 320,
-     GET_RESULTS = 321,
-     POW = 322,
-     SHIFT_RIGHT_U = 323,
-     LOG_AND = 324,
-     LOG_OR = 325,
-     COMMA = 326,
-     ESUB = 327,
-     DOTDOT = 328,
-     PCC_BEGIN = 329,
-     PCC_END = 330,
-     PCC_CALL = 331,
-     PCC_SUB = 332,
-     PCC_BEGIN_RETURN = 333,
-     PCC_END_RETURN = 334,
-     PCC_BEGIN_YIELD = 335,
-     PCC_END_YIELD = 336,
-     NCI_CALL = 337,
-     METH_CALL = 338,
-     INVOCANT = 339,
-     MAIN = 340,
-     LOAD = 341,
-     INIT = 342,
-     IMMEDIATE = 343,
-     POSTCOMP = 344,
-     METHOD = 345,
-     ANON = 346,
-     OUTER = 347,
-     NEED_LEX = 348,
-     MULTI = 349,
-     VTABLE_METHOD = 350,
-     LOADLIB = 351,
-     SUB_INSTANCE_OF = 352,
-     SUBID = 353,
-     NS_ENTRY = 354,
-     UNIQUE_REG = 355,
-     LABEL = 356,
-     EMIT = 357,
-     EOM = 358,
-     IREG = 359,
-     NREG = 360,
-     SREG = 361,
-     PREG = 362,
-     IDENTIFIER = 363,
-     REG = 364,
-     MACRO = 365,
-     ENDM = 366,
-     STRINGC = 367,
-     INTC = 368,
-     FLOATC = 369,
-     USTRINGC = 370,
-     PARROT_OP = 371,
-     VAR = 372,
-     LINECOMMENT = 373,
-     FILECOMMENT = 374,
-     DOT = 375,
-     CONCAT = 376
+     SOL = 260,
+     HLL = 261,
+     TK_LINE = 262,
+     TK_FILE = 263,
+     GOTO = 264,
+     ARG = 265,
+     IF = 266,
+     UNLESS = 267,
+     PNULL = 268,
+     SET_RETURN = 269,
+     SET_YIELD = 270,
+     ADV_FLAT = 271,
+     ADV_SLURPY = 272,
+     ADV_OPTIONAL = 273,
+     ADV_OPT_FLAG = 274,
+     ADV_NAMED = 275,
+     ADV_ARROW = 276,
+     NEW = 277,
+     ADV_INVOCANT = 278,
+     ADV_CALL_SIG = 279,
+     NAMESPACE = 280,
+     DOT_METHOD = 281,
+     SUB = 282,
+     SYM = 283,
+     LOCAL = 284,
+     LEXICAL = 285,
+     CONST = 286,
+     ANNOTATE = 287,
+     INC = 288,
+     DEC = 289,
+     GLOBAL_CONST = 290,
+     PLUS_ASSIGN = 291,
+     MINUS_ASSIGN = 292,
+     MUL_ASSIGN = 293,
+     DIV_ASSIGN = 294,
+     CONCAT_ASSIGN = 295,
+     BAND_ASSIGN = 296,
+     BOR_ASSIGN = 297,
+     BXOR_ASSIGN = 298,
+     FDIV = 299,
+     FDIV_ASSIGN = 300,
+     MOD_ASSIGN = 301,
+     SHR_ASSIGN = 302,
+     SHL_ASSIGN = 303,
+     SHR_U_ASSIGN = 304,
+     SHIFT_LEFT = 305,
+     SHIFT_RIGHT = 306,
+     INTV = 307,
+     FLOATV = 308,
+     STRINGV = 309,
+     PMCV = 310,
+     LOG_XOR = 311,
+     RELOP_EQ = 312,
+     RELOP_NE = 313,
+     RELOP_GT = 314,
+     RELOP_GTE = 315,
+     RELOP_LT = 316,
+     RELOP_LTE = 317,
+     RESULT = 318,
+     RETURN = 319,
+     TAILCALL = 320,
+     YIELDT = 321,
+     GET_RESULTS = 322,
+     POW = 323,
+     SHIFT_RIGHT_U = 324,
+     LOG_AND = 325,
+     LOG_OR = 326,
+     COMMA = 327,
+     ESUB = 328,
+     DOTDOT = 329,
+     PCC_BEGIN = 330,
+     PCC_END = 331,
+     PCC_CALL = 332,
+     PCC_SUB = 333,
+     PCC_BEGIN_RETURN = 334,
+     PCC_END_RETURN = 335,
+     PCC_BEGIN_YIELD = 336,
+     PCC_END_YIELD = 337,
+     NCI_CALL = 338,
+     METH_CALL = 339,
+     INVOCANT = 340,
+     MAIN = 341,
+     LOAD = 342,
+     INIT = 343,
+     IMMEDIATE = 344,
+     POSTCOMP = 345,
+     METHOD = 346,
+     ANON = 347,
+     OUTER = 348,
+     NEED_LEX = 349,
+     MULTI = 350,
+     VTABLE_METHOD = 351,
+     LOADLIB = 352,
+     SUB_INSTANCE_OF = 353,
+     SUBID = 354,
+     NS_ENTRY = 355,
+     UNIQUE_REG = 356,
+     LABEL = 357,
+     EMIT = 358,
+     EOM = 359,
+     IREG = 360,
+     NREG = 361,
+     SREG = 362,
+     PREG = 363,
+     IDENTIFIER = 364,
+     REG = 365,
+     MACRO = 366,
+     ENDM = 367,
+     STRINGC = 368,
+     INTC = 369,
+     FLOATC = 370,
+     USTRINGC = 371,
+     PARROT_OP = 372,
+     VAR = 373,
+     LINECOMMENT = 374,
+     FILECOMMENT = 375,
+     DOT = 376,
+     CONCAT = 377
    };
 #endif
 /* Tokens.  */
 #define LOW_PREC 258
 #define PARAM 259
-#define HLL 260
-#define TK_LINE 261
-#define TK_FILE 262
-#define GOTO 263
-#define ARG 264
-#define IF 265
-#define UNLESS 266
-#define PNULL 267
-#define SET_RETURN 268
-#define SET_YIELD 269
-#define ADV_FLAT 270
-#define ADV_SLURPY 271
-#define ADV_OPTIONAL 272
-#define ADV_OPT_FLAG 273
-#define ADV_NAMED 274
-#define ADV_ARROW 275
-#define NEW 276
-#define ADV_INVOCANT 277
-#define ADV_CALL_SIG 278
-#define NAMESPACE 279
-#define DOT_METHOD 280
-#define SUB 281
-#define SYM 282
-#define LOCAL 283
-#define LEXICAL 284
-#define CONST 285
-#define ANNOTATE 286
-#define INC 287
-#define DEC 288
-#define GLOBAL_CONST 289
-#define PLUS_ASSIGN 290
-#define MINUS_ASSIGN 291
-#define MUL_ASSIGN 292
-#define DIV_ASSIGN 293
-#define CONCAT_ASSIGN 294
-#define BAND_ASSIGN 295
-#define BOR_ASSIGN 296
-#define BXOR_ASSIGN 297
-#define FDIV 298
-#define FDIV_ASSIGN 299
-#define MOD_ASSIGN 300
-#define SHR_ASSIGN 301
-#define SHL_ASSIGN 302
-#define SHR_U_ASSIGN 303
-#define SHIFT_LEFT 304
-#define SHIFT_RIGHT 305
-#define INTV 306
-#define FLOATV 307
-#define STRINGV 308
-#define PMCV 309
-#define LOG_XOR 310
-#define RELOP_EQ 311
-#define RELOP_NE 312
-#define RELOP_GT 313
-#define RELOP_GTE 314
-#define RELOP_LT 315
-#define RELOP_LTE 316
-#define RESULT 317
-#define RETURN 318
-#define TAILCALL 319
-#define YIELDT 320
-#define GET_RESULTS 321
-#define POW 322
-#define SHIFT_RIGHT_U 323
-#define LOG_AND 324
-#define LOG_OR 325
-#define COMMA 326
-#define ESUB 327
-#define DOTDOT 328
-#define PCC_BEGIN 329
-#define PCC_END 330
-#define PCC_CALL 331
-#define PCC_SUB 332
-#define PCC_BEGIN_RETURN 333
-#define PCC_END_RETURN 334
-#define PCC_BEGIN_YIELD 335
-#define PCC_END_YIELD 336
-#define NCI_CALL 337
-#define METH_CALL 338
-#define INVOCANT 339
-#define MAIN 340
-#define LOAD 341
-#define INIT 342
-#define IMMEDIATE 343
-#define POSTCOMP 344
-#define METHOD 345
-#define ANON 346
-#define OUTER 347
-#define NEED_LEX 348
-#define MULTI 349
-#define VTABLE_METHOD 350
-#define LOADLIB 351
-#define SUB_INSTANCE_OF 352
-#define SUBID 353
-#define NS_ENTRY 354
-#define UNIQUE_REG 355
-#define LABEL 356
-#define EMIT 357
-#define EOM 358
-#define IREG 359
-#define NREG 360
-#define SREG 361
-#define PREG 362
-#define IDENTIFIER 363
-#define REG 364
-#define MACRO 365
-#define ENDM 366
-#define STRINGC 367
-#define INTC 368
-#define FLOATC 369
-#define USTRINGC 370
-#define PARROT_OP 371
-#define VAR 372
-#define LINECOMMENT 373
-#define FILECOMMENT 374
-#define DOT 375
-#define CONCAT 376
+#define SOL 260
+#define HLL 261
+#define TK_LINE 262
+#define TK_FILE 263
+#define GOTO 264
+#define ARG 265
+#define IF 266
+#define UNLESS 267
+#define PNULL 268
+#define SET_RETURN 269
+#define SET_YIELD 270
+#define ADV_FLAT 271
+#define ADV_SLURPY 272
+#define ADV_OPTIONAL 273
+#define ADV_OPT_FLAG 274
+#define ADV_NAMED 275
+#define ADV_ARROW 276
+#define NEW 277
+#define ADV_INVOCANT 278
+#define ADV_CALL_SIG 279
+#define NAMESPACE 280
+#define DOT_METHOD 281
+#define SUB 282
+#define SYM 283
+#define LOCAL 284
+#define LEXICAL 285
+#define CONST 286
+#define ANNOTATE 287
+#define INC 288
+#define DEC 289
+#define GLOBAL_CONST 290
+#define PLUS_ASSIGN 291
+#define MINUS_ASSIGN 292
+#define MUL_ASSIGN 293
+#define DIV_ASSIGN 294
+#define CONCAT_ASSIGN 295
+#define BAND_ASSIGN 296
+#define BOR_ASSIGN 297
+#define BXOR_ASSIGN 298
+#define FDIV 299
+#define FDIV_ASSIGN 300
+#define MOD_ASSIGN 301
+#define SHR_ASSIGN 302
+#define SHL_ASSIGN 303
+#define SHR_U_ASSIGN 304
+#define SHIFT_LEFT 305
+#define SHIFT_RIGHT 306
+#define INTV 307
+#define FLOATV 308
+#define STRINGV 309
+#define PMCV 310
+#define LOG_XOR 311
+#define RELOP_EQ 312
+#define RELOP_NE 313
+#define RELOP_GT 314
+#define RELOP_GTE 315
+#define RELOP_LT 316
+#define RELOP_LTE 317
+#define RESULT 318
+#define RETURN 319
+#define TAILCALL 320
+#define YIELDT 321
+#define GET_RESULTS 322
+#define POW 323
+#define SHIFT_RIGHT_U 324
+#define LOG_AND 325
+#define LOG_OR 326
+#define COMMA 327
+#define ESUB 328
+#define DOTDOT 329
+#define PCC_BEGIN 330
+#define PCC_END 331
+#define PCC_CALL 332
+#define PCC_SUB 333
+#define PCC_BEGIN_RETURN 334
+#define PCC_END_RETURN 335
+#define PCC_BEGIN_YIELD 336
+#define PCC_END_YIELD 337
+#define NCI_CALL 338
+#define METH_CALL 339
+#define INVOCANT 340
+#define MAIN 341
+#define LOAD 342
+#define INIT 343
+#define IMMEDIATE 344
+#define POSTCOMP 345
+#define METHOD 346
+#define ANON 347
+#define OUTER 348
+#define NEED_LEX 349
+#define MULTI 350
+#define VTABLE_METHOD 351
+#define LOADLIB 352
+#define SUB_INSTANCE_OF 353
+#define SUBID 354
+#define NS_ENTRY 355
+#define UNIQUE_REG 356
+#define LABEL 357
+#define EMIT 358
+#define EOM 359
+#define IREG 360
+#define NREG 361
+#define SREG 362
+#define PREG 363
+#define IDENTIFIER 364
+#define REG 365
+#define MACRO 366
+#define ENDM 367
+#define STRINGC 368
+#define INTC 369
+#define FLOATC 370
+#define USTRINGC 371
+#define PARROT_OP 372
+#define VAR 373
+#define LINECOMMENT 374
+#define FILECOMMENT 375
+#define DOT 376
+#define CONCAT 377
 
 
 
@@ -311,7 +313,7 @@
 
 
 /* Line 1676 of yacc.c  */
-#line 304 "compilers/imcc/imcparser.h"
+#line 306 "compilers/imcc/imcparser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */

Modified: branches/ops_pct/compilers/imcc/instructions.c
==============================================================================
--- branches/ops_pct/compilers/imcc/instructions.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/instructions.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -275,13 +275,9 @@
 {
     ASSERT_ARGS(instruction_writes)
     const int f = ins->flags;
-    int i;
+    int j;
 
-    /*
-     * a get_results opcode is before the actual sub call
-     * but for the register allocator, the effect matters, thus
-     * postpone the effect after the invoke
-     */
+    /* a get_results opcode occurs after the actual sub call */
     if (ins->opnum == PARROT_OP_get_results_pc) {
         int i;
 
@@ -289,7 +285,7 @@
          * an ExceptionHandler, which doesn't have
          * a call next
          */
-        if (ins->next && (ins->next->type & ITPCCSUB))
+        if (ins->prev && (ins->prev->type & ITPCCSUB))
             return 0;
 
         for (i = ins->symreg_count - 1; i >= 0; --i) {
@@ -308,7 +304,7 @@
          * structure
          */
         while (ins && ins->opnum != PARROT_OP_get_results_pc)
-            ins = ins->prev;
+            ins = ins->next;
 
         if (!ins)
             return 0;
@@ -336,14 +332,15 @@
         return 0;
     }
 
-    for (i = 0; i < ins->symreg_count; i++)
-        if (f & (1 << (16 + i)))
-            if (ins->symregs[i] == r)
+    for (j = 0; j < ins->symreg_count; j++)
+        if (f & (1 << (16 + j)))
+            if (ins->symregs[j] == r)
                 return 1;
 
     return 0;
 }
 
+
 /*
 
 =item C<int get_branch_regno(const Instruction *ins)>
@@ -816,6 +813,8 @@
 
 =item C<static int e_file_close(PARROT_INTERP, void *param)>
 
+Close STDOUT
+
 =cut
 
 */
@@ -835,6 +834,8 @@
 =item C<static int e_file_emit(PARROT_INTERP, void *param, const IMC_Unit *unit,
 const Instruction *ins)>
 
+emit the Instruction C<ins> to the given IMC_Unit C<unit>, passing C<param>
+
 =cut
 
 */

Modified: branches/ops_pct/compilers/imcc/main.c
==============================================================================
--- branches/ops_pct/compilers/imcc/main.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/main.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -78,7 +78,7 @@
     int obj_file,
     ARGIN_NULLOK(const char *output_file),
     int argc,
-    ARGIN(char **argv))
+    ARGIN(const char **argv))
         __attribute__nonnull__(1)
         __attribute__nonnull__(5);
 
@@ -251,13 +251,6 @@
         if (strchr(opt->opt_arg, '2')) {
             IMCC_INFO(interp)->optimizer_level |= (OPT_PRE | OPT_CFG);
         }
-        if (strchr(opt->opt_arg, 't')) {
-#ifdef HAVE_COMPUTED_GOTO
-            *core = PARROT_CGP_CORE;
-#else
-            *core = PARROT_SWITCH_CORE;
-#endif
-        }
         break;
 
       default:
@@ -414,12 +407,6 @@
     if (opt_level & OPT_SUB)
         opt_desc[i++] = 'c';
 
-    if (PARROT_RUNCORE_JIT_OPS_TEST(interp->run_core))
-        opt_desc[i++] = 'j';
-
-    if (PARROT_RUNCORE_PREDEREF_OPS_TEST(interp->run_core))
-        opt_desc[i++] = 't';
-
     opt_desc[i] = '\0';
     return;
 }
@@ -462,7 +449,7 @@
 /*
 
 =item C<static void imcc_run_pbc(PARROT_INTERP, int obj_file, const char
-*output_file, int argc, char **argv)>
+*output_file, int argc, const char **argv)>
 
 Write out or run Parrot bytecode.
 
@@ -472,7 +459,7 @@
 
 static void
 imcc_run_pbc(PARROT_INTERP, int obj_file, ARGIN_NULLOK(const char *output_file),
-        int argc, ARGIN(char **argv))
+        int argc, ARGIN(const char **argv))
 {
     ASSERT_ARGS(imcc_run_pbc)
     if (IMCC_INFO(interp)->imcc_warn)
@@ -692,7 +679,7 @@
 
 /*
 
-=item C<int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, char
+=item C<int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char
 **argv)>
 
 Entry point of IMCC, as invoked by Parrot's main function.
@@ -705,7 +692,7 @@
 
 int
 imcc_run(PARROT_INTERP, ARGIN(const char *sourcefile), int argc,
-        ARGIN(char **argv))
+        ARGIN(const char **argv))
 {
     int                obj_file;
     yyscan_t           yyscanner   = IMCC_INFO(interp)->yyscanner;

Modified: branches/ops_pct/compilers/imcc/optimizer.c
==============================================================================
--- branches/ops_pct/compilers/imcc/optimizer.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/optimizer.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
  */
 
 /*
@@ -256,6 +256,10 @@
 
 =item C<int optimize(PARROT_INTERP, IMC_Unit *unit)>
 
+Runs after the CFG is built and handles constant propogation.
+
+used_once ... deletes assignments, when LHS is unused
+
 =cut
 
 */
@@ -1225,6 +1229,11 @@
 =item C<static int branch_cond_loop_swap(PARROT_INTERP, IMC_Unit *unit,
 Instruction *branch, Instruction *start, Instruction *cond)>
 
+Converts conditional loops to post-test
+
+Returns TRUE if any optimizations were performed. Otherwise, returns
+FALSE.
+
 =cut
 
 */
@@ -1461,6 +1470,10 @@
 
 =item C<static int dead_code_remove(PARROT_INTERP, IMC_Unit *unit)>
 
+dead code elimination
+... unreachable blocks
+... unreachable instructions
+
 =cut
 
 */
@@ -1541,6 +1554,8 @@
 
 =item C<static int used_once(PARROT_INTERP, IMC_Unit *unit)>
 
+used_once ... deletes assignments, when LHS is unused
+
 =cut
 
 */

Modified: branches/ops_pct/compilers/imcc/parser_util.c
==============================================================================
--- branches/ops_pct/compilers/imcc/parser_util.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/parser_util.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -383,14 +383,9 @@
     int emit)
 {
     ASSERT_ARGS(INS)
-    int i, op, len;
-    int dirs = 0;
-    Instruction *ins;
-    op_info_t   *op_info;
-    char fullname[64] = "", format[128] = "";
 
     if (STREQ(name, ".annotate")) {
-        ins = _mk_instruction(name, "", n, r, 0);
+        Instruction *ins = _mk_instruction(name, "", n, r, 0);
         if (emit)
             return emitb(interp, unit, ins);
         else
@@ -402,176 +397,183 @@
     ||  (STREQ(name, "get_params"))
     ||  (STREQ(name, "set_returns")))
         return var_arg_ins(interp, unit, name, r, n, emit);
+    else {
+        Instruction *ins;
+        int i, op, len;
+        int dirs = 0;
+        op_info_t   *op_info;
+        char fullname[64] = "", format[128] = "";
 
-    op_fullname(fullname, name, r, n, keyvec);
-    op = interp->op_lib->op_code(interp, fullname, 1);
-
-    /* maybe we have a fullname */
-    if (op < 0)
-        op = interp->op_lib->op_code(interp, name, 1);
-
-    /* still wrong, try reverse compare */
-    if (op < 0) {
-        const char * const n_name = try_rev_cmp(name, r);
-        if (n_name) {
-            name = n_name;
-            op_fullname(fullname, name, r, n, keyvec);
-            op   = interp->op_lib->op_code(interp, fullname, 1);
-        }
-    }
-
-    /* still wrong, try to find an existing op */
-    if (op < 0)
-        op = try_find_op(interp, unit, name, r, n, keyvec, emit);
-
-    if (op < 0) {
-        int ok = 0;
+        op_fullname(fullname, name, r, n, keyvec);
+        op = interp->op_lib->op_code(interp, fullname, 1);
 
-        /* check mixed constants */
-        ins = IMCC_subst_constants_umix(interp, unit, name, r, n + 1);
-        if (ins)
-            goto found_ins;
+        /* maybe we have a fullname */
+        if (op < 0)
+            op = interp->op_lib->op_code(interp, name, 1);
+
+        /* still wrong, try reverse compare */
+        if (op < 0) {
+            const char * const n_name = try_rev_cmp(name, r);
+            if (n_name) {
+                name = n_name;
+                op_fullname(fullname, name, r, n, keyvec);
+                op   = interp->op_lib->op_code(interp, fullname, 1);
+            }
+        }
+
+        /* still wrong, try to find an existing op */
+        if (op < 0)
+            op = try_find_op(interp, unit, name, r, n, keyvec, emit);
 
-        /* and finally multiple constants */
-        ins = IMCC_subst_constants(interp, unit, name, r, n + 1, &ok);
+        if (op < 0) {
+            int ok = 0;
 
-        if (ok) {
+            /* check mixed constants */
+            ins = IMCC_subst_constants_umix(interp, unit, name, r, n + 1);
             if (ins)
                 goto found_ins;
-            else
-                return NULL;
-        }
-    }
-    else
-        strcpy(fullname, name);
 
-    if (op < 0)
-        IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                    "The opcode '%s' (%s<%d>) was not found. "
-                    "Check the type and number of the arguments",
-                    fullname, name, n);
-
-    op_info = &interp->op_info_table[op];
-    *format = '\0';
-
-    /* info->op_count is args + 1
-     * build instruction format
-     * set LV_in / out flags */
-    if (n != op_info->op_count - 1)
-        IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                "arg count mismatch: op #%d '%s' needs %d given %d",
-                op, fullname, op_info->op_count-1, n);
-
-    /* XXX Speed up some by keep track of the end of format ourselves */
-    for (i = 0; i < n; i++) {
-        switch (op_info->dirs[i]) {
-          case PARROT_ARGDIR_INOUT:
-            dirs |= 1 << (16 + i);
-            /* go on */
-          case PARROT_ARGDIR_IN:
-            dirs |= 1 << i ;
-            break;
-
-          case PARROT_ARGDIR_OUT:
-            dirs |= 1 << (16 + i);
-            break;
-
-          default:
-            PARROT_ASSERT(0);
-        };
-
-        if (keyvec & KEY_BIT(i)) {
-            /* XXX Assert that len > 2 */
-            len          = strlen(format) - 2;
-            PARROT_ASSERT(len >= 0);
-            format[len]  = '\0';
-            strcat(format, "[%s], ");
+            /* and finally multiple constants */
+            ins = IMCC_subst_constants(interp, unit, name, r, n + 1, &ok);
+
+            if (ok) {
+                if (ins)
+                    goto found_ins;
+                else
+                    return NULL;
+            }
         }
-        else if (r[i]->set == 'K')
-            strcat(format, "[%s], ");
         else
-            strcat(format, "%s, ");
-    }
+            strcpy(fullname, name);
+
+        if (op < 0)
+            IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+                        "The opcode '%s' (%s<%d>) was not found. "
+                        "Check the type and number of the arguments",
+                        fullname, name, n);
+
+        op_info = &interp->op_info_table[op];
+        *format = '\0';
+
+        /* info->op_count is args + 1
+         * build instruction format
+         * set LV_in / out flags */
+        if (n != op_info->op_count - 1)
+            IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+                    "arg count mismatch: op #%d '%s' needs %d given %d",
+                    op, fullname, op_info->op_count-1, n);
 
-    len = strlen(format);
-    if (len >= 2)
-        len -= 2;
+        /* XXX Speed up some by keep track of the end of format ourselves */
+        for (i = 0; i < n; i++) {
+            switch (op_info->dirs[i]) {
+              case PARROT_ARGDIR_INOUT:
+                dirs |= 1 << (16 + i);
+                /* go on */
+              case PARROT_ARGDIR_IN:
+                dirs |= 1 << i ;
+                break;
+
+              case PARROT_ARGDIR_OUT:
+                dirs |= 1 << (16 + i);
+                break;
+
+              default:
+                PARROT_ASSERT(0);
+            };
+
+            if (keyvec & KEY_BIT(i)) {
+                /* XXX Assert that len > 2 */
+                len          = strlen(format) - 2;
+                PARROT_ASSERT(len >= 0);
+                format[len]  = '\0';
+                strcat(format, "[%s], ");
+            }
+            else if (r[i]->set == 'K')
+                strcat(format, "[%s], ");
+            else
+                strcat(format, "%s, ");
+        }
 
-    format[len] = '\0';
+        len = strlen(format);
+        if (len >= 2)
+            len -= 2;
 
-    if (fmt && *fmt) {
-        strncpy(format, fmt, sizeof (format) - 1);
-        format[sizeof (format) - 1] = '\0';
-    }
+        format[len] = '\0';
 
-    IMCC_debug(interp, DEBUG_PARSER, "%s %s\t%s\n", name, format, fullname);
+        if (fmt && *fmt) {
+            strncpy(format, fmt, sizeof (format) - 1);
+            format[sizeof (format) - 1] = '\0';
+        }
 
-    /* make the instruction */
-    ins         = _mk_instruction(name, format, n, r, dirs);
-    ins->keys  |= keyvec;
+        IMCC_debug(interp, DEBUG_PARSER, "%s %s\t%s\n", name, format, fullname);
 
-    /* fill in oplib's info */
-    ins->opnum  = op;
-    ins->opsize = n + 1;
+        /* make the instruction */
+        ins         = _mk_instruction(name, format, n, r, dirs);
+        ins->keys  |= keyvec;
 
-    /* mark end as absolute branch */
-    if (STREQ(name, "end") || STREQ(name, "ret")) {
-        ins->type |= ITBRANCH | IF_goto;
-    }
-    else if (STREQ(name, "warningson")) {
-        /* emit a debug seg, if this op is seen */
-        PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
-    }
-    else if (STREQ(name, "yield")) {
-        if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
-            IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                "Cannot yield from non-continuation\n");
+        /* fill in oplib's info */
+        ins->opnum  = op;
+        ins->opsize = n + 1;
 
-        IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub
-            |= 1 | ITPCCYIELD;
-    }
-    else if ((strncmp(name, "invoke", 6) == 0) ||
-             (strncmp(name, "callmethod", 10) == 0)) {
-        if (IMCC_INFO(interp)->cur_unit->type & IMC_PCCSUB)
-            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub |= 1;
-    }
-
-    /* set up branch flags
-     * mark registers that are labels */
-    for (i = 0; i < op_info->op_count - 1; i++) {
-        if (op_info->labels[i])
-            ins->type |= ITBRANCH | (1 << i);
-        else {
-            if (r[i]->type == VTADDRESS)
+        /* mark end as absolute branch */
+        if (STREQ(name, "end") || STREQ(name, "ret")) {
+            ins->type |= ITBRANCH | IF_goto;
+        }
+        else if (STREQ(name, "warningson")) {
+            /* emit a debug seg, if this op is seen */
+            PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
+        }
+        else if (STREQ(name, "yield")) {
+            if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
                 IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
-                        "undefined identifier '%s'\n", r[i]->name);
+                    "Cannot yield from non-continuation\n");
+
+            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub
+                |= 1 | ITPCCYIELD;
         }
-    }
+        else if ((strncmp(name, "invoke", 6) == 0) ||
+                 (strncmp(name, "callmethod", 10) == 0)) {
+            if (IMCC_INFO(interp)->cur_unit->type & IMC_PCCSUB)
+                IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub |= 1;
+        }
+
+        /* set up branch flags
+         * mark registers that are labels */
+        for (i = 0; i < op_info->op_count - 1; i++) {
+            if (op_info->labels[i])
+                ins->type |= ITBRANCH | (1 << i);
+            else {
+                if (r[i]->type == VTADDRESS)
+                    IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
+                            "undefined identifier '%s'\n", r[i]->name);
+            }
+        }
+
+        if (op_info->jump) {
+            ins->type |= ITBRANCH;
+            /* TODO use opnum constants */
+            if (STREQ(name, "branch")
+            ||  STREQ(name, "tailcall")
+            ||  STREQ(name, "returncc"))
+                ins->type |= IF_goto;
+            else if (STREQ(fullname, "jump_i")
+                 ||  STREQ(fullname, "branch_i"))
+                IMCC_INFO(interp)->dont_optimize = 1;
+        }
+        else if (STREQ(name, "set") && n == 2) {
+            /* set Px, Py: both PMCs have the same address */
+            if (r[0]->set == r[1]->set && REG_NEEDS_ALLOC(r[1]))
+                ins->type |= ITALIAS;
+        }
+        else if (STREQ(name, "compile"))
+            ++IMCC_INFO(interp)->has_compile;
 
-    if (op_info->jump) {
-        ins->type |= ITBRANCH;
-        /* TODO use opnum constants */
-        if (STREQ(name, "branch")
-        ||  STREQ(name, "tailcall")
-        ||  STREQ(name, "returncc"))
-            ins->type |= IF_goto;
-        else if (STREQ(fullname, "jump_i")
-             ||  STREQ(fullname, "branch_i"))
-            IMCC_INFO(interp)->dont_optimize = 1;
-    }
-    else if (STREQ(name, "set") && n == 2) {
-        /* set Px, Py: both PMCs have the same address */
-        if (r[0]->set == r[1]->set && REG_NEEDS_ALLOC(r[1]))
-            ins->type |= ITALIAS;
-    }
-    else if (STREQ(name, "compile"))
-        ++IMCC_INFO(interp)->has_compile;
-
-  found_ins:
-    if (emit)
-        emitb(interp, unit, ins);
+      found_ins:
+        if (emit)
+            emitb(interp, unit, ins);
 
-    return ins;
+        return ins;
+    }
 }
 
 extern void* yy_scan_string(const char *);
@@ -654,7 +656,7 @@
     eval_number = ++eval_nr;
     UNLOCK(eval_nr_lock);
 
-    name = Parrot_sprintf_c(interp, "EVAL_" INTVAL_FMT, eval_number);
+    name   = Parrot_sprintf_c(interp, "EVAL_" INTVAL_FMT, eval_number);
     new_cs = PF_create_default_segs(interp, name, 0);
     old_cs = Parrot_switch_to_cs(interp, new_cs, 0);
 
@@ -708,11 +710,12 @@
         sub_data->seg        = new_cs;
         sub_data->start_offs = 0;
         sub_data->end_offs   = new_cs->base.size;
-        sub_data->name       = Parrot_str_copy(interp, name);
+        sub_data->name       = name;
 
         *error_message = NULL;
     }
     else {
+        PackFile_Segment_destroy(interp, (PackFile_Segment *)new_cs);
         *error_message = IMCC_INFO(interp)->error_message;
     }
 
@@ -934,11 +937,13 @@
     IMCC_push_parser_state(interp);
     {
         /* Store a copy, in order to know how to free it later */
-        char *copyname = mem_sys_strdup(fullname);
+        char *copyname                 = mem_sys_strdup(fullname);
         IMCC_INFO(interp)->state->file = copyname;
         ext                            = strrchr(copyname, '.');
     }
-    IMCC_INFO(interp)->line        = 1;
+
+    /* start over; let the start of line rule increment this to 1 */
+    IMCC_INFO(interp)->line = 0;
 
     /*
      * the Parrot_str_compare() called from pmc_type() triggers GC

Modified: branches/ops_pct/compilers/imcc/pbc.c
==============================================================================
--- branches/ops_pct/compilers/imcc/pbc.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/pbc.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -983,31 +983,32 @@
     ASSERT_ARGS(add_const_str)
 
     PackFile_ConstTable *table = interp->code->const_table;
-    STRING * const s = IMCC_string_from_reg(interp, r);
-    int k = -1;
+    STRING * const       s     = IMCC_string_from_reg(interp, r);
     int i;
+
     for (i = 0; i < table->const_count; ++i) {
         PackFile_Constant * const constant = table->constants[i];
         if (constant->type == PFC_STRING) {
             STRING * const sc = constant->u.string;
-            if (Parrot_charset_number_of_str(interp, s) ==
-                    Parrot_charset_number_of_str(interp, sc) &&
-                    Parrot_encoding_number_of_str(interp, s) ==
-                    Parrot_encoding_number_of_str(interp, sc) &&
-                    Parrot_str_equal(interp, s, sc)) {
-                k = i;
-                break;
+            if (Parrot_charset_number_of_str(interp, s)
+            ==  Parrot_charset_number_of_str(interp, sc)
+            &&  Parrot_encoding_number_of_str(interp, s)
+            ==  Parrot_encoding_number_of_str(interp, sc)
+            &&  Parrot_str_equal(interp, s, sc)) {
+                return i;
             }
         }
     }
-    if (k < 0) {
-        PackFile_Constant * constant;
-        k = add_const_table(interp);
-        constant = table->constants[k];
-        constant->type     = PFC_STRING;
-        constant->u.string = s;
+
+    /* otherwise... */
+    {
+        int                k        = add_const_table(interp);
+        PackFile_Constant *constant = table->constants[k];
+        constant->type              = PFC_STRING;
+        constant->u.string          = s;
+
+        return k;
     }
-    return k;
 }
 
 
@@ -1064,8 +1065,7 @@
     if (!pcc_sub->multi[0])
         return Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
 
-    multi_sig = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
-    VTABLE_set_integer_native(interp, multi_sig, n);
+    multi_sig = Parrot_pmc_new_init_int(interp, enum_class_FixedPMCArray, n);
     ct        = interp->code->const_table;
 
     for (i = 0; i < n; ++i) {
@@ -1193,7 +1193,6 @@
     ASSERT_ARGS(find_outer)
     subs_t      *s;
     PMC         *current;
-    STRING      *cur_name;
     char        *cur_name_str;
     Parrot_Sub_attributes *sub;
     size_t      len;
@@ -1227,7 +1226,6 @@
                    unit->outer->name);
 
     PMC_get_sub(interp, current, sub);
-    cur_name = sub->name;
 
     cur_name_str = Parrot_str_to_cstring(interp,  sub->name);
     if (strlen(cur_name_str) == len
@@ -1339,8 +1337,10 @@
         unit->subid = r;
     else {
         /* trim the quotes  */
+        char *oldname     = unit->subid->name;
         unit->subid->name = mem_sys_strdup(unit->subid->name + 1);
         unit->subid->name[strlen(unit->subid->name) - 1] = 0;
+        mem_sys_free(oldname);
 
         /* create string constant for it. */
         unit->subid->color = add_const_str(interp, unit->subid);
@@ -1397,7 +1397,7 @@
         STRING *vtable_name;
         INTVAL  vtable_index;
 
-        /* Work out the name of the vtable method. */
+        /* Work out the name of the vtable function. */
         if (unit->vtable_name) {
             vtable_name = Parrot_str_new(interp, unit->vtable_name + 1,
                     strlen(unit->vtable_name) - 2);
@@ -1406,14 +1406,13 @@
         else
             vtable_name = sub->name;
 
-        /* Check this is a valid vtable method to override. */
+        /* Check this is a valid vtable function to override. */
         vtable_index = Parrot_get_vtable_index(interp, vtable_name);
 
-        if (vtable_index == -1) {
+        if (vtable_index == -1)
             IMCC_fatal(interp, 1,
-                "'%S' is not a v-table method, but was used with :vtable.\n",
+                "'%S' is not a vtable, but was used with :vtable.\n",
                 vtable_name);
-        }
 
         /* TODO check for duplicates */
         sub->vtable_index = vtable_index;
@@ -1540,13 +1539,14 @@
 build_key(PARROT_INTERP, ARGIN(SymReg *key_reg))
 {
     ASSERT_ARGS(build_key)
-#define KEYLEN 21
-    SymReg   *reg;
+#define MAX_KEY_LEN 10
+#define MAX_KEYNAME_LEN 20
+    SymReg   *reg = key_reg->set == 'K' ? key_reg->nextkey : key_reg;
 
-    char      s_key[KEYLEN * 10];
-    opcode_t  key[KEYLEN];
+    char      s_key[MAX_KEY_LEN * MAX_KEYNAME_LEN];
+    opcode_t  key[MAX_KEY_LEN * 2 + 1];
     opcode_t  size;
-    int       key_length;     /* P0["hi;there"; S0; 2] has length 3 */
+    int       key_length = 0;     /* P0["hi;there"; S0; 2] has length 3 */
     int       k;
 
     /* 0 is length */
@@ -1556,15 +1556,14 @@
     char     *s  = s_key;
 
     *s           = 0;
-    reg          = key_reg->set == 'K' ? key_reg->nextkey : key_reg;
 
     for (key_length = 0; reg ; reg = reg->nextkey, key_length++) {
         SymReg *r = reg;
         int     type;
 
-        if ((pc - key - 2) >= KEYLEN)
+        if (key_length >= MAX_KEY_LEN)
             IMCC_fatal(interp, 1, "build_key:"
-                    "key too complex increase KEYLEN\n");
+                    "Key too long, increase MAX_KEY_LEN.\n");
 
         /* if key is a register, the original sym is in r->reg */
         type = r->type;

Modified: branches/ops_pct/compilers/imcc/pcc.c
==============================================================================
--- branches/ops_pct/compilers/imcc/pcc.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/pcc.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2009, Parrot Foundation.
+ * Copyright (C) 2003-2010, Parrot Foundation.
  * $Id$
  */
 
@@ -416,7 +416,8 @@
     SymReg      *regs[2];
 
     /* if this sub is a method, unshift 'self' as first param */
-    if ((unit->type & IMC_HAS_SELF) || (sub->pcc_sub->pragma & (P_METHOD | P_VTABLE))) {
+    if ((unit->type & IMC_HAS_SELF)
+    ||  (sub->pcc_sub->pragma & (P_METHOD | P_VTABLE))) {
         SymReg *self = get_sym(interp, "self");
         if (!self) {
             self       = mk_symreg(interp, "self", 'P');
@@ -866,11 +867,6 @@
         return;
     }
 
-    /* handle return results */
-    n   = sub->pcc_sub->nret;
-    ins = pcc_get_args(interp, unit, ins, "get_results", n,
-            sub->pcc_sub->ret, sub->pcc_sub->ret_flags);
-
     /* insert the call */
     if (meth_call) {
         regs[0] = sub->pcc_sub->object;
@@ -899,6 +895,11 @@
     }
 
     ins->type |= ITPCCSUB;
+
+    /* handle return results */
+    n   = sub->pcc_sub->nret;
+    ins = pcc_get_args(interp, unit, ins, "get_results", n,
+            sub->pcc_sub->ret, sub->pcc_sub->ret_flags);
 }
 
 /*

Modified: branches/ops_pct/compilers/imcc/symreg.c
==============================================================================
--- branches/ops_pct/compilers/imcc/symreg.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/symreg.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -860,7 +860,6 @@
 int_overflows(ARGIN(const SymReg *r))
 {
     ASSERT_ARGS(int_overflows)
-    INTVAL i;
     int base;
     const char *digits;
 
@@ -883,10 +882,10 @@
 
     errno = 0;
     if (base == 10) {
-        i = strtol(digits, NULL, base);
+        (void)strtol(digits, NULL, base);
     }
     else {
-        i = strtoul(digits + 2, NULL, base);
+        (void)strtoul(digits + 2, NULL, base);
     }
 
     return errno ? 1 : 0;

Modified: branches/ops_pct/compilers/imcc/symreg.h
==============================================================================
--- branches/ops_pct/compilers/imcc/symreg.h	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/symreg.h	Wed Apr 28 03:18:28 2010	(r46097)
@@ -456,14 +456,15 @@
 typedef enum {
     P_NONE           = 0x00,                  /* 0<<0 */
     P_NEED_LEX       = 0x01,                  /* 1<<0 */
-    P_VTABLE         = 0x02,                  /* 1<<1 */
-    P_METHOD         = 0x04,                  /* 1<<2 */
+    P_VTABLE         = SUB_COMP_FLAG_VTABLE,  /* 1<<1 0x2 */
+    P_METHOD         = SUB_COMP_FLAG_METHOD,  /* 1<<2 0x4 */
     P_ANON           = SUB_FLAG_PF_ANON,      /* 1<<3 0x8    - private3 */
     P_MAIN           = SUB_FLAG_PF_MAIN,      /* 1<<4 0x10   - private4 */
     P_LOAD           = SUB_FLAG_PF_LOAD,      /* 1<<5 0x20   - private5 */
     P_IMMEDIATE      = SUB_FLAG_PF_IMMEDIATE, /* 1<<6 0x40   - private6 */
     P_POSTCOMP       = SUB_FLAG_PF_POSTCOMP,  /* 1<<7 0x80   - private7 */
-    P_INIT           = SUB_COMP_FLAG_PF_INIT  /* 1<<10 0x400 - 10       */
+    P_INIT           = SUB_COMP_FLAG_PF_INIT, /* 1<<10 0x400 - 10       */
+    P_NSENTRY        = SUB_COMP_FLAG_NSENTRY  /* 1<<11 0x800 - 11       */
 } pragma_enum_t;
 
 typedef enum {

Modified: branches/ops_pct/compilers/imcc/unit.h
==============================================================================
--- branches/ops_pct/compilers/imcc/unit.h	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/imcc/unit.h	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2003-2009, Parrot Foundation.
+ * Copyright (C) 2003-2010, Parrot Foundation.
  */
 
 #ifndef PARROT_IMCC_UNIT_H_GUARD
@@ -64,10 +64,10 @@
     int               first_avail[4];   /* INSP */
     SymReg           *outer;
     PMC              *sub_pmc;          /* this sub */
-    int               is_vtable_method; /* 1 if a v-table method */
+    int               is_vtable_method; /* 1 if a vtable */
     int               is_method;        /* 1 if a method */
     int               has_ns_entry_name;/* 1 if in ns */
-    char             *vtable_name;      /* v-table method name, if any */
+    char             *vtable_name;      /* vtable name, if any */
     char             *method_name;      /* method name, if any */
     char             *ns_entry_name;    /* ns entry name, if any */
     char             *instance_of;      /* PMC or class this is an instance of

Modified: branches/ops_pct/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/ops_pct/compilers/pct/src/PAST/Compiler.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pct/src/PAST/Compiler.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1150,7 +1150,7 @@
     name = node.'name'()
     if name goto call_by_name
     ##  our first child is the thing to be invoked, so make sure it's a PMC
-    substr signature, 1, 0, 'P'
+    signature = replace signature, 1, 0, 'P'
     (ops, posargs, namedargs) = self.'post_children'(node, 'signature'=>signature)
     goto children_done
   call_by_name:

Modified: branches/ops_pct/compilers/pct/src/PCT/HLLCompiler.pir
==============================================================================
--- branches/ops_pct/compilers/pct/src/PCT/HLLCompiler.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pct/src/PCT/HLLCompiler.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -55,11 +55,18 @@
 
     $S0  = '???'
     push_eh _handler
-    $P0  = _config()    # currently works in the build tree, but not in the install tree
-    $S0  = $P0['revision']
+    $P0  = _config()
+    $S0  = $P0['revision']   # also $I0 = P0['installed'] could be used
   _handler:
     pop_eh
-    $P2  = box 'This compiler is built with the Parrot Compiler Toolkit, parrot revision '
+    $P2  = box 'This compiler is built with the Parrot Compiler Toolkit, parrot '
+    if $S0 goto _revision_lab
+    $P2 .= 'version '
+    $S0 = $P0['VERSION']
+    goto _is_version
+  _revision_lab:
+    $P2 .= 'revision '
+  _is_version:
     $P2 .= $S0
     $P2 .= '.'
     setattribute self, '$version', $P2
@@ -921,7 +928,7 @@
 
   load_dumper:
     load_bytecode 'PCT/Dumper.pbc'
-    downcase $S0
+    $S0 = downcase $S0
     $P0 = get_hll_global ['PCT';'Dumper'], $S0
     .tailcall $P0(obj, name)
 .end

Modified: branches/ops_pct/compilers/pct/src/POST/Node.pir
==============================================================================
--- branches/ops_pct/compilers/pct/src/POST/Node.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pct/src/POST/Node.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -82,7 +82,7 @@
 .end
 
 
-=item get_string()   # vtable method
+=item get_string()
 
 Returns the result of the current node as a string.
 

Modified: branches/ops_pct/compilers/pge/PGE/Exp.pir
==============================================================================
--- branches/ops_pct/compilers/pge/PGE/Exp.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pge/PGE/Exp.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -163,7 +163,7 @@
     .local string returnop
     returnop = '.yield'
     code.'emit'(<<"        CODE", name, pirflags, namecorou, .INTERPINFO_CURRENT_SUB)
-      .sub %0 :method %1
+      .sub %0 :method :nsentry %1
           .param pmc adverbs   :slurpy :named
           .local pmc mob
           .const 'Sub' corou = %2
@@ -192,7 +192,7 @@
     ##   Initial code for a rule that cannot be backtracked into.
     returnop = '.return'
     code.'emit'(<<"        CODE", name, pirflags)
-      .sub %0 :method %1
+      .sub %0 :method :nsentry %1
           .param pmc adverbs      :unique_reg :slurpy :named
           .local pmc mob
           .local string target    :unique_reg
@@ -362,7 +362,7 @@
     args['I'] = ''
     $I0 = self['ignorecase']
     if $I0 == 0 goto ignorecase_end
-    args['I'] = 'downcase $S0'
+    args['I'] = '$S0 = downcase $S0'
     literal = downcase literal
   ignorecase_end:
 
@@ -718,7 +718,7 @@
 
 .namespace [ 'PGE';'Exp';'CGroup' ]
 
-.sub 'pir' :method
+.sub 'pir' :method :nsentry
     .param pmc code
     .param string label
     .param string next

Modified: branches/ops_pct/compilers/pge/PGE/OPTable.pir
==============================================================================
--- branches/ops_pct/compilers/pge/PGE/OPTable.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pge/PGE/OPTable.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -155,7 +155,7 @@
     unless $S0 goto with_looser
     $S0 = tokentable[$S0;'precedence']
     $S0 = clone $S0
-    substr $S0, -1, 0, '<'
+    $S0 = replace $S0, -1, 0, '<'
     token['precedence'] = $S0
   with_looser:
 
@@ -163,7 +163,7 @@
     unless $S0 goto with_tighter
     $S0 = tokentable[$S0;'precedence']
     $S0 = clone $S0
-    substr $S0, -1, 0, '>'
+    $S0 = replace $S0, -1, 0, '>'
     token['precedence'] = $S0
   with_tighter:
 
@@ -377,7 +377,7 @@
     goto key_array_1
   key_next:
     if key == '' goto token_nows
-    chopn key, 1
+    key = chopn key, 1
     goto key_loop
   token_nows:
     if pos == wspos goto oper_not_found

Modified: branches/ops_pct/compilers/pge/PGE/Perl6Regex.pir
==============================================================================
--- branches/ops_pct/compilers/pge/PGE/Perl6Regex.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pge/PGE/Perl6Regex.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1021,7 +1021,7 @@
     ##   by converting to <, <+, <-, or <!
     $S0 = substr op, -1, 1
     if $S0 != '[' goto parse_loop
-    chopn op, 1
+    op = chopn op, 1
     goto enum
 
   parse_loop:

Modified: branches/ops_pct/compilers/pge/PGE/Regex.pir
==============================================================================
--- branches/ops_pct/compilers/pge/PGE/Regex.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pge/PGE/Regex.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -37,7 +37,7 @@
 
 =cut
 
-.sub 'ident' :method
+.sub 'ident' :method :nsentry('ident')
     .param pmc adverbs         :slurpy :named
     .local string target
     .local pmc mob, mfrom, mpos

Modified: branches/ops_pct/compilers/pirc/Rules.mak
==============================================================================
--- branches/ops_pct/compilers/pirc/Rules.mak	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/Rules.mak	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,5 @@
 compilers/pirc/src/piremit$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/piremit.c \
         compilers/pirc/src/piremit.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pircompiler.h \
@@ -13,6 +14,7 @@
         $(INC_DIR)/oplib/ops.h
 
 compilers/pirc/src/pirparser$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pirparser.c \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pirdefines.h \
@@ -30,6 +32,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirerr$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pirerr.c \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pirdefines.h \
@@ -44,6 +47,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/bcgen$(O) :  \
+  compilers/pirc/src/bcgen.c \
   compilers/pirc/src/pirsymbol.h \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirregalloc.h \
@@ -57,6 +61,7 @@
   include/pmc/pmc_namespace.h
 
 compilers/pirc/src/pirregalloc$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pirregalloc.c \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pircompunit.h \
         compilers/pirc/src/pirdefines.h \
@@ -66,25 +71,30 @@
         compilers/pirc/src/bcgen.h \
         $(INC_DIR)/embed.h
 
-compilers/pirc/heredoc/heredocmain$(O) : $(PARROT_H_HEADERS)
+compilers/pirc/heredoc/heredocmain$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/heredoc/heredocmain.c  \
 
 compilers/pirc/macro/macrolexer$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/macro/macrolexer.c  \
         compilers/pirc/macro/macro.h  \
         compilers/pirc/macro/lexer.h  \
         compilers/pirc/macro/macroparser.h
 
 compilers/pirc/macro/macroparser$(O) : $(PARROT_H_HEADERS) \
+        compilers/pirc/macro/macroparser.c  \
         compilers/pirc/macro/macro.h  \
         compilers/pirc/macro/lexer.h  \
         compilers/pirc/macro/macroparser.h \
         compilers/pirc/macro/macrolexer.h
 
 compilers/pirc/src/hdocprep$(O) : $(PARROT_H_HEADERS) \
-        $(INC_DIR)/embed.h compilers/pirc/src/pirheredoc.h
+        $(INC_DIR)/embed.h compilers/pirc/src/pirheredoc.h \
+        compilers/pirc/src/hdocprep.c
 
 compilers/pirc/src/main$(O) : \
         $(PARROT_H_HEADERS) \
         $(INC_DIR)/embed.h \
+        compilers/pirc/src/main.c \
         compilers/pirc/src/bcgen.h \
         compilers/pirc/src/pirparser.h \
         compilers/pirc/src/pircompiler.h \
@@ -101,6 +111,7 @@
 
 compilers/pirc/src/pircapi$(O) : \
         $(PARROT_H_HEADERS) \
+        compilers/pirc/src/pircapi.c \
         compilers/pirc/src/bcgen.h \
         compilers/pirc/src/pircompiler.h \
         compilers/pirc/src/pirparser.h \
@@ -116,6 +127,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/pircompiler$(O) : \
+        compilers/pirc/src/pircompiler.c \
         compilers/pirc/src/pircompiler.h \
         $(PARROT_H_HEADERS) \
         compilers/pirc/src/piryy.h \
@@ -129,6 +141,7 @@
         $(INC_DIR)/embed.h
 
 compilers/pirc/src/pircompunit$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pircompunit.c \
   compilers/pirc/src/pircompunit.h \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirsymbol.h \
@@ -145,6 +158,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirlexer$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirlexer.c \
   compilers/pirc/src/pirparser.h \
   compilers/pirc/src/pirmacro.h \
   compilers/pirc/src/pirerr.h \
@@ -158,6 +172,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirmacro$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirmacro.c \
   compilers/pirc/src/pirmacro.h \
   compilers/pirc/src/pircompunit.h \
   compilers/pirc/src/pircompiler.h \
@@ -168,6 +183,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirop$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirop.c \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pircompunit.h \
   compilers/pirc/src/pirop.h \
@@ -181,6 +197,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirpcc$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirpcc.c \
   compilers/pirc/src/pirpcc.h \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirerr.h \
@@ -195,6 +212,7 @@
   $(INC_DIR)/embed.h
 
 compilers/pirc/src/pirsymbol$(O) : $(PARROT_H_HEADERS) \
+  compilers/pirc/src/pirsymbol.c \
   compilers/pirc/src/pircompiler.h \
   compilers/pirc/src/pirsymbol.h \
   compilers/pirc/src/piryy.h \

Modified: branches/ops_pct/compilers/pirc/src/pircompiler.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompiler.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pircompiler.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -33,9 +33,10 @@
 PARROT_WARN_UNUSED_RESULT
 static allocated_mem_ptrs * new_mem_ptrs_block(void);
 
-static void register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+static void register_ptr(ARGMOD(lexer_state *lexer), ARGIN(void *ptr))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 static void store_string(
     ARGIN(lexer_state * const lexer),
@@ -98,7 +99,7 @@
 
 */
 static void
-register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+register_ptr(ARGMOD(lexer_state *lexer), ARGIN(void *ptr))
 {
     ASSERT_ARGS(register_ptr)
     allocated_mem_ptrs *ptrs = lexer->mem_allocations;
@@ -106,7 +107,7 @@
     PARROT_ASSERT(ptrs);
 
     if (ptrs->allocs_in_this_block == NUM_MEM_ALLOCS_PER_BLOCK) {
-        allocated_mem_ptrs *newblock = new_mem_ptrs_block();
+        allocated_mem_ptrs * const newblock = new_mem_ptrs_block();
         newblock->next               = ptrs;
         lexer->mem_allocations       = newblock;
         ptrs                         = newblock;
@@ -118,8 +119,7 @@
 
 /*
 
-=item C<void * pir_mem_allocate_zeroed(lexer_state * const lexer, size_t
-numbytes)>
+=item C<void * pir_mem_allocate_zeroed(lexer_state *lexer, size_t numbytes)>
 
 Memory allocation function for all PIR internal functions. Memory is allocated
 through Parrot's allocation functions, but the pointer to the allocated memory
@@ -135,9 +135,9 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 void *
-pir_mem_allocate_zeroed(ARGIN(lexer_state * const lexer), size_t numbytes)
+pir_mem_allocate_zeroed(ARGMOD(lexer_state *lexer), size_t numbytes)
 {
-    void *ptr = mem_sys_allocate_zeroed(numbytes);
+    void * const ptr = mem_sys_allocate_zeroed(numbytes);
 
     totalmem += numbytes;
 

Modified: branches/ops_pct/compilers/pirc/src/pircompiler.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompiler.h	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pircompiler.h	Wed Apr 28 03:18:28 2010	(r46097)
@@ -215,10 +215,9 @@
 PARROT_MALLOC
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
-void * pir_mem_allocate_zeroed(
-    ARGIN(lexer_state * const lexer),
-    size_t numbytes)
-        __attribute__nonnull__(1);
+void * pir_mem_allocate_zeroed(ARGMOD(lexer_state *lexer), size_t numbytes)
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*lexer);
 
 void pirwarning(
     ARGIN(lexer_state * const lexer),

Modified: branches/ops_pct/compilers/pirc/src/pircompunit.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompunit.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pircompunit.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -274,9 +274,9 @@
 =item C<void set_sub_vtable(lexer_state * const lexer, char const * vtablename)>
 
 Set the :vtable() flag argument to the current subroutine. If C<vtablename>
-is NULL, the name of the current sub is taken to be the vtable method name.
-If the vtable method name (either specified or the current sub's name) is
-in fact not a vtable method, an error message is emitted.
+is NULL, the name of the current sub is taken to be the vtable name.
+If the vtable name (either specified or the current sub's name) is
+not a valid vtable, an error message is emitted.
 
 =cut
 
@@ -290,15 +290,15 @@
     if (vtablename == NULL)  /* the sub's name I<is> the vtablename */
         vtablename = CURRENT_SUB(lexer)->info.subname;
 
-    /* get the index number of this vtable method */
+    /* get the index number of this vtable */
     vtable_index = Parrot_get_vtable_index(lexer->interp,
                                            Parrot_str_new(lexer->interp, vtablename,
                                                                strlen(vtablename)));
 
-    /* now check whether the method name actually a vtable method */
+    /* now check whether the method name actually a vtable */
     if (vtable_index == -1)
         yypirerror(lexer->yyscanner, lexer,
-                   "'%s' is not a vtable method but was used with :vtable flag", vtablename);
+                   "'%s' is not a vtable but was used with :vtable flag", vtablename);
 
     else {
         /* test for duplicate :vtable on a sub */
@@ -660,7 +660,7 @@
 
 /*
 
-=item C<target * new_target(lexer_state * const lexer)>
+=item C<target * new_target(lexer_state *lexer)>
 
 Create a new target node. The node's next pointer is initialized to itself.
 
@@ -670,16 +670,16 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 target *
-new_target(ARGIN(lexer_state * const lexer))
+new_target(ARGMOD(lexer_state *lexer))
 {
-    target *t       = pir_mem_allocate_zeroed_typed(lexer, target);
+    target * const t = pir_mem_allocate_zeroed_typed(lexer, target);
     t->key          = NULL;
     t->next         = t; /* circly linked list */
     return t;
 }
 
 /*
-=item C<void set_target_key(target * const t, key * const k)>
+=item C<void set_target_key(target *t, key *k)>
 
 Set the key C<k> on target C<t>. For instance:
 
@@ -691,15 +691,14 @@
 
 */
 void
-set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+set_target_key(ARGMOD(target *t), ARGIN(key *k))
 {
     t->key = k;
 }
 
 /*
 
-=item C<target * target_from_symbol(lexer_state * const lexer, symbol * const
-sym)>
+=item C<target * target_from_symbol(lexer_state * lexer, symbol *sym)>
 
 Convert symbol C<sym> into a target node. The resulting target has
 a pointer to C<sym>.
@@ -710,10 +709,9 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 target *
-target_from_symbol(ARGIN(lexer_state * const lexer),
-        ARGIN(symbol * const sym))
+target_from_symbol(ARGMOD(lexer_state * lexer), ARGIN(symbol *sym))
 {
-    target *t  = new_target(lexer);
+    target * const t = new_target(lexer);
 
     t->flags   = sym->flags; /* copy the flags */
     t->info    = &sym->info;
@@ -738,7 +736,7 @@
 PARROT_IGNORABLE_RESULT
 PARROT_CANNOT_RETURN_NULL
 target *
-add_target(ARGIN(lexer_state * const lexer),
+add_target(SHIM(lexer_state * const lexer),
         ARGMOD(target *last), ARGIN(target * const t))
 {
     PARROT_ASSERT(last);
@@ -1429,7 +1427,7 @@
 
 /*
 
-=item C<unsigned get_operand_count(lexer_state * const lexer)>
+=item C<unsigned get_operand_count(lexer_state *lexer)>
 
 Returns the number of operands of the I<current> instruction.
 This function assumes there is an instruction in place
@@ -1440,7 +1438,7 @@
 */
 PARROT_WARN_UNUSED_RESULT
 unsigned
-get_operand_count(ARGIN(lexer_state * const lexer))
+get_operand_count(ARGIN(lexer_state *lexer))
 {
     unsigned count = 0;
     expression *first, *operand;

Modified: branches/ops_pct/compilers/pirc/src/pircompunit.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pircompunit.h	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pircompunit.h	Wed Apr 28 03:18:28 2010	(r46097)
@@ -439,10 +439,9 @@
 PARROT_IGNORABLE_RESULT
 PARROT_CANNOT_RETURN_NULL
 target * add_target(
-    ARGIN(lexer_state * const lexer),
+    SHIM(lexer_state * const lexer),
     ARGMOD(target *last),
     ARGIN(target * const t))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3)
         FUNC_MODIFIES(*last);
@@ -522,7 +521,7 @@
         __attribute__nonnull__(1);
 
 PARROT_WARN_UNUSED_RESULT
-unsigned get_operand_count(ARGIN(lexer_state * const lexer))
+unsigned get_operand_count(ARGIN(lexer_state *lexer))
         __attribute__nonnull__(1);
 
 void get_operands(ARGIN(lexer_state * const lexer), int bitmask, ...)
@@ -619,8 +618,9 @@
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
-target * new_target(ARGIN(lexer_state * const lexer))
-        __attribute__nonnull__(1);
+target * new_target(ARGMOD(lexer_state *lexer))
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*lexer);
 
 void push_operand(
     ARGIN(lexer_state * const lexer),
@@ -800,17 +800,17 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-void set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+void set_target_key(ARGMOD(target *t), ARGIN(key *k))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*t);
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
-target * target_from_symbol(
-    ARGIN(lexer_state * const lexer),
-    ARGIN(symbol * const sym))
+target * target_from_symbol(ARGMOD(lexer_state * lexer), ARGIN(symbol *sym))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(* lexer);
 
 PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
@@ -869,8 +869,7 @@
        PARROT_ASSERT_ARG(lexer) \
     , PARROT_ASSERT_ARG(name))
 #define ASSERT_ARGS_add_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(lexer) \
-    , PARROT_ASSERT_ARG(last) \
+       PARROT_ASSERT_ARG(last) \
     , PARROT_ASSERT_ARG(t))
 #define ASSERT_ARGS_annotate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(lexer) \

Modified: branches/ops_pct/compilers/pirc/src/pirlexer.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirlexer.h	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pirlexer.h	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,509 +1,17 @@
-#ifndef yypirHEADER_H
-#define yypirHEADER_H 1
-#define yypirIN_HEADER 1
-
-#line 6 "pirlexer.h"
-#line 2 "pir.l"
-
-/* ex: set ro ft=c:
- * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
- *
- * This file is generated automatically by the Parrot build process
- * from the file compilers/pirc/new/pir.l.
- *
- * Any changes made here will be lost!
- *
-*/
-
-/* HEADERIZER HFILE: none */
-/* HEADERIZER STOP */
-
-#ifndef __STDC_VERSION__
-#  define __STDC_VERSION__ 0
-#endif
-
-#ifndef YY_NO_UNISTD_H
-#  define YY_NO_UNISTD_H
-#endif
-
-/* prevent warnings on undefined #defines: */
-#ifndef YY_MAIN
-#  define YY_MAIN 0
-#endif
-
-#ifndef YY_ALWAYS_INTERACTIVE
-#  define YY_ALWAYS_INTERACTIVE 0
-#endif
-
-#include <stdlib.h> /* for size_t */
-typedef size_t yy_size_t;
-#define YY_TYPEDEF_YY_SIZE_T
-
-
-
-
-#line 46 "pirlexer.h"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-/* %not-for-header */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* %if-c++-only */
-/* %endif */
-
-/* %if-c-only */
-    
-/* %endif */
-
-/* %if-c-only */
-
-/* %endif */
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-/* %if-c-only */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-/* %endif */
-
-/* %if-tables-serialization */
-/* %endif */
-/* end standard C headers. */
-
-/* %if-c-or-c++ */
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
+/*
+ * Copyright (C) 2010, Parrot Foundation.
+ * $Id$
  */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-/* %endif */
-
-/* %if-c++-only */
-/* %endif */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* %not-for-header */
-
-/* %not-for-header */
-
-/* %if-reentrant */
-
-/* An opaque pointer. */
-#ifndef YY_TYPEDEF_YY_SCANNER_T
-#define YY_TYPEDEF_YY_SCANNER_T
-typedef void* yyscan_t;
-#endif
-
-/* For convenience, these vars (plus the bison vars far below)
-   are macros in the reentrant scanner. */
-#define yyin yyg->yyin_r
-#define yyout yyg->yyout_r
-#define yyextra yyg->yyextra_r
-#define yyleng yyg->yyleng_r
-#define yytext yyg->yytext_r
-#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
-#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
-#define yy_flex_debug yyg->yy_flex_debug_r
-
-/* %endif */
-
-/* %if-not-reentrant */
-/* %endif */
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-/* %if-not-reentrant */
-/* %endif */
-
-/* %if-c-only */
-/* %if-not-reentrant */
-/* %endif */
-/* %endif */
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-/* %if-c-only */
-	FILE *yy_input_file;
-/* %endif */
-
-/* %if-c++-only */
-/* %endif */
-
-	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.
-	 */
-	yy_size_t 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;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* %if-c-only Standard (non-C++) definition */
-/* %not-for-header */
-
-/* %endif */
-
-/* %if-c-only Standard (non-C++) definition */
-
-/* %if-not-reentrant */
-/* %not-for-header */
 
-/* %endif */
+#ifndef PARROT_PIR_PIRLEXER_H_GUARD
+#define PARROT_PIR_PIRLEXER_H_GUARD
 
-void yypirrestart (FILE *input_file ,yyscan_t yyscanner );
-void yypir_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-YY_BUFFER_STATE yypir_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
-void yypir_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void yypir_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
-void yypirpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
-void yypirpop_buffer_state (yyscan_t yyscanner );
 
-YY_BUFFER_STATE yypir_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
-YY_BUFFER_STATE yypir_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
-YY_BUFFER_STATE yypir_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
+#endif /* PARROT_PIR_PIRLEXER_H_GUARD */
 
-/* %endif */
-
-void *yypiralloc (yy_size_t ,yyscan_t yyscanner );
-void *yypirrealloc (void *,yy_size_t ,yyscan_t yyscanner );
-void yypirfree (void * ,yyscan_t yyscanner );
-
-/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
-/* Begin user sect3 */
-
-#define yypirwrap(n) 1
-#define YY_SKIP_YYWRAP
-
-#define FLEX_DEBUG
-
-#define yytext_ptr yytext_r
-
-/* %if-c-only Standard (non-C++) definition */
-
-/* %endif */
-
-#ifdef YY_HEADER_EXPORT_START_CONDITIONS
-#define INITIAL 0
-#define MACROHEAD 1
-#define MACROBODY 2
-#define MACROLOCAL 3
-#define MACROLABEL 4
-#define MACROEXPAND 5
-#define MACROCONST 6
-#define SCANSTR 7
-#define SCANMACRO 8
-#define STRINGEXPAND 9
-#define SPECIALSTART 10
-#define PASM 11
-
-#endif
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-/* %if-c-only */
-#include <unistd.h>
-/* %endif */
-/* %if-c++-only */
-/* %endif */
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-/* %if-c-only Reentrant structure and macros (non-C++). */
-/* %if-reentrant */
-
-/* %if-c-only */
-
-/* %endif */
-
-/* %if-reentrant */
-
-int yypirlex_init (yyscan_t* scanner);
-
-int yypirlex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
-
-/* %endif */
-
-/* %endif End reentrant structures and macros. */
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int yypirlex_destroy (yyscan_t yyscanner );
-
-int yypirget_debug (yyscan_t yyscanner );
-
-void yypirset_debug (int debug_flag ,yyscan_t yyscanner );
-
-YY_EXTRA_TYPE yypirget_extra (yyscan_t yyscanner );
-
-void yypirset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
-
-FILE *yypirget_in (yyscan_t yyscanner );
-
-void yypirset_in  (FILE * in_str ,yyscan_t yyscanner );
-
-FILE *yypirget_out (yyscan_t yyscanner );
-
-void yypirset_out  (FILE * out_str ,yyscan_t yyscanner );
-
-yy_size_t yypirget_leng (yyscan_t yyscanner );
-
-char *yypirget_text (yyscan_t yyscanner );
-
-int yypirget_lineno (yyscan_t yyscanner );
-
-void yypirset_lineno (int line_number ,yyscan_t yyscanner );
-
-/* %if-bison-bridge */
-
-YYSTYPE * yypirget_lval (yyscan_t yyscanner );
-
-void yypirset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
-
-/* %endif */
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
  */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yypirwrap (yyscan_t yyscanner );
-#else
-extern int yypirwrap (yyscan_t yyscanner );
-#endif
-#endif
-
-/* %not-for-header */
-
-/* %endif */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
-#endif
-
-#ifndef YY_NO_INPUT
-/* %if-c-only Standard (non-C++) definition */
-/* %not-for-header */
-
-/* %endif */
-#endif
-
-/* %if-c-only */
-
-/* %endif */
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* %if-tables-serialization structures and prototypes */
-/* %not-for-header */
-
-/* %not-for-header */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-/* %if-c-only Standard (non-C++) definition */
-
-extern int yypirlex \
-               (YYSTYPE * yylval_param ,yyscan_t yyscanner);
-
-#define YY_DECL int yypirlex \
-               (YYSTYPE * yylval_param , yyscan_t yyscanner)
-/* %endif */
-/* %if-c++-only C++ definition */
-/* %endif */
-#endif /* !YY_DECL */
-
-/* %not-for-header */
-
-/* %if-c++-only */
-/* %not-for-header */
-
-/* %endif */
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-/* %if-c-only */
-/* %not-for-header */
-
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef YY_DO_BEFORE_ACTION
-
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
-
-#line 1199 "pir.l"
-
-
-#line 508 "pirlexer.h"
-#undef yypirIN_HEADER
-#endif /* yypirHEADER_H */

Modified: branches/ops_pct/compilers/pirc/src/pirparser.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirparser.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pirparser.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -411,31 +411,39 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 static void check_first_arg_direction(
-    lexer_state * const lexer,
-    NOTNULL(char const * const opname))
-        __attribute__nonnull__(2);
+    ARGMOD(lexer_state *lexer),
+    ARGIN(char const *opname))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
+PARROT_MALLOC
 static char * concat_strings(
-    NOTNULL(lexer_state * const lexer),
-    NOTNULL(char const * a),
-    NOTNULL(char const * b))
+    ARGMOD(lexer_state *lexer),
+    ARGIN(const char * a),
+    ARGIN(const char * b))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*lexer);
 
 static void create_if_instr(
-    NOTNULL(lexer_state * const lexer),
+    ARGMOD(lexer_state *lexer),
     int invert,
     int hasnull,
-    NOTNULL(char const * const name),
-    NOTNULL(char const * const label))
+    ARGIN(const char *name),
+    ARGIN(const char *label))
         __attribute__nonnull__(1)
         __attribute__nonnull__(4)
-        __attribute__nonnull__(5);
+        __attribute__nonnull__(5)
+        FUNC_MODIFIES(*lexer);
+
+static void do_strength_reduction(ARGMOD(lexer_state *lexer))
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*lexer);
 
-static void do_strength_reduction(lexer_state * const lexer);
 PARROT_WARN_UNUSED_RESULT
 static int evaluate_i_i(int a, pir_rel_operator op, int b);
 
@@ -446,8 +454,11 @@
 static int evaluate_n_i(double a, pir_rel_operator op, int b);
 
 static void undeclared_symbol(
-    lexer_state * const lexer,
-    char const * const symbol);
+    ARGMOD(lexer_state *lexer),
+    ARGIN(char const *symbol))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 static void yy_reduce_print (
     YYSTYPE *yyvsp,
@@ -483,7 +494,8 @@
 static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar);
 static YYSIZE_T yytnamerr (char *yyres, const char *yystr);
 #define ASSERT_ARGS_check_first_arg_direction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(opname))
+       PARROT_ASSERT_ARG(lexer) \
+    , PARROT_ASSERT_ARG(opname))
 #define ASSERT_ARGS_concat_strings __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(lexer) \
     , PARROT_ASSERT_ARG(a) \
@@ -492,11 +504,14 @@
        PARROT_ASSERT_ARG(lexer) \
     , PARROT_ASSERT_ARG(name) \
     , PARROT_ASSERT_ARG(label))
-#define ASSERT_ARGS_do_strength_reduction __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_do_strength_reduction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(lexer))
 #define ASSERT_ARGS_evaluate_i_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_evaluate_i_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_evaluate_n_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_undeclared_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_undeclared_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(lexer) \
+    , PARROT_ASSERT_ARG(symbol))
 #define ASSERT_ARGS_yy_reduce_print  __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_yy_stack_print  __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_yy_symbol_print  __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -5510,8 +5525,8 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static constant *
-fold_s_s(yyscan_t yyscanner, NOTNULL(char const *a), pir_math_operator op, NOTNULL(char const *b)) {
-    lexer_state *lexer = (lexer_state *)yypirget_extra(yyscanner);
+fold_s_s(yyscan_t yyscanner, ARGIN(const char *a), pir_math_operator op, ARGIN(char const *b)) {
+    lexer_state * const lexer = (lexer_state *)yypirget_extra(yyscanner);
     switch (op) {
         case OP_CONCAT:
             return new_const(lexer, STRING_VAL, concat_strings(lexer, a, b));
@@ -5650,8 +5665,8 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-evaluate_s_s(NOTNULL(char const * const a), pir_rel_operator op, NOTNULL(char const * const b)) {
-    int result = strcmp(a, b); /* do /not/ use STREQ; we're interested in the result. */
+evaluate_s_s(ARGIN(const char *a), pir_rel_operator op, ARGIN(const char *b)) {
+    const int result = strcmp(a, b); /* do /not/ use STREQ; we're interested in the result. */
 
     switch (op) {
         case OP_NE:
@@ -5685,8 +5700,8 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-evaluate_s(NOTNULL(char const * const s)) {
-    int strlen_s = strlen(s);
+evaluate_s(ARGIN(char const *s)) {
+    const size_t strlen_s = strlen(s);
 
     if (strlen_s > 0) {
         if (strlen_s <= 3) { /* if strlen > 3, (max. nr of characters to represent "0")
@@ -5717,7 +5732,7 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-evaluate_c(NOTNULL(lexer_state * const lexer), NOTNULL(constant * const c)) {
+evaluate_c(ARGIN(lexer_state * const lexer), ARGIN(const constant *c)) {
     switch (c->type) {
         case INT_VAL:
             return (c->val.ival != 0);
@@ -5735,8 +5750,8 @@
 
 /*
 
-=item C<static char * concat_strings(lexer_state * const lexer, char const * a,
-char const * b)>
+=item C<static char * concat_strings(lexer_state *lexer, const char * a, const
+char * b)>
 
 Concatenates two strings into a new buffer. The new string is returned.
 
@@ -5745,12 +5760,13 @@
 */
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
+PARROT_MALLOC
 static char *
-concat_strings(NOTNULL(lexer_state * const lexer), NOTNULL(char const * a),
-               NOTNULL(char const * b))
+concat_strings(ARGMOD(lexer_state *lexer), ARGIN(const char * a),
+               ARGIN(const char * b))
 {
-    int strlen_a = strlen(a);
-    char *newstr = (char *)pir_mem_allocate_zeroed(lexer, (strlen_a + strlen(b) + 1)
+    const size_t strlen_a = strlen(a);
+    const char * const newstr = (char *)pir_mem_allocate_zeroed(lexer, (strlen_a + strlen(b) + 1)
                                                           * sizeof (char));
     strcpy(newstr, a);
     strcpy(newstr + strlen_a, b);
@@ -5761,8 +5777,8 @@
 
 /*
 
-=item C<static void create_if_instr(lexer_state * const lexer, int invert, int
-hasnull, char const * const name, char const * const label)>
+=item C<static void create_if_instr(lexer_state *lexer, int invert, int hasnull,
+const char *name, const char *label)>
 
 Create an C<if> or C<unless> instruction; if C<invert> is non-zero (true), the
 C<if> instruction is inverted, effectively becoming C<unless>.
@@ -5776,9 +5792,8 @@
 
 */
 static void
-create_if_instr(NOTNULL(lexer_state * const lexer), int invert, int hasnull,
-                NOTNULL(char const * const name),
-                NOTNULL(char const * const label))
+create_if_instr(ARGMOD(lexer_state *lexer), int invert, int hasnull,
+                ARGIN(const char *name), ARGIN(const char *label))
 {
     /* try to find the symbol; if it was declared it will be found; otherwise emit an error. */
     symbol *sym = find_symbol(lexer, name);
@@ -6009,7 +6024,7 @@
 
 /*
 
-=item C<static void do_strength_reduction(lexer_state * const lexer)>
+=item C<static void do_strength_reduction(lexer_state *lexer)>
 
 Implement strength reduction for the math operators C<add>, C<sub>, C<mul>, C<div> and C<fdiv>.
 If the current instruction is any of these, then the first two operands are checked; if both
@@ -6034,7 +6049,7 @@
 
 */
 static void
-do_strength_reduction(lexer_state * const lexer) {
+do_strength_reduction(ARGMOD(lexer_state *lexer)) {
     instruction *instr;
     expression  *arg1;
     expression  *arg2;
@@ -6138,13 +6153,13 @@
             break;
     }
 
-
+    return;
 }
 
 /*
 
-=item C<static void check_first_arg_direction(lexer_state * const lexer, char
-const * const opname)>
+=item C<static void check_first_arg_direction(lexer_state *lexer, char const
+*opname)>
 
 This function checks the first argument's  direction of the op C<opname>.
 If the direction is not C<OUT>, a syntax error is emitted. This function assumes
@@ -6164,7 +6179,7 @@
 
 */
 static void
-check_first_arg_direction(lexer_state * const lexer, NOTNULL(char const * const opname)) {
+check_first_arg_direction(ARGMOD(lexer_state *lexer), ARGIN(char const *opname)) {
     int dir_first_arg;
 
     /* op_count also counts the instruction itself, so must be at least 2 */
@@ -6174,7 +6189,7 @@
     if (!CURRENT_INSTRUCTION(lexer)->opinfo->dirs)
         fprintf(stderr, "no opinfo->dirs!\n");
     else {
-        op_info_t *opinfo = CURRENT_INSTRUCTION(lexer)->opinfo;
+        const op_info_t * const opinfo = CURRENT_INSTRUCTION(lexer)->opinfo;
 
         if (opinfo)
             dir_first_arg = CURRENT_INSTRUCTION(lexer)->opinfo->dirs[0];
@@ -6188,7 +6203,6 @@
     if (dir_first_arg != PARROT_ARGDIR_OUT)
         yypirerror(lexer->yyscanner, lexer, "cannot write first arg of op '%s' as a target "
                                             "(direction of argument is IN/INOUT).", opname);
-
 }
 
 
@@ -6214,12 +6228,10 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-check_op_args_for_symbols(lexer_state * const lexer) {
+check_op_args_for_symbols(ARGMOD(lexer_state *lexer)) {
     struct op_info_t  * opinfo;
     unsigned short      i;
     short               opcount;
-    unsigned            num_operands;
-    char               *fullopname;
     int                 opcode;
     int                 result;
     int                 label_bitmask = 0; /* an int is at least 32 bits;
@@ -6229,9 +6241,10 @@
                                             */
 
     /* iterate over all operands to set the type and PASM register on all target nodes, if any */
-    num_operands = get_operand_count(lexer);
+    const unsigned int num_operands = get_operand_count(lexer);
+
     for (i = 0; i < num_operands; i++) {
-        expression *operand = get_operand(lexer, i + 1); /* get_operand counts from 1 */
+        expression * const operand = get_operand(lexer, i + 1); /* get_operand counts from 1 */
 
         if (operand->type == EXPR_IDENT) { /* op_arg ::= identifier */
             /* the operand is an identifier, check now whether it was a symbol. If so,
@@ -6317,8 +6330,7 @@
 
 /*
 
-=item C<static void undeclared_symbol(lexer_state * const lexer, char const *
-const symbol)>
+=item C<static void undeclared_symbol(lexer_state *lexer, char const *symbol)>
 
 Report an error message saying that C<symbol> was not declared. Then test
 whether the symbol is perhaps a PASM register identifier. The user may have
@@ -6328,7 +6340,7 @@
 
 */
 static void
-undeclared_symbol(lexer_state * const lexer, char const * const symbol) {
+undeclared_symbol(ARGMOD(lexer_state *lexer), ARGIN(char const *symbol)) {
     if (TEST_FLAG(lexer->flags, LEXER_FLAG_PASMFILE)) {
         yypirerror(lexer->yyscanner, lexer,
                    "cannot use symbols in PASM mode ('%s')", symbol);

Modified: branches/ops_pct/compilers/pirc/src/pirsymbol.c
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirsymbol.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pirsymbol.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -73,10 +73,11 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static pir_reg * new_pir_reg(
-    ARGIN(lexer_state * const lexer),
+    ARGMOD(lexer_state *lexer),
     pir_type type,
     int regno)
-        __attribute__nonnull__(1);
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*lexer);
 
 static int next_register(ARGIN(lexer_state * const lexer), pir_type type)
         __attribute__nonnull__(1);
@@ -386,8 +387,7 @@
 
 /*
 
-=item C<symbol * find_symbol(lexer_state * const lexer, char const * const
-name)>
+=item C<symbol * find_symbol(lexer_state *lexer, const char *name)>
 
 Return the node for the symbol or NULL if the symbol
 is not defined. If an attempt is made to find a symbol,
@@ -400,8 +400,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 symbol *
-find_symbol(ARGIN(lexer_state * const lexer),
-        ARGIN(char const * const name))
+find_symbol(ARGMOD(lexer_state *lexer), ARGIN(const char *name))
 {
     ASSERT_ARGS(find_symbol)
     hashtable    *table    = &CURRENT_SUB(lexer)->symbols;
@@ -411,7 +410,7 @@
 
 
     while (buck) {
-        symbol *sym = bucket_symbol(buck);
+        symbol * const sym = bucket_symbol(buck);
 
         if (STREQ(sym->info.id.name, name)) {
 
@@ -441,8 +440,8 @@
 
 /*
 
-=item C<static pir_reg * new_pir_reg(lexer_state * const lexer, pir_type type,
-int regno)>
+=item C<static pir_reg * new_pir_reg(lexer_state *lexer, pir_type type, int
+regno)>
 
 Create a new PIR register node representing PIR/symbolic register
 identified by C<regno> and of type C<type>.
@@ -453,7 +452,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static pir_reg *
-new_pir_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+new_pir_reg(ARGMOD(lexer_state *lexer), pir_type type, int regno)
 {
     ASSERT_ARGS(new_pir_reg)
     pir_reg *r = pir_mem_allocate_zeroed_typed(lexer, pir_reg);

Modified: branches/ops_pct/compilers/pirc/src/pirsymbol.h
==============================================================================
--- branches/ops_pct/compilers/pirc/src/pirsymbol.h	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/compilers/pirc/src/pirsymbol.h	Wed Apr 28 03:18:28 2010	(r46097)
@@ -130,11 +130,10 @@
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
-symbol * find_symbol(
-    ARGIN(lexer_state * const lexer),
-    ARGIN(char const * const name))
+symbol * find_symbol(ARGMOD(lexer_state *lexer), ARGIN(const char *name))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL

Modified: branches/ops_pct/config/auto/arch.pm
==============================================================================
--- branches/ops_pct/config/auto/arch.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/auto/arch.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -29,6 +29,13 @@
     my %data;
     $data{description} = q{Determine CPU architecture and OS};
     $data{result}      = q{};
+    my $unamep;
+    eval {
+       chomp( $unamep  = `uname -p` ) unless ($^O eq 'MSWin32');
+    };
+    $data{unamep} = (! $@ and $unamep)
+        ? $unamep
+        : undef;
     return \%data;
 }
 
@@ -60,12 +67,9 @@
     # the above split fails because archname is "darwin-thread-multi-2level".
     if ( $cpuarch =~ /darwin/ ) {
         $osname = 'darwin';
-         if ( $conf->data->get('byteorder') =~ /^1234/ ) {
-            $cpuarch = 'i386';
-        }
-        else {
-            $cpuarch = 'ppc';
-        }
+        $cpuarch = ( $self->{unamep} eq 'powerpc' )
+            ? 'ppc'
+            : 'i386';
     }
 
     # cpuarch and osname are reversed in archname on windows

Modified: branches/ops_pct/config/auto/attributes.pm
==============================================================================
--- branches/ops_pct/config/auto/attributes.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/auto/attributes.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -40,8 +40,11 @@
     HASATTRIBUTE_PURE
     HASATTRIBUTE_UNUSED
     HASATTRIBUTE_WARN_UNUSED_RESULT
+    HASATTRIBUTE_HOT
+    HASATTRIBUTE_COLD
     HASATTRIBUTE_NEVER_WORKS
 );
+# HASATTRIBUTE_NEVER_WORKS is at the end just to prove that it's possible to fail.
 
 sub runstep {
     my ( $self, $conf ) = @_;

Modified: branches/ops_pct/config/auto/attributes/test_c.in
==============================================================================
--- branches/ops_pct/config/auto/attributes/test_c.in	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/auto/attributes/test_c.in	Wed Apr 28 03:18:28 2010	(r46097)
@@ -32,6 +32,16 @@
 purefunc(int x);
 
 
+__attribute__hot__
+int
+hotfunc(int x);
+
+
+__attribute__cold__
+int
+coldfunc(int x);
+
+
 static int
 useless(void) { int x __attribute__unused__; return 0; }
 

Deleted: branches/ops_pct/config/auto/cgoto.pm
==============================================================================
--- branches/ops_pct/config/auto/cgoto.pm	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,82 +0,0 @@
-# Copyright (C) 2001-2005, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/cgoto.pm - Computed C<goto>
-
-=head1 DESCRIPTION
-
-Determines whether the compiler supports computed C<goto>.
-
-=cut
-
-package auto::cgoto;
-
-use strict;
-use warnings;
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':auto';
-
-sub _init {
-    my $self = shift;
-    return {
-        'description' => 'Does your compiler support computed goto',
-        'result'      => '',
-    };
-}
-
-sub runstep {
-    my ( $self, $conf ) = @_;
-
-    my $test = _probe_for_cgoto( $conf );
-
-    $self->_evaluate_cgoto($conf, $test);
-
-    return 1;
-}
-
-sub _probe_for_cgoto {
-    my $conf = shift;
-    my $cgoto = $conf->options->get('cgoto');
-    my $test;
-    if ( defined $cgoto ) {
-        $test = $cgoto;
-    }
-    else {
-        $conf->cc_gen('config/auto/cgoto/test_c.in');
-        $test = eval { $conf->cc_build(); 1; } || 0;
-        $conf->cc_clean();
-    }
-    return $test;
-}
-
-sub _evaluate_cgoto {
-    my ($self, $conf, $test) = @_;
-    my $verbose = $conf->options->get('verbose');
-    if ($test) {
-        $conf->data->set(
-            cg_flag => '-DHAVE_COMPUTED_GOTO'
-        );
-        print " (yes) " if $verbose;
-        $self->set_result('yes');
-    }
-    else {
-        $conf->data->set(
-            cg_flag   => ''
-        );
-        print " (no) " if $verbose;
-        $self->set_result('no');
-    }
-}
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/ops_pct/config/auto/crypto.pm
==============================================================================
--- branches/ops_pct/config/auto/crypto.pm	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,93 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/crypto.pm - Test for crypto library (libssl)
-
-=head1 DESCRIPTION
-
-This library is linked to a dynamic PMC.
-
-See L<http://www.openssl.org>
-
-=cut
-
-package auto::crypto;
-
-use strict;
-use warnings;
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':auto';
-
-
-sub _init {
-    my $self = shift;
-    my %data;
-    $data{description} = q{Does your platform support crypto};
-    $data{result}      = q{};
-    return \%data;
-}
-
-sub runstep {
-    my ( $self, $conf ) = @_;
-
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-crypto
-        |
-    );
-
-    if ($without) {
-        $conf->data->set( has_crypto => 0 );
-        $self->set_result('no');
-        return 1;
-    }
-
-    my $osname = $conf->data->get('osname');
-
-    my $extra_libs = $self->_select_lib( {
-        conf            => $conf,
-        osname          => $osname,
-        cc              => $conf->data->get('cc'),
-        win32_nongcc    => 'libcrypto.lib',
-        default         => '-lcrypto',
-    } );
-
-    $conf->cc_gen('config/auto/crypto/crypto_c.in');
-    eval { $conf->cc_build( q{}, $extra_libs); };
-    my $has_crypto = 0;
-    if ( !$@ ) {
-        my $test = $conf->cc_run();
-        $has_crypto = $self->_evaluate_cc_run($conf, $test, $has_crypto, $verbose);
-    }
-    $conf->data->set( has_crypto => $has_crypto );    # for dynpmc.in & digest.t
-    $self->set_result($has_crypto ? 'yes' : 'no');
-
-    return 1;
-}
-
-sub _evaluate_cc_run {
-    my $self = shift;
-    my ($conf, $test, $has_crypto, $verbose) = @_;
-    if ( $test =~ m/^OpenSSL (\d\.\d\.\d\w?)/ ) {
-        my $version = $1;
-        $has_crypto = 1;
-        $conf->data->set( openssl_version => $version );
-        print " (yes) " if $verbose;
-        $self->set_result("yes, $version");
-    }
-    return $has_crypto;
-}
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/ops_pct/config/auto/gdbm.pm
==============================================================================
--- branches/ops_pct/config/auto/gdbm.pm	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,96 +0,0 @@
-# Copyright (C) 2001-2005, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/gdbm.pm - Test for GNU dbm (gdbm) library
-
-=head1 DESCRIPTION
-
-Determines whether the platform supports gdbm. This is needed for the dynamic
-GDBMHash PMC.
-
-From L<http://www.gnu.org/software/gdbm/>:  "GNU dbm is a set of database
-routines that use extensible hashing. It works similar to the standard Unix
-dbm routines."
-
-=cut
-
-package auto::gdbm;
-
-use strict;
-use warnings;
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':auto';
-
-
-sub _init {
-    my $self = shift;
-    my %data;
-    $data{description} = q{Does your platform support gdbm};
-    $data{result}      = q{};
-    return \%data;
-}
-
-sub runstep {
-    my ( $self, $conf ) = @_;
-
-    my ( $verbose, $without ) = $conf->options->get(
-        qw|
-            verbose
-            without-gdbm
-        |
-    );
-
-    if ($without) {
-        $conf->data->set( has_gdbm => 0 );
-        $self->set_result('no');
-        return 1;
-    }
-
-    my $osname = $conf->data->get('osname');
-
-    my $extra_libs = $self->_select_lib( {
-        conf            => $conf,
-        osname          => $osname,
-        cc              => $conf->data->get('cc'),
-        win32_gcc       => '-llibgdbm',
-        win32_nongcc    => 'gdbm.lib',
-        default         => '-lgdbm',
-    } );
-
-    $conf->cc_gen('config/auto/gdbm/gdbm_c.in');
-    eval { $conf->cc_build( q{}, $extra_libs ); };
-    my $has_gdbm = 0;
-    if ( !$@ ) {
-        my $test = $conf->cc_run();
-        unlink "gdbm_test_db";
-        $has_gdbm = $self->_evaluate_cc_run($test, $has_gdbm, $verbose);
-    }
-    $conf->data->set( has_gdbm => $has_gdbm );    # for gdbmhash.t and dynpmc.in
-    $self->set_result($has_gdbm ? 'yes' : 'no');
-
-    return 1;
-}
-
-sub _evaluate_cc_run {
-    my $self = shift;
-    my ($test, $has_gdbm, $verbose) = @_;
-    if ( $test eq "gdbm is working.\n" ) {
-        $has_gdbm = 1;
-        print " (yes) " if $verbose;
-        $self->set_result('yes');
-    }
-    return $has_gdbm;
-}
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/ops_pct/config/auto/warnings.pm
==============================================================================
--- branches/ops_pct/config/auto/warnings.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/auto/warnings.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -113,6 +113,7 @@
         -Wcomment
         -Wdisabled-optimization
         -Wdiv-by-zero
+        -Wenum-compare
         -Wendif-labels
         -Wextra
         -Wformat
@@ -125,6 +126,7 @@
         -Winit-self
         -Winline
         -Winvalid-pch
+        -Wjump-misses-init
         -Wlogical-op
         -Wmissing-braces
         -Wmissing-field-initializers
@@ -137,7 +139,6 @@
         -Wpointer-sign
         -Wreturn-type
         -Wsequence-point
-        -Wno-shadow
         -Wsign-compare
         -Wstrict-aliasing
         -Wstrict-aliasing=2
@@ -154,7 +155,7 @@
     $gcc->{'basic'} = [ @gcc_or_gpp ];
     $gpp->{'basic'} = [ @gcc_or_gpp ];
 
-    # Add some gcc only warnings that would break g++
+    # Add some gcc-only warnings that would break g++
     push @{$gcc->{'basic'}}, qw(
         -Wbad-function-cast
         -Wc++-compat
@@ -173,7 +174,7 @@
 
     my $gcc_or_gpp_cage = [ qw(
         -std=c89
-        -Werror-implicit-function-declaration
+        -Werror=implicit-function-declaration
         -Wformat=2
         -Wlarger-than-4096
         -Wlong-long
@@ -193,63 +194,75 @@
     $gpp->{'cage'} = $gcc_or_gpp_cage;
 
     $gcc->{'todo'} = $gpp->{'todo'} = {
-        '-Wformat-nonliteral' => [
-            'src/spf_render.c',
-            'compilers/imcc/optimizer.c',
-        ],
-        '-Wstrict-prototypes' => [
-            'src/nci/extra_thunks.c',
-            'src/extra_nci_thunks.c',
-        ],
+        '-Wformat-nonliteral' => [ qw(
+            src/spf_render.c
+            compilers/imcc/optimizer.c
+        ) ],
+        '-Wstrict-prototypes' => [ qw(
+            src/nci/extra_thunks.c
+            src/extra_nci_thunks.c
+        ) ],
     };
 
     $gcc->{'never'} = $gpp->{'never'} = {
-        '-Wformat-nonliteral' => [
-            'compilers/imcc/imclexer.c',
-        ],
-        '-Wswitch-default' => [
-            'compilers/imcc/imclexer.c',
-        ],
-        '-Wcast-qual' => [
-            'compilers/imcc/imcparser.c',
-        ],
-        '-Wlogical-op' => [
-            'compilers/imcc/imcparser.c',
-        ],
+        '-Wformat-nonliteral' => [ qw(
+            compilers/imcc/imclexer.c
+        ) ],
+        '-Wswitch-default' => [ qw(
+            compilers/imcc/imclexer.c
+        ) ],
+        '-Wcast-qual' => [ qw(
+            compilers/imcc/imcparser.c
+        ) ],
+        '-Wlogical-op' => [ qw(
+            compilers/imcc/imcparser.c
+        ) ],
     };
 
+    # Warning flags docs
+    # http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/compiler_c/index.htm
+
     $icc->{'basic'} = [ qw(
-        -wd269
-        -wd1572
-        -wd1599
-        -wd181
-        -wd869
-        -wd981
-        -wd1419
-        -wd117
-        -wd810
-        -wd177
-        -wd1296
-        -Wall
-        -Wcheck
         -w2
         -Wabi
+        -Wall
+        -Wcheck
         -Wcomment
         -Wdeprecated
+        -Weffc++
+        -Wextra-tokens
+        -Wformat
+        -Wformat-security
         -Wmain
+        -Wmissing-declarations
         -Wmissing-prototypes
         -Wpointer-arith
+        -Wport
         -Wreturn-type
+        -Wshadow
         -Wstrict-prototypes
         -Wuninitialized
         -Wunknown-pragmas
         -Wunused-function
         -Wunused-variable
-    )];
+        -Wwrite-strings
+        ),
+        # Disable some warnings and notifications that are overly noisy
+        '-diag-disable 271',  # trailing comma is nonstandard
+        '-diag-disable 981',  # operands are evaluated in unspecified order
+        '-diag-disable 1572', # floating-point equality and inequality comparisons are unreliable
+        '-diag-disable 2259', # non-pointer conversion from "typeA" to "typeB" may lose significant bits
+    ];
+    $icc->{'cage'} = [
+        # http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/compiler_c/bldaps_cls/common/bldaps_svover.htm
+        '-diag-enable sc3',
+        '-diag-enable sc-include',
+    ];
 
     $data->{'warnings'}{'gcc'} = $gcc;
     $data->{'warnings'}{'g++'} = $gpp;
     $data->{'warnings'}{'icc'} = $icc;
+    $data->{'warnings'}{'clang'} = $gcc;
 
     ## end gcc/g++
 
@@ -269,6 +282,9 @@
     elsif ( $conf->option_or_data('cc') =~ /icc/ ) {
         $compiler = 'icc';
     }
+    elsif ( $conf->option_or_data('cc') =~ /clang/ ) {
+        $compiler = 'clang';
+    }
 
     if ($compiler eq '') {
         print "We do not (yet) probe for warnings for your compiler\n"
@@ -374,7 +390,7 @@
 
     $verbose and print "  output: $output\n";
 
-    if ( $output !~ /error|warning|not supported/i ) {
+    if ( $output !~ /\berror|warning|not supported|ignoring (unknown )?option\b/i ) {
         push @{$self->{'validated'}}, $warning;
         $verbose and print "    valid warning: '$warning'\n";
         return 1;

Modified: branches/ops_pct/config/gen/config_h/config_h.in
==============================================================================
--- branches/ops_pct/config/gen/config_h/config_h.in	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/config_h/config_h.in	Wed Apr 28 03:18:28 2010	(r46097)
@@ -152,10 +152,6 @@
 /* Oplib and dynamic ops related. */
 #define PARROT_CORE_OPLIB_NAME "core"
 #define PARROT_CORE_OPLIB_INIT Parrot_DynOp_core_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_PREDEREF_OPLIB_INIT Parrot_DynOp_core_prederef_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_SWITCH_OPLIB_INIT Parrot_DynOp_core_switch_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_CG_OPLIB_INIT Parrot_DynOp_core_cg_ at MAJOR@_ at MINOR@_ at PATCH@
-#define PARROT_CORE_CGP_OPLIB_INIT Parrot_DynOp_core_cgp_ at MAJOR@_ at MINOR@_ at PATCH@
 
 /* ICU. */
 #define PARROT_HAS_ICU @has_icu@

Modified: branches/ops_pct/config/gen/config_pm.pm
==============================================================================
--- branches/ops_pct/config/gen/config_pm.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/config_pm.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -33,7 +33,7 @@
         myconfig        => 'config/gen/config_pm/myconfig.in',
         config_pir      => 'config/gen/config_pm/config_pir.in',
         Config_pm       => 'config/gen/config_pm/Config_pm.in',
-        config_lib      => 'config/gen/config_pm/config_lib_pasm.in',
+        config_lib      => 'config/gen/config_pm/config_lib_pir.in',
     };
     return \%data;
 }
@@ -84,9 +84,9 @@
 
     $template = $self->{templates}->{config_lib};
     open( $IN,  "<", $template ) or die "Can't open '$template': $!";
-    my $c_l_pasm = q{config_lib.pasm};
-    $conf->append_configure_log($c_l_pasm);
-    open( $OUT, ">", $c_l_pasm ) or die "Can't open $c_l_pasm: $!";
+    my $c_l_pir = q{config_lib.pir};
+    $conf->append_configure_log($c_l_pir);
+    open( $OUT, ">", $c_l_pir ) or die "Can't open $c_l_pir: $!";
 
     print {$OUT} <<"END";
 # ex: set ro:
@@ -115,14 +115,14 @@
                     if ( $type ) {
                         die "type of '$k' is not supported : $type\n";
                     }
-                    # Scalar
+                    # String
                     $v =~ s/(["\\])/\\$1/g;
                     $v =~ s/\n/\\n/g;
-                    print {$OUT} qq(    set P0["$k"], "$v"\n);
+                    print {$OUT} qq(    set \$P0["$k"], "$v"\n);
                 }
                 else {
-                    # Undef
-                    print {$OUT} qq(    set P0["$k"], P1\n);
+                    # Null
+                    print {$OUT} qq(    set \$P0["$k"], \$S2\n);
                 }
             }
         }
@@ -135,7 +135,7 @@
     }
 
     close $IN  or die "Can't close $template: $!";
-    close $OUT or die "Can't close $c_l_pasm: $!";
+    close $OUT or die "Can't close $c_l_pir: $!";
 
     return 1;
 }

Deleted: branches/ops_pct/config/gen/config_pm/config_lib_pasm.in
==============================================================================
--- branches/ops_pct/config/gen/config_pm/config_lib_pasm.in	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,35 +0,0 @@
-# Copyright (C) 2004-2009, Parrot Foundation.
-# $Id$
-
-.pcc_sub main:
-    get_params "(0)", P5
-    set I10, P5     # argv
-    set I11, 0      # flag
-    le I10, 1, no_arg
-    set S10, P5[1]
-    ne S10, "--install", no_arg
-    set I11, 1      # install flag
-no_arg:
-    new P0, 'Hash'
-    new P1, 'Undef'
-
-    @PCONFIG@
-
-    if I11, is_install
-    set S1, "@PWD@"
-    set P0["prefix"], S1
-    set P0["installed"], "0"
-    branch freeze_config
-is_install:
-    set P0["installed"], "1"
-freeze_config:
-
-    freeze S0, P0
-    print S0
-    end
-
-# Local Variables:
-#   mode: pir
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/ops_pct/config/gen/config_pm/config_pir.in
==============================================================================
--- branches/ops_pct/config/gen/config_pm/config_pir.in	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/config_pm/config_pir.in	Wed Apr 28 03:18:28 2010	(r46097)
@@ -12,9 +12,9 @@
   # store the config data into $P0
   $P0 = _config()
   # Retrieve and print a key
-  $P1 = $P0["cc"]
+  $S1 = $P0["cc"]
   print "Your C compiler is "
-  print $P1
+  print $S1
   print "\n"
   ...
 
@@ -25,14 +25,14 @@
 config.pir is a mechanism for accessing most of the data collected by
 Configure.  It's roughly equivalent to Perl5's C<Config.pm> module.
 
-At the end of a successful C<make> of Parrot, a PASM file generated by
+At the end of a successful C<make> of Parrot, a PIR file generated by
 Configure is run to put a file, F<config.fpmc>, into the library with a
 frozen Hash of the configuration data.  This library provides a
 function, C<_config>, to unpack and return that file's data.
 
 C<_config> does not take any parameters.  It returns a single Hash
 containing the data.  Keys that were C<undef> in Configure contain a
-C<None> PMC; otherwise they contain a C<String>.
+null string; otherwise they contain a non-null, possibly empty, string.
 
 Note that the behavior of that hash when writing to any value (especially
 undefined values) is undefined, and may be rather funky.

Modified: branches/ops_pct/config/gen/core_pmcs.pm
==============================================================================
--- branches/ops_pct/config/gen/core_pmcs.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/core_pmcs.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -103,6 +103,8 @@
 /* HEADERIZER STOP */
 
 #include "parrot/parrot.h"
+#include "parrot/global_setup.h"
+
 
 END_C
 
@@ -110,15 +112,6 @@
 
     print {$OUT} <<'END_C';
 
-/* This isn't strictly true, but the headerizer should not bother */
-
-void Parrot_register_core_pmcs(PARROT_INTERP, NOTNULL(PMC *registry))
-    __attribute__nonnull__(1)
-    __attribute__nonnull__(2);
-
-extern void Parrot_initialize_core_pmcs(PARROT_INTERP, int pass)
-    __attribute__nonnull__(1);
-
 void Parrot_initialize_core_pmcs(PARROT_INTERP, int pass)
 {
     /* first the PMC with the highest enum
@@ -132,14 +125,14 @@
     print {$OUT} <<'END_C';
 }
 
-static void register_pmc(PARROT_INTERP, NOTNULL(PMC *registry), int pmc_id)
+static void register_pmc(PARROT_INTERP, ARGIN(PMC *registry), int pmc_id)
 {
     STRING * const key = interp->vtables[pmc_id]->whoami;
     VTABLE_set_integer_keyed_str(interp, registry, key, pmc_id);
 }
 
 void
-Parrot_register_core_pmcs(PARROT_INTERP, NOTNULL(PMC *registry))
+Parrot_register_core_pmcs(PARROT_INTERP, ARGIN(PMC *registry))
 {
 END_C
 

Deleted: branches/ops_pct/config/gen/crypto.pm
==============================================================================
--- branches/ops_pct/config/gen/crypto.pm	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,110 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/gen/crypto.pm - Digest PMC Files
-
-=head1 DESCRIPTION
-
-Generates Digest PMC files.
-
-=cut
-
-package gen::crypto;
-
-use strict;
-use warnings;
-
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':gen';
-
-sub _init {
-    my $self = shift;
-    my %data;
-    $data{description} = q{Generate Digest PMC files};
-    $data{result}      = q{};
-    $data{digest}      = {
-        MD2         => {
-            md_result => 'ab4f496bfb2a530b219ff33031fe06b0',
-        },
-        MD4         => {
-            md_result => 'd9130a8164549fe818874806e1c7014b',
-        },
-        MD5         => {
-            md_result => 'f96b697d7cb7938d525a2f31aaf161d0',
-        },
-        RIPEMD160   => {
-            md_result => '5d0689ef49d2fae572b881b123a85ffa21595f36',
-            md_inc => 'ripemd',
-        },
-        SHA         => {
-            md_result => 'c1b0f222d150ebb9aa36a40cafdc8bcbed830b14',,
-        },
-        SHA1        => {
-            md_result => 'c12252ceda8be8994d5fa0290a47231c1d16aae3',
-            md_inc => 'sha',
-            md_ctx => 'SHA_CTX',
-            md_digest => 'SHA_DIGEST',
-        },
-        SHA256      => {
-            md_result => 'f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650',
-            md_inc => 'sha',
-            version_needed => '0.9.8a',
-        },
-        SHA512      => {
-            md_result => '107dbf389d9e9f71a3a95f6c055b9251bc5268c2be16d6c13492ea45b0199f3309e16455ab1e96118e8a905d5597b72038ddb372a89826046de66687bb420e7c',
-            md_inc => 'sha',
-            version_needed => '0.9.8a',
-        },
-    };
-    $data{digest_pmc_template} = 'config/gen/crypto/digest_pmc.in';
-    $data{digest_t_template} = 'config/gen/crypto/digest_t.in';
-    return \%data;
-}
-
-sub runstep {
-    my ( $self, $conf ) = @_;
-
-    if ( ! $conf->data->get('has_crypto') ) {
-        $self->set_result('skipped');
-        return 1;
-    }
-
-    my $openssl_version  = $conf->data->get('openssl_version');
-
-    while (my ($md, $val) = each %{ $self->{digest} } ) {
-        my $file = lc $md;
-        $conf->data->set( TEMP_md_name => $md );
-        $conf->data->set( TEMP_md_file => $file );
-        $conf->data->set( TEMP_md_inc => $val->{md_inc} || $file );
-        $conf->data->set( TEMP_md_ctx => $val->{md_ctx} || $md . '_CTX' );
-        $conf->data->set( TEMP_md_digest => $val->{md_digest} || $md . '_DIGEST' );
-        $conf->data->set( TEMP_md_guard => (
-                ( exists $val->{version_needed} )
-                    and
-                ( $openssl_version lt $val->{version_needed} )
-            )
-            ? '#if 0'
-            : '#ifndef OPENSSL_NO_' . $md
-        );
-        $conf->data->set( TEMP_md_skip => $val->{version_needed} || '0.9' );
-        $conf->data->set( TEMP_md_result => $val->{md_result} );
-        $conf->genfile( $self->{digest_pmc_template} => "src/dynpmc/${file}.pmc" );
-        $conf->genfile( $self->{digest_t_template} => "t/dynpmc/${file}.t" );
-    }
-    $conf->cc_clean();
-
-    return 1;
-}
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/ops_pct/config/gen/makefiles.pm
==============================================================================
--- branches/ops_pct/config/gen/makefiles.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/makefiles.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -48,8 +48,6 @@
             conditioned_lines => 1,
         },
 
-        'compilers/ncigen/Makefile'  =>
-            { SOURCE => 'compilers/ncigen/config/makefiles/ncigen.in' },
         'src/dynpmc/Makefile'        =>
             { SOURCE => 'config/gen/makefiles/dynpmc.in' },
         'editor/Makefile'            =>

Modified: branches/ops_pct/config/gen/makefiles/docs.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/docs.in	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/makefiles/docs.in	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 # Setup of some commands
@@ -11,6 +11,9 @@
 PERLDOC_BIN = @perldoc@
 VERSION = @VERSION@@DEVEL@
 
+# chapters in the generated PDF parrot book
+CHAPTERS = $(PERL) ../tools/docs/filename_and_chapter.pl --b_out
+
 # long list of .pod files
 POD = @TEMP_pod@
 
@@ -50,6 +53,21 @@
 html: all
 	$(PERL) -I../lib ../tools/docs/write_docs.pl --silent --version=$(VERSION)
 
+# The pdf target is to generate a parrot PDF document.
+# It will not work on Windows. It call a script which use a specific Unix
+# command. May be that will be changed.
+pdf: ../tools/docs/book-to-latex.pl ../tools/docs/filename_and_chapter.pl
+	$(MKPATH) build/modified_pod
+	$(PERL) ../tools/docs/filename_and_chapter.pl
+	$(PERL) ../tools/docs/book-to-latex.pl `$(CHAPTERS)` > build/parrot-book.tex
+	cd build && pdflatex parrot-book.tex && pdflatex parrot-book.tex
+
+#pdf-release: build/parrot-book.pdf
+#	cp build/parrot-book.pdf build/parrot-book-$$(date +"%Y.%m").pdf
+
+pdf-clean:
+	$(RM_RF) build
+
 html-clean:
 	$(RM_RF) html
 

Modified: branches/ops_pct/config/gen/makefiles/dynpmc.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/dynpmc.in	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/makefiles/dynpmc.in	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2009, Parrot Foundation.
+# Copyright (C) 2003-2010, Parrot Foundation.
 # $Id$
 
 PERL          = @perl@
@@ -14,7 +14,7 @@
 LD            = @ld@
 LDFLAGS       = @ldflags@ @ld_debug@ @rpath_blib@
 LD_LOAD_FLAGS = @ld_load_flags@
-CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ @optimize@
+CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @gc_flag@ @optimize@
 LIBPARROT     = @libparrot_ldflags@
 
 BUILD_TOOLS_DIR = $(BUILD_DIR)/tools/build
@@ -32,31 +32,10 @@
   foo_group$(LOAD_EXT) \
   pccmethod_test$(LOAD_EXT) \
   rotest$(LOAD_EXT) \
-#IF(has_gdbm):  gdbmhash$(LOAD_EXT) \
   rational$(LOAD_EXT) \
-#IF(has_crypto):  digest_group$(LOAD_EXT) \
+#IF(has_zlib):  gziphandle$(LOAD_EXT) \
   subproxy$(LOAD_EXT)
 
-PMCS_DIGEST = \
-  md2.pmc \
-  md4.pmc \
-  md5.pmc \
-  ripemd160.pmc \
-  sha.pmc \
-  sha1.pmc \
-  sha256.pmc \
-  sha512.pmc
-
-OBJS_DIGEST = \
-  md2$(O) \
-  md4$(O) \
-  md5$(O) \
-  ripemd160$(O) \
-  sha$(O) \
-  sha1$(O) \
-  sha256$(O) \
-  sha512$(O)
-
 PMCS_FOO = \
   foo.pmc \
   foo2.pmc
@@ -65,13 +44,9 @@
   foo$(O) \
   foo2$(O)
 
-#IF(win32 and cc==gcc):LIB_GDBM = -llibgdbm
-#ELSIF(win32):LIB_GDBM = libgdbm.lib
-#ELSE:LIB_GDBM = -lgdbm
-
-#IF(win32 and cc==gcc):LIB_CRYPTO = -lcrypto
-#ELSIF(win32):LIB_CRYPTO = libcrypto.lib
-#ELSE:LIB_CRYPTO = -lcrypto
+#IF(win32 and cc==gcc):LIB_ZLIB = -lz
+#ELSIF(win32):LIB_ZLIB = zlib.lib
+#ELSE:LIB_ZLIB = -lz
 
 CLEANUPS = \
   "*.c" \
@@ -165,19 +140,6 @@
 rotest.dump: rotest.pmc
 	$(PMC2CD) rotest.pmc
 
-gdbmhash$(LOAD_EXT): gdbmhash$(O)
-	$(LD) @ld_out at gdbmhash$(LOAD_EXT) gdbmhash$(O) $(LINKARGS) $(LIB_GDBM)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-gdbmhash$(O): gdbmhash.c
-	$(CC) -c @cc_o_out at gdbmhash$(O) $(INCLUDES) $(CFLAGS) gdbmhash.c
-
-gdbmhash.c: gdbmhash.dump
-	$(PMC2CC) gdbmhash.pmc
-
-gdbmhash.dump: gdbmhash.pmc
-	$(PMC2CD) gdbmhash.pmc
-
 rational$(LOAD_EXT): rational$(O)
 	$(LD) @ld_out at rational$(LOAD_EXT) rational$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
@@ -191,88 +153,6 @@
 rational.dump: rational.pmc
 	$(PMC2CD) rational.pmc
 
-digest_group$(LOAD_EXT): $(OBJS_DIGEST) lib-digest_group$(O)
-	$(LD) @ld_out at digest_group$(LOAD_EXT) lib-digest_group$(O) $(OBJS_DIGEST) $(LINKARGS) $(LIB_CRYPTO)
-#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-lib-digest_group$(O): digest_group.c
-	$(CC) -c @cc_o_out at lib-digest_group$(O) $(INCLUDES) $(CFLAGS) digest_group.c
-
-digest_group.c: $(OBJS_DIGEST)
-	$(PMC2C) --library digest_group --c $(PMCS_DIGEST)
-
-md2$(O): md2.c
-	$(CC) -c @cc_o_out at md2$(O) $(INCLUDES) $(CFLAGS) md2.c
-
-md2.c: md2.dump
-	$(PMC2CC) md2.pmc
-
-md2.dump: md2.pmc
-	$(PMC2CD) md2.pmc
-
-md4$(O): md4.c
-	$(CC) -c @cc_o_out at md4$(O) $(INCLUDES) $(CFLAGS) md4.c
-
-md4.c: md4.dump
-	$(PMC2CC) md4.pmc
-
-md4.dump: md4.pmc
-	$(PMC2CD) md4.pmc
-
-md5$(O): md5.c
-	$(CC) -c @cc_o_out at md5$(O) $(INCLUDES) $(CFLAGS) md5.c
-
-md5.c: md5.dump
-	$(PMC2CC) md5.pmc
-
-md5.dump: md5.pmc
-	$(PMC2CD) md5.pmc
-
-ripemd160$(O): ripemd160.c
-	$(CC) -c @cc_o_out at ripemd160$(O) $(INCLUDES) $(CFLAGS) ripemd160.c
-
-ripemd160.c: ripemd160.dump
-	$(PMC2CC) ripemd160.pmc
-
-ripemd160.dump: ripemd160.pmc
-	$(PMC2CD) ripemd160.pmc
-
-sha$(O): sha.c
-	$(CC) -c @cc_o_out at sha$(O) $(INCLUDES) $(CFLAGS) sha.c
-
-sha.c: sha.dump
-	$(PMC2CC) sha.pmc
-
-sha.dump: sha.pmc
-	$(PMC2CD) sha.pmc
-
-sha1$(O): sha1.c
-	$(CC) -c @cc_o_out at sha1$(O) $(INCLUDES) $(CFLAGS) sha1.c
-
-sha1.c: sha1.dump
-	$(PMC2CC) sha1.pmc
-
-sha1.dump: sha1.pmc
-	$(PMC2CD) sha1.pmc
-
-sha256$(O): sha256.c
-	$(CC) -c @cc_o_out at sha256$(O) $(INCLUDES) $(CFLAGS) sha256.c
-
-sha256.c: sha256.dump
-	$(PMC2CC) sha256.pmc
-
-sha256.dump: sha256.pmc
-	$(PMC2CD) sha256.pmc
-
-sha512$(O): sha512.c
-	$(CC) -c @cc_o_out at sha512$(O) $(INCLUDES) $(CFLAGS) sha512.c
-
-sha512.c: sha512.dump
-	$(PMC2CC) sha512.pmc
-
-sha512.dump: sha512.pmc
-	$(PMC2CD) sha512.pmc
-
 subproxy$(LOAD_EXT): subproxy$(O)
 	$(LD) @ld_out at subproxy$(LOAD_EXT) subproxy$(O) $(LINKARGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
@@ -286,6 +166,19 @@
 subproxy.dump: subproxy.pmc
 	$(PMC2CD) subproxy.pmc
 
+gziphandle$(LOAD_EXT): gziphandle$(O)
+	$(LD) @ld_out at gziphandle$(LOAD_EXT) gziphandle$(O) $(LINKARGS) $(LIB_ZLIB)
+#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+
+gziphandle$(O): gziphandle.c
+	$(CC) -c @cc_o_out at gziphandle$(O) $(INCLUDES) $(CFLAGS) gziphandle.c
+
+gziphandle.c: gziphandle.dump
+	$(PMC2CC) gziphandle.pmc
+
+gziphandle.dump: gziphandle.pmc
+	$(PMC2CD) gziphandle.pmc
+
 
 test : all
 	cd ../.. && $(PERL) -Ilib t/harness t/dynpmc/*.t

Modified: branches/ops_pct/config/gen/makefiles/root.in
==============================================================================
--- branches/ops_pct/config/gen/makefiles/root.in	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/makefiles/root.in	Wed Apr 28 03:18:28 2010	(r46097)
@@ -84,7 +84,7 @@
 CC_SHARED        = @cc_shared@
 CC_O_OUT         = @cc_o_out@
 CC_WARN          = @ccwarn@
-CFLAGS           = $(CC_INC) @ccflags@ @cc_build_call_frames@ @cc_debug@ @cg_flag@ @gc_flag@ @clock_best@ $(CC_SHARED)
+CFLAGS           = $(CC_INC) @ccflags@ @cc_build_call_frames@ @cc_debug@ @gc_flag@ @clock_best@ $(CC_SHARED)
 LINK_DYNAMIC     = @link_dynamic@
 LINK             = @link@
 LINKFLAGS        = @linkflags@ @link_debug@ @ld_debug@
@@ -118,13 +118,11 @@
 include compilers/imcc/Defines.mak
 include compilers/pirc/Defines.mak
 include compilers/tge/Defines.mak
-include compilers/nqp/Defines.mak
 include compilers/pge/Defines.mak
 include compilers/pct/Defines.mak
 include compilers/opsc/Defines.mak
 include ext/nqp-rx/Defines.mak
 include compilers/data_json/Defines.mak
-include compilers/json/Defines.mak
 
 ###############################################################################
 #
@@ -141,7 +139,6 @@
 GEN_MAKEFILES = \
     Makefile \
     docs/Makefile \
-    compilers/ncigen/Makefile \
     editor/Makefile \
     ext/Makefile \
     src/dynoplibs/Rules.mak \
@@ -152,7 +149,6 @@
 GEN_CONFIGS = \
     $(INC_DIR)/config.h \
     $(INC_DIR)/platform.h \
-    $(INC_DIR)/platform_interface.h \
     $(INC_DIR)/platform_limits.h \
     $(INC_DIR)/has_header.h \
     $(INC_DIR)/feature.h \
@@ -168,28 +164,11 @@
 #IF(has_opengl):    src/glut_nci_thunks.nci \
 #IF(has_glut):    src/glut_callbacks.c \
     src/core_pmcs.c \
-#IF(has_crypto):    src/dynpmc/md2.pmc \
-#IF(has_crypto):    src/dynpmc/md4.pmc \
-#IF(has_crypto):    src/dynpmc/md5.pmc \
-#IF(has_crypto):    src/dynpmc/ripemd160.pmc \
-#IF(has_crypto):    src/dynpmc/sha.pmc \
-#IF(has_crypto):    src/dynpmc/sha1.pmc \
-#IF(has_crypto):    src/dynpmc/sha256.pmc \
-#IF(has_crypto):    src/dynpmc/sha512.pmc \
-#IF(has_crypto):    t/dynpmc/md2.t \
-#IF(has_crypto):    t/dynpmc/md4.t \
-#IF(has_crypto):    t/dynpmc/md5.t \
-#IF(has_crypto):    t/dynpmc/ripemd160.t \
-#IF(has_crypto):    t/dynpmc/sha.t \
-#IF(has_crypto):    t/dynpmc/sha1.t \
-#IF(has_crypto):    t/dynpmc/sha256.t \
-#IF(has_crypto):    t/dynpmc/sha512.t \
-    config_lib.pasm \
+    config_lib.pir \
     parrot.pc \
     compilers/imcc/imcc.y.flag \
     compilers/imcc/imcc.l.flag \
-    src/ops/core_ops.c \
-    src/ops/core_ops_switch.c
+    src/ops/core_ops.c
 
 GEN_PASM_INCLUDES = \
 	runtime/parrot/include/cclass.pasm \
@@ -210,6 +189,7 @@
 	runtime/parrot/include/stdio.pasm \
 	runtime/parrot/include/socket.pasm \
 	runtime/parrot/include/libpaths.pasm \
+	runtime/parrot/include/dlopenflags.pasm \
 	runtime/parrot/include/longopt.pasm \
 	runtime/parrot/include/packfile_segments.pasm \
 	runtime/parrot/include/packfile_constants.pasm \
@@ -253,14 +233,12 @@
 GEN_HEADERS = \
     $(INC_DIR)/vtable.h \
     $(INC_DIR)/oplib/ops.h \
-    $(INC_DIR)/oplib/core_ops_switch.h \
     $(INC_DIR)/extend_vtable.h \
     $(INC_DIR)/pbcversion.h
 
 GEN_SOURCES = \
     src/nci.c \
     src/glut_nci_thunks.c \
-    src/core_ops_switch.c \
     src/parrot_config.c \
     src/null_config.c \
     src/install_config.c \
@@ -293,7 +271,13 @@
 #IF(has_opengl):    $(LIBRARY_DIR)/OpenGL.pbc \
 #IF(has_opengl):    $(LIBRARY_DIR)/OpenGL_funcs.pbc \
 #IF(has_opengl):    $(LIBRARY_DIR)/OpenGL/Math.pbc \
+    $(LIBRARY_DIR)/osutils.pbc \
     $(LIBRARY_DIR)/P6object.pbc \
+    $(LIBRARY_DIR)/ProfTest.pbc \
+    $(LIBRARY_DIR)/ProfTest/PIRProfile.pir \
+    $(LIBRARY_DIR)/ProfTest/NQPProfile.pir \
+    $(LIBRARY_DIR)/ProfTest/Matcher.pir \
+    $(LIBRARY_DIR)/ProfTest/Want.pir \
     $(LIBRARY_DIR)/parrotlib.pbc \
     $(LIBRARY_DIR)/pcore.pbc \
     $(LIBRARY_DIR)/pcre.pbc \
@@ -316,6 +300,9 @@
     $(LIBRARY_DIR)/Stream/Sub.pbc \
     $(LIBRARY_DIR)/Stream/Writer.pbc \
     $(LIBRARY_DIR)/String/Utils.pbc \
+    $(LIBRARY_DIR)/TAP/Formatter.pbc \
+    $(LIBRARY_DIR)/TAP/Harness.pbc \
+    $(LIBRARY_DIR)/TAP/Parser.pbc \
     $(LIBRARY_DIR)/Test/Builder/Output.pbc \
     $(LIBRARY_DIR)/Test/Builder/Test.pbc \
     $(LIBRARY_DIR)/Test/Builder/Tester.pbc \
@@ -341,6 +328,10 @@
 
 FLUID_FILES_2 = \
     $(GEN_LIBRARY) \
+    $(LIBRARY_DIR)/ProfTest/PIRProfile.pbc \
+    $(LIBRARY_DIR)/ProfTest/NQPProfile.pbc \
+    $(LIBRARY_DIR)/ProfTest/Matcher.pbc \
+    $(LIBRARY_DIR)/ProfTest/Want.pbc \
     runtime/parrot/include/parrotlib.pbc
 
 
@@ -406,12 +397,10 @@
         $(INC_DIR)/core_pmcs.h \
         $(INC_DIR)/compiler.h \
         $(INC_DIR)/cclass.h \
-        include/pmc/pmc_callcontext.h \
-        include/pmc/pmc_parrotinterpreter.h
+        include/pmc/pmc_callcontext.h
 
 # generated list of header files
 GENERAL_H_FILES   = $(NONGEN_HEADERS) $(GEN_HEADERS) \
-#IF(cg_flag): $(INC_DIR)/oplib/core_ops_cg.h $(INC_DIR)/oplib/core_ops_cgp.h
 
 
 CHARSET_O_FILES   = @TEMP_charset_o@
@@ -435,10 +424,7 @@
 
 INTERP_O_FILES = \
     src/string/api$(O) \
-    \
     src/ops/core_ops$(O) \
-    src/ops/core_ops_switch$(O) \
-    \
 #IF(i386_has_gcc_cmpxchg):    src/atomic/gcc_x86$(O) \
     src/byteorder$(O) \
     src/string/charset$(O) \
@@ -502,7 +488,6 @@
     @TEMP_atomic_o@ \
     @TEMP_gc_o@ \
 #IF(platform_asm):    src/platform_asm$(O) \
-#IF(cg_flag):     src/ops/core_ops_cg$(O) src/ops/core_ops_cgp$(O) \
 
 
 OPS_FILES = @ops@ $(GEN_OPSFILES)
@@ -525,6 +510,7 @@
 PIRC                = . at slash@pirc$(EXE)
 NQP_RX              = . at slash@parrot-nqp$(EXE)
 NCI_THUNK_GEN       = . at slash@parrot_nci_thunk_gen$(EXE)
+TAPIR               = . at slash@tapir$(EXE)
 
 # Installable executables
 INSTALLABLEPARROT    = . at slash@installable_parrot$(EXE)
@@ -536,6 +522,7 @@
 INSTALLABLECONFIG    = . at slash@installable_parrot_config$(EXE)
 INSTALLABLENQP       = . at slash@installable_parrot-nqp$(EXE)
 INSTALLABLENCITHUNKGEN = . at slash@installable_parrot_nci_thunk_gen$(EXE)
+INSTALLABLETAPIR    = . at slash@installable_tapir$(EXE)
 
 # Libraries
 LIBPARROT_STATIC    = @blib_dir@/@libparrot_static@
@@ -545,7 +532,7 @@
 
 # This line controls whether a static or shared library is built
 # by Parrot's make.  It is not useful otherwise (e.g., in
-# lib/Parrot/Config/Generated.pm or config_lib.pasm).
+# lib/Parrot/Config/Generated.pm or config_lib.pir).
 LIBPARROT           = @libparrot_for_makefile_only@
 
 #IF(has_icu):ICU_SHARED  = @icu_shared@
@@ -576,10 +563,8 @@
 .c$(O) : # suffix rule (limited support)
 	$(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
 
-.s$(O) : # suffix rule (limited support)
-	$(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
-#UNLESS(win32).S$(O) : # suffix rule (limited support)
-#UNLESS(win32)	$(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
+#UNLESS(win32):.s$(O) : # suffix rule (limited support)
+#UNLESS(win32):	$(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
 
 .pir.pbc : # suffix rule (limited support)
 	$(PARROT) -o $@ $<
@@ -617,7 +602,6 @@
     $(TGE_LIB_PBCS) \
     $(PGE_LIB_PBCS) \
     $(PCT_LIB_PBCS) \
-    $(JSON_LIB_PBCS) \
     $(DATA_JSON_LIB_PBCS) \
     $(NQP_LIB_PBCS) \
     $(GEN_LIBRARY) \
@@ -802,9 +786,9 @@
 
 world : all parrot_utils
 
-parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O)
+parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O) $(TAPIR)
 
-installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN)
+installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN) $(INSTALLABLETAPIR)
 
 bootstrap-ops : opsc
 	$(NQP_RX) compilers/opsc/ops2c.nqp
@@ -817,8 +801,9 @@
 runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PARROT) $(GEN_PASM_INCLUDES)
 	$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
 
-runtime/parrot/include/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
-	$(MINIPARROT) config_lib.pasm > $@
+runtime/parrot/include/config.fpmc : myconfig config_lib.pir \
+    runtime/parrot/include/datatypes.pasm $(MINIPARROT)
+	$(MINIPARROT) -Iruntime/parrot/include config_lib.pir > $@
 
 $(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
     lib/Parrot/OpLib/core.pm src/parrot_config$(O) \
@@ -838,6 +823,12 @@
 $(NCI_THUNK_GEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE)
 	$(PBC_TO_EXE) parrot_nci_thunk_gen.pbc
 
+tapir.pbc : tools/dev/tapir.pir $(PARROT)
+	$(PARROT) -o tapir.pbc tools/dev/tapir.pir
+
+$(TAPIR) : tapir.pbc $(PARROT) $(PBC_TO_EXE)
+	$(PBC_TO_EXE) tapir.pbc
+
 $(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
 	$(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
 	$(PARROT) pbc_to_exe.pbc parrot_config.pbc
@@ -858,7 +849,7 @@
 
 $(INC_DIR)/context.h : include/pmc/pmc_callcontext.h
 
-$(INC_DIR)/pbcversion.h :
+$(INC_DIR)/pbcversion.h : PBC_COMPAT
 	$(PERL) $(BUILD_TOOLS_DIR)/pbcversion_h.pl > $(INC_DIR)/pbcversion.h
 
 src/parrot_config.c :  runtime/parrot/include/config.fpmc \
@@ -875,32 +866,37 @@
 	$(PERL) $(BUILD_TOOLS_DIR)/parrot_config_c.pl --mini > \
     src/null_config.c
 
-install_config.fpmc : myconfig config_lib.pasm $(PARROT)
+install_config.fpmc : myconfig config_lib.pir $(PARROT)
 	@echo "Invoking Parrot to generate install_config.fpmc"
-	$(PARROT) config_lib.pasm --install > $@
+	$(PARROT) config_lib.pir --install > $@
 
-src/parrot_config$(O) : $(PARROT_H_HEADERS)
+src/parrot_config$(O) : $(PARROT_H_HEADERS) src/parrot_config.c
 
-src/install_config$(O) : $(PARROT_H_HEADERS)
+src/install_config$(O) : $(PARROT_H_HEADERS) src/install_config.c
 
-src/null_config$(O) : $(PARROT_H_HEADERS)
+src/null_config$(O) : $(PARROT_H_HEADERS) src/null_config.c
 
-src/oo$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_class.h include/pmc/pmc_object.h src/oo.str $(INC_DIR)/oo_private.h
+src/oo$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_class.h src/oo.c \
+    include/pmc/pmc_object.h src/oo.str $(INC_DIR)/oo_private.h
 
-src/scheduler$(O) : $(PARROT_H_HEADERS) src/scheduler.str \
+src/scheduler$(O) : $(PARROT_H_HEADERS) src/scheduler.str src/scheduler.c \
         include/pmc/pmc_scheduler.h include/pmc/pmc_task.h \
         include/pmc/pmc_timer.h \
-        $(INC_DIR)/scheduler_private.h
+        $(INC_DIR)/scheduler_private.h \
+        $(INC_DIR)/runcore_api.h
 
-src/io/core$(O) : $(PARROT_H_HEADERS) src/io/io_private.h
+src/io/core$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/core.c
 
-src/io/socket_api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/api.str include/pmc/pmc_socket.h
+src/io/socket_api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+    src/io/api.str include/pmc/pmc_socket.h src/io/socket_api.c
 
-src/io/socket_unix$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_socket.h src/io/io_private.h
+src/io/socket_unix$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_socket.h \
+    src/io/io_private.h src/io/socket_unix.c
 
 src/io/socket_win32$(O) : $(PARROT_H_HEADERS) \
         src/io/io_private.h \
-        include/pmc/pmc_socket.h
+        include/pmc/pmc_socket.h \
+        src/io/socket_win32.c
 
 O_FILES = \
     $(INTERP_O_FILES) \
@@ -953,11 +949,15 @@
 $(INSTALLABLENCITHUNKGEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE) src/install_config$(O)
 	$(PBC_TO_EXE) parrot_nci_thunk_gen.pbc --install
 
+$(INSTALLABLETAPIR) : tapir.pbc $(PBC_TO_EXE) src/install_config$(O)
+	$(PBC_TO_EXE) tapir.pbc --install
+
 #
 # Parrot Debugger
 #
 
 src/parrot_debugger$(O) : $(INC_DIR)/embed.h \
+        src/parrot_debugger.c \
         $(INC_DIR)/runcore_api.h \
         compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
         compilers/imcc/cfg.h \
@@ -987,7 +987,8 @@
 # Parrot Disassembler
 #
 
-src/pbc_disassemble$(O) : $(INC_DIR)/embed.h $(PARROT_H_HEADERS)
+src/pbc_disassemble$(O) : $(INC_DIR)/embed.h $(PARROT_H_HEADERS) \
+    src/pbc_disassemble.c
 
 $(DIS) : src/pbc_disassemble$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
@@ -1005,7 +1006,8 @@
 #
 # Parrot Dump
 #
-src/packdump$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_sub.h include/pmc/pmc_key.h
+src/packdump$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_sub.h \
+    include/pmc/pmc_key.h src/packdump.c
 
 $(PDUMP) : src/pbc_dump$(O) src/packdump$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
@@ -1014,7 +1016,7 @@
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 src/pbc_dump$(O) : $(INC_DIR)/embed.h  $(INC_DIR)/oplib/ops.h \
-        $(PARROT_H_HEADERS)
+        $(PARROT_H_HEADERS) src/pbc_dump.c
 
 $(INSTALLABLEPDUMP) : src/pbc_dump$(O) src/packdump$(O) \
 	src/install_config$(O) $(LIBPARROT)
@@ -1044,6 +1046,46 @@
     @rpath_lib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
+#
+# Profiling runcore test supporting code
+#
+
+$(LIBRARY_DIR)/ProfTest.pbc: $(LIBRARY_DIR)/ProfTest/PIRProfile.pbc \
+	$(LIBRARY_DIR)/ProfTest/NQPProfile.pbc $(LIBRARY_DIR)/ProfTest/Matcher.pbc \
+	$(LIBRARY_DIR)/ProfTest/Want.pbc
+	$(PBC_MERGE) -o $@ $(LIBRARY_DIR)/ProfTest/PIRProfile.pbc \
+	$(LIBRARY_DIR)/ProfTest/NQPProfile.pbc $(LIBRARY_DIR)/ProfTest/Matcher.pbc \
+	$(LIBRARY_DIR)/ProfTest/Want.pbc
+
+
+$(LIBRARY_DIR)/ProfTest/PIRProfile.pbc: $(LIBRARY_DIR)/ProfTest/PIRProfile.pir
+	$(PARROT) -o $@ $(LIBRARY_DIR)/ProfTest/PIRProfile.pir
+
+$(LIBRARY_DIR)/ProfTest/PIRProfile.pir: $(LIBRARY_DIR)/ProfTest/PIRProfile.nqp $(NQP_RX)
+	$(NQP_RX) --target=pir $(LIBRARY_DIR)/ProfTest/PIRProfile.nqp > $@
+
+
+$(LIBRARY_DIR)/ProfTest/NQPProfile.pbc: $(LIBRARY_DIR)/ProfTest/NQPProfile.pir
+	$(PARROT) -o $@ $(LIBRARY_DIR)/ProfTest/NQPProfile.pir
+
+$(LIBRARY_DIR)/ProfTest/NQPProfile.pir: $(LIBRARY_DIR)/ProfTest/NQPProfile.nqp $(NQP_RX)
+	$(NQP_RX) --target=pir $(LIBRARY_DIR)/ProfTest/NQPProfile.nqp > $@
+
+
+$(LIBRARY_DIR)/ProfTest/Want.pbc: $(LIBRARY_DIR)/ProfTest/Want.pir
+	$(PARROT) -o $@ $(LIBRARY_DIR)/ProfTest/Want.pir
+
+$(LIBRARY_DIR)/ProfTest/Want.pir: $(LIBRARY_DIR)/ProfTest/Want.nqp $(NQP_RX)
+	$(NQP_RX) --target=pir $(LIBRARY_DIR)/ProfTest/Want.nqp > $@
+
+
+$(LIBRARY_DIR)/ProfTest/Matcher.pbc: $(LIBRARY_DIR)/ProfTest/Matcher.pir
+	$(PARROT) -o $@ $(LIBRARY_DIR)/ProfTest/Matcher.pir
+
+$(LIBRARY_DIR)/ProfTest/Matcher.pir: $(LIBRARY_DIR)/ProfTest/Matcher.nqp $(NQP_RX)
+	$(NQP_RX) --target=pir $(LIBRARY_DIR)/ProfTest/Matcher.nqp > $@
+
+
 
 ###############################################################################
 #
@@ -1094,6 +1136,9 @@
 runtime/parrot/include/libpaths.pasm : $(INC_DIR)/library.h $(H2INC)
 	$(PERL) $(H2INC) $(INC_DIR)/library.h $@
 
+runtime/parrot/include/dlopenflags.pasm : $(INC_DIR)/platform_interface.h $(H2INC)
+	$(PERL) $(H2INC) $(INC_DIR)/platform_interface.h $@
+
 runtime/parrot/include/datatypes.pasm : $(INC_DIR)/datatypes.h $(H2INC)
 	$(PERL) $(H2INC) $(INC_DIR)/datatypes.h $@
 
@@ -1179,59 +1224,59 @@
 #
 ###############################################################################
 
-src/byteorder$(O) : $(PARROT_H_HEADERS)
+src/byteorder$(O) : $(PARROT_H_HEADERS) src/byteorder.c
 
-src/datatypes$(O) : $(PARROT_H_HEADERS)
+src/datatypes$(O) : $(PARROT_H_HEADERS) src/datatypes.c
 
 src/extend_vtable$(O) : $(PARROT_H_HEADERS) \
-        $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h
+        $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/extend_vtable.c
 
-src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str
+src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str src/global_setup.c
 
-src/global$(O) : $(PARROT_H_HEADERS) src/global.str \
+src/global$(O) : $(PARROT_H_HEADERS) src/global.str src/global.c \
 	include/pmc/pmc_sub.h
 
-src/pmc$(O) : include/pmc/pmc_class.h \
+src/pmc$(O) : include/pmc/pmc_class.h src/pmc.c \
 	src/pmc.str $(PARROT_H_HEADERS)
 
-src/pmc_freeze$(O) : $(PARROT_H_HEADERS) src/pmc_freeze.str
+src/pmc_freeze$(O) : $(PARROT_H_HEADERS) src/pmc_freeze.str src/pmc_freeze.c
 
-src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h
+src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/hash.c
 
-src/library$(O) : $(PARROT_H_HEADERS) src/library.str \
+src/library$(O) : $(PARROT_H_HEADERS) src/library.str src/library.c\
         $(INC_DIR)/dynext.h
 
 $(INC_DIR)/extend_vtable.h src/extend_vtable.c src/vtable.h : src/vtable.tbl $(BUILD_TOOLS_DIR)/vtable_extend.pl lib/Parrot/Vtable.pm
 	$(PERL) $(BUILD_TOOLS_DIR)/vtable_extend.pl
 
-src/key$(O) : $(PARROT_H_HEADERS) src/key.str \
+src/key$(O) : $(PARROT_H_HEADERS) src/key.str src/key.c \
         include/pmc/pmc_key.h
 
-src/gc/mark_sweep$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/mark_sweep$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/mark_sweep.c
 
-src/gc/gc_ms$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/gc_ms$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/gc_ms.c
 
-src/gc/gc_inf$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/gc_inf$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/gc_inf.c
 
-src/gc/api$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h
+src/gc/api$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/api.c
 
 src/gc/alloc_resources$(O) : $(PARROT_H_HEADERS) \
-        src/gc/gc_private.h
+        src/gc/gc_private.h src/gc/alloc_resources.c
 
-src/hll$(O) : $(PARROT_H_HEADERS) src/hll.str $(INC_DIR)/dynext.h
+src/hll$(O) : $(PARROT_H_HEADERS) src/hll.str $(INC_DIR)/dynext.h src/hll.c
 
-src/platform$(O) : $(PARROT_H_HEADERS)
+src/platform$(O) : $(PARROT_H_HEADERS) src/platform.c
 
 #IF(platform_asm):src/platform_asm$(O) : $(PARROT_H_HEADERS)
 #IF(platform_asm):
-src/core_pmcs$(O) : $(PARROT_H_HEADERS)
+src/core_pmcs$(O) : $(PARROT_H_HEADERS) src/core_pmcs.c
 
-src/runcore/trace$(O) : include/pmc/pmc_sub.h \
+src/runcore/trace$(O) : include/pmc/pmc_sub.h src/runcore/trace.c \
         $(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_trace.h \
         $(PARROT_H_HEADERS)
 
 src/debug$(O) : $(INC_DIR)/embed.h $(INC_DIR)/extend.h \
-        $(PARROT_H_HEADERS) \
+        $(PARROT_H_HEADERS) src/debug.c \
         $(INC_DIR)/oplib/ops.h \
         $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
         src/debug.str include/pmc/pmc_key.h \
@@ -1239,26 +1284,27 @@
         $(INC_DIR)/extend_vtable.h
 
 src/sub$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
-        src/sub.str \
+        src/sub.str src/sub.c \
 	include/pmc/pmc_sub.h include/pmc/pmc_continuation.h
 
 src/string/api$(O) : $(PARROT_H_HEADERS) src/string/api.str \
-        src/string/private_cstring.h
+        src/string/private_cstring.h src/string/api.c
 
-src/string/primitives$(O) : $(PARROT_H_HEADERS)
+src/string/primitives$(O) : $(PARROT_H_HEADERS) src/string/primitives.c
 
-src/longopt$(O) : $(PARROT_H_HEADERS)
+src/longopt$(O) : $(PARROT_H_HEADERS) src/longopt.c
 
 src/dynext$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/dynext.h \
-        src/dynext.str include/pmc/pmc_parrotlibrary.h
+        src/dynext.str include/pmc/pmc_parrotlibrary.h src/dynext.c
 
 src/exceptions$(O) : $(PARROT_H_HEADERS) \
-        src/exceptions.str \
+        src/exceptions.str src/exceptions.c \
 	include/pmc/pmc_continuation.h
 
-src/thread$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic.h \
+src/thread$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic.h src/thread.c \
         include/pmc/pmc_sub.h \
-	include/pmc/pmc_parrotinterpreter.h
+	include/pmc/pmc_parrotinterpreter.h \
+	$(INC_DIR)/runcore_api.h
 
 ## SUFFIX OVERRIDE - dynloaded files need cc_shared
 src/extend$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/extend.h \
@@ -1266,14 +1312,15 @@
 	$(CC) $(CFLAGS) @optimize::src/extend.c@ @ccwarn::src/extend.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/extend.c
 
 src/runcore/main$(O) : \
+	src/runcore/main.c \
 	src/runcore/main.str \
 	include/pmc/pmc_parrotlibrary.h \
         $(INC_DIR)/dynext.h $(INC_DIR)/oplib/core_ops.h \
-        $(INC_DIR)/oplib/core_ops_switch.h $(INC_DIR)/oplib/ops.h \
+        $(INC_DIR)/oplib/ops.h \
         $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h \
         $(INC_DIR)/runcore_profiling.h
 
-src/runcore/profiling$(O) : src/runcore/profiling.str \
+src/runcore/profiling$(O) : src/runcore/profiling.str src/runcore/profiling.c \
 	include/pmc/pmc_sub.h \
 	include/pmc/pmc_namespace.h \
         $(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h \
@@ -1282,25 +1329,30 @@
 
 src/call/args$(O) : \
         $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
+	src/call/args.c \
 	src/call/args.str \
 	include/pmc/pmc_key.h \
 	include/pmc/pmc_fixedintegerarray.h
 
-src/call/context_accessors$(O): $(PARROT_H_HEADERS)
+src/call/context_accessors$(O): $(PARROT_H_HEADERS) \
+        src/call/context_accessors.c
 
 src/call/pcc$(O) : $(INC_DIR)/oplib/ops.h \
         $(PARROT_H_HEADERS) \
         $(INC_DIR)/runcore_api.h \
+	src/call/pcc.c \
 	src/call/pcc.str \
 	include/pmc/pmc_key.h include/pmc/pmc_continuation.h
 
 src/call/context$(O) : $(PARROT_H_HEADERS) \
-	include/pmc/pmc_sub.h
+	include/pmc/pmc_sub.h src/call/context.c
 
 src/interp/inter_cb$(O) : $(PARROT_H_HEADERS) \
-	src/interp/inter_cb.str
+        include/pmc/pmc_parrotinterpreter.h \
+	src/interp/inter_cb.str src/interp/inter_cb.c
 
 src/interp/inter_misc$(O) : $(PARROT_H_HEADERS) \
+        src/interp/inter_misc.c \
         src/interp/inter_misc.str \
 	compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
@@ -1314,6 +1366,8 @@
 
 src/interp/inter_create$(O) : $(PARROT_H_HEADERS) \
 	$(INC_DIR)/oplib/core_ops.h \
+	src/gc/gc_private.h \
+        src/interp/inter_create.c \
         src/interp/inter_create.str \
 	compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
@@ -1326,33 +1380,43 @@
         $(INC_DIR)/runcore_api.h
 
 src/call/ops$(O) : $(INC_DIR)/oplib/ops.h \
-	$(PARROT_H_HEADERS) include/pmc/pmc_continuation.h
+	$(PARROT_H_HEADERS) include/pmc/pmc_continuation.h \
+        $(INC_DIR)/runcore_api.h src/call/ops.c
 
 src/io/api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+        src/io/api.c \
         src/io/api.str include/pmc/pmc_filehandle.h \
-        include/pmc/pmc_stringhandle.h
+        include/pmc/pmc_stringhandle.h \
+        $(INC_DIR)/extend.h \
+        $(INC_DIR)/extend_vtable.h
 
-src/io/buffer$(O) : $(PARROT_H_HEADERS) src/io/io_private.h
+src/io/buffer$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/buffer.c
 
-src/io/portable$(O) : $(PARROT_H_HEADERS) src/io/io_private.h
+src/io/portable$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/portable.c
 
-src/io/unix$(O) : $(PARROT_H_HEADERS) src/io/io_private.h include/pmc/pmc_filehandle.h
+src/io/unix$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+    include/pmc/pmc_filehandle.h src/io/unix.c
 
-src/io/utf8$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/string/unicode.h
+src/io/utf8$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/string/unicode.h \
+    src/io/utf8.c
 
-src/io/win32$(O) : $(PARROT_H_HEADERS) src/io/io_private.h include/pmc/pmc_filehandle.h
+src/io/win32$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
+    include/pmc/pmc_filehandle.h src/io/win32.c
 
-src/gc/alloc_memory$(O) : $(PARROT_H_HEADERS)
+src/gc/alloc_memory$(O) : $(PARROT_H_HEADERS) src/gc/alloc_memory.c
 
 src/main$(O) : $(INC_DIR)/imcc.h $(PARROT_H_HEADERS) \
-        $(INC_DIR)/embed.h
+        $(INC_DIR)/embed.h $(INC_DIR)/runcore_api.h src/gc/gc_private.h \
+        src/main.c
 
 src/multidispatch$(O) : \
+        src/multidispatch.c \
         src/multidispatch.str \
         $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS) \
 	include/pmc/pmc_nci.h include/pmc/pmc_sub.h
 
 src/packfile$(O) : src/packfile.str \
+        src/packfile.c \
 	include/pmc/pmc_sub.h include/pmc/pmc_key.h \
         compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
@@ -1365,20 +1429,22 @@
         $(INC_DIR)/embed.h $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h \
         $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h
 
-src/packfile/pf_items$(O) : $(PARROT_H_HEADERS)
+src/packfile/pf_items$(O) : $(PARROT_H_HEADERS) src/packfile/pf_items.c
 
-src/packout$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h
+src/packout$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/packout.c
 
 src/parrot$(O) : $(GENERAL_H_FILES)
 
 src/runcore/cores$(O) : src/runcore/cores.str \
+        src/runcore/cores.c \
 	include/pmc/pmc_sub.h \
         $(INC_DIR)/dynext.h $(INC_DIR)/embed.h $(INC_DIR)/oplib/core_ops.h \
-        $(INC_DIR)/oplib/core_ops_switch.h $(INC_DIR)/oplib/ops.h \
+        $(INC_DIR)/oplib/ops.h \
         $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
         $(PARROT_H_HEADERS)
 
 src/embed$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/embed.h \
+        src/embed.c \
         $(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_api.h \
         compilers/imcc/imc.h \
         compilers/imcc/cfg.h \
@@ -1391,55 +1457,55 @@
 
 src/dataypes$(O) : $(GENERAL_H_FILES) src/dataypes.c
 
-src/exit$(O) : $(PARROT_H_HEADERS)
+src/exit$(O) : $(PARROT_H_HEADERS) src/exit.c
 
 src/nci/api$(O) : src/nci/api.str \
-        $(PARROT_H_HEADERS) \
-        include/pmc/pmc_unmanagedstruct.h \
-        include/pmc/pmc_nci.h
+        src/nci/api.c \
+        $(PARROT_H_HEADERS)
 
-src/nci/core_thunks$(O) : src/nci/core_thunks.str \
+src/nci/core_thunks$(O) : src/nci/core_thunks.c \
         $(PARROT_H_HEADERS) \
-        include/pmc/pmc_unmanagedstruct.h \
         include/pmc/pmc_nci.h
 
 ## SUFFIX OVERRIDE
-src/nci/extra_thunks$(O) : src/nci/extra_thunks.str \
+src/nci/extra_thunks$(O) : \
     $(PARROT_H_HEADERS) \
-    include/pmc/pmc_unmanagedstruct.h \
     include/pmc/pmc_nci.h \
     src/nci/extra_thunks.c
 	$(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci/extra_thunks.c
 
 src/frame_builder$(O) : $(PARROT_H_HEADERS) src/frame_builder.h \
+        src/frame_builder.c \
         include/pmc/pmc_fixedintegerarray.h \
         include/pmc/pmc_unmanagedstruct.h \
         include/pmc/pmc_managedstruct.h \
         $(INC_DIR)/oplib/ops.h
 
-src/vtables$(O) : $(PARROT_H_HEADERS)
+src/vtables$(O) : $(PARROT_H_HEADERS) src/vtables.c
 
 ## SUFFIX OVERRIDE
-src/gc/system$(O) : $(PARROT_H_HEADERS)  src/gc/gc_private.h
+src/gc/system$(O) : $(PARROT_H_HEADERS)  src/gc/gc_private.h src/gc/system.c
 	$(CC) $(CFLAGS) @optimize::src/gc/system.c@ @ccwarn::src/gc/system.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/gc/system.c
 
 src/gc/gc_private.h : $(INC_DIR)/settings.h
 
-src/warnings$(O) : $(PARROT_H_HEADERS)
+src/gc/malloc$(O) : src/gc/malloc.c
 
-src/misc$(O) : $(PARROT_H_HEADERS)
+src/warnings$(O) : $(PARROT_H_HEADERS) src/warnings.c
 
-src/utils$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_nci.h
+src/misc$(O) : $(PARROT_H_HEADERS) src/misc.c
+
+src/utils$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_nci.h src/utils.c
 
 ## SUFFIX OVERRIDE
-src/spf_render$(O) : $(PARROT_H_HEADERS) src/spf_render.str
+src/spf_render$(O) : $(PARROT_H_HEADERS) src/spf_render.str src/spf_render.c
 	$(CC) $(CFLAGS) @optimize::src/spf_render.c@ @ccwarn::src/spf_render.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/spf_render.c
 
-src/spf_vtable$(O) : $(PARROT_H_HEADERS) src/spf_vtable.str
+src/spf_vtable$(O) : $(PARROT_H_HEADERS) src/spf_vtable.str src/spf_vtable.c
 
-src/string/encoding$(O) : $(PARROT_H_HEADERS)
+src/string/encoding$(O) : $(PARROT_H_HEADERS) src/string/encoding.c
 
-src/string/charset$(O) : $(PARROT_H_HEADERS) \
+src/string/charset$(O) : $(PARROT_H_HEADERS) src/string/charset.c \
         src/string/encoding/fixed_8.h \
         src/string/encoding/utf8.h \
         src/string/encoding/utf16.h \
@@ -1449,10 +1515,11 @@
         src/string/charset/iso-8859-1.h \
         src/string/charset/unicode.h
 
-src/pbc_merge$(O) : $(INC_DIR)/embed.h \
+src/pbc_merge$(O) : $(INC_DIR)/embed.h src/pbc_merge.c \
 	include/pmc/pmc_sub.h $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS)
 
-src/io/filehandle$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_filehandle.h src/io/io_private.h
+src/io/filehandle$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_filehandle.h \
+    src/io/io_private.h src/io/filehandle.c
 
 src/dynpmc/subproxy$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/extend.h \
   $(INC_DIR)/dynext.h include/pmc/pmc_subproxy.h \
@@ -1460,11 +1527,12 @@
   include/pmc/pmc_continuation.h include/pmc/pmc_callcontext.h \
   include/pmc/pmc_default.h
 
-src/gc/malloc_trace$(O) : src/gc/malloc.c
+src/gc/malloc_trace$(O) : src/gc/malloc.c src/gc/malloc_trace.c
 
-src/packfile/pf_items$(O) : $(PARROT_H_HEADERS)
+src/packfile/pf_items$(O) : $(PARROT_H_HEADERS) src/packfile/pf_items.c
 
-src/atomic/gcc_x86$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic/gcc_x86.h
+src/atomic/gcc_x86$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic/gcc_x86.h \
+    src/atomic/gcc_x86.c
 
 # core_ops depends upon config.h so that it gets updated along with
 # updates to config.h's version numbers
@@ -1484,41 +1552,6 @@
 	include/pmc/pmc_continuation.h
 	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --core @no_lines_flag@
 
-## SUFFIX OVERRIDE
-src/ops/core_ops_switch$(O) : $(GENERAL_H_FILES) src/ops/core_ops_switch.c \
-	include/pmc/pmc_parrotlibrary.h
-	$(CC) $(CFLAGS) @optimize::src/ops/core_ops_switch.c@ @ccwarn::src/ops/core_ops_switch.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/ops/core_ops_switch.c
-
-$(INC_DIR)/oplib/core_ops_switch.h : src/ops/core_ops_switch.c
-
-src/ops/core_ops_switch.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl \
-	lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC_DIR)/config.h \
-	lib/Parrot/OpLib/core.pm lib/Parrot/OpTrans/CSwitch.pm \
-	lib/Parrot/OpTrans/CPrederef.pm
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CSwitch --core @no_lines_flag@
-
-## SUFFIX OVERRIDE
-src/ops/core_ops_cg$(O): $(GENERAL_H_FILES) src/ops/core_ops_cg.c \
-        include/pmc/pmc_parrotlibrary.h
-	$(CC) $(CFLAGS) @optimize::src/ops/core_ops_cg.c@ @ccwarn::src/ops/core_ops_cg.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/ops/core_ops_cg.c
-
-## SUFFIX OVERRIDE
-src/ops/core_ops_cgp$(O): $(GENERAL_H_FILES) src/ops/core_ops_cgp.c \
-        include/pmc/pmc_parrotlibrary.h
-	$(CC) $(CFLAGS) @optimize::src/ops/core_ops_cgp.c@ @ccwarn::src/ops/core_ops_cgp.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/ops/core_ops_cgp.c
-
-src/runcore/cores.c: $(INC_DIR)/oplib/core_ops_cgp.h
-
-$(INC_DIR)/oplib/core_ops_cg.h: src/ops/core_ops_cg.c
-
-src/ops/core_ops_cg.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGoto.pm lib/Parrot/OpLib/core.pm
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGoto --core
-
-$(INC_DIR)/oplib/core_ops_cgp.h: src/ops/core_ops_cgp.c
-
-src/ops/core_ops_cgp.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl lib/Parrot/OpsFile.pm lib/Parrot/Op.pm lib/Parrot/OpTrans/CGP.pm lib/Parrot/OpLib/core.pm lib/Parrot/OpTrans/CPrederef.pm
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl CGP --core
-
 @TEMP_gc_c@
 
 @TEMP_pmc_build@
@@ -1575,6 +1608,12 @@
 htmlhelp-clean :
 	$(MAKE) docs htmlhelp-clean
 
+#UNLESS(win32):pdf:
+#UNLESS(win32):	$(MAKE) docs pdf
+
+pdf-clean:
+	$(MAKE) docs pdf-clean
+
 ###############################################################################
 #
 # dynamic PMC targets:
@@ -1669,16 +1708,12 @@
 # integrating them in a single run is difficult.
 
 # Normal test package
-test : test_core nqp_test
+test : test_core
 
 # Test Parrot core.
 test_core: test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS)
 
-# Test the NQP compiler
-nqp_test : test_prep compilers/nqp/nqp.pbc
-	$(PERL) compilers/nqp/t/harness
-
 # run the test suite, create a TAP archive and send it off to smolder
 smolder_test : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) --archive --send-to-smolder
@@ -1696,20 +1731,17 @@
 check : test
 
 # Test various run cores and other stuff
-# 'testC', 'testg' and 'testj' are tested only
+# 'testg' and 'testj' are tested only
 # when the needed runcores are available
 fulltest :
 	- at make@ testb \
-#IF(cg_flag):	testC \
 	testf \
-#IF(cg_flag):	testg \
 	testr \
-	testS \
 	src_tests \
 	run_tests \
+	buildtools_tests \
 	perl_tests \
 	library_tests \
-	nqp_test \
 	codetest \
 	benchmark_tests \
 	manifest_tests \
@@ -1720,10 +1752,6 @@
 testb : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) -b $(RUNCORE_TEST_FILES)
 
-# CGP core
-testC : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) -C $(RUNCORE_TEST_FILES)
-
 # fast core
 testf : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) -f $(RUNCORE_TEST_FILES)
@@ -1744,18 +1772,6 @@
 testr : test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) -r $(RUNCORE_TEST_FILES)
 
-# switched core
-testS : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) -S $(RUNCORE_TEST_FILES)
-
-# Computed goto jitted core - target retained, but falls back to standard core
-testCj : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) $(RUNCORE_TEST_FILES)
-
-# switched jitted core - target retained, but falls back to standard core
-testSj : test_prep
-	$(PERL) t/harness $(EXTRA_TEST_ARGS) $(RUNCORE_TEST_FILES)
-
 # test the EXEC stuff
 testexec: test_prep
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) --run-exec $(RUNCORE_TEST_FILES)
@@ -1829,13 +1845,12 @@
     ext-clean \
 #UNLESS(win32):    cover-clean \
     editor-clean
-	$(RM_F) $(INC_DIR)/oplib/core_ops_cg.h src/ops/core_ops_cg.c \
-    $(INC_DIR)/oplib/core_ops_cgp.h src/ops/core_ops_cgp.c
+	$(RM_F) $(INC_DIR)/oplib/core_ops_cg.h src/ops/core_ops_cg.c
 	$(RM_F) chartypes "*.s" "*~"
 	$(RM_F) $(FLUID_FILES_1)
 	$(RM_F) $(FLUID_FILES_2)
 	$(RM_RF) lib/Parrot/OpLib
-	$(RM_F) $(NQP_CLEANUPS) $(PGE_CLEANUPS) $(TGE_CLEANUPS) $(JSON_CLEANUPS)
+	$(RM_F) $(NQP_CLEANUPS) $(PGE_CLEANUPS) $(TGE_CLEANUPS)
 	$(RM_F) $(PIRC_CLEANUPS) $(PCT_CLEANUPS) $(DATA_JSON_CLEANUPS)
 	$(RM_F) $(GEN_PASM_INCLUDES) $(GEN_PM_INCLUDES) $(DYNOPLIBS_CLEANUPS)
 
@@ -1854,8 +1869,10 @@
     $(INSTALLABLECONFIG) \
     $(INSTALLABLENQP) \
     $(INSTALLABLENCITHUNKGEN) \
+    $(INSTALLABLETAPIR) \
     pbc_to_exe.pbc pbc_to_exe.c pbc_to_exe$(O) pbc_to_exe$(EXE) \
     $(NCI_THUNK_GEN) parrot_nci_thunk_gen.c parrot_nci_thunk_gen$(O) parrot_nci_thunk_gen.pbc \
+    tapir.pbc tapir.c tapir$(O) tapir$(EXE) \
     parrot_config$(EXE) parrot_config.c parrot_config$(O) parrot_config.pbc \
     compilers/imcc/main$(O) \
     $(PDUMP) src/pbc_dump$(O) src/packdump$(O) \
@@ -2092,7 +2109,8 @@
 	rm -f *.ln
 	$(LINT) $(CC_INC) "-Iinclude/pmc" $(BSD_LINT_FLAGS) $(BSD_LINT_EXCLUSIONS) $(LINTABLE_CFILES)
 
-# For checking with splint see also http:////www.perlfoundation.org//parrot//index.cgi?splint
+# For checking with splint see also
+# http:////trac.parrot.org/parrot/wiki/splint
 # Splint: http:////splint.org
 SPLINT = splint
 
@@ -2104,7 +2122,7 @@
 # The dashes in the names don't make any difference to Splint, but I've
 # made them match how they are in the manual.  Otherwise, you might be
 # looking for "declundef", except that it's "decl-undef" in the docs.
-SPLINTFLAGS = \
+SPLINTFLAGS_BASE = \
     +standard \
     -hints \
     \
@@ -2126,14 +2144,16 @@
     +show-scan \
     +time-dist \
     \
+    +cpp-names \
     +ansi-reserved \
     +ansi-reserved-internal \
     -iso-reserved \
     -iso-reserved-internal \
-    -include-nest 10
+    -include-nest 10 \
 
 # Memory safety checks
-SPLINTFLAGS = $(SPLINTFLAGS) \
+# Transfer errors (-mem-trans) are too tough for us right now
+SPLINTFLAGS_MEMORY_SAFETY = \
     +bufferoverflow \
     +bufferoverflowhigh \
     +read-only-strings \
@@ -2141,9 +2161,19 @@
     +strict-destroy \
     +strict-use-released \
     +use-released \
+    -must-free \
+    -mustfreefresh \
+    -mustfreeonly \
+    +null \
+    +nullptrarith \
+    +nullret \
+    -ptr-arith \
+    +ptr-negate \
+    -zero-ptr \
+    -mem-trans
 
 # Macro safety checks
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_MACRO_SAFETY = \
     +macro-assign \
     +macro-empty \
     +macro-parens \
@@ -2152,63 +2182,44 @@
     +macro-unrecog \
 
 # Watch for unsafe comparisons
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_UNSAFE_COMPARISONS = \
     +bool-compare \
     +ptr-compare \
     +real-compare \
     +unsigned-compare
 
 # But allow us some slop in boolean comparisons
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_BOOLEAN_SLOP = \
     -pred-bool-int \
     -pred-bool-ptr \
     -pred-bool-others \
     -boolops \
 
-# Report qualifier mismatches only if dangerous
-SPLINTFLAGS = $(SPLINTFLAGS) \
+# const and other qualifiers
+# Report qualifier mismatches only if dangerous (+relax-quals)
+SPLINTFLAGS_QUALIFIERS = \
     +relax-quals
 
-# Memory checking
-SPLINTFLAGS = $(SPLINTFLAGS) \
-    -must-free \
-    -mustfreefresh \
-    -mustfreeonly \
-    +null \
-    +nullptrarith \
-    +nullret \
-    -ptr-arith \
-    +ptr-negate \
-    -zero-ptr \
-
-# Transfer errors are too tough for us right now
-SPLINTFLAGS = $(SPLINTFLAGS) \
-    -mem-trans
-
 # Symbol definitions
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_SYMBOL_DEFINITIONS = \
     +decl-undef \
     +incon-defs \
     +incon-defs-lib \
 
-# Check for conflicts with C++ compilers
-SPLINTFLAGS = $(SPLINTFLAGS) \
-    +cpp-names \
-
 # Format codes
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_FORMAT = \
     +format-code \
     +format-type \
 
 # Problems with evaluation and control structions
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_EVALUATION = \
     +controlnestdepth 15 \
-    +duplicate-case \
+    +duplicate-quals \
     +eval-order \
     +eval-order-uncon \
 
 # Types and stuff
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_TYPES = \
     +char-index \
     +char-int \
     +enum-members \
@@ -2227,13 +2238,27 @@
 # added to splint target to simplify experimentation,
 # example: make SPLINTFLAGS_TEST='-posixstrictlib +posixlib' splint
 
+SPLINTFLAGS_TEST =
+
+SPLINTFLAGS = \
+	$(SPLINTFLAGS_BASE) \
+	$(SPLINTFLAGS_MEMORY_SAFETY) \
+	$(SPLINTFLAGS_MACRO_SAFETY) \
+	$(SPLINTFLAGS_UNSAFE_COMPARISONS) \
+	$(SPLINTFLAGS_BOOLEAN_SLOP) \
+	$(SPLINTFLAGS_QUALIFIERS) \
+	$(SPLINTFLAGS_SYMBOL_DEFINITIONS) \
+	$(SPLINTFLAGS_FORMAT) \
+	$(SPLINTFLAGS_EVALUATION) \
+	$(SPLINTFLAGS_TYPES) \
+
 SPLINT_SOURCE = `echo $(O_FILES) | $(PERL) -pe @PQ at s/\.o/\.c/g at PQ@`
 
 splint-all : $(PARROT)
 	$(MKPATH) $(SPLINT_TMP)
-	$(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \
+	$(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) \
 	$(SPLINT_SOURCE) \
-	$(SPLINT) $(CC_INC) $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) compilers/imcc/main.c
+	$(SPLINT) $(CC_INC) $(SPLINTFLAGS) compilers/imcc/main.c
 
 # "splint" is the less-thorough splint target.  For cage cleaning work,
 # you'll probably want to specify SPLINT_SOURCE rather than work on the
@@ -2242,7 +2267,7 @@
 
 splint : all
 	$(MKPATH) $(SPLINT_TMP)
-	$(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \
+	$(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) \
 	+partial -DNDEBUG \
 	$(SPLINT_SOURCE) \
 		| grep -v 'Source code error generation point'
@@ -2270,16 +2295,12 @@
 cover: \
     cover.dummy \
     cover-testb \
-#IF(cg_flag):    cover-testC \
     cover-testf \
-#IF(cg_flag):    cover-testg \
     cover-testr \
-    cover-testS \
     cover-src \
     cover-run \
     cover-perl \
     cover-extra \
-    cover-nqp \
     cover-codingstd \
     cover-benchmark \
     cover-manifest \
@@ -2302,9 +2323,6 @@
 cover-testb: cover.dummy
 	- at make@ testb
 
-cover-testC: cover.dummy
-	- at make@ testC
-
 cover-testf: cover.dummy
 	- at make@ testf
 
@@ -2317,9 +2335,6 @@
 cover-testr: cover.dummy
 	- at make@ testr
 
-cover-testS: cover.dummy
-	- at make@ testS
-
 cover-src: cover.dummy
 	- at make@ src_tests
 
@@ -2332,9 +2347,6 @@
 cover-extra: cover.dummy
 	- at make@ library_tests
 
-cover-nqp: cover.dummy
-	- at make@ nqp_test
-
 cover-codingstd: cover.dummy
 	- at make@ codingstd_tests
 
@@ -2373,6 +2385,7 @@
     --destdir=$(DESTDIR) \
     --docdir=$(DOC_DIR) \
     --versiondir=$(VERSION_DIR) \
+    --pkgconfigdir=@PKGCONFIG_DIR@ \
     MANIFEST MANIFEST.generated
 
 install-dev-only: installable
@@ -2412,6 +2425,8 @@
 	grep -v DEVELOPING MANIFEST.real > MANIFEST
 	$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' MANIFEST | \
     tar -zcv -T - -f parrot-$(VERSION).tar.gz
+	$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' \
+             MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
 	mv MANIFEST.real MANIFEST
 	rm parrot-$(VERSION)
 
@@ -2440,7 +2455,8 @@
     @ld_out@$@ src/nci_test$(O) $(C_LIBS)
 
 # for use by runtime/parrot/library/OpenGL.pir
-src/glut_callbacks$(O): $(GENERAL_H_FILES)
+src/glut_callbacks$(O): $(PARROT_H_HEADERS) \
+    $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/glut_callbacks.c
 
 src/glut_nci_thunks.c: $(NCI_THUNK_GEN)
 	$(NCI_THUNK_GEN) \
@@ -2449,7 +2465,9 @@
 	    --output=src/glut_nci_thunks.c \
 	    <src/glut_nci_thunks.nci
 
-src/glut_nci_thunks$(O): $(GENERAL_H_FILES)
+src/glut_nci_thunks$(O) : $(PARROT_H_HEADERS) \
+    src/glut_nci_thunks.c \
+    include/pmc/pmc_nci.h
 
 $(LIBGLUTCB_SO): $(LIBPARROT) src/glut_callbacks$(O) src/glut_nci_thunks$(O)
 	$(LD) $(LD_LOAD_FLAGS) $(LDFLAGS) \
@@ -2461,7 +2479,8 @@
 	    --output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
 
 ## SUFFIX OVERRIDE
-src/extra_nci_thunks$(O) : $(GENERAL_H_FILES) src/extra_nci_thunks.c
+src/extra_nci_thunks$(O) : $(PARROT_H_HEADERS) src/extra_nci_thunks.c \
+    include/pmc/pmc_nci.h
 	$(CC) $(CFLAGS) @optimize::src/extra_nci_thunks.c@ @ccwarn::src/extra_nci_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/extra_nci_thunks.c
 
 $(EXTRANCITHUNKS_SO) : $(LIBPARROT) src/extra_nci_thunks$(O)
@@ -2478,7 +2497,7 @@
         --links=no --totals \
         -R --exclude=blib --exclude=.svn  \
         --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
-        -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \
+        -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
         .
 
 # this works with an old etags (XEmacs 21.5*)
@@ -2495,11 +2514,11 @@
 tags-vi: tags.vi.dummy
 	$(RM_F) tags
 	@ctags@ \
-    --links=no --totals \
-    -R --exclude=blib --exclude=.svn  \
-    --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
-    -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \
-    .
+	--links=no --totals \
+	-R --exclude=blib --exclude=.svn  \
+	--languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
+	-I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
+	.
 	$(PERL) $(BUILD_TOOLS_DIR)/addopstags.pl $(OPS_FILES)
 
 tags.vi.dummy:
@@ -2511,6 +2530,7 @@
 
 # Andy's extra-cranky Perl::Critic checking for cage cleaners
 cagecritic:
+	@perl -MPerl::Critic::Bangs -e'$$min=q{1.04};die qq{You need Bangs $$min} unless $$Perl::Critic::Bangs::VERSION ge $$min'
 	perlcritic -1 --profile tools/util/perlcritic-cage.conf $(CRITIC_FILES)
 
 # This target will eventually create all the headers automatically.  If you
@@ -2520,6 +2540,7 @@
 
 HEADERIZER_O_FILES = \
     $(O_FILES) \
+    src/main$(O) \
     src/packdump$(O) \
     src/pbc_merge$(O) \
     $(PIRC_O_FILES)
@@ -2537,13 +2558,11 @@
 include runtime/parrot/library/Rules.mak
 include compilers/imcc/Rules.mak
 include compilers/pirc/Rules.mak
-include compilers/nqp/Rules.mak
 include compilers/pge/Rules.mak
 include compilers/pct/Rules.mak
 include compilers/opsc/Rules.mak
 include compilers/tge/Rules.mak
 include compilers/data_json/Rules.mak
-include compilers/json/Rules.mak
 include ext/nqp-rx/Rules.mak
 
 # Local variables:

Modified: branches/ops_pct/config/gen/opengl.pm
==============================================================================
--- branches/ops_pct/config/gen/opengl.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/opengl.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -516,6 +516,7 @@
 #         "$ENV{HOME}/src/osx-insane/usr/X11/include/GL/*.h",
 #         "$ENV{HOME}/src/osx-insane/usr/X11/include/GL/internal/*.h",
 #         "$ENV{HOME}/src/osx-insane/usr/X11R6 1/include/GL/*.h",
+#         "$ENV{HOME}/src/osx-10.6.3/Headers/*.h",
     );
 
     # X freeglut only if DISPLAY is set, otherwise use native w32api GLUT
@@ -663,6 +664,9 @@
             next if     /^#/;
             next if     /\btypedef\b/;
 
+            # Work around bug in Mac OS X headers (glext.h as of 10.6.3, at least)
+            next if /^\s*extern\s+\w+\s+\(\*\s+/;
+
             # Skip where we are explicitly told to do so
             next if /\bFGUNUSED\b/;
 

Modified: branches/ops_pct/config/gen/platform.pm
==============================================================================
--- branches/ops_pct/config/gen/platform.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/platform.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -25,7 +25,6 @@
     my %data;
     $data{description} = q{Move platform files into place};
     $data{result}      = q{};
-    $data{platform_interface} = q{config/gen/platform/platform_interface.h};
     $data{coda} = <<'CODA';
 /*
  * Local variables:
@@ -52,10 +51,6 @@
 
     $self->_handle_asm($conf);
 
-    # interface is the same for all platforms
-    copy_if_diff( $self->{platform_interface},
-        "include/parrot/platform_interface.h" );
-
     $self->_set_limits($conf, $verbose);
 
     return 1;

Modified: branches/ops_pct/config/gen/platform/ansi/dl.c
==============================================================================
--- branches/ops_pct/config/gen/platform/ansi/dl.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/platform/ansi/dl.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -23,14 +23,15 @@
 
 /*
 
-=item C<void * Parrot_dlopen(const char *filename)>
+=item C<void * Parrot_dlopen(const char *filename, SHIM(Parrot_dlopen_flags
+flags)>
 
 =cut
 
 */
 
 void *
-Parrot_dlopen(const char *filename)
+Parrot_dlopen(const char *filename, SHIM(Parrot_dlopen_flags flags))
 {
     Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_dlopen not implemented");
     return NULL;

Modified: branches/ops_pct/config/gen/platform/generic/dl.c
==============================================================================
--- branches/ops_pct/config/gen/platform/generic/dl.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/platform/generic/dl.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -29,17 +29,18 @@
 
 /*
 
-=item C<void * Parrot_dlopen(const char *filename)>
+=item C<void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)>
 
 =cut
 
 */
 
 void *
-Parrot_dlopen(const char *filename)
+Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)
 {
 #ifdef PARROT_HAS_HEADER_DLFCN
-    return dlopen(filename, PARROT_DLOPEN_FLAGS);
+    return dlopen(filename, PARROT_DLOPEN_FLAGS
+                    | ((flags & Parrot_dlopen_global_FLAG) ? RTLD_GLOBAL : 0));
 #else
     return 0;
 #endif

Modified: branches/ops_pct/config/gen/platform/generic/env.c
==============================================================================
--- branches/ops_pct/config/gen/platform/generic/env.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/platform/generic/env.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -74,7 +74,7 @@
 void
 Parrot_unsetenv(PARROT_INTERP, STRING *str_name)
 {
-    char *name = Parrot_str_to_cstring(interp, str_name);
+    char * const name = Parrot_str_to_cstring(interp, str_name);
 #ifdef PARROT_HAS_UNSETENV
     unsetenv(name);
 #else

Modified: branches/ops_pct/config/gen/platform/generic/itimer.c
==============================================================================
--- branches/ops_pct/config/gen/platform/generic/itimer.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/platform/generic/itimer.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,6 +1,6 @@
 /*
+ * Copyright (C) 2004-2010, Parrot Foundation.
  * $Id$
- * Copyright (C) 2004-2009, Parrot Foundation.
  */
 
 /*
@@ -77,7 +77,7 @@
 */
 
 int
-get_sys_timer_ms(void *handle)
+get_sys_timer_ms(SHIM(void *handle))
 {
     struct itimerval ots;
     getitimer(ITIMER_REAL, &ots);

Deleted: branches/ops_pct/config/gen/platform/platform_interface.h
==============================================================================
--- branches/ops_pct/config/gen/platform/platform_interface.h	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,127 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2003-2008, Parrot Foundation.
- */
-
-#ifndef PARROT_PLATFORM_INTERFACE_H_GUARD
-#define PARROT_PLATFORM_INTERFACE_H_GUARD
-/*
-** platform_interface.h
-*/
-#include "parrot/config.h"
-#include "parrot/interpreter.h"
-
-/*
-** I/O:
-*/
-
-
-/*
-** Math:
-*/
-
-extern int Parrot_signbit(double x);
-#if NUMVAL_SIZE == 12
-int Parrot_signbit_l(long double x);
-#endif
-
-/*
-** Memory:
-*/
-
-void *Parrot_memalign(size_t align, size_t size);
-void *Parrot_memalign_if_possible(size_t align, size_t size);
-void Parrot_free_memalign(void *);
-
-#if !defined(PARROT_HAS_SOME_MEMALIGN)
-#  define Parrot_memalign_if_possible(a, s) malloc(s)
-#else
-#  define Parrot_memalign_if_possible(a, s) Parrot_memalign((a), (s))
-#endif
-
-#ifdef PARROT_HAS_EXEC_PROTECT
-void *mem_alloc_executable(size_t);
-void mem_free_executable(void *, size_t);
-void *mem_realloc_executable(void *, size_t, size_t);
-#else
-#  define mem_alloc_executable mem_internal_allocate
-#  define mem_free_executable(a, b) mem_internal_free(a)
-#  define mem_realloc_executable(a, b, c) mem_internal_realloc((a), (c))
-#endif
-
-/*
-** Time
-*/
-
-void Parrot_sleep(unsigned int seconds);
-void Parrot_usleep(unsigned int microseconds);
-INTVAL Parrot_intval_time(void);
-FLOATVAL Parrot_floatval_time(void);
-struct tm * Parrot_gmtime_r(const time_t *, struct tm *);
-struct tm * Parrot_localtime_r(const time_t *, struct tm *);
-char* Parrot_asctime_r(const struct tm*, char *);
-
-/*
- * Env
- */
-
-void Parrot_setenv(PARROT_INTERP, STRING *name, STRING *value);
-void Parrot_unsetenv(PARROT_INTERP, STRING *name);
-char * Parrot_getenv(PARROT_INTERP, STRING *name);
-
-/*
-** Dynamic Loading:
-*/
-
-void *Parrot_dlopen(const char *filename);
-const char *Parrot_dlerror(void);
-void *Parrot_dlsym(void *handle, const char *symbol);
-int Parrot_dlclose(void *handle);
-
-/*
- * signal handling
- */
-#ifndef PARROT_HAS_HEADER_SIGNAL
-#  define Parrot_set_sighandler(s, h)
-#endif
-
-/*
- * system timer
- */
-
-#ifdef PARROT_HAS_SOME_SYS_TIMER
-
-void * new_sys_timer_ms(void);
-void start_sys_timer_ms(void *handle, int ms);
-void stop_sys_timer_ms(void *handle);
-int get_sys_timer_ms(void *handle);
-
-#else
-
-#  define new_sys_timer_ms() NULL
-#  define start_sys_timer_ms(h, m)
-#  define stop_sys_timer_ms(h)
-#  define get_sys_timer_ms(h) 0
-
-#endif
-
-/*
- * high-resolution timer support
- */
-
-UHUGEINTVAL Parrot_hires_get_time(void);
-UINTVAL     Parrot_hires_get_tick_duration(void);
-
-
-struct parrot_string_t;
-INTVAL Parrot_Run_OS_Command(Interp*, struct parrot_string_t *);
-INTVAL Parrot_Run_OS_Command_Argv(Interp*, struct PMC *);
-
-#endif /* PARROT_PLATFORM_INTERFACE_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/ops_pct/config/gen/platform/win32/dl.c
==============================================================================
--- branches/ops_pct/config/gen/platform/win32/dl.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/gen/platform/win32/dl.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -23,7 +23,7 @@
 
 /*
 
-=item C<void * Parrot_dlopen(const char *filename)>
+=item C<void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)>
 
 Opens a dynamic library, and returns a system handle to that library.
 Returns Parrot_dlerror() on failure.
@@ -33,7 +33,7 @@
 */
 
 void *
-Parrot_dlopen(const char *filename)
+Parrot_dlopen(const char *filename, SHIM(Parrot_dlopen_flags flags))
 {
     return LoadLibrary(filename);
 }

Modified: branches/ops_pct/config/init/defaults.pm
==============================================================================
--- branches/ops_pct/config/init/defaults.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/init/defaults.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -80,6 +80,7 @@
     my $ccdlflags = $Config{ccdlflags};
     $ccdlflags =~ s/\s*-Wl,-rpath,\S*//g if $conf->options->get('disable-rpath');
 
+    my $cc_option = $conf->options->get('cc');
     # We need a Glossary somewhere!
     $conf->data->set(
         debugging => $conf->options->get('debugging') ? 1 : 0,
@@ -92,23 +93,15 @@
 
         # Compiler -- used to turn .c files into object files.
         # (Usually cc or cl, or something like that.)
-        cc      => $Config{cc},
-        ccflags => $Config{ccflags},
-        ccwarn  => exists( $Config{ccwarn} ) ? $Config{ccwarn} : '',
+        cc      => $cc_option ? $cc_option : $Config{cc},
+        # If we specify a compiler, we can't use existing ccflags.
+        ccflags => $cc_option ? ''         : $Config{ccflags},
+        ccwarn  => '',
 
         # Flags used to indicate this object file is to be compiled
         # with position-independent code suitable for dynamic loading.
         cc_shared => $Config{cccdlflags},    # e.g. -fpic for GNU cc.
 
-        # C++ compiler -- used to compile parts of ICU.  ICU's configure
-        # will try to find a suitable compiler, but it prefers GNU c++ over
-        # a system c++, which might not be appropriate.  This setting
-        # allows you to override ICU's guess, but is otherwise currently
-        # unset.  Ultimately, it should be set to whatever ICU figures
-        # out, or parrot should look for it and always tell ICU what to
-        # use.
-        cxx => 'c++',
-
         # Linker, used to link object files (plus libraries) into
         # an executable.  It is usually $cc on Unix-ish systems.
         # VMS and Win32 might use "Link".
@@ -191,7 +184,7 @@
 
         # some utilities in Makefile
         cat       => '$(PERL) -MExtUtils::Command -e cat',
-        chmod     => '$(PERL) -MExtUtils::Command -e ExtUtils::Command::chmod',
+        chmod     => '$(PERL) -MExtUtils::Command -e chmod',
         cp        => '$(PERL) -MExtUtils::Command -e cp',
         mkpath    => '$(PERL) -MExtUtils::Command -e mkpath',
         mv        => '$(PERL) -MExtUtils::Command -e mv',
@@ -249,6 +242,8 @@
         no_lines_flag => $conf->options->get('no-line-directives') ? '--no-lines' : '',
 
         tempdir => File::Spec->tmpdir,
+
+        PKGCONFIG_DIR => $conf->options->get('pkgconfigdir') || '',
     );
 
     # TT #855:  Profiling options are too specific to GCC
@@ -281,7 +276,7 @@
             $archname =~ s/x86_64/i386/;
 
             # adjust gcc?
-            for my $cc qw(cc cxx link ld) {
+            for my $cc qw(cc link ld) {
                 $conf->data->add( ' ', $cc, '-m32' );
             }
 

Modified: branches/ops_pct/config/init/hints.pm
==============================================================================
--- branches/ops_pct/config/init/hints.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/init/hints.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2003, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME

Modified: branches/ops_pct/config/init/hints/cygwin.pm
==============================================================================
--- branches/ops_pct/config/init/hints/cygwin.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/init/hints/cygwin.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -36,6 +36,7 @@
     # this later causes problems, it might be worth revisiting.  A. Dougherty
     # 9/9/2002
     $conf->data->set(
+        cp                  => '/bin/cp', # ExtUtils::Command::cp broken cpan #56666
         build_dir           => $build_dir,
         ld                  => $conf->data->get('ld') eq 'ld2'
                                ? 'gcc' # do not use old perl5 linker helper

Modified: branches/ops_pct/config/init/hints/irix.pm
==============================================================================
--- branches/ops_pct/config/init/hints/irix.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/init/hints/irix.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -27,15 +27,12 @@
     $conf->data->set( libs => $libs );
 
     my $cc   = $conf->data->get('cc');
-    my $cxx  = $conf->data->get('cxx');
     my $ld   = $conf->data->get('ld');
     my $link = $conf->data->get('link');
     if ( $cc =~ /cc -64/ ) {
-        $cxx  = 'CC -64';
         $ld   = 'CC -64';
         $link = 'CC -64';
         $conf->data->set(
-            cxx  => $cxx,
             ld   => $ld,
             link => $link,
         );

Modified: branches/ops_pct/config/init/optimize.pm
==============================================================================
--- branches/ops_pct/config/init/optimize.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/init/optimize.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -74,17 +74,6 @@
     $conf->data->set( cc_debug => '' );
     $conf->data->add( ' ', ccflags => "-DDISABLE_GC_DEBUG=1 -DNDEBUG" );
 
-    # per file overrides - not every compiler can optimize every file.
-
-    # The src/ops/core_ops*.c files are challenging to optimize.
-    # gcc can usually handle it, but don't assume any other compilers can,
-    # until there is specific evidence otherwise.
-    if ( ! defined($gccversion)) {
-        $conf->data->set('optimize::src/ops/core_ops_cg.c','');
-        $conf->data->set('optimize::src/ops/core_ops_cgp.c','');
-        $conf->data->set('optimize::src/ops/core_ops_switch.c','');
-    }
-
     # TT #405
     if ($conf->data->get('cpuarch') eq 'amd64') {
         $conf->data->set('optimize::src/gc/system.c','');

Modified: branches/ops_pct/config/inter/progs.pm
==============================================================================
--- branches/ops_pct/config/inter/progs.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/config/inter/progs.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -75,7 +75,7 @@
     my ($conf, $ask) = @_;
     # Set each variable individually so that hints files can use them as
     # triggers to help pick the correct defaults for later answers.
-    my ( $cc, $cxx, $link, $ld, $ccflags, $linkflags, $ldflags, $libs, $lex, $yacc );
+    my ( $cc, $link, $ld, $ccflags, $linkflags, $ldflags, $libs, $lex, $yacc );
     $cc = integrate( $conf->data->get('cc'), $conf->options->get('cc') );
     $cc = prompt( "What C compiler do you want to use?", $cc )
         if $ask;
@@ -124,9 +124,6 @@
         if $ask;
     $conf->data->set( libs => $libs );
 
-    $cxx = integrate( $conf->data->get('cxx'), $conf->options->get('cxx') );
-    $cxx = prompt( "What C++ compiler do you want to use?", $cxx ) if $ask;
-    $conf->data->set( cxx => $cxx );
     return ($conf, $cc);
 }
 

Modified: branches/ops_pct/docs/book/draft/appc_command_line_options.pod
==============================================================================
--- branches/ops_pct/docs/book/draft/appc_command_line_options.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/book/draft/appc_command_line_options.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -260,18 +260,6 @@
 
 Run with the I<fast core>.
 
-=item -R cgoto
-
-Run the I<computed goto core> (CGoto).
-
-=item -R cgp
-
-Run with the I<CGoto-Prederefed> core.
-
-=item -R switch
-
-Run with the I<Switched core>.
-
 =item -R gcdebug
 
 Performs a full GC run before every op dispatch

Modified: branches/ops_pct/docs/book/draft/ch07_dynpmcs.pod
==============================================================================
--- branches/ops_pct/docs/book/draft/ch07_dynpmcs.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/book/draft/ch07_dynpmcs.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -195,7 +195,7 @@
 =head3 VTABLE Functions Parameters
 
 VTABLE functions are defined just like ordinary C functions, almost. Here's
-a normal definition for a VTABLE method:
+a normal definition for a VTABLE function:
 
   VTABLE VTABLENAME (PARAMETERS) {
     /* ordinary C here, almost */

Modified: branches/ops_pct/docs/book/draft/chXX_hlls.pod
==============================================================================
--- branches/ops_pct/docs/book/draft/chXX_hlls.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/book/draft/chXX_hlls.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -211,9 +211,9 @@
 
 =over 4
 
-=item * VTable methods
+=item * VTable Functions
 
-VTable methods are the standard interface for PMC data types, and all PMCs
+VTable functions are the standard interface for PMC data types, and all PMCs
 have them. If the PMCs were written properly to satisfy this interface
 all the necessary information from those PMCs. Operate on the PMCs at the
 VTable level, and we can safely ignore the implementation details of them.

Modified: branches/ops_pct/docs/configuration.pod
==============================================================================
--- branches/ops_pct/docs/configuration.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/configuration.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -123,10 +123,6 @@
 
 =over 4
 
-=item F<config/auto/cgoto.pm>
-
-    Does your compiler support computed goto...
-
 =item F<gen/config_h.pm>
 
     Generate C headers...
@@ -136,7 +132,7 @@
 Note that on non-interactive steps, the text I<done> will be printed after the
 description when the step finishes executing; for example, the user will see:
 
-    Does your compiler support computed goto..............done.
+    Determine flags for building shared libraries.....-fPIC
 
 =item C<result>
 

Modified: branches/ops_pct/docs/dev/infant.pod
==============================================================================
--- branches/ops_pct/docs/dev/infant.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/dev/infant.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -142,15 +142,15 @@
  + Fast mark phase (GC already manipulates the flags)
  - Generation count must be maintained
  - Disallows recursive opcode calls (necessary for eg implementing
-   vtable methods in pasm)
+   vtable functions in pasm)
  - Can temporarily use more memory (dead objects accumulate during the
    current generation)
 
 In order to allow recursive opcode calls, we could increment the generation
 count in more places and make sure nothing is left unanchored at those points,
 but that would gradually remove all advantages of this scheme and make it more
-difficult to call existing vtable methods (since you never know when they might
-start running pasm code.)
+difficult to call existing vtable functions (since you never know when they
+might start running pasm code.)
 
 =head2 Variant 5: generation stack
 

Modified: branches/ops_pct/docs/dev/pccmethods.pod
==============================================================================
--- branches/ops_pct/docs/dev/pccmethods.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/dev/pccmethods.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -10,7 +10,7 @@
 A C<PCCMETHOD> is a PMC method that follows Parrot Calling Conventions
 (a.k.a. PCC). This allows PIR code to call PMC methods using slurpy, named,
 and other types of arguments as specified in F<PDD03>. This offers flexibility
-not found in a PMC C<METHOD> or a vtable method using C calling conventions.
+not found in a PMC C<METHOD> or a vtable function using C calling conventions.
 
 C<PCCINVOKE> is used to call a method using the Parrot Calling Conventions.
 It uses the standard find_method/invoke approach that the callmethodcc opcode
@@ -113,7 +113,7 @@
 
 =head2 Performance
 
-When a C<METHOD> or vtable method is called, C<NCI> is used to map the
+When a C<METHOD> or vtable function is called, C<NCI> is used to map the
 arguments held in the current Parrot_Context onto the C calling conventions.
 That is, you still end up involving the Parrot Calling Conventions anyway,
 so there is no reason to expect a C<PCCMETHOD> to be any slower. It may well

Modified: branches/ops_pct/docs/dev/pmc_freeze.pod
==============================================================================
--- branches/ops_pct/docs/dev/pmc_freeze.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/dev/pmc_freeze.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -79,7 +79,7 @@
 =head2 The visit_info structure
 
 This structure holds all necessary information and function pointers specific
-to the desired functionality. It gets passed on to all vtable methods and
+to the desired functionality. It gets passed on to all vtable functions and
 callback functions.
 
 =head2 Working loop
@@ -99,7 +99,7 @@
 This is done by a callback function inside the B<visit_info> structure called
 B<visit_pmc_now>. It gets called initially to put the first item on the list
 and is called thereafter from all PMCs for contained PMCs inside the B<visit>
-vtable method.
+vtable function.
 
 
 =head2 The visit() vtable
@@ -140,19 +140,19 @@
 
 So after all we finally arrived at the point to actually perform the desired
 functionality. First the PMC-specific part is done inside F<pmc_freeze.c> then
-the specific vtable method B<freeze>, B<thaw>, whatever, is called, again via a
-function pointer called B<visit_action>.
+the specific vtable function B<freeze>, B<thaw>, whatever, is called, again
+via a function pointer called B<visit_action>.
 
 =head1 Freeze and thaw
 
 As stated PMCs are currently processed inside the core, PMC-specific parts are
-done by calling the PMCs vtable method. This parts could of course be moved to
+done by calling the PMCs vtable function. This parts could of course be moved to
 F<default.pmc> too, so that it's simpler to override the functionality.
 
 =head2 Serializer interface
 
 During initialization the B<visit_info>s B<image_io> data pointer is filled
-with an object having B<vtable> methods that remarkably look like a PMCs
+with an object having B<vtable> functions that remarkably look like a PMCs
 vtable. So B<io-E<gt>vtable-E<gt>push_integer> spits out an INTVAL to the
 frozen B<image>, while B<shift_integer> gets an INTVAL from the frozen stream.
 

Modified: branches/ops_pct/docs/dev/pmc_obj_design_meeting_notes.pod
==============================================================================
--- branches/ops_pct/docs/dev/pmc_obj_design_meeting_notes.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/dev/pmc_obj_design_meeting_notes.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -60,7 +60,7 @@
 statically calls the method in the current class.
 
 B<Recommendation>: Throughout the source, rename SELF to STATIC_SELF, and
-rename DYNSELF to SELF. Additionally, direct access to VTABLE methods should
+rename DYNSELF to SELF. Additionally, direct access to VTABLE functions should
 be reviewed, and SELF should be used where possible to increase clarity and
 maintainability (this is a good CAGE task.) Also, this should become a coding
 standard for PMCs.

Modified: branches/ops_pct/docs/dev/profiling.pod
==============================================================================
--- branches/ops_pct/docs/dev/profiling.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/dev/profiling.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -55,6 +55,19 @@
 profiling runcore to run more slowly.  By default, they are disabled.  Set this
 value to enable them.
 
+=item C<PARROT_PROFILING_CANONICAL_OUPUT> 
+
+When this is set, the profiling runcore will record all addresses as a single
+constant value and all times as 1.  This options is useful primarily for
+testing, where it's helpful to have a way to ensure that a given chunk of code
+will always produce exactly the same profile.  If you want this feature
+enabled, you also probably want to pass a fixed hash seed to Parrot via
+C<--hash-seed 1324> to avoid any non-deterministic behavior that hash seed
+randomization may cause.
+
+This variable is not useful apart from testing the profiling runcore and will
+most certainly not help you find hotspots in your code.
+
 =back
 
 =cut

Modified: branches/ops_pct/docs/embed.pod
==============================================================================
--- branches/ops_pct/docs/embed.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/embed.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -145,12 +145,6 @@
 
 =item PARROT_FAST_CORE
 
-=item PARROT_SWITCH_CORE
-
-=item PARROT_CGP_CORE
-
-=item PARROT_CGOTO_CORE
-
 =item PARROT_EXEC_CORE
 
 =item PARROT_GC_DEBUG_CORE
@@ -236,7 +230,7 @@
 Creates a "dummy" packfile in lieu of actually creating one from a bytecode
 file on disk.
 
-=item C<void Parrot_load_bytecode(PARROT_INTERP, const char *path)>
+=item C<void Parrot_load_bytecode(PARROT_INTERP, STRING *path)>
 
 Reads and load Parrot bytecode or PIR from the file referenced by C<path>.
 You should create a dummy packfile beforehand; see C<PackFile_new_dummy> for
@@ -1551,8 +1545,6 @@
 
 =item C<Parrot_store_sub_in_namespace>
 
-=item C<Parrot_str_append>
-
 =item C<Parrot_str_boolean>
 
 =item C<Parrot_str_byte_length>

Modified: branches/ops_pct/docs/intro.pod
==============================================================================
--- branches/ops_pct/docs/intro.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/intro.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -391,7 +391,7 @@
 
 =begin PIR_FRAGMENT
 
-  .local pmc result, factorial
+  .local int result
   result = factorial($I0)
 
 =end PIR_FRAGMENT

Modified: branches/ops_pct/docs/parrothist.pod
==============================================================================
--- branches/ops_pct/docs/parrothist.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/parrothist.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -104,4 +104,7 @@
 
  chromatic   2.0.0 *        2010-Jan-19     "Inevitable"
  darbelo     2.1.0          2010-Feb-16     "As Scheduled"
+ cotto       2.2.0          2010-Mar-16     "Like Clockwork"
+
+ Gerd        2.3.0 *        2010-Apr-20     "Samoan Lory"
 =cut

Modified: branches/ops_pct/docs/pdds/draft/pdd01_overview.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd01_overview.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd01_overview.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 1: Overview
@@ -190,7 +190,7 @@
 bytecode and save it for later use. Essentially, we would compile a program as
 normal, but then simply freeze the bytecode to disk for later loading.
 
-=head3 Your HLL in, Java, CLI, or whatever out
+=head3 Your HLL in; Java, CLI, or whatever out
 
 The previous section assumes that we will be emitting Parrot bytecode.
 However, there are other possibilities: we could translate the bytecode
@@ -200,7 +200,7 @@
 
 =head2 References
 
-To come.
+None.
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/draft/pdd05_opfunc.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd05_opfunc.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd05_opfunc.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 5: Opcodes
@@ -13,6 +13,10 @@
 
 {{ NOTE: standardize on underscores or no underscores? }}
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 The opcode functions are the workhorse of the Parrot engine. They control
@@ -169,34 +173,7 @@
 
 =head2 References
 
-Oploop PDD, PDD 4 (Internal types)
-
-=head2 Footnotes
-
-None.
-
-=head2 Version
-
-1.0
-
-=head3 Current
-
-    Maintainer: Dan Sugalski <dan at sidhe.org>
-    Class: Internals
-    PDD Number: 5
-    Version: 1.0
-    Status: Developing
-    Last Modified: 16 Jul 2001
-    PDD Format: 1
-    Language: English
-
-=head3 History
-
-None. First version
-
-=head2 Changes
-
-None. First version
+Oploop PDD, PDD 4 (Internal types).
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd06_pasm.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 6: Parrot Assembly Language (PASM)
@@ -7,6 +7,10 @@
 
 The format of Parrot's bytecode assembly language.
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 Parrot's bytecode can be thought of as a form of machine language for a
@@ -172,8 +176,8 @@
 where register_type is 0x100, 0x200, 0x400, or 0x800 for PMC, string, integer,
 or number respectively. So N19 would be 0x413.
 
-B<Note>: Instructions tagged with a * will call a vtable method to handle the
-instruction if used on PMC registers.
+B<Note>: Instructions tagged with a * will call a vtable function to handle
+the instruction if used on PMC registers.
 
 In all cases, the letters x, y, and z refer to register numbers. The letter t
 refers to a generic register (P, S, I, or N). A lowercase p, s, i, or n means
@@ -244,7 +248,7 @@
 
     $foo = $bar;
 
-X's assign vtable method is invoked and it does whatever is appropriate.
+X's assign vtable function is invoked and it does whatever is appropriate.
 
 =item clone Px, Py
 
@@ -1006,186 +1010,10 @@
 
 =back
 
-=head2 Attachments
-
-None.
-
 =head2 References
 
 None.
 
-=head2 Version
-
-1.9
-
-=head3 Current
-
-    Maintainer: Dan Sugalski
-    Class: Internals
-    PDD Number: 6
-    Version: 1.9
-    Status: Developing
-    Last Modified: 28 February 2007
-    PDD Format: 1
-    Language: English
-
-=head3 History
-
-=over 4
-
-=item Version 1.9
-
-February 28, 2007
-
-=item Version 1.8
-
-December 11, 2002
-
-=item Version 1.7
-
-December 02, 2002
-
-=item Version 1.6
-
-November 05, 2001
-
-=item Version 1.5
-
-October 12, 2001
-
-=item Version 1.4
-
-September 24, 2001
-
-=item Version 1.3
-
-September 12, 2001
-
-=item Version 1.2
-
-August 25, 2001
-
-=item Version 1.1
-
-August 8, 2001
-
-=item version 1
-
-None. First version
-
-=back
-
-=head2 Changes
-
-=over 4
-
-=item Version 1.9
-
-=over 4
-
-=item * Removed remark on "upper case names reserved for directives"
-
-=item * Fixed ".sub" directive, should be ".pcc_sub"
-
-=item * Added constant directive in description.
-
-=item * Added grammar overview.
-
-=back
-
-=item Version 1.8
-
-=over 4
-
-=item * Added property ops
-
-=item * Fixed some bad register designations
-
-=item * Opened up opcode name character list to include numbers
-
-=back
-
-=item Version 1.7
-
-=over 4
-
-=item * Fixed stack ops; push, pop, and clear properly documented according to
-the engine's behaviour now.
-
-=back
-
-=item Version 1.6
-
-=over 4
-
-=item * Added GC opcodes
-
-=back
-
-=item Version 1.5
-
-=over 4
-
-=item * Now have a bsr in addition to a jsr
-
-=item * return is now ret
-
-=item * Added save and restore ops for saving and restoring individual
-registers
-
-=back
-
-=item Version 1.4
-
-=over 4
-
-=item * Conditional branches have just a true destination now
-
-=item * Added the I/O ops
-
-=item * Added in the threading ops
-
-=item * Added in the interpreter ops
-
-=back
-
-=item Version 1.3
-
-=over 4
-
-=item * Added in the low-level module loading ops
-
-=item * Added in transcendental functions and modulo
-
-=item * Finished the pad/global variable fetching bits
-
-=back
-
-=item Version 1.2
-
-We have an interpreter now! Yay! (Okay, a simple one, but still...) Changes
-made to reflect that.
-
-=item Version 1.1
-
-=over 4
-
-=item * Added in object
-
-=item * Changed remnants of "perl" to "Parrot"
-
-=item * Branch destination may be integer constant
-
-=item * Added L<Assembly Syntax> section
-
-=back
-
-=item Version 1.0
-
-None. First version
-
-=back
-
 =cut
 
 __END__

Modified: branches/ops_pct/docs/pdds/draft/pdd08_keys.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd08_keys.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd08_keys.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 8: PMC Keys
@@ -8,6 +8,10 @@
 This PDD aims to clear up the confusion regarding the implementation of keyed
 access to PMCs in Parrot.
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 First, let's define some terminology. An C<aggregate PMC> is one which stores
@@ -91,9 +95,9 @@
 =head3 Aggregate and non-aggregate PMCs
 
 We've already said that what separates the aggregate PMCs from the
-non-aggregates is their implementation of the C<_keyed> vtable methods. So it
-is Hereby Decreed that the default vtable which everyone inherits from defines
-the C<_keyed> forms to throw an exception.
+non-aggregates is their implementation of the C<_keyed> vtable functions. So
+it is Hereby Decreed that the default vtable which everyone inherits from
+defines the C<_keyed> forms to throw an exception.
 
 =over 3
 
@@ -105,11 +109,11 @@
 
 =back
 
-=head3 C<_keyed> vtable methods
+=head3 C<_keyed> vtable functions
 
-So what of these magical C<_keyed> vtable methods? They are generated when you
-add the C<keyed> tag to the appropriate entry in F<src/vtable.tbl>. They are
-constructed by following B<every> C<PMC> argument with a second C<PMC>
+So what of these magical C<_keyed> vtable functions? They are generated when
+you add the C<keyed> tag to the appropriate entry in F<src/vtable.tbl>. They
+are constructed by following B<every> C<PMC> argument with a second C<PMC>
 argument which acts as the key for that argument; the name of the second
 C<PMC> argument is formed by adding C<_key> onto the end of the first C<PMC>
 argument.
@@ -123,8 +127,8 @@
 
     $a = @b[$c]
 
-use the same vtable method, reducing the multiplicity of methods.  Secondly, a
-three-argument C<assign> as suggested by the code above would be ambiguous -
+use the same vtable function, reducing the multiplicity of methods. Secondly,
+a three-argument C<assign> as suggested by the code above would be ambiguous -
 the code above uses 3 PMCs in different ways.
 
 Also, operations which take an aggregate key for one of their arguments should
@@ -265,44 +269,9 @@
 The type values shown above are actually the C<PARROT_ARG_*> values taken from
 F<include/parrot/op.h>.
 
-=head2 Version
-
-=head3 Current
-
-   Maintainer: Simon Cozens <simon at netthink.co.uk>
-   Class: Internals
-   PDD Number: 8
-   Version: 1.3
-   Status: Developing
-   Last Modified: 25 August, 2002
-   PDD Format: 1
-   Language: English
-
-=head3 History
-
-=over 4
-
-=item Sun Aug 25 11:14:43 GMT 2002 : Version 1.3
-
-Updated to reflect Dan's decision to change keys to use PMCs instead of a
-custom data structure. Also corrects documentation of multi-level keys and how
-they are compiled and work. tom at compton.nu.
-
-=item Thu Apr 25 18:30:36 UTC 2002 : Version 1.2
-
-Renamed C<KEY_PAIR> to C<KEY_ATOM>, updated to reflect changeover to linked
-list. - steve at fink.com
-
-=item Fri Mar  8 18:47:34 GMT 2002 : Version 1.1
-
-updated to reflect Dan's comments that non-aggregates also support C<_keyed>
-variant vtable methods.
-
-=back
-
 =head2 References
 
-To come.
+None.
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/draft/pdd10_embedding.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd10_embedding.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd10_embedding.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (c) 2001-2009, Parrot Foundation.
+# Copyright (c) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD10: Embedding and Extending
@@ -74,7 +74,7 @@
 
 =back
 
-=item * probably includes vtable methods on PMCs
+=item * probably includes vtable functions on PMCs
 
 =back
 
@@ -219,8 +219,9 @@
 Compiling source code generated or read from the host application is also
 possible:
 
-  Parrot_PMC Parrot_compile_string( Parrot_Interp, const char *compiler,
-                                                   const char *code );
+  Parrot_PMC Parrot_compile_string( Parrot_Interp, Parrot_String compiler,
+                                                   const char *code,
+                                                   Parrot_String error );
 
 The potential return values are the same as for loading code from disk.
 
@@ -244,17 +245,9 @@
 such that it is possible to load source code written in that language or pass
 source code to an interpreter successfully.
 
-=head2 Attachments
-
-Any associated documents.
-
-=head2 Footnotes
-
-List of footnotes to the text.
-
 =head2 References
 
-List of references.
+None.
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/draft/pdd11_extending.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd11_extending.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd11_extending.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 11: Extending
@@ -9,6 +9,10 @@
 Parrot for code written in C or other compiled languages. It provides about
 the same level of access to Parrot  that bytecode programs have.
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 The API presents to C programs roughly the same interface presented to
@@ -198,6 +202,42 @@
 characters of C<value> to a Parrot_String and assigns the resulting string to
 the PMC stored at element <key> of the passed-in PMC.
 
+=item C<Parrot_PMC_push_float( interp, Parrot_PMC pmc, Parrot_Float value )>
+
+Push a float onto an aggregate PMC, such as a ResizablePMCArray.
+Returns void.
+
+=item C<Parrot_PMC_push_integer( interp, Parrot_PMC pmc, Parrot_Int value )>
+
+Push a integer onto an aggregate PMC, such as a ResizableIntegerArray.
+Returns void.
+
+=item C<Parrot_PMC_push_pmc( interp, Parrot_PMC pmc, Parrot_PMC value )>
+
+Push a PMC value onto an aggregate PMC, such as a ResizablePMCArray.
+Returns void.
+
+=item C<Parrot_PMC_push_string( interp, Parrot_PMC pmc, Parrot_String value )>
+
+Push a Parrot_String onto an aggregate PMC, such as a ResizableStringArray.
+Returns void.
+
+=item C<Parrot_PMC_pop_float( interp, Parrot_PMC pmc )>
+
+Pop a Parrot_Float off of an aggregate PMC and returns it.
+
+=item C<Parrot_PMC_pop_integer( interp, Parrot_PMC pmc )>
+
+Pop a Parrot_Int off of an aggregate PMC and returns it.
+
+=item C<Parrot_PMC_pop_pmc( interp, Parrot_PMC pmc )>
+
+Pop a PMC off of an aggregate PMC and returns it.
+
+=item C<Parrot_PMC_pop_string( interp, Parrot_PMC pmc )>
+
+Pop a Parrot_String off of an aggregate PMC and returns it.
+
 =back
 
 =head4 Creation and destruction
@@ -313,51 +353,10 @@
 
 =back
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
 F<docs/glossary.pod>
 
-=head2 Version
-
-=head3 Current
-
-    Maintainer:
-    Class: Internals
-    PDD Number: 11
-    Version: 1.0
-    Status: Developing
-    Last Modified: February 20, 2004
-    PDD Format: 1
-    Language: English
-
-=head3 History
-
-=over 4
-
-=item Version 1
-
-None. First version
-
-=back
-
-=head2 Changes
-
-=over 4
-
-=item Version 1.0
-
-None. First version
-
-=back
-
 =cut
 
 __END__

Modified: branches/ops_pct/docs/pdds/draft/pdd14_numbers.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd14_numbers.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd14_numbers.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 14: Numbers
@@ -574,10 +574,6 @@
 suitable opcodes.  Conversion to and from Parrot strings, conversion to and
 from floating point types, sprintf output of bignumbers.
 
-=head2 Attachments
-
-=head2 Footnotes
-
 =head2 References
 
 IBM's Standard Decimal Arithmetic, with tests

Modified: branches/ops_pct/docs/pdds/draft/pdd16_native_call.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd16_native_call.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd16_native_call.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 16: Native Call Interface (NCI)
@@ -8,6 +8,10 @@
 This PDD describes the native call interface, and the function signatures used
 to describe those functions.
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 The NCI is designed to allow Parrot to interface to I<most> of the functions
@@ -313,50 +317,15 @@
   }
 
 The file containing this C code should be compiled as a shared library
-(specifying the C<include> directory so C<<parrot/parrot.h>> can be found.)
+(specifying the C<include> directory so F<parrot/parrot.h> can be found.)
 
 =head2 References
 
-L<pdd06_pasm.pod>
+F<pdd06_pasm.pod>
 
 =head2 See Also
 
-L<t/pmc/nci.t>, L<src/nci_test.c>
-
-=head2 Version
-
-=head3 Current
-
-    Maintainer: Dan Sugalski
-    Class: Internals
-    PDD Number: 16
-    Version: 1.3
-    Status: Developing
-    Last Modified: Feb 26, 2007
-    PDD Format: 1
-    Language: English
-
-=head3 History
-
-=over 4
-
-=item version 1.3
-
-Updated with example for callbacks
-
-=item version 1.2
-
-Updated with basic example for NCI.
-
-=item version 1.1
-
-Changed callback section to reflect current status.
-
-=item version 1
-
-None. First version
-
-=back
+F<t/pmc/nci.t>, F<src/nci_test.c>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/draft/pdd29_compiler_tools.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd29_compiler_tools.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd29_compiler_tools.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,16 +1,15 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 29: Compiler Tools
 
-=head2 Version
+=head2 Abstract
 
-$Revision$
+This PDD specifies the Parrot Compiler Tools (PCT).
 
-=head2 Maintainer
+=head2 Version
 
-Will "Coke" Coleda
-Klaas-Jan Stol
+$Revision$
 
 =head2 Definitions
 
@@ -23,10 +22,6 @@
 
 A High-Level Language. Examples are: Perl, Ruby, Python, Lua, Tcl, etc.
 
-=head2 Abstract
-
-This PDD specifies the Parrot Compiler Tools (PCT).
-
 =head2 Synopsis
 
 Creating a PCT-based compiler can be done as follows:
@@ -356,15 +351,9 @@
 
 =back
 
-=head2 Attachments
-
-None.
-
 =head2 References
 
-docs/pdd26_ast.pod
-
-http://dev.perl.org/perl6/doc/design/syn/S05.html
+F<docs/pdd26_ast.pod>, L<http://dev.perl.org/perl6/doc/design/syn/S05.html>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/draft/pdd31_hll.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd31_hll.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd31_hll.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,17 +1,17 @@
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 31: HLL Compilers and Libraries
 
-=head2 Version
-
-$Revision$
-
 =head2 Abstract
 
 This PDD describes the standard compiler API and support for
 cross-library communication between high-level languages (HLLs).
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 Parrot's support for HLL interoperability is primarily focused on
@@ -299,7 +299,7 @@
 
 =head2 References
 
-L<pdd21_namespaces.pod>
+F<pdd21_namespaces.pod>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/draft/pdd31_hll_interop.pod
==============================================================================
--- branches/ops_pct/docs/pdds/draft/pdd31_hll_interop.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/draft/pdd31_hll_interop.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,18 +1,18 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 
 =head1 [DRAFT] PDD 31: Inter-Language Calling
 
-=head2 Version
-
-$Revision$
-
 =head2 Abstract
 
 This PDD describes Parrot's conventions and support for communication between
 high-level languages (HLLs).  It is focused mostly on what implementors should
 do in order to provide this capability to their users.
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 The ability to mix different high-level languages at runtime has always been

Modified: branches/ops_pct/docs/pdds/pdd00_pdd.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd00_pdd.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd00_pdd.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,17 +1,17 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 0: Design Document Format
 
-=head2 Version
-
-$Revision$
-
 =head2 Abstract
 
 This document defines the content and format of Parrot Design Documents
 (PDDs).
 
+=head2 Version
+
+$Revision$
+
 =head2 Synopsis
 
 Not applicable.
@@ -99,13 +99,6 @@
 Document version.  Since Parrot is currently kept in a Subversion repository,
 the $$-delimited keyword "Revision" will do nicely.
 
-=item Maintainer I<(optional)>:
-
-The name and current email address for the point of contact for the PDD. This
-is the person to whom questions, comments, and patches should generally be
-addressed. This need not be the author of the document.  By default, all PDDs
-are maintained by the Parrot Architect.
-
 =item Abstract:
 
 A quick blurb explaining the purpose of the PDD.
@@ -149,6 +142,7 @@
 Proposed PDDs should be submitted to the parrot-dev mailing list (located
 at parrot-dev at lists.parrot.org) for discussion, criticism and general
 kibitzing.
+
 Acceptance of a particular PDD is ultimately up to the Parrot Architect.
 
 =head3 PDD Translations
@@ -159,22 +153,14 @@
 
 =item *
 
-The C<Maintainer> section should record who made the translation.
-
-=item *
-
-The C<Version> section should include an additional note of the translation
+The C<Version> section should include an additional note of the translated
 version.
 
 =back
 
-=head2 Attachments
-
-(none)
-
 =head2 References
 
-(none)
+None.
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd03_calling_conventions.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd03_calling_conventions.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd03_calling_conventions.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 3: Calling Conventions
@@ -391,13 +391,9 @@
 
 =end PIR_FRAGMENT
 
-=head2 Attachments
-
-None.
-
 =head2 References
 
-L<pdd23_exceptions.pod>
+F<pdd23_exceptions.pod>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd07_codingstd.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd07_codingstd.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd07_codingstd.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 7: Conventions and Guidelines for Parrot Source Code
@@ -1006,7 +1006,7 @@
 
 =head2 References
 
-none
+None.
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd09_gc.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd09_gc.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd09_gc.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 9: Garbage Collection Subsystem
@@ -295,7 +295,7 @@
 subsystem, including how many GC runs have been completed, amount of memory
 allocated since the last run, and total memory allocated. This accounting
 information is updated by the GC system. The current block level for GC mark
-and sweep phases is stored in the C<Memory_Pools> structure. 
+and sweep phases is stored in the C<Memory_Pools> structure.
 (See L<Blocking GC>.)
 
 The pointer C<void *gc_private> is reserved for use by the currently active GC
@@ -303,18 +303,18 @@
 
 =head4 The Var_Size_Pool structure
 
-The C<Var_Size_Pool> structure is a simple memory pool. It contains a pointer 
+The C<Var_Size_Pool> structure is a simple memory pool. It contains a pointer
 to the top block of the allocated pool, the total allocated size of the pool,
-the block size, and some details on the reclamation characteristics of the 
+the block size, and some details on the reclamation characteristics of the
 pool.
 
 =head4 The Fixed_Size_Pool structure
 
-The C<Fixed_Size_Pool> structure is a richer memory pool for object 
-allocation. It tracks details like the number of allocated and free objects 
-in the pool, a list of free objects, and for the generational GC 
-implementation maintains linked lists of white, black, and gray PMCs. It 
-contains a pointer to a simple C<Var_Size_Pool> (the base storage of the 
+The C<Fixed_Size_Pool> structure is a richer memory pool for object
+allocation. It tracks details like the number of allocated and free objects
+in the pool, a list of free objects, and for the generational GC
+implementation maintains linked lists of white, black, and gray PMCs. It
+contains a pointer to a simple C<Var_Size_Pool> (the base storage of the
 pool). It holds function pointers for adding and retrieving free objects in
 the pool, and for allocating objects.
 
@@ -350,7 +350,7 @@
 
 =head4 Memory_Pools structure function pointers
 
-Each GC system declares 3 function pointers, stored in the Memory_Pools 
+Each GC system declares 3 function pointers, stored in the Memory_Pools
 structure.
 
 =over 4
@@ -421,8 +421,8 @@
 =item C<void (*finalize_gc_system) (Interp *)>
 
 Called during interpreter destruction. Free used resources and memory pools.
-All PMCs must be swept, and PMCs with custom destroy VTABLE methods must have
-those called.
+All PMCs must be swept, and PMCs with custom destroy VTABLE functions must
+have those called.
 
 =item C<void (*init_pool) (Interp *, Fixed_Size_Pool *)>
 
@@ -563,7 +563,7 @@
 The C<mark> vtable slot will be called during the GC mark phase. The mark
 function must call C<Parrot_gc_mark_PObj_alive> for all non-NULL objects
 (Buffers and PMCs) that PMC refers to. This flag is typically tested and the
-custom mark VTABLE method called from C<src/gc/api.c:mark_special>.
+custom mark VTABLE function called from C<src/gc/api.c:mark_special>.
 
 =item PObj_external_FLAG
 
@@ -602,36 +602,28 @@
 
 =back
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
 "Uniprocessor Garbage Collection Techniques"
-http://www.cs.rice.edu/~javaplt/311/Readings/wilson92uniprocessor.pdf
+L<http://www.cs.rice.edu/~javaplt/311/Readings/wilson92uniprocessor.pdf>
 
 "A unified theory of garbage collection":
-http://portal.acm.org/citation.cfm?id=1028982
+L<http://portal.acm.org/citation.cfm?id=1028982>
 
 "Scalable Locality-Conscious Multithreaded Memory Allocation":
-http://people.cs.vt.edu/~scschnei/papers/ismm06.pdf
+L<http://people.cs.vt.edu/~scschnei/papers/ismm06.pdf>
 
 "Parallel and concurrent garbage collectors":
-http://chaoticjava.com/posts/parallel-and-concurrent-garbage-collectors/
+L<http://chaoticjava.com/posts/parallel-and-concurrent-garbage-collectors/>
 
 "Region-Based Memory Management":
-http://www.irisa.fr/prive/talpin/papers/ic97.pdf
+L<http://www.irisa.fr/prive/talpin/papers/ic97.pdf>
 
 Dan's first musings on the GC subsystem:
-http://www.mail-archive.com/perl6-all@perl.org/msg14072.html
+L<http://www.mail-archive.com/perl6-all@perl.org/msg14072.html>
 
 Semi-timely and ordered destruction:
-http://www.sidhe.org/~dan/blog/archives/000199.html
+L<http://www.sidhe.org/~dan/blog/archives/000199.html>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd15_objects.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd15_objects.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd15_objects.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 15: Objects and Classes
@@ -1630,11 +1630,6 @@
 
 =end html
 
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
 None.

Modified: branches/ops_pct/docs/pdds/pdd17_pmc.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd17_pmc.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd17_pmc.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,17 +1,17 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 17: Polymorphic Containers
 
-=head2 Version
-
-$Revision$
-
 =head2 Abstract
 
 This PDD describes the internal structure and behavior of the Polymorphic
 Container (PMC) data type.
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 PMCs implement all internal data types more complex than a simple integer,
@@ -1656,8 +1656,8 @@
 =head4 Array types
 
 Note that for the following types you can set the size of the array by using
-the VTABLE_set_integer_native() method. Assigning an integer to the array as a
-whole sets the array to that size.
+the VTABLE_set_integer_native() function. Assigning an integer to the array
+as a whole sets the array to that size.
 
 Size-changing operations (such as push, pop, shift, unshift, and splice)
 on statically-sized arrays will throw an exception.
@@ -1809,17 +1809,9 @@
 
 =back
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
-  docs/pmc2c.pod
+F<docs/pmc2c.pod>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd18_security.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd18_security.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd18_security.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 18: Security Model
@@ -217,19 +217,13 @@
 form is standard across high-level languages running on Parrot, the tools can
 be written once and applied to many languages.
 
-=head2 Attachments
-
-
-=head2 Footnotes
-
-
 =head2 References
 
-"Exploring the Broken Web": http://talks.php.net/show/osdc07
+"Exploring the Broken Web": L<http://talks.php.net/show/osdc07>
 
-"Safe ERB": http://agilewebdevelopment.com/plugins/safe_erb
+"Safe ERB": L<http://agilewebdevelopment.com/plugins/safe_erb>
 
-pecl/filter: http://us2.php.net/filter
+pecl/filter: L<http://us2.php.net/filter>
 
 Rasmus Lerdorf for the term "data firewall".
 

Modified: branches/ops_pct/docs/pdds/pdd19_pir.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd19_pir.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd19_pir.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,18 +1,17 @@
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 19: Parrot Intermediate Representation (PIR)
 
-=head2 Version
-
-$Revision$
-
-
 =head2 Abstract
 
 This document outlines the architecture and core syntax of Parrot
 Intermediate Representation (PIR).
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 PIR is a stable, middle-level language intended both as a target for the
@@ -1444,18 +1443,9 @@
 
 =back
 
-
-=head2 Attachments
-
-N/A
-
-=head2 Footnotes
-
-N/A
-
 =head2 References
 
-N/A
+None.
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd20_lexical_vars.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd20_lexical_vars.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd20_lexical_vars.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,17 +1,17 @@
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 20: Lexical Variables
 
-=head2 Version
-
-$Revision$
-
 =head2 Abstract
 
 This document defines the requirements and implementation strategy for
 lexically scoped variables.
 
+=head2 Version
+
+$Revision$
+
 =head2 Synopsis
 
 =begin PIR
@@ -402,23 +402,9 @@
 
 TK.
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
-=over 4
-
-=item [1]
-
-t/op/lexicals.t
-
-=back
+F<t/op/lexicals.t>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd21_namespaces.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd21_namespaces.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd21_namespaces.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,16 +1,16 @@
-# Copyright (C) 2005-2007, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 21: Namespaces
 
-=head2 Version
-
-$Revision$
-
 =head2 Abstract
 
 Description and implementation of Parrot namespaces.
 
+=head2 Version
+
+$Revision$
+
 =head2 Description
 
 =over 4
@@ -737,14 +737,6 @@
 
 =end PIR
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
 None.

Modified: branches/ops_pct/docs/pdds/pdd22_io.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd22_io.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd22_io.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 22: I/O
@@ -1038,14 +1038,6 @@
 (http://www.ietf.org/rfc/rfc4038.txt) and "Basic Socket Interface
 Extensions for IPv6" (http://www.ietf.org/rfc/rfc3493.txt).
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 Links
 
 L<http://en.wikipedia.org/wiki/Asynchronous_I/O> for a relatively
@@ -1053,14 +1045,9 @@
 
 =head2 References
 
-  F<src/io/core.c>
-  F<src/ops/io.ops>
-  F<include/parrot/io.h>
-  F<runtime/parrot/library/Stream/*>
-  F<src/io/unix.c>
-  F<src/io/win32.c>
-  Perl 5's IO::AIO
-  Perl 5's POE
+F<src/io/core.c>, F<src/ops/io.ops>, F<include/parrot/io.h>, 
+F<runtime/parrot/library/Stream/*>, F<src/io/unix.c>, F<src/io/win32.c>,
+Perl 5's IO::AIO, and POE
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd23_exceptions.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd23_exceptions.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd23_exceptions.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 23: Exceptions
@@ -447,20 +447,10 @@
 
 =end PIR_FRAGMENT
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
-  src/ops/core.ops
-  src/exceptions.c
-  src/pmc/exception.pmc
-  src/pmc/exceptionhandler.pmc
+F<src/ops/core.ops>, F<src/exceptions.c>, F<src/pmc/exception.pmc>,
+F<src/pmc/exceptionhandler.pmc>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd24_events.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd24_events.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd24_events.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 24: Events
@@ -368,17 +368,9 @@
 own implementations of timers, which may be used when performance on a
 particular platform is more important than portability.
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
-src/events.c
+F<src/events.c>
 
 L<http://www.seas.upenn.edu/~lipeng/homepage/unify.html>
 

Modified: branches/ops_pct/docs/pdds/pdd25_concurrency.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd25_concurrency.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd25_concurrency.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 25: Concurrency
@@ -422,40 +422,32 @@
 
 =back
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
 Dec 2003 - (Dan ponders threads based on POSIX and Perl 5 experience)
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64b22ab7de0a7a6/889b5d8c4cd267b7?lnk=gst&q=threads&rnum=3#889b5d8c4cd267b7>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64b22ab7de0a7a6/889b5d8c4cd267b7?lnk=gst&q=threads&rnum=3#889b5d8c4cd267b7>
 
 Dec. 2003 - "threads and shared interpreter data structures"
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64ea4ff287e04fd/b71333e282d3d187?lnk=gst&q=threads&rnum=9#b71333e282d3d187>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64ea4ff287e04fd/b71333e282d3d187?lnk=gst&q=threads&rnum=9#b71333e282d3d187>
 
 Jan. 2004 - "Threads Design. A Win32 perspective."
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/3209629b23306029/52ba9d37425ba015?lnk=gst&q=threads&rnum=8#52ba9d37425ba015>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/3209629b23306029/52ba9d37425ba015?lnk=gst&q=threads&rnum=8#52ba9d37425ba015>
 
 Jan. 2004 - "Start of threads proposal"
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/4c7de440da84d5c6/04cfb70b0d81dfba?tvc=1&q=threads#04cfb70b0d81dfba>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/4c7de440da84d5c6/04cfb70b0d81dfba?tvc=1&q=threads#04cfb70b0d81dfba>
 
 Sept. 2005 - "consider using OS threads"
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/40b50e3aa9255f8e/036a87b5d2b5ed2c?lnk=gst&q=threads&rnum=2#036a87b5d2b5ed2c>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/40b50e3aa9255f8e/036a87b5d2b5ed2c?lnk=gst&q=threads&rnum=2#036a87b5d2b5ed2c>
 
 Aug. 2007 - "multi-threading a work in progress"
-<http://perlmonks.org/?node_id=636466>
+L<http://perlmonks.org/?node_id=636466>
 
 Concurrency as Futures -
-<http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&entry=3336838959>
+L<http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&entry=3336838959>
 
-Io language - <http://www.iolanguage.com/about/>
+Io language - L<http://www.iolanguage.com/about/>
 
-Java memory and concurrency - http://www.cs.umd.edu/~pugh/java/memoryModel/
+Java memory and concurrency - L<http://www.cs.umd.edu/~pugh/java/memoryModel/>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd26_ast.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd26_ast.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd26_ast.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, Parrot Foundation
+# Copyright (C) 2007-2010, Parrot Foundation
 # $Id$
 
 =head1 PDD 26: Compiler Tools - Abstract Syntax Tree
@@ -561,7 +561,7 @@
 
 =head2 References
 
-NA.
+None.
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd27_multiple_dispatch.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd27_multiple_dispatch.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd27_multiple_dispatch.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 27: Multiple Dispatch
@@ -256,15 +256,9 @@
 Multiple dispatch calls from within vtable functions call the
 C<Parrot_mmd_invoke> routine from the public MMD API.
 
-=head2 Attachments
-
-None.
-
 =head2 References
 
-docs/mmd.pod
-src/multidispatch.c
-src/pmc/multisub.pmc
+F<docs/mmd.pod>, F<src/multidispatch.c>, F<src/pmc/multisub.pmc>
 
 =cut
 

Modified: branches/ops_pct/docs/pdds/pdd28_strings.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd28_strings.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd28_strings.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 28: Strings
@@ -379,13 +379,6 @@
 value of flags. If both string arguments are null, return a new string created
 according to the integer flags.
 
-=head4 Parrot_str_append (was string_append)
-
-Append one string to another and return the result. In the default case, the
-return value is the same as the first string argument (modifying that argument
-in place). If the first argument is COW or read-only, then the return value is
-a new string.
-
 =head4 Parrot_str_new (was string_from_cstring)
 
 Return a new string with the default encoding and character set. Accepts two
@@ -826,15 +819,15 @@
 
 =head2 References
 
-http://sirviente.9grid.es/sources/plan9/sys/doc/utf.ps - Plan 9's Runes are
+L<http://sirviente.9grid.es/sources/plan9/sys/doc/utf.ps> - Plan 9's Runes are
 not dissimilar to NFG strings, and this is a good introduction to the Unicode
 world.
 
-http://www.unicode.org/reports/tr15/ - The Unicode Consortium's
+L<http://www.unicode.org/reports/tr15/> - The Unicode Consortium's
 explanation of different normalization forms.
 
-http://unicode.org/reports/tr29/ - "grapheme clusters" in the Unicode Standard
-Annex
+L<http://unicode.org/reports/tr29/> - "grapheme clusters" in the Unicode
+Standard Annex
 
 "Unicode: A Primer", Tony Graham - Arguably the most readable book on
 how Unicode works.

Modified: branches/ops_pct/docs/pdds/pdd30_install.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd30_install.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd30_install.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 
 =head1 PDD 30: Installation
@@ -7,8 +7,8 @@
 
 This PDD outlines Parrot's installation system and support. Parrot's core
 installation system will provide support for binary packages, a working C<make
-install> target, compiled installables, and FHS compliant search paths for the
-installables.
+install> target, compiled installables, and Filesystem Hierarchy Standard
+(FHS) compliant search paths for the installables.
 
 =head2 Version
 
@@ -33,9 +33,8 @@
 
 =head2 Description
 
-Parrot uses Filesystem Hierarchy Standard (FHS) compliant install directories
-by default. Each install location is configurable with options passed to the
-configure script.
+Parrot uses FHS compliant install directories by default. Each install
+location is configurable with options passed to the configure script.
 
 =over
 
@@ -84,7 +83,7 @@
 It is recommended that languages follow a standard pattern in installing their
 libraries so a bytecode compiled version of a module in the C<mylang> HLL
 named C<['Foo';'Bar']> is stored in
-F<usr/lib/parrot/E<lt>versionE<gt>/languages/E<lt>mylangE<gt>/library/Foo/Bar.pbc>
+F</usr/lib/parrot/E<lt>versionE<gt>/languages/E<lt>mylangE<gt>/library/Foo/Bar.pbc>
 
 =item F</usr/lib/parrot/E<lt>versionE<gt>/tools/>
 
@@ -115,7 +114,7 @@
 separate package), F<libgdm> and F<libreadline>.
 
 Building a language depends on a series of Parrot build tools, installed in
-F</usr/lib/parrot/E<lt>version/tools>. These tools will generally not be
+F</usr/lib/parrot/E<lt>versionE<gt>/tools>. These tools will generally not be
 included in the default C<parrot> package on most systems, languages will
 require a C<parrot-dev> package to be installed before they can be built.
 
@@ -161,14 +160,6 @@
 good choice, and can be combined with Autoconf, CMake, Perl, Python,
 etc. for more complex conditional builds).
 
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
 =head2 References
 
 None.

Modified: branches/ops_pct/docs/pdds/pdd_template.pod
==============================================================================
--- branches/ops_pct/docs/pdds/pdd_template.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pdds/pdd_template.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,16 +1,16 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 Design Document Template
 
-=head2 Version
-
-$Revision$
-
 =head2 Abstract
 
 Summary of the contents of the PDD.
 
+=head2 Version
+
+$Revision$
+
 =head2 Synopsis I<(optional)>
 
 Code snippets showing the semantics of the PDD (if applicable).
@@ -33,11 +33,11 @@
 
 =head2 Attachments
 
-Any associated documents.
+Any associated documents. (optional)
 
 =head2 Footnotes
 
-List of footnotes to the text.
+List of footnotes to the text. (optional)
 
 =head2 References
 

Modified: branches/ops_pct/docs/pmc.pod
==============================================================================
--- branches/ops_pct/docs/pmc.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pmc.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -37,11 +37,19 @@
 generate a struct containing all ATTRs, including those inherited via
 C<extends> declarations.  This struct will be named in the form
 C<Parrot_x_attributes>, where C<x> is the name of your PMC, e.g.
-C<Parrot_FixedIntegerArray_attributes>.  When creating a PMC that has one or
-more ATTRs, the C<Parrot_x_attributes> struct must be allocated and assigned to
-C<PMC_data> in the PMC's C<init()> and C<init_pmc()> VTABLE functions (if used)
-and it must be destroyed in the C<destroy()> VTABLE function.  PMCs with ATTRs
-also need to indicate that they need active destruction by calling
+C<Parrot_FixedIntegerArray_attributes>. 
+
+When creating a PMC that has one or more ATTRs, the C<Parrot_x_attributes>
+struct must be allocated and assigned to C<PMC_data>, and freed on PMC
+destruction. This can be done automatically by using the auto_attrs flag in
+the PMC declaration, or manually by using the manual_attrs flag. You must set
+one of those flags, a warning is emitted otherwise. In future releases
+auto_attrs will be the default.
+
+If manual_attrs is specified or assumed the struct must be manually allocated
+in the PMC's C<init()> and C<init_pmc()> VTABLE functions (if used)
+and it must be destroyed in the C<destroy()> VTABLE function, the PMC must
+also indicate that they need active destruction by calling
 C<PObj_custom_destroy_SET()> or C<PObj_custom_mark_destroy_SETALL()>.
 
 If your PMC only needs to store a single pointer, it can use C<PMC_data> directly.

Modified: branches/ops_pct/docs/pmc/documentation.pod
==============================================================================
--- branches/ops_pct/docs/pmc/documentation.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pmc/documentation.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -36,7 +36,8 @@
  F<docs/pdds/pdd21_namespaces.pod>.
 
  Exporter is not derived from any other PMC, and does not provide any
- standard interface--its interface consists solely of non-vtable methods.
+ standard interface--its interface consists solely of methods, not
+ vtable functions.
 
 The B<DESCRIPTION> section is further broken down as follows:
 

Modified: branches/ops_pct/docs/pmc2c.pod
==============================================================================
--- branches/ops_pct/docs/pmc2c.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/pmc2c.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -133,17 +133,28 @@
 
 =item 3.
 
-A list of vtable method implementations
+A list of attribute declarations:
+
+  ATTR INTVAL id;
+
+The ATTR declaration keyword is followed by the type of the attribute and the
+name of the attribute. Any valid C type is a valid attribute type, but only
+INTVAL, FLOATVAL, STRING *, and PMC * can be handled directly from PIR. Other
+types are generally only used by low-level internal PMCs.
 
 =item 4.
 
+A list of vtable function implementations
+
+=item 5.
+
 The final close C<}>
 
 =back
 
 =head2 Method Body Substitutions
 
-The vtable method bodies can use the following substitutions:
+The vtable function bodies can use the following substitutions:
 
 =over 4
 
@@ -157,11 +168,11 @@
 
 =item C<OtherClass.SELF.method(a,b,c)>
 
-Calls the static vtable method 'method' in C<OtherClass>.
+Calls the static vtable or method 'method' in C<OtherClass>.
 
 =item C<SELF.method(a,b,c)>
 
-Calls the vtable method 'method' using the dynamic type of C<SELF>.
+Calls the vtable or method 'method' using the dynamic type of C<SELF>.
 
 =item C<SELF(a,b,c)>
 
@@ -169,7 +180,7 @@
 
 =item C<STATICSELF.method(a,b,c)>
 
-Calls the vtable method 'method' using the static type of C<SELF> (in
+Calls the vtable or method 'method' using the static type of C<SELF> (in
 other words, calls another method defined in the same file).
 
 =item C<OtherClass.SUPER(a,b,c)>

Modified: branches/ops_pct/docs/porting_intro.pod
==============================================================================
--- branches/ops_pct/docs/porting_intro.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/porting_intro.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -13,39 +13,6 @@
 internals.  For each feature, a brief description of its purpose, hints on
 helping to port it, and pointers to more information are included.
 
-=head1 CGoto or CGP (CGoto Predereferenced)
-
-=head2 What it is
-
-"Computed goto" is a non-standard C feature that allows taking a pointer to an
-statement label (e.g. "LOOP:" ) using the unary && operator.  Certain Parrot
-runcores make use of this feature as an optimization.
-
-=head2 How to help
-
-If cgoto is not supported in Parrot by default on your platform, try to compile
-config/auto/cgoto/test_c.in with your C compiler and determine why it fails. If
-the compiler does not support the computed goto concept at all, this feature
-cannot be made to work (don't worry, there are other runcores).  However, if
-the compiler supports it but the test is inadequate, please submit a bug report
-describing how the implementation of this feature differs from what Parrot
-expects.
-
-Note that gcc supports this feature out of the box, though it sometimes
-struggles with it in low-memory situations.  Failures during compilation of
-core_ops_cg.c are frequently caused by insufficient resources rather than bugs
-in gcc or Parrot.
-
-=head2 References
-
-=over 4
-
-=item * F<config/auto/cgoto/test_c.in>
-
-=item * I<make testC>
-
-=back
-
 =head1 Threads
 
 =head2 What it is

Modified: branches/ops_pct/docs/project/release_manager_guide.pod
==============================================================================
--- branches/ops_pct/docs/project/release_manager_guide.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/project/release_manager_guide.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -66,7 +66,7 @@
 =item a
 
 Increment the version number in the following files:
-F<VERSION>, F<MANIFEST.generated>, F<META.yml>, F<README>.
+F<VERSION>, F<MANIFEST.generated>, F<README>.
 
 Also update the version number, date, and your name in the
 the file: F<docs/parrothist.pod>.
@@ -213,14 +213,15 @@
 
  $ mkdir ~/ftp/releases/devel/a.b.c
 
-If the release is in the stable series (L<Appendix 1 - Upcoming releases>)
-create the new directory in F<~/ftp/releases/stable> instead.
+If the release is in the supported series (L<Appendix 1 - Upcoming releases>)
+create the new directory in F<~/ftp/releases/supported> instead.
 
- $ mkdir ~/ftp/releases/stable/a.b.c
+ $ mkdir ~/ftp/releases/supported/a.b.c
 
-Copy the tarball from your machine into the new directory.
+Copy the different compressed tarballs from your machine into the new directory.
 
- $ scp parrot-a.b.c.tar.gz <USERNAME>@ftp-osl.osuosl.org:~/ftp/releases/devel/a.b.c/.
+ $ scp parrot-a.b.c.tar.gz parrot-a.b.c.tar.bz2 \
+   <USERNAME>@ftp-osl.osuosl.org:~/ftp/releases/devel/a.b.c/.
 
 (Or using C<wget> or whatever tool you prefer.)
 
@@ -282,10 +283,10 @@
 =item e
 
 Under "Administer" -> "Site building" -> "URL Redirects", change the URL for
-"release/current" to the FTP directory for the new release (for example,
-F<ftp://ftp.parrot.org/pub/parrot/releases/devel/0.8.1>). Also update
-the URL for "release/developer" or "release/supported" depending on
-which type of release this is.
+"release/current" to the FTP file for the new release (for example,
+F<ftp://ftp.parrot.org/pub/parrot/releases/devel/0.8.1/parrot-0.8.1.tar.gz>).
+Also update the URL for "release/developer" or "release/supported" depending
+on which type of release this is.
 
 =item f
 
@@ -293,9 +294,9 @@
 the resources/ and html/ directories created in docs/.
 ssh into the parrotvm, and in the
 webroot for docs.parrot.org, expand these into a release directory (e.g.
-1.4.0). in <webroot>/parrot, there are symbolic links for latest, stable,
+1.4.0). in <webroot>/parrot, there are symbolic links for latest, supported,
 and devel. Update the latest symlink to point to your new directory.
-If this is a stable release, also update the stable symlink. Do not delete
+If this is a supported release, also update the supported symlink. Do not delete
 any old copies of the docs.
 
 =back
@@ -393,11 +394,11 @@
 visible at
 L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
 
- - Mar 16, 2010 - 2.2  - cotto
- - Apr 20, 2010 - 2.3* - gerd
  - May 18, 2010 - 2.4  - whiteknight
  - Jun 15, 2010 - 2.5  - gerd
  - Jul 20, 2010 - 2.6* - coke
+ - Aug 17, 2010 - 2.7  - ??
+ - Sep 21, 2010 - 2.8  - gerd
 
 =cut
 

Modified: branches/ops_pct/docs/running.pod
==============================================================================
--- branches/ops_pct/docs/running.pod	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/docs/running.pod	Wed Apr 28 03:18:28 2010	(r46097)
@@ -135,13 +135,10 @@
 may be available on your system:
 
   slow, bounds  bounds checking core (default)
-  cgoto         computed goto core
-  cgp           computed goto-predereferenced core
-  fast          fast core (no bounds checking, profiling, or tracing)
   gcdebug       performs a full GC run before every op dispatch (good for
                 debugging GC problems)
-  switch        switch core
   trace         bounds checking core w/ trace info (see 'parrot --help-debug')
+  profiling     see F<docs/dev/profilling.pod>
 
 The C<jit>, C<switch-jit>, and C<cgp-jit> options are currently aliases for the
 C<fast>, C<switch>, and C<cgp> options, respectively.  We do not recommend
@@ -248,28 +245,6 @@
 The trace and profile cores are also based on the "slow" core, doing
 full bounds checking, and also printing runtime information to stderr.
 
-The switched core eschews these tiny op functions in favor of cases in a large
-switch statement:
-
-    switch_runcore( op ):
-        while ( op ):
-            switch *op:
-                case NOP:
-                    ...
-                case STORE:
-                    ...
-                ...
-
-Depending on the C compiler implementation, this may be faster than function
-calling.  On older systems, it may fail to compile altogether.
-
-The computed-goto ("cgoto") runcore avoids the overhead of function
-calls by jumping directly to the address where each opcode's function
-starts.  The computed-goto-prederef ("CGP") core takes this one step
-further by replacing opcode numbers in the bytecode with those opfunc
-addresses.  See "Predereferencing" in F<docs/glossary.pod> for a
-fuller explanation.
-
 =head1 Operation table
 
  Command Line          Action         Output

Modified: branches/ops_pct/examples/benchmarks/oo1.pir
==============================================================================
--- branches/ops_pct/examples/benchmarks/oo1.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/benchmarks/oo1.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -11,8 +11,6 @@
 # python oo1.py                 1.2 (first time)
 # python oo1.py                 0.51
 
-# parrot -R cgp oo1.pasm            -g           -O3
-
 # original list fixed           4.9     (leaks mem ~ 110 M used)
 # don't clone vtable            4.4
 # Dan's vtable cache            4.3           3.8
@@ -31,9 +29,6 @@
 # Dan's new object layout                     1.00
 
 
-# parrot -R cgp oo1-prop.pasm
-#   invokecc                                  0.75
-#   RetCont out of loop                       0.57
 # parrot -R jit oo1-prop.pasm                     0.54
 
 .namespace [ "Foo" ]

Modified: branches/ops_pct/examples/benchmarks/oo2.pir
==============================================================================
--- branches/ops_pct/examples/benchmarks/oo2.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/benchmarks/oo2.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -11,17 +11,11 @@
 # python oo2.py                               2.9 (first time)
 # python oo2.py                               2.4
 
-# parrot -R cgp oo2.pasm            -g           -O3
-#   with reuse regsave mem                    6.15
-# anchor P1                                   6.7
-# Dan's new object layout                     5.1
-
 # parrot -R jit oo2.pasm            -g           -O3
 #   with reuse regsave mem                    6.1
 # anchor P1                                   6.5
 # Dan's new object layout                     4.9
 
-# parrot -R cgp oo2-prop.pasm                     2.8
 # parrot -R jit oo2-prop.pasm                     2.6
 
 .namespace [ "Foo" ]

Modified: branches/ops_pct/examples/c/test_main.c
==============================================================================
--- branches/ops_pct/examples/c/test_main.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/c/test_main.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -209,13 +209,6 @@
 static void
 usage(void)
 {
-#ifdef HAVE_COMPUTED_GOTO
-    const char* cgoto_info = "Deactivate computed goto";
-#else
-    const char* cgoto_info =
-        "Deactivate computed goto (not available on this platform)";
-#endif
-
     fprintf(stderr,
 "Usage: parrot [switches] [--] programfile [arguments]\n\
   -b  --bounds-checks           Activate bounds checks\n\
@@ -223,9 +216,6 @@
   -h  --help                    Display this message\n\
   -j  --jit                     Activate Just-In-Time compiler\n\
   -p  --profile                 Activate profiling\n\
-  -P  --predereferenced_core    Activate predereferencing\n\
-  -S  --switched_core           Activate switched core\n\
-  -g  --no-computed-goto        %s\n\
   -t  --trace                   Activate tracing\n\
   -v  --version                 Display version information\n\
   -.  --wait                    Wait for a keypress (gives Windows users\n\
@@ -233,8 +223,7 @@
       --gc-debug\n\
         Enable garbage collection debugging mode. This may also be enabled\n\
         by setting the environment variable $PARROT_GC_DEBUG to 1.\n\
-\n",
-            cgoto_info);
+\n");
 
     Parrot_exit(interp, 0);
 }

Modified: branches/ops_pct/examples/config/file/configcompiler
==============================================================================
--- branches/ops_pct/examples/config/file/configcompiler	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/config/file/configcompiler	Wed Apr 28 03:18:28 2010	(r46097)
@@ -50,7 +50,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/ops_pct/examples/config/file/configwithfatalstep
==============================================================================
--- branches/ops_pct/examples/config/file/configwithfatalstep	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/config/file/configwithfatalstep	Wed Apr 28 03:18:28 2010	(r46097)
@@ -42,7 +42,6 @@
 auto::jit
 auto::cpu
 auto::funcptr
-auto::cgoto
 auto::inline
 auto::gc
 auto::memalign

Modified: branches/ops_pct/examples/embed/cotorra.c
==============================================================================
--- branches/ops_pct/examples/embed/cotorra.c	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/embed/cotorra.c	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2009, Parrot Foundation.
+Copyright (C) 2009-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -36,7 +36,7 @@
 Parrot_Run_core_t getruncore(const char *name);
 
 Parrot_String create_string(Parrot_Interp interp, const char *name);
-int cotorra_main(Parrot_Interp interp, int argc, char **argv);
+int cotorra_main(Parrot_Interp interp, int argc, const char **argv);
 
 /**********************************************************************/
 
@@ -108,10 +108,7 @@
 {
     static const struct runcoreinfo cores [] = {
         { PARROT_SLOW_CORE,     "slow" },
-        { PARROT_FAST_CORE,     "fast" },
-        { PARROT_CGOTO_CORE,    "cgoto" },
         { PARROT_GC_DEBUG_CORE, "gcdebug" },
-        { PARROT_SWITCH_CORE,   "switch" }
     };
     static const unsigned int n = sizeof (cores)/sizeof (struct runcoreinfo);
     unsigned int i;
@@ -147,7 +144,7 @@
 
 /*
 
-=item C<int cotorra_main(Parrot_Interp interp, int argc, char **argv)>
+=item C<int cotorra_main(Parrot_Interp interp, int argc, const char **argv)>
 
 Auxiliary function to minimize the size of main.
 
@@ -155,12 +152,13 @@
 
 */
 
-int cotorra_main(Parrot_Interp interp, int argc, char **argv)
+int cotorra_main(Parrot_Interp interp, int argc, const char **argv)
 {
-    char *source;
+    const char *source;
     Parrot_PackFile pf;
     const char *stname = NULL;
     const char *exec = NULL;
+    const char *module = NULL;
     int i;
 
     /* Incompatible options are not checked yet */
@@ -171,7 +169,7 @@
                 fail("Option needs argument");
             Parrot_set_trace(interp, getuintval(argv[i]));
         }
-        if (strcmp(argv[i], "--warnings") == 0) {
+        else if (strcmp(argv[i], "--warnings") == 0) {
             ++i;
             if (i >= argc)
                 fail("Option needs argument");
@@ -189,6 +187,12 @@
                 fail("Option needs argument");
             stname = argv[i];
         }
+        else if (strcmp(argv[i], "--load") == 0) {
+            ++i;
+            if (i >= argc)
+                fail("Option needs argument");
+            module = argv[i];
+        }
         else if (strcmp(argv[i], "--runcore") == 0) {
             ++i;
             if (i >= argc)
@@ -198,6 +202,8 @@
         else
             break;
     }
+    if (module)
+        Parrot_load_bytecode(interp, create_string(interp, module));
 
     if (exec) {
         Parrot_String compiler = create_string(interp, "PIR");
@@ -207,16 +213,16 @@
         return 0;
     }
 
-    if (i >= argc)
+    if (i >= argc && ! (module && stname))
         fail("No file to load");
     source = argv[i];
-
-    pf = Parrot_pbc_read(interp, source, 0);
-    if (! pf)
-        fail("Cannot load file");
-
-    Parrot_pbc_load(interp, pf);
-    Parrot_pbc_fixup_loaded(interp);
+    if (source && ! stname) {
+        pf = Parrot_pbc_read(interp, source, 0);
+        if (! pf)
+            fail("Cannot load file");
+        Parrot_pbc_load(interp, pf);
+        Parrot_pbc_fixup_loaded(interp);
+    }
 
     if (stname) {
         Parrot_PMC rootns = Parrot_get_root_namespace(interp);
@@ -224,7 +230,20 @@
         Parrot_PMC parrotns = Parrot_PMC_get_pmc_strkey(interp, rootns, parrotname);
         Parrot_String name = create_string(interp, stname);
         Parrot_PMC start = Parrot_PMC_get_pmc_strkey(interp, parrotns, name);
-        Parrot_ext_call(interp, start, "->");
+        if (Parrot_pmc_is_null(interp, start))
+            fail("start sub not found");
+        if (i < argc) {
+            int pos;
+            Parrot_PMC arg = Parrot_PMC_new(interp,
+                    Parrot_PMC_typenum(interp, "FixedStringArray"));
+            Parrot_PMC_set_intval(interp, arg, argc - i);
+            for (pos = 0; i < argc; ++i, ++pos) {
+                Parrot_PMC_set_string_intkey(interp, arg, pos, create_string(interp, argv[i]));
+            }
+            Parrot_ext_call(interp, start, "P->", arg);
+        }
+        else
+            Parrot_ext_call(interp, start, "->");
     }
     else {
         Parrot_runcode(interp, argc - i, argv + i);
@@ -235,7 +254,7 @@
 
 /*
 
-=item C<int main(int argc, char **argv)>
+=item C<int main(int argc, const char **argv)>
 
 Main function. Create the parrot interpreter and call cotorra_main.
 
@@ -243,7 +262,7 @@
 
 */
 
-int main(int argc, char **argv)
+int main(int argc, const char **argv)
 {
     Parrot_Interp interp;
     int r;

Modified: branches/ops_pct/examples/japh/japh3.pasm
==============================================================================
--- branches/ops_pct/examples/japh/japh3.pasm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/japh/japh3.pasm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2009, Parrot Foundation.
+# Copyright (C) 2004-2010, Parrot Foundation.
 # $Id$
 
 # the substr JaPH
@@ -6,10 +6,9 @@
     set S1, "Parrot "
     set S2, "another "
     set S3, "Just "
-    set S31, S0
-    substr S3, 5,  1, S2
-    substr S3, 13, 1, S1
-    substr S3, 20, 1, S0
+    replace S3, S3, 5,  1, S2
+    replace S3, S3, 13, 1, S1
+    replace S3, S3, 20, 1, S0
     print S3
     end
 

Modified: branches/ops_pct/examples/json/postalcodes.pir
==============================================================================
--- branches/ops_pct/examples/json/postalcodes.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/json/postalcodes.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,5 +1,5 @@
 #!../../parrot
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -64,11 +64,11 @@
     close sock
 
     $I1 = find_charset 'unicode'
-    trans_charset json_result, $I1
+    json_result = trans_charset json_result, $I1
 
     # Strip off http headers.
     $I0 = index json_result, "\r\n\r\n"
-    substr json_result, 0, $I0, ""
+    json_result = replace json_result, 0, $I0, ""
 
     load_language 'data_json'
     $P1 = compreg 'data_json'

Modified: branches/ops_pct/examples/languages/abc/setup.pir
==============================================================================
--- branches/ops_pct/examples/languages/abc/setup.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/languages/abc/setup.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -40,7 +40,7 @@
     $P1 = new 'Hash'
     $P1['src/gen_grammar.pir'] = 'src/parser/grammar.nqp'
     $P1['src/gen_actions.pir'] = 'src/parser/actions.nqp'
-    $P0['pir_nqp-rx'] = $P1
+    $P0['pir_nqprx'] = $P1
 
     $P2 = new 'Hash'
     $P3 = split "\n", <<'SOURCES'
@@ -58,6 +58,9 @@
     $P0['exe_pbc'] = $P4
     $P0['installable_pbc'] = $P4
 
+    # test
+    $P0['test_exec'] = 'perl'
+
     # dist
     $P4 = glob('t/abc_*')
     $P0['manifest_includes'] = $P4

Modified: branches/ops_pct/examples/languages/squaak/setup.pir
==============================================================================
--- branches/ops_pct/examples/languages/squaak/setup.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/languages/squaak/setup.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -43,7 +43,7 @@
 
     $P2 = new 'Hash'
     $P2['src/gen_actions.pir'] = 'src/parser/actions.pm'
-    $P0['pir_nqp'] = $P2
+    $P0['pir_nqprx'] = $P2
 
     $P3 = new 'Hash'
     $P4 = split "\n", <<'SOURCES'

Modified: branches/ops_pct/examples/languages/squaak/src/parser/actions.pm
==============================================================================
--- branches/ops_pct/examples/languages/squaak/src/parser/actions.pm	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/languages/squaak/src/parser/actions.pm	Wed Apr 28 03:18:28 2010	(r46097)
@@ -36,35 +36,35 @@
         my $past := @?BLOCK.shift();
 
         for $<stat_or_def> {
-            $past.push($($_));
+            $past.push($_.ast);
         }
         make $past;
     }
 }
 
 method stat_or_def($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method statement($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method if_statement($/) {
-    my $cond := $( $<expression> );
-    my $then := $( $<block> );
+    my $cond := $<expression>.ast;
+    my $then := $<block>.ast;
     my $past := PAST::Op.new( $cond, $then, :pasttype('if'), :node($/) );
 
     ## if there's an else clause, add it to the PAST node.
     if $<else> {
-        $past.push( $( $<else>[0] ) );
+        $past.push( $<else>[0].ast );
     }
     make $past;
 }
 
 method while_statement($/) {
-    my $cond := $( $<expression> );
-    my $body := $( $<block> );
+    my $cond := $<expression>.ast;
+    my $body := $<block>.ast;
     make PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
 }
 
@@ -83,7 +83,7 @@
     our $?BLOCK;
     our @?BLOCK;
 
-    my $init := $( $<for_init> );
+    my $init := $<for_init>.ast;
 
     ## cache the name of the loop variable
     my $itername := $init.name();
@@ -100,7 +100,7 @@
     my $body := @?BLOCK.shift();
     $?BLOCK  := @?BLOCK[0];
     for $<statement> {
-        $body.push($($_));
+        $body.push( $_.ast );
     }
 
     ## if a step was specified, use that; otherwise, use the default of +1.
@@ -108,7 +108,7 @@
     ##
     my $step;
     if $<step> {
-        my $stepsize := $( $<step>[0] );
+        my $stepsize := $<step>[0].ast;
         $step := PAST::Op.new( $iter, $stepsize, :pirop('add'), :node($/) );
     }
     else { ## default is increment by 1
@@ -117,7 +117,7 @@
     $body.push($step);
 
     ## while loop iterator <= end-expression
-    my $cond := PAST::Op.new( $iter, $( $<expression> ), :name('infix:<=') );
+    my $cond := PAST::Op.new( $iter, $<expression>.ast, :name('infix:<=') );
     my $loop := PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
 
     make PAST::Stmts.new( $init, $loop, :node($/) );
@@ -132,12 +132,12 @@
     $?BLOCK := PAST::Block.new( :blocktype('immediate'), :node($/) );
     @?BLOCK.unshift($?BLOCK);
 
-    my $iter := $( $<identifier> );
+    my $iter := $<identifier>.ast;
     ## set a flag that this identifier is being declared
     $iter.isdecl(1);
     $iter.scope('lexical');
     ## the identifier is initialized with this expression
-    $iter.viviself( $( $<expression> ) );
+    $iter.viviself( $<expression>.ast );
 
     ## enter the loop variable as a local into the symbol table.
     $?BLOCK.symbol($iter.name(), :scope('lexical'));
@@ -147,16 +147,16 @@
 
 method try_statement($/) {
     ## get the try block
-    my $try := $( $<try> );
+    my $try := $<try>.ast;
 
     ## create a new PAST::Stmts node for the catch block;
     ## note that no PAST::Block is created, as this currently
     ## has problems with the exception object. For now this will do.
     my $catch := PAST::Stmts.new( :node($/) );
-    $catch.push( $( $<catch> ) );
+    $catch.push( $<catch>.ast );
 
     ## get the exception identifier;
-    my $exc := $( $<exception> );
+    my $exc := $<exception>.ast;
     $exc.isdecl(1);
     $exc.scope('lexical');
     $exc.viviself( PAST::Val.new( :value(0) ) );
@@ -176,14 +176,14 @@
 method exception($/) {
     our $?BLOCK;
 
-    my $exc := $( $<identifier> );
+    my $exc := $<identifier>.ast;
     ## the exception identifier is local to the exception handler
     $?BLOCK.symbol($exc.name(), :scope('lexical'));
     make $exc;
 }
 
 method throw_statement($/) {
-    make PAST::Op.new( $( $<expression> ), :pirop('throw'), :node($/) );
+    make PAST::Op.new( $<expression>.ast, :pirop('throw'), :node($/) );
 }
 
 method block($/, $key) {
@@ -201,24 +201,24 @@
         $?BLOCK  := @?BLOCK[0];
 
         for $<statement> {
-            $past.push($($_));
+            $past.push( $_.ast );
         }
         make $past
     }
 }
 
 method return_statement($/) {
-    my $expr := $( $<expression> );
+    my $expr := $<expression>.ast;
     make PAST::Op.new( $expr, :pasttype('return'), :node($/) );
 }
 
 method do_block($/) {
-    make $( $<block> );
+    make $<block>.ast;
 }
 
 method assignment($/) {
-    my $rhs := $( $<expression> );
-    my $lhs := $( $<primary> );
+    my $rhs := $<expression>.ast;
+    my $lhs := $<primary>.ast;
     $lhs.lvalue(1);
     make PAST::Op.new( $lhs, $rhs, :pasttype('bind'), :node($/) );
 }
@@ -228,13 +228,13 @@
     our $?BLOCK;
 
     ## note that $<parameters> creates a new PAST::Block.
-    my $past := $( $<parameters> );
-    my $name := $( $<identifier> );
+    my $past := $<parameters>.ast;
+    my $name := $<identifier>.ast;
 
     ## set the function name
     $past.name( $name.name() );
     for $<statement> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
 
     ## remove the block from the scope stack
@@ -249,13 +249,13 @@
 method variable_declaration($/) {
     our $?BLOCK;
 
-    my $past := $( $<identifier> );
+    my $past := $<identifier>.ast;
     $past.isdecl(1);
     $past.scope('lexical');
 
     ## if there's an initialization value, use it to viviself the variable.
     if $<expression> {
-        $past.viviself( $( $<expression>[0] ) );
+        $past.viviself( $<expression>[0].ast );
     }
     else { ## otherwise initialize to undef.
         $past.viviself( 'Undef' );
@@ -281,7 +281,7 @@
 
     my $past := PAST::Block.new( :blocktype('declaration'), :node($/) );
     for $<identifier> {
-        my $param := $( $_ );
+        my $param := $_.ast;
         $param.scope('parameter');
         $past.push($param);
 
@@ -297,8 +297,8 @@
 }
 
 method sub_call($/) {
-    my $invocant := $( $<primary> );
-    my $past     := $( $<arguments> );
+    my $invocant := $<primary>.ast;
+    my $past     := $<arguments>.ast;
     ## set the invocant as the first child of the PAST::Op(:pasttype('call')) node
     $past.unshift( $invocant );
     make $past;
@@ -307,15 +307,15 @@
 method arguments($/) {
     my $past := PAST::Op.new( :pasttype('call'), :node($/) );
     for $<expression> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
     make $past;
 }
 
 method primary($/) {
-    my $past := $( $<identifier> );
+    my $past := $<identifier>.ast ;
     for $<postfix_expression> {
-        my $expr := $( $_ );
+        my $expr := $_.ast;
         ## set the current $past as the first child of $expr;
         ## $expr is either a key or an index; both are "keyed"
         ## variable access, where the first child is assumed
@@ -327,11 +327,11 @@
 }
 
 method postfix_expression($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method key($/) {
-    my $key := $( $<expression> );
+    my $key := $<expression>.ast;
 
     make PAST::Var.new( $key, :scope('keyed'),
                               :vivibase('Hash'),
@@ -341,7 +341,7 @@
 }
 
 method member($/) {
-    my $member := $( $<identifier> );
+    my $member := $<identifier>.ast;
     ## x.y is syntactic sugar for x{"y"}, so stringify the identifier:
     my $key    := PAST::Val.new( :returns('String'), :value($member.name()), :node($/) );
 
@@ -353,7 +353,7 @@
 }
 
 method index($/) {
-    my $index := $( $<expression> );
+    my $index := $<expression>.ast;
 
     make PAST::Var.new( $index, :scope('keyed'),
                                 :vivibase('ResizablePMCArray'),
@@ -362,8 +362,8 @@
 }
 
 method named_field($/) {
-    my $past := $( $<expression> );
-    my $name := $( $<string_constant> );
+    my $past := $<expression>.ast;
+    my $name := $<string_constant>.ast;
     ## the passed expression is in fact a named argument,
     ## use the named() accessor to set that name.
     $past.named($name);
@@ -377,7 +377,7 @@
     ## (which is not a valid Squaak name)
     my $past := PAST::Op.new( :name('!array'), :pasttype('call'), :node($/) );
     for $<expression> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
     make $past;
 }
@@ -388,13 +388,13 @@
     ## !hash (which is not a valid Squaak name)
     my $past := PAST::Op.new( :name('!hash'), :pasttype('call'), :node($/) );
     for $<named_field> {
-        $past.push($($_));
+        $past.push( $_.ast );
     }
     make $past;
 }
 
 method term($/, $key) {
-    make $( $/{$key} );
+    make $/{$key}.ast;
 }
 
 method identifier($/) {
@@ -413,13 +413,13 @@
 }
 
 method string_constant($/) {
-    make PAST::Val.new( :value( $($<string_literal>) ), :returns('String'), :node($/) );
+    make PAST::Val.new( :value( $<string_literal>.ast ), :returns('String'), :node($/) );
 }
 
 ## Handle the operator precedence table.
 method expression($/, $key) {
     if ($key eq 'end') {
-        make $($<expr>);
+        make $<expr>.ast;
     }
     else {
         my $past := PAST::Op.new( :name($<type>),
@@ -429,7 +429,7 @@
                                   :node($/)
                                 );
         for @($/) {
-            $past.push( $($_) );
+            $past.push( $_.ast );
         }
         make $past;
     }

Modified: branches/ops_pct/examples/library/ncurses_life.pir
==============================================================================
--- branches/ops_pct/examples/library/ncurses_life.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/library/ncurses_life.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -478,7 +478,7 @@
     if count > 3 goto space
 
 star:
-    substr new_world, pos, 1, "*"
+    new_world = replace new_world, pos, 1, "*"
 
 space:    # is space already
     inc pos
@@ -608,10 +608,10 @@
     unless len goto out
     $S0 = substr line, 0,1
     eq $S0, "#", check_format
-    chopn line, 1        # \n
+    line = chopn line, 1        # \n
     dec len
     if format != PICTURE goto not_pic
-    substr world, pos, len, line
+    world = replace world, pos, len, line
     pos = pos + size
     goto loop
 
@@ -777,7 +777,7 @@
 
     # TODO abs/rel and bounds checking
     #world[c] = "*"
-    substr world, c, 1, "*"
+    world = replace world, c, 1, "*"
     if s < len goto lp2
 done:
 nok:

Modified: branches/ops_pct/examples/nci/Xlib.pir
==============================================================================
--- branches/ops_pct/examples/nci/Xlib.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/nci/Xlib.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -67,10 +67,12 @@
     if xlib goto store
 check2:
     xlib = loadlib 'libX11.so'
+    $I0 = defined xlib
     unless $I0 goto check3
     if xlib goto store
 check3:
     xlib = loadlib 'libX11.so.6'
+    $I0 = defined xlib
     unless $I0 goto check4
     if xlib goto store
 check4:

Modified: branches/ops_pct/examples/nci/xlibtest.pir
==============================================================================
--- branches/ops_pct/examples/nci/xlibtest.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/nci/xlibtest.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -285,12 +285,13 @@
     jsonfile = handle.'readall'()
     close handle
 
-    load_bytecode 'compilers/json/JSON.pbc'
-    .local pmc json
-    json = compreg 'JSON'
+    load_language 'data_json'
+    .local pmc json, jsonobject, jsondata
+    json = compreg 'data_json'
     .local pmc jsonobject
-    jsonobject = json(jsonfile)
-    listline = jsonobject [JKEY_LINES]
+    jsonobject = json.'compile'(jsonfile)
+    jsondata = jsonobject()
+    listline = jsondata [JKEY_LINES]
     goto finish
 
 failed:

Modified: branches/ops_pct/examples/pge/demo.pir
==============================================================================
--- branches/ops_pct/examples/pge/demo.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/pge/demo.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
 .include "errors.pasm"
@@ -43,7 +43,7 @@
     $I0 = index x, "\n"
   get_cmd:
     $S0 = substr x, 0, $I0
-    chopn x, 1
+    x = chopn x, 1
     if $S0 == "next" goto match_next
     if $S0 == "regex" goto make_p6rule
     if $S0 == "glob" goto make_glob

Modified: branches/ops_pct/examples/pir/befunge/setup.pir
==============================================================================
--- branches/ops_pct/examples/pir/befunge/setup.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/pir/befunge/setup.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -55,6 +55,9 @@
     $P0['exe_pbc'] = $P3
     $P0['installable_pbc'] = $P3
 
+    # test
+    $P0['test_exec'] = 'perl'
+
     # dist
     $P4 = glob('*.bef')
     $P0['manifest_includes'] = $P4

Modified: branches/ops_pct/examples/pir/pirric.pir
==============================================================================
--- branches/ops_pct/examples/pir/pirric.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/pir/pirric.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -102,57 +102,59 @@
     addparent cl, $P0
     set_global 'Literal', cl
 
-    .local pmc keywords
+    .local pmc keywords, methods
+    # Get methods hash to verify
+    methods = inspect runnerclass, 'methods'
     keywords = new 'Hash'
-    setkeyword(keywords, 'CLEAR')
-    setkeyword(keywords, 'CONT')
-    setkeyword(keywords, 'END')
-    setkeyword(keywords, 'EXIT')
-    setkeyword(keywords, 'ERROR')
-    setkeyword(keywords, 'FOR')
-    setkeyword(keywords, 'GOSUB')
-    setkeyword(keywords, 'GOTO')
-    setkeyword(keywords, 'IF')
-    setkeyword(keywords, 'LIST')
-    setkeyword(keywords, 'LOAD')
-    setkeyword(keywords, 'NEXT')
-    setkeyword(keywords, 'NEW')
-    setkeyword(keywords, 'ON')
-    setkeyword(keywords, 'PRINT')
-    setkeyword(keywords, 'REM')
-    setkeyword(keywords, 'RETURN')
-    setkeyword(keywords, 'RUN')
-    setkeyword(keywords, 'SAVE')
-    setkeyword(keywords, 'STOP')
-    setkeyword(keywords, 'TROFF')
-    setkeyword(keywords, 'TRON')
+    setkeyword(methods, keywords, 'CLEAR')
+    setkeyword(methods, keywords, 'CONT')
+    setkeyword(methods, keywords, 'END')
+    setkeyword(methods, keywords, 'EXIT')
+    setkeyword(methods, keywords, 'ERROR')
+    setkeyword(methods, keywords, 'FOR')
+    setkeyword(methods, keywords, 'GOSUB')
+    setkeyword(methods, keywords, 'GOTO')
+    setkeyword(methods, keywords, 'IF')
+    setkeyword(methods, keywords, 'LIST')
+    setkeyword(methods, keywords, 'LOAD')
+    setkeyword(methods, keywords, 'NEXT')
+    setkeyword(methods, keywords, 'NEW')
+    setkeyword(methods, keywords, 'ON')
+    setkeyword(methods, keywords, 'PRINT')
+    setkeyword(methods, keywords, 'REM')
+    setkeyword(methods, keywords, 'RETURN')
+    setkeyword(methods, keywords, 'RUN')
+    setkeyword(methods, keywords, 'SAVE')
+    setkeyword(methods, keywords, 'STOP')
+    setkeyword(methods, keywords, 'TROFF')
+    setkeyword(methods, keywords, 'TRON')
     set_global 'keywords', keywords
 
     .local pmc predefs
     predefs = new 'Hash'
-    setpredef(predefs, 'NEW')
-    setpredef(predefs, 'ISA')
-    setpredef(predefs, 'GETPARROTINTERP')
-    setpredef(predefs, 'CHR$', 'CHR_S')
-    setpredef(predefs, 'ASC')
-    setpredef(predefs, 'LEN')
-    setpredef(predefs, 'LEFT$', 'LEFT_S')
-    setpredef(predefs, 'RIGHT$', 'RIGHT_S')
-    setpredef(predefs, 'MID$', 'MID_S')
-    setpredef(predefs, 'COMPLEX')
-    setpredef(predefs, 'COMPREG')
-    setpredef(predefs, 'EXP')
-    setpredef(predefs, 'LN')
-    setpredef(predefs, 'SIN')
-    setpredef(predefs, 'SINH')
-    setpredef(predefs, 'COS')
-    setpredef(predefs, 'COSH')
-    setpredef(predefs, 'TAN')
-    setpredef(predefs, 'TANH')
-    setpredef(predefs, 'ASIN')
-    setpredef(predefs, 'ACOS')
-    setpredef(predefs, 'ATAN')
-    setpredef(predefs, 'SQR')
+    setpredef(methods, predefs, 'NEW')
+    setpredef(methods, predefs, 'ISA')
+    setpredef(methods, predefs, 'GETPARROTINTERP')
+    setpredef(methods, predefs, 'CHR$', 'CHR_S')
+    setpredef(methods, predefs, 'ASC')
+    setpredef(methods, predefs, 'LEN')
+    setpredef(methods, predefs, 'LEFT$', 'LEFT_S')
+    setpredef(methods, predefs, 'RIGHT$', 'RIGHT_S')
+    setpredef(methods, predefs, 'MID$', 'MID_S')
+    setpredef(methods, predefs, 'COMPLEX')
+    setpredef(methods, predefs, 'COMPREG')
+    setpredef(methods, predefs, 'EXP')
+    setpredef(methods, predefs, 'LN')
+    setpredef(methods, predefs, 'SIN')
+    setpredef(methods, predefs, 'SINH')
+    setpredef(methods, predefs, 'COS')
+    setpredef(methods, predefs, 'COSH')
+    setpredef(methods, predefs, 'TAN')
+    setpredef(methods, predefs, 'TANH')
+    setpredef(methods, predefs, 'ASIN')
+    setpredef(methods, predefs, 'ACOS')
+    setpredef(methods, predefs, 'ATAN')
+    setpredef(methods, predefs, 'SQR')
     set_global 'predefs', predefs
 
 # Create classes for control flow exceptions
@@ -252,6 +254,7 @@
 
 #-----------------------------------------------------------------------
 .sub setkeyword
+    .param pmc methods
     .param pmc keywords
     .param string key
 
@@ -259,10 +262,11 @@
     funcname = concat 'func_', key
 
     .local pmc func
-    func = get_global ['Runner'], funcname
+    func = methods[funcname]
     $I0 = defined func
     if $I0 goto good
-    say 'No func!'
+    print funcname
+    die ': No func!'
     exit 1
 good:
     keywords [key] = func
@@ -270,6 +274,7 @@
 
 #-----------------------------------------------------------------------
 .sub setpredef
+    .param pmc methods
     .param pmc predefs
     .param string key
     .param string name :optional
@@ -282,7 +287,7 @@
     funcname = concat 'predef_', name
 
     .local pmc func
-    func = get_global ['Runner'], funcname
+    func = methods[funcname]
     $I0 = defined func
     if $I0 goto good
     print funcname
@@ -416,7 +421,7 @@
 
     .local pmc vars, var
     vars = getattribute self, 'vars'
-    upcase varname
+    varname = upcase varname
     var = vars[varname]
     .return(var)
 .end
@@ -428,7 +433,7 @@
 
     .local pmc vars, var
     vars = getattribute self, 'vars'
-    upcase varname
+    varname = upcase varname
     vars[varname] = value
 .end
 
@@ -664,7 +669,7 @@
     $I0 = $P2
     $S0 = chr $I0
     $I1 = find_encoding 'utf8'
-    trans_encoding $S0, $I1
+    $S0 = trans_encoding $S0, $I1
     $P3 = new 'String'
     $P3 = $S0
     .return($P3)
@@ -1010,7 +1015,7 @@
     unless $I0 goto fail
 
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     #print $S0
 
 # Some predefined functions:
@@ -1668,7 +1673,7 @@
     key = 'PRINT'
 
 findkey:
-    upcase key
+    key = upcase key
     .local pmc keywords
     keywords = get_hll_global 'keywords'
     $I0 = keywords
@@ -1797,14 +1802,14 @@
     pvar = tokenizer.'get'()
     .local string var
     var = pvar
-    upcase var
+    var = upcase var
     $P0 = tokenizer.'get'()
     ne $P0, '=', fail
     .local pmc value
     value = self.'evaluate'(tokenizer)
     $P0 = tokenizer.'get'()
     $S0 = $P0
-    upcase $S0
+    $S0 = upcase $S0
     ne $S0, 'TO', fail
 
     .local pmc limit
@@ -1815,7 +1820,7 @@
     $I0 = defined $P0
     unless $I0 goto default_step
     $S0 = $P0
-    upcase $S0
+    $S0 = upcase $S0
     ne $S0, 'STEP', fail
     increment = self.'evaluate'(tokenizer)
     goto prepare
@@ -1896,7 +1901,7 @@
     $I0 = defined token
     unless $I0 goto fail
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     ne $S0, 'THEN', fail
 
     $I0 = defined arg
@@ -1917,7 +1922,7 @@
     $I0 = isa $P0, 'String'
     unless $I0 goto nextitem
     $S0 = $P0
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', is_else
     eq $S0, 'IF', is_if
     goto nextitem
@@ -1959,7 +1964,7 @@
     $I1 = defined $P1
     unless $I1 goto fail
     $S1 = $P1
-    upcase $S1
+    $S1 = upcase $S1
     ne $S1, 'B', fail
     $S1 = arg
     pirric_aux_loadbytecode($S1)
@@ -2037,13 +2042,13 @@
     .local pmc token
     token = tokenizer.'get'()
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     if $S0 == 'ERROR' goto on_error
     goto fail
 on_error:
     token = tokenizer.'get'()
     $S0 = token
-    upcase $S0
+    $S0 = upcase $S0
     if $S0 == 'GOTO' goto on_error_goto
     if $S0 == 'EXIT' goto on_error_exit
     goto fail
@@ -2075,7 +2080,7 @@
 
 item:
     $S0 = arg
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', endline
     arg = self.'evaluate'(tokenizer, arg)
 print_it:
@@ -2086,7 +2091,7 @@
     eq arg, ';', nextitem
     eq arg, ',', comma
     $S0 = arg
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', endline
     SyntaxError()
 comma:
@@ -2103,7 +2108,7 @@
     $I0 = defined arg
     unless $I0 goto finish
     $S0 = arg
-    upcase $S0
+    $S0 = upcase $S0
     eq $S0, 'ELSE', finish
     goto item
 finish:

Modified: branches/ops_pct/examples/pir/substr.pir
==============================================================================
--- branches/ops_pct/examples/pir/substr.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/pir/substr.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -31,7 +31,7 @@
 WANE:   $I1 = length $S1
         print  $S1
         print  "\n"
-        chopn  $S1, 1
+        chopn  $S1, $S1, 1
         unless $I1 == $I3 goto WANE
 DONE:
 .end

Modified: branches/ops_pct/examples/sdl/mandel.pir
==============================================================================
--- branches/ops_pct/examples/sdl/mandel.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/sdl/mandel.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -556,9 +556,7 @@
 Optimized build
 
   [2] plain  runcore 64 bit                  3.0s
-  [2] -R cgp runcore 64 bit                  1.5s
   [2] plain  runcore 32 bit                  3.6s
-  [2] -R cgp runcore 32 bit                  1.6s
   [1] -R jit                                 1.1s
   [2] -R jit                                 0.8s
   [3] -R jit                                 0.5s

Modified: branches/ops_pct/examples/shootout/ack.pir
==============================================================================
--- branches/ops_pct/examples/shootout/ack.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/ack.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -3,7 +3,7 @@
 # $Id$
 # OUTPUT="Ack(3, 9) = 4093\n"
 #
-# ./parrot -Oc -R cgp-jit
+# ./parrot -Oc
 # RQ (Karl)
 # Seems to be an old benchmark, now deprecated by the shootout
 #

Modified: branches/ops_pct/examples/shootout/binarytrees.pir
==============================================================================
--- branches/ops_pct/examples/shootout/binarytrees.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/binarytrees.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/ops_pct/examples/shootout/fasta.pir
==============================================================================
--- branches/ops_pct/examples/shootout/fasta.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/fasta.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/ops_pct/examples/shootout/knucleotide.pir
==============================================================================
--- branches/ops_pct/examples/shootout/knucleotide.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/knucleotide.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
 .sub main :main
@@ -13,7 +13,7 @@
 	line = ''
 	.local string seq
 beginwhile_2:
-	chopn line, 1
+	line = chopn line, 1
 	seq .= line
 	line = readline stdin
 	$I0 = length line
@@ -21,7 +21,7 @@
 	$S0 = chopn line, -1
 	if $S0 != ">" goto beginwhile_2
 endwhile_2:
-	upcase seq
+	seq = upcase seq
 	sort_seq(seq, 1)
 	sort_seq(seq, 2)
 	find_seq(seq, "GGT")

Modified: branches/ops_pct/examples/shootout/partialsums.pir
==============================================================================
--- branches/ops_pct/examples/shootout/partialsums.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/partialsums.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2006-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/ops_pct/examples/shootout/pidigits.pir
==============================================================================
--- branches/ops_pct/examples/shootout/pidigits.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/pidigits.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/ops_pct/examples/shootout/random.pir
==============================================================================
--- branches/ops_pct/examples/shootout/random.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/random.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #

Modified: branches/ops_pct/examples/shootout/recursive-2.pir
==============================================================================
--- branches/ops_pct/examples/shootout/recursive-2.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/recursive-2.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -6,7 +6,7 @@
 # Fib and Tak by Joshua Isom
 
 # use less registers (leo)
-# time ./parrot -Oc -R cgp-jit recursive-2.pir 11
+# time ./parrot -Oc recursive-2.pir 11
 # real 2.32 s   (AMD X2 at 2000)
 # modified default value to n=3. Karl Forner
 

Modified: branches/ops_pct/examples/shootout/recursive.pir
==============================================================================
--- branches/ops_pct/examples/shootout/recursive.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/recursive.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -5,7 +5,7 @@
 # Ack by Leopold Toetsch
 # Fib and Tak by Joshua Isom
 # modified default value to n=3. Karl Forner
-# ./parrot -Oc -R cgp-jit recursive.pir N
+# ./parrot -Oc recursive.pir N
 
 .sub main :main
 	.param pmc argv

Modified: branches/ops_pct/examples/shootout/regexdna.pir
==============================================================================
--- branches/ops_pct/examples/shootout/regexdna.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/regexdna.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 
 .sub main :main
@@ -65,7 +65,7 @@
 	chunklen = length chunk
 	unless chunklen goto endwhile
 	# They don't say you have to match case insenitive...
-	downcase chunk
+	chunk = downcase chunk
 	seq .= chunk
 	goto beginwhile
 endwhile:
@@ -84,7 +84,7 @@
 	$I0 = $P0."from"()
 	$I1 = $P0."to"()
 	$I1 -= $I0
-	substr seq, $I0, $I1, ''
+	seq = replace seq, $I0, $I1, ''
 	goto stripfind
 endstripfind:
 	seqlen = length seq
@@ -140,7 +140,7 @@
 #	$I0 = $P0."from"()
 #	$I1 = $P0."to"()
 #	$I1 -= $I0
-#	substr seq, $I0, $I1, replacement
+#	seq = replace seq, $I0, $I1, replacement
 #	goto switchfind
 #endswitchfind:
 
@@ -164,7 +164,7 @@
 	$P0 = pop matches
 	$I0 = $P0[0]
 	$I1 = $P0[1]
-	substr seq, $I0, $I1, replacement
+	seq = replace seq, $I0, $I1, replacement
 	goto switchloop
 endswitchloop:
 #############################################

Modified: branches/ops_pct/examples/shootout/revcomp.pir
==============================================================================
--- branches/ops_pct/examples/shootout/revcomp.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/revcomp.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,5 +1,5 @@
 #!parrot
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 # Reads from stdin a file in the format made by fasta.pir
 # ./parrot -R jit
@@ -54,7 +54,7 @@
 		print line
 		goto endif
 	else:
-		chopn line, 1
+		line = chopn line, 1
 		seq .= line
 	endif:
 	goto beginwhile

Modified: branches/ops_pct/examples/shootout/takfp.pir
==============================================================================
--- branches/ops_pct/examples/shootout/takfp.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/shootout/takfp.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,8 +1,8 @@
-#!./parrot -R cgp
+#!./parrot
 # Copyright (C) 2005-2009, Parrot Foundation.
 # $Id$
 #
-# ./parrot -R cgp takfp.pir N         (N = 10 for shootout)
+# ./parrot takfp.pir N         (N = 10 for shootout)
 # by Joshua Isom
 # changed default value to N=7 (shootout default before being deprecated)
 # anyway N=10 froze my laptop. Karl Forner

Modified: branches/ops_pct/examples/tutorial/56_defined.pir
==============================================================================
--- branches/ops_pct/examples/tutorial/56_defined.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/examples/tutorial/56_defined.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -26,7 +26,7 @@
 =pod
 
 Most PMC's, but not all, should return true for C<defined>.  It all
-depends on how the PMC implements its vtable method for C<defined>.
+depends on how the PMC implements its vtable function for C<defined>.
 For example the C<Undef> PMC always returns false (0) for C<defined>.
 
 =cut

Modified: branches/ops_pct/ext/Parrot-Embed/Build.PL
==============================================================================
--- branches/ops_pct/ext/Parrot-Embed/Build.PL	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/ext/Parrot-Embed/Build.PL	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,3 +1,5 @@
+#! perl
+
 use strict;
 use warnings;
 
@@ -14,19 +16,19 @@
 diag( my $path_sep          = get_path_separator() );
 
 my $class = Module::Build->subclass(
-	code => <<"END_HERE",
-	use File::Spec;
+    code => <<"END_HERE",
+    use File::Spec;
 
-	sub ACTION_build
-	{
-		my \$self = shift;
-		my \@cmd  = ( qw( $parrot -o ),
-			map { File::Spec->catfile( 't', "greet.\$_" ) } qw( pbc pir ) );
+    sub ACTION_build
+    {
+        my \$self = shift;
+        my \@cmd  = ( qw( $parrot -o ),
+            map { File::Spec->catfile( 't', "greet.\$_" ) } qw( pbc pir ) );
 
-		system( \@cmd ) == 0 or die "Cannot compile PBC for test: \$?";
+        system( \@cmd ) == 0 or die "Cannot compile PBC for test: \$?";
 
-		\$self->SUPER::ACTION_build( \@_ );
-	}
+        \$self->SUPER::ACTION_build( \@_ );
+    }
 
     sub ACTION_test
     {
@@ -42,27 +44,27 @@
 );
 
 my $builder = $class->new(
-	module_name         => 'Parrot::Embed',
-	license             => 'perl',
-	dist_author         => 'chromatic <chromatic at wgz.org>',
-	dist_version_from   => 'lib/Parrot/Embed.pm',
-	build_requires =>
-	{
-		'Test::More'         => 0,
-		'ExtUtils::CBuilder' => 0,
-	},
-	add_to_cleanup       => [ 'Parrot-Embed-*' ],
+    module_name         => 'Parrot::Embed',
+    license             => 'perl',
+    dist_author         => 'chromatic <chromatic at wgz.org>',
+    dist_version_from   => 'lib/Parrot/Embed.pm',
+    build_requires =>
+    {
+        'Test::More'         => 0,
+        'ExtUtils::CBuilder' => 0,
+    },
+    add_to_cleanup       => [ 'Parrot-Embed-*' ],
     include_dirs         => [ $incp ],
-	extra_compiler_flags => $cflags,
-	extra_linker_flags   => $lflags,
+    extra_compiler_flags => $cflags,
+    extra_linker_flags   => $lflags,
 );
 
 $builder->create_build_script();
 
 sub in_parrot_tree
 {
-	my $cwd     = cwd();
-	return $cwd =~ /\bext\b.Parrot/;
+    my $cwd     = cwd();
+    return $cwd =~ /\bext\b.Parrot/;
 }
 
 sub get_dl_env_var
@@ -81,46 +83,48 @@
 
 sub get_compiler_flags
 {
-	my $in_parrot_tree = shift;
-	return get_flags_from_parrot_src() if $in_parrot_tree;
-	return get_flags_from_pkg_config() if $ENV{PKG_CONFIG_PATH};
+    my $in_parrot_tree = shift;
+    return get_flags_from_parrot_src() if $in_parrot_tree;
+    return get_flags_from_pkg_config() if $ENV{PKG_CONFIG_PATH};
 }
 
 sub get_flags_from_pkg_config
 {
-	require ExtUtils::PkgConfig;
-	my %pkg_info = ExtUtils::PkgConfig->find( 'parrot' );
-	return @pkg_info{qw( cflags libs )};
+    require ExtUtils::PkgConfig;
+    my %pkg_info = ExtUtils::PkgConfig->find( 'parrot' );
+    return @pkg_info{qw( cflags libs )};
 }
 
 sub get_flags_from_parrot_src
 {
-	my $updir = updir();
-	my $file  = catfile( $updir, $updir, 'parrot.pc' );
-	open( my $fh, '<', $file ) or die "Cannot read $file: $!\n";
-
-	my %vars;
-	while (<$fh>)
-	{
-		chomp;
-		last unless /\S/;
-		my ($var, $value) = split(/=/, $_);
-		$vars{$var}       = $value;
-	}
-
-	while (<$fh>)
-	{
-		chomp;
-		last unless /\S/;
-		my ($var, $value) =  split(/: /, $_);
-		$value            =~ s/\${(\w+)}/$vars{$1}/g;
-		$vars{$var}       =  $value;
-	}
+    my $updir   = updir();
+    my $basedir = Cwd::realpath( catdir( cwd(), $updir, $updir ) );
+    my $file    = catfile( $basedir, 'parrot.pc' );
+    open( my $fh, '<', $file ) or die "Cannot read $file: $!\n";
+
+    my %vars;
+    while (<$fh>)
+    {
+        chomp;
+        last unless /\S/;
+    }
+
+    $vars{libdir}     = catdir( $basedir, 'lib' );
+    $vars{includedir} = catdir( $basedir, 'include' );
+
+    while (<$fh>)
+    {
+        chomp;
+        last unless /\S/;
+        my ($var, $value) =  split(/: /, $_);
+        $value            =~ s/\${(\w+)}/$vars{$1}/g;
+        $vars{$var}       =  $value;
+    }
 
     $vars{Cflags} .= ' -I' . catdir( ($updir) x 2, 'include' );
     $vars{Libs}   .= $^O =~ /Win32/ ? ' ..\..\libparrot.lib' : " -L$libp";
 
-	return @vars{qw( Cflags Libs )};
+    return @vars{qw( Cflags Libs )};
 }
 
 sub get_paths
@@ -135,42 +139,42 @@
 
 sub get_parrot_path
 {
-	my $in_parrot_tree = shift;
-	return get_parrot_path_internal() if $in_parrot_tree;
-	return get_parrot_path_external();
+    my $in_parrot_tree = shift;
+    return get_parrot_path_internal() if $in_parrot_tree;
+    return get_parrot_path_external();
 }
 
 sub get_parrot_path_internal
 {
-	my $updir = updir();
-	my $path  = catfile(($updir) x 2, get_parrot_executable_name());
+    my $updir = updir();
+    my $path  = catfile(($updir) x 2, get_parrot_executable_name());
 
-	die "parrot apparently not built!\n" unless -e $path;
-	return $path;
+    die "parrot apparently not built!\n" unless -e $path;
+    return $path;
 }
 
 sub get_parrot_path_external
 {
-	my $parrot = get_parrot_executable_name();
+    my $parrot = get_parrot_executable_name();
 
-	for my $path ( path() )
-	{
-		my $file = catfile( $path, $parrot );
-		next unless -e $file;
-		return $file;
-	}
+    for my $path ( path() )
+    {
+        my $file = catfile( $path, $parrot );
+        next unless -e $file;
+        return $file;
+    }
 
-	die "parrot apparently not installed in \$PATH\n";
+    die "parrot apparently not installed in \$PATH\n";
 }
 
 sub get_parrot_executable_name
 {
-	return 'parrot' unless $^O =~ /Win32/;
-	return 'parrot.exe';
+    return 'parrot' unless $^O =~ /Win32/;
+    return 'parrot.exe';
 }
 
 sub diag
 {
-	return unless $ENV{PE_DEBUG};
-	print STDERR "<$_>\n" for @_;
+    return unless $ENV{PE_DEBUG};
+    print STDERR "<$_>\n" for @_;
 }

Modified: branches/ops_pct/ext/Parrot-Embed/MANIFEST
==============================================================================
--- branches/ops_pct/ext/Parrot-Embed/MANIFEST	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/ext/Parrot-Embed/MANIFEST	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,7 +1,6 @@
 Build.PL
 Changes
 MANIFEST
-META.yml # Will be created by "make dist"
 README
 lib/Parrot/Embed.pm
 lib/Parrot/Embed.xs

Modified: branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs
==============================================================================
--- branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/ext/Parrot-Embed/lib/Parrot/Embed.xs	Wed Apr 28 03:18:28 2010	(r46097)
@@ -223,7 +223,7 @@
     pmc_actual = pmc->pmc;
     interp     = get_interp( pmc->interp );
     arg_string = Parrot_str_new_constant( interp, argument );
-    Parrot_ext_call( interp, pmc_actual, signature, arg_string, &out_pmc );
+    Parrot_pcc_invoke_sub_from_c_args( interp, pmc_actual, signature, arg_string, &out_pmc );
     RETVAL     = make_pmc( aTHX_ pmc->interp, out_pmc );
 OUTPUT:
     RETVAL

Modified: branches/ops_pct/ext/Parrot-Embed/t/interp.t
==============================================================================
--- branches/ops_pct/ext/Parrot-Embed/t/interp.t	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/ext/Parrot-Embed/t/interp.t	Wed Apr 28 03:18:28 2010	(r46097)
@@ -1,12 +1,12 @@
 #!perl
 
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 
 use strict;
 use warnings;
 
-use Test::More tests => 26;
+use Test::More tests => 23;
 use File::Spec;
 
 my $hello_pbc = File::Spec->catfile( 't', 'greet.pbc' );
@@ -45,7 +45,7 @@
     '... but again, not if there is no global of that name there' );
 
 can_ok( $global_greet, 'invoke' );
-my $pmc = $global_greet->invoke( 'PS', 'Bob' );
+my $pmc = $global_greet->invoke( 'S->P', 'Bob' );
 ok( $pmc, 'invoke() should return a PMC, given that signature' );
 
 is( $pmc->get_string(), 'Hello, Bob!', '... containing a string returned in the PMC' );
@@ -66,27 +66,35 @@
 ok( $eval, 'compile() should compile PIR code and return a PMC' );
 isa_ok( $eval, 'Parrot::PMC' );
 
+=for comment
+
 TODO:
 {
     local $TODO = 'compile_string() returns wrong results';
-    ok( !$interp->compile('blah'), '... but only for valid PIR' );
+    #  ok( !$interp->compile('blah'), '... but only for valid PIR' );
 }
 
-$pmc = $else_greet->invoke( 'P', '' );
+$pmc = $else_greet->invoke( 'S->P', '' );
 is( $pmc->get_string(), 'Hiya!', '... calling the passed-in subroutine' );
 
 my $foo = $interp->find_global('foo');
-$pmc = $foo->invoke( 'PS', 'BAR' );
+$pmc = $foo->invoke( 'S->P', 'BAR' );
 is( $pmc->get_string(), 'BAR FOO ',
     '... and compiled sub should work just like any other Sub pmc' );
 
+my $foo;
+
+=cut
+
+my $foo;
+
 {
     my $die_interp = $module->new($interp);
     eval { $die_interp->load_file($hello_pbc) };
     $foo = $die_interp->find_global('greet');
 }
 
-$pmc = $foo->invoke( 'PS', 'out of scope' );
+$pmc = $foo->invoke( 'S->P', 'out of scope' );
 is(
     $pmc->get_string(),
     'Hello, out of scope!',

Deleted: branches/ops_pct/ext/nqp-rx/.gitignore
==============================================================================
--- branches/ops_pct/ext/nqp-rx/.gitignore	Wed Apr 28 03:18:28 2010	(r46096)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,15 +0,0 @@
-Makefile
-/parrot
-/parrot_install
-.*.swp
-*.c
-*.o
-Regex.pbc
-HLL.pbc
-P6Regex
-P6Regex.pbc
-nqp
-nqp.pbc
-src/gen/*.pir
-src/stage1
-src/stage2

Modified: branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -99,7 +99,7 @@
     sigil = substr $S0, 0, 1
     $I0 = index '$@%&', sigil
     if $I0 < 0 goto sigil_done
-    substr $S0, 0, 1, ''
+    $S0 = replace $S0, 0, 1, ''
     ns[0] = $S0
     $S0 = ns[-1]
     $S0 = concat sigil, $S0
@@ -522,7 +522,7 @@
 .end
 
 
-.sub 'split_words' :method
+.sub 'split_words' :method :nsentry
     .param string words
     .local int pos, eos
     .local pmc result
@@ -854,111 +854,117 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1267204683.33533")
+.sub "_block11"  :anon :subid("10_1271948647.57035")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
 .annotate "line", 5
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
-    $P296 = $P14()
+    $P339 = $P14()
 .annotate "line", 1
-    .return ($P296)
+    .return ($P339)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post94") :outer("10_1267204683.33533")
+.sub "" :load :init :subid("post103") :outer("10_1271948647.57035")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1267204683.33533" 
+    .const 'Sub' $P12 = "10_1271948647.57035" 
     .local pmc block
     set block, $P12
-    $P297 = get_root_global ["parrot"], "P6metaclass"
-    $P297."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
+    $P340 = get_root_global ["parrot"], "P6metaclass"
+    $P340."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1267204683.33533") :outer("10_1267204683.33533")
+.sub "_block13"  :subid("11_1271948647.57035") :outer("10_1271948647.57035")
 .annotate "line", 5
-    .const 'Sub' $P286 = "92_1267204683.33533" 
-    capture_lex $P286
-    .const 'Sub' $P279 = "90_1267204683.33533" 
-    capture_lex $P279
-    .const 'Sub' $P266 = "87_1267204683.33533" 
+    .const 'Sub' $P329 = "101_1271948647.57035" 
+    capture_lex $P329
+    .const 'Sub' $P322 = "99_1271948647.57035" 
+    capture_lex $P322
+    .const 'Sub' $P309 = "96_1271948647.57035" 
+    capture_lex $P309
+    .const 'Sub' $P277 = "91_1271948647.57035" 
+    capture_lex $P277
+    .const 'Sub' $P271 = "89_1271948647.57035" 
+    capture_lex $P271
+    .const 'Sub' $P266 = "87_1271948647.57035" 
     capture_lex $P266
-    .const 'Sub' $P261 = "85_1267204683.33533" 
-    capture_lex $P261
-    .const 'Sub' $P255 = "83_1267204683.33533" 
-    capture_lex $P255
-    .const 'Sub' $P249 = "81_1267204683.33533" 
+    .const 'Sub' $P260 = "85_1271948647.57035" 
+    capture_lex $P260
+    .const 'Sub' $P254 = "83_1271948647.57035" 
+    capture_lex $P254
+    .const 'Sub' $P249 = "81_1271948647.57035" 
     capture_lex $P249
-    .const 'Sub' $P244 = "79_1267204683.33533" 
+    .const 'Sub' $P244 = "79_1271948647.57035" 
     capture_lex $P244
-    .const 'Sub' $P239 = "77_1267204683.33533" 
+    .const 'Sub' $P239 = "77_1271948647.57035" 
     capture_lex $P239
-    .const 'Sub' $P234 = "75_1267204683.33533" 
+    .const 'Sub' $P234 = "75_1271948647.57035" 
     capture_lex $P234
-    .const 'Sub' $P229 = "73_1267204683.33533" 
+    .const 'Sub' $P229 = "73_1271948647.57035" 
     capture_lex $P229
-    .const 'Sub' $P224 = "71_1267204683.33533" 
+    .const 'Sub' $P224 = "71_1271948647.57035" 
     capture_lex $P224
-    .const 'Sub' $P219 = "69_1267204683.33533" 
+    .const 'Sub' $P219 = "69_1271948647.57035" 
     capture_lex $P219
-    .const 'Sub' $P208 = "65_1267204683.33533" 
+    .const 'Sub' $P208 = "65_1271948647.57035" 
     capture_lex $P208
-    .const 'Sub' $P195 = "63_1267204683.33533" 
+    .const 'Sub' $P195 = "63_1271948647.57035" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1267204683.33533" 
+    .const 'Sub' $P183 = "61_1271948647.57035" 
     capture_lex $P183
-    .const 'Sub' $P176 = "59_1267204683.33533" 
+    .const 'Sub' $P176 = "59_1271948647.57035" 
     capture_lex $P176
-    .const 'Sub' $P167 = "57_1267204683.33533" 
+    .const 'Sub' $P167 = "57_1271948647.57035" 
     capture_lex $P167
-    .const 'Sub' $P160 = "55_1267204683.33533" 
+    .const 'Sub' $P160 = "55_1271948647.57035" 
     capture_lex $P160
-    .const 'Sub' $P151 = "53_1267204683.33533" 
+    .const 'Sub' $P151 = "53_1271948647.57035" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1267204683.33533" 
+    .const 'Sub' $P144 = "51_1271948647.57035" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1267204683.33533" 
+    .const 'Sub' $P135 = "49_1271948647.57035" 
     capture_lex $P135
-    .const 'Sub' $P128 = "47_1267204683.33533" 
+    .const 'Sub' $P128 = "47_1271948647.57035" 
     capture_lex $P128
-    .const 'Sub' $P121 = "45_1267204683.33533" 
+    .const 'Sub' $P121 = "45_1271948647.57035" 
     capture_lex $P121
-    .const 'Sub' $P111 = "43_1267204683.33533" 
+    .const 'Sub' $P111 = "43_1271948647.57035" 
     capture_lex $P111
-    .const 'Sub' $P103 = "41_1267204683.33533" 
+    .const 'Sub' $P103 = "41_1271948647.57035" 
     capture_lex $P103
-    .const 'Sub' $P93 = "40_1267204683.33533" 
+    .const 'Sub' $P93 = "40_1271948647.57035" 
     capture_lex $P93
-    .const 'Sub' $P87 = "38_1267204683.33533" 
+    .const 'Sub' $P87 = "38_1271948647.57035" 
     capture_lex $P87
-    .const 'Sub' $P82 = "36_1267204683.33533" 
+    .const 'Sub' $P82 = "36_1271948647.57035" 
     capture_lex $P82
-    .const 'Sub' $P74 = "34_1267204683.33533" 
+    .const 'Sub' $P74 = "34_1271948647.57035" 
     capture_lex $P74
-    .const 'Sub' $P68 = "32_1267204683.33533" 
+    .const 'Sub' $P68 = "32_1271948647.57035" 
     capture_lex $P68
-    .const 'Sub' $P62 = "30_1267204683.33533" 
+    .const 'Sub' $P62 = "30_1271948647.57035" 
     capture_lex $P62
-    .const 'Sub' $P56 = "28_1267204683.33533" 
+    .const 'Sub' $P56 = "28_1271948647.57035" 
     capture_lex $P56
-    .const 'Sub' $P23 = "14_1267204683.33533" 
+    .const 'Sub' $P23 = "14_1271948647.57035" 
     capture_lex $P23
-    .const 'Sub' $P15 = "12_1267204683.33533" 
+    .const 'Sub' $P15 = "12_1271948647.57035" 
     capture_lex $P15
 .annotate "line", 33
-    .const 'Sub' $P286 = "92_1267204683.33533" 
-    capture_lex $P286
+    .const 'Sub' $P329 = "101_1271948647.57035" 
+    capture_lex $P329
 .annotate "line", 5
-    .return ($P286)
+    .return ($P329)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "ws"  :subid("12_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1042,7 +1048,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1267204683.33533") :method
+.sub "!PREFIX__ws"  :subid("13_1271948647.57035") :method
 .annotate "line", 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1051,7 +1057,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "termish"  :subid("14_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx24_tgt
     .local int rx24_pos
@@ -1061,7 +1067,7 @@
     .local pmc rx24_cur
     (rx24_cur, rx24_pos, rx24_tgt) = self."!cursor_start"()
     rx24_cur."!cursor_debug"("START ", "termish")
-    rx24_cur."!cursor_caparray"("prefixish", "postfixish")
+    rx24_cur."!cursor_caparray"("postfixish", "prefixish")
     .lex unicode:"$\x{a2}", rx24_cur
     .local pmc match
     .lex "$/", match
@@ -1143,7 +1149,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1267204683.33533") :method
+.sub "!PREFIX__termish"  :subid("15_1271948647.57035") :method
 .annotate "line", 5
     new $P26, "ResizablePMCArray"
     push $P26, ""
@@ -1152,7 +1158,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1267204683.33533") :method
+.sub "term"  :subid("16_1271948647.57035") :method
 .annotate "line", 13
     $P33 = self."!protoregex"("term")
     .return ($P33)
@@ -1160,7 +1166,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1267204683.33533") :method
+.sub "!PREFIX__term"  :subid("17_1271948647.57035") :method
 .annotate "line", 13
     $P35 = self."!PREFIX__!protoregex"("term")
     .return ($P35)
@@ -1168,7 +1174,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1267204683.33533") :method
+.sub "infix"  :subid("18_1271948647.57035") :method
 .annotate "line", 14
     $P37 = self."!protoregex"("infix")
     .return ($P37)
@@ -1176,7 +1182,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1267204683.33533") :method
+.sub "!PREFIX__infix"  :subid("19_1271948647.57035") :method
 .annotate "line", 14
     $P39 = self."!PREFIX__!protoregex"("infix")
     .return ($P39)
@@ -1184,7 +1190,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1267204683.33533") :method
+.sub "prefix"  :subid("20_1271948647.57035") :method
 .annotate "line", 15
     $P41 = self."!protoregex"("prefix")
     .return ($P41)
@@ -1192,7 +1198,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1267204683.33533") :method
+.sub "!PREFIX__prefix"  :subid("21_1271948647.57035") :method
 .annotate "line", 15
     $P43 = self."!PREFIX__!protoregex"("prefix")
     .return ($P43)
@@ -1200,7 +1206,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1267204683.33533") :method
+.sub "postfix"  :subid("22_1271948647.57035") :method
 .annotate "line", 16
     $P45 = self."!protoregex"("postfix")
     .return ($P45)
@@ -1208,7 +1214,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1267204683.33533") :method
+.sub "!PREFIX__postfix"  :subid("23_1271948647.57035") :method
 .annotate "line", 16
     $P47 = self."!PREFIX__!protoregex"("postfix")
     .return ($P47)
@@ -1216,7 +1222,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1267204683.33533") :method
+.sub "circumfix"  :subid("24_1271948647.57035") :method
 .annotate "line", 17
     $P49 = self."!protoregex"("circumfix")
     .return ($P49)
@@ -1224,7 +1230,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1267204683.33533") :method
+.sub "!PREFIX__circumfix"  :subid("25_1271948647.57035") :method
 .annotate "line", 17
     $P51 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P51)
@@ -1232,7 +1238,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1267204683.33533") :method
+.sub "postcircumfix"  :subid("26_1271948647.57035") :method
 .annotate "line", 18
     $P53 = self."!protoregex"("postcircumfix")
     .return ($P53)
@@ -1240,7 +1246,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1267204683.33533") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1271948647.57035") :method
 .annotate "line", 18
     $P55 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P55)
@@ -1248,7 +1254,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "term:sym<circumfix>"  :subid("28_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx57_tgt
     .local int rx57_pos
@@ -1306,7 +1312,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1267204683.33533") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1271948647.57035") :method
 .annotate "line", 5
     $P59 = self."!PREFIX__!subrule"("circumfix", "")
     new $P60, "ResizablePMCArray"
@@ -1316,7 +1322,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "infixish"  :subid("30_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx63_tgt
     .local int rx63_pos
@@ -1374,7 +1380,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1267204683.33533") :method
+.sub "!PREFIX__infixish"  :subid("31_1271948647.57035") :method
 .annotate "line", 5
     $P65 = self."!PREFIX__!subrule"("OPER=infix", "")
     new $P66, "ResizablePMCArray"
@@ -1384,7 +1390,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "prefixish"  :subid("32_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx69_tgt
     .local int rx69_pos
@@ -1447,7 +1453,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1267204683.33533") :method
+.sub "!PREFIX__prefixish"  :subid("33_1271948647.57035") :method
 .annotate "line", 5
     $P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
     new $P72, "ResizablePMCArray"
@@ -1457,7 +1463,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "postfixish"  :subid("34_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx75_tgt
     .local int rx75_pos
@@ -1531,7 +1537,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1267204683.33533") :method
+.sub "!PREFIX__postfixish"  :subid("35_1271948647.57035") :method
 .annotate "line", 5
     $P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
     $P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
@@ -1543,7 +1549,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "nullterm"  :subid("36_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx83_tgt
     .local int rx83_pos
@@ -1594,7 +1600,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1267204683.33533") :method
+.sub "!PREFIX__nullterm"  :subid("37_1271948647.57035") :method
 .annotate "line", 5
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -1603,7 +1609,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "nullterm_alt"  :subid("38_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 5
     .local string rx88_tgt
     .local int rx88_pos
@@ -1661,7 +1667,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1267204683.33533") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1271948647.57035") :method
 .annotate "line", 5
     $P90 = self."!PREFIX__!subrule"("term", "")
     new $P91, "ResizablePMCArray"
@@ -1671,7 +1677,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nulltermish"  :subid("40_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "nulltermish"  :subid("40_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     new $P95, 'ExceptionHandler'
     set_addr $P95, control_94
@@ -1698,7 +1704,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_delimited"  :subid("41_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx104_tgt
     .local int rx104_pos
@@ -1780,7 +1786,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1267204683.33533") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1271948647.57035") :method
 .annotate "line", 33
     $P106 = self."!PREFIX__!subrule"("starter", "")
     new $P107, "ResizablePMCArray"
@@ -1790,7 +1796,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_atom"  :subid("43_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx112_tgt
     .local int rx112_pos
@@ -1881,7 +1887,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1267204683.33533") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1271948647.57035") :method
 .annotate "line", 33
     new $P114, "ResizablePMCArray"
     push $P114, ""
@@ -1890,7 +1896,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "decint"  :subid("45_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx122_tgt
     .local int rx122_pos
@@ -1962,7 +1968,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1267204683.33533") :method
+.sub "!PREFIX__decint"  :subid("46_1271948647.57035") :method
 .annotate "line", 33
     new $P124, "ResizablePMCArray"
     push $P124, ""
@@ -1971,7 +1977,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("47_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "decints"  :subid("47_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx129_tgt
     .local int rx129_pos
@@ -1980,7 +1986,7 @@
     .local int rx129_rep
     .local pmc rx129_cur
     (rx129_cur, rx129_pos, rx129_tgt) = self."!cursor_start"()
-    rx129_cur."!cursor_debug"("START ", "hexints")
+    rx129_cur."!cursor_debug"("START ", "decints")
     rx129_cur."!cursor_caparray"("decint")
     .lex unicode:"$\x{a2}", rx129_cur
     .local pmc match
@@ -2037,8 +2043,8 @@
     goto rxquantr133_loop
   rxquantr133_done:
   # rx pass
-    rx129_cur."!cursor_pass"(rx129_pos, "hexints")
-    rx129_cur."!cursor_debug"("PASS  ", "hexints", " at pos=", rx129_pos)
+    rx129_cur."!cursor_pass"(rx129_pos, "decints")
+    rx129_cur."!cursor_debug"("PASS  ", "decints", " at pos=", rx129_pos)
     .return (rx129_cur)
   rx129_fail:
 .annotate "line", 33
@@ -2048,14 +2054,14 @@
     jump $I10
   rx129_done:
     rx129_cur."!cursor_fail"()
-    rx129_cur."!cursor_debug"("FAIL  ", "hexints")
+    rx129_cur."!cursor_debug"("FAIL  ", "decints")
     .return (rx129_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("48_1267204683.33533") :method
+.sub "!PREFIX__decints"  :subid("48_1271948647.57035") :method
 .annotate "line", 33
     new $P131, "ResizablePMCArray"
     push $P131, ""
@@ -2064,7 +2070,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "hexint"  :subid("49_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx136_tgt
     .local int rx136_pos
@@ -2145,7 +2151,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1267204683.33533") :method
+.sub "!PREFIX__hexint"  :subid("50_1271948647.57035") :method
 .annotate "line", 33
     new $P138, "ResizablePMCArray"
     push $P138, ""
@@ -2154,7 +2160,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "hexints"  :subid("51_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2238,7 +2244,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1267204683.33533") :method
+.sub "!PREFIX__hexints"  :subid("52_1271948647.57035") :method
 .annotate "line", 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2247,7 +2253,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "octint"  :subid("53_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2328,7 +2334,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1267204683.33533") :method
+.sub "!PREFIX__octint"  :subid("54_1271948647.57035") :method
 .annotate "line", 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2337,7 +2343,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "octints"  :subid("55_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx161_tgt
     .local int rx161_pos
@@ -2421,7 +2427,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1267204683.33533") :method
+.sub "!PREFIX__octints"  :subid("56_1271948647.57035") :method
 .annotate "line", 33
     new $P163, "ResizablePMCArray"
     push $P163, ""
@@ -2430,7 +2436,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "binint"  :subid("57_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx168_tgt
     .local int rx168_pos
@@ -2511,7 +2517,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1267204683.33533") :method
+.sub "!PREFIX__binint"  :subid("58_1271948647.57035") :method
 .annotate "line", 33
     new $P170, "ResizablePMCArray"
     push $P170, ""
@@ -2520,7 +2526,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "binints"  :subid("59_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx177_tgt
     .local int rx177_pos
@@ -2604,7 +2610,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1267204683.33533") :method
+.sub "!PREFIX__binints"  :subid("60_1271948647.57035") :method
 .annotate "line", 33
     new $P179, "ResizablePMCArray"
     push $P179, ""
@@ -2613,7 +2619,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "integer"  :subid("61_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx184_tgt
     .local int rx184_pos
@@ -2761,7 +2767,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1267204683.33533") :method
+.sub "!PREFIX__integer"  :subid("62_1271948647.57035") :method
 .annotate "line", 33
     $P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
     $P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
@@ -2779,7 +2785,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "dec_number"  :subid("63_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -2958,7 +2964,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1267204683.33533") :method
+.sub "!PREFIX__dec_number"  :subid("64_1271948647.57035") :method
 .annotate "line", 33
     new $P198, "ResizablePMCArray"
     push $P198, ""
@@ -2969,7 +2975,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "escale"  :subid("65_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx209_tgt
     .local int rx209_pos
@@ -3046,7 +3052,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1267204683.33533") :method
+.sub "!PREFIX__escale"  :subid("66_1271948647.57035") :method
 .annotate "line", 33
     new $P211, "ResizablePMCArray"
     push $P211, "e"
@@ -3056,7 +3062,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1267204683.33533") :method
+.sub "quote_escape"  :subid("67_1271948647.57035") :method
 .annotate "line", 79
     $P216 = self."!protoregex"("quote_escape")
     .return ($P216)
@@ -3064,7 +3070,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1267204683.33533") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1271948647.57035") :method
 .annotate "line", 79
     $P218 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P218)
@@ -3072,7 +3078,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<backslash>"  :subid("69_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx220_tgt
     .local int rx220_pos
@@ -3134,7 +3140,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1271948647.57035") :method
 .annotate "line", 33
     new $P222, "ResizablePMCArray"
     push $P222, "\\\\"
@@ -3143,7 +3149,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<stopper>"  :subid("71_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx225_tgt
     .local int rx225_pos
@@ -3212,7 +3218,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1271948647.57035") :method
 .annotate "line", 33
     new $P227, "ResizablePMCArray"
     push $P227, "\\"
@@ -3221,7 +3227,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<bs>"  :subid("73_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx230_tgt
     .local int rx230_pos
@@ -3283,7 +3289,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1271948647.57035") :method
 .annotate "line", 33
     new $P232, "ResizablePMCArray"
     push $P232, "\\b"
@@ -3292,7 +3298,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<nl>"  :subid("75_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx235_tgt
     .local int rx235_pos
@@ -3354,7 +3360,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1271948647.57035") :method
 .annotate "line", 33
     new $P237, "ResizablePMCArray"
     push $P237, "\\n"
@@ -3363,7 +3369,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<cr>"  :subid("77_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx240_tgt
     .local int rx240_pos
@@ -3425,7 +3431,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1271948647.57035") :method
 .annotate "line", 33
     new $P242, "ResizablePMCArray"
     push $P242, "\\r"
@@ -3434,7 +3440,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<tab>"  :subid("79_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx245_tgt
     .local int rx245_pos
@@ -3496,7 +3502,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1271948647.57035") :method
 .annotate "line", 33
     new $P247, "ResizablePMCArray"
     push $P247, "\\t"
@@ -3505,7 +3511,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("81_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<ff>"  :subid("81_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
     .local string rx250_tgt
     .local int rx250_pos
@@ -3514,7 +3520,7 @@
     .local int rx250_rep
     .local pmc rx250_cur
     (rx250_cur, rx250_pos, rx250_tgt) = self."!cursor_start"()
-    rx250_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+    rx250_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
     .lex unicode:"$\x{a2}", rx250_cur
     .local pmc match
     .lex "$/", match
@@ -3536,57 +3542,21 @@
     set_addr $I10, rxscan253_loop
     rx250_cur."!mark_push"(0, rx250_pos, $I10)
   rxscan253_done:
-.annotate "line", 88
-  # rx literal  unicode:"\\x"
+.annotate "line", 87
+  # rx literal  "\\f"
     add $I11, rx250_pos, 2
     gt $I11, rx250_eos, rx250_fail
     sub $I11, rx250_pos, rx250_off
     substr $S10, rx250_tgt, $I11, 2
-    ne $S10, unicode:"\\x", rx250_fail
+    ne $S10, "\\f", rx250_fail
     add rx250_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx250_cur."!cursor_pos"(rx250_pos)
     $P10 = rx250_cur."quotemod_check"("b")
     unless $P10, rx250_fail
-  alt254_0:
-.annotate "line", 89
-    set_addr $I10, alt254_1
-    rx250_cur."!mark_push"(0, rx250_pos, $I10)
-  # rx subrule "hexint" subtype=capture negate=
-    rx250_cur."!cursor_pos"(rx250_pos)
-    $P10 = rx250_cur."hexint"()
-    unless $P10, rx250_fail
-    rx250_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexint")
-    rx250_pos = $P10."pos"()
-    goto alt254_end
-  alt254_1:
-  # rx literal  "["
-    add $I11, rx250_pos, 1
-    gt $I11, rx250_eos, rx250_fail
-    sub $I11, rx250_pos, rx250_off
-    substr $S10, rx250_tgt, $I11, 1
-    ne $S10, "[", rx250_fail
-    add rx250_pos, 1
-  # rx subrule "hexints" subtype=capture negate=
-    rx250_cur."!cursor_pos"(rx250_pos)
-    $P10 = rx250_cur."hexints"()
-    unless $P10, rx250_fail
-    rx250_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexints")
-    rx250_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx250_pos, 1
-    gt $I11, rx250_eos, rx250_fail
-    sub $I11, rx250_pos, rx250_off
-    substr $S10, rx250_tgt, $I11, 1
-    ne $S10, "]", rx250_fail
-    add rx250_pos, 1
-  alt254_end:
-.annotate "line", 87
   # rx pass
-    rx250_cur."!cursor_pass"(rx250_pos, "quote_escape:sym<hex>")
-    rx250_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx250_pos)
+    rx250_cur."!cursor_pass"(rx250_pos, "quote_escape:sym<ff>")
+    rx250_cur."!cursor_debug"("PASS  ", "quote_escape:sym<ff>", " at pos=", rx250_pos)
     .return (rx250_cur)
   rx250_fail:
 .annotate "line", 33
@@ -3596,211 +3566,238 @@
     jump $I10
   rx250_done:
     rx250_cur."!cursor_fail"()
-    rx250_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+    rx250_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<ff>")
     .return (rx250_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("82_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1271948647.57035") :method
 .annotate "line", 33
     new $P252, "ResizablePMCArray"
-    push $P252, unicode:"\\x"
+    push $P252, "\\f"
     .return ($P252)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("83_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<hex>"  :subid("83_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
-    .local string rx256_tgt
-    .local int rx256_pos
-    .local int rx256_off
-    .local int rx256_eos
-    .local int rx256_rep
-    .local pmc rx256_cur
-    (rx256_cur, rx256_pos, rx256_tgt) = self."!cursor_start"()
-    rx256_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
-    .lex unicode:"$\x{a2}", rx256_cur
+    .local string rx255_tgt
+    .local int rx255_pos
+    .local int rx255_off
+    .local int rx255_eos
+    .local int rx255_rep
+    .local pmc rx255_cur
+    (rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
+    rx255_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+    .lex unicode:"$\x{a2}", rx255_cur
     .local pmc match
     .lex "$/", match
-    length rx256_eos, rx256_tgt
-    set rx256_off, 0
-    lt rx256_pos, 2, rx256_start
-    sub rx256_off, rx256_pos, 1
-    substr rx256_tgt, rx256_tgt, rx256_off
-  rx256_start:
+    length rx255_eos, rx255_tgt
+    set rx255_off, 0
+    lt rx255_pos, 2, rx255_start
+    sub rx255_off, rx255_pos, 1
+    substr rx255_tgt, rx255_tgt, rx255_off
+  rx255_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan259_done
-    goto rxscan259_scan
-  rxscan259_loop:
-    ($P10) = rx256_cur."from"()
+    ne $I10, -1, rxscan258_done
+    goto rxscan258_scan
+  rxscan258_loop:
+    ($P10) = rx255_cur."from"()
     inc $P10
-    set rx256_pos, $P10
-    ge rx256_pos, rx256_eos, rxscan259_done
-  rxscan259_scan:
-    set_addr $I10, rxscan259_loop
-    rx256_cur."!mark_push"(0, rx256_pos, $I10)
-  rxscan259_done:
-.annotate "line", 92
-  # rx literal  "\\o"
-    add $I11, rx256_pos, 2
-    gt $I11, rx256_eos, rx256_fail
-    sub $I11, rx256_pos, rx256_off
-    substr $S10, rx256_tgt, $I11, 2
-    ne $S10, "\\o", rx256_fail
-    add rx256_pos, 2
+    set rx255_pos, $P10
+    ge rx255_pos, rx255_eos, rxscan258_done
+  rxscan258_scan:
+    set_addr $I10, rxscan258_loop
+    rx255_cur."!mark_push"(0, rx255_pos, $I10)
+  rxscan258_done:
+.annotate "line", 89
+  # rx literal  unicode:"\\x"
+    add $I11, rx255_pos, 2
+    gt $I11, rx255_eos, rx255_fail
+    sub $I11, rx255_pos, rx255_off
+    substr $S10, rx255_tgt, $I11, 2
+    ne $S10, unicode:"\\x", rx255_fail
+    add rx255_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx256_cur."!cursor_pos"(rx256_pos)
-    $P10 = rx256_cur."quotemod_check"("b")
-    unless $P10, rx256_fail
-  alt260_0:
-.annotate "line", 93
-    set_addr $I10, alt260_1
-    rx256_cur."!mark_push"(0, rx256_pos, $I10)
-  # rx subrule "octint" subtype=capture negate=
-    rx256_cur."!cursor_pos"(rx256_pos)
-    $P10 = rx256_cur."octint"()
-    unless $P10, rx256_fail
-    rx256_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octint")
-    rx256_pos = $P10."pos"()
-    goto alt260_end
-  alt260_1:
+    rx255_cur."!cursor_pos"(rx255_pos)
+    $P10 = rx255_cur."quotemod_check"("b")
+    unless $P10, rx255_fail
+  alt259_0:
+.annotate "line", 90
+    set_addr $I10, alt259_1
+    rx255_cur."!mark_push"(0, rx255_pos, $I10)
+  # rx subrule "hexint" subtype=capture negate=
+    rx255_cur."!cursor_pos"(rx255_pos)
+    $P10 = rx255_cur."hexint"()
+    unless $P10, rx255_fail
+    rx255_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexint")
+    rx255_pos = $P10."pos"()
+    goto alt259_end
+  alt259_1:
   # rx literal  "["
-    add $I11, rx256_pos, 1
-    gt $I11, rx256_eos, rx256_fail
-    sub $I11, rx256_pos, rx256_off
-    substr $S10, rx256_tgt, $I11, 1
-    ne $S10, "[", rx256_fail
-    add rx256_pos, 1
-  # rx subrule "octints" subtype=capture negate=
-    rx256_cur."!cursor_pos"(rx256_pos)
-    $P10 = rx256_cur."octints"()
-    unless $P10, rx256_fail
-    rx256_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octints")
-    rx256_pos = $P10."pos"()
+    add $I11, rx255_pos, 1
+    gt $I11, rx255_eos, rx255_fail
+    sub $I11, rx255_pos, rx255_off
+    substr $S10, rx255_tgt, $I11, 1
+    ne $S10, "[", rx255_fail
+    add rx255_pos, 1
+  # rx subrule "hexints" subtype=capture negate=
+    rx255_cur."!cursor_pos"(rx255_pos)
+    $P10 = rx255_cur."hexints"()
+    unless $P10, rx255_fail
+    rx255_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexints")
+    rx255_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx256_pos, 1
-    gt $I11, rx256_eos, rx256_fail
-    sub $I11, rx256_pos, rx256_off
-    substr $S10, rx256_tgt, $I11, 1
-    ne $S10, "]", rx256_fail
-    add rx256_pos, 1
-  alt260_end:
-.annotate "line", 91
+    add $I11, rx255_pos, 1
+    gt $I11, rx255_eos, rx255_fail
+    sub $I11, rx255_pos, rx255_off
+    substr $S10, rx255_tgt, $I11, 1
+    ne $S10, "]", rx255_fail
+    add rx255_pos, 1
+  alt259_end:
+.annotate "line", 88
   # rx pass
-    rx256_cur."!cursor_pass"(rx256_pos, "quote_escape:sym<oct>")
-    rx256_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx256_pos)
-    .return (rx256_cur)
-  rx256_fail:
-.annotate "line", 33
-    (rx256_rep, rx256_pos, $I10, $P10) = rx256_cur."!mark_fail"(0)
-    lt rx256_pos, -1, rx256_done
-    eq rx256_pos, -1, rx256_fail
+    rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<hex>")
+    rx255_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx255_pos)
+    .return (rx255_cur)
+  rx255_fail:
+.annotate "line", 33
+    (rx255_rep, rx255_pos, $I10, $P10) = rx255_cur."!mark_fail"(0)
+    lt rx255_pos, -1, rx255_done
+    eq rx255_pos, -1, rx255_fail
     jump $I10
-  rx256_done:
-    rx256_cur."!cursor_fail"()
-    rx256_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
-    .return (rx256_cur)
+  rx255_done:
+    rx255_cur."!cursor_fail"()
+    rx255_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+    .return (rx255_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("84_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("84_1271948647.57035") :method
 .annotate "line", 33
-    new $P258, "ResizablePMCArray"
-    push $P258, "\\o"
-    .return ($P258)
+    new $P257, "ResizablePMCArray"
+    push $P257, unicode:"\\x"
+    .return ($P257)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("85_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<oct>"  :subid("85_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
-    .local string rx262_tgt
-    .local int rx262_pos
-    .local int rx262_off
-    .local int rx262_eos
-    .local int rx262_rep
-    .local pmc rx262_cur
-    (rx262_cur, rx262_pos, rx262_tgt) = self."!cursor_start"()
-    rx262_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
-    .lex unicode:"$\x{a2}", rx262_cur
+    .local string rx261_tgt
+    .local int rx261_pos
+    .local int rx261_off
+    .local int rx261_eos
+    .local int rx261_rep
+    .local pmc rx261_cur
+    (rx261_cur, rx261_pos, rx261_tgt) = self."!cursor_start"()
+    rx261_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
+    .lex unicode:"$\x{a2}", rx261_cur
     .local pmc match
     .lex "$/", match
-    length rx262_eos, rx262_tgt
-    set rx262_off, 0
-    lt rx262_pos, 2, rx262_start
-    sub rx262_off, rx262_pos, 1
-    substr rx262_tgt, rx262_tgt, rx262_off
-  rx262_start:
+    length rx261_eos, rx261_tgt
+    set rx261_off, 0
+    lt rx261_pos, 2, rx261_start
+    sub rx261_off, rx261_pos, 1
+    substr rx261_tgt, rx261_tgt, rx261_off
+  rx261_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan265_done
-    goto rxscan265_scan
-  rxscan265_loop:
-    ($P10) = rx262_cur."from"()
+    ne $I10, -1, rxscan264_done
+    goto rxscan264_scan
+  rxscan264_loop:
+    ($P10) = rx261_cur."from"()
     inc $P10
-    set rx262_pos, $P10
-    ge rx262_pos, rx262_eos, rxscan265_done
-  rxscan265_scan:
-    set_addr $I10, rxscan265_loop
-    rx262_cur."!mark_push"(0, rx262_pos, $I10)
-  rxscan265_done:
-.annotate "line", 95
-  # rx literal  "\\c"
-    add $I11, rx262_pos, 2
-    gt $I11, rx262_eos, rx262_fail
-    sub $I11, rx262_pos, rx262_off
-    substr $S10, rx262_tgt, $I11, 2
-    ne $S10, "\\c", rx262_fail
-    add rx262_pos, 2
+    set rx261_pos, $P10
+    ge rx261_pos, rx261_eos, rxscan264_done
+  rxscan264_scan:
+    set_addr $I10, rxscan264_loop
+    rx261_cur."!mark_push"(0, rx261_pos, $I10)
+  rxscan264_done:
+.annotate "line", 93
+  # rx literal  "\\o"
+    add $I11, rx261_pos, 2
+    gt $I11, rx261_eos, rx261_fail
+    sub $I11, rx261_pos, rx261_off
+    substr $S10, rx261_tgt, $I11, 2
+    ne $S10, "\\o", rx261_fail
+    add rx261_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx262_cur."!cursor_pos"(rx262_pos)
-    $P10 = rx262_cur."quotemod_check"("b")
-    unless $P10, rx262_fail
-  # rx subrule "charspec" subtype=capture negate=
-    rx262_cur."!cursor_pos"(rx262_pos)
-    $P10 = rx262_cur."charspec"()
-    unless $P10, rx262_fail
-    rx262_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("charspec")
-    rx262_pos = $P10."pos"()
+    rx261_cur."!cursor_pos"(rx261_pos)
+    $P10 = rx261_cur."quotemod_check"("b")
+    unless $P10, rx261_fail
+  alt265_0:
+.annotate "line", 94
+    set_addr $I10, alt265_1
+    rx261_cur."!mark_push"(0, rx261_pos, $I10)
+  # rx subrule "octint" subtype=capture negate=
+    rx261_cur."!cursor_pos"(rx261_pos)
+    $P10 = rx261_cur."octint"()
+    unless $P10, rx261_fail
+    rx261_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octint")
+    rx261_pos = $P10."pos"()
+    goto alt265_end
+  alt265_1:
+  # rx literal  "["
+    add $I11, rx261_pos, 1
+    gt $I11, rx261_eos, rx261_fail
+    sub $I11, rx261_pos, rx261_off
+    substr $S10, rx261_tgt, $I11, 1
+    ne $S10, "[", rx261_fail
+    add rx261_pos, 1
+  # rx subrule "octints" subtype=capture negate=
+    rx261_cur."!cursor_pos"(rx261_pos)
+    $P10 = rx261_cur."octints"()
+    unless $P10, rx261_fail
+    rx261_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octints")
+    rx261_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx261_pos, 1
+    gt $I11, rx261_eos, rx261_fail
+    sub $I11, rx261_pos, rx261_off
+    substr $S10, rx261_tgt, $I11, 1
+    ne $S10, "]", rx261_fail
+    add rx261_pos, 1
+  alt265_end:
+.annotate "line", 92
   # rx pass
-    rx262_cur."!cursor_pass"(rx262_pos, "quote_escape:sym<chr>")
-    rx262_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx262_pos)
-    .return (rx262_cur)
-  rx262_fail:
-.annotate "line", 33
-    (rx262_rep, rx262_pos, $I10, $P10) = rx262_cur."!mark_fail"(0)
-    lt rx262_pos, -1, rx262_done
-    eq rx262_pos, -1, rx262_fail
+    rx261_cur."!cursor_pass"(rx261_pos, "quote_escape:sym<oct>")
+    rx261_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx261_pos)
+    .return (rx261_cur)
+  rx261_fail:
+.annotate "line", 33
+    (rx261_rep, rx261_pos, $I10, $P10) = rx261_cur."!mark_fail"(0)
+    lt rx261_pos, -1, rx261_done
+    eq rx261_pos, -1, rx261_fail
     jump $I10
-  rx262_done:
-    rx262_cur."!cursor_fail"()
-    rx262_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
-    .return (rx262_cur)
+  rx261_done:
+    rx261_cur."!cursor_fail"()
+    rx261_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
+    .return (rx261_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("86_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("86_1271948647.57035") :method
 .annotate "line", 33
-    new $P264, "ResizablePMCArray"
-    push $P264, "\\c"
-    .return ($P264)
+    new $P263, "ResizablePMCArray"
+    push $P263, "\\o"
+    .return ($P263)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("87_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<chr>"  :subid("87_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
-    .const 'Sub' $P276 = "89_1267204683.33533" 
-    capture_lex $P276
     .local string rx267_tgt
     .local int rx267_pos
     .local int rx267_off
@@ -3808,7 +3805,7 @@
     .local int rx267_rep
     .local pmc rx267_cur
     (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
-    rx267_cur."!cursor_debug"("START ", "charname")
+    rx267_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
     .lex unicode:"$\x{a2}", rx267_cur
     .local pmc match
     .lex "$/", match
@@ -3819,73 +3816,39 @@
     substr rx267_tgt, rx267_tgt, rx267_off
   rx267_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan271_done
-    goto rxscan271_scan
-  rxscan271_loop:
+    ne $I10, -1, rxscan270_done
+    goto rxscan270_scan
+  rxscan270_loop:
     ($P10) = rx267_cur."from"()
     inc $P10
     set rx267_pos, $P10
-    ge rx267_pos, rx267_eos, rxscan271_done
-  rxscan271_scan:
-    set_addr $I10, rxscan271_loop
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
-  rxscan271_done:
-  alt272_0:
-.annotate "line", 97
-    set_addr $I10, alt272_1
+    ge rx267_pos, rx267_eos, rxscan270_done
+  rxscan270_scan:
+    set_addr $I10, rxscan270_loop
     rx267_cur."!mark_push"(0, rx267_pos, $I10)
-.annotate "line", 98
-  # rx subrule "integer" subtype=capture negate=
+  rxscan270_done:
+.annotate "line", 96
+  # rx literal  "\\c"
+    add $I11, rx267_pos, 2
+    gt $I11, rx267_eos, rx267_fail
+    sub $I11, rx267_pos, rx267_off
+    substr $S10, rx267_tgt, $I11, 2
+    ne $S10, "\\c", rx267_fail
+    add rx267_pos, 2
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."integer"()
+    $P10 = rx267_cur."quotemod_check"("b")
     unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("integer")
-    rx267_pos = $P10."pos"()
-    goto alt272_end
-  alt272_1:
-.annotate "line", 99
-  # rx enumcharlist negate=0 
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I10, 1
-    index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx267_fail
-    inc rx267_pos
-  # rx rxquantf273 ** 0..*
-    set_addr $I10, rxquantf273_loop
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
-    goto rxquantf273_done
-  rxquantf273_loop:
-  # rx enumcharlist negate=1 
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I10, 1
-    index $I11, "],#", $S10
-    ge $I11, 0, rx267_fail
-    inc rx267_pos
-    set_addr $I10, rxquantf273_loop
-    rx267_cur."!mark_push"($I274, rx267_pos, $I10)
-  rxquantf273_done:
-  # rx enumcharlist negate=0 
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I10, 1
-    index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
-    lt $I11, 0, rx267_fail
-    inc rx267_pos
-.annotate "line", 100
-  # rx subrule "before" subtype=zerowidth negate=
+  # rx subrule "charspec" subtype=capture negate=
     rx267_cur."!cursor_pos"(rx267_pos)
-    .const 'Sub' $P276 = "89_1267204683.33533" 
-    capture_lex $P276
-    $P10 = rx267_cur."before"($P276)
+    $P10 = rx267_cur."charspec"()
     unless $P10, rx267_fail
-  alt272_end:
-.annotate "line", 97
+    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("charspec")
+    rx267_pos = $P10."pos"()
   # rx pass
-    rx267_cur."!cursor_pass"(rx267_pos, "charname")
-    rx267_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx267_pos)
+    rx267_cur."!cursor_pass"(rx267_pos, "quote_escape:sym<chr>")
+    rx267_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx267_pos)
     .return (rx267_cur)
   rx267_fail:
 .annotate "line", 33
@@ -3895,493 +3858,948 @@
     jump $I10
   rx267_done:
     rx267_cur."!cursor_fail"()
-    rx267_cur."!cursor_debug"("FAIL  ", "charname")
+    rx267_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
     .return (rx267_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("88_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("88_1271948647.57035") :method
 .annotate "line", 33
-    $P269 = self."!PREFIX__!subrule"("integer", "")
-    new $P270, "ResizablePMCArray"
-    push $P270, "Z"
-    push $P270, "Y"
-    push $P270, "X"
-    push $P270, "W"
-    push $P270, "V"
-    push $P270, "U"
-    push $P270, "T"
-    push $P270, "S"
-    push $P270, "R"
-    push $P270, "Q"
-    push $P270, "P"
-    push $P270, "O"
-    push $P270, "N"
-    push $P270, "M"
-    push $P270, "L"
-    push $P270, "K"
-    push $P270, "J"
-    push $P270, "I"
-    push $P270, "H"
-    push $P270, "G"
-    push $P270, "F"
-    push $P270, "E"
-    push $P270, "D"
-    push $P270, "C"
-    push $P270, "B"
-    push $P270, "A"
-    push $P270, "z"
-    push $P270, "y"
-    push $P270, "x"
-    push $P270, "w"
-    push $P270, "v"
-    push $P270, "u"
-    push $P270, "t"
-    push $P270, "s"
-    push $P270, "r"
-    push $P270, "q"
-    push $P270, "p"
-    push $P270, "o"
-    push $P270, "n"
-    push $P270, "m"
-    push $P270, "l"
-    push $P270, "k"
-    push $P270, "j"
-    push $P270, "i"
-    push $P270, "h"
-    push $P270, "g"
-    push $P270, "f"
-    push $P270, "e"
-    push $P270, "d"
-    push $P270, "c"
-    push $P270, "b"
-    push $P270, "a"
-    push $P270, $P269
-    .return ($P270)
+    new $P269, "ResizablePMCArray"
+    push $P269, "\\c"
+    .return ($P269)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "quote_escape:sym<0>"  :subid("89_1271948647.57035") :method :outer("11_1271948647.57035")
+.annotate "line", 33
+    .local string rx272_tgt
+    .local int rx272_pos
+    .local int rx272_off
+    .local int rx272_eos
+    .local int rx272_rep
+    .local pmc rx272_cur
+    (rx272_cur, rx272_pos, rx272_tgt) = self."!cursor_start"()
+    rx272_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+    .lex unicode:"$\x{a2}", rx272_cur
+    .local pmc match
+    .lex "$/", match
+    length rx272_eos, rx272_tgt
+    set rx272_off, 0
+    lt rx272_pos, 2, rx272_start
+    sub rx272_off, rx272_pos, 1
+    substr rx272_tgt, rx272_tgt, rx272_off
+  rx272_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan275_done
+    goto rxscan275_scan
+  rxscan275_loop:
+    ($P10) = rx272_cur."from"()
+    inc $P10
+    set rx272_pos, $P10
+    ge rx272_pos, rx272_eos, rxscan275_done
+  rxscan275_scan:
+    set_addr $I10, rxscan275_loop
+    rx272_cur."!mark_push"(0, rx272_pos, $I10)
+  rxscan275_done:
+.annotate "line", 97
+  # rx literal  "\\"
+    add $I11, rx272_pos, 1
+    gt $I11, rx272_eos, rx272_fail
+    sub $I11, rx272_pos, rx272_off
+    substr $S10, rx272_tgt, $I11, 1
+    ne $S10, "\\", rx272_fail
+    add rx272_pos, 1
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_276_fail
+    rx272_cur."!mark_push"(0, rx272_pos, $I10)
+  # rx literal  "0"
+    add $I11, rx272_pos, 1
+    gt $I11, rx272_eos, rx272_fail
+    sub $I11, rx272_pos, rx272_off
+    substr $S10, rx272_tgt, $I11, 1
+    ne $S10, "0", rx272_fail
+    add rx272_pos, 1
+    set_addr $I10, rxcap_276_fail
+    ($I12, $I11) = rx272_cur."!mark_peek"($I10)
+    rx272_cur."!cursor_pos"($I11)
+    ($P10) = rx272_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx272_pos, "")
+    rx272_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_276_done
+  rxcap_276_fail:
+    goto rx272_fail
+  rxcap_276_done:
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    rx272_cur."!cursor_pos"(rx272_pos)
+    $P10 = rx272_cur."quotemod_check"("b")
+    unless $P10, rx272_fail
+  # rx pass
+    rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<0>")
+    rx272_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx272_pos)
+    .return (rx272_cur)
+  rx272_fail:
+.annotate "line", 33
+    (rx272_rep, rx272_pos, $I10, $P10) = rx272_cur."!mark_fail"(0)
+    lt rx272_pos, -1, rx272_done
+    eq rx272_pos, -1, rx272_fail
+    jump $I10
+  rx272_done:
+    rx272_cur."!cursor_fail"()
+    rx272_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
+    .return (rx272_cur)
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("90_1271948647.57035") :method
+.annotate "line", 33
+    new $P274, "ResizablePMCArray"
+    push $P274, "\\0"
+    .return ($P274)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block275"  :anon :subid("89_1267204683.33533") :method :outer("87_1267204683.33533")
+.sub "quote_escape:sym<misc>"  :subid("91_1271948647.57035") :method :outer("11_1271948647.57035")
+.annotate "line", 33
+    .const 'Sub' $P297 = "95_1271948647.57035" 
+    capture_lex $P297
+    .const 'Sub' $P290 = "94_1271948647.57035" 
+    capture_lex $P290
+    .const 'Sub' $P285 = "93_1271948647.57035" 
+    capture_lex $P285
+    .local string rx278_tgt
+    .local int rx278_pos
+    .local int rx278_off
+    .local int rx278_eos
+    .local int rx278_rep
+    .local pmc rx278_cur
+    (rx278_cur, rx278_pos, rx278_tgt) = self."!cursor_start"()
+    rx278_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
+    .lex unicode:"$\x{a2}", rx278_cur
+    .local pmc match
+    .lex "$/", match
+    length rx278_eos, rx278_tgt
+    set rx278_off, 0
+    lt rx278_pos, 2, rx278_start
+    sub rx278_off, rx278_pos, 1
+    substr rx278_tgt, rx278_tgt, rx278_off
+  rx278_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan281_done
+    goto rxscan281_scan
+  rxscan281_loop:
+    ($P10) = rx278_cur."from"()
+    inc $P10
+    set rx278_pos, $P10
+    ge rx278_pos, rx278_eos, rxscan281_done
+  rxscan281_scan:
+    set_addr $I10, rxscan281_loop
+    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+  rxscan281_done:
+.annotate "line", 98
+    rx278_cur."!cursor_pos"(rx278_pos)
+    find_lex $P282, unicode:"$\x{a2}"
+    $P283 = $P282."MATCH"()
+    store_lex "$/", $P283
+.annotate "line", 99
+    .const 'Sub' $P285 = "93_1271948647.57035" 
+    capture_lex $P285
+    $P286 = $P285()
+  # rx literal  "\\"
+    add $I11, rx278_pos, 1
+    gt $I11, rx278_eos, rx278_fail
+    sub $I11, rx278_pos, rx278_off
+    substr $S10, rx278_tgt, $I11, 1
+    ne $S10, "\\", rx278_fail
+    add rx278_pos, 1
+  alt287_0:
 .annotate "line", 100
-    .local string rx277_tgt
-    .local int rx277_pos
-    .local int rx277_off
-    .local int rx277_eos
-    .local int rx277_rep
-    .local pmc rx277_cur
-    (rx277_cur, rx277_pos, rx277_tgt) = self."!cursor_start"()
-    rx277_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx277_cur
+    set_addr $I10, alt287_1
+    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+.annotate "line", 101
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    rx278_cur."!cursor_pos"(rx278_pos)
+    $P10 = rx278_cur."quotemod_check"("b")
+    unless $P10, rx278_fail
+  alt288_0:
+.annotate "line", 102
+    set_addr $I10, alt288_1
+    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+.annotate "line", 103
+  # rx subrule $P290 subtype=capture negate=
+    rx278_cur."!cursor_pos"(rx278_pos)
+    .const 'Sub' $P290 = "94_1271948647.57035" 
+    capture_lex $P290
+    $P10 = rx278_cur.$P290()
+    unless $P10, rx278_fail
+    rx278_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("textqq")
+    rx278_pos = $P10."pos"()
+    goto alt288_end
+  alt288_1:
+.annotate "line", 104
+  # rx subcapture "x"
+    set_addr $I10, rxcap_293_fail
+    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+  # rx charclass w
+    ge rx278_pos, rx278_eos, rx278_fail
+    sub $I10, rx278_pos, rx278_off
+    is_cclass $I11, 8192, rx278_tgt, $I10
+    unless $I11, rx278_fail
+    inc rx278_pos
+    set_addr $I10, rxcap_293_fail
+    ($I12, $I11) = rx278_cur."!mark_peek"($I10)
+    rx278_cur."!cursor_pos"($I11)
+    ($P10) = rx278_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx278_pos, "")
+    rx278_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("x")
+    goto rxcap_293_done
+  rxcap_293_fail:
+    goto rx278_fail
+  rxcap_293_done:
+    rx278_cur."!cursor_pos"(rx278_pos)
+    find_lex $P294, unicode:"$\x{a2}"
+    $P295 = $P294."MATCH"()
+    store_lex "$/", $P295
+    .const 'Sub' $P297 = "95_1271948647.57035" 
+    capture_lex $P297
+    $P307 = $P297()
+  alt288_end:
+.annotate "line", 101
+    goto alt287_end
+  alt287_1:
+.annotate "line", 106
+  # rx subcapture "textq"
+    set_addr $I10, rxcap_308_fail
+    rx278_cur."!mark_push"(0, rx278_pos, $I10)
+  # rx charclass .
+    ge rx278_pos, rx278_eos, rx278_fail
+    inc rx278_pos
+    set_addr $I10, rxcap_308_fail
+    ($I12, $I11) = rx278_cur."!mark_peek"($I10)
+    rx278_cur."!cursor_pos"($I11)
+    ($P10) = rx278_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx278_pos, "")
+    rx278_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("textq")
+    goto rxcap_308_done
+  rxcap_308_fail:
+    goto rx278_fail
+  rxcap_308_done:
+  alt287_end:
+.annotate "line", 98
+  # rx pass
+    rx278_cur."!cursor_pass"(rx278_pos, "quote_escape:sym<misc>")
+    rx278_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx278_pos)
+    .return (rx278_cur)
+  rx278_fail:
+.annotate "line", 33
+    (rx278_rep, rx278_pos, $I10, $P10) = rx278_cur."!mark_fail"(0)
+    lt rx278_pos, -1, rx278_done
+    eq rx278_pos, -1, rx278_fail
+    jump $I10
+  rx278_done:
+    rx278_cur."!cursor_fail"()
+    rx278_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
+    .return (rx278_cur)
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("92_1271948647.57035") :method
+.annotate "line", 33
+    new $P280, "ResizablePMCArray"
+    push $P280, ""
+    .return ($P280)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block284"  :anon :subid("93_1271948647.57035") :outer("91_1271948647.57035")
+.annotate "line", 99
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block289"  :anon :subid("94_1271948647.57035") :method :outer("91_1271948647.57035")
+.annotate "line", 103
+    .local string rx291_tgt
+    .local int rx291_pos
+    .local int rx291_off
+    .local int rx291_eos
+    .local int rx291_rep
+    .local pmc rx291_cur
+    (rx291_cur, rx291_pos, rx291_tgt) = self."!cursor_start"()
+    rx291_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx291_cur
+    .local pmc match
+    .lex "$/", match
+    length rx291_eos, rx291_tgt
+    set rx291_off, 0
+    lt rx291_pos, 2, rx291_start
+    sub rx291_off, rx291_pos, 1
+    substr rx291_tgt, rx291_tgt, rx291_off
+  rx291_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan292_done
+    goto rxscan292_scan
+  rxscan292_loop:
+    ($P10) = rx291_cur."from"()
+    inc $P10
+    set rx291_pos, $P10
+    ge rx291_pos, rx291_eos, rxscan292_done
+  rxscan292_scan:
+    set_addr $I10, rxscan292_loop
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
+  rxscan292_done:
+  # rx charclass W
+    ge rx291_pos, rx291_eos, rx291_fail
+    sub $I10, rx291_pos, rx291_off
+    is_cclass $I11, 8192, rx291_tgt, $I10
+    if $I11, rx291_fail
+    inc rx291_pos
+  # rx pass
+    rx291_cur."!cursor_pass"(rx291_pos, "")
+    rx291_cur."!cursor_debug"("PASS  ", "", " at pos=", rx291_pos)
+    .return (rx291_cur)
+  rx291_fail:
+    (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
+    lt rx291_pos, -1, rx291_done
+    eq rx291_pos, -1, rx291_fail
+    jump $I10
+  rx291_done:
+    rx291_cur."!cursor_fail"()
+    rx291_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx291_cur)
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block296"  :anon :subid("95_1271948647.57035") :outer("91_1271948647.57035")
+.annotate "line", 104
+    find_lex $P298, "$/"
+    $P299 = $P298."CURSOR"()
+    new $P300, "String"
+    assign $P300, "Unrecognized backslash sequence: '\\"
+    find_lex $P301, "$/"
+    unless_null $P301, vivify_104
+    $P301 = root_new ['parrot';'Hash']
+  vivify_104:
+    set $P302, $P301["x"]
+    unless_null $P302, vivify_105
+    new $P302, "Undef"
+  vivify_105:
+    $S303 = $P302."Str"()
+    concat $P304, $P300, $S303
+    concat $P305, $P304, "'"
+    $P306 = $P299."panic"($P305)
+    .return ($P306)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "charname"  :subid("96_1271948647.57035") :method :outer("11_1271948647.57035")
+.annotate "line", 33
+    .const 'Sub' $P319 = "98_1271948647.57035" 
+    capture_lex $P319
+    .local string rx310_tgt
+    .local int rx310_pos
+    .local int rx310_off
+    .local int rx310_eos
+    .local int rx310_rep
+    .local pmc rx310_cur
+    (rx310_cur, rx310_pos, rx310_tgt) = self."!cursor_start"()
+    rx310_cur."!cursor_debug"("START ", "charname")
+    .lex unicode:"$\x{a2}", rx310_cur
+    .local pmc match
+    .lex "$/", match
+    length rx310_eos, rx310_tgt
+    set rx310_off, 0
+    lt rx310_pos, 2, rx310_start
+    sub rx310_off, rx310_pos, 1
+    substr rx310_tgt, rx310_tgt, rx310_off
+  rx310_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan314_done
+    goto rxscan314_scan
+  rxscan314_loop:
+    ($P10) = rx310_cur."from"()
+    inc $P10
+    set rx310_pos, $P10
+    ge rx310_pos, rx310_eos, rxscan314_done
+  rxscan314_scan:
+    set_addr $I10, rxscan314_loop
+    rx310_cur."!mark_push"(0, rx310_pos, $I10)
+  rxscan314_done:
+  alt315_0:
+.annotate "line", 110
+    set_addr $I10, alt315_1
+    rx310_cur."!mark_push"(0, rx310_pos, $I10)
+.annotate "line", 111
+  # rx subrule "integer" subtype=capture negate=
+    rx310_cur."!cursor_pos"(rx310_pos)
+    $P10 = rx310_cur."integer"()
+    unless $P10, rx310_fail
+    rx310_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("integer")
+    rx310_pos = $P10."pos"()
+    goto alt315_end
+  alt315_1:
+.annotate "line", 112
+  # rx enumcharlist negate=0 
+    ge rx310_pos, rx310_eos, rx310_fail
+    sub $I10, rx310_pos, rx310_off
+    substr $S10, rx310_tgt, $I10, 1
+    index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
+    lt $I11, 0, rx310_fail
+    inc rx310_pos
+  # rx rxquantf316 ** 0..*
+    set_addr $I10, rxquantf316_loop
+    rx310_cur."!mark_push"(0, rx310_pos, $I10)
+    goto rxquantf316_done
+  rxquantf316_loop:
+  # rx enumcharlist negate=1 
+    ge rx310_pos, rx310_eos, rx310_fail
+    sub $I10, rx310_pos, rx310_off
+    substr $S10, rx310_tgt, $I10, 1
+    index $I11, "],#", $S10
+    ge $I11, 0, rx310_fail
+    inc rx310_pos
+    set_addr $I10, rxquantf316_loop
+    rx310_cur."!mark_push"($I317, rx310_pos, $I10)
+  rxquantf316_done:
+  # rx enumcharlist negate=0 
+    ge rx310_pos, rx310_eos, rx310_fail
+    sub $I10, rx310_pos, rx310_off
+    substr $S10, rx310_tgt, $I10, 1
+    index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
+    lt $I11, 0, rx310_fail
+    inc rx310_pos
+.annotate "line", 113
+  # rx subrule "before" subtype=zerowidth negate=
+    rx310_cur."!cursor_pos"(rx310_pos)
+    .const 'Sub' $P319 = "98_1271948647.57035" 
+    capture_lex $P319
+    $P10 = rx310_cur."before"($P319)
+    unless $P10, rx310_fail
+  alt315_end:
+.annotate "line", 110
+  # rx pass
+    rx310_cur."!cursor_pass"(rx310_pos, "charname")
+    rx310_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx310_pos)
+    .return (rx310_cur)
+  rx310_fail:
+.annotate "line", 33
+    (rx310_rep, rx310_pos, $I10, $P10) = rx310_cur."!mark_fail"(0)
+    lt rx310_pos, -1, rx310_done
+    eq rx310_pos, -1, rx310_fail
+    jump $I10
+  rx310_done:
+    rx310_cur."!cursor_fail"()
+    rx310_cur."!cursor_debug"("FAIL  ", "charname")
+    .return (rx310_cur)
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__charname"  :subid("97_1271948647.57035") :method
+.annotate "line", 33
+    $P312 = self."!PREFIX__!subrule"("integer", "")
+    new $P313, "ResizablePMCArray"
+    push $P313, "Z"
+    push $P313, "Y"
+    push $P313, "X"
+    push $P313, "W"
+    push $P313, "V"
+    push $P313, "U"
+    push $P313, "T"
+    push $P313, "S"
+    push $P313, "R"
+    push $P313, "Q"
+    push $P313, "P"
+    push $P313, "O"
+    push $P313, "N"
+    push $P313, "M"
+    push $P313, "L"
+    push $P313, "K"
+    push $P313, "J"
+    push $P313, "I"
+    push $P313, "H"
+    push $P313, "G"
+    push $P313, "F"
+    push $P313, "E"
+    push $P313, "D"
+    push $P313, "C"
+    push $P313, "B"
+    push $P313, "A"
+    push $P313, "z"
+    push $P313, "y"
+    push $P313, "x"
+    push $P313, "w"
+    push $P313, "v"
+    push $P313, "u"
+    push $P313, "t"
+    push $P313, "s"
+    push $P313, "r"
+    push $P313, "q"
+    push $P313, "p"
+    push $P313, "o"
+    push $P313, "n"
+    push $P313, "m"
+    push $P313, "l"
+    push $P313, "k"
+    push $P313, "j"
+    push $P313, "i"
+    push $P313, "h"
+    push $P313, "g"
+    push $P313, "f"
+    push $P313, "e"
+    push $P313, "d"
+    push $P313, "c"
+    push $P313, "b"
+    push $P313, "a"
+    push $P313, $P312
+    .return ($P313)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block318"  :anon :subid("98_1271948647.57035") :method :outer("96_1271948647.57035")
+.annotate "line", 113
+    .local string rx320_tgt
+    .local int rx320_pos
+    .local int rx320_off
+    .local int rx320_eos
+    .local int rx320_rep
+    .local pmc rx320_cur
+    (rx320_cur, rx320_pos, rx320_tgt) = self."!cursor_start"()
+    rx320_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx320_cur
     .local pmc match
     .lex "$/", match
-    length rx277_eos, rx277_tgt
-    set rx277_off, 0
-    lt rx277_pos, 2, rx277_start
-    sub rx277_off, rx277_pos, 1
-    substr rx277_tgt, rx277_tgt, rx277_off
-  rx277_start:
+    length rx320_eos, rx320_tgt
+    set rx320_off, 0
+    lt rx320_pos, 2, rx320_start
+    sub rx320_off, rx320_pos, 1
+    substr rx320_tgt, rx320_tgt, rx320_off
+  rx320_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan278_done
-    goto rxscan278_scan
-  rxscan278_loop:
-    ($P10) = rx277_cur."from"()
+    ne $I10, -1, rxscan321_done
+    goto rxscan321_scan
+  rxscan321_loop:
+    ($P10) = rx320_cur."from"()
     inc $P10
-    set rx277_pos, $P10
-    ge rx277_pos, rx277_eos, rxscan278_done
-  rxscan278_scan:
-    set_addr $I10, rxscan278_loop
-    rx277_cur."!mark_push"(0, rx277_pos, $I10)
-  rxscan278_done:
+    set rx320_pos, $P10
+    ge rx320_pos, rx320_eos, rxscan321_done
+  rxscan321_scan:
+    set_addr $I10, rxscan321_loop
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
+  rxscan321_done:
   # rx charclass_q s r 0..-1
-    sub $I10, rx277_pos, rx277_off
-    find_not_cclass $I11, 32, rx277_tgt, $I10, rx277_eos
-    add rx277_pos, rx277_off, $I11
+    sub $I10, rx320_pos, rx320_off
+    find_not_cclass $I11, 32, rx320_tgt, $I10, rx320_eos
+    add rx320_pos, rx320_off, $I11
   # rx enumcharlist negate=0 
-    ge rx277_pos, rx277_eos, rx277_fail
-    sub $I10, rx277_pos, rx277_off
-    substr $S10, rx277_tgt, $I10, 1
+    ge rx320_pos, rx320_eos, rx320_fail
+    sub $I10, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I10, 1
     index $I11, "],#", $S10
-    lt $I11, 0, rx277_fail
-    inc rx277_pos
+    lt $I11, 0, rx320_fail
+    inc rx320_pos
   # rx pass
-    rx277_cur."!cursor_pass"(rx277_pos, "")
-    rx277_cur."!cursor_debug"("PASS  ", "", " at pos=", rx277_pos)
-    .return (rx277_cur)
-  rx277_fail:
-    (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
-    lt rx277_pos, -1, rx277_done
-    eq rx277_pos, -1, rx277_fail
+    rx320_cur."!cursor_pass"(rx320_pos, "")
+    rx320_cur."!cursor_debug"("PASS  ", "", " at pos=", rx320_pos)
+    .return (rx320_cur)
+  rx320_fail:
+    (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
+    lt rx320_pos, -1, rx320_done
+    eq rx320_pos, -1, rx320_fail
     jump $I10
-  rx277_done:
-    rx277_cur."!cursor_fail"()
-    rx277_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx277_cur)
+  rx320_done:
+    rx320_cur."!cursor_fail"()
+    rx320_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx320_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("90_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "charnames"  :subid("99_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
-    .local string rx280_tgt
-    .local int rx280_pos
-    .local int rx280_off
-    .local int rx280_eos
-    .local int rx280_rep
-    .local pmc rx280_cur
-    (rx280_cur, rx280_pos, rx280_tgt) = self."!cursor_start"()
-    rx280_cur."!cursor_debug"("START ", "charnames")
-    rx280_cur."!cursor_caparray"("charname")
-    .lex unicode:"$\x{a2}", rx280_cur
+    .local string rx323_tgt
+    .local int rx323_pos
+    .local int rx323_off
+    .local int rx323_eos
+    .local int rx323_rep
+    .local pmc rx323_cur
+    (rx323_cur, rx323_pos, rx323_tgt) = self."!cursor_start"()
+    rx323_cur."!cursor_debug"("START ", "charnames")
+    rx323_cur."!cursor_caparray"("charname")
+    .lex unicode:"$\x{a2}", rx323_cur
     .local pmc match
     .lex "$/", match
-    length rx280_eos, rx280_tgt
-    set rx280_off, 0
-    lt rx280_pos, 2, rx280_start
-    sub rx280_off, rx280_pos, 1
-    substr rx280_tgt, rx280_tgt, rx280_off
-  rx280_start:
+    length rx323_eos, rx323_tgt
+    set rx323_off, 0
+    lt rx323_pos, 2, rx323_start
+    sub rx323_off, rx323_pos, 1
+    substr rx323_tgt, rx323_tgt, rx323_off
+  rx323_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan283_done
-    goto rxscan283_scan
-  rxscan283_loop:
-    ($P10) = rx280_cur."from"()
+    ne $I10, -1, rxscan326_done
+    goto rxscan326_scan
+  rxscan326_loop:
+    ($P10) = rx323_cur."from"()
     inc $P10
-    set rx280_pos, $P10
-    ge rx280_pos, rx280_eos, rxscan283_done
-  rxscan283_scan:
-    set_addr $I10, rxscan283_loop
-    rx280_cur."!mark_push"(0, rx280_pos, $I10)
-  rxscan283_done:
-.annotate "line", 102
-  # rx rxquantr284 ** 1..*
-    set_addr $I285, rxquantr284_done
-    rx280_cur."!mark_push"(0, -1, $I285)
-  rxquantr284_loop:
+    set rx323_pos, $P10
+    ge rx323_pos, rx323_eos, rxscan326_done
+  rxscan326_scan:
+    set_addr $I10, rxscan326_loop
+    rx323_cur."!mark_push"(0, rx323_pos, $I10)
+  rxscan326_done:
+.annotate "line", 115
+  # rx rxquantr327 ** 1..*
+    set_addr $I328, rxquantr327_done
+    rx323_cur."!mark_push"(0, -1, $I328)
+  rxquantr327_loop:
   # rx subrule "ws" subtype=method negate=
-    rx280_cur."!cursor_pos"(rx280_pos)
-    $P10 = rx280_cur."ws"()
-    unless $P10, rx280_fail
-    rx280_pos = $P10."pos"()
+    rx323_cur."!cursor_pos"(rx323_pos)
+    $P10 = rx323_cur."ws"()
+    unless $P10, rx323_fail
+    rx323_pos = $P10."pos"()
   # rx subrule "charname" subtype=capture negate=
-    rx280_cur."!cursor_pos"(rx280_pos)
-    $P10 = rx280_cur."charname"()
-    unless $P10, rx280_fail
-    rx280_cur."!mark_push"(0, -1, 0, $P10)
+    rx323_cur."!cursor_pos"(rx323_pos)
+    $P10 = rx323_cur."charname"()
+    unless $P10, rx323_fail
+    rx323_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charname")
-    rx280_pos = $P10."pos"()
+    rx323_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx280_cur."!cursor_pos"(rx280_pos)
-    $P10 = rx280_cur."ws"()
-    unless $P10, rx280_fail
-    rx280_pos = $P10."pos"()
-    (rx280_rep) = rx280_cur."!mark_commit"($I285)
-    rx280_cur."!mark_push"(rx280_rep, rx280_pos, $I285)
+    rx323_cur."!cursor_pos"(rx323_pos)
+    $P10 = rx323_cur."ws"()
+    unless $P10, rx323_fail
+    rx323_pos = $P10."pos"()
+    (rx323_rep) = rx323_cur."!mark_commit"($I328)
+    rx323_cur."!mark_push"(rx323_rep, rx323_pos, $I328)
   # rx literal  ","
-    add $I11, rx280_pos, 1
-    gt $I11, rx280_eos, rx280_fail
-    sub $I11, rx280_pos, rx280_off
-    substr $S10, rx280_tgt, $I11, 1
-    ne $S10, ",", rx280_fail
-    add rx280_pos, 1
-    goto rxquantr284_loop
-  rxquantr284_done:
+    add $I11, rx323_pos, 1
+    gt $I11, rx323_eos, rx323_fail
+    sub $I11, rx323_pos, rx323_off
+    substr $S10, rx323_tgt, $I11, 1
+    ne $S10, ",", rx323_fail
+    add rx323_pos, 1
+    goto rxquantr327_loop
+  rxquantr327_done:
   # rx pass
-    rx280_cur."!cursor_pass"(rx280_pos, "charnames")
-    rx280_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx280_pos)
-    .return (rx280_cur)
-  rx280_fail:
-.annotate "line", 33
-    (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0)
-    lt rx280_pos, -1, rx280_done
-    eq rx280_pos, -1, rx280_fail
+    rx323_cur."!cursor_pass"(rx323_pos, "charnames")
+    rx323_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx323_pos)
+    .return (rx323_cur)
+  rx323_fail:
+.annotate "line", 33
+    (rx323_rep, rx323_pos, $I10, $P10) = rx323_cur."!mark_fail"(0)
+    lt rx323_pos, -1, rx323_done
+    eq rx323_pos, -1, rx323_fail
     jump $I10
-  rx280_done:
-    rx280_cur."!cursor_fail"()
-    rx280_cur."!cursor_debug"("FAIL  ", "charnames")
-    .return (rx280_cur)
+  rx323_done:
+    rx323_cur."!cursor_fail"()
+    rx323_cur."!cursor_debug"("FAIL  ", "charnames")
+    .return (rx323_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("91_1267204683.33533") :method
+.sub "!PREFIX__charnames"  :subid("100_1271948647.57035") :method
 .annotate "line", 33
-    new $P282, "ResizablePMCArray"
-    push $P282, ""
-    .return ($P282)
+    new $P325, "ResizablePMCArray"
+    push $P325, ""
+    .return ($P325)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("92_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "charspec"  :subid("101_1271948647.57035") :method :outer("11_1271948647.57035")
 .annotate "line", 33
-    .local string rx287_tgt
-    .local int rx287_pos
-    .local int rx287_off
-    .local int rx287_eos
-    .local int rx287_rep
-    .local pmc rx287_cur
-    (rx287_cur, rx287_pos, rx287_tgt) = self."!cursor_start"()
-    rx287_cur."!cursor_debug"("START ", "charspec")
-    .lex unicode:"$\x{a2}", rx287_cur
+    .local string rx330_tgt
+    .local int rx330_pos
+    .local int rx330_off
+    .local int rx330_eos
+    .local int rx330_rep
+    .local pmc rx330_cur
+    (rx330_cur, rx330_pos, rx330_tgt) = self."!cursor_start"()
+    rx330_cur."!cursor_debug"("START ", "charspec")
+    .lex unicode:"$\x{a2}", rx330_cur
     .local pmc match
     .lex "$/", match
-    length rx287_eos, rx287_tgt
-    set rx287_off, 0
-    lt rx287_pos, 2, rx287_start
-    sub rx287_off, rx287_pos, 1
-    substr rx287_tgt, rx287_tgt, rx287_off
-  rx287_start:
+    length rx330_eos, rx330_tgt
+    set rx330_off, 0
+    lt rx330_pos, 2, rx330_start
+    sub rx330_off, rx330_pos, 1
+    substr rx330_tgt, rx330_tgt, rx330_off
+  rx330_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan292_done
-    goto rxscan292_scan
-  rxscan292_loop:
-    ($P10) = rx287_cur."from"()
+    ne $I10, -1, rxscan335_done
+    goto rxscan335_scan
+  rxscan335_loop:
+    ($P10) = rx330_cur."from"()
     inc $P10
-    set rx287_pos, $P10
-    ge rx287_pos, rx287_eos, rxscan292_done
-  rxscan292_scan:
-    set_addr $I10, rxscan292_loop
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
-  rxscan292_done:
-  alt293_0:
-.annotate "line", 104
-    set_addr $I10, alt293_1
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
-.annotate "line", 105
+    set rx330_pos, $P10
+    ge rx330_pos, rx330_eos, rxscan335_done
+  rxscan335_scan:
+    set_addr $I10, rxscan335_loop
+    rx330_cur."!mark_push"(0, rx330_pos, $I10)
+  rxscan335_done:
+  alt336_0:
+.annotate "line", 117
+    set_addr $I10, alt336_1
+    rx330_cur."!mark_push"(0, rx330_pos, $I10)
+.annotate "line", 118
   # rx literal  "["
-    add $I11, rx287_pos, 1
-    gt $I11, rx287_eos, rx287_fail
-    sub $I11, rx287_pos, rx287_off
-    substr $S10, rx287_tgt, $I11, 1
-    ne $S10, "[", rx287_fail
-    add rx287_pos, 1
+    add $I11, rx330_pos, 1
+    gt $I11, rx330_eos, rx330_fail
+    sub $I11, rx330_pos, rx330_off
+    substr $S10, rx330_tgt, $I11, 1
+    ne $S10, "[", rx330_fail
+    add rx330_pos, 1
   # rx subrule "charnames" subtype=capture negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."charnames"()
-    unless $P10, rx287_fail
-    rx287_cur."!mark_push"(0, -1, 0, $P10)
+    rx330_cur."!cursor_pos"(rx330_pos)
+    $P10 = rx330_cur."charnames"()
+    unless $P10, rx330_fail
+    rx330_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charnames")
-    rx287_pos = $P10."pos"()
+    rx330_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx287_pos, 1
-    gt $I11, rx287_eos, rx287_fail
-    sub $I11, rx287_pos, rx287_off
-    substr $S10, rx287_tgt, $I11, 1
-    ne $S10, "]", rx287_fail
-    add rx287_pos, 1
-    goto alt293_end
-  alt293_1:
-    set_addr $I10, alt293_2
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
-.annotate "line", 106
+    add $I11, rx330_pos, 1
+    gt $I11, rx330_eos, rx330_fail
+    sub $I11, rx330_pos, rx330_off
+    substr $S10, rx330_tgt, $I11, 1
+    ne $S10, "]", rx330_fail
+    add rx330_pos, 1
+    goto alt336_end
+  alt336_1:
+    set_addr $I10, alt336_2
+    rx330_cur."!mark_push"(0, rx330_pos, $I10)
+.annotate "line", 119
   # rx charclass_q d r 1..-1
-    sub $I10, rx287_pos, rx287_off
-    find_not_cclass $I11, 8, rx287_tgt, $I10, rx287_eos
+    sub $I10, rx330_pos, rx330_off
+    find_not_cclass $I11, 8, rx330_tgt, $I10, rx330_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx287_fail
-    add rx287_pos, rx287_off, $I11
-  # rx rxquantr294 ** 0..*
-    set_addr $I295, rxquantr294_done
-    rx287_cur."!mark_push"(0, rx287_pos, $I295)
-  rxquantr294_loop:
+    lt $I11, $I12, rx330_fail
+    add rx330_pos, rx330_off, $I11
+  # rx rxquantr337 ** 0..*
+    set_addr $I338, rxquantr337_done
+    rx330_cur."!mark_push"(0, rx330_pos, $I338)
+  rxquantr337_loop:
   # rx literal  "_"
-    add $I11, rx287_pos, 1
-    gt $I11, rx287_eos, rx287_fail
-    sub $I11, rx287_pos, rx287_off
-    substr $S10, rx287_tgt, $I11, 1
-    ne $S10, "_", rx287_fail
-    add rx287_pos, 1
+    add $I11, rx330_pos, 1
+    gt $I11, rx330_eos, rx330_fail
+    sub $I11, rx330_pos, rx330_off
+    substr $S10, rx330_tgt, $I11, 1
+    ne $S10, "_", rx330_fail
+    add rx330_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx287_pos, rx287_off
-    find_not_cclass $I11, 8, rx287_tgt, $I10, rx287_eos
+    sub $I10, rx330_pos, rx330_off
+    find_not_cclass $I11, 8, rx330_tgt, $I10, rx330_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx287_fail
-    add rx287_pos, rx287_off, $I11
-    (rx287_rep) = rx287_cur."!mark_commit"($I295)
-    rx287_cur."!mark_push"(rx287_rep, rx287_pos, $I295)
-    goto rxquantr294_loop
-  rxquantr294_done:
-    goto alt293_end
-  alt293_2:
-    set_addr $I10, alt293_3
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
-.annotate "line", 107
+    lt $I11, $I12, rx330_fail
+    add rx330_pos, rx330_off, $I11
+    (rx330_rep) = rx330_cur."!mark_commit"($I338)
+    rx330_cur."!mark_push"(rx330_rep, rx330_pos, $I338)
+    goto rxquantr337_loop
+  rxquantr337_done:
+    goto alt336_end
+  alt336_2:
+    set_addr $I10, alt336_3
+    rx330_cur."!mark_push"(0, rx330_pos, $I10)
+.annotate "line", 120
   # rx enumcharlist negate=0 
-    ge rx287_pos, rx287_eos, rx287_fail
-    sub $I10, rx287_pos, rx287_off
-    substr $S10, rx287_tgt, $I10, 1
+    ge rx330_pos, rx330_eos, rx330_fail
+    sub $I10, rx330_pos, rx330_off
+    substr $S10, rx330_tgt, $I10, 1
     index $I11, "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx287_fail
-    inc rx287_pos
-    goto alt293_end
-  alt293_3:
-.annotate "line", 108
+    lt $I11, 0, rx330_fail
+    inc rx330_pos
+    goto alt336_end
+  alt336_3:
+.annotate "line", 121
   # rx subrule "panic" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."panic"("Unrecognized \\c character")
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-  alt293_end:
-.annotate "line", 103
+    rx330_cur."!cursor_pos"(rx330_pos)
+    $P10 = rx330_cur."panic"("Unrecognized \\c character")
+    unless $P10, rx330_fail
+    rx330_pos = $P10."pos"()
+  alt336_end:
+.annotate "line", 116
   # rx pass
-    rx287_cur."!cursor_pass"(rx287_pos, "charspec")
-    rx287_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx287_pos)
-    .return (rx287_cur)
-  rx287_fail:
-.annotate "line", 33
-    (rx287_rep, rx287_pos, $I10, $P10) = rx287_cur."!mark_fail"(0)
-    lt rx287_pos, -1, rx287_done
-    eq rx287_pos, -1, rx287_fail
+    rx330_cur."!cursor_pass"(rx330_pos, "charspec")
+    rx330_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx330_pos)
+    .return (rx330_cur)
+  rx330_fail:
+.annotate "line", 33
+    (rx330_rep, rx330_pos, $I10, $P10) = rx330_cur."!mark_fail"(0)
+    lt rx330_pos, -1, rx330_done
+    eq rx330_pos, -1, rx330_fail
     jump $I10
-  rx287_done:
-    rx287_cur."!cursor_fail"()
-    rx287_cur."!cursor_debug"("FAIL  ", "charspec")
-    .return (rx287_cur)
+  rx330_done:
+    rx330_cur."!cursor_fail"()
+    rx330_cur."!cursor_debug"("FAIL  ", "charspec")
+    .return (rx330_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("93_1267204683.33533") :method
+.sub "!PREFIX__charspec"  :subid("102_1271948647.57035") :method
 .annotate "line", 33
-    $P289 = self."!PREFIX__!subrule"("", "")
-    $P290 = self."!PREFIX__!subrule"("charnames", "[")
-    new $P291, "ResizablePMCArray"
-    push $P291, $P289
-    push $P291, "Z"
-    push $P291, "Y"
-    push $P291, "X"
-    push $P291, "W"
-    push $P291, "V"
-    push $P291, "U"
-    push $P291, "T"
-    push $P291, "S"
-    push $P291, "R"
-    push $P291, "Q"
-    push $P291, "P"
-    push $P291, "O"
-    push $P291, "N"
-    push $P291, "M"
-    push $P291, "L"
-    push $P291, "K"
-    push $P291, "J"
-    push $P291, "I"
-    push $P291, "H"
-    push $P291, "G"
-    push $P291, "F"
-    push $P291, "E"
-    push $P291, "D"
-    push $P291, "C"
-    push $P291, "B"
-    push $P291, "A"
-    push $P291, "@"
-    push $P291, "?"
-    push $P291, ""
-    push $P291, $P290
-    .return ($P291)
+    $P332 = self."!PREFIX__!subrule"("", "")
+    $P333 = self."!PREFIX__!subrule"("charnames", "[")
+    new $P334, "ResizablePMCArray"
+    push $P334, $P332
+    push $P334, "Z"
+    push $P334, "Y"
+    push $P334, "X"
+    push $P334, "W"
+    push $P334, "V"
+    push $P334, "U"
+    push $P334, "T"
+    push $P334, "S"
+    push $P334, "R"
+    push $P334, "Q"
+    push $P334, "P"
+    push $P334, "O"
+    push $P334, "N"
+    push $P334, "M"
+    push $P334, "L"
+    push $P334, "K"
+    push $P334, "J"
+    push $P334, "I"
+    push $P334, "H"
+    push $P334, "G"
+    push $P334, "F"
+    push $P334, "E"
+    push $P334, "D"
+    push $P334, "C"
+    push $P334, "B"
+    push $P334, "A"
+    push $P334, "@"
+    push $P334, "?"
+    push $P334, ""
+    push $P334, $P333
+    .return ($P334)
 .end
 
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1267204685.44293")
+.sub "_block11"  :anon :subid("10_1271948650.1622")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
 .annotate "line", 3
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
-    $P538 = $P14()
+    $P571 = $P14()
 .annotate "line", 1
-    .return ($P538)
+    .return ($P571)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post46") :outer("10_1267204685.44293")
+.sub "" :load :init :subid("post49") :outer("10_1271948650.1622")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1267204685.44293" 
+    .const 'Sub' $P12 = "10_1271948650.1622" 
     .local pmc block
     set block, $P12
-    $P539 = get_root_global ["parrot"], "P6metaclass"
-    $P539."new_class"("HLL::Actions")
+    $P572 = get_root_global ["parrot"], "P6metaclass"
+    $P572."new_class"("HLL::Actions")
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1267204685.44293") :outer("10_1267204685.44293")
+.sub "_block13"  :subid("11_1271948650.1622") :outer("10_1271948650.1622")
 .annotate "line", 3
-    .const 'Sub' $P521 = "45_1267204685.44293" 
-    capture_lex $P521
-    .const 'Sub' $P496 = "43_1267204685.44293" 
-    capture_lex $P496
-    .const 'Sub' $P465 = "42_1267204685.44293" 
-    capture_lex $P465
-    .const 'Sub' $P455 = "41_1267204685.44293" 
-    capture_lex $P455
-    .const 'Sub' $P438 = "40_1267204685.44293" 
-    capture_lex $P438
-    .const 'Sub' $P421 = "39_1267204685.44293" 
+    .const 'Sub' $P554 = "48_1271948650.1622" 
+    capture_lex $P554
+    .const 'Sub' $P529 = "46_1271948650.1622" 
+    capture_lex $P529
+    .const 'Sub' $P498 = "45_1271948650.1622" 
+    capture_lex $P498
+    .const 'Sub' $P479 = "44_1271948650.1622" 
+    capture_lex $P479
+    .const 'Sub' $P472 = "43_1271948650.1622" 
+    capture_lex $P472
+    .const 'Sub' $P462 = "42_1271948650.1622" 
+    capture_lex $P462
+    .const 'Sub' $P445 = "41_1271948650.1622" 
+    capture_lex $P445
+    .const 'Sub' $P428 = "40_1271948650.1622" 
+    capture_lex $P428
+    .const 'Sub' $P421 = "39_1271948650.1622" 
     capture_lex $P421
-    .const 'Sub' $P414 = "38_1267204685.44293" 
+    .const 'Sub' $P414 = "38_1271948650.1622" 
     capture_lex $P414
-    .const 'Sub' $P407 = "37_1267204685.44293" 
+    .const 'Sub' $P407 = "37_1271948650.1622" 
     capture_lex $P407
-    .const 'Sub' $P400 = "36_1267204685.44293" 
+    .const 'Sub' $P400 = "36_1271948650.1622" 
     capture_lex $P400
-    .const 'Sub' $P393 = "35_1267204685.44293" 
+    .const 'Sub' $P393 = "35_1271948650.1622" 
     capture_lex $P393
-    .const 'Sub' $P383 = "34_1267204685.44293" 
+    .const 'Sub' $P383 = "34_1271948650.1622" 
     capture_lex $P383
-    .const 'Sub' $P376 = "33_1267204685.44293" 
+    .const 'Sub' $P376 = "33_1271948650.1622" 
     capture_lex $P376
-    .const 'Sub' $P360 = "32_1267204685.44293" 
+    .const 'Sub' $P360 = "32_1271948650.1622" 
     capture_lex $P360
-    .const 'Sub' $P285 = "30_1267204685.44293" 
+    .const 'Sub' $P285 = "30_1271948650.1622" 
     capture_lex $P285
-    .const 'Sub' $P222 = "27_1267204685.44293" 
+    .const 'Sub' $P222 = "27_1271948650.1622" 
     capture_lex $P222
-    .const 'Sub' $P213 = "26_1267204685.44293" 
+    .const 'Sub' $P213 = "26_1271948650.1622" 
     capture_lex $P213
-    .const 'Sub' $P204 = "25_1267204685.44293" 
+    .const 'Sub' $P204 = "25_1271948650.1622" 
     capture_lex $P204
-    .const 'Sub' $P195 = "24_1267204685.44293" 
+    .const 'Sub' $P195 = "24_1271948650.1622" 
     capture_lex $P195
-    .const 'Sub' $P186 = "23_1267204685.44293" 
+    .const 'Sub' $P186 = "23_1271948650.1622" 
     capture_lex $P186
-    .const 'Sub' $P177 = "22_1267204685.44293" 
+    .const 'Sub' $P177 = "22_1271948650.1622" 
     capture_lex $P177
-    .const 'Sub' $P167 = "21_1267204685.44293" 
+    .const 'Sub' $P167 = "21_1271948650.1622" 
     capture_lex $P167
-    .const 'Sub' $P157 = "20_1267204685.44293" 
+    .const 'Sub' $P157 = "20_1271948650.1622" 
     capture_lex $P157
-    .const 'Sub' $P149 = "19_1267204685.44293" 
+    .const 'Sub' $P149 = "19_1271948650.1622" 
     capture_lex $P149
-    .const 'Sub' $P139 = "18_1267204685.44293" 
+    .const 'Sub' $P139 = "18_1271948650.1622" 
     capture_lex $P139
-    .const 'Sub' $P129 = "17_1267204685.44293" 
+    .const 'Sub' $P129 = "17_1271948650.1622" 
     capture_lex $P129
-    .const 'Sub' $P28 = "14_1267204685.44293" 
+    .const 'Sub' $P28 = "14_1271948650.1622" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1267204685.44293" 
+    .const 'Sub' $P22 = "13_1271948650.1622" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1267204685.44293" 
+    .const 'Sub' $P15 = "12_1271948650.1622" 
     capture_lex $P15
-.annotate "line", 188
-    .const 'Sub' $P521 = "45_1267204685.44293" 
-    capture_lex $P521
+.annotate "line", 197
+    .const 'Sub' $P554 = "48_1271948650.1622" 
+    capture_lex $P554
 .annotate "line", 3
-    .return ($P521)
+    .return ($P554)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "string_to_int"  :subid("12_1267204685.44293") :outer("11_1267204685.44293")
+.sub "string_to_int"  :subid("12_1271948650.1622") :outer("11_1271948650.1622")
     .param pmc param_18
     .param pmc param_19
 .annotate "line", 3
@@ -4434,7 +4852,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "ints_to_string"  :subid("13_1267204685.44293") :outer("11_1267204685.44293")
+.sub "ints_to_string"  :subid("13_1271948650.1622") :outer("11_1271948650.1622")
     .param pmc param_25
 .annotate "line", 37
     new $P24, 'ExceptionHandler'
@@ -4475,14 +4893,14 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "EXPR"  :subid("14_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "EXPR"  :subid("14_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_31
     .param pmc param_32 :optional
     .param int has_param_32 :opt_flag
 .annotate "line", 62
-    .const 'Sub' $P111 = "16_1267204685.44293" 
+    .const 'Sub' $P111 = "16_1271948650.1622" 
     capture_lex $P111
-    .const 'Sub' $P78 = "15_1267204685.44293" 
+    .const 'Sub' $P78 = "15_1271948650.1622" 
     capture_lex $P78
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -4490,10 +4908,10 @@
     push_eh $P30
     .lex "self", self
     .lex "$/", param_31
-    if has_param_32, optparam_47
+    if has_param_32, optparam_50
     new $P33, "Undef"
     set param_32, $P33
-  optparam_47:
+  optparam_50:
     .lex "$key", param_32
 .annotate "line", 64
     new $P34, "Undef"
@@ -4515,13 +4933,13 @@
     defined $I43, $P39
     if $I43, default_42
     find_lex $P44, "$/"
-    unless_null $P44, vivify_48
+    unless_null $P44, vivify_51
     $P44 = root_new ['parrot';'Hash']
-  vivify_48:
+  vivify_51:
     set $P45, $P44["OPER"]
-    unless_null $P45, vivify_49
+    unless_null $P45, vivify_52
     new $P45, "Undef"
-  vivify_49:
+  vivify_52:
     $P46 = $P45."ast"()
     set $P39, $P46
   default_42:
@@ -4536,57 +4954,57 @@
     store_lex "$past", $P51
 .annotate "line", 67
     find_lex $P53, "$/"
-    unless_null $P53, vivify_50
+    unless_null $P53, vivify_53
     $P53 = root_new ['parrot';'Hash']
-  vivify_50:
+  vivify_53:
     set $P54, $P53["OPER"]
-    unless_null $P54, vivify_51
+    unless_null $P54, vivify_54
     $P54 = root_new ['parrot';'Hash']
-  vivify_51:
+  vivify_54:
     set $P55, $P54["O"]
-    unless_null $P55, vivify_52
+    unless_null $P55, vivify_55
     $P55 = root_new ['parrot';'Hash']
-  vivify_52:
+  vivify_55:
     set $P56, $P55["pasttype"]
-    unless_null $P56, vivify_53
+    unless_null $P56, vivify_56
     new $P56, "Undef"
-  vivify_53:
+  vivify_56:
     if $P56, if_52
 .annotate "line", 68
     find_lex $P64, "$/"
-    unless_null $P64, vivify_54
+    unless_null $P64, vivify_57
     $P64 = root_new ['parrot';'Hash']
-  vivify_54:
+  vivify_57:
     set $P65, $P64["OPER"]
-    unless_null $P65, vivify_55
+    unless_null $P65, vivify_58
     $P65 = root_new ['parrot';'Hash']
-  vivify_55:
+  vivify_58:
     set $P66, $P65["O"]
-    unless_null $P66, vivify_56
+    unless_null $P66, vivify_59
     $P66 = root_new ['parrot';'Hash']
-  vivify_56:
+  vivify_59:
     set $P67, $P66["pirop"]
-    unless_null $P67, vivify_57
+    unless_null $P67, vivify_60
     new $P67, "Undef"
-  vivify_57:
+  vivify_60:
     unless $P67, if_63_end
     find_lex $P68, "$past"
     find_lex $P69, "$/"
-    unless_null $P69, vivify_58
+    unless_null $P69, vivify_61
     $P69 = root_new ['parrot';'Hash']
-  vivify_58:
+  vivify_61:
     set $P70, $P69["OPER"]
-    unless_null $P70, vivify_59
+    unless_null $P70, vivify_62
     $P70 = root_new ['parrot';'Hash']
-  vivify_59:
+  vivify_62:
     set $P71, $P70["O"]
-    unless_null $P71, vivify_60
+    unless_null $P71, vivify_63
     $P71 = root_new ['parrot';'Hash']
-  vivify_60:
+  vivify_63:
     set $P72, $P71["pirop"]
-    unless_null $P72, vivify_61
+    unless_null $P72, vivify_64
     new $P72, "Undef"
-  vivify_61:
+  vivify_64:
     set $S73, $P72
     $P68."pirop"($S73)
   if_63_end:
@@ -4595,21 +5013,21 @@
 .annotate "line", 67
     find_lex $P57, "$past"
     find_lex $P58, "$/"
-    unless_null $P58, vivify_62
+    unless_null $P58, vivify_65
     $P58 = root_new ['parrot';'Hash']
-  vivify_62:
+  vivify_65:
     set $P59, $P58["OPER"]
-    unless_null $P59, vivify_63
+    unless_null $P59, vivify_66
     $P59 = root_new ['parrot';'Hash']
-  vivify_63:
+  vivify_66:
     set $P60, $P59["O"]
-    unless_null $P60, vivify_64
+    unless_null $P60, vivify_67
     $P60 = root_new ['parrot';'Hash']
-  vivify_64:
+  vivify_67:
     set $P61, $P60["pasttype"]
-    unless_null $P61, vivify_65
+    unless_null $P61, vivify_68
     new $P61, "Undef"
-  vivify_65:
+  vivify_68:
     set $S62, $P61
     $P57."pasttype"($S62)
   if_52_end:
@@ -4617,7 +5035,7 @@
     find_lex $P75, "$past"
     $P76 = $P75."name"()
     if $P76, unless_74_end
-    .const 'Sub' $P78 = "15_1267204685.44293" 
+    .const 'Sub' $P78 = "15_1271948650.1622" 
     capture_lex $P78
     $P78()
   unless_74_end:
@@ -4631,7 +5049,7 @@
     find_lex $P106, "$/"
     $P107 = $P106."list"()
     defined $I108, $P107
-    unless $I108, for_undef_69
+    unless $I108, for_undef_72
     iter $P105, $P107
     new $P123, 'ExceptionHandler'
     set_addr $P123, loop122_handler
@@ -4641,7 +5059,7 @@
     unless $P105, loop122_done
     shift $P109, $P105
   loop122_redo:
-    .const 'Sub' $P111 = "16_1267204685.44293" 
+    .const 'Sub' $P111 = "16_1271948650.1622" 
     capture_lex $P111
     $P111($P109)
   loop122_next:
@@ -4654,20 +5072,20 @@
     eq $P124, 67, loop122_redo
   loop122_done:
     pop_eh 
-  for_undef_69:
+  for_undef_72:
 .annotate "line", 81
     goto if_97_end
   if_97:
 .annotate "line", 80
     find_lex $P101, "$past"
     find_lex $P102, "$/"
-    unless_null $P102, vivify_70
+    unless_null $P102, vivify_73
     $P102 = root_new ['parrot';'ResizablePMCArray']
-  vivify_70:
+  vivify_73:
     set $P103, $P102[0]
-    unless_null $P103, vivify_71
+    unless_null $P103, vivify_74
     new $P103, "Undef"
-  vivify_71:
+  vivify_74:
     $P104 = $P103."ast"()
     $P101."unshift"($P104)
   if_97_end:
@@ -4686,7 +5104,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block77"  :anon :subid("15_1267204685.44293") :outer("14_1267204685.44293")
+.sub "_block77"  :anon :subid("15_1271948650.1622") :outer("14_1271948650.1622")
 .annotate "line", 71
     new $P79, "Undef"
     .lex "$name", $P79
@@ -4709,17 +5127,17 @@
     concat $P86, $P85, ":<"
 .annotate "line", 76
     find_lex $P87, "$/"
-    unless_null $P87, vivify_66
+    unless_null $P87, vivify_69
     $P87 = root_new ['parrot';'Hash']
-  vivify_66:
+  vivify_69:
     set $P88, $P87["OPER"]
-    unless_null $P88, vivify_67
+    unless_null $P88, vivify_70
     $P88 = root_new ['parrot';'Hash']
-  vivify_67:
+  vivify_70:
     set $P89, $P88["sym"]
-    unless_null $P89, vivify_68
+    unless_null $P89, vivify_71
     new $P89, "Undef"
-  vivify_68:
+  vivify_71:
     concat $P90, $P86, $P89
     concat $P91, $P90, ">"
     store_lex "$name", $P91
@@ -4736,7 +5154,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block110"  :anon :subid("16_1267204685.44293") :outer("14_1267204685.44293")
+.sub "_block110"  :anon :subid("16_1271948650.1622") :outer("14_1271948650.1622")
     .param pmc param_112
 .annotate "line", 82
     .lex "$_", param_112
@@ -4759,7 +5177,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>"  :subid("17_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "term:sym<circumfix>"  :subid("17_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_132
 .annotate "line", 87
     new $P131, 'ExceptionHandler'
@@ -4770,13 +5188,13 @@
     .lex "$/", param_132
     find_lex $P133, "$/"
     find_lex $P134, "$/"
-    unless_null $P134, vivify_72
+    unless_null $P134, vivify_75
     $P134 = root_new ['parrot';'Hash']
-  vivify_72:
+  vivify_75:
     set $P135, $P134["circumfix"]
-    unless_null $P135, vivify_73
+    unless_null $P135, vivify_76
     new $P135, "Undef"
-  vivify_73:
+  vivify_76:
     $P136 = $P135."ast"()
     $P137 = $P133."!make"($P136)
     .return ($P137)
@@ -4789,7 +5207,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "termish"  :subid("18_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "termish"  :subid("18_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_142
 .annotate "line", 89
     new $P141, 'ExceptionHandler'
@@ -4800,13 +5218,13 @@
     .lex "$/", param_142
     find_lex $P143, "$/"
     find_lex $P144, "$/"
-    unless_null $P144, vivify_74
+    unless_null $P144, vivify_77
     $P144 = root_new ['parrot';'Hash']
-  vivify_74:
+  vivify_77:
     set $P145, $P144["term"]
-    unless_null $P145, vivify_75
+    unless_null $P145, vivify_78
     new $P145, "Undef"
-  vivify_75:
+  vivify_78:
     $P146 = $P145."ast"()
     $P147 = $P143."!make"($P146)
     .return ($P147)
@@ -4819,7 +5237,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm"  :subid("19_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "nullterm"  :subid("19_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_152
 .annotate "line", 90
     new $P151, 'ExceptionHandler'
@@ -4841,7 +5259,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm_alt"  :subid("20_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "nullterm_alt"  :subid("20_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_160
 .annotate "line", 91
     new $P159, 'ExceptionHandler'
@@ -4852,13 +5270,13 @@
     .lex "$/", param_160
     find_lex $P161, "$/"
     find_lex $P162, "$/"
-    unless_null $P162, vivify_76
+    unless_null $P162, vivify_79
     $P162 = root_new ['parrot';'Hash']
-  vivify_76:
+  vivify_79:
     set $P163, $P162["term"]
-    unless_null $P163, vivify_77
+    unless_null $P163, vivify_80
     new $P163, "Undef"
-  vivify_77:
+  vivify_80:
     $P164 = $P163."ast"()
     $P165 = $P161."!make"($P164)
     .return ($P165)
@@ -4871,7 +5289,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "integer"  :subid("21_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "integer"  :subid("21_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_170
 .annotate "line", 93
     new $P169, 'ExceptionHandler'
@@ -4882,13 +5300,13 @@
     .lex "$/", param_170
     find_lex $P171, "$/"
     find_lex $P172, "$/"
-    unless_null $P172, vivify_78
+    unless_null $P172, vivify_81
     $P172 = root_new ['parrot';'Hash']
-  vivify_78:
+  vivify_81:
     set $P173, $P172["VALUE"]
-    unless_null $P173, vivify_79
+    unless_null $P173, vivify_82
     new $P173, "Undef"
-  vivify_79:
+  vivify_82:
     $P174 = $P173."ast"()
     $P175 = $P171."!make"($P174)
     .return ($P175)
@@ -4901,7 +5319,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "dec_number"  :subid("22_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "dec_number"  :subid("22_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_180
 .annotate "line", 95
     new $P179, 'ExceptionHandler'
@@ -4924,7 +5342,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "decint"  :subid("23_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "decint"  :subid("23_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_189
 .annotate "line", 97
     new $P188, 'ExceptionHandler'
@@ -4947,7 +5365,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "hexint"  :subid("24_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "hexint"  :subid("24_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_198
 .annotate "line", 98
     new $P197, 'ExceptionHandler'
@@ -4970,7 +5388,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "octint"  :subid("25_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "octint"  :subid("25_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_207
 .annotate "line", 99
     new $P206, 'ExceptionHandler'
@@ -4993,7 +5411,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "binint"  :subid("26_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "binint"  :subid("26_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_216
 .annotate "line", 100
     new $P215, 'ExceptionHandler'
@@ -5016,10 +5434,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_EXPR"  :subid("27_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_EXPR"  :subid("27_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_225
 .annotate "line", 102
-    .const 'Sub' $P241 = "28_1267204685.44293" 
+    .const 'Sub' $P241 = "28_1271948650.1622" 
     capture_lex $P241
     new $P224, 'ExceptionHandler'
     set_addr $P224, control_223
@@ -5031,19 +5449,19 @@
     new $P226, "Undef"
     .lex "$past", $P226
     find_lex $P227, "$/"
-    unless_null $P227, vivify_80
+    unless_null $P227, vivify_83
     $P227 = root_new ['parrot';'Hash']
-  vivify_80:
+  vivify_83:
     set $P228, $P227["quote_delimited"]
-    unless_null $P228, vivify_81
+    unless_null $P228, vivify_84
     new $P228, "Undef"
-  vivify_81:
+  vivify_84:
     $P229 = $P228."ast"()
     store_lex "$past", $P229
 .annotate "line", 104
-    get_hll_global $P231, ["HLL";"Grammar"], "quotemod_check"
-    find_lex $P232, "$/"
-    $P233 = $P231($P232, "w")
+    find_lex $P231, "$/"
+    $P232 = $P231."CURSOR"()
+    $P233 = $P232."quotemod_check"("w")
     unless $P233, if_230_end
 .annotate "line", 105
     get_hll_global $P235, ["PAST"], "Node"
@@ -5051,7 +5469,7 @@
     $P237 = $P235."ACCEPTS"($P236)
     if $P237, if_234
 .annotate "line", 108
-    .const 'Sub' $P241 = "28_1267204685.44293" 
+    .const 'Sub' $P241 = "28_1271948650.1622" 
     capture_lex $P241
     $P241()
     goto if_234_end
@@ -5090,9 +5508,9 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block240"  :anon :subid("28_1267204685.44293") :outer("27_1267204685.44293")
+.sub "_block240"  :anon :subid("28_1271948650.1622") :outer("27_1271948650.1622")
 .annotate "line", 108
-    .const 'Sub' $P260 = "29_1267204685.44293" 
+    .const 'Sub' $P260 = "29_1271948650.1622" 
     capture_lex $P260
 .annotate "line", 109
     $P242 = root_new ['parrot';'ResizablePMCArray']
@@ -5109,13 +5527,13 @@
     if $I251, if_248
 .annotate "line", 115
     find_lex $P268, "@words"
-    unless_null $P268, vivify_82
+    unless_null $P268, vivify_85
     $P268 = root_new ['parrot';'ResizablePMCArray']
-  vivify_82:
+  vivify_85:
     set $P269, $P268[0]
-    unless_null $P269, vivify_83
+    unless_null $P269, vivify_86
     new $P269, "Undef"
-  vivify_83:
+  vivify_86:
     set $S270, $P269
     new $P271, 'String'
     set $P271, $S270
@@ -5133,7 +5551,7 @@
 .annotate "line", 112
     find_lex $P256, "@words"
     defined $I257, $P256
-    unless $I257, for_undef_84
+    unless $I257, for_undef_87
     iter $P255, $P256
     new $P266, 'ExceptionHandler'
     set_addr $P266, loop265_handler
@@ -5143,7 +5561,7 @@
     unless $P255, loop265_done
     shift $P258, $P255
   loop265_redo:
-    .const 'Sub' $P260 = "29_1267204685.44293" 
+    .const 'Sub' $P260 = "29_1271948650.1622" 
     capture_lex $P260
     $P260($P258)
   loop265_next:
@@ -5156,7 +5574,7 @@
     eq $P267, 67, loop265_redo
   loop265_done:
     pop_eh 
-  for_undef_84:
+  for_undef_87:
 .annotate "line", 110
     set $P247, $P255
   if_248_end:
@@ -5166,7 +5584,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block259"  :anon :subid("29_1267204685.44293") :outer("28_1267204685.44293")
+.sub "_block259"  :anon :subid("29_1271948650.1622") :outer("28_1271948650.1622")
     .param pmc param_261
 .annotate "line", 112
     .lex "$_", param_261
@@ -5178,10 +5596,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_delimited"  :subid("30_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_delimited"  :subid("30_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_288
 .annotate "line", 125
-    .const 'Sub' $P300 = "31_1267204685.44293" 
+    .const 'Sub' $P300 = "31_1271948650.1622" 
     capture_lex $P300
     new $P287, 'ExceptionHandler'
     set_addr $P287, control_286
@@ -5206,15 +5624,15 @@
     store_lex "$lastlit", $P293
 .annotate "line", 128
     find_lex $P295, "$/"
-    unless_null $P295, vivify_85
+    unless_null $P295, vivify_88
     $P295 = root_new ['parrot';'Hash']
-  vivify_85:
+  vivify_88:
     set $P296, $P295["quote_atom"]
-    unless_null $P296, vivify_86
+    unless_null $P296, vivify_89
     new $P296, "Undef"
-  vivify_86:
+  vivify_89:
     defined $I297, $P296
-    unless $I297, for_undef_87
+    unless $I297, for_undef_90
     iter $P294, $P296
     new $P333, 'ExceptionHandler'
     set_addr $P333, loop332_handler
@@ -5224,7 +5642,7 @@
     unless $P294, loop332_done
     shift $P298, $P294
   loop332_redo:
-    .const 'Sub' $P300 = "31_1267204685.44293" 
+    .const 'Sub' $P300 = "31_1271948650.1622" 
     capture_lex $P300
     $P300($P298)
   loop332_next:
@@ -5237,7 +5655,7 @@
     eq $P334, 67, loop332_redo
   loop332_done:
     pop_eh 
-  for_undef_87:
+  for_undef_90:
 .annotate "line", 142
     find_lex $P336, "$lastlit"
     set $S337, $P336
@@ -5302,7 +5720,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block299"  :anon :subid("31_1267204685.44293") :outer("30_1267204685.44293")
+.sub "_block299"  :anon :subid("31_1271948650.1622") :outer("30_1271948650.1622")
     .param pmc param_302
 .annotate "line", 129
     new $P301, "Undef"
@@ -5371,7 +5789,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_atom"  :subid("32_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_atom"  :subid("32_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_363
 .annotate "line", 150
     new $P362, 'ExceptionHandler'
@@ -5383,13 +5801,13 @@
 .annotate "line", 151
     find_lex $P364, "$/"
     find_lex $P367, "$/"
-    unless_null $P367, vivify_88
+    unless_null $P367, vivify_91
     $P367 = root_new ['parrot';'Hash']
-  vivify_88:
+  vivify_91:
     set $P368, $P367["quote_escape"]
-    unless_null $P368, vivify_89
+    unless_null $P368, vivify_92
     new $P368, "Undef"
-  vivify_89:
+  vivify_92:
     if $P368, if_366
     find_lex $P372, "$/"
     set $S373, $P372
@@ -5398,13 +5816,13 @@
     goto if_366_end
   if_366:
     find_lex $P369, "$/"
-    unless_null $P369, vivify_90
+    unless_null $P369, vivify_93
     $P369 = root_new ['parrot';'Hash']
-  vivify_90:
+  vivify_93:
     set $P370, $P369["quote_escape"]
-    unless_null $P370, vivify_91
+    unless_null $P370, vivify_94
     new $P370, "Undef"
-  vivify_91:
+  vivify_94:
     $P371 = $P370."ast"()
     set $P365, $P371
   if_366_end:
@@ -5420,7 +5838,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>"  :subid("33_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<backslash>"  :subid("33_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_379
 .annotate "line", 154
     new $P378, 'ExceptionHandler'
@@ -5441,7 +5859,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>"  :subid("34_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<stopper>"  :subid("34_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_386
 .annotate "line", 155
     new $P385, 'ExceptionHandler'
@@ -5452,13 +5870,13 @@
     .lex "$/", param_386
     find_lex $P387, "$/"
     find_lex $P388, "$/"
-    unless_null $P388, vivify_92
+    unless_null $P388, vivify_95
     $P388 = root_new ['parrot';'Hash']
-  vivify_92:
+  vivify_95:
     set $P389, $P388["stopper"]
-    unless_null $P389, vivify_93
+    unless_null $P389, vivify_96
     new $P389, "Undef"
-  vivify_93:
+  vivify_96:
     set $S390, $P389
     $P391 = $P387."!make"($S390)
     .return ($P391)
@@ -5471,7 +5889,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>"  :subid("35_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<bs>"  :subid("35_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_396
 .annotate "line", 157
     new $P395, 'ExceptionHandler'
@@ -5492,7 +5910,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>"  :subid("36_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<nl>"  :subid("36_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_403
 .annotate "line", 158
     new $P402, 'ExceptionHandler'
@@ -5513,7 +5931,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>"  :subid("37_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<cr>"  :subid("37_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_410
 .annotate "line", 159
     new $P409, 'ExceptionHandler'
@@ -5534,7 +5952,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>"  :subid("38_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<tab>"  :subid("38_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_417
 .annotate "line", 160
     new $P416, 'ExceptionHandler'
@@ -5555,359 +5973,461 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>"  :subid("39_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<ff>"  :subid("39_1271948650.1622") :method :outer("11_1271948650.1622")
     .param pmc param_424
-.annotate "line", 162
+.annotate "line", 161
     new $P423, 'ExceptionHandler'
     set_addr $P423, control_422
     $P423."handle_types"(58)
     push_eh $P423
     .lex "self", self
     .lex "$/", param_424
-.annotate "line", 163
     find_lex $P425, "$/"
-    find_lex $P428, "$/"
-    unless_null $P428, vivify_94
-    $P428 = root_new ['parrot';'Hash']
-  vivify_94:
-    set $P429, $P428["hexint"]
-    unless_null $P429, vivify_95
-    new $P429, "Undef"
-  vivify_95:
-    if $P429, if_427
+    $P426 = $P425."!make"("\f")
+    .return ($P426)
+  control_422:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P427, exception, "payload"
+    .return ($P427)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "quote_escape:sym<hex>"  :subid("40_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_431
+.annotate "line", 163
+    new $P430, 'ExceptionHandler'
+    set_addr $P430, control_429
+    $P430."handle_types"(58)
+    push_eh $P430
+    .lex "self", self
+    .lex "$/", param_431
+.annotate "line", 164
     find_lex $P432, "$/"
-    unless_null $P432, vivify_96
-    $P432 = root_new ['parrot';'Hash']
-  vivify_96:
-    set $P433, $P432["hexints"]
-    unless_null $P433, vivify_97
-    $P433 = root_new ['parrot';'Hash']
+    find_lex $P435, "$/"
+    unless_null $P435, vivify_97
+    $P435 = root_new ['parrot';'Hash']
   vivify_97:
-    set $P434, $P433["hexint"]
-    unless_null $P434, vivify_98
-    new $P434, "Undef"
+    set $P436, $P435["hexint"]
+    unless_null $P436, vivify_98
+    new $P436, "Undef"
   vivify_98:
-    set $P426, $P434
-    goto if_427_end
-  if_427:
-    find_lex $P430, "$/"
-    unless_null $P430, vivify_99
-    $P430 = root_new ['parrot';'Hash']
+    if $P436, if_434
+    find_lex $P439, "$/"
+    unless_null $P439, vivify_99
+    $P439 = root_new ['parrot';'Hash']
   vivify_99:
-    set $P431, $P430["hexint"]
-    unless_null $P431, vivify_100
-    new $P431, "Undef"
+    set $P440, $P439["hexints"]
+    unless_null $P440, vivify_100
+    $P440 = root_new ['parrot';'Hash']
   vivify_100:
-    set $P426, $P431
-  if_427_end:
-    $P435 = "ints_to_string"($P426)
-    $P436 = $P425."!make"($P435)
-.annotate "line", 162
-    .return ($P436)
-  control_422:
+    set $P441, $P440["hexint"]
+    unless_null $P441, vivify_101
+    new $P441, "Undef"
+  vivify_101:
+    set $P433, $P441
+    goto if_434_end
+  if_434:
+    find_lex $P437, "$/"
+    unless_null $P437, vivify_102
+    $P437 = root_new ['parrot';'Hash']
+  vivify_102:
+    set $P438, $P437["hexint"]
+    unless_null $P438, vivify_103
+    new $P438, "Undef"
+  vivify_103:
+    set $P433, $P438
+  if_434_end:
+    $P442 = "ints_to_string"($P433)
+    $P443 = $P432."!make"($P442)
+.annotate "line", 163
+    .return ($P443)
+  control_429:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P437, exception, "payload"
-    .return ($P437)
+    getattribute $P444, exception, "payload"
+    .return ($P444)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>"  :subid("40_1267204685.44293") :method :outer("11_1267204685.44293")
-    .param pmc param_441
-.annotate "line", 166
-    new $P440, 'ExceptionHandler'
-    set_addr $P440, control_439
-    $P440."handle_types"(58)
-    push_eh $P440
-    .lex "self", self
-    .lex "$/", param_441
+.sub "quote_escape:sym<oct>"  :subid("41_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_448
 .annotate "line", 167
-    find_lex $P442, "$/"
-    find_lex $P445, "$/"
-    unless_null $P445, vivify_101
-    $P445 = root_new ['parrot';'Hash']
-  vivify_101:
-    set $P446, $P445["octint"]
-    unless_null $P446, vivify_102
-    new $P446, "Undef"
-  vivify_102:
-    if $P446, if_444
+    new $P447, 'ExceptionHandler'
+    set_addr $P447, control_446
+    $P447."handle_types"(58)
+    push_eh $P447
+    .lex "self", self
+    .lex "$/", param_448
+.annotate "line", 168
     find_lex $P449, "$/"
-    unless_null $P449, vivify_103
-    $P449 = root_new ['parrot';'Hash']
-  vivify_103:
-    set $P450, $P449["octints"]
-    unless_null $P450, vivify_104
-    $P450 = root_new ['parrot';'Hash']
+    find_lex $P452, "$/"
+    unless_null $P452, vivify_104
+    $P452 = root_new ['parrot';'Hash']
   vivify_104:
-    set $P451, $P450["octint"]
-    unless_null $P451, vivify_105
-    new $P451, "Undef"
+    set $P453, $P452["octint"]
+    unless_null $P453, vivify_105
+    new $P453, "Undef"
   vivify_105:
-    set $P443, $P451
-    goto if_444_end
-  if_444:
-    find_lex $P447, "$/"
-    unless_null $P447, vivify_106
-    $P447 = root_new ['parrot';'Hash']
+    if $P453, if_451
+    find_lex $P456, "$/"
+    unless_null $P456, vivify_106
+    $P456 = root_new ['parrot';'Hash']
   vivify_106:
-    set $P448, $P447["octint"]
-    unless_null $P448, vivify_107
-    new $P448, "Undef"
+    set $P457, $P456["octints"]
+    unless_null $P457, vivify_107
+    $P457 = root_new ['parrot';'Hash']
   vivify_107:
-    set $P443, $P448
-  if_444_end:
-    $P452 = "ints_to_string"($P443)
-    $P453 = $P442."!make"($P452)
-.annotate "line", 166
-    .return ($P453)
-  control_439:
+    set $P458, $P457["octint"]
+    unless_null $P458, vivify_108
+    new $P458, "Undef"
+  vivify_108:
+    set $P450, $P458
+    goto if_451_end
+  if_451:
+    find_lex $P454, "$/"
+    unless_null $P454, vivify_109
+    $P454 = root_new ['parrot';'Hash']
+  vivify_109:
+    set $P455, $P454["octint"]
+    unless_null $P455, vivify_110
+    new $P455, "Undef"
+  vivify_110:
+    set $P450, $P455
+  if_451_end:
+    $P459 = "ints_to_string"($P450)
+    $P460 = $P449."!make"($P459)
+.annotate "line", 167
+    .return ($P460)
+  control_446:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P454, exception, "payload"
-    .return ($P454)
+    getattribute $P461, exception, "payload"
+    .return ($P461)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<chr>"  :subid("41_1267204685.44293") :method :outer("11_1267204685.44293")
-    .param pmc param_458
-.annotate "line", 170
-    new $P457, 'ExceptionHandler'
-    set_addr $P457, control_456
-    $P457."handle_types"(58)
-    push_eh $P457
+.sub "quote_escape:sym<chr>"  :subid("42_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_465
+.annotate "line", 171
+    new $P464, 'ExceptionHandler'
+    set_addr $P464, control_463
+    $P464."handle_types"(58)
+    push_eh $P464
     .lex "self", self
-    .lex "$/", param_458
+    .lex "$/", param_465
+.annotate "line", 172
+    find_lex $P466, "$/"
+    find_lex $P467, "$/"
+    unless_null $P467, vivify_111
+    $P467 = root_new ['parrot';'Hash']
+  vivify_111:
+    set $P468, $P467["charspec"]
+    unless_null $P468, vivify_112
+    new $P468, "Undef"
+  vivify_112:
+    $P469 = $P468."ast"()
+    $P470 = $P466."!make"($P469)
 .annotate "line", 171
-    find_lex $P459, "$/"
-    find_lex $P460, "$/"
-    unless_null $P460, vivify_108
-    $P460 = root_new ['parrot';'Hash']
-  vivify_108:
-    set $P461, $P460["charspec"]
-    unless_null $P461, vivify_109
-    new $P461, "Undef"
-  vivify_109:
-    $P462 = $P461."ast"()
-    $P463 = $P459."!make"($P462)
-.annotate "line", 170
-    .return ($P463)
-  control_456:
+    .return ($P470)
+  control_463:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P464, exception, "payload"
-    .return ($P464)
+    getattribute $P471, exception, "payload"
+    .return ($P471)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "charname"  :subid("42_1267204685.44293") :method :outer("11_1267204685.44293")
-    .param pmc param_468
-.annotate "line", 174
-    new $P467, 'ExceptionHandler'
-    set_addr $P467, control_466
-    $P467."handle_types"(58)
-    push_eh $P467
-    .lex "self", self
-    .lex "$/", param_468
+.sub "quote_escape:sym<0>"  :subid("43_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_475
 .annotate "line", 175
-    new $P469, "Undef"
-    .lex "$codepoint", $P469
-.annotate "line", 176
-    find_lex $P472, "$/"
-    unless_null $P472, vivify_110
-    $P472 = root_new ['parrot';'Hash']
-  vivify_110:
-    set $P473, $P472["integer"]
-    unless_null $P473, vivify_111
-    new $P473, "Undef"
-  vivify_111:
-    if $P473, if_471
-.annotate "line", 177
- $P477 = new ['CodeString'] 
-    find_lex $P478, "$/"
-    set $S479, $P478
-    $P480 = $P477."charname_to_ord"($S479)
-    set $P470, $P480
+    new $P474, 'ExceptionHandler'
+    set_addr $P474, control_473
+    $P474."handle_types"(58)
+    push_eh $P474
+    .lex "self", self
+    .lex "$/", param_475
 .annotate "line", 176
-    goto if_471_end
-  if_471:
-    find_lex $P474, "$/"
-    unless_null $P474, vivify_112
-    $P474 = root_new ['parrot';'Hash']
-  vivify_112:
-    set $P475, $P474["integer"]
-    unless_null $P475, vivify_113
-    new $P475, "Undef"
+    find_lex $P476, "$/"
+    $P477 = $P476."!make"(unicode:"\x{0}")
+.annotate "line", 175
+    .return ($P477)
+  control_473:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P478, exception, "payload"
+    .return ($P478)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "quote_escape:sym<misc>"  :subid("44_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_482
+.annotate "line", 179
+    new $P481, 'ExceptionHandler'
+    set_addr $P481, control_480
+    $P481."handle_types"(58)
+    push_eh $P481
+    .lex "self", self
+    .lex "$/", param_482
+.annotate "line", 180
+    find_lex $P483, "$/"
+    find_lex $P486, "$/"
+    unless_null $P486, vivify_113
+    $P486 = root_new ['parrot';'Hash']
   vivify_113:
-    $P476 = $P475."ast"()
-    set $P470, $P476
-  if_471_end:
-    store_lex "$codepoint", $P470
-.annotate "line", 178
-    find_lex $P482, "$codepoint"
-    set $N483, $P482
-    islt $I484, $N483, 0.0
-    unless $I484, if_481_end
-    find_lex $P485, "$/"
-    $P486 = $P485."CURSOR"()
-    new $P487, 'String'
-    set $P487, "Unrecognized character name "
-    find_lex $P488, "$/"
-    concat $P489, $P487, $P488
-    $P486."panic"($P489)
-  if_481_end:
+    set $P487, $P486["textq"]
+    unless_null $P487, vivify_114
+    new $P487, "Undef"
+  vivify_114:
+    if $P487, if_485
+    find_lex $P493, "$/"
+    unless_null $P493, vivify_115
+    $P493 = root_new ['parrot';'Hash']
+  vivify_115:
+    set $P494, $P493["textqq"]
+    unless_null $P494, vivify_116
+    new $P494, "Undef"
+  vivify_116:
+    $P495 = $P494."Str"()
+    set $P484, $P495
+    goto if_485_end
+  if_485:
+    new $P488, "String"
+    assign $P488, "\\"
+    find_lex $P489, "$/"
+    unless_null $P489, vivify_117
+    $P489 = root_new ['parrot';'Hash']
+  vivify_117:
+    set $P490, $P489["textq"]
+    unless_null $P490, vivify_118
+    new $P490, "Undef"
+  vivify_118:
+    $S491 = $P490."Str"()
+    concat $P492, $P488, $S491
+    set $P484, $P492
+  if_485_end:
+    $P496 = $P483."!make"($P484)
 .annotate "line", 179
-    find_lex $P490, "$/"
-    find_lex $P491, "$codepoint"
-    set $I492, $P491
-    chr $S493, $I492
-    $P494 = $P490."!make"($S493)
-.annotate "line", 174
-    .return ($P494)
-  control_466:
+    .return ($P496)
+  control_480:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P495, exception, "payload"
-    .return ($P495)
+    getattribute $P497, exception, "payload"
+    .return ($P497)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "charnames"  :subid("43_1267204685.44293") :method :outer("11_1267204685.44293")
-    .param pmc param_499
-.annotate "line", 182
-    .const 'Sub' $P508 = "44_1267204685.44293" 
-    capture_lex $P508
-    new $P498, 'ExceptionHandler'
-    set_addr $P498, control_497
-    $P498."handle_types"(58)
-    push_eh $P498
-    .lex "self", self
-    .lex "$/", param_499
+.sub "charname"  :subid("45_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_501
 .annotate "line", 183
-    new $P500, "Undef"
-    .lex "$str", $P500
-    new $P501, "String"
-    assign $P501, ""
-    store_lex "$str", $P501
+    new $P500, 'ExceptionHandler'
+    set_addr $P500, control_499
+    $P500."handle_types"(58)
+    push_eh $P500
+    .lex "self", self
+    .lex "$/", param_501
 .annotate "line", 184
-    find_lex $P503, "$/"
-    unless_null $P503, vivify_114
-    $P503 = root_new ['parrot';'Hash']
-  vivify_114:
-    set $P504, $P503["charname"]
-    unless_null $P504, vivify_115
-    new $P504, "Undef"
-  vivify_115:
-    defined $I505, $P504
-    unless $I505, for_undef_116
-    iter $P502, $P504
-    new $P515, 'ExceptionHandler'
-    set_addr $P515, loop514_handler
-    $P515."handle_types"(65, 67, 66)
-    push_eh $P515
-  loop514_test:
-    unless $P502, loop514_done
-    shift $P506, $P502
-  loop514_redo:
-    .const 'Sub' $P508 = "44_1267204685.44293" 
-    capture_lex $P508
-    $P508($P506)
-  loop514_next:
-    goto loop514_test
-  loop514_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P516, exception, 'type'
-    eq $P516, 65, loop514_next
-    eq $P516, 67, loop514_redo
-  loop514_done:
-    pop_eh 
-  for_undef_116:
+    new $P502, "Undef"
+    .lex "$codepoint", $P502
+.annotate "line", 185
+    find_lex $P505, "$/"
+    unless_null $P505, vivify_119
+    $P505 = root_new ['parrot';'Hash']
+  vivify_119:
+    set $P506, $P505["integer"]
+    unless_null $P506, vivify_120
+    new $P506, "Undef"
+  vivify_120:
+    if $P506, if_504
+.annotate "line", 186
+ $P510 = new ['CodeString'] 
+    find_lex $P511, "$/"
+    set $S512, $P511
+    $P513 = $P510."charname_to_ord"($S512)
+    set $P503, $P513
 .annotate "line", 185
-    find_lex $P517, "$/"
-    find_lex $P518, "$str"
-    $P519 = $P517."!make"($P518)
-.annotate "line", 182
-    .return ($P519)
-  control_497:
+    goto if_504_end
+  if_504:
+    find_lex $P507, "$/"
+    unless_null $P507, vivify_121
+    $P507 = root_new ['parrot';'Hash']
+  vivify_121:
+    set $P508, $P507["integer"]
+    unless_null $P508, vivify_122
+    new $P508, "Undef"
+  vivify_122:
+    $P509 = $P508."ast"()
+    set $P503, $P509
+  if_504_end:
+    store_lex "$codepoint", $P503
+.annotate "line", 187
+    find_lex $P515, "$codepoint"
+    set $N516, $P515
+    islt $I517, $N516, 0.0
+    unless $I517, if_514_end
+    find_lex $P518, "$/"
+    $P519 = $P518."CURSOR"()
+    new $P520, 'String'
+    set $P520, "Unrecognized character name "
+    find_lex $P521, "$/"
+    concat $P522, $P520, $P521
+    $P519."panic"($P522)
+  if_514_end:
+.annotate "line", 188
+    find_lex $P523, "$/"
+    find_lex $P524, "$codepoint"
+    set $I525, $P524
+    chr $S526, $I525
+    $P527 = $P523."!make"($S526)
+.annotate "line", 183
+    .return ($P527)
+  control_499:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P520, exception, "payload"
-    .return ($P520)
+    getattribute $P528, exception, "payload"
+    .return ($P528)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block507"  :anon :subid("44_1267204685.44293") :outer("43_1267204685.44293")
-    .param pmc param_509
-.annotate "line", 184
-    .lex "$_", param_509
-    find_lex $P510, "$str"
-    find_lex $P511, "$_"
-    $S512 = $P511."ast"()
-    concat $P513, $P510, $S512
-    store_lex "$str", $P513
-    .return ($P513)
+.sub "charnames"  :subid("46_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_532
+.annotate "line", 191
+    .const 'Sub' $P541 = "47_1271948650.1622" 
+    capture_lex $P541
+    new $P531, 'ExceptionHandler'
+    set_addr $P531, control_530
+    $P531."handle_types"(58)
+    push_eh $P531
+    .lex "self", self
+    .lex "$/", param_532
+.annotate "line", 192
+    new $P533, "Undef"
+    .lex "$str", $P533
+    new $P534, "String"
+    assign $P534, ""
+    store_lex "$str", $P534
+.annotate "line", 193
+    find_lex $P536, "$/"
+    unless_null $P536, vivify_123
+    $P536 = root_new ['parrot';'Hash']
+  vivify_123:
+    set $P537, $P536["charname"]
+    unless_null $P537, vivify_124
+    new $P537, "Undef"
+  vivify_124:
+    defined $I538, $P537
+    unless $I538, for_undef_125
+    iter $P535, $P537
+    new $P548, 'ExceptionHandler'
+    set_addr $P548, loop547_handler
+    $P548."handle_types"(65, 67, 66)
+    push_eh $P548
+  loop547_test:
+    unless $P535, loop547_done
+    shift $P539, $P535
+  loop547_redo:
+    .const 'Sub' $P541 = "47_1271948650.1622" 
+    capture_lex $P541
+    $P541($P539)
+  loop547_next:
+    goto loop547_test
+  loop547_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P549, exception, 'type'
+    eq $P549, 65, loop547_next
+    eq $P549, 67, loop547_redo
+  loop547_done:
+    pop_eh 
+  for_undef_125:
+.annotate "line", 194
+    find_lex $P550, "$/"
+    find_lex $P551, "$str"
+    $P552 = $P550."!make"($P551)
+.annotate "line", 191
+    .return ($P552)
+  control_530:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P553, exception, "payload"
+    .return ($P553)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "charspec"  :subid("45_1267204685.44293") :method :outer("11_1267204685.44293")
-    .param pmc param_524
-.annotate "line", 188
-    new $P523, 'ExceptionHandler'
-    set_addr $P523, control_522
-    $P523."handle_types"(58)
-    push_eh $P523
+.sub "_block540"  :anon :subid("47_1271948650.1622") :outer("46_1271948650.1622")
+    .param pmc param_542
+.annotate "line", 193
+    .lex "$_", param_542
+    find_lex $P543, "$str"
+    find_lex $P544, "$_"
+    $S545 = $P544."ast"()
+    concat $P546, $P543, $S545
+    store_lex "$str", $P546
+    .return ($P546)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charspec"  :subid("48_1271948650.1622") :method :outer("11_1271948650.1622")
+    .param pmc param_557
+.annotate "line", 197
+    new $P556, 'ExceptionHandler'
+    set_addr $P556, control_555
+    $P556."handle_types"(58)
+    push_eh $P556
     .lex "self", self
-    .lex "$/", param_524
-.annotate "line", 189
-    find_lex $P525, "$/"
-    find_lex $P528, "$/"
-    unless_null $P528, vivify_117
-    $P528 = root_new ['parrot';'Hash']
-  vivify_117:
-    set $P529, $P528["charnames"]
-    unless_null $P529, vivify_118
-    new $P529, "Undef"
-  vivify_118:
-    if $P529, if_527
-    find_lex $P533, "$/"
-    $I534 = "string_to_int"($P533, 10)
-    chr $S535, $I534
-    new $P526, 'String'
-    set $P526, $S535
-    goto if_527_end
-  if_527:
-    find_lex $P530, "$/"
-    unless_null $P530, vivify_119
-    $P530 = root_new ['parrot';'Hash']
-  vivify_119:
-    set $P531, $P530["charnames"]
-    unless_null $P531, vivify_120
-    new $P531, "Undef"
-  vivify_120:
-    $P532 = $P531."ast"()
-    set $P526, $P532
-  if_527_end:
-    $P536 = $P525."!make"($P526)
-.annotate "line", 188
-    .return ($P536)
-  control_522:
+    .lex "$/", param_557
+.annotate "line", 198
+    find_lex $P558, "$/"
+    find_lex $P561, "$/"
+    unless_null $P561, vivify_126
+    $P561 = root_new ['parrot';'Hash']
+  vivify_126:
+    set $P562, $P561["charnames"]
+    unless_null $P562, vivify_127
+    new $P562, "Undef"
+  vivify_127:
+    if $P562, if_560
+    find_lex $P566, "$/"
+    $I567 = "string_to_int"($P566, 10)
+    chr $S568, $I567
+    new $P559, 'String'
+    set $P559, $S568
+    goto if_560_end
+  if_560:
+    find_lex $P563, "$/"
+    unless_null $P563, vivify_128
+    $P563 = root_new ['parrot';'Hash']
+  vivify_128:
+    set $P564, $P563["charnames"]
+    unless_null $P564, vivify_129
+    new $P564, "Undef"
+  vivify_129:
+    $P565 = $P564."ast"()
+    set $P559, $P565
+  if_560_end:
+    $P569 = $P558."!make"($P559)
+.annotate "line", 197
+    .return ($P569)
+  control_555:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P537, exception, "payload"
-    .return ($P537)
+    getattribute $P570, exception, "payload"
+    .return ($P570)
 .end
 
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1267204686.55407")
+.sub "_block11"  :anon :subid("10_1271948651.35295")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -5921,9 +6441,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post25") :outer("10_1267204686.55407")
+.sub "" :load :init :subid("post25") :outer("10_1271948651.35295")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1267204686.55407" 
+    .const 'Sub' $P12 = "10_1271948651.35295" 
     .local pmc block
     set block, $P12
 .annotate "line", 2
@@ -5937,28 +6457,28 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1267204686.55407") :outer("10_1267204686.55407")
+.sub "_block13"  :subid("11_1271948651.35295") :outer("10_1271948651.35295")
 .annotate "line", 6
-    .const 'Sub' $P187 = "20_1267204686.55407" 
+    .const 'Sub' $P187 = "20_1271948651.35295" 
     capture_lex $P187
-    .const 'Sub' $P152 = "18_1267204686.55407" 
+    .const 'Sub' $P152 = "18_1271948651.35295" 
     capture_lex $P152
-    .const 'Sub' $P137 = "17_1267204686.55407" 
+    .const 'Sub' $P137 = "17_1271948651.35295" 
     capture_lex $P137
-    .const 'Sub' $P121 = "16_1267204686.55407" 
+    .const 'Sub' $P121 = "16_1271948651.35295" 
     capture_lex $P121
-    .const 'Sub' $P32 = "13_1267204686.55407" 
+    .const 'Sub' $P32 = "13_1271948651.35295" 
     capture_lex $P32
-    .const 'Sub' $P15 = "12_1267204686.55407" 
+    .const 'Sub' $P15 = "12_1271948651.35295" 
     capture_lex $P15
 .annotate "line", 14
-    .const 'Sub' $P15 = "12_1267204686.55407" 
+    .const 'Sub' $P15 = "12_1271948651.35295" 
     capture_lex $P15
     .lex "value_type", $P15
 .annotate "line", 10
     find_lex $P31, "value_type"
 .annotate "line", 69
-    .const 'Sub' $P187 = "20_1267204686.55407" 
+    .const 'Sub' $P187 = "20_1271948651.35295" 
     capture_lex $P187
 .annotate "line", 6
     .return ($P187)
@@ -5966,7 +6486,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post26") :outer("11_1267204686.55407")
+.sub "" :load :init :subid("post26") :outer("11_1271948651.35295")
 .annotate "line", 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -5978,7 +6498,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "value_type"  :subid("12_1267204686.55407") :outer("11_1267204686.55407")
+.sub "value_type"  :subid("12_1271948651.35295") :outer("11_1271948651.35295")
     .param pmc param_18
 .annotate "line", 14
     new $P17, 'ExceptionHandler'
@@ -6022,15 +6542,15 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_exports"  :subid("13_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "get_exports"  :subid("13_1271948651.35295") :method :outer("11_1271948651.35295")
     .param pmc param_35
     .param pmc param_38 :slurpy
     .param pmc param_36 :optional :named("tagset")
     .param int has_param_36 :opt_flag
 .annotate "line", 20
-    .const 'Sub' $P104 = "15_1267204686.55407" 
+    .const 'Sub' $P104 = "15_1271948651.35295" 
     capture_lex $P104
-    .const 'Sub' $P83 = "14_1267204686.55407" 
+    .const 'Sub' $P83 = "14_1271948651.35295" 
     capture_lex $P83
     new $P34, 'ExceptionHandler'
     set_addr $P34, control_33
@@ -6136,7 +6656,7 @@
     unless $P99, loop116_done
     shift $P102, $P99
   loop116_redo:
-    .const 'Sub' $P104 = "15_1267204686.55407" 
+    .const 'Sub' $P104 = "15_1271948651.35295" 
     capture_lex $P104
     $P104($P102)
   loop116_next:
@@ -6166,7 +6686,7 @@
     unless $P78, loop96_done
     shift $P81, $P78
   loop96_redo:
-    .const 'Sub' $P83 = "14_1267204686.55407" 
+    .const 'Sub' $P83 = "14_1271948651.35295" 
     capture_lex $P83
     $P83($P81)
   loop96_next:
@@ -6194,7 +6714,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block103"  :anon :subid("15_1267204686.55407") :outer("13_1267204686.55407")
+.sub "_block103"  :anon :subid("15_1271948651.35295") :outer("13_1271948651.35295")
     .param pmc param_106
 .annotate "line", 40
     new $P105, "Undef"
@@ -6226,7 +6746,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block82"  :anon :subid("14_1267204686.55407") :outer("13_1267204686.55407")
+.sub "_block82"  :anon :subid("14_1271948651.35295") :outer("13_1271948651.35295")
     .param pmc param_85
 .annotate "line", 34
     new $P84, "Undef"
@@ -6265,7 +6785,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_module"  :subid("16_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "get_module"  :subid("16_1271948651.35295") :method :outer("11_1271948651.35295")
     .param pmc param_124
 .annotate "line", 47
     new $P123, 'ExceptionHandler'
@@ -6305,7 +6825,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "language"  :subid("17_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "language"  :subid("17_1271948651.35295") :method :outer("11_1271948651.35295")
     .param pmc param_140 :optional
     .param int has_param_140 :opt_flag
 .annotate "line", 53
@@ -6349,10 +6869,10 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "load_module"  :subid("18_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "load_module"  :subid("18_1271948651.35295") :method :outer("11_1271948651.35295")
     .param pmc param_155
 .annotate "line", 61
-    .const 'Sub' $P165 = "19_1267204686.55407" 
+    .const 'Sub' $P165 = "19_1271948651.35295" 
     capture_lex $P165
     new $P154, 'ExceptionHandler'
     set_addr $P154, control_153
@@ -6379,7 +6899,7 @@
     assign $P163, 0
     store_lex "$loaded", $P163
 .annotate "line", 64
-    .const 'Sub' $P165 = "19_1267204686.55407" 
+    .const 'Sub' $P165 = "19_1271948651.35295" 
     capture_lex $P165
     $P165()
 .annotate "line", 65
@@ -6408,7 +6928,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block164"  :anon :subid("19_1267204686.55407") :outer("18_1267204686.55407")
+.sub "_block164"  :anon :subid("19_1271948651.35295") :outer("18_1271948651.35295")
 .annotate "line", 64
     new $P172, 'ExceptionHandler'
     set_addr $P172, control_171
@@ -6441,11 +6961,11 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "import"  :subid("20_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "import"  :subid("20_1271948651.35295") :method :outer("11_1271948651.35295")
     .param pmc param_190
     .param pmc param_191
 .annotate "line", 69
-    .const 'Sub' $P197 = "21_1267204686.55407" 
+    .const 'Sub' $P197 = "21_1271948651.35295" 
     capture_lex $P197
     new $P189, 'ExceptionHandler'
     set_addr $P189, control_188
@@ -6467,7 +6987,7 @@
     unless $P192, loop278_done
     shift $P195, $P192
   loop278_redo:
-    .const 'Sub' $P197 = "21_1267204686.55407" 
+    .const 'Sub' $P197 = "21_1271948651.35295" 
     capture_lex $P197
     $P197($P195)
   loop278_next:
@@ -6492,14 +7012,14 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block196"  :anon :subid("21_1267204686.55407") :outer("20_1267204686.55407")
+.sub "_block196"  :anon :subid("21_1271948651.35295") :outer("20_1271948651.35295")
     .param pmc param_200
 .annotate "line", 70
-    .const 'Sub' $P267 = "24_1267204686.55407" 
+    .const 'Sub' $P267 = "24_1271948651.35295" 
     capture_lex $P267
-    .const 'Sub' $P247 = "23_1267204686.55407" 
+    .const 'Sub' $P247 = "23_1271948651.35295" 
     capture_lex $P247
-    .const 'Sub' $P218 = "22_1267204686.55407" 
+    .const 'Sub' $P218 = "22_1271948651.35295" 
     capture_lex $P218
 .annotate "line", 71
     new $P198, "Undef"
@@ -6547,7 +7067,7 @@
     unless $P262, loop275_done
     shift $P265, $P262
   loop275_redo:
-    .const 'Sub' $P267 = "24_1267204686.55407" 
+    .const 'Sub' $P267 = "24_1271948651.35295" 
     capture_lex $P267
     $P267($P265)
   loop275_next:
@@ -6579,7 +7099,7 @@
     unless $P242, loop259_done
     shift $P245, $P242
   loop259_redo:
-    .const 'Sub' $P247 = "23_1267204686.55407" 
+    .const 'Sub' $P247 = "23_1271948651.35295" 
     capture_lex $P247
     $P247($P245)
   loop259_next:
@@ -6613,7 +7133,7 @@
     unless $P213, loop231_done
     shift $P216, $P213
   loop231_redo:
-    .const 'Sub' $P218 = "22_1267204686.55407" 
+    .const 'Sub' $P218 = "22_1271948651.35295" 
     capture_lex $P218
     $P218($P216)
   loop231_next:
@@ -6636,7 +7156,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block266"  :anon :subid("24_1267204686.55407") :outer("21_1267204686.55407")
+.sub "_block266"  :anon :subid("24_1271948651.35295") :outer("21_1271948651.35295")
     .param pmc param_268
 .annotate "line", 80
     .lex "$_", param_268
@@ -6656,7 +7176,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block246"  :anon :subid("23_1267204686.55407") :outer("21_1267204686.55407")
+.sub "_block246"  :anon :subid("23_1271948651.35295") :outer("21_1271948651.35295")
     .param pmc param_248
 .annotate "line", 77
     .lex "$_", param_248
@@ -6676,7 +7196,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block217"  :anon :subid("22_1267204686.55407") :outer("21_1267204686.55407")
+.sub "_block217"  :anon :subid("22_1271948651.35295") :outer("21_1271948651.35295")
     .param pmc param_219
 .annotate "line", 74
     .lex "$_", param_219

Modified: branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Apr 28 03:14:33 2010	(r46096)
+++ branches/ops_pct/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Apr 28 03:18:28 2010	(r46097)
@@ -15,387 +15,389 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1267204702.05125")
+.sub "_block11"  :anon :subid("10_1271948667.92136")
 .annotate "line", 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
 .annotate "line", 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
-    $P1296 = $P14()
+    $P1304 = $P14()
 .annotate "line", 1
-    .return ($P1296)
+    .return ($P1304)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post331") :outer("10_1267204702.05125")
+.sub "" :load :init :subid("post333") :outer("10_1271948667.92136")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1267204702.05125" 
+    .const 'Sub' $P12 = "10_1271948667.92136" 
     .local pmc block
     set block, $P12
-    $P1297 = get_root_global ["parrot"], "P6metaclass"
-    $P1297."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+    $P1305 = get_root_global ["parrot"], "P6metaclass"
+    $P1305."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1267204702.05125") :outer("10_1267204702.05125")
+.sub "_block13"  :subid("11_1271948667.92136") :outer("10_1271948667.92136")
 .annotate "line", 4
-    get_hll_global $P1240, ["NQP";"Regex"], "_block1239" 
-    capture_lex $P1240
-    .const 'Sub' $P1226 = "317_1267204702.05125" 
-    capture_lex $P1226
-    .const 'Sub' $P1220 = "315_1267204702.05125" 
-    capture_lex $P1220
-    .const 'Sub' $P1214 = "313_1267204702.05125" 
-    capture_lex $P1214
-    .const 'Sub' $P1207 = "311_1267204702.05125" 
-    capture_lex $P1207
-    .const 'Sub' $P1200 = "309_1267204702.05125" 
-    capture_lex $P1200
-    .const 'Sub' $P1193 = "307_1267204702.05125" 
-    capture_lex $P1193
-    .const 'Sub' $P1186 = "305_1267204702.05125" 
-    capture_lex $P1186
-    .const 'Sub' $P1180 = "303_1267204702.05125" 
-    capture_lex $P1180
-    .const 'Sub' $P1173 = "301_1267204702.05125" 
-    capture_lex $P1173
-    .const 'Sub' $P1166 = "299_1267204702.05125" 
-    capture_lex $P1166
-    .const 'Sub' $P1159 = "297_1267204702.05125" 
-    capture_lex $P1159
-    .const 'Sub' $P1152 = "295_1267204702.05125" 
-    capture_lex $P1152
-    .const 'Sub' $P1145 = "293_1267204702.05125" 
-    capture_lex $P1145
-    .const 'Sub' $P1138 = "291_1267204702.05125" 
-    capture_lex $P1138
-    .const 'Sub' $P1131 = "289_1267204702.05125" 
-    capture_lex $P1131
-    .const 'Sub' $P1124 = "287_1267204702.05125" 
-    capture_lex $P1124
-    .const 'Sub' $P1117 = "285_1267204702.05125" 
-    capture_lex $P1117
-    .const 'Sub' $P1110 = "283_1267204702.05125" 
-    capture_lex $P1110
-    .const 'Sub' $P1103 = "281_1267204702.05125" 
-    capture_lex $P1103
-    .const 'Sub' $P1096 = "279_1267204702.05125" 
-    capture_lex $P1096
-    .const 'Sub' $P1089 = "277_1267204702.05125" 
-    capture_lex $P1089
-    .const 'Sub' $P1082 = "275_1267204702.05125" 
-    capture_lex $P1082
-    .const 'Sub' $P1075 = "273_1267204702.05125" 
-    capture_lex $P1075
-    .const 'Sub' $P1068 = "271_1267204702.05125" 
-    capture_lex $P1068
-    .const 'Sub' $P1061 = "269_1267204702.05125" 
-    capture_lex $P1061
-    .const 'Sub' $P1054 = "267_1267204702.05125" 
-    capture_lex $P1054
-    .const 'Sub' $P1047 = "265_1267204702.05125" 
-    capture_lex $P1047
-    .const 'Sub' $P1040 = "263_1267204702.05125" 
-    capture_lex $P1040
-    .const 'Sub' $P1033 = "261_1267204702.05125" 
-    capture_lex $P1033
-    .const 'Sub' $P1026 = "259_1267204702.05125" 
-    capture_lex $P1026
-    .const 'Sub' $P1019 = "257_1267204702.05125" 
-    capture_lex $P1019
-    .const 'Sub' $P1012 = "255_1267204702.05125" 
-    capture_lex $P1012
-    .const 'Sub' $P1005 = "253_1267204702.05125" 
-    capture_lex $P1005
-    .const 'Sub' $P998 = "251_1267204702.05125" 
-    capture_lex $P998
-    .const 'Sub' $P992 = "249_1267204702.05125" 
-    capture_lex $P992
-    .const 'Sub' $P985 = "247_1267204702.05125" 
-    capture_lex $P985
-    .const 'Sub' $P978 = "245_1267204702.05125" 
-    capture_lex $P978
-    .const 'Sub' $P971 = "243_1267204702.05125" 
-    capture_lex $P971
-    .const 'Sub' $P964 = "241_1267204702.05125" 
-    capture_lex $P964
-    .const 'Sub' $P957 = "239_1267204702.05125" 
-    capture_lex $P957
-    .const 'Sub' $P950 = "237_1267204702.05125" 
-    capture_lex $P950
-    .const 'Sub' $P943 = "235_1267204702.05125" 
-    capture_lex $P943
-    .const 'Sub' $P937 = "233_1267204702.05125" 
-    capture_lex $P937
-    .const 'Sub' $P931 = "231_1267204702.05125" 
-    capture_lex $P931
-    .const 'Sub' $P926 = "229_1267204702.05125" 
-    capture_lex $P926
-    .const 'Sub' $P920 = "227_1267204702.05125" 
-    capture_lex $P920
-    .const 'Sub' $P914 = "225_1267204702.05125" 
-    capture_lex $P914
-    .const 'Sub' $P909 = "223_1267204702.05125" 
-    capture_lex $P909
-    .const 'Sub' $P904 = "221_1267204702.05125" 
-    capture_lex $P904
-    .const 'Sub' $P897 = "219_1267204702.05125" 
+    get_hll_global $P1248, ["NQP";"Regex"], "_block1247" 
+    capture_lex $P1248
+    .const 'Sub' $P1234 = "319_1271948667.92136" 
+    capture_lex $P1234
+    .const 'Sub' $P1228 = "317_1271948667.92136" 
+    capture_lex $P1228
+    .const 'Sub' $P1222 = "315_1271948667.92136" 
+    capture_lex $P1222
+    .const 'Sub' $P1215 = "313_1271948667.92136" 
+    capture_lex $P1215
+    .const 'Sub' $P1208 = "311_1271948667.92136" 
+    capture_lex $P1208
+    .const 'Sub' $P1201 = "309_1271948667.92136" 
+    capture_lex $P1201
+    .const 'Sub' $P1194 = "307_1271948667.92136" 
+    capture_lex $P1194
+    .const 'Sub' $P1188 = "305_1271948667.92136" 
+    capture_lex $P1188
+    .const 'Sub' $P1181 = "303_1271948667.92136" 
+    capture_lex $P1181
+    .const 'Sub' $P1174 = "301_1271948667.92136" 
+    capture_lex $P1174
+    .const 'Sub' $P1167 = "299_1271948667.92136" 
+    capture_lex $P1167
+    .const 'Sub' $P1160 = "297_1271948667.92136" 
+    capture_lex $P1160
+    .const 'Sub' $P1153 = "295_1271948667.92136" 
+    capture_lex $P1153
+    .const 'Sub' $P1146 = "293_1271948667.92136" 
+    capture_lex $P1146
+    .const 'Sub' $P1139 = "291_1271948667.92136" 
+    capture_lex $P1139
+    .const 'Sub' $P1132 = "289_1271948667.92136" 
+    capture_lex $P1132
+    .const 'Sub' $P1125 = "287_1271948667.92136" 
+    capture_lex $P1125
+    .const 'Sub' $P1118 = "285_1271948667.92136" 
+    capture_lex $P1118
+    .const 'Sub' $P1111 = "283_1271948667.92136" 
+    capture_lex $P1111
+    .const 'Sub' $P1104 = "281_1271948667.92136" 
+    capture_lex $P1104
+    .const 'Sub' $P1097 = "279_1271948667.92136" 
+    capture_lex $P1097
+    .const 'Sub' $P1090 = "277_1271948667.92136" 
+    capture_lex $P1090
+    .const 'Sub' $P1083 = "275_1271948667.92136" 
+    capture_lex $P1083
+    .const 'Sub' $P1076 = "273_1271948667.92136" 
+    capture_lex $P1076
+    .const 'Sub' $P1069 = "271_1271948667.92136" 
+    capture_lex $P1069
+    .const 'Sub' $P1062 = "269_1271948667.92136" 
+    capture_lex $P1062
+    .const 'Sub' $P1055 = "267_1271948667.92136" 
+    capture_lex $P1055
+    .const 'Sub' $P1048 = "265_1271948667.92136" 
+    capture_lex $P1048
+    .const 'Sub' $P1041 = "263_1271948667.92136" 
+    capture_lex $P1041
+    .const 'Sub' $P1034 = "261_1271948667.92136" 
+    capture_lex $P1034
+    .const 'Sub' $P1027 = "259_1271948667.92136" 
+    capture_lex $P1027
+    .const 'Sub' $P1020 = "257_1271948667.92136" 
+    capture_lex $P1020
+    .const 'Sub' $P1013 = "255_1271948667.92136" 
+    capture_lex $P1013
+    .const 'Sub' $P1006 = "253_1271948667.92136" 
+    capture_lex $P1006
+    .const 'Sub' $P1000 = "251_1271948667.92136" 
+    capture_lex $P1000
+    .const 'Sub' $P993 = "249_1271948667.92136" 
+    capture_lex $P993
+    .const 'Sub' $P986 = "247_1271948667.92136" 
+    capture_lex $P986
+    .const 'Sub' $P979 = "245_1271948667.92136" 
+    capture_lex $P979
+    .const 'Sub' $P972 = "243_1271948667.92136" 
+    capture_lex $P972
+    .const 'Sub' $P965 = "241_1271948667.92136" 
+    capture_lex $P965
+    .const 'Sub' $P958 = "239_1271948667.92136" 
+    capture_lex $P958
+    .const 'Sub' $P951 = "237_1271948667.92136" 
+    capture_lex $P951
+    .const 'Sub' $P945 = "235_1271948667.92136" 
+    capture_lex $P945
+    .const 'Sub' $P939 = "233_1271948667.92136" 
+    capture_lex $P939
+    .const 'Sub' $P934 = "231_1271948667.92136" 
+    capture_lex $P934
+    .const 'Sub' $P928 = "229_1271948667.92136" 
+    capture_lex $P928
+    .const 'Sub' $P922 = "227_1271948667.92136" 
+    capture_lex $P922
+    .const 'Sub' $P917 = "225_1271948667.92136" 
+    capture_lex $P917
+    .const 'Sub' $P912 = "223_1271948667.92136" 
+    capture_lex $P912
+    .const 'Sub' $P905 = "221_1271948667.92136" 
+    capture_lex $P905
+    .const 'Sub' $P897 = "219_1271948667.92136" 
     capture_lex $P897
-    .const 'Sub' $P889 = "217_1267204702.05125" 
-    capture_lex $P889
-    .const 'Sub' $P884 = "215_1267204702.05125" 
-    capture_lex $P884
-    .const 'Sub' $P879 = "213_1267204702.05125" 
-    capture_lex $P879
-    .const 'Sub' $P874 = "211_1267204702.05125" 
+    .const 'Sub' $P892 = "217_1271948667.92136" 
+    capture_lex $P892
+    .const 'Sub' $P887 = "215_1271948667.92136" 
+    capture_lex $P887
+    .const 'Sub' $P882 = "213_1271948667.92136" 
+    capture_lex $P882
+    .const 'Sub' $P874 = "211_1271948667.92136" 
     capture_lex $P874
-    .const 'Sub' $P866 = "209_1267204702.05125" 
+    .const 'Sub' $P866 = "209_1271948667.92136" 
     capture_lex $P866
-    .const 'Sub' $P858 = "207_1267204702.05125" 
-    capture_lex $P858
-    .const 'Sub' $P853 = "205_1267204702.05125" 
-    capture_lex $P853
-    .const 'Sub' $P848 = "203_1267204702.05125" 
-    capture_lex $P848
-    .const 'Sub' $P842 = "201_1267204702.05125" 
-    capture_lex $P842
-    .const 'Sub' $P836 = "199_1267204702.05125" 
-    capture_lex $P836
-    .const 'Sub' $P830 = "197_1267204702.05125" 
-    capture_lex $P830
-    .const 'Sub' $P824 = "195_1267204702.05125" 
-    capture_lex $P824
-    .const 'Sub' $P818 = "193_1267204702.05125" 
-    capture_lex $P818
-    .const 'Sub' $P813 = "191_1267204702.05125" 
-    capture_lex $P813
-    .const 'Sub' $P808 = "189_1267204702.05125" 
-    capture_lex $P808
-    .const 'Sub' $P795 = "185_1267204702.05125" 
-    capture_lex $P795
-    .const 'Sub' $P787 = "183_1267204702.05125" 
-    capture_lex $P787
-    .const 'Sub' $P781 = "181_1267204702.05125" 
-    capture_lex $P781
-    .const 'Sub' $P774 = "179_1267204702.05125" 
-    capture_lex $P774
-    .const 'Sub' $P768 = "177_1267204702.05125" 
-    capture_lex $P768
-    .const 'Sub' $P760 = "175_1267204702.05125" 
-    capture_lex $P760
-    .const 'Sub' $P752 = "173_1267204702.05125" 
-    capture_lex $P752
-    .const 'Sub' $P746 = "171_1267204702.05125" 
-    capture_lex $P746
-    .const 'Sub' $P740 = "169_1267204702.05125" 
-    capture_lex $P740
-    .const 'Sub' $P725 = "165_1267204702.05125" 
-    capture_lex $P725
-    .const 'Sub' $P688 = "163_1267204702.05125" 
-    capture_lex $P688
-    .const 'Sub' $P680 = "161_1267204702.05125" 
-    capture_lex $P680
-    .const 'Sub' $P674 = "159_1267204702.05125" 
-    capture_lex $P674
-    .const 'Sub' $P664 = "157_1267204702.05125" 
-    capture_lex $P664
-    .const 'Sub' $P649 = "155_1267204702.05125" 
-    capture_lex $P649
-    .const 'Sub' $P640 = "153_1267204702.05125" 
-    capture_lex $P640
-    .const 'Sub' $P621 = "151_1267204702.05125" 
-    capture_lex $P621
-    .const 'Sub' $P597 = "149_1267204702.05125" 
-    capture_lex $P597
-    .const 'Sub' $P590 = "147_1267204702.05125" 
-    capture_lex $P590
-    .const 'Sub' $P583 = "145_1267204702.05125" 
-    capture_lex $P583
-    .const 'Sub' $P573 = "141_1267204702.05125" 
-    capture_lex $P573
-    .const 'Sub' $P562 = "139_1267204702.05125" 
-    capture_lex $P562
-    .const 'Sub' $P555 = "137_1267204702.05125" 
-    capture_lex $P555
-    .const 'Sub' $P548 = "135_1267204702.05125" 
-    capture_lex $P548
-    .const 'Sub' $P541 = "133_1267204702.05125" 
-    capture_lex $P541
-    .const 'Sub' $P514 = "129_1267204702.05125" 
-    capture_lex $P514
-    .const 'Sub' $P505 = "127_1267204702.05125" 
-    capture_lex $P505
-    .const 'Sub' $P498 = "125_1267204702.05125" 
-    capture_lex $P498
-    .const 'Sub' $P489 = "121_1267204702.05125" 
-    capture_lex $P489
-    .const 'Sub' $P484 = "119_1267204702.05125" 
-    capture_lex $P484
-    .const 'Sub' $P472 = "117_1267204702.05125" 
-    capture_lex $P472
-    .const 'Sub' $P460 = "115_1267204702.05125" 
-    capture_lex $P460
-    .const 'Sub' $P452 = "113_1267204702.05125" 
-    capture_lex $P452
-    .const 'Sub' $P447 = "111_1267204702.05125" 
-    capture_lex $P447
-    .const 'Sub' $P441 = "109_1267204702.05125" 
-    capture_lex $P441
-    .const 'Sub' $P435 = "107_1267204702.05125" 
-    capture_lex $P435
-    .const 'Sub' $P429 = "105_1267204702.05125" 
-    capture_lex $P429
-    .const 'Sub' $P423 = "103_1267204702.05125" 
-    capture_lex $P423
-    .const 'Sub' $P417 = "101_1267204702.05125" 
-    capture_lex $P417
-    .const 'Sub' $P411 = "99_1267204702.05125" 
-    capture_lex $P411
-    .const 'Sub' $P405 = "97_1267204702.05125" 
-    capture_lex $P405
-    .const 'Sub' $P399 = "95_1267204702.05125" 
-    capture_lex $P399
-    .const 'Sub' $P391 = "93_1267204702.05125" 
-    capture_lex $P391
-    .const 'Sub' $P383 = "91_1267204702.05125" 
-    capture_lex $P383
-    .const 'Sub' $P371 = "87_1267204702.05125" 
-    capture_lex $P371
-    .const 'Sub' $P363 = "85_1267204702.05125" 
-    capture_lex $P363
-    .const 'Sub' $P353 = "81_1267204702.05125" 
-    capture_lex $P353
-    .const 'Sub' $P346 = "79_1267204702.05125" 
-    capture_lex $P346
-    .const 'Sub' $P339 = "77_1267204702.05125" 
-    capture_lex $P339
-    .const 'Sub' $P327 = "73_1267204702.05125" 
-    capture_lex $P327
-    .const 'Sub' $P319 = "71_1267204702.05125" 
-    capture_lex $P319
-    .const 'Sub' $P311 = "69_1267204702.05125" 
-    capture_lex $P311
-    .const 'Sub' $P291 = "67_1267204702.05125" 
-    capture_lex $P291
-    .const 'Sub' $P282 = "65_1267204702.05125" 
-    capture_lex $P282
-    .const 'Sub' $P264 = "62_1267204702.05125" 
-    capture_lex $P264
-    .const 'Sub' $P244 = "60_1267204702.05125" 
-    capture_lex $P244
-    .const 'Sub' $P235 = "56_1267204702.05125" 
-    capture_lex $P235
-    .const 'Sub' $P230 = "54_1267204702.05125" 
-    capture_lex $P230
-    .const 'Sub' $P221 = "50_1267204702.05125" 
-    capture_lex $P221
-    .const 'Sub' $P216 = "48_1267204702.05125" 
-    capture_lex $P216
-    .const 'Sub' $P208 = "46_1267204702.05125" 
-    capture_lex $P208
-    .const 'Sub' $P201 = "44_1267204702.05125" 
-    capture_lex $P201
-    .const 'Sub' $P195 = "42_1267204702.05125" 
-    capture_lex $P195
-    .const 'Sub' $P187 = "40_1267204702.05125" 
-    capture_lex $P187
-    .const 'Sub' $P181 = "38_1267204702.05125" 
-    capture_lex $P181
-    .const 'Sub' $P175 = "36_1267204702.05125" 
-    capture_lex $P175
-    .const 'Sub' $P159 = "33_1267204702.05125" 
-    capture_lex $P159
-    .const 'Sub' $P146 = "31_1267204702.05125" 
-    capture_lex $P146
-    .const 'Sub' $P139 = "29_1267204702.05125" 
-    capture_lex $P139
-    .const 'Sub' $P96 = "26_1267204702.05125" 
+    .const 'Sub' $P861 = "207_1271948667.92136" 
+    capture_lex $P861
+    .const 'Sub' $P856 = "205_1271948667.92136" 
+    capture_lex $P856
+    .const 'Sub' $P851 = "203_1271948667.92136" 
+    capture_lex $P851
+    .const 'Sub' $P845 = "201_1271948667.92136" 
+    capture_lex $P845
+    .const 'Sub' $P839 = "199_1271948667.92136" 
+    capture_lex $P839
+    .const 'Sub' $P833 = "197_1271948667.92136" 
+    capture_lex $P833
+    .const 'Sub' $P827 = "195_1271948667.92136" 
+    capture_lex $P827
+    .const 'Sub' $P821 = "193_1271948667.92136" 
+    capture_lex $P821
+    .const 'Sub' $P816 = "191_1271948667.92136" 
+    capture_lex $P816
+    .const 'Sub' $P811 = "189_1271948667.92136" 
+    capture_lex $P811
+    .const 'Sub' $P798 = "185_1271948667.92136" 
+    capture_lex $P798
+    .const 'Sub' $P790 = "183_1271948667.92136" 
+    capture_lex $P790
+    .const 'Sub' $P784 = "181_1271948667.92136" 
+    capture_lex $P784
+    .const 'Sub' $P777 = "179_1271948667.92136" 
+    capture_lex $P777
+    .const 'Sub' $P771 = "177_1271948667.92136" 
+    capture_lex $P771
+    .const 'Sub' $P763 = "175_1271948667.92136" 
+    capture_lex $P763
+    .const 'Sub' $P755 = "173_1271948667.92136" 
+    capture_lex $P755
+    .const 'Sub' $P749 = "171_1271948667.92136" 
+    capture_lex $P749
+    .const 'Sub' $P743 = "169_1271948667.92136" 
+    capture_lex $P743
+    .const 'Sub' $P728 = "165_1271948667.92136" 
+    capture_lex $P728
+    .const 'Sub' $P691 = "163_1271948667.92136" 
+    capture_lex $P691
+    .const 'Sub' $P683 = "161_1271948667.92136" 
+    capture_lex $P683
+    .const 'Sub' $P677 = "159_1271948667.92136" 
+    capture_lex $P677
+    .const 'Sub' $P667 = "157_1271948667.92136" 
+    capture_lex $P667
+    .const 'Sub' $P652 = "155_1271948667.92136" 
+    capture_lex $P652
+    .const 'Sub' $P643 = "153_1271948667.92136" 
+    capture_lex $P643
+    .const 'Sub' $P624 = "151_1271948667.92136" 
+    capture_lex $P624
+    .const 'Sub' $P600 = "149_1271948667.92136" 
+    capture_lex $P600
+    .const 'Sub' $P593 = "147_1271948667.92136" 
+    capture_lex $P593
+    .const 'Sub' $P586 = "145_1271948667.92136" 
+    capture_lex $P586
+    .const 'Sub' $P576 = "141_1271948667.92136" 
+    capture_lex $P576
+    .const 'Sub' $P565 = "139_1271948667.92136" 
+    capture_lex $P565
+    .const 'Sub' $P558 = "137_1271948667.92136" 
+    capture_lex $P558
+    .const 'Sub' $P551 = "135_1271948667.92136" 
+    capture_lex $P551
+    .const 'Sub' $P544 = "133_1271948667.92136" 
+    capture_lex $P544
+    .const 'Sub' $P517 = "129_1271948667.92136" 
+    capture_lex $P517
+    .const 'Sub' $P508 = "127_1271948667.92136" 
+    capture_lex $P508
+    .const 'Sub' $P501 = "125_1271948667.92136" 
+    capture_lex $P501
+    .const 'Sub' $P492 = "121_1271948667.92136" 
+    capture_lex $P492
+    .const 'Sub' $P487 = "119_1271948667.92136" 
+    capture_lex $P487
+    .const 'Sub' $P475 = "117_1271948667.92136" 
+    capture_lex $P475
+    .const 'Sub' $P463 = "115_1271948667.92136" 
+    capture_lex $P463
+    .const 'Sub' $P455 = "113_1271948667.92136" 
+    capture_lex $P455
+    .const 'Sub' $P450 = "111_1271948667.92136" 
+    capture_lex $P450
+    .const 'Sub' $P444 = "109_1271948667.92136" 
+    capture_lex $P444
+    .const 'Sub' $P438 = "107_1271948667.92136" 
+    capture_lex $P438
+    .const 'Sub' $P432 = "105_1271948667.92136" 
+    capture_lex $P432
+    .const 'Sub' $P426 = "103_1271948667.92136" 
+    capture_lex $P426
+    .const 'Sub' $P420 = "101_1271948667.92136" 
+    capture_lex $P420
+    .const 'Sub' $P414 = "99_1271948667.92136" 
+    capture_lex $P414
+    .const 'Sub' $P408 = "97_1271948667.92136" 
+    capture_lex $P408
+    .const 'Sub' $P402 = "95_1271948667.92136" 
+    capture_lex $P402
+    .const 'Sub' $P394 = "93_1271948667.92136" 
+    capture_lex $P394
+    .const 'Sub' $P386 = "91_1271948667.92136" 
+    capture_lex $P386
+    .const 'Sub' $P374 = "87_1271948667.92136" 
+    capture_lex $P374
+    .const 'Sub' $P366 = "85_1271948667.92136" 
+    capture_lex $P366
+    .const 'Sub' $P356 = "81_1271948667.92136" 
+    capture_lex $P356
+    .const 'Sub' $P349 = "79_1271948667.92136" 
+    capture_lex $P349
+    .const 'Sub' $P342 = "77_1271948667.92136" 
+    capture_lex $P342
+    .const 'Sub' $P330 = "73_1271948667.92136" 
+    capture_lex $P330
+    .const 'Sub' $P322 = "71_1271948667.92136" 
+    capture_lex $P322
+    .const 'Sub' $P314 = "69_1271948667.92136" 
+    capture_lex $P314
+    .const 'Sub' $P294 = "67_1271948667.92136" 
+    capture_lex $P294
+    .const 'Sub' $P285 = "65_1271948667.92136" 
+    capture_lex $P285
+    .const 'Sub' $P267 = "62_1271948667.92136" 
+    capture_lex $P267
+    .const 'Sub' $P247 = "60_1271948667.92136" 
+    capture_lex $P247
+    .const 'Sub' $P238 = "56_1271948667.92136" 
+    capture_lex $P238
+    .const 'Sub' $P233 = "54_1271948667.92136" 
+    capture_lex $P233
+    .const 'Sub' $P224 = "50_1271948667.92136" 
+    capture_lex $P224
+    .const 'Sub' $P219 = "48_1271948667.92136" 
+    capture_lex $P219
+    .const 'Sub' $P211 = "46_1271948667.92136" 
+    capture_lex $P211
+    .const 'Sub' $P204 = "44_1271948667.92136" 
+    capture_lex $P204
+    .const 'Sub' $P198 = "42_1271948667.92136" 
+    capture_lex $P198
+    .const 'Sub' $P190 = "40_1271948667.92136" 
+    capture_lex $P190
+    .const 'Sub' $P184 = "38_1271948667.92136" 
+    capture_lex $P184
+    .const 'Sub' $P178 = "36_1271948667.92136" 
+    capture_lex $P178
+    .const 'Sub' $P162 = "33_1271948667.92136" 
+    capture_lex $P162
+    .const 'Sub' $P149 = "31_1271948667.92136" 
+    capture_lex $P149
+    .const 'Sub' $P142 = "29_1271948667.92136" 
+    capture_lex $P142
+    .const 'Sub' $P96 = "26_1271948667.92136" 
     capture_lex $P96
-    .const 'Sub' $P78 = "23_1267204702.05125" 
+    .const 'Sub' $P78 = "23_1271948667.92136" 
     capture_lex $P78
-    .const 'Sub' $P68 = "21_1267204702.05125" 
+    .const 'Sub' $P68 = "21_1271948667.92136" 
     capture_lex $P68
-    .const 'Sub' $P54 = "19_1267204702.05125" 
+    .const 'Sub' $P54 = "19_1271948667.92136" 
     capture_lex $P54
-    .const 'Sub' $P46 = "17_1267204702.05125" 
+    .const 'Sub' $P46 = "17_1271948667.92136" 
     capture_lex $P46
-    .const 'Sub' $P39 = "15_1267204702.05125" 
+    .const 'Sub' $P39 = "15_1271948667.92136" 
     capture_lex $P39
-    .const 'Sub' $P33 = "13_1267204702.05125" 
+    .const 'Sub' $P33 = "13_1271948667.92136" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1267204702.05125" 
+    .const 'Sub' $P15 = "12_1271948667.92136" 
     capture_lex $P15
-.annotate "line", 531
-    get_hll_global $P1240, ["NQP";"Regex"], "_block1239" 
-    capture_lex $P1240
-    $P1279 = $P1240()
+.annotate "line", 536
+    get_hll_global $P1248, ["NQP";"Regex"], "_block1247" 
+    capture_lex $P1248
+    $P1287 = $P1248()
 .annotate "line", 4
-    .return ($P1279)
+    .return ($P1287)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post332") :outer("11_1267204702.05125")
+.sub "" :load :init :subid("post334") :outer("11_1271948667.92136")
 .annotate "line", 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
     set block, $P14
-.annotate "line", 418
-    get_hll_global $P1280, ["NQP"], "Grammar"
-    $P1280."O"(":prec<y=>, :assoc<unary>", "%methodop")
-.annotate "line", 419
-    get_hll_global $P1281, ["NQP"], "Grammar"
-    $P1281."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
-.annotate "line", 420
-    get_hll_global $P1282, ["NQP"], "Grammar"
-    $P1282."O"(":prec<w=>, :assoc<left>", "%exponentiation")
-.annotate "line", 421
-    get_hll_global $P1283, ["NQP"], "Grammar"
-    $P1283."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
-.annotate "line", 422
-    get_hll_global $P1284, ["NQP"], "Grammar"
-    $P1284."O"(":prec<u=>, :assoc<left>", "%multiplicative")
 .annotate "line", 423
-    get_hll_global $P1285, ["NQP"], "Grammar"
-    $P1285."O"(":prec<t=>, :assoc<left>", "%additive")
+    get_hll_global $P1288, ["NQP"], "Grammar"
+    $P1288."O"(":prec<y=>, :assoc<unary>", "%methodop")
 .annotate "line", 424
-    get_hll_global $P1286, ["NQP"], "Grammar"
-    $P1286."O"(":prec<r=>, :assoc<left>", "%concatenation")
+    get_hll_global $P1289, ["NQP"], "Grammar"
+    $P1289."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
 .annotate "line", 425
-    get_hll_global $P1287, ["NQP"], "Grammar"
-    $P1287."O"(":prec<m=>, :assoc<left>", "%relational")
+    get_hll_global $P1290, ["NQP"], "Grammar"
+    $P1290."O"(":prec<w=>, :assoc<left>", "%exponentiation")
 .annotate "line", 426
-    get_hll_global $P1288, ["NQP"], "Grammar"
-    $P1288."O"(":prec<l=>, :assoc<left>", "%tight_and")
+    get_hll_global $P1291, ["NQP"], "Grammar"
+    $P1291."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
 .annotate "line", 427
-    get_hll_global $P1289, ["NQP"], "Grammar"
-    $P1289."O"(":prec<k=>, :assoc<left>", "%tight_or")
+    get_hll_global $P1292, ["NQP"], "Grammar"
+    $P1292."O"(":prec<u=>, :assoc<left>", "%multiplicative")
 .annotate "line", 428
-    get_hll_global $P1290, ["NQP"], "Grammar"
-    $P1290."O"(":prec<j=>, :assoc<right>", "%conditional")
+    get_hll_global $P1293, ["NQP"], "Grammar"
+    $P1293."O"(":prec<t=>, :assoc<left>", "%additive")
 .annotate "line", 429
-    get_hll_global $P1291, ["NQP"], "Grammar"
-    $P1291."O"(":prec<i=>, :assoc<right>", "%assignment")
+    get_hll_global $P1294, ["NQP"], "Grammar"
+    $P1294."O"(":prec<r=>, :assoc<left>", "%concatenation")
 .annotate "line", 430
-    get_hll_global $P1292, ["NQP"], "Grammar"
-    $P1292."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+    get_hll_global $P1295, ["NQP"], "Grammar"
+    $P1295."O"(":prec<m=>, :assoc<left>", "%relational")
 .annotate "line", 431
-    get_hll_global $P1293, ["NQP"], "Grammar"
-    $P1293."O"(":prec<f=>, :assoc<list>", "%list_infix")
+    get_hll_global $P1296, ["NQP"], "Grammar"
+    $P1296."O"(":prec<l=>, :assoc<left>", "%tight_and")
 .annotate "line", 432
-    get_hll_global $P1294, ["NQP"], "Grammar"
-    $P1294."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-.annotate "line", 417
-    $P1295 = get_root_global ["parrot"], "P6metaclass"
-    $P1295."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+    get_hll_global $P1297, ["NQP"], "Grammar"
+    $P1297."O"(":prec<k=>, :assoc<left>", "%tight_or")
+.annotate "line", 433
+    get_hll_global $P1298, ["NQP"], "Grammar"
+    $P1298."O"(":prec<j=>, :assoc<right>", "%conditional")
+.annotate "line", 434
+    get_hll_global $P1299, ["NQP"], "Grammar"
+    $P1299."O"(":prec<i=>, :assoc<right>", "%assignment")
+.annotate "line", 435
+    get_hll_global $P1300, ["NQP"], "Grammar"
+    $P1300."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+.annotate "line", 436
+    get_hll_global $P1301, ["NQP"], "Grammar"
+    $P1301."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate "line", 437
+    get_hll_global $P1302, ["NQP"], "Grammar"
+    $P1302."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+.annotate "line", 422
+    $P1303 = get_root_global ["parrot"], "P6metaclass"
+    $P1303."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "TOP"  :subid("12_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "TOP"  :subid("12_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -410,55 +412,55 @@
     .lex "$*SCOPE", $P19
 .annotate "line", 4
     find_lex $P20, "%*LANG"
-    unless_null $P20, vivify_333
+    unless_null $P20, vivify_335
     get_hll_global $P20, "%LANG"
-    unless_null $P20, vivify_334
+    unless_null $P20, vivify_336
     die "Contextual %*LANG not found"
-  vivify_334:
-  vivify_333:
+  vivify_336:
+  vivify_335:
 .annotate "line", 6
     get_hll_global $P21, ["NQP"], "Regex"
     find_lex $P22, "%*LANG"
-    unless_null $P22, vivify_335
+    unless_null $P22, vivify_337
     get_hll_global $P22, "%LANG"
-    unless_null $P22, vivify_336
+    unless_null $P22, vivify_338
     die "Contextual %*LANG not found"
-  vivify_336:
+  vivify_338:
     store_lex "%*LANG", $P22
-  vivify_335:
+  vivify_337:
     set $P22["Regex"], $P21
 .annotate "line", 7
     get_hll_global $P23, ["NQP"], "RegexActions"
     find_lex $P24, "%*LANG"
-    unless_null $P24, vivify_337
+    unless_null $P24, vivify_339
     get_hll_global $P24, "%LANG"
-    unless_null $P24, vivify_338
+    unless_null $P24, vivify_340
     die "Contextual %*LANG not found"
-  vivify_338:
+  vivify_340:
     store_lex "%*LANG", $P24
-  vivify_337:
+  vivify_339:
     set $P24["Regex-actions"], $P23
 .annotate "line", 8
     get_hll_global $P25, ["NQP"], "Grammar"
     find_lex $P26, "%*LANG"
-    unless_null $P26, vivify_339
+    unless_null $P26, vivify_341
     get_hll_global $P26, "%LANG"
-    unless_null $P26, vivify_340
+    unless_null $P26, vivify_342
     die "Contextual %*LANG not found"
-  vivify_340:
+  vivify_342:
     store_lex "%*LANG", $P26
-  vivify_339:
+  vivify_341:
     set $P26["MAIN"], $P25
 .annotate "line", 9
     get_hll_global $P27, ["NQP"], "Actions"
     find_lex $P28, "%*LANG"
-    unless_null $P28, vivify_341
+    unless_null $P28, vivify_343
     get_hll_global $P28, "%LANG"
-    unless_null $P28, vivify_342
+    unless_null $P28, vivify_344
     die "Contextual %*LANG not found"
-  vivify_342:
+  vivify_344:
     store_lex "%*LANG", $P28
-  vivify_341:
+  vivify_343:
     set $P28["MAIN-actions"], $P27
 .annotate "line", 10
     new $P29, "String"
@@ -478,7 +480,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "identifier"  :subid("13_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
     .local string rx34_tgt
     .local int rx34_pos
@@ -536,7 +538,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1267204702.05125") :method
+.sub "!PREFIX__identifier"  :subid("14_1271948667.92136") :method
 .annotate "line", 4
     $P36 = self."!PREFIX__!subrule"("ident", "")
     new $P37, "ResizablePMCArray"
@@ -546,7 +548,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "name"  :subid("15_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
     .local string rx40_tgt
     .local int rx40_pos
@@ -620,7 +622,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1267204702.05125") :method
+.sub "!PREFIX__name"  :subid("16_1271948667.92136") :method
 .annotate "line", 4
     new $P42, "ResizablePMCArray"
     push $P42, ""
@@ -629,7 +631,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "deflongname"  :subid("17_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
     .local string rx47_tgt
     .local int rx47_pos
@@ -702,7 +704,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1267204702.05125") :method
+.sub "!PREFIX__deflongname"  :subid("18_1271948667.92136") :method
 .annotate "line", 4
     $P49 = self."!PREFIX__!subrule"("identifier", "")
     new $P50, "ResizablePMCArray"
@@ -712,7 +714,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "ENDSTMT"  :subid("19_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
     .local string rx55_tgt
     .local int rx55_pos
@@ -844,7 +846,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1267204702.05125") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1271948667.92136") :method
 .annotate "line", 4
     new $P57, "ResizablePMCArray"
     push $P57, ""
@@ -853,7 +855,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "ws"  :subid("21_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
     .local string rx69_tgt
     .local int rx69_pos
@@ -979,7 +981,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1267204702.05125") :method
+.sub "!PREFIX__ws"  :subid("22_1271948667.92136") :method
 .annotate "line", 4
     new $P71, "ResizablePMCArray"
     push $P71, ""
@@ -989,9 +991,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "unv"  :subid("23_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
-    .const 'Sub' $P86 = "25_1267204702.05125" 
+    .const 'Sub' $P86 = "25_1271948667.92136" 
     capture_lex $P86
     .local string rx79_tgt
     .local int rx79_pos
@@ -1037,7 +1039,7 @@
   rxanchor84_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx79_cur."!cursor_pos"(rx79_pos)
-    .const 'Sub' $P86 = "25_1267204702.05125" 
+    .const 'Sub' $P86 = "25_1271948667.92136" 
     capture_lex $P86
     $P10 = rx79_cur."before"($P86)
     unless $P10, rx79_fail
@@ -1116,7 +1118,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1267204702.05125") :method
+.sub "!PREFIX__unv"  :subid("24_1271948667.92136") :method
 .annotate "line", 4
     new $P81, "ResizablePMCArray"
     push $P81, ""
@@ -1127,7 +1129,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block85"  :anon :subid("25_1267204702.05125") :method :outer("23_1267204702.05125")
+.sub "_block85"  :anon :subid("25_1271948667.92136") :method :outer("23_1271948667.92136")
 .annotate "line", 44
     .local string rx87_tgt
     .local int rx87_pos
@@ -1217,10 +1219,10 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "pod_comment"  :subid("26_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
-    .const 'Sub' $P131 = "28_1267204702.05125" 
-    capture_lex $P131
+    .const 'Sub' $P133 = "28_1271948667.92136" 
+    capture_lex $P133
     .local string rx97_tgt
     .local int rx97_pos
     .local int rx97_off
@@ -1643,40 +1645,48 @@
 .annotate "line", 60
     goto alt104_end
   alt104_3:
-.annotate "line", 68
-  # rx rxquantr129 ** 0..1
-    set_addr $I137, rxquantr129_done
-    rx97_cur."!mark_push"(0, rx97_pos, $I137)
-  rxquantr129_loop:
-.annotate "line", 67
-  # rx subrule "before" subtype=zerowidth negate=
-    rx97_cur."!cursor_pos"(rx97_pos)
-    .const 'Sub' $P131 = "28_1267204702.05125" 
-    capture_lex $P131
-    $P10 = rx97_cur."before"($P131)
-    unless $P10, rx97_fail
-.annotate "line", 68
-  # rx subrule "panic" subtype=method negate=
+    set_addr $I10, alt104_4
+    rx97_cur."!mark_push"(0, rx97_pos, $I10)
+.annotate "line", 66
+  # rx subrule "identifier" subtype=capture negate=
     rx97_cur."!cursor_pos"(rx97_pos)
-    $P10 = rx97_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+    $P10 = rx97_cur."identifier"()
     unless $P10, rx97_fail
+    rx97_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("identifier")
     rx97_pos = $P10."pos"()
-    (rx97_rep) = rx97_cur."!mark_commit"($I137)
-  rxquantr129_done:
-  alt138_0:
-.annotate "line", 69
-    set_addr $I10, alt138_1
+.annotate "line", 67
+  # rx rxquantf129 ** 0..*
+    set_addr $I10, rxquantf129_loop
     rx97_cur."!mark_push"(0, rx97_pos, $I10)
-  # rx subrule "alpha" subtype=capture negate=
+    goto rxquantf129_done
+  rxquantf129_loop:
+  # rx charclass .
+    ge rx97_pos, rx97_eos, rx97_fail
+    inc rx97_pos
+    set_addr $I10, rxquantf129_loop
+    rx97_cur."!mark_push"($I130, rx97_pos, $I10)
+  rxquantf129_done:
+  # rxanchor bol
+    eq rx97_pos, 0, rxanchor131_done
+    ge rx97_pos, rx97_eos, rx97_fail
+    sub $I10, rx97_pos, rx97_off
+    dec $I10
+    is_cclass $I11, 4096, rx97_tgt, $I10
+    unless $I11, rx97_fail
+  rxanchor131_done:
+  # rx subrule "before" subtype=zerowidth negate=
     rx97_cur."!cursor_pos"(rx97_pos)
-    $P10 = rx97_cur."alpha"()
+    .const 'Sub' $P133 = "28_1271948667.92136" 
+    capture_lex $P133
+    $P10 = rx97_cur."before"($P133)
     unless $P10, rx97_fail
-    rx97_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("alpha")
-    rx97_pos = $P10."pos"()
-    goto alt138_end
-  alt138_1:
-    set_addr $I10, alt138_2
+.annotate "line", 66
+    goto alt104_end
+  alt104_4:
+  alt141_0:
+.annotate "line", 73
+    set_addr $I10, alt141_1
     rx97_cur."!mark_push"(0, rx97_pos, $I10)
   # rx charclass s
     ge rx97_pos, rx97_eos, rx97_fail
@@ -1684,15 +1694,15 @@
     is_cclass $I11, 32, rx97_tgt, $I10
     unless $I11, rx97_fail
     inc rx97_pos
-    goto alt138_end
-  alt138_2:
+    goto alt141_end
+  alt141_1:
   # rx subrule "panic" subtype=method negate=
     rx97_cur."!cursor_pos"(rx97_pos)
     $P10 = rx97_cur."panic"("Illegal pod directive")
     unless $P10, rx97_fail
     rx97_pos = $P10."pos"()
-  alt138_end:
-.annotate "line", 70
+  alt141_end:
+.annotate "line", 74
   # rx charclass_q N r 0..-1
     sub $I10, rx97_pos, rx97_off
     find_cclass $I11, 4096, rx97_tgt, $I10, rx97_eos
@@ -1718,7 +1728,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1267204702.05125") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1271948667.92136") :method
 .annotate "line", 4
     new $P99, "ResizablePMCArray"
     push $P99, ""
@@ -1727,8614 +1737,8627 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block130"  :anon :subid("28_1267204702.05125") :method :outer("26_1267204702.05125")
+.sub "_block132"  :anon :subid("28_1271948667.92136") :method :outer("26_1271948667.92136")
 .annotate "line", 67
-    .local string rx132_tgt
-    .local int rx132_pos
-    .local int rx132_off
-    .local int rx132_eos
-    .local int rx132_rep
-    .local pmc rx132_cur
-    (rx132_cur, rx132_pos, rx132_tgt) = self."!cursor_start"()
-    rx132_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx132_cur
-    .local pmc match
-    .lex "$/", match
-    length rx132_eos, rx132_tgt
-    set rx132_off, 0
-    lt rx132_pos, 2, rx132_start
-    sub rx132_off, rx132_pos, 1
-    substr rx132_tgt, rx132_tgt, rx132_off
-  rx132_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan133_done
-    goto rxscan133_scan
-  rxscan133_loop:
-    ($P10) = rx132_cur."from"()
-    inc $P10
-    set rx132_pos, $P10
-    ge rx132_pos, rx132_eos, rxscan133_done
-  rxscan133_scan:
-    set_addr $I10, rxscan133_loop
-    rx132_cur."!mark_push"(0, rx132_pos, $I10)
-  rxscan133_done:
-  # rx rxquantf134 ** 0..*
-    set_addr $I10, rxquantf134_loop
-    rx132_cur."!mark_push"(0, rx132_pos, $I10)
-    goto rxquantf134_done
-  rxquantf134_loop:
-  # rx charclass .
-    ge rx132_pos, rx132_eos, rx132_fail
-    inc rx132_pos
-    set_addr $I10, rxquantf134_loop
-    rx132_cur."!mark_push"($I135, rx132_pos, $I10)
-  rxquantf134_done:
-  # rxanchor bol
-    eq rx132_pos, 0, rxanchor136_done
-    ge rx132_pos, rx132_eos, rx132_fail
-    sub $I10, rx132_pos, rx132_off
-    dec $I10
-    is_cclass $I11, 4096, rx132_tgt, $I10
-    unless $I11, rx132_fail
-  rxanchor136_done:
-  # rx literal  "=cut"
-    add $I11, rx132_pos, 4
-    gt $I11, rx132_eos, rx132_fail
-    sub $I11, rx132_pos, rx132_off
-    substr $S10, rx132_tgt, $I11, 4
-    ne $S10, "=cut", rx132_fail
-    add rx132_pos, 4
+    .local string rx134_tgt
+    .local int rx134_pos
+    .local int rx134_off
+    .local int rx134_eos
+    .local int rx134_rep
+    .local pmc rx134_cur
+    (rx134_cur, rx134_pos, rx134_tgt) = self."!cursor_start"()
+    rx134_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx134_cur
+    .local pmc match
+    .lex "$/", match
+    length rx134_eos, rx134_tgt
+    set rx134_off, 0
+    lt rx134_pos, 2, rx134_start
+    sub rx134_off, rx134_pos, 1
+    substr rx134_tgt, rx134_tgt, rx134_off
+  rx134_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan135_done
+    goto rxscan135_scan
+  rxscan135_loop:
+    ($P10) = rx134_cur."from"()
+    inc $P10
+    set rx134_pos, $P10
+    ge rx134_pos, rx134_eos, rxscan135_done
+  rxscan135_scan:
+    set_addr $I10, rxscan135_loop
+    rx134_cur."!mark_push"(0, rx134_pos, $I10)
+  rxscan135_done:
+  # rx rxquantr136 ** 0..*
+    set_addr $I137, rxquantr136_done
+    rx134_cur."!mark_push"(0, rx134_pos, $I137)
+  rxquantr136_loop:
+  # rx enumcharlist negate=0 
+    ge rx134_pos, rx134_eos, rx134_fail
+    sub $I10, rx134_pos, rx134_off
+    substr $S10, rx134_tgt, $I10, 1
+    index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+    lt $I11, 0, rx134_fail
+    inc rx134_pos
+    (rx134_rep) = rx134_cur."!mark_commit"($I137)
+    rx134_cur."!mark_push"(rx134_rep, rx134_pos, $I137)
+    goto rxquantr136_loop
+  rxquantr136_done:
+  alt138_0:
+    set_addr $I10, alt138_1
+    rx134_cur."!mark_push"(0, rx134_pos, $I10)
+.annotate "line", 68
+  # rx literal  "="
+    add $I11, rx134_pos, 1
+    gt $I11, rx134_eos, rx134_fail
+    sub $I11, rx134_pos, rx134_off
+    substr $S10, rx134_tgt, $I11, 1
+    ne $S10, "=", rx134_fail
+    add rx134_pos, 1
+.annotate "line", 70
+  # rx rxquantr139 ** 0..1
+    set_addr $I140, rxquantr139_done
+    rx134_cur."!mark_push"(0, rx134_pos, $I140)
+  rxquantr139_loop:
+.annotate "line", 69
+  # rx literal  "cut"
+    add $I11, rx134_pos, 3
+    gt $I11, rx134_eos, rx134_fail
+    sub $I11, rx134_pos, rx134_off
+    substr $S10, rx134_tgt, $I11, 3
+    ne $S10, "cut", rx134_fail
+    add rx134_pos, 3
   # rxanchor rwb
-    le rx132_pos, 0, rx132_fail
-    sub $I10, rx132_pos, rx132_off
-    is_cclass $I11, 8192, rx132_tgt, $I10
-    if $I11, rx132_fail
+    le rx134_pos, 0, rx134_fail
+    sub $I10, rx134_pos, rx134_off
+    is_cclass $I11, 8192, rx134_tgt, $I10
+    if $I11, rx134_fail
     dec $I10
-    is_cclass $I11, 8192, rx132_tgt, $I10
-    unless $I11, rx132_fail
+    is_cclass $I11, 8192, rx134_tgt, $I10
+    unless $I11, rx134_fail
+.annotate "line", 70
+  # rx subrule "panic" subtype=method negate=
+    rx134_cur."!cursor_pos"(rx134_pos)
+    $P10 = rx134_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+    unless $P10, rx134_fail
+    rx134_pos = $P10."pos"()
+    (rx134_rep) = rx134_cur."!mark_commit"($I140)
+  rxquantr139_done:
+.annotate "line", 67
+    goto alt138_end
+  alt138_1:
+.annotate "line", 71
+  # rx charclass nl
+    ge rx134_pos, rx134_eos, rx134_fail
+    sub $I10, rx134_pos, rx134_off
+    is_cclass $I11, 4096, rx134_tgt, $I10
+    unless $I11, rx134_fail
+    substr $S10, rx134_tgt, $I10, 2
+    iseq $I11, $S10, "\r\n"
+    add rx134_pos, $I11
+    inc rx134_pos
+  alt138_end:
+.annotate "line", 67
   # rx pass
-    rx132_cur."!cursor_pass"(rx132_pos, "")
-    rx132_cur."!cursor_debug"("PASS  ", "", " at pos=", rx132_pos)
-    .return (rx132_cur)
-  rx132_fail:
-    (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0)
-    lt rx132_pos, -1, rx132_done
-    eq rx132_pos, -1, rx132_fail
-    jump $I10
-  rx132_done:
-    rx132_cur."!cursor_fail"()
-    rx132_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx132_cur)
+    rx134_cur."!cursor_pass"(rx134_pos, "")
+    rx134_cur."!cursor_debug"("PASS  ", "", " at pos=", rx134_pos)
+    .return (rx134_cur)
+  rx134_fail:
+    (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0)
+    lt rx134_pos, -1, rx134_done
+    eq rx134_pos, -1, rx134_fail
+    jump $I10
+  rx134_done:
+    rx134_cur."!cursor_fail"()
+    rx134_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx134_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 4
-    .local string rx140_tgt
-    .local int rx140_pos
-    .local int rx140_off
-    .local int rx140_eos
-    .local int rx140_rep
-    .local pmc rx140_cur
-    (rx140_cur, rx140_pos, rx140_tgt) = self."!cursor_start"()
-    rx140_cur."!cursor_debug"("START ", "comp_unit")
-    .lex unicode:"$\x{a2}", rx140_cur
-    .local pmc match
-    .lex "$/", match
-    length rx140_eos, rx140_tgt
-    set rx140_off, 0
-    lt rx140_pos, 2, rx140_start
-    sub rx140_off, rx140_pos, 1
-    substr rx140_tgt, rx140_tgt, rx140_off
-  rx140_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan144_done
-    goto rxscan144_scan
-  rxscan144_loop:
-    ($P10) = rx140_cur."from"()
-    inc $P10
-    set rx140_pos, $P10
-    ge rx140_pos, rx140_eos, rxscan144_done
-  rxscan144_scan:
-    set_addr $I10, rxscan144_loop
-    rx140_cur."!mark_push"(0, rx140_pos, $I10)
-  rxscan144_done:
-.annotate "line", 78
+.sub "comp_unit"  :subid("29_1271948667.92136") :method :outer("11_1271948667.92136")
+.annotate "line", 4
+    .local string rx143_tgt
+    .local int rx143_pos
+    .local int rx143_off
+    .local int rx143_eos
+    .local int rx143_rep
+    .local pmc rx143_cur
+    (rx143_cur, rx143_pos, rx143_tgt) = self."!cursor_start"()
+    rx143_cur."!cursor_debug"("START ", "comp_unit")
+    .lex unicode:"$\x{a2}", rx143_cur
+    .local pmc match
+    .lex "$/", match
+    length rx143_eos, rx143_tgt
+    set rx143_off, 0
+    lt rx143_pos, 2, rx143_start
+    sub rx143_off, rx143_pos, 1
+    substr rx143_tgt, rx143_tgt, rx143_off
+  rx143_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan147_done
+    goto rxscan147_scan
+  rxscan147_loop:
+    ($P10) = rx143_cur."from"()
+    inc $P10
+    set rx143_pos, $P10
+    ge rx143_pos, rx143_eos, rxscan147_done
+  rxscan147_scan:
+    set_addr $I10, rxscan147_loop
+    rx143_cur."!mark_push"(0, rx143_pos, $I10)
+  rxscan147_done:
+.annotate "line", 82
   # rx subrule "newpad" subtype=method negate=
-    rx140_cur."!cursor_pos"(rx140_pos)
-    $P10 = rx140_cur."newpad"()
-    unless $P10, rx140_fail
-    rx140_pos = $P10."pos"()
-.annotate "line", 79
+    rx143_cur."!cursor_pos"(rx143_pos)
+    $P10 = rx143_cur."newpad"()
+    unless $P10, rx143_fail
+    rx143_pos = $P10."pos"()
+.annotate "line", 83
   # rx subrule "statementlist" subtype=capture negate=
-    rx140_cur."!cursor_pos"(rx140_pos)
-    $P10 = rx140_cur."statementlist"()
-    unless $P10, rx140_fail
-    rx140_cur."!mark_push"(0, -1, 0, $P10)
+    rx143_cur."!cursor_pos"(rx143_pos)
+    $P10 = rx143_cur."statementlist"()
+    unless $P10, rx143_fail
+    rx143_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx140_pos = $P10."pos"()
-  alt145_0:
-.annotate "line", 80
-    set_addr $I10, alt145_1
-    rx140_cur."!mark_push"(0, rx140_pos, $I10)
+    rx143_pos = $P10."pos"()
+  alt148_0:
+.annotate "line", 84
+    set_addr $I10, alt148_1
+    rx143_cur."!mark_push"(0, rx143_pos, $I10)
   # rxanchor eos
-    ne rx140_pos, rx140_eos, rx140_fail
-    goto alt145_end
-  alt145_1:
+    ne rx143_pos, rx143_eos, rx143_fail
+    goto alt148_end
+  alt148_1:
   # rx subrule "panic" subtype=method negate=
-    rx140_cur."!cursor_pos"(rx140_pos)
-    $P10 = rx140_cur."panic"("Confused")
-    unless $P10, rx140_fail
-    rx140_pos = $P10."pos"()
-  alt145_end:
-.annotate "line", 77
+    rx143_cur."!cursor_pos"(rx143_pos)
+    $P10 = rx143_cur."panic"("Confused")
+    unless $P10, rx143_fail
+    rx143_pos = $P10."pos"()
+  alt148_end:
+.annotate "line", 81
   # rx pass
-    rx140_cur."!cursor_pass"(rx140_pos, "comp_unit")
-    rx140_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx140_pos)
-    .return (rx140_cur)
-  rx140_fail:
+    rx143_cur."!cursor_pass"(rx143_pos, "comp_unit")
+    rx143_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx143_pos)
+    .return (rx143_cur)
+  rx143_fail:
 .annotate "line", 4
-    (rx140_rep, rx140_pos, $I10, $P10) = rx140_cur."!mark_fail"(0)
-    lt rx140_pos, -1, rx140_done
-    eq rx140_pos, -1, rx140_fail
+    (rx143_rep, rx143_pos, $I10, $P10) = rx143_cur."!mark_fail"(0)
+    lt rx143_pos, -1, rx143_done
+    eq rx143_pos, -1, rx143_fail
     jump $I10
-  rx140_done:
-    rx140_cur."!cursor_fail"()
-    rx140_cur."!cursor_debug"("FAIL  ", "comp_unit")
-    .return (rx140_cur)
+  rx143_done:
+    rx143_cur."!cursor_fail"()
+    rx143_cur."!cursor_debug"("FAIL  ", "comp_unit")
+    .return (rx143_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1267204702.05125") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1271948667.92136") :method
 .annotate "line", 4
-    $P142 = self."!PREFIX__!subrule"("", "")
-    new $P143, "ResizablePMCArray"
-    push $P143, $P142
-    .return ($P143)
+    $P145 = self."!PREFIX__!subrule"("", "")
+    new $P146, "ResizablePMCArray"
+    push $P146, $P145
+    .return ($P146)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statementlist"  :subid("31_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
-    .local string rx147_tgt
-    .local int rx147_pos
-    .local int rx147_off
-    .local int rx147_eos
-    .local int rx147_rep
-    .local pmc rx147_cur
-    (rx147_cur, rx147_pos, rx147_tgt) = self."!cursor_start"()
-    rx147_cur."!cursor_debug"("START ", "statementlist")
-    rx147_cur."!cursor_caparray"("statement")
-    .lex unicode:"$\x{a2}", rx147_cur
+    .local string rx150_tgt
+    .local int rx150_pos
+    .local int rx150_off
+    .local int rx150_eos
+    .local int rx150_rep
+    .local pmc rx150_cur
+    (rx150_cur, rx150_pos, rx150_tgt) = self."!cursor_start"()
+    rx150_cur."!cursor_debug"("START ", "statementlist")
+    rx150_cur."!cursor_caparray"("statement")
+    .lex unicode:"$\x{a2}", rx150_cur
     .local pmc match
     .lex "$/", match
-    length rx147_eos, rx147_tgt
-    set rx147_off, 0
-    lt rx147_pos, 2, rx147_start
-    sub rx147_off, rx147_pos, 1
-    substr rx147_tgt, rx147_tgt, rx147_off
-  rx147_start:
+    length rx150_eos, rx150_tgt
+    set rx150_off, 0
+    lt rx150_pos, 2, rx150_start
+    sub rx150_off, rx150_pos, 1
+    substr rx150_tgt, rx150_tgt, rx150_off
+  rx150_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan150_done
-    goto rxscan150_scan
-  rxscan150_loop:
-    ($P10) = rx147_cur."from"()
+    ne $I10, -1, rxscan153_done
+    goto rxscan153_scan
+  rxscan153_loop:
+    ($P10) = rx150_cur."from"()
     inc $P10
-    set rx147_pos, $P10
-    ge rx147_pos, rx147_eos, rxscan150_done
-  rxscan150_scan:
-    set_addr $I10, rxscan150_loop
-    rx147_cur."!mark_push"(0, rx147_pos, $I10)
-  rxscan150_done:
-  alt151_0:
-.annotate "line", 83
-    set_addr $I10, alt151_1
-    rx147_cur."!mark_push"(0, rx147_pos, $I10)
-.annotate "line", 84
+    set rx150_pos, $P10
+    ge rx150_pos, rx150_eos, rxscan153_done
+  rxscan153_scan:
+    set_addr $I10, rxscan153_loop
+    rx150_cur."!mark_push"(0, rx150_pos, $I10)
+  rxscan153_done:
+  alt154_0:
+.annotate "line", 87
+    set_addr $I10, alt154_1
+    rx150_cur."!mark_push"(0, rx150_pos, $I10)
+.annotate "line", 88
   # rx subrule "ws" subtype=method negate=
-    rx147_cur."!cursor_pos"(rx147_pos)
-    $P10 = rx147_cur."ws"()
-    unless $P10, rx147_fail
-    rx147_pos = $P10."pos"()
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."ws"()
+    unless $P10, rx150_fail
+    rx150_pos = $P10."pos"()
   # rxanchor eos
-    ne rx147_pos, rx147_eos, rx147_fail
+    ne rx150_pos, rx150_eos, rx150_fail
   # rx subrule "ws" subtype=method negate=
-    rx147_cur."!cursor_pos"(rx147_pos)
-    $P10 = rx147_cur."ws"()
-    unless $P10, rx147_fail
-    rx147_pos = $P10."pos"()
-    goto alt151_end
-  alt151_1:
-.annotate "line", 85
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."ws"()
+    unless $P10, rx150_fail
+    rx150_pos = $P10."pos"()
+    goto alt154_end
+  alt154_1:
+.annotate "line", 89
   # rx subrule "ws" subtype=method negate=
-    rx147_cur."!cursor_pos"(rx147_pos)
-    $P10 = rx147_cur."ws"()
-    unless $P10, rx147_fail
-    rx147_pos = $P10."pos"()
-  # rx rxquantr155 ** 0..*
-    set_addr $I157, rxquantr155_done
-    rx147_cur."!mark_push"(0, rx147_pos, $I157)
-  rxquantr155_loop:
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."ws"()
+    unless $P10, rx150_fail
+    rx150_pos = $P10."pos"()
+  # rx rxquantr158 ** 0..*
+    set_addr $I160, rxquantr158_done
+    rx150_cur."!mark_push"(0, rx150_pos, $I160)
+  rxquantr158_loop:
   # rx subrule "statement" subtype=capture negate=
-    rx147_cur."!cursor_pos"(rx147_pos)
-    $P10 = rx147_cur."statement"()
-    unless $P10, rx147_fail
-    rx147_cur."!mark_push"(0, -1, 0, $P10)
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."statement"()
+    unless $P10, rx150_fail
+    rx150_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx147_pos = $P10."pos"()
+    rx150_pos = $P10."pos"()
   # rx subrule "eat_terminator" subtype=method negate=
-    rx147_cur."!cursor_pos"(rx147_pos)
-    $P10 = rx147_cur."eat_terminator"()
-    unless $P10, rx147_fail
-    rx147_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx147_cur."!cursor_pos"(rx147_pos)
-    $P10 = rx147_cur."ws"()
-    unless $P10, rx147_fail
-    rx147_pos = $P10."pos"()
-    (rx147_rep) = rx147_cur."!mark_commit"($I157)
-    rx147_cur."!mark_push"(rx147_rep, rx147_pos, $I157)
-    goto rxquantr155_loop
-  rxquantr155_done:
-  # rx subrule "ws" subtype=method negate=
-    rx147_cur."!cursor_pos"(rx147_pos)
-    $P10 = rx147_cur."ws"()
-    unless $P10, rx147_fail
-    rx147_pos = $P10."pos"()
-  alt151_end:
-.annotate "line", 83
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."eat_terminator"()
+    unless $P10, rx150_fail
+    rx150_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."ws"()
+    unless $P10, rx150_fail
+    rx150_pos = $P10."pos"()
+    (rx150_rep) = rx150_cur."!mark_commit"($I160)
+    rx150_cur."!mark_push"(rx150_rep, rx150_pos, $I160)
+    goto rxquantr158_loop
+  rxquantr158_done:
+  # rx subrule "ws" subtype=method negate=
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."ws"()
+    unless $P10, rx150_fail
+    rx150_pos = $P10."pos"()
+  alt154_end:
+.annotate "line", 87
   # rx pass
-    rx147_cur."!cursor_pass"(rx147_pos, "statementlist")
-    rx147_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx147_pos)
-    .return (rx147_cur)
-  rx147_fail:
+    rx150_cur."!cursor_pass"(rx150_pos, "statementlist")
+    rx150_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx150_pos)
+    .return (rx150_cur)
+  rx150_fail:
 .annotate "line", 4
-    (rx147_rep, rx147_pos, $I10, $P10) = rx147_cur."!mark_fail"(0)
-    lt rx147_pos, -1, rx147_done
-    eq rx147_pos, -1, rx147_fail
+    (rx150_rep, rx150_pos, $I10, $P10) = rx150_cur."!mark_fail"(0)
+    lt rx150_pos, -1, rx150_done
+    eq rx150_pos, -1, rx150_fail
     jump $I10
-  rx147_done:
-    rx147_cur."!cursor_fail"()
-    rx147_cur."!cursor_debug"("FAIL  ", "statementlist")
-    .return (rx147_cur)
+  rx150_done:
+    rx150_cur."!cursor_fail"()
+    rx150_cur."!cursor_debug"("FAIL  ", "statementlist")
+    .return (rx150_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1267204702.05125") :method
+.sub "!PREFIX__statementlist"  :subid("32_1271948667.92136") :method
 .annotate "line", 4
-    new $P149, "ResizablePMCArray"
-    push $P149, ""
-    push $P149, ""
-    .return ($P149)
+    new $P152, "ResizablePMCArray"
+    push $P152, ""
+    push $P152, ""
+    .return ($P152)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement"  :subid("33_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
-    .const 'Sub' $P165 = "35_1267204702.05125" 
-    capture_lex $P165
-    .local string rx160_tgt
-    .local int rx160_pos
-    .local int rx160_off
-    .local int rx160_eos
-    .local int rx160_rep
-    .local pmc rx160_cur
-    (rx160_cur, rx160_pos, rx160_tgt) = self."!cursor_start"()
-    rx160_cur."!cursor_debug"("START ", "statement")
-    rx160_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
-    .lex unicode:"$\x{a2}", rx160_cur
+    .const 'Sub' $P168 = "35_1271948667.92136" 
+    capture_lex $P168
+    .local string rx163_tgt
+    .local int rx163_pos
+    .local int rx163_off
+    .local int rx163_eos
+    .local int rx163_rep
+    .local pmc rx163_cur
+    (rx163_cur, rx163_pos, rx163_tgt) = self."!cursor_start"()
+    rx163_cur."!cursor_debug"("START ", "statement")
+    rx163_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
+    .lex unicode:"$\x{a2}", rx163_cur
     .local pmc match
     .lex "$/", match
-    length rx160_eos, rx160_tgt
-    set rx160_off, 0
-    lt rx160_pos, 2, rx160_start
-    sub rx160_off, rx160_pos, 1
-    substr rx160_tgt, rx160_tgt, rx160_off
-  rx160_start:
+    length rx163_eos, rx163_tgt
+    set rx163_off, 0
+    lt rx163_pos, 2, rx163_start
+    sub rx163_off, rx163_pos, 1
+    substr rx163_tgt, rx163_tgt, rx163_off
+  rx163_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan163_done
-    goto rxscan163_scan
-  rxscan163_loop:
-    ($P10) = rx160_cur."from"()
+    ne $I10, -1, rxscan166_done
+    goto rxscan166_scan
+  rxscan166_loop:
+    ($P10) = rx163_cur."from"()
     inc $P10
-    set rx160_pos, $P10
-    ge rx160_pos, rx160_eos, rxscan163_done
-  rxscan163_scan:
-    set_addr $I10, rxscan163_loop
-    rx160_cur."!mark_push"(0, rx160_pos, $I10)
-  rxscan163_done:
-.annotate "line", 89
+    set rx163_pos, $P10
+    ge rx163_pos, rx163_eos, rxscan166_done
+  rxscan166_scan:
+    set_addr $I10, rxscan166_loop
+    rx163_cur."!mark_push"(0, rx163_pos, $I10)
+  rxscan166_done:
+.annotate "line", 93
   # rx subrule "before" subtype=zerowidth negate=1
-    rx160_cur."!cursor_pos"(rx160_pos)
-    .const 'Sub' $P165 = "35_1267204702.05125" 
-    capture_lex $P165
-    $P10 = rx160_cur."before"($P165)
-    if $P10, rx160_fail
-  alt169_0:
-.annotate "line", 90
-    set_addr $I10, alt169_1
-    rx160_cur."!mark_push"(0, rx160_pos, $I10)
-.annotate "line", 91
+    rx163_cur."!cursor_pos"(rx163_pos)
+    .const 'Sub' $P168 = "35_1271948667.92136" 
+    capture_lex $P168
+    $P10 = rx163_cur."before"($P168)
+    if $P10, rx163_fail
+  alt172_0:
+.annotate "line", 94
+    set_addr $I10, alt172_1
+    rx163_cur."!mark_push"(0, rx163_pos, $I10)
+.annotate "line", 95
   # rx subrule "statement_control" subtype=capture negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."statement_control"()
-    unless $P10, rx160_fail
-    rx160_cur."!mark_push"(0, -1, 0, $P10)
+    rx163_cur."!cursor_pos"(rx163_pos)
+    $P10 = rx163_cur."statement_control"()
+    unless $P10, rx163_fail
+    rx163_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_control")
-    rx160_pos = $P10."pos"()
-    goto alt169_end
-  alt169_1:
-.annotate "line", 92
+    rx163_pos = $P10."pos"()
+    goto alt172_end
+  alt172_1:
+.annotate "line", 96
   # rx subrule "EXPR" subtype=capture negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."EXPR"()
-    unless $P10, rx160_fail
-    rx160_cur."!mark_push"(0, -1, 0, $P10)
+    rx163_cur."!cursor_pos"(rx163_pos)
+    $P10 = rx163_cur."EXPR"()
+    unless $P10, rx163_fail
+    rx163_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx160_pos = $P10."pos"()
+    rx163_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."ws"()
-    unless $P10, rx160_fail
-    rx160_pos = $P10."pos"()
+    rx163_cur."!cursor_pos"(rx163_pos)
+    $P10 = rx163_cur."ws"()
+    unless $P10, rx163_fail
+    rx163_pos = $P10."pos"()
+.annotate "line", 101
+  # rx rxquantr173 ** 0..1
+    set_addr $I177, rxquantr173_done
+    rx163_cur."!mark_push"(0, rx163_pos, $I177)
+  rxquantr173_loop:
+  alt174_0:
 .annotate "line", 97
-  # rx rxquantr170 ** 0..1
-    set_addr $I174, rxquantr170_done
-    rx160_cur."!mark_push"(0, rx160_pos, $I174)
-  rxquantr170_loop:
-  alt171_0:
-.annotate "line", 93
-    set_addr $I10, alt171_1
-    rx160_cur."!mark_push"(0, rx160_pos, $I10)
-.annotate "line", 94
+    set_addr $I10, alt174_1
+    rx163_cur."!mark_push"(0, rx163_pos, $I10)
+.annotate "line", 98
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."MARKED"("endstmt")
-    unless $P10, rx160_fail
-    goto alt171_end
-  alt171_1:
-    set_addr $I10, alt171_2
-    rx160_cur."!mark_push"(0, rx160_pos, $I10)
-.annotate "line", 95
+    rx163_cur."!cursor_pos"(rx163_pos)
+    $P10 = rx163_cur."MARKED"("endstmt")
+    unless $P10, rx163_fail
+    goto alt174_end
+  alt174_1:
+    set_addr $I10, alt174_2
+    rx163_cur."!mark_push"(0, rx163_pos, $I10)
+.annotate "line", 99
   # rx subrule "statement_mod_cond" subtype=capture negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."statement_mod_cond"()
-    unless $P10, rx160_fail
-    rx160_cur."!mark_push"(0, -1, 0, $P10)
+    rx163_cur."!cursor_pos"(rx163_pos)
+    $P10 = rx163_cur."statement_mod_cond"()
+    unless $P10, rx163_fail
+    rx163_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_cond")
-    rx160_pos = $P10."pos"()
-  # rx rxquantr172 ** 0..1
-    set_addr $I173, rxquantr172_done
-    rx160_cur."!mark_push"(0, rx160_pos, $I173)
-  rxquantr172_loop:
+    rx163_pos = $P10."pos"()
+  # rx rxquantr175 ** 0..1
+    set_addr $I176, rxquantr175_done
+    rx163_cur."!mark_push"(0, rx163_pos, $I176)
+  rxquantr175_loop:
   # rx subrule "statement_mod_loop" subtype=capture negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."statement_mod_loop"()
-    unless $P10, rx160_fail
-    rx160_cur."!mark_push"(0, -1, 0, $P10)
+    rx163_cur."!cursor_pos"(rx163_pos)
+    $P10 = rx163_cur."statement_mod_loop"()
+    unless $P10, rx163_fail
+    rx163_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_loop")
-    rx160_pos = $P10."pos"()
-    (rx160_rep) = rx160_cur."!mark_commit"($I173)
-  rxquantr172_done:
-    goto alt171_end
-  alt171_2:
-.annotate "line", 96
+    rx163_pos = $P10."pos"()
+    (rx163_rep) = rx163_cur."!mark_commit"($I176)
+  rxquantr175_done:
+    goto alt174_end
+  alt174_2:
+.annotate "line", 100
   # rx subrule "statement_mod_loop" subtype=capture negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."statement_mod_loop"()
-    unless $P10, rx160_fail
-    rx160_cur."!mark_push"(0, -1, 0, $P10)
+    rx163_cur."!cursor_pos"(rx163_pos)
+    $P10 = rx163_cur."statement_mod_loop"()
+    unless $P10, rx163_fail
+    rx163_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_loop")
-    rx160_pos = $P10."pos"()
-  alt171_end:
-.annotate "line", 97
-    (rx160_rep) = rx160_cur."!mark_commit"($I174)
-  rxquantr170_done:
-  alt169_end:
-.annotate "line", 88
+    rx163_pos = $P10."pos"()
+  alt174_end:
+.annotate "line", 101
+    (rx163_rep) = rx163_cur."!mark_commit"($I177)
+  rxquantr173_done:
+  alt172_end:
+.annotate "line", 92
   # rx pass
-    rx160_cur."!cursor_pass"(rx160_pos, "statement")
-    rx160_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx160_pos)
-    .return (rx160_cur)
-  rx160_fail:
+    rx163_cur."!cursor_pass"(rx163_pos, "statement")
+    rx163_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx163_pos)
+    .return (rx163_cur)
+  rx163_fail:
 .annotate "line", 4
-    (rx160_rep, rx160_pos, $I10, $P10) = rx160_cur."!mark_fail"(0)
-    lt rx160_pos, -1, rx160_done
-    eq rx160_pos, -1, rx160_fail
+    (rx163_rep, rx163_pos, $I10, $P10) = rx163_cur."!mark_fail"(0)
+    lt rx163_pos, -1, rx163_done
+    eq rx163_pos, -1, rx163_fail
     jump $I10
-  rx160_done:
-    rx160_cur."!cursor_fail"()
-    rx160_cur."!cursor_debug"("FAIL  ", "statement")
-    .return (rx160_cur)
+  rx163_done:
+    rx163_cur."!cursor_fail"()
+    rx163_cur."!cursor_debug"("FAIL  ", "statement")
+    .return (rx163_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1267204702.05125") :method
+.sub "!PREFIX__statement"  :subid("34_1271948667.92136") :method
 .annotate "line", 4
-    new $P162, "ResizablePMCArray"
-    push $P162, ""
-    .return ($P162)
+    new $P165, "ResizablePMCArray"
+    push $P165, ""
+    .return ($P165)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block164"  :anon :subid("35_1267204702.05125") :method :outer("33_1267204702.05125")
-.annotate "line", 89
-    .local string rx166_tgt
-    .local int rx166_pos
-    .local int rx166_off
-    .local int rx166_eos
-    .local int rx166_rep
-    .local pmc rx166_cur
-    (rx166_cur, rx166_pos, rx166_tgt) = self."!cursor_start"()
-    rx166_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx166_cur
-    .local pmc match
-    .lex "$/", match
-    length rx166_eos, rx166_tgt
-    set rx166_off, 0
-    lt rx166_pos, 2, rx166_start
-    sub rx166_off, rx166_pos, 1
-    substr rx166_tgt, rx166_tgt, rx166_off
-  rx166_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan167_done
-    goto rxscan167_scan
-  rxscan167_loop:
-    ($P10) = rx166_cur."from"()
-    inc $P10
-    set rx166_pos, $P10
-    ge rx166_pos, rx166_eos, rxscan167_done
-  rxscan167_scan:
-    set_addr $I10, rxscan167_loop
-    rx166_cur."!mark_push"(0, rx166_pos, $I10)
-  rxscan167_done:
-  alt168_0:
-    set_addr $I10, alt168_1
-    rx166_cur."!mark_push"(0, rx166_pos, $I10)
+.sub "_block167"  :anon :subid("35_1271948667.92136") :method :outer("33_1271948667.92136")
+.annotate "line", 93
+    .local string rx169_tgt
+    .local int rx169_pos
+    .local int rx169_off
+    .local int rx169_eos
+    .local int rx169_rep
+    .local pmc rx169_cur
+    (rx169_cur, rx169_pos, rx169_tgt) = self."!cursor_start"()
+    rx169_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx169_cur
+    .local pmc match
+    .lex "$/", match
+    length rx169_eos, rx169_tgt
+    set rx169_off, 0
+    lt rx169_pos, 2, rx169_start
+    sub rx169_off, rx169_pos, 1
+    substr rx169_tgt, rx169_tgt, rx169_off
+  rx169_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan170_done
+    goto rxscan170_scan
+  rxscan170_loop:
+    ($P10) = rx169_cur."from"()
+    inc $P10
+    set rx169_pos, $P10
+    ge rx169_pos, rx169_eos, rxscan170_done
+  rxscan170_scan:
+    set_addr $I10, rxscan170_loop
+    rx169_cur."!mark_push"(0, rx169_pos, $I10)
+  rxscan170_done:
+  alt171_0:
+    set_addr $I10, alt171_1
+    rx169_cur."!mark_push"(0, rx169_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx166_pos, rx166_eos, rx166_fail
-    sub $I10, rx166_pos, rx166_off
-    substr $S10, rx166_tgt, $I10, 1
+    ge rx169_pos, rx169_eos, rx169_fail
+    sub $I10, rx169_pos, rx169_off
+    substr $S10, rx169_tgt, $I10, 1
     index $I11, "])}", $S10
-    lt $I11, 0, rx166_fail
-    inc rx166_pos
-    goto alt168_end
-  alt168_1:
+    lt $I11, 0, rx169_fail
+    inc rx169_pos
+    goto alt171_end
+  alt171_1:
   # rxanchor eos
-    ne rx166_pos, rx166_eos, rx166_fail
-  alt168_end:
+    ne rx169_pos, rx169_eos, rx169_fail
+  alt171_end:
   # rx pass
-    rx166_cur."!cursor_pass"(rx166_pos, "")
-    rx166_cur."!cursor_debug"("PASS  ", "", " at pos=", rx166_pos)
-    .return (rx166_cur)
-  rx166_fail:
-    (rx166_rep, rx166_pos, $I10, $P10) = rx166_cur."!mark_fail"(0)
-    lt rx166_pos, -1, rx166_done
-    eq rx166_pos, -1, rx166_fail
-    jump $I10
-  rx166_done:
-    rx166_cur."!cursor_fail"()
-    rx166_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx166_cur)
+    rx169_cur."!cursor_pass"(rx169_pos, "")
+    rx169_cur."!cursor_debug"("PASS  ", "", " at pos=", rx169_pos)
+    .return (rx169_cur)
+  rx169_fail:
+    (rx169_rep, rx169_pos, $I10, $P10) = rx169_cur."!mark_fail"(0)
+    lt rx169_pos, -1, rx169_done
+    eq rx169_pos, -1, rx169_fail
+    jump $I10
+  rx169_done:
+    rx169_cur."!cursor_fail"()
+    rx169_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx169_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 4
-    .local string rx176_tgt
-    .local int rx176_pos
-    .local int rx176_off
-    .local int rx176_eos
-    .local int rx176_rep
-    .local pmc rx176_cur
-    (rx176_cur, rx176_pos, rx176_tgt) = self."!cursor_start"()
-    rx176_cur."!cursor_debug"("START ", "eat_terminator")
-    .lex unicode:"$\x{a2}", rx176_cur
-    .local pmc match
-    .lex "$/", match
-    length rx176_eos, rx176_tgt
-    set rx176_off, 0
-    lt rx176_pos, 2, rx176_start
-    sub rx176_off, rx176_pos, 1
-    substr rx176_tgt, rx176_tgt, rx176_off
-  rx176_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan179_done
-    goto rxscan179_scan
-  rxscan179_loop:
-    ($P10) = rx176_cur."from"()
-    inc $P10
-    set rx176_pos, $P10
-    ge rx176_pos, rx176_eos, rxscan179_done
-  rxscan179_scan:
-    set_addr $I10, rxscan179_loop
-    rx176_cur."!mark_push"(0, rx176_pos, $I10)
-  rxscan179_done:
-  alt180_0:
-.annotate "line", 101
-    set_addr $I10, alt180_1
-    rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 102
+.sub "eat_terminator"  :subid("36_1271948667.92136") :method :outer("11_1271948667.92136")
+.annotate "line", 4
+    .local string rx179_tgt
+    .local int rx179_pos
+    .local int rx179_off
+    .local int rx179_eos
+    .local int rx179_rep
+    .local pmc rx179_cur
+    (rx179_cur, rx179_pos, rx179_tgt) = self."!cursor_start"()
+    rx179_cur."!cursor_debug"("START ", "eat_terminator")
+    .lex unicode:"$\x{a2}", rx179_cur
+    .local pmc match
+    .lex "$/", match
+    length rx179_eos, rx179_tgt
+    set rx179_off, 0
+    lt rx179_pos, 2, rx179_start
+    sub rx179_off, rx179_pos, 1
+    substr rx179_tgt, rx179_tgt, rx179_off
+  rx179_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan182_done
+    goto rxscan182_scan
+  rxscan182_loop:
+    ($P10) = rx179_cur."from"()
+    inc $P10
+    set rx179_pos, $P10
+    ge rx179_pos, rx179_eos, rxscan182_done
+  rxscan182_scan:
+    set_addr $I10, rxscan182_loop
+    rx179_cur."!mark_push"(0, rx179_pos, $I10)
+  rxscan182_done:
+  alt183_0:
+.annotate "line", 105
+    set_addr $I10, alt183_1
+    rx179_cur."!mark_push"(0, rx179_pos, $I10)
+.annotate "line", 106
   # rx literal  ";"
-    add $I11, rx176_pos, 1
-    gt $I11, rx176_eos, rx176_fail
-    sub $I11, rx176_pos, rx176_off
-    substr $S10, rx176_tgt, $I11, 1
-    ne $S10, ";", rx176_fail
-    add rx176_pos, 1
-    goto alt180_end
-  alt180_1:
-    set_addr $I10, alt180_2
-    rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 103
+    add $I11, rx179_pos, 1
+    gt $I11, rx179_eos, rx179_fail
+    sub $I11, rx179_pos, rx179_off
+    substr $S10, rx179_tgt, $I11, 1
+    ne $S10, ";", rx179_fail
+    add rx179_pos, 1
+    goto alt183_end
+  alt183_1:
+    set_addr $I10, alt183_2
+    rx179_cur."!mark_push"(0, rx179_pos, $I10)
+.annotate "line", 107
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx176_cur."!cursor_pos"(rx176_pos)
-    $P10 = rx176_cur."MARKED"("endstmt")
-    unless $P10, rx176_fail
-    goto alt180_end
-  alt180_2:
-    set_addr $I10, alt180_3
-    rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 104
+    rx179_cur."!cursor_pos"(rx179_pos)
+    $P10 = rx179_cur."MARKED"("endstmt")
+    unless $P10, rx179_fail
+    goto alt183_end
+  alt183_2:
+    set_addr $I10, alt183_3
+    rx179_cur."!mark_push"(0, rx179_pos, $I10)
+.annotate "line", 108
   # rx subrule "terminator" subtype=zerowidth negate=
-    rx176_cur."!cursor_pos"(rx176_pos)
-    $P10 = rx176_cur."terminator"()
-    unless $P10, rx176_fail
-    goto alt180_end
-  alt180_3:
-.annotate "line", 105
+    rx179_cur."!cursor_pos"(rx179_pos)
+    $P10 = rx179_cur."terminator"()
+    unless $P10, rx179_fail
+    goto alt183_end
+  alt183_3:
+.annotate "line", 109
   # rxanchor eos
-    ne rx176_pos, rx176_eos, rx176_fail
-  alt180_end:
-.annotate "line", 101
+    ne rx179_pos, rx179_eos, rx179_fail
+  alt183_end:
+.annotate "line", 105
   # rx pass
-    rx176_cur."!cursor_pass"(rx176_pos, "eat_terminator")
-    rx176_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx176_pos)
-    .return (rx176_cur)
-  rx176_fail:
+    rx179_cur."!cursor_pass"(rx179_pos, "eat_terminator")
+    rx179_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx179_pos)
+    .return (rx179_cur)
+  rx179_fail:
 .annotate "line", 4
-    (rx176_rep, rx176_pos, $I10, $P10) = rx176_cur."!mark_fail"(0)
-    lt rx176_pos, -1, rx176_done
-    eq rx176_pos, -1, rx176_fail
+    (rx179_rep, rx179_pos, $I10, $P10) = rx179_cur."!mark_fail"(0)
+    lt rx179_pos, -1, rx179_done
+    eq rx179_pos, -1, rx179_fail
     jump $I10
-  rx176_done:
-    rx176_cur."!cursor_fail"()
-    rx176_cur."!cursor_debug"("FAIL  ", "eat_terminator")
-    .return (rx176_cur)
+  rx179_done:
+    rx179_cur."!cursor_fail"()
+    rx179_cur."!cursor_debug"("FAIL  ", "eat_terminator")
+    .return (rx179_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1267204702.05125") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1271948667.92136") :method
 .annotate "line", 4
-    new $P178, "ResizablePMCArray"
-    push $P178, ""
-    push $P178, ""
-    push $P178, ""
-    push $P178, ";"
-    .return ($P178)
+    new $P181, "ResizablePMCArray"
+    push $P181, ""
+    push $P181, ""
+    push $P181, ""
+    push $P181, ";"
+    .return ($P181)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "xblock"  :subid("38_1271948667.92136") :method :outer("11_1271948667.92136")
 .annotate "line", 4
-    .local string rx182_tgt
-    .local int rx182_pos
-    .local int rx182_off
-    .local int rx182_eos
-    .local int rx182_rep
-    .local pmc rx182_cur
-    (rx182_cur, rx182_pos, rx182_tgt) = self."!cursor_start"()
-    rx182_cur."!cursor_debug"("START ", "xblock")
-    .lex unicode:"$\x{a2}", rx182_cur
+    .local string rx185_tgt
+    .local int rx185_pos
+    .local int rx185_off
+    .local int rx185_eos
+    .local int rx185_rep
+    .local pmc rx185_cur
+    (rx185_cur, rx185_pos, rx185_tgt) = self."!cursor_start"()
+    rx185_cur."!cursor_debug"("START ", "xblock")
+    .lex unicode:"$\x{a2}", rx185_cur
     .local pmc match
     .lex "$/", match
-    length rx182_eos, rx182_tgt
-    set rx182_off, 0
-    lt rx182_pos, 2, rx182_start
-    sub rx182_off, rx182_pos, 1
-    substr rx182_tgt, rx182_tgt, rx182_off
-  rx182_start:
+    length rx185_eos, rx185_tgt
+    set rx185_off, 0
+    lt rx185_pos, 2, rx185_start
+    sub rx185_off, rx185_pos, 1
+    substr rx185_tgt, rx185_tgt, rx185_off
+  rx185_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan186_done
-    goto rxscan186_scan
-  rxscan186_loop:
-    ($P10) = rx182_cur."from"()
+    ne $I10, -1, rxscan189_done
+    goto rxscan189_scan
+  rxscan189_loop:
+    ($P10) = rx185_cur."from"()
     inc $P10
-    set rx182_pos, $P10
-    ge rx182_pos, rx182_eos, rxscan186_done
-  rxscan186_scan:
-    set_addr $I10, rxscan186_loop
-    rx182_cur."!mark_push"(0, rx182_pos, $I10)
-  rxscan186_done:
-.annotate "line", 109
+    set rx185_pos, $P10
+    ge rx185_pos, rx185_eos, rxscan189_done
+  rxscan189_scan:
+    set_addr $I10, rxscan189_loop
+    rx185_cur."!mark_push"(0, rx185_pos, $I10)
+  rxscan189_done:
+.annotate "line", 113
   # rx subrule "EXPR" subtype=capture negate=
-    rx182_cur."!cursor_pos"(rx182_pos)
-    $P10 = rx182_cur."EXPR"()
-    unless $P10, rx182_fail
-    rx182_cur."!mark_push"(0, -1, 0, $P10)
+    rx185_cur."!cursor_pos"(rx185_pos)
+    $P10 = rx185_cur."EXPR"()
+    unless $P10, rx185_fail
+    rx185_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx182_pos = $P10."pos"()
+    rx185_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx182_cur."!cursor_pos"(rx182_pos)
-    $P10 = rx182_cur."ws"()
-    unless $P10, rx182_fail
-    rx182_pos = $P10."pos"()
+    r