[svn:parrot] r45849 - in branches/immutable_strings_part1: . compilers/imcc config/auto config/auto/crypto config/auto/gdbm config/gen config/gen/crypto config/gen/makefiles config/init config/init/hints docs docs/project examples/languages/abc examples/pir/befunge ext/nqp-rx/src/stage0 include/parrot lib/Parrot/Configure/Options lib/Parrot/Configure/Step lib/Parrot/Harness lib/Parrot/Pmc2c ports/debian ports/ubuntu runtime/parrot/library runtime/parrot/library/TAP runtime/parrot/library/Test/Builder src src/dynpmc src/gc src/pmc src/runcore src/string/encoding t/codingstd t/compilers/imcc/syn t/dynpmc t/examples t/library t/native_pbc t/op t/pmc t/src t/steps/auto tools/dev tools/docs tools/util

bacek at svn.parrot.org bacek at svn.parrot.org
Wed Apr 21 09:44:06 UTC 2010


Author: bacek
Date: Wed Apr 21 09:44:01 2010
New Revision: 45849
URL: https://trac.parrot.org/parrot/changeset/45849

Log:
Sync branch with trunk.

Conflicts:
	MANIFEST.SKIP
	compilers/imcc/imcparser.c
	compilers/imcc/imcparser.h
	src/string/encoding/ucs2.c
	t/native_pbc/annotations.pbc
	t/native_pbc/integer_1.pbc
	t/native_pbc/number_1.pbc
	t/native_pbc/string_1.pbc

Added:
   branches/immutable_strings_part1/t/library/osutils.t
Deleted:
   branches/immutable_strings_part1/config/auto/crypto.pm
   branches/immutable_strings_part1/config/auto/crypto/crypto_c.in
   branches/immutable_strings_part1/config/auto/gdbm.pm
   branches/immutable_strings_part1/config/auto/gdbm/gdbm_c.in
   branches/immutable_strings_part1/config/gen/crypto.pm
   branches/immutable_strings_part1/config/gen/crypto/digest_pmc.in
   branches/immutable_strings_part1/config/gen/crypto/digest_t.in
   branches/immutable_strings_part1/src/dynpmc/gdbmhash.pmc
   branches/immutable_strings_part1/t/dynpmc/gdbmhash.t
   branches/immutable_strings_part1/t/steps/auto/crypto-01.t
   branches/immutable_strings_part1/t/steps/auto/gdbm-01.t
Modified:
   branches/immutable_strings_part1/CREDITS
   branches/immutable_strings_part1/ChangeLog
   branches/immutable_strings_part1/Configure.pl
   branches/immutable_strings_part1/DEPRECATED.pod
   branches/immutable_strings_part1/MANIFEST
   branches/immutable_strings_part1/MANIFEST.SKIP
   branches/immutable_strings_part1/MANIFEST.generated
   branches/immutable_strings_part1/META.yml
   branches/immutable_strings_part1/NEWS
   branches/immutable_strings_part1/README
   branches/immutable_strings_part1/README_cygwin.pod
   branches/immutable_strings_part1/README_win32.pod
   branches/immutable_strings_part1/VERSION
   branches/immutable_strings_part1/compilers/imcc/imcc.l
   branches/immutable_strings_part1/compilers/imcc/imcc.y
   branches/immutable_strings_part1/compilers/imcc/imclexer.c
   branches/immutable_strings_part1/compilers/imcc/imcparser.c
   branches/immutable_strings_part1/compilers/imcc/imcparser.h
   branches/immutable_strings_part1/compilers/imcc/instructions.c
   branches/immutable_strings_part1/compilers/imcc/main.c
   branches/immutable_strings_part1/compilers/imcc/optimizer.c
   branches/immutable_strings_part1/compilers/imcc/parser_util.c
   branches/immutable_strings_part1/compilers/imcc/pbc.c
   branches/immutable_strings_part1/config/auto/arch.pm
   branches/immutable_strings_part1/config/auto/warnings.pm
   branches/immutable_strings_part1/config/gen/makefiles/dynpmc.in
   branches/immutable_strings_part1/config/gen/makefiles/root.in
   branches/immutable_strings_part1/config/gen/opengl.pm
   branches/immutable_strings_part1/config/init/defaults.pm
   branches/immutable_strings_part1/config/init/hints/cygwin.pm
   branches/immutable_strings_part1/docs/parrothist.pod
   branches/immutable_strings_part1/docs/project/release_manager_guide.pod
   branches/immutable_strings_part1/examples/languages/abc/setup.pir
   branches/immutable_strings_part1/examples/pir/befunge/setup.pir
   branches/immutable_strings_part1/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/immutable_strings_part1/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/immutable_strings_part1/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/immutable_strings_part1/include/parrot/call.h
   branches/immutable_strings_part1/include/parrot/embed.h
   branches/immutable_strings_part1/include/parrot/imcc.h
   branches/immutable_strings_part1/lib/Parrot/Configure/Options/Conf.pm
   branches/immutable_strings_part1/lib/Parrot/Configure/Step/List.pm
   branches/immutable_strings_part1/lib/Parrot/Harness/Smoke.pm
   branches/immutable_strings_part1/lib/Parrot/Pmc2c/PCCMETHOD.pm
   branches/immutable_strings_part1/ports/debian/control.in
   branches/immutable_strings_part1/ports/ubuntu/control.in
   branches/immutable_strings_part1/runtime/parrot/library/TAP/Formatter.pir
   branches/immutable_strings_part1/runtime/parrot/library/TAP/Harness.pir
   branches/immutable_strings_part1/runtime/parrot/library/TAP/Parser.pir
   branches/immutable_strings_part1/runtime/parrot/library/Test/Builder/Test.pir
   branches/immutable_strings_part1/runtime/parrot/library/distutils.pir
   branches/immutable_strings_part1/runtime/parrot/library/osutils.pir
   branches/immutable_strings_part1/src/debug.c
   branches/immutable_strings_part1/src/embed.c
   branches/immutable_strings_part1/src/gc/alloc_resources.c
   branches/immutable_strings_part1/src/main.c
   branches/immutable_strings_part1/src/parrot_debugger.c
   branches/immutable_strings_part1/src/pbc_dump.c
   branches/immutable_strings_part1/src/pmc/imageio.pmc
   branches/immutable_strings_part1/src/pmc/lexinfo.pmc
   branches/immutable_strings_part1/src/pmc/namespace.pmc
   branches/immutable_strings_part1/src/pmc/schedulermessage.pmc
   branches/immutable_strings_part1/src/runcore/trace.c
   branches/immutable_strings_part1/src/string/encoding/ucs2.c
   branches/immutable_strings_part1/src/thread.c
   branches/immutable_strings_part1/t/codingstd/c_function_docs.t
   branches/immutable_strings_part1/t/compilers/imcc/syn/file.t
   branches/immutable_strings_part1/t/compilers/imcc/syn/subflags.t
   branches/immutable_strings_part1/t/examples/tutorial.t
   branches/immutable_strings_part1/t/library/tap_parser.t
   branches/immutable_strings_part1/t/library/test_builder_tester.t
   branches/immutable_strings_part1/t/library/test_more.t
   branches/immutable_strings_part1/t/native_pbc/annotations.pbc
   branches/immutable_strings_part1/t/native_pbc/integer_1.pbc
   branches/immutable_strings_part1/t/native_pbc/number_1.pbc
   branches/immutable_strings_part1/t/native_pbc/string_1.pbc
   branches/immutable_strings_part1/t/op/lexicals.t
   branches/immutable_strings_part1/t/pmc/namespace-subs.t
   branches/immutable_strings_part1/t/src/basic.t
   branches/immutable_strings_part1/t/src/embed.t
   branches/immutable_strings_part1/t/src/extend.t
   branches/immutable_strings_part1/t/src/warnings.t
   branches/immutable_strings_part1/tools/dev/mk_inno.pl
   branches/immutable_strings_part1/tools/dev/pbc_to_exe.pir
   branches/immutable_strings_part1/tools/dev/tapir.pir
   branches/immutable_strings_part1/tools/docs/filename_and_chapter.pl
   branches/immutable_strings_part1/tools/util/release.json

Modified: branches/immutable_strings_part1/CREDITS
==============================================================================
--- branches/immutable_strings_part1/CREDITS	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/CREDITS	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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.

Modified: branches/immutable_strings_part1/ChangeLog
==============================================================================
--- branches/immutable_strings_part1/ChangeLog	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/ChangeLog	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,9 @@
 #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.

Modified: branches/immutable_strings_part1/Configure.pl
==============================================================================
--- branches/immutable_strings_part1/Configure.pl	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/Configure.pl	Wed Apr 21 09:44:01 2010	(r45849)
@@ -632,10 +632,8 @@
     auto::env
     auto::gmp
     auto::readline
-    auto::gdbm
     auto::pcre
     auto::opengl
-    auto::crypto
     auto::gettext
     auto::snprintf
     # auto::perldoc
@@ -644,7 +642,6 @@
     auto::icu
     gen::config_h
     gen::core_pmcs
-    gen::crypto
     gen::opengl
     gen::makefiles
     gen::platform

Modified: branches/immutable_strings_part1/DEPRECATED.pod
==============================================================================
--- branches/immutable_strings_part1/DEPRECATED.pod	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/DEPRECATED.pod	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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]>.
 
@@ -66,22 +66,6 @@
 
 L<https://trac.parrot.org/parrot/ticket/103>
 
-=item Digest dynpmcs [eligible in 2.4]
-
-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/1467>
-
-=item gdbmhash dynpmc [eligible in 2.4]
-
-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/1469>
-
 =item NCI without signature ("raw" pointers) [eligible in 2.4]
 
 No equivalent functionality is promised. You shouldn't be using this. Here be
@@ -121,6 +105,26 @@
 
 L<https://trac.parrot.org/parrot/ticket/1554>
 
+=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
 
 =head1 Opcodes
@@ -188,12 +192,56 @@
 
 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 Runcores
+
+=over 4
+
+=item Unused Runcores [eligible in 2.4]
+
+The following Runcores do not appear to be used.  Accordingly they will
+be eligible for removal.
+
+CGoto
+CGP
+Switch
+
+L<https://trac.parrot.org/parrot/ticket/1563>
+
 =back
 
 =head1 Bytecode
@@ -244,14 +292,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
@@ -411,7 +451,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/immutable_strings_part1/MANIFEST
==============================================================================
--- branches/immutable_strings_part1/MANIFEST	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/MANIFEST	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Apr 13 12:41:20 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Tue Apr 20 20:11:26 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -235,8 +235,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                            []
@@ -250,8 +248,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                                        []
@@ -313,9 +309,6 @@
 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                              []
@@ -1324,7 +1317,6 @@
 src/dynpmc/ext.pir                                          []
 src/dynpmc/foo.pmc                                          []
 src/dynpmc/foo2.pmc                                         []
-src/dynpmc/gdbmhash.pmc                                     []
 src/dynpmc/main.pasm                                        []
 src/dynpmc/pccmethod_test.pmc                               []
 src/dynpmc/rational.pmc                                     []
@@ -1702,7 +1694,6 @@
 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]
@@ -1731,6 +1722,7 @@
 t/library/iter.t                                            [test]
 t/library/md5.t                                             [test]
 t/library/mime_base64.t                                     [test]
+t/library/osutils.t                                         [test]
 t/library/p6object.t                                        [test]
 t/library/parrotlib.t                                       [test]
 t/library/pcre.t                                            [test]
@@ -1997,14 +1989,12 @@
 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/immutable_strings_part1/MANIFEST.SKIP
==============================================================================
--- branches/immutable_strings_part1/MANIFEST.SKIP	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/MANIFEST.SKIP	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Thu Apr 15 12:41:35 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Apr 15 17:41:44 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -131,6 +131,10 @@
 ^pirc/
 ^tags$
 ^tags/
+^tapir$
+^tapir/
+^tapir\..*$
+^tapir\..*/
 ^temp\.file$
 ^temp\.file/
 ^test$

Modified: branches/immutable_strings_part1/MANIFEST.generated
==============================================================================
--- branches/immutable_strings_part1/MANIFEST.generated	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/MANIFEST.generated	Wed Apr 21 09:44:01 2010	(r45849)
@@ -2,10 +2,10 @@
 # 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.2.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.2.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]

Modified: branches/immutable_strings_part1/META.yml
==============================================================================
--- branches/immutable_strings_part1/META.yml	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/META.yml	Wed Apr 21 09:44:01 2010	(r45849)
@@ -4,7 +4,7 @@
 # See http://module-build.sourceforge.net/META-spec-current.html for details.
 ---
 name: parrot
-version: 2.2.0
+version: 2.3.0
 author: parrot-dev at lists.parrot.org
 abstract: a virtual machine designed for dynamic languages
 license: artistic2

Modified: branches/immutable_strings_part1/NEWS
==============================================================================
--- branches/immutable_strings_part1/NEWS	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/NEWS	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,25 +1,25 @@
 # $Id$
 
 New in 2.3.0
-- Features
 - Core
   + Allow passing parameters to the dynamic linker ('dlopen' improved)
   + loadlib opcode added
-  + Merge of pcc_hackatron branch
+  + 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
-- Compilers
-- Deprecations
-- API
+  + config_lib.pasm replaced with config_lib.pir
 - Platforms
   + Improved handling of new compilers
-- Bugfix
-- Tests
+  + 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
-- Documentation
+  + 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

Modified: branches/immutable_strings_part1/README
==============================================================================
--- branches/immutable_strings_part1/README	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/README	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.2.0
+This is Parrot, version 2.3.0
 ------------------------------
 
 Parrot is Copyright (C) 2001-2010, Parrot Foundation.

Modified: branches/immutable_strings_part1/README_cygwin.pod
==============================================================================
--- branches/immutable_strings_part1/README_cygwin.pod	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/README_cygwin.pod	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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/immutable_strings_part1/README_win32.pod
==============================================================================
--- branches/immutable_strings_part1/README_win32.pod	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/README_win32.pod	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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/immutable_strings_part1/VERSION
==============================================================================
--- branches/immutable_strings_part1/VERSION	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/VERSION	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1 +1 @@
-2.2.0
+2.3.0

Modified: branches/immutable_strings_part1/compilers/imcc/imcc.l
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/imcc.l	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/imcc.l	Wed Apr 21 09:44:01 2010	(r45849)
@@ -87,6 +87,8 @@
 
 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')
@@ -133,7 +135,7 @@
 STRINGCONSTANT  {SQ_STRING}|{DQ_STRING}
 SQ_STRING       \'[^'\n]*\'
 RANKSPEC        \[[,]*\]
-EOL        \r?\n
+EOL             \r?\n
 WS              [\t\f\r\x1a ]
 SP              [ ]
 
@@ -167,7 +169,10 @@
             return 0;
         }
 
+<*>^{WS}*            { IMCC_INFO(interp)->line++; }
+
 <heredoc1>.*{EOL} {
+            IMCC_INFO(interp)->line++;
             IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
             BEGIN(heredoc2);
     }
@@ -177,7 +182,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 +191,7 @@
     }
 
 <heredoc2>.* {
+        IMCC_INFO(interp)->line++;
         /* Are we at the end of the heredoc? */
         if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
             /* End of the heredoc. */
@@ -209,7 +214,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;
         }
@@ -252,7 +257,6 @@
 
 <cmt4>.*{EOL} {
         yy_pop_state(yyscanner);
-        IMCC_INFO(interp)->line++;
     }
 
 <INITIAL,emit>{EOL} {
@@ -260,7 +264,6 @@
             BEGIN(INITIAL);
 
         IMCC_INFO(interp)->expect_pasm = 0;
-        IMCC_INFO(interp)->line++;
 
         return '\n';
     }
@@ -276,7 +279,6 @@
             yy_pop_state(yyscanner);
 
         IMCC_INFO(interp)->expect_pasm = 0;
-        IMCC_INFO(interp)->line++;
 
         return '\n';
     }
@@ -288,19 +290,20 @@
 }
 
 <INITIAL,emit,macro>^"=" {
+        IMCC_INFO(interp)->line++;
         IMCC_INFO(interp)->in_pod = 1;
         yy_push_state(pod, yyscanner);
     }
 
 <pod>^"=cut"{EOL} {
+        IMCC_INFO(interp)->line++;
         IMCC_INFO(interp)->in_pod = 0;
         yy_pop_state(yyscanner);
-        IMCC_INFO(interp)->line++;
     }
 
-<pod>.*         { /*ignore*/ }
+<pod>.* { IMCC_INFO(interp)->line++; }
 
-<pod>{EOL}      { IMCC_INFO(interp)->line++; }
+<pod>{EOL}      { /* ignore */ }
 
 <*>".line"               return TK_LINE;
 <*>".file"               return TK_FILE;
@@ -337,7 +340,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 +450,8 @@
     }
 
 <emit,INITIAL>".macro" {
+        /* the initial whitespace catcher misses this one */
+        IMCC_INFO(interp)->line++;
         return read_macro(valp, interp, yyscanner);
     }
 
@@ -485,7 +490,6 @@
     }
 
 <emit,INITIAL>{ID}"$" {
-
         if (valp) {
             char *label;
             size_t len;
@@ -635,34 +639,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 +662,13 @@
 
 <INITIAL><<EOF>> yyterminate();
 
-<macro>".endm"         DUP_AND_RET(valp, ENDM);
+<macro>".endm"         {
+        /* the initial whitespace catcher misses this one */
+        IMCC_INFO(interp)->line++;
+        DUP_AND_RET(valp, ENDM);
+}
 
 <macro>{WS}*{EOL} {
-        IMCC_INFO(interp)->line++;
         DUP_AND_RET(valp, '\n');
     }
 
@@ -745,7 +726,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 +794,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 +1052,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 +1212,6 @@
             }
         }
 
-        /* let the normal EOF rules match line numbers */
-        IMCC_INFO(interp)->line = m->line - 1;
         scan_string(frame, m->expansion, yyscanner);
 
         return 1;
@@ -1288,7 +1266,8 @@
     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);
@@ -1469,6 +1448,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/immutable_strings_part1/compilers/imcc/imcc.y
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/imcc.y	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/imcc.y	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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
@@ -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/immutable_strings_part1/compilers/imcc/imclexer.c
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/imclexer.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/imclexer.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -385,125 +385,127 @@
 	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[1090] =
     {   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,
+        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,   15,  135,
+      135,  136,  136,  136,  136,  134,    1,    1,   15,  147,
+      142,  138,  142,  147,  147,  147,  147,  147,  120,  120,
+      147,  145,  145,  145,    1,    1,   15,   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,  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,
 
-      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,
+       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,    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,    4,    4,    4,    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,  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,
+        0,    0,    0,    0,    0,    0,    0,  108,  107,   84,
 
-      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,
+      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,
 
-      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
+      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
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -549,283 +551,287 @@
        10,   10,   10,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[1213] =
+static yyconst flex_int16_t yy_base[1241] =
     {   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, 4564, 7041,  693, 7041,  697, 4538,   63, 7041,
+      385, 4537,   56, 4549,   58,  686, 7041,  696,  703,   60,
+      750,  780,  785,   72,   83,  124,  703,  797,  767,  825,
+      765,  759,  769,  833,   63,  766,  848,  856,  837,  422,
+      864,  863,  862,  846, 4536,  848,  803,  872, 4515, 7041,
+      887, 7041,  924,   84,  897, 4546,  919,  924,    0,  930,
+     4533,  405,  946,  908,  953,  975, 4512,    0, 7041, 4552,
+      689, 4542,  964,  968, 1003,  964, 4528, 1065, 1130,  990,
+
+      994, 4507, 7041,  989, 1008, 1076, 4527,   87, 1000,    0,
+        0,  791, 1031, 1065, 1179, 1002, 4525, 1241, 1306, 1012,
+      815,  426, 7041,  820, 1110,  899, 1104, 1159, 1369, 1128,
+     1031, 1431, 1496, 1056, 1097,  919, 7041,  969, 1162, 1009,
+     1217, 1275, 1559, 1299, 1148, 1621, 1686, 1156, 1181, 1040,
+     7041, 1059, 1184, 1115, 1265, 1336, 1749, 1305, 1208, 1811,
+     1876, 1224, 1258,    0, 7041, 4545,  897, 4535, 1253, 1355,
+     1925, 1368, 4522, 1987, 2052, 1212, 1286, 1296, 1345, 7041,
+     7041,  902, 7041,    0,    0, 1343, 1359, 1373, 1397, 7041,
+     7041, 7041, 4533, 7041, 7041, 1405, 1442, 7041, 7041, 1447,
+
+     7041,    0, 4510, 4490, 4496, 1050, 4488, 4490,  658, 4482,
+     1143,  105,  851,  874, 4488,  727, 4491, 4482, 4504, 7041,
+     1504, 1154, 1459, 7041, 1184,    0, 4463, 4465, 4455, 1178,
+      907, 1291,  685,  946, 4451,   22, 4451, 4444, 1108, 7041,
+     7041, 7041, 7041, 1251, 4479, 4478, 1405, 4493, 1524, 1532,
+     1442, 1542, 1548, 1543, 1559, 1594, 1561, 7041, 7041, 7041,
+     7041, 1513, 4439, 1364, 4444, 4444, 1436, 4451, 4450, 4447,
+     1240, 4432, 4429, 1228, 1380, 1604, 7041, 1638, 4394, 1633,
+        0,    0, 4363, 4365,  932,  828, 4407, 1643, 1468, 1665,
+     1669,    0, 7041, 1264,    0,    0, 4401, 1656, 1697, 1703,
+
+     4362, 4361, 1715, 1283, 1743,    0, 1518, 2099, 1389, 2146,
+     2211, 2276, 1448, 4350, 4359, 4358, 1822, 1424, 1527,    0,
+     1482,    0, 1660, 1828, 1754, 4357, 4356, 1884, 1390, 1777,
+        0, 1553, 2323, 1480, 2370, 2435, 2500, 1581, 1550, 7041,
+     1593, 1737, 1798, 1611, 1616, 1645, 1703, 1850, 2563, 1904,
+     1680, 1717, 2003, 1735, 1917, 1725, 1892, 2607, 1945, 2654,
+     2719, 2784, 1804, 1828, 1743, 7041, 1777, 1857, 1925, 1783,
+     1786, 1906, 1963, 2015, 2847, 2025, 1959, 1966, 2069, 2011,
+     2081, 1862, 2090, 2891, 1969, 2938, 3003, 3068, 1980, 2036,
+     1974, 7041, 2017, 2127, 2133, 2039, 2076, 2101, 2120, 2162,
+
+     3131, 2292, 2083, 2135, 2304, 2171, 2173, 2078, 2300, 3175,
+     2193, 3222, 3287, 3352, 2199, 2204,    0, 7041, 1320,    0,
+        0, 4393, 2308, 2381, 2386, 4354, 4353, 2500, 2087, 2340,
+        0, 2159, 3399, 1604, 3446, 3511, 3576, 2313, 2344, 2370,
+     2398, 2402, 2409, 2513,    0, 4368, 4348, 4352, 4348, 4345,
+     4352, 4345, 4336, 4339,  786, 4330, 4338, 1067, 4346, 4330,
+     4336, 4337, 4329, 4341, 4325, 4324, 4339, 4331, 4330, 7041,
+     2517, 2106, 2522, 2529, 2312,    0, 4321, 4323, 4331, 4318,
+     2248, 4286, 4305, 4296, 4286, 4293, 4291, 4296, 4282, 4281,
+     4281, 4278, 4291, 4283, 4290, 1509, 4319, 7041, 7041, 4305,
+
+     7041, 1597, 4302, 2545, 2546, 2563, 2565, 2578, 2580, 2583,
+     2582, 2598, 4265, 4279, 4280, 4271, 4297, 7041, 2619,    0,
+        0, 4274, 4267, 4274, 4263, 2596, 2667, 4264, 4261, 2654,
+     2179, 2556, 2603, 2393, 3623, 1787, 4301, 1833, 3670, 3735,
+     4253, 4191, 4188, 2505, 2676, 4189, 4186, 2784, 2317, 2682,
+     2686, 2690, 3782, 2601, 3829, 3894, 2812, 2567, 2808, 2816,
+     2836, 2838, 2867, 2871, 3957, 2814, 2841, 2869, 4004, 4069,
+     2954, 2642, 2875, 3084, 2879, 2881, 2903, 2911, 4132, 3106,
+     2893, 3114, 4179, 4244, 2963, 2914, 3086, 3137, 2968, 2977,
+     3165, 3169, 4307, 3122, 2988, 3140, 4354, 4419, 3192, 4187,
+
+     4184, 3077, 2338, 2693, 3179, 2974, 4466, 1852, 4224, 1920,
+     4513, 4578, 3222, 3230,    0, 4181, 4184, 4182, 4174, 4190,
+     4184, 4188, 4185, 4176, 4172,    0, 4179, 4179, 4181, 4165,
+     4172, 4174, 4177, 4175, 4175, 4155, 4173,    0, 4162, 4161,
+     4158, 4159, 4150, 4162, 4148, 4147, 4147, 7041, 4155, 4146,
+     4149, 4136, 4127, 4119,  829, 4125, 4111, 4112, 4118, 4111,
+     4123, 1946, 7041,    0, 4153, 7041, 2010, 7041,    0, 4141,
+     4156, 3115, 3193, 3363, 3364, 3372, 3373, 2360,    0, 4107,
+     4112, 4111, 4110, 1031, 3099, 3234, 3238, 4109, 4104, 2128,
+        0,    0, 4137, 2550,    0,    0, 4643, 4141, 4708, 4097,
+
+     2422, 4100, 4099, 1169, 1544, 3244, 3248, 4098, 4097, 3163,
+        0, 4773, 4135, 4838, 4091, 3380, 3387, 2819, 2923, 3390,
+     3433, 2713, 2956, 3108, 3133, 3474, 3606, 2986, 3097, 4903,
+     3268, 4968, 4090, 3463, 3471, 3419, 3430, 3608, 3614, 3160,
+     3178, 3270, 3273, 3616, 3621, 3188, 3275, 5033, 3277, 5098,
+     4089, 3476, 3484, 3592, 3601, 3623, 3698, 3400, 3435, 3496,
+     3594, 3810, 3816, 3498, 3604, 5163, 3629, 5228, 4088, 3638,
+     3670, 4091, 4021, 2608,    0,    0, 4054, 2840,    0,    0,
+     5293, 4058, 5358, 4014, 4004, 4009,    0, 4001, 3405,    0,
+     4002, 4016, 3997, 4012,    0, 4004, 4003, 3999, 4011, 3993,
+
+     4006, 3997, 3990, 3990, 2628, 4002, 4000, 7041, 4002, 7041,
+     3997, 7041, 3999, 3996, 7041, 7041, 3985, 3987, 3991, 3976,
+     3987, 3979, 3975, 3982, 3968, 3951, 3934, 3938, 3850, 3972,
+     3842, 3799, 7041, 3889,    0,    0, 3835,    0, 3681, 3382,
+        0,    0, 5423, 1124, 7041, 3877, 7041, 7041,  940, 1719,
+        0,    0, 5488, 1292, 3646, 3695, 3656, 1096, 3705, 3708,
+     3663, 1230, 3712, 3714, 3669, 1652,    0,    0, 3671, 2567,
+     3822, 3821,    0, 3803, 3790, 3771, 3772, 3765, 3688, 3661,
+     3623,    0, 3623, 3618, 3584, 3592,    0, 3571, 3576, 3565,
+     3568, 3553, 3537,    0, 3451, 3457, 3441, 3447, 3387, 7041,
+
+     7041, 3369, 3373, 3362, 7041, 3358, 3347, 7041, 3339, 3328,
+     3974, 4015, 3851, 3852, 3721, 3946, 3947, 1662, 1905, 1489,
+     1546, 1957, 2246, 1424, 1710, 1817, 1869, 2062, 2779, 2858,
+     3678, 3312, 3819, 3317, 3224, 3215, 3157, 3166, 3161, 3118,
+     3117, 3111, 3100, 3086, 3068, 3073,    0, 2953, 2927, 2908,
+     2878, 2866, 2821, 2808, 2774, 7041, 2750, 2758, 2657, 2630,
+     7041, 2561, 7041, 3959, 3975, 3725, 2381, 3079, 1349, 1753,
+      772, 1912, 1975, 2063,  804, 1805, 1893, 2305, 3188, 3587,
+     3650, 3681, 2549, 2531, 2507, 2495, 2480, 2456, 2456, 2373,
+     2355,    0, 2340,    0, 2323, 2296, 2295, 2254,    0,    0,
+
+     2219, 2163, 2137, 2114, 2090, 2076, 2037, 7041, 2035, 2023,
+     1993, 1975, 1653, 1985, 2553, 1969, 2626, 1953, 3802, 3867,
+     3874, 3880, 3884, 3962, 3169, 1852,    0, 1795, 1723, 1702,
+        0, 1593, 1545, 1505, 1475,    0, 1407, 1378, 1374,    0,
+     1356, 1291,    0, 7041, 1279, 1245, 7041, 7041, 7041, 7041,
+     1211, 7041,    0, 3845, 3968, 3970,    0, 1197, 1163, 1156,
+     1115,    0, 1069, 1045, 1036,    0,    0, 1015,    0, 7041,
+      912,  900,    0,  776,  675,    0,  367,  356,   61,    0,
+     7041, 7041,   23,    0,    0,    0,    0,    0, 7041, 5553,
+     5559, 5569, 5577, 5581, 5589, 5596, 5607, 5618, 5629, 5640,
+
+     5647, 5658, 5669, 5680, 5691, 5702, 5713, 5724, 5735, 5746,
+     5757, 5768, 5779, 5790, 5801, 5812, 5823, 5834, 5845, 5856,
+     5862, 5872, 5878, 5884, 5889, 5897, 5906, 5912, 5916, 5922,
+     5929, 5940, 5951, 5962, 5973, 5984, 5995, 6006, 6017, 6028,
+     6039, 6050, 6061, 6072, 6083, 6094, 6105, 6116, 6127, 6138,
+     6149, 6160, 6171, 6182, 6188, 6193, 6199, 6208, 6219, 6230,
+     6237, 6245, 6251, 6257, 6263, 6270, 6281, 6292, 6303, 6314,
+     6325, 6332, 6343, 6354, 6365, 6376, 6387, 6398, 6409, 6420,
+     6431, 6442, 6453, 6464, 6475, 6486, 6497, 6508, 6519, 6530,
+     6541, 6552, 6563, 6574, 6585, 6591, 6602, 6613, 6624, 6631,
+
+     6639, 6645, 6651, 6658, 6669, 6680, 6691, 6702, 6713, 6720,
+     6731, 6742, 6753, 6764, 6775, 6786, 6797, 6808, 6819, 6830,
+     6841, 6852, 6863, 6874, 6885, 6896, 6907, 6918, 6929, 6940,
+     6951, 6962, 6973, 6979, 6987, 6993, 7000, 7011, 7018, 7029
     } ;
 
-static yyconst flex_int16_t yy_def[1213] =
+static yyconst flex_int16_t yy_def[1241] =
     {   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
+     1089,    1,    1,    3, 1089,    5, 1089,    7, 1089,    9,
+     1089,   11,    9,    9, 1089,   15, 1089,   17, 1089,   19,
+     1089,   21, 1089, 1089, 1089, 1089, 1089, 1089, 1090, 1089,
+     1091, 1089, 1089, 1092, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1093, 1093, 1093, 1093,
+     1093, 1093, 1093, 1093, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089,   39, 1089, 1089, 1093, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1090, 1094, 1092, 1089, 1095,   41, 1089,
+     1089, 1096, 1096, 1096, 1089, 1089, 1089, 1097, 1089, 1097,
+     1098, 1099, 1097, 1097, 1097,   95, 1097, 1100, 1100, 1097,
+
+     1097, 1097, 1089, 1089,   41, 1089, 1101, 1101, 1089, 1102,
+     1102, 1103, 1102, 1102, 1102,  115, 1102, 1104, 1104, 1102,
+     1090, 1105, 1089, 1105, 1106, 1107, 1105, 1105, 1105,  129,
+     1105, 1108, 1108, 1105, 1105, 1109, 1089, 1109, 1110, 1111,
+     1109, 1109, 1109,  143, 1109, 1112, 1112, 1109, 1109, 1113,
+     1089, 1113, 1114, 1115, 1113, 1113, 1113,  157, 1113, 1116,
+     1116, 1113, 1113, 1117, 1089, 1117, 1118, 1119, 1117, 1117,
+     1117,  171, 1117, 1120, 1120, 1117, 1117, 1089, 1089, 1089,
+     1089, 1090, 1089, 1090, 1121, 1121, 1121, 1121, 1121, 1089,
+     1089, 1089, 1122, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+     1089, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
+     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1124, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1125, 1126, 1127, 1126, 1126,
+     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1123, 1123, 1123, 1123, 1123, 1123,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1128, 1128,
+     1129, 1130, 1130, 1130, 1130, 1131, 1127, 1131, 1131, 1089,
+     1089, 1132, 1089, 1133, 1132, 1133, 1134, 1132, 1132, 1132,
+
+     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1135,
+     1089, 1135, 1132, 1132, 1089, 1089, 1089, 1125, 1089, 1136,
+     1137, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
+     1136, 1136, 1136, 1136, 1138, 1089, 1138, 1136, 1139, 1089,
+     1139, 1140, 1140, 1139, 1140, 1141, 1141, 1139, 1139, 1139,
+     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1142,
+     1089, 1142, 1139, 1139, 1143, 1089, 1143, 1144, 1144, 1143,
+     1144, 1145, 1145, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
+     1143, 1143, 1143, 1143, 1143, 1146, 1089, 1146, 1143, 1143,
+     1147, 1089, 1147, 1148, 1148, 1147, 1148, 1149, 1149, 1147,
+
+     1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
+     1147, 1150, 1089, 1150, 1147, 1147, 1151, 1089, 1152, 1151,
+     1152, 1153, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+     1151, 1151, 1151, 1151, 1154, 1089, 1154, 1151, 1089, 1155,
+     1155, 1155, 1155, 1089, 1156, 1156, 1156, 1156, 1156, 1156,
+     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1089,
+     1089, 1089, 1089, 1089, 1089, 1157, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1158, 1159, 1089, 1089, 1089,
+
+     1089, 1160, 1161, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
+     1162, 1162, 1089, 1156, 1156, 1089, 1163, 1089, 1163, 1164,
+     1165, 1165, 1165, 1165, 1165, 1166, 1167, 1167, 1167, 1167,
+     1167, 1167, 1167, 1167, 1167, 1168, 1169, 1170, 1171, 1089,
+     1167, 1089, 1089, 1172, 1173, 1173, 1173, 1173, 1173, 1173,
+     1173, 1173, 1173, 1174, 1175, 1089, 1176, 1176, 1176, 1176,
+     1176, 1176, 1176, 1176, 1176, 1177, 1178, 1179, 1180, 1089,
+     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182,
+     1183, 1184, 1185, 1089, 1186, 1186, 1186, 1186, 1186, 1186,
+     1186, 1186, 1186, 1187, 1188, 1189, 1190, 1089, 1191, 1191,
+
+     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1193, 1194,
+     1195, 1089, 1089, 1089, 1196, 1196, 1196, 1196, 1196, 1196,
+     1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+     1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1197, 1089, 1197, 1198, 1089, 1199, 1089, 1199, 1200,
+     1089, 1201, 1201, 1201, 1201, 1201, 1201, 1089, 1202, 1203,
+     1203, 1203, 1203, 1204, 1204, 1205, 1205, 1205, 1205, 1206,
+     1205, 1206, 1207, 1208, 1205, 1208, 1209, 1205, 1089,  699,
+
+     1205, 1089, 1089, 1210, 1210, 1211, 1211, 1211, 1211, 1212,
+     1211, 1213, 1211, 1089,  714, 1214, 1214, 1214, 1214, 1215,
+     1215, 1214, 1215, 1216, 1216, 1217, 1217, 1214, 1217, 1218,
+     1214, 1089,  732, 1219, 1219, 1219, 1219, 1220, 1220, 1219,
+     1220, 1221, 1221, 1222, 1222, 1219, 1222, 1223, 1219, 1089,
+      750, 1224, 1224, 1224, 1224, 1225, 1225, 1224, 1225, 1226,
+     1226, 1227, 1227, 1224, 1227, 1228, 1224, 1089,  768, 1229,
+     1229, 1229, 1229, 1230, 1229, 1230, 1231, 1232, 1229, 1232,
+     1233, 1229, 1089,  783, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1235, 1235,
+     1235, 1235, 1089, 1089, 1236, 1236, 1236, 1236, 1237, 1237,
+     1238, 1238, 1089,  843, 1089, 1238, 1089, 1089, 1239, 1239,
+     1240, 1240, 1089,  853, 1214, 1214,  732,  732, 1219, 1219,
+      750,  750, 1224, 1224,  768,  768, 1229, 1229,  783,  783,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089,
+
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1235, 1235, 1235, 1235, 1236, 1237, 1237,  843,  843, 1239,
+     1239,  853,  853,  732,  732,  750,  750,  768,  768,  783,
+      783, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1235, 1235, 1089, 1237, 1237,  843,  843,
+     1239, 1239,  853,  853,  732,  732,  750,  750,  768,  768,
+      783,  783, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+
+     1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1238, 1238, 1240, 1240, 1214, 1214,
+     1219, 1219, 1224, 1224, 1229, 1229, 1234, 1234, 1234, 1234,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1238, 1214, 1219, 1224, 1229, 1234, 1234, 1234,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1089,
+     1089, 1089, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+     1089, 1089, 1234, 1234, 1234, 1234, 1234, 1234,    0, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089
     } ;
 
-static yyconst flex_int16_t yy_nxt[7046] =
+static yyconst flex_int16_t yy_nxt[7107] =
     {   0,
        24,   25,   26,   27,   25,   28,   29,   30,   31,   32,
        33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
@@ -833,778 +839,785 @@
        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,  492,   68,   67, 1088,   85,  219,   86,   85,
+      192,  493,  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,  287,
+       64,   65,   24,   24,  109,  121,  109,  109,  120, 1087,
+      120,  120,  134,  184,  135,  134,  259,   41,   42,   42,
+       42,  148,  318,  149,  148,   47,  162,   47,  163,  162,
+       47,  176,   47,  177,  176,   66,  459,   47,  243,  244,
+      460,   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, 1086,  109,  109,  186,  121,  187,
+      246,  188,  189,  264, 1085,  264,  264,  287,  340,  341,
+       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,
+      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,  295,  178,  178,  178,  180,
+
+      178,  178,  196,  453,  197,  197,  197,  197,  454,  179,
+      198,  245,  196,  179,  197,  197,  197,  197,  246, 1084,
+      199,  200,  200,  200,  200,  248,  487,  201,  296,  202,
+      202,  202,  202,  202,  203,  202,  202,  202,  202,  202,
+      202,  202,  488,  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,  466,  245,  246,  245, 1013,  245,  222,  223,
+      246,  248,  246,  224,  246,  225,  467,  248,  226,  248,
+      260,  248,  222,  320,  287,  223,  221,  193,  197,  197,
+
+      197,  197,  322,  225,  275,  245,  275,  275, 1019,  223,
+      254,  226,  246,  224,  255,  249,  249,  249,  249,  248,
+      250,  183,  340,  341,  253,  223,  227,  256,  228,  624,
+      261,  229, 1083,  245,  230,  231,  232,  233,  234,  235,
+      246,  245,  236,  246,  237,  238,  625,  248,  246,  262,
+      287,  262,  262,  360,  184,  248,  245,  262,  180,  262,
+      262,  241,  242,  246,  179,  264,  180,  264,  264,  821,
+      248,  251,  179,  275,  180,  275,  275,  252,  822,  196,
+      263,  197,  197,  197,  197,  257, 1089,  227,  276,  277,
+      278,  276,  461,  255,  462,  271,  231,  232,  272,  273,
+
+      235,  340,  347,  420,  202,  265,  238,  202,  183,  202,
+      344,  266,  267,  268,  269,  463,  270,  464,  202,  202,
+      202,  366,  367,  246,  202,  276,  277,  278,  276,  280,
+      287,  280,  281,  280,  280,  196,  421,  197,  197,  197,
+      197,  184,  200,  200,  200,  200,  221, 1082,  197,  197,
+      197,  197,  482,  289,  290,  277,  291,  290, 1081,  223,
+      483,  246,  287,  224,  288,  288,  288,  288,  287,  283,
+      284,  366,  367,  524,  285,  223,  290,  277,  291,  290,
+      298,  525,  299,  299,  299,  299,  300,  300,  300,  300,
+      920,  313,  292,  313,  313,  313,  293,  313,  313,  292,
+
+      489,  319,  292,  319,  319,  490,  292,  200,  200,  200,
+      200,  366,  373,  338,  301,  338,  338,  292,  302,  303,
+      370,  299,  299,  299,  299,  292,  317,  317,  317,  317,
+      320,  304,  305,  340,  341,  315,  306,  320,  307,  316,
+      320,  308,  392,  393,  320,  304,  246,  323,  305,  324,
+      324,  324,  324,  287,  359,  320,  307,  363,  340,  364,
+      363,  392,  393,  320,  308,  292,  292, 1080,  292,  292,
+      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
+      839,  292,  292,  325,  325,  325,  325,  311,  292,  292,
+      292,  449,  221, 1079,  317,  317,  317,  317,  363,  340,
 
-      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,
+      364,  363, 1078,  450,  292,  223,  340,  341,  628,  224,
+      629,  326,  340,  343,  496,  327,  344,  392,  399,  497,
+      348,  223,  349,  349,  349,  349,  396, 1077,  292,  292,
+      292,  292,  498,  292,  292,  292,  292,  292,  292,  292,
+      292,  292,  292,  292,  292,  360,  292,  292,  925,  345,
+      366,  367,  311,  292,  292,  292,  339,  389,  366,  390,
+      389,  340,  341,  339,  366,  369,  339, 1076,  370,  292,
+      339,  385,  472,  472,  310,  312,  919,  350,  350,  350,
+      350,  339,  389,  366,  390,  389,  392,  395,  456,  339,
+      396,  287,  457,  292,  292,  328,  458,  324,  324,  324,
+
+      324,  371,  475,  475,  475,  351, 1075,  329,  330,  352,
+      392,  393,  331,  438,  332,  438,  438,  333,  849,  366,
+      367,  329, 1074,  397,  330,  415,  392,  416,  415,  480,
+      481,  411,  332,  374,  496,  375,  375,  375,  375,  497,
+      333,  320,  320,  320,  320,  320,  320, 1073,  320,  320,
+      320,  320,  320,  320,  320,  320, 1072,  320,  320,  415,
+      392,  416,  415,  336,  320,  320,  320,  392,  393,  423,
+      295,  424,  424,  424,  424,  499,  500,  366,  367,  386,
+      320,  400,  927,  401,  401,  401,  401,  438,  418,  438,
+      438,  480,  516,  376,  376,  376,  376,  178, 1071,  178,
+
+      178,  531,  531,  296,  320,  320,  320,  320,  320,  320,
+      320,  320,  179,  320,  320,  320,  320,  320,  320,  320,
+      320,  377,  320,  320, 1070,  378,  420,  365,  336,  320,
+      320,  320,  484,  391,  365, 1069,  485,  365,  392,  393,
+      391,  365,  335,  391,  923,  320,  439,  391,  439,  439,
+      486,  337,  365, 1015,  402,  402,  402,  402,  391,  421,
+      365,  440,  440,  440,  440,  264,  391,  264,  264,  320,
+      320,  340,  341,  425,  425,  425,  425,  441,  441,  441,
+      441,  275,  403,  275,  275,  353,  404,  349,  349,  349,
+      349,  442,  442,  442,  442,  536,  417,  354,  355,  310,
+
+      537,  426,  356,  417,  357,  427,  417,  358,  549,  549,
+      417,  354, 1068,  245,  355,  443,  443,  443,  443, 1067,
+      246,  417,  357,  200,  200,  200,  200,  248, 1066,  417,
+      358,  339,  339,  340,  341,  339,  339,  339,  339,  339,
+      339,  339,  339,  339,  339,  339,  287,  339,  339,  313,
+      245,  313,  313,  361,  339,  339,  339,  246,  221, 1065,
+      197,  197,  197,  197,  248,  200,  200,  200,  200,  975,
+      339,  223,  473,  360,  473,  224,  444,  474,  474,  474,
+      474,  456,  544,  246,  320,  457,  496,  223,  193,  515,
+      287,  554,  444,  322,  339,  339,  339,  339,  340,  341,
 
-      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,
+      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
+      339,  287,  339,  339,  262,  663,  262,  262,  361,  339,
+      339,  339,  471,  471,  471,  471,  526, 1064,  319,  179,
+      319,  319,  245,  444,  971,  339,  534,  534,  534,  246,
+      245,  362,  504,  504,  504,  504,  248,  246,  664,  444,
+      245,  245,  340,  341,  248, 1063,  245,  246,  246,  339,
+      339,  366,  367,  246,  248,  248,  287,  245,  287,  245,
+      248,  552,  552,  552,  246,  379,  246,  375,  375,  375,
+      375,  248,  338,  248,  338,  338,  509,  380,  381, 1062,
+      505,  972,  382,  850,  383,  340,  341,  384,  507,  508,
+
+      506,  380,  245,  668,  381,  276,  277,  278,  276,  246,
+      608,  512,  383,  340,  341,  609,  248,  510,  340,  343,
+      384,  365,  365,  366,  367,  365,  365,  365,  365,  365,
+      365,  365,  365,  365,  365,  365,  669,  365,  365,  276,
+      277,  278,  276,  387,  365,  365,  365,  340,  347, 1061,
+      511,  519,  519,  519,  519,  518,  344, 1013,  246, 1052,
+      365,  288,  288,  288,  288,  287,  290,  277,  291,  290,
+      290,  277,  291,  290,  300,  300,  300,  300,  325,  325,
+      325,  325,  340,  341,  365,  365,  365,  365,  366,  367,
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
 
-      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,
+      365,  412,  365,  365,  929,  340,  347,  969,  387,  365,
+      365,  365,  310,  303,  344,  299,  299,  299,  299,  340,
+      341,  300,  300,  300,  300,  365,  305,  340,  341,  558,
+      306,  388,  527,  530,  530,  530,  530,  340,  341,  340,
+      343,  287,  305,  344,  527,  366,  367, 1060,  527,  365,
+      365,  392,  393,  561,  561,  976,  532, 1016,  532,  360,
+      527,  533,  533,  533,  533,  405,  559,  401,  401,  401,
+      401,  921,  325,  325,  325,  325,  345,  406,  407,  366,
+      367, 1059,  408,  545,  409,  366,  367,  410,  366,  369,
+      550,  406,  550,  691,  407,  551,  551,  551,  551,  545,
+
+      340,  343,  409,  310,  344,  363,  340,  364,  363, 1020,
+      410,  391,  391,  392,  393,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  692,  391,  391,  363,
+      340,  364,  363,  413,  391,  391,  391,  345,  221,  695,
+      317,  317,  317,  317,  328, 1058,  324,  324,  324,  324,
+      391,  223,  340,  341,  360,  224, 1026,  330,  775,  366,
+      369,  331,  977,  370,  366,  367,  386,  223,  350,  350,
+      350,  350,  696,  330,  391,  391,  391,  391,  392,  393,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  776,  391,  391,  340,  341,  371, 1021,  413,  391,
+
+      391,  391,  548,  548,  548,  548,  340,  341,  366,  373,
+      564,  564,  564,  545,  978,  391, 1014,  370,  386,  340,
+      341,  414,  350,  350,  350,  350,  779,  366,  369,  545,
+      562,  370,  562,  557,  287,  563,  563,  563,  563,  391,
+      391,  428,  386,  424,  424,  424,  424,  340,  341,  557,
+      970,  566,  663,  429,  430,  310,  567, 1018,  431,  780,
+      432,  366,  367,  433,  371,  366,  373,  429,  366,  367,
+      430,  366,  367, 1016,  370,  580,  392,  393,  432, 1017,
+      581,  389,  366,  390,  389,  664,  433,  417,  417, 1014,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+
+      417,  417,  973,  417,  417,  340,  341,  335,  572,  436,
+      417,  417,  417,  366,  367,  573,  668,  366,  367,  392,
+      393,  560,  560,  560,  560,  335,  417,  366,  367,  575,
+      575, 1051,  557,  376,  376,  376,  376,  389,  366,  390,
+      389,  392,  393,  376,  376,  376,  376, 1050,  557,  669,
+      417,  417,  417,  417,  571,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417, 1018,  417,  417,
+      571,  366,  367, 1049,  436,  417,  417,  417,  392,  395,
+      392,  393, 1048,  366,  367,  392,  393,  574,  574,  574,
+      574,  417,  366,  367,  576, 1047,  576,  437,  571,  577,
+
+      577,  577,  577,  392,  399,  603,  603,  979,  578,  578,
+      578,  412,  396,  335,  571,  417,  417,  535,  535,  535,
+      535, 1046,  392,  399,  472,  472,  535,  535,  535,  392,
+      395,  396,  586,  396,  691,  392,  395,  392,  393,  396,
+      535,  535,  535,  535,  535,  535,  292,  292, 1045,  292,
+      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
+      292, 1044,  292,  292,  392,  393,  397,  692,  311,  292,
+      292,  292,  397,  392,  393,  392,  393,  606,  606,  606,
+      402,  402,  402,  402,  587,  292,  590, 1043,  590,  589,
+      589,  591,  591,  591,  591,  392,  393,  531,  531,  594,
 
+      415,  392,  416,  415,  595,  415,  392,  416,  415,  292,
+      292,  292,  292, 1042,  292,  292,  292,  538,  292,  292,
       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,
+      292,  292,  292,  292,  292,  292,  292,  539,  539,  539,
+      539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
+      292,  539,  539,  539,  539,  539,  539,  539,  539,  539,
+      539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
+      539,  539,  539,  539,  292,  292,  292,  292, 1041,  292,
+      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
+      292,  974,  292,  292,  392,  393,  335,  645,  311,  292,
 
-      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,  392,  393, 1040,  646,  392,  393,  647, 1022,
+      402,  402,  402,  402,  438,  292,  438,  438,  592,  592,
+      592,  585,  588,  588,  588,  588,  425,  425,  425,  425,
+      475,  475,  475,  585,  540,  549,  549,  585, 1039,  292,
+      292,  553,  553,  553,  553,  439, 1038,  439,  439,  585,
+      553,  553,  553,  604,  386,  604,  603,  603,  605,  605,
+      605,  605,  833,  834,  553,  553,  553,  553,  553,  553,
+      320,  320,  320,  320,  320,  320, 1037,  320,  320,  320,
+      320,  320,  320,  320,  320, 1013,  320,  320,  440,  440,
+      440,  440,  336,  320,  320,  320,  246,  428, 1036,  424,
+
+      424,  424,  424,  287,  425,  425,  425,  425, 1035,  320,
+      430,  534,  534,  534,  431,  599,  441,  441,  441,  441,
+      442,  442,  442,  442,  845,  846,  430,  443,  443,  443,
+      443,  599, 1034,  320,  320,  320,  320,  320,  320,  320,
+      320,  502,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  320,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  320,  320,
 
-      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,
+      320,  320,  320,  320,  320,  320, 1033,  320,  320,  320,
+      320,  320,  320,  320,  320, 1032,  320,  320,  602,  602,
+      602,  602,  336,  320,  320,  320,  613,  287,  613,  599,
+     1031,  614,  614,  614,  614,  471,  471,  471,  471,  320,
+      474,  474,  474,  474, 1030,  599,  444,  474,  474,  474,
+      474,  704, 1029,  245,  245,  705,  695, 1015,  556, 1053,
+      246,  246,  444,  320,  320,  340,  341,  248,  248,  340,
+      341,  245, 1028,  245,  533,  533,  533,  533,  246,  353,
+      246,  349,  349,  349,  349,  248,  245,  248,  245,  696,
+      245,  245,  355,  246, 1027,  246,  356,  246,  246,  672,
+
+      248, 1012,  248,  320,  248,  248,  245,  665,  355,  340,
+      341,  246,  711,  246,  775,  673,  435,  718,  287,  931,
+      248,  533,  533,  533,  533,  565,  565,  565,  565,  674,
+     1017,  676, 1052,  675,  565,  565,  565,  519,  519,  519,
+      519,  518,  684,  677,  366,  367,  685,  776,  565,  565,
+      565,  565,  565,  565,  339,  339,  340,  341,  339,  339,
+      339,  339,  339,  339,  339,  339,  339,  339,  339,  890,
+      339,  339,  530,  530,  530,  530,  361,  339,  339,  339,
+      686, 1011,  686,  527,  891,  687,  687,  687,  687,  706,
+      892,  706,  736,  339,  707,  707,  707,  707, 1010,  527,
+
+      551,  551,  551,  551,  551,  551,  551,  551,  552,  552,
+      552,  605,  605,  605,  605,  340,  341,  339,  339,  339,
+      339,  340,  341,  339,  339,  568,  339,  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,
+      339,  339,  339,  339,  339,  569,  569,  569,  569,  569,
+      569,  569,  569,  569,  569,  569,  569,  569,  339,  569,
+      569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
+      569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
+      569,  569,  339,  339,  339,  339,  340,  341,  339,  339,
+      339,  339,  339,  339,  339,  339,  339,  339,  339, 1009,
 
-      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,
+      339,  339,  548,  548,  548,  548,  361,  339,  339,  339,
+      340,  341, 1008,  545,  340,  341,  340,  721,  340,  341,
+      722,  340,  341,  339,  980,  716, 1007,  716,  412,  545,
+      717,  717,  717,  717,  560,  560,  560,  560,  340,  341,
+      340,  341,  570,  340,  725,  557,  779,  339,  339,  366,
+      367, 1006,  722,  723,  561,  561,  563,  563,  563,  563,
+      719,  557, 1005,  379,  855,  375,  375,  375,  375,  340,
+      341,  340,  727,  340,  341,  728,  381,  366,  367,  780,
+      382,  366,  367,  366,  367,  563,  563,  563,  563,  564,
+      564,  564,  381,  366,  367,  366,  743,  575,  575,  577,
+
+      577,  577,  577,  981,  740,  366,  367,  435,  729,  579,
+      579,  579,  579,  366,  367, 1004,  392,  393,  579,  579,
+      579,  577,  577,  577,  577,  340,  341,  737, 1003,  578,
+      578,  578,  579,  579,  579,  579,  579,  579,  365,  365,
+      366,  367,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365, 1002,  365,  365,  366,  367,  340,  721,
+      387,  365,  365,  365,  754,  392,  393,  734,  856,  734,
+      392,  393,  735,  735,  735,  735,  752,  365,  752,  392,
+      393,  753,  753,  753,  753, 1001,  589,  589,  340,  341,
+      392,  761,  606,  606,  606,  591,  591,  591,  591,  758,
 
-      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,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      300,  300,  166, 1061,  166,  166,  166,  166,  166,  166,
-
-      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,
+     1000,  365,  365,  365,  365,  366,  367,  365,  365,  582,
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  365,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  365,  365,  365,  365,
+      366,  367,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365, 1014,  365,  365,  366,  367,  392,  393,
+      387,  365,  365,  365,  246,  602,  602,  602,  602,  340,
+
+      727,  287,  574,  574,  574,  574,  599,  365,  366,  739,
+      340,  725,  740,  571,  246,  999,  366,  745,  998,  722,
+      746,  287,  599,  245,  392,  757,  584,  997,  758,  571,
+      246,  365,  365,  392,  393,  340,  725,  248,  755,  392,
+      393,  996,  392,  763,  722,  741,  764,  405,  840,  401,
+      401,  401,  401,  747,  995,  588,  588,  588,  588,  994,
+      407,  759,  366,  367,  408,  320,  585,  392,  393,  665,
+      993,  392,  393, 1025,  711, 1057,  407,  392,  393,  765,
+      366,  739,  585,  591,  591,  591,  591,  592,  592,  592,
+      366,  367, 1023,  593,  593,  593,  593,  605,  605,  605,
+
+      605,  245,  593,  593,  593,  770,  992,  770,  246,  991,
+      771,  771,  771,  771,  990,  248,  593,  593,  593,  593,
+      593,  593,  391,  391,  392,  393,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  412,  391,  391,
+      614,  614,  614,  614,  413,  391,  391,  391,  614,  614,
+      614,  614,  687,  687,  687,  687,  687,  687,  687,  687,
+      989,  391,  707,  707,  707,  707,  707,  707,  707,  707,
+      340,  341,  366,  743,  568,  366,  743,  366,  745,  366,
+      367,  740,  988,  582,  740,  391,  391,  391,  391,  392,
+      393,  391,  391,  596,  391,  391,  391,  391,  391,  391,
+
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  597,  597,  597,  597,  597,  597,  597,
+      597,  597,  597,  597,  597,  597,  391,  597,  597,  597,
+      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
+      597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
+      391,  391,  391,  391,  392,  393,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  987,  391,  391,
+      983,  245,  245,  963,  413,  391,  391,  391,  246,  246,
+      245,  245,  340,  341,  962,  248,  248,  246,  246,  340,
+      341,  391,  340,  721,  248,  248,  722,  246,  717,  717,
+
+      717,  717,  392,  393,  287,  717,  717,  717,  717,  961,
+      598,  960,  829,  830,  959,  391,  391,  607,  607,  607,
+      607,  366,  367,  958,  831,  957,  607,  607,  607,  723,
+      832,  956,  366,  367,  917,  340,  721,  392,  757,  722,
+      607,  607,  607,  607,  607,  607,  417,  417,  874,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  875,  417,  417,  859,  366,  367,  876,  436,  417,
+      417,  417,  723,  366,  367,  860,  340,  727,  392,  393,
+      728,  735,  735,  735,  735,  417,  392,  393,  955,  735,
+      735,  735,  735,  954,  753,  753,  753,  753,  392,  761,
+
+      392,  393,  753,  753,  753,  753,  953,  758,  952,  417,
+      417,  417,  417,  729,  417,  417,  417,  610,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  611,  611,  611,
+      611,  611,  611,  611,  611,  611,  611,  611,  611,  611,
+      417,  611,  611,  611,  611,  611,  611,  611,  611,  611,
+      611,  611,  611,  611,  611,  611,  611,  611,  611,  611,
+      611,  611,  611,  611,  417,  417,  417,  417,  951,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417, 1024,  417,  417,  392,  393,  392,  761,  436,  417,
+
+      417,  417,  950,  392,  393,  758,  392,  763,  340,  727,
+      366,  739,  728,  949,  740,  417,  366,  739,  366,  745,
+      740,  948,  746,  366,  745,  392,  757,  746,  947,  758,
+      946,  392,  393,  945,  612,  596,  412,  863,  944,  417,
+      417,  535,  535,  535,  535,  729,  864,  741,  340,  341,
+      535,  535,  535,  741, 1025,  747,  771,  771,  771,  771,
+      747,  943,  759,  942,  535,  535,  535,  535,  535,  535,
+      292,  292,  941,  292,  292,  292,  292,  292,  292,  292,
+      292,  292,  292,  292,  292, 1026,  292,  292,  771,  771,
+      771,  771,  698,  292,  292,  292,  246,  340,  341,  435,
+
+      392,  757,  940,  287,  758,  360,  924,  366,  367,  292,
+      366,  367,  386,  926,  392,  393,  392,  393,  412,  928,
+      435,  930,  966,  982,  966,  966,  966,  435,  966,  966,
+      435,  916,  939,  292,  292,  292,  292,  759,  292,  292,
+      292,  292,  292,  292,  292,  292,  292,  292,  292,  292,
+      310,  292,  292,  310,  310,  310,  310,  311,  292,  292,
+      292,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  292,  310,  310,  310,  310,  310,
+      310,  699,  310,  310,  310,  700,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  292,  292,
+
+      553,  553,  553,  553,  340,  341, 1019,  245, 1054,  553,
+      553,  553,  392,  763,  246,  938,  764,  937,  392,  763,
+      936,  248,  764,  553,  553,  553,  553,  553,  553,  320,
+      320,  320,  320,  320,  320,  935,  320,  320,  320,  320,
+      320,  320,  320,  320,  934,  320,  320,  340,  341,  765,
+      245,  713,  320,  320,  320,  765,  914,  246,  245,  245,
+      245,  933,  984,  932,  248,  246,  246,  246,  320,  340,
+      341, 1020,  248,  248,  248,  985,  366,  367, 1021,  845,
+     1055,  986,  366,  367, 1022,  915,  392,  393, 1023,  913,
+     1056,  833,  320,  320,  320,  320,  320,  320,  320,  320,
+
+      911,  320,  320,  320,  320,  320,  320,  320,  320,  335,
+      320,  320,  335,  335,  335,  335,  336,  320,  320,  320,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  320,  335,  335,  335,  335,  335,  335,
+      714,  335,  335,  335,  715,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  320,  320,  340,
+      341,  246,  246, 1013,  392,  393, 1024,  245,  287,  287,
+      366,  367,  392,  393,  246,  565,  565,  565,  565, 1014,
+      245,  248,  245,  245,  565,  565,  565,  246,  910,  246,
+      246,  967,  968,  909,  248,  908,  248,  248,  565,  565,
+
+      565,  565,  565,  565,  339,  339,  340,  341,  339,  339,
+      339,  339,  339,  339,  339,  339,  339,  339,  339,  964,
+      339,  339,  907,  245,  912,  906,  731,  339,  339,  339,
+      246,  905,  904,  903,  902,  901,  900,  248,  899,  898,
+      897,  896,  895,  339,  894,  893,  889,  888,  887,  886,
+      885,  884,  883,  882,  881,  880,  879,  878,  877,  873,
+      965,  872,  871,  870,  610,  775,  868,  339,  339,  339,
+      339,  340,  341,  339,  339,  339,  339,  339,  339,  339,
+      339,  339,  339,  339,  360,  339,  339,  360,  360,  360,
+      360,  361,  339,  339,  339,  360,  360,  360,  360,  360,
+
+      360,  360,  360,  360,  360,  360,  360,  360,  339,  360,
+      360,  360,  360,  360,  360,  732,  360,  360,  360,  733,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
+      360,  360,  339,  339,  366,  367,  867,  866,  862,  858,
+      854,  502,  852,  851,  848,  847,  844,  538,  691,  842,
+      579,  579,  579,  579,  841,  838,  837,  836,  835,  579,
+      579,  579,  502,  671,  663,  828,  827,  826,  825,  824,
+      823,  820,  819,  579,  579,  579,  579,  579,  579,  365,
+      365,  366,  367,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365,  365,  818,  365,  365,  817,  816,  815,
+
+      814,  749,  365,  365,  365,  813,  812,  811,  810,  809,
+      808,  807,  806,  805,  804,  803,  802,  801,  365,  800,
+      799,  798,  797,  796,  795,  794,  793,  792,  791,  790,
+      789,  788,  787,  786,  785,  775,  773,  772,  709,  708,
+      703,  702,  365,  365,  365,  365,  366,  367,  365,  365,
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  386,
+      365,  365,  386,  386,  386,  386,  387,  365,  365,  365,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386,  386,  386,  365,  386,  386,  386,  386,  386,  386,
+      750,  386,  386,  386,  751,  386,  386,  386,  386,  386,
+
+      386,  386,  386,  386,  386,  386,  386,  365,  365,  392,
+      393,  701,  691,  689,  688,  683,  682,  681,  680,  518,
+      645,  628,  624,  678,  671,  593,  593,  593,  593,  666,
+      663,  661,  660,  659,  593,  593,  593,  658,  657,  656,
+      655,  654,  653,  652,  651,  650,  649,  648,  593,  593,
+      593,  593,  593,  593,  391,  391,  392,  393,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  644,
+      391,  391,  643,  642,  641,  640,  767,  391,  391,  391,
+      639,  638,  637,  636,  635,  634,  633,  632,  631,  630,
+      627,  626,  623,  391,  622,  621,  620,  619,  618,  617,
+
+      616,  615,  601,  600,  420,  547,  546,  543,  542,  541,
+      529,  528,  295,  502,  523,  522,  518,  391,  391,  391,
+      391,  392,  393,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  412,  391,  391,  412,  412,  412,
+      412,  413,  391,  391,  391,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  391,  412,
+      412,  412,  412,  412,  412,  768,  412,  412,  412,  769,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  391,  391,  607,  607,  607,  607,  490,  488,
+      464,  461,  459,  607,  607,  607,  514,  450,  513,  502,
+
+      287,  501,  495,  494,  491,  479,  478,  607,  607,  607,
+      607,  607,  607,  417,  417,  477,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  470,  417,
+      417,  469,  468,  465,  455,  782,  417,  417,  417,  452,
+      451,  448,  447,  446,  183,  434,  420,  418,  334,  287,
+      314,  309,  417,  295,  293,  263,  274,  183,  263,  274,
+      183,  190,  181, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089,  417,  417,  417,  417,
+     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  435,  417,  417,  435,  435,  435,  435,
+
+      436,  417,  417,  417,  435,  435,  435,  435,  435,  435,
+      435,  435,  435,  435,  435,  435,  435,  417,  435,  435,
+      435,  435,  435,  435,  783,  435,  435,  435,  784,  435,
+      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
+      435,  417,  417,  292,  292, 1089,  292,  292,  292,  292,
+      292,  292,  292,  292,  292,  292,  292,  292, 1089,  292,
+      292, 1089, 1089, 1089, 1089,  698,  292,  292,  292, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089,  292, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+     1089, 1089, 1089, 1089, 1089, 1089,  292,  292,  292,  292,
+     1089,  292,  292,  292,  292,  292,  292,  292,  292,  292,
+      292,  292,  292,  310,  292,  292,  310,  310,  310,  310,
+      311,  292,  292,  292,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  292,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  843,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  292,  292,  320,  320,  320,  320,  320,  320, 1089,
+      320,  320,  320,  320,  320,  320,  320,  320, 1089,  320,
+      320, 1089, 1089, 1089, 1089,  713,  320,  320,  320, 1089,
+
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089,  320, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089,  320,  320,  320,  320,
+      320,  320,  320,  320, 1089,  320,  320,  320,  320,  320,
+      320,  320,  320,  335,  320,  320,  335,  335,  335,  335,
+      336,  320,  320,  320,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  320,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  853,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+
+      335,  320,  320,  339,  339,  340,  341,  339,  339,  339,
+      339,  339,  339,  339,  339,  339,  339,  339, 1089,  339,
+      339, 1089, 1089, 1089, 1089,  731,  339,  339,  339, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089,  339, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089,  339,  339,  339,  339,
+      340,  341,  339,  339,  339,  339,  339,  339,  339,  339,
+      339,  339,  339,  360,  339,  339,  360,  360,  360,  360,
+      361,  339,  339,  339,  360,  360,  360,  360,  360,  360,
+
+      360,  360,  360,  360,  360,  360,  360,  339,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  857,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
+      360,  339,  339,  365,  365,  366,  367,  365,  365,  365,
+      365,  365,  365,  365,  365,  365,  365,  365, 1089,  365,
+      365, 1089, 1089, 1089, 1089,  749,  365,  365,  365, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089,  365, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089,  365,  365,  365,  365,
+
+      366,  367,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  365,  386,  365,  365,  386,  386,  386,  386,
+      387,  365,  365,  365,  386,  386,  386,  386,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  365,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  861,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386,  365,  365,  391,  391,  392,  393,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391, 1089,  391,
+      391, 1089, 1089, 1089, 1089,  767,  391,  391,  391, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+     1089, 1089,  391, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089,  391,  391,  391,  391,
+      392,  393,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  412,  391,  391,  412,  412,  412,  412,
+      413,  391,  391,  391,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  391,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  865,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  391,  391,  417,  417, 1089,  417,  417,  417,  417,
+
+      417,  417,  417,  417,  417,  417,  417,  417, 1089,  417,
+      417, 1089, 1089, 1089, 1089,  782,  417,  417,  417, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089,  417, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089,  417,  417,  417,  417,
+     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  435,  417,  417,  435,  435,  435,  435,
+      436,  417,  417,  417,  435,  435,  435,  435,  435,  435,
+      435,  435,  435,  435,  435,  435,  435,  417,  435,  435,
+
+      435,  435,  435,  435,  435,  435,  435,  869,  435,  435,
+      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
+      435,  417,  417,  292,  292, 1089,  292,  292,  292,  292,
+      292,  292,  292,  292,  292,  292,  292,  292,  310,  292,
+      292,  310,  310,  310,  310,  311,  292,  292,  292,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  292,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  918,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  292,  292,  320,  320,
+      320,  320,  320,  320, 1089,  320,  320,  320,  320,  320,
+
+      320,  320,  320,  335,  320,  320,  335,  335,  335,  335,
+      336,  320,  320,  320,  335,  335,  335,  335,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  320,  335,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  922,  335,
+      335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
+      335,  320,  320,  182, 1089,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  185, 1089, 1089,  185,  185,  193,
+     1089,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      247,  247,  247,  247,  247,  247,  247,  247,  279,  279,
+      279,  279,  282, 1089,  282, 1089,  282,  282,  282,  282,
+
+      286,  286,  286,  286,  286,  286,  286,  292, 1089,  292,
+      292,  292,  292,  292,  292,  292,  292,  292,  294, 1089,
+      294,  294,  294,  294,  294,  294,  294,  294,  294,  297,
+     1089,  297,  297,  297,  297,  297,  297,  297,  297,  297,
+      310, 1089,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  246,  246,  246,  246,  246,  246,  246,  320,  320,
+     1089,  320,  320,  320,  320,  320,  320,  320,  320,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      335,  335, 1089,  335,  335,  335,  335,  335,  335,  335,
+      335,  339,  339,  339,  339,  339,  339,  339,  339,  339,
+
+      339,  339,  342,  342,  342,  342,  342,  342,  342,  342,
+      342,  342,  342,  346,  346,  346,  346,  346,  346,  346,
+      346,  346,  346,  346,  360,  360,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  365,  365,  365,  365,  365,
+      365,  365,  365,  365,  365,  365,  368,  368,  368,  368,
+      368,  368,  368,  368,  368,  368,  368,  372,  372,  372,
+      372,  372,  372,  372,  372,  372,  372,  372,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
+
+      394,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  417, 1089,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  419, 1089,  419,  419,  419,  419,
+      419,  419,  419,  419,  419,  422, 1089,  422,  422,  422,
+      422,  422,  422,  422,  422,  422,  435, 1089,  435,  435,
+      435,  435,  435,  435,  435,  435,  435,  185, 1089, 1089,
+      185,  185,  193, 1089,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  445, 1089, 1089,  445,  445,  445,  476,
+     1089, 1089,  476,  246,  246,  246,  246,  246,  246,  246,
+
+      247,  247,  247,  247,  247,  247,  247,  247,  503, 1089,
+     1089, 1089, 1089,  503,  503,  503,  503,  517,  517,  517,
+      517,  517,  517,  520,  520,  520,  520,  521, 1089,  521,
+      521,  521,  521,  286,  286,  286,  286,  286,  286,  286,
+      292, 1089,  292,  292,  292,  292,  292,  292,  292,  292,
+      292,  294, 1089,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  297, 1089,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  310, 1089,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  320,  320, 1089,  320,  320,  320,
+      320,  320,  320,  320,  320,  321,  321,  321,  321,  321,
+
+      321,  321,  321,  321,  321,  321,  335,  335, 1089,  335,
+      335,  335,  335,  335,  335,  335,  335,  339,  339,  339,
+      339,  339,  339,  339,  339,  339,  339,  339,  342,  342,
+      342,  342,  342,  342,  342,  342,  342,  342,  342,  346,
+      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
+      360,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  368,  368,  368,  368,  368,  368,  368,  368,
+      368,  368,  368,  372,  372,  372,  372,  372,  372,  372,
+      372,  372,  372,  372,  386,  386,  386,  386,  386,  386,
+
+      386,  386,  386,  386,  386,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  394,  394,  394,  394,
+      394,  394,  394,  394,  394,  394,  394,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  417,
+     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      419, 1089,  419,  419,  419,  419,  419,  419,  419,  419,
+      419,  422, 1089,  422,  422,  422,  422,  422,  422,  422,
+      422,  422,  435, 1089,  435,  435,  435,  435,  435,  435,
+      435,  435,  435,  185, 1089, 1089,  185,  185,  445, 1089,
+
+     1089,  445,  445,  445,  476, 1089, 1089,  476,  662, 1089,
+      662,  662,  662,  662,  662,  662,  662,  662,  662,  665,
+     1089,  665,  665,  665,  665,  665,  665,  665,  665,  665,
+      667, 1089,  667,  667,  667,  667,  667,  667,  667,  667,
+      667,  670,  670,  670,  670,  670,  670,  670,  247,  247,
+      247,  247,  247,  247,  247,  247,  517,  517,  517,  517,
+      517,  517,  679, 1089,  679,  679,  679,  679,  521, 1089,
+      521,  521,  521,  521,  286,  286,  286,  286,  286,  286,
+      286,  292, 1089,  292,  292,  292,  292,  292,  292,  292,
+      292,  292,  690, 1089,  690,  690,  690,  690,  690,  690,
+
+      690,  690,  690,  693, 1089,  693,  693,  693,  693,  693,
+      693,  693,  693,  693,  694, 1089,  694,  694,  694,  694,
+      694,  694,  694,  694,  694,  697, 1089,  697,  697,  697,
+      697,  697,  697,  697,  697,  697,  246,  246,  246,  246,
+      246,  246,  246,  320,  320, 1089,  320,  320,  320,  320,
+      320,  320,  320,  320,  710,  710,  710,  710,  710,  710,
+      710,  710,  710,  710,  710,  712,  712, 1089,  712,  712,
+      712,  712,  712,  712,  712,  712,  339,  339,  339,  339,
+      339,  339,  339,  339,  339,  339,  339,  720,  720,  720,
+      720,  720,  720,  720,  720,  720,  720,  720,  724,  724,
+
+      724,  724,  724,  724,  724,  724,  724,  724,  724,  726,
+      726,  726,  726,  726,  726,  726,  726,  726,  726,  726,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
+      730,  365,  365,  365,  365,  365,  365,  365,  365,  365,
+      365,  365,  738,  738,  738,  738,  738,  738,  738,  738,
+      738,  738,  738,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  756,  756,  756,
+
+      756,  756,  756,  756,  756,  756,  756,  756,  760,  760,
+      760,  760,  760,  760,  760,  760,  760,  760,  760,  762,
+      762,  762,  762,  762,  762,  762,  762,  762,  762,  762,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  417, 1089,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  774, 1089,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  777, 1089,  777,  777,  777,  777,  777,
+      777,  777,  777,  777,  778, 1089,  778,  778,  778,  778,
+      778,  778,  778,  778,  778,  781, 1089,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  445, 1089, 1089,  445,
+
+      445,  445,  662, 1089,  662,  662,  662,  662,  662,  662,
+      662,  662,  662,  665, 1089,  665,  665,  665,  665,  665,
+      665,  665,  665,  665,  667, 1089,  667,  667,  667,  667,
+      667,  667,  667,  667,  667,  670,  670,  670,  670,  670,
+      670,  670,  247,  247,  247,  247,  247,  247,  247,  247,
+      679, 1089,  679,  679,  679,  679,  521, 1089,  521,  521,
+      521,  521,  286,  286,  286,  286,  286,  286,  286,  292,
+     1089,  292,  292,  292,  292,  292,  292,  292,  292,  292,
+      690, 1089,  690,  690,  690,  690,  690,  690,  690,  690,
+      690,  693, 1089,  693,  693,  693,  693,  693,  693,  693,
+
+      693,  693,  694, 1089,  694,  694,  694,  694,  694,  694,
+      694,  694,  694,  697, 1089,  697,  697,  697,  697,  697,
+      697,  697,  697,  697,  246,  246,  246,  246,  246,  246,
+      246,  320,  320, 1089,  320,  320,  320,  320,  320,  320,
+      320,  320,  710,  710,  710,  710,  710,  710,  710,  710,
+      710,  710,  710,  712,  712, 1089,  712,  712,  712,  712,
+      712,  712,  712,  712,  339,  339,  339,  339,  339,  339,
+      339,  339,  339,  339,  339,  720,  720,  720,  720,  720,
+      720,  720,  720,  720,  720,  720,  724,  724,  724,  724,
+      724,  724,  724,  724,  724,  724,  724,  726,  726,  726,
 
-      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,
+      726,  726,  726,  726,  726,  726,  726,  726,  730,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  365,
+      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
       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,
+      738,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  756,  756,  756,  756,  756,
+      756,  756,  756,  756,  756,  756,  760,  760,  760,  760,
+
+      760,  760,  760,  760,  760,  760,  760,  762,  762,  762,
+      762,  762,  762,  762,  762,  762,  762,  762,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  417,
+     1089,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      774, 1089,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  777, 1089,  777,  777,  777,  777,  777,  777,  777,
+      777,  777,  778, 1089,  778,  778,  778,  778,  778,  778,
+      778,  778,  778,  781, 1089,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  445, 1089, 1089,  445,  445,  445,
+      247,  247,  247,  247,  247,  247,  247,  247,  521, 1089,
+
+      521,  521,  521,  521,  286,  286,  286,  286,  286,  286,
+      286,  292, 1089,  292,  292,  292,  292,  292,  292,  292,
+      292,  292,  246,  246,  246,  246,  246,  246,  246,  320,
+      320, 1089,  320,  320,  320,  320,  320,  320,  320,  320,
+       23, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
 
-      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
+     1089, 1089, 1089, 1089, 1089, 1089
     } ;
 
-static yyconst flex_int16_t yy_chk[7046] =
+static yyconst flex_int16_t yy_chk[7107] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1612,775 +1625,782 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    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,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        1,    1,    1,    1,    1,    2,   33,    2,    2,   29,
+       35,    4,  236,    4,    4, 1083,    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, 1079,
+       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,    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, 1078,   14,   14,   31,   14,   31,
+       82,   31,   31,   60, 1077,   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, 1075,
+       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,
-      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,
+       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,  971,   53,   41,   41,
+       51,   52,   49,   41,   53,   41,  216,   51,   41,   49,
+       56,   53,   41,  112,  971,   41,   42,  112,   42,   42,
+
+       42,   42,  112,   41,   67,   48,   67,   67,  975,   42,
+       52,   41,   48,   42,   53,   48,   48,   48,   48,   48,
+       49,  121,  124,  124,   51,   42,   43,   53,   43,  455,
+       56,   43, 1074,   50,   43,   43,   43,   43,   43,   43,
+       50,   54,   43,  286,   43,   43,  455,   50,   54,   57,
+      286,   57,   57,  975,  121,   54,   66,   58,   58,   58,
+       58,   59,   59,   66,   57,   61,   61,   61,   61,  655,
+       66,   50,   58,   68,   68,   68,   68,   50,  655,   62,
+       59,   62,   62,   62,   62,   54,   63,   64,   71,   71,
+       71,   71,  213,   66,  213,   64,   64,   64,   64,   64,
+
+       64,  126,  126,  167,   63,   63,   64,   63,  182,   63,
+      126,   63,   63,   63,   63,  214,   63,  214,   63,   63,
+       63,  136,  136,   84,   63,   73,   73,   73,   73,   75,
+       84,   75,   78,   75,   75,   77,  167,   77,   77,   77,
+       77,  182,   78,   78,   78,   78,   80, 1072,   80,   80,
+       80,   80,  231,   84,   85,   85,   85,   85, 1071,   80,
+      231,   83,  849,   80,   83,   83,   83,   83,   83,   78,
+       78,  138,  138,  285,   78,   80,   86,   86,   86,   86,
+       93,  285,   93,   93,   93,   93,   94,   94,   94,   94,
+      849,  100,   96,  100,  100,  101,  101,  101,  101,   96,
+
+      234,  109,   96,  109,  109,  234,   96,  104,  104,  104,
+      104,  140,  140,  120,   94,  120,  120,   96,   94,   95,
+      140,   95,   95,   95,   95,   96,  105,  105,  105,  105,
+      116,   95,   95,  131,  131,  104,   95,  116,   95,  104,
+      116,   95,  150,  150,  116,   95,  684,  113,   95,  113,
+      113,  113,  113,  684,  131,  116,   95,  134,  134,  134,
+      134,  152,  152,  116,   95,   98,   98, 1068,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+      684,   98,   98,  114,  114,  114,  114,   98,   98,   98,
+       98,  206,  106, 1065,  106,  106,  106,  106,  135,  135,
+
+      135,  135, 1064,  206,   98,  106,  127,  127,  458,  106,
+      458,  114,  125,  125,  239,  114,  125,  154,  154,  239,
+      127,  106,  127,  127,  127,  127,  154, 1063,   98,   98,
+       99,   99,  239,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,  858,   99,   99,  858,  125,
+      145,  145,   99,   99,   99,   99,  130,  148,  148,  148,
+      148,  128,  128,  130,  139,  139,  130, 1061,  139,   99,
+      130,  145,  222,  222,  844,   99,  844,  128,  128,  128,
+      128,  130,  149,  149,  149,  149,  153,  153,  211,  130,
+      153,  704,  211,   99,   99,  115,  211,  115,  115,  115,
+
+      115,  139,  225,  225,  225,  128, 1060,  115,  115,  128,
+      159,  159,  115,  176,  115,  176,  176,  115,  704,  141,
+      141,  115, 1059,  153,  115,  162,  162,  162,  162,  230,
+      230,  159,  115,  141,  274,  141,  141,  141,  141,  274,
+      115,  118,  118,  118,  118,  118,  118, 1058,  118,  118,
+      118,  118,  118,  118,  118,  118, 1051,  118,  118,  163,
+      163,  163,  163,  118,  118,  118,  118,  155,  155,  169,
+      294,  169,  169,  169,  169,  244,  244,  142,  142,  862,
+      118,  155,  862,  155,  155,  155,  155,  177,  177,  177,
+      177,  271,  271,  142,  142,  142,  142,  178, 1046,  178,
+
+      178,  304,  304,  294,  118,  118,  119,  119,  119,  119,
+      119,  119,  178,  119,  119,  119,  119,  119,  119,  119,
+      119,  142,  119,  119, 1045,  142,  419,  144,  119,  119,
+      119,  119,  232,  158,  144, 1042,  232,  144,  156,  156,
+      158,  144,  854,  158,  854,  119,  179,  158,  179,  179,
+      232,  119,  144,  969,  156,  156,  156,  156,  158,  419,
+      144,  186,  186,  186,  186,  264,  158,  264,  264,  119,
+      119,  129,  129,  170,  170,  170,  170,  187,  187,  187,
+      187,  275,  156,  275,  275,  129,  156,  129,  129,  129,
+      129,  188,  188,  188,  188,  309,  172,  129,  129,  969,
+
+      309,  170,  129,  172,  129,  170,  172,  129,  329,  329,
+      172,  129, 1041,  247,  129,  189,  189,  189,  189, 1039,
+      247,  172,  129,  196,  196,  196,  196,  247, 1038,  172,
+      129,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  318,  132,  132,  313,
+      251,  313,  313,  132,  132,  132,  132,  251,  197, 1037,
+      197,  197,  197,  197,  251,  200,  200,  200,  200,  924,
+      132,  197,  223,  924,  223,  197,  200,  223,  223,  223,
+      223,  267,  318,  289,  321,  267,  334,  197,  321,  267,
+      289,  334,  200,  321,  132,  132,  133,  133,  133,  133,
+
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  920,  133,  133,  262,  496,  262,  262,  133,  133,
+      133,  133,  221,  221,  221,  221,  289, 1035,  319,  262,
+      319,  319,  249,  221,  920,  133,  307,  307,  307,  249,
+      250,  133,  249,  249,  249,  249,  249,  250,  496,  221,
+      252,  254,  339,  339,  250, 1034,  253,  252,  254,  133,
+      133,  143,  143,  253,  252,  254,  705,  255,  921,  257,
+      253,  332,  332,  332,  255,  143,  257,  143,  143,  143,
+      143,  255,  338,  257,  338,  338,  254,  143,  143, 1033,
+      250,  921,  143,  705,  143,  341,  341,  143,  253,  253,
+
+      252,  143,  256,  502,  143,  276,  276,  276,  276,  256,
+      434,  257,  143,  344,  344,  434,  256,  255,  345,  345,
+      143,  146,  146,  146,  146,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  502,  146,  146,  278,
+      278,  278,  278,  146,  146,  146,  146,  346,  346, 1032,
+      256,  280,  280,  280,  280,  280,  346, 1013,  288, 1013,
+      146,  288,  288,  288,  288,  288,  290,  290,  290,  290,
+      291,  291,  291,  291,  298,  298,  298,  298,  323,  323,
+      323,  323,  351,  351,  146,  146,  147,  147,  147,  147,
+      147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
+
+      147,  866,  147,  147,  866,  347,  347,  918,  147,  147,
+      147,  147,  918,  299,  347,  299,  299,  299,  299,  352,
+      352,  300,  300,  300,  300,  147,  299,  356,  356,  351,
+      299,  147,  300,  303,  303,  303,  303,  354,  354,  342,
+      342,  850,  299,  342,  303,  365,  365, 1030,  300,  147,
+      147,  157,  157,  354,  354,  925,  305,  970,  305,  925,
+      303,  305,  305,  305,  305,  157,  352,  157,  157,  157,
+      157,  850,  325,  325,  325,  325,  342,  157,  157,  367,
+      367, 1029,  157,  325,  157,  370,  370,  157,  371,  371,
+      330,  157,  330,  536,  157,  330,  330,  330,  330,  325,
+
+      343,  343,  157,  970,  343,  363,  363,  363,  363,  976,
+      157,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  536,  160,  160,  364,
+      364,  364,  364,  160,  160,  160,  160,  343,  317,  538,
+      317,  317,  317,  317,  324, 1028,  324,  324,  324,  324,
+      160,  317,  348,  348,  976,  317, 1026,  324,  608,  368,
+      368,  324,  926,  368,  382,  382,  926,  317,  348,  348,
+      348,  348,  538,  324,  160,  160,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  608,  161,  161,  357,  357,  368,  977,  161,  161,
+
+      161,  161,  328,  328,  328,  328,  350,  350,  372,  372,
+      357,  357,  357,  328,  927,  161,  972,  372,  927,  355,
+      355,  161,  350,  350,  350,  350,  610,  369,  369,  328,
+      355,  369,  355,  350,  972,  355,  355,  355,  355,  161,
+      161,  171,  977,  171,  171,  171,  171,  359,  359,  350,
+      919,  359,  662,  171,  171,  919,  359, 1018,  171,  610,
+      171,  377,  377,  171,  369,  373,  373,  171,  378,  378,
+      171,  385,  385, 1016,  373,  385,  391,  391,  171,  973,
+      385,  389,  389,  389,  389,  662,  171,  174,  174, 1014,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174,  174,  922,  174,  174,  353,  353,  922,  377,  174,
+      174,  174,  174,  380,  380,  378,  667,  374,  374,  393,
+      393,  353,  353,  353,  353,  973,  174,  376,  376,  380,
+      380, 1012,  353,  374,  374,  374,  374,  390,  390,  390,
+      390,  396,  396,  376,  376,  376,  376, 1011,  353,  667,
+      174,  174,  175,  175,  376,  175,  175,  175,  175,  175,
+      175,  175,  175,  175,  175,  175,  175,  974,  175,  175,
+      376,  379,  379, 1010,  175,  175,  175,  175,  397,  397,
+      408,  408, 1009,  381,  381,  403,  403,  379,  379,  379,
+      379,  175,  383,  383,  381, 1007,  381,  175,  379,  381,
+
+      381,  381,  381,  398,  398,  429,  429,  928,  383,  383,
+      383,  928,  398,  974,  379,  175,  175,  308,  308,  308,
+      308, 1006,  399,  399,  472,  472,  308,  308,  308,  394,
+      394,  399,  403,  394,  690,  395,  395,  404,  404,  395,
+      308,  308,  308,  308,  308,  308,  310,  310, 1005,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310, 1004,  310,  310,  400,  400,  394,  690,  310,  310,
+      310,  310,  395,  406,  406,  407,  407,  432,  432,  432,
+      400,  400,  400,  400,  404,  310,  407, 1003,  407,  406,
+      406,  407,  407,  407,  407,  411,  411,  531,  531,  411,
+
+      415,  415,  415,  415,  411,  416,  416,  416,  416,  310,
+      310,  311,  311, 1002,  311,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  311,  311,  311,  311,  311,  312,  312, 1001,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  923,  312,  312,  402,  402,  923,  481,  312,  312,
+
+      312,  312,  409,  409,  998,  481,  405,  405,  481,  978,
+      402,  402,  402,  402,  438,  312,  438,  438,  409,  409,
+      409,  402,  405,  405,  405,  405,  423,  423,  423,  423,
+      475,  475,  475,  405,  312,  549,  549,  402,  997,  312,
+      312,  333,  333,  333,  333,  439,  996,  439,  439,  405,
+      333,  333,  333,  430,  978,  430,  603,  603,  430,  430,
+      430,  430,  678,  678,  333,  333,  333,  333,  333,  333,
+      335,  335,  335,  335,  335,  335,  995,  335,  335,  335,
+      335,  335,  335,  335,  335,  967,  335,  335,  440,  440,
+      440,  440,  335,  335,  335,  335,  967,  424,  993,  424,
+
+      424,  424,  424,  967,  425,  425,  425,  425,  991,  335,
+      424,  534,  534,  534,  424,  425,  441,  441,  441,  441,
+      442,  442,  442,  442,  701,  701,  424,  443,  443,  443,
+      443,  425,  990,  335,  335,  336,  336,  336,  336,  336,
+      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
+      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
+      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
+      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
+      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
+      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
+
+      337,  337,  337,  337,  337,  337,  989,  337,  337,  337,
+      337,  337,  337,  337,  337,  988,  337,  337,  428,  428,
+      428,  428,  337,  337,  337,  337,  444,  544,  444,  428,
+      987,  444,  444,  444,  444,  471,  471,  471,  471,  337,
+      473,  473,  473,  473,  986,  428,  471,  474,  474,  474,
+      474,  544,  985,  504,  505,  544,  694, 1015,  337, 1015,
+      504,  505,  471,  337,  337,  349,  349,  504,  505,  558,
+      558,  506,  984,  507,  532,  532,  532,  532,  506,  349,
+      507,  349,  349,  349,  349,  506,  508,  507,  509,  694,
+      511,  510,  349,  508,  983,  509,  349,  511,  510,  505,
+
+      508,  962,  509,  554,  511,  510,  512,  554,  349,  358,
+      358,  526,  554,  512,  774,  507,  870,  558,  526,  870,
+      512,  533,  533,  533,  533,  358,  358,  358,  358,  510,
+     1017,  511, 1017,  510,  358,  358,  358,  519,  519,  519,
+      519,  519,  526,  512,  572,  572,  526,  774,  358,  358,
+      358,  358,  358,  358,  360,  360,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  805,
+      360,  360,  530,  530,  530,  530,  360,  360,  360,  360,
+      527,  960,  527,  530,  805,  527,  527,  527,  527,  545,
+      805,  545,  572,  360,  545,  545,  545,  545,  959,  530,
+
+      550,  550,  550,  550,  551,  551,  551,  551,  552,  552,
+      552,  604,  604,  604,  604,  722,  722,  360,  360,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  362,  362,  362,  362,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  958,
+
+      362,  362,  548,  548,  548,  548,  362,  362,  362,  362,
+      559,  559,  957,  548,  557,  557,  566,  566,  560,  560,
+      566,  718,  718,  362,  929,  557,  955,  557,  929,  548,
+      557,  557,  557,  557,  560,  560,  560,  560,  561,  561,
+      562,  562,  362,  567,  567,  560,  778,  362,  362,  375,
+      375,  954,  567,  566,  561,  561,  562,  562,  562,  562,
+      559,  560,  953,  375,  718,  375,  375,  375,  375,  563,
+      563,  568,  568,  564,  564,  568,  375,  573,  573,  778,
+      375,  575,  575,  576,  576,  563,  563,  563,  563,  564,
+      564,  564,  375,  384,  384,  581,  581,  575,  575,  576,
+
+      576,  576,  576,  930,  581,  577,  577,  930,  568,  384,
+      384,  384,  384,  578,  578,  952,  586,  586,  384,  384,
+      384,  577,  577,  577,  577,  719,  719,  573,  951,  578,
+      578,  578,  384,  384,  384,  384,  384,  384,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386,  386,  386,  950,  386,  386,  571,  571,  723,  723,
+      386,  386,  386,  386,  586,  585,  585,  571,  719,  571,
+      589,  589,  571,  571,  571,  571,  585,  386,  585,  590,
+      590,  585,  585,  585,  585,  949,  589,  589,  728,  728,
+      595,  595,  606,  606,  606,  590,  590,  590,  590,  595,
 
-      364,  364,  364,  364,  364,  364,  364,  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,
+      948,  386,  386,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  388,  388,
       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
-      388,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      388,  388,  388,  968,  388,  388,  574,  574,  587,  587,
+      388,  388,  388,  388,  968,  602,  602,  602,  602,  729,
 
-      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,
+      729,  968,  574,  574,  574,  574,  602,  388,  580,  580,
+      724,  724,  580,  574,  685,  946,  582,  582,  945,  724,
+      582,  685,  602,  672,  594,  594,  388,  944,  594,  574,
+      672,  388,  388,  401,  401,  725,  725,  672,  587,  588,
+      588,  943,  596,  596,  725,  580,  596,  401,  685,  401,
+      401,  401,  401,  582,  942,  588,  588,  588,  588,  941,
+      401,  594,  740,  740,  401,  710,  588,  591,  591,  710,
+      940,  592,  592, 1025,  710, 1025,  401,  410,  410,  596,
+      741,  741,  588,  591,  591,  591,  591,  592,  592,  592,
+      746,  746,  979,  410,  410,  410,  410,  605,  605,  605,
+
+      605,  673,  410,  410,  410,  599,  939,  599,  673,  938,
+      599,  599,  599,  599,  937,  673,  410,  410,  410,  410,
+      410,  410,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  979,  412,  412,
+      613,  613,  613,  613,  412,  412,  412,  412,  614,  614,
+      614,  614,  686,  686,  686,  686,  687,  687,  687,  687,
+      936,  412,  706,  706,  706,  706,  707,  707,  707,  707,
+      731,  731,  742,  742,  731,  743,  743,  747,  747,  749,
+      749,  742,  935,  749,  743,  412,  412,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  414,  414,  414,  414,  414,  414,  414,  414,
+      414,  414,  414,  414,  414,  414,  414,  934,  414,  414,
+      932,  674,  675,  910,  414,  414,  414,  414,  674,  675,
+      676,  677,  716,  716,  909,  674,  675,  676,  677,  717,
+      717,  414,  720,  720,  676,  677,  720,  840,  716,  716,
+
+      716,  716,  758,  758,  840,  717,  717,  717,  717,  907,
+      414,  906,  674,  675,  904,  414,  414,  433,  433,  433,
+      433,  736,  736,  903,  676,  902,  433,  433,  433,  720,
+      677,  899,  737,  737,  840,  721,  721,  759,  759,  721,
+      433,  433,  433,  433,  433,  433,  435,  435,  789,  435,
+      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
+      435,  789,  435,  435,  736,  734,  734,  789,  435,  435,
+      435,  435,  721,  735,  735,  737,  726,  726,  752,  752,
+      726,  734,  734,  734,  734,  435,  753,  753,  898,  735,
+      735,  735,  735,  897,  752,  752,  752,  752,  760,  760,
+
+      764,  764,  753,  753,  753,  753,  896,  760,  895,  435,
+      435,  436,  436,  726,  436,  436,  436,  436,  436,  436,
+      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
+      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
+      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
+      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
+      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
+      436,  436,  436,  436,  436,  436,  437,  437,  893,  437,
+      437,  437,  437,  437,  437,  437,  437,  437,  437,  437,
+      437,  980,  437,  437,  754,  754,  761,  761,  437,  437,
+
+      437,  437,  892,  755,  755,  761,  765,  765,  727,  727,
+      738,  738,  727,  891,  738,  437,  739,  739,  744,  744,
+      739,  890,  744,  745,  745,  756,  756,  745,  889,  756,
+      888,  767,  767,  886,  437,  767,  980,  754,  885,  437,
+      437,  535,  535,  535,  535,  727,  755,  738,  855,  855,
+      535,  535,  535,  739,  981,  744,  770,  770,  770,  770,
+      745,  884,  756,  883,  535,  535,  535,  535,  535,  535,
+      539,  539,  881,  539,  539,  539,  539,  539,  539,  539,
+      539,  539,  539,  539,  539,  982,  539,  539,  771,  771,
+      771,  771,  539,  539,  539,  539,  839,  856,  856,  981,
+
+      757,  757,  880,  839,  757,  857,  857,  859,  859,  539,
+      860,  860,  861,  861,  863,  863,  864,  864,  865,  865,
+      869,  869,  915,  931,  915,  915,  966,  931,  966,  966,
+      982,  839,  879,  539,  539,  540,  540,  757,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+
+      553,  553,  553,  553, 1019, 1019, 1019,  832, 1019,  553,
+      553,  553,  762,  762,  832,  878,  762,  877,  763,  763,
+      876,  832,  763,  553,  553,  553,  553,  553,  553,  555,
+      555,  555,  555,  555,  555,  875,  555,  555,  555,  555,
+      555,  555,  555,  555,  874,  555,  555, 1054, 1054,  762,
+      831,  555,  555,  555,  555,  763,  832,  831,  829,  913,
+      914,  872,  933,  871,  831,  829,  913,  914,  555, 1020,
+     1020, 1020,  829,  913,  914,  933, 1021, 1021, 1021,  846,
+     1021,  933, 1022, 1022, 1022,  837, 1023, 1023, 1023,  831,
+     1023,  834,  555,  555,  556,  556,  556,  556,  556,  556,
 
-      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,
+      829,  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,  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,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  565,
+      565,  916,  917,  964, 1024, 1024, 1024,  964,  916,  917,
+     1055, 1055, 1056, 1056,  964,  565,  565,  565,  565,  965,
+      830,  964,  911,  965,  565,  565,  565,  830,  828,  911,
+      965,  916,  917,  827,  830,  826,  911,  965,  565,  565,
+
+      565,  565,  565,  565,  569,  569,  569,  569,  569,  569,
+      569,  569,  569,  569,  569,  569,  569,  569,  569,  911,
+      569,  569,  825,  912,  830,  824,  569,  569,  569,  569,
+      912,  823,  822,  821,  820,  819,  818,  912,  817,  814,
+      813,  811,  809,  569,  807,  806,  804,  803,  802,  801,
+      800,  799,  798,  797,  796,  794,  793,  792,  791,  788,
+      912,  786,  785,  784,  782,  777,  773,  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,  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,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  579,  579,  772,  769,  751,  733,
+      715,  713,  709,  708,  703,  702,  700,  698,  693,  689,
+      579,  579,  579,  579,  688,  683,  682,  681,  680,  579,
+      579,  579,  671,  670,  665,  661,  660,  659,  658,  657,
+      656,  654,  653,  579,  579,  579,  579,  579,  579,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  652,  583,  583,  651,  650,  649,
 
-        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,
+      647,  583,  583,  583,  583,  646,  645,  644,  643,  642,
+      641,  640,  639,  637,  636,  635,  634,  633,  583,  632,
+      631,  630,  629,  628,  627,  625,  624,  623,  622,  621,
+      620,  619,  618,  617,  616,  609,  601,  600,  547,  546,
+      543,  542,  583,  583,  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,
 
-        0,    0,    0,    0,  669,  669,  669,  669,    0,    0,
+      584,  584,  584,  584,  584,  584,  584,  584,  584,  593,
+      593,  541,  537,  529,  528,  525,  524,  523,  522,  517,
+      516,  515,  514,  513,  503,  593,  593,  593,  593,  500,
+      497,  495,  494,  493,  593,  593,  593,  492,  491,  490,
+      489,  488,  487,  486,  485,  484,  483,  482,  593,  593,
+      593,  593,  593,  593,  597,  597,  597,  597,  597,  597,
+      597,  597,  597,  597,  597,  597,  597,  597,  597,  480,
+      597,  597,  479,  478,  477,  469,  597,  597,  597,  597,
+      468,  467,  466,  465,  464,  463,  462,  461,  460,  459,
+      457,  456,  454,  597,  453,  452,  451,  450,  449,  448,
+
+      447,  446,  427,  426,  422,  327,  326,  316,  315,  314,
+      302,  301,  297,  287,  284,  283,  279,  597,  597,  598,
+      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
+      598,  598,  598,  598,  607,  607,  607,  607,  273,  272,
+      270,  269,  268,  607,  607,  607,  266,  265,  263,  248,
+
+      246,  245,  238,  237,  235,  229,  228,  607,  607,  607,
+      607,  607,  607,  611,  611,  227,  611,  611,  611,  611,
+      611,  611,  611,  611,  611,  611,  611,  611,  219,  611,
+      611,  218,  217,  215,  210,  611,  611,  611,  611,  208,
+      207,  205,  204,  203,  193,  173,  168,  166,  117,  107,
+      102,   97,  611,   92,   90,   87,   81,   76,   69,   65,
+       34,   32,   28,   23,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  611,  611,  612,  612,
+        0,  612,  612,  612,  612,  612,  612,  612,  612,  612,
+      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
+
+      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
+      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
+      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
+      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
+      612,  612,  612,  697,  697,    0,  697,  697,  697,  697,
+      697,  697,  697,  697,  697,  697,  697,  697,    0,  697,
+      697,    0,    0,    0,    0,  697,  697,  697,  697,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  669,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  697,    0,    0,    0,    0,    0,    0,    0,
         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,  697,  697,  699,  699,
+        0,  699,  699,  699,  699,  699,  699,  699,  699,  699,
+      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
+      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
+      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
+      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
+      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
+      699,  699,  699,  712,  712,  712,  712,  712,  712,    0,
+      712,  712,  712,  712,  712,  712,  712,  712,    0,  712,
+      712,    0,    0,    0,    0,  712,  712,  712,  712,    0,
+
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  702,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  712,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  712,  712,  714,  714,
+      714,  714,  714,  714,    0,  714,  714,  714,  714,  714,
+      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
+      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
+      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
+      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
+      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
 
-        0,    0,    0,    0,    0,  702,  702,  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,
-
+      714,  714,  714,  730,  730,  730,  730,  730,  730,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,    0,  730,
+      730,    0,    0,    0,    0,  730,  730,  730,  730,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  720,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  730,    0,    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,  730,  730,  732,  732,
+      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
+      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
+      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
+
+      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
+      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
+      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
+      732,  732,  732,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,    0,  748,
+      748,    0,    0,    0,    0,  748,  748,  748,  748,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  738,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  748,    0,    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,  748,  748,  750,  750,
+
+      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
+      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
+      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
+      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
+      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
+      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
+      750,  750,  750,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,    0,  766,
+      766,    0,    0,    0,    0,  766,  766,  766,  766,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  753,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,  766,    0,    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,  766,  766,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  781,  781,    0,  781,  781,  781,  781,
 
-      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,  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,
+      781,  781,  781,  781,  781,  781,  781,  781,    0,  781,
+      781,    0,    0,    0,    0,  781,  781,  781,  781,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  781,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  781,  781,  783,  783,
+        0,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  843,  843,    0,  843,  843,  843,  843,
+      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
+      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
+      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
+      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
+      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
+      843,  843,  843,  843,  843,  843,  843,  843,  853,  853,
+      853,  853,  853,  853,    0,  853,  853,  853,  853,  853,
+
+      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+      853,  853,  853, 1090,    0, 1090, 1090, 1090, 1090, 1090,
+     1090, 1090, 1090, 1090, 1091,    0,    0, 1091, 1091, 1092,
+        0, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
+     1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1094,
+     1094, 1094, 1095,    0, 1095,    0, 1095, 1095, 1095, 1095,
+
+     1096, 1096, 1096, 1096, 1096, 1096, 1096, 1097,    0, 1097,
+     1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098,    0,
+     1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
+        0, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+     1100,    0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
+     1100, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1102, 1102,
+        0, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
+     1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+     1104, 1104,    0, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
+     1104, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+
+     1105, 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+     1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+     1107, 1107, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108,
+     1108, 1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109,
+     1109, 1109, 1109, 1109, 1109, 1109, 1110, 1110, 1110, 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,
 
-     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,
-
-     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
+     1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
+     1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
+     1116, 1116, 1116, 1117,    0, 1117, 1117, 1117, 1117, 1117,
+     1117, 1117, 1117, 1117, 1118,    0, 1118, 1118, 1118, 1118,
+     1118, 1118, 1118, 1118, 1118, 1119,    0, 1119, 1119, 1119,
+     1119, 1119, 1119, 1119, 1119, 1119, 1120,    0, 1120, 1120,
+     1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121,    0,    0,
+     1121, 1121, 1122,    0, 1122, 1122, 1122, 1122, 1122, 1122,
+     1122, 1122, 1122, 1123,    0,    0, 1123, 1123, 1123, 1124,
+        0,    0, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
+
+     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,    0,
+        0,    0,    0, 1127, 1127, 1127, 1127, 1128, 1128, 1128,
+     1128, 1128, 1128, 1129, 1129, 1129, 1129, 1130,    0, 1130,
+     1130, 1130, 1130, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
+     1132,    0, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+     1132, 1133,    0, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
+     1133, 1133, 1134,    0, 1134, 1134, 1134, 1134, 1134, 1134,
+     1134, 1134, 1134, 1135,    0, 1135, 1135, 1135, 1135, 1135,
+     1135, 1135, 1135, 1135, 1136, 1136,    0, 1136, 1136, 1136,
+     1136, 1136, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 1137,
+
+     1137, 1137, 1137, 1137, 1137, 1137, 1138, 1138,    0, 1138,
+     1138, 1138, 1138, 1138, 1138, 1138, 1138, 1139, 1139, 1139,
+     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140,
+     1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1141,
+     1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
+     1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
+     1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
+     1143, 1143, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
+     1144, 1144, 1144, 1145, 1145, 1145, 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,
+        0, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+     1152,    0, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152,
+     1152, 1153,    0, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+     1153, 1153, 1154,    0, 1154, 1154, 1154, 1154, 1154, 1154,
+     1154, 1154, 1154, 1155,    0,    0, 1155, 1155, 1156,    0,
+
+        0, 1156, 1156, 1156, 1157,    0,    0, 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, 1161, 1161, 1161, 1161, 1161, 1161, 1162, 1162,
+     1162, 1162, 1162, 1162, 1162, 1162, 1163, 1163, 1163, 1163,
+     1163, 1163, 1164,    0, 1164, 1164, 1164, 1164, 1165,    0,
+     1165, 1165, 1165, 1165, 1166, 1166, 1166, 1166, 1166, 1166,
+     1166, 1167,    0, 1167, 1167, 1167, 1167, 1167, 1167, 1167,
+     1167, 1167, 1168,    0, 1168, 1168, 1168, 1168, 1168, 1168,
+
+     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,    0, 1173, 1173, 1173, 1173,
+     1173, 1173, 1173, 1173, 1174, 1174, 1174, 1174, 1174, 1174,
+     1174, 1174, 1174, 1174, 1174, 1175, 1175,    0, 1175, 1175,
+     1175, 1175, 1175, 1175, 1175, 1175, 1176, 1176, 1176, 1176,
+     1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 1177, 1177,
+     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178,
+
+     1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
+     1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+     1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+     1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+     1181, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
+     1182, 1182, 1182, 1183, 1183, 1183, 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,    0, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+     1191, 1191, 1192,    0, 1192, 1192, 1192, 1192, 1192, 1192,
+     1192, 1192, 1192, 1193,    0, 1193, 1193, 1193, 1193, 1193,
+     1193, 1193, 1193, 1193, 1194,    0, 1194, 1194, 1194, 1194,
+     1194, 1194, 1194, 1194, 1194, 1195,    0, 1195, 1195, 1195,
+     1195, 1195, 1195, 1195, 1195, 1195, 1196,    0,    0, 1196,
+
+     1196, 1196, 1197,    0, 1197, 1197, 1197, 1197, 1197, 1197,
+     1197, 1197, 1197, 1198,    0, 1198, 1198, 1198, 1198, 1198,
+     1198, 1198, 1198, 1198, 1199,    0, 1199, 1199, 1199, 1199,
+     1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200, 1200, 1200,
+     1200, 1200, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
+     1202,    0, 1202, 1202, 1202, 1202, 1203,    0, 1203, 1203,
+     1203, 1203, 1204, 1204, 1204, 1204, 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,    0, 1208, 1208, 1208, 1208, 1208, 1208,
+     1208, 1208, 1208, 1209,    0, 1209, 1209, 1209, 1209, 1209,
+     1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210,
+     1210, 1211, 1211,    0, 1211, 1211, 1211, 1211, 1211, 1211,
+     1211, 1211, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+     1212, 1212, 1212, 1213, 1213,    0, 1213, 1213, 1213, 1213,
+     1213, 1213, 1213, 1213, 1214, 1214, 1214, 1214, 1214, 1214,
+     1214, 1214, 1214, 1214, 1214, 1215, 1215, 1215, 1215, 1215,
+     1215, 1215, 1215, 1215, 1215, 1215, 1216, 1216, 1216, 1216,
+     1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217, 1217, 1217,
+
+     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218, 1218,
+     1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219,
+     1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
+     1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+     1220, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
+     1221, 1221, 1222, 1222, 1222, 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,
+        0, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229,
+     1230,    0, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
+     1230, 1231,    0, 1231, 1231, 1231, 1231, 1231, 1231, 1231,
+     1231, 1231, 1232,    0, 1232, 1232, 1232, 1232, 1232, 1232,
+     1232, 1232, 1232, 1233,    0, 1233, 1233, 1233, 1233, 1233,
+     1233, 1233, 1233, 1233, 1234,    0,    0, 1234, 1234, 1234,
+     1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1236,    0,
+
+     1236, 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237,
+     1237, 1238,    0, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
+     1238, 1238, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1240,
+     1240,    0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+     1089, 1089, 1089, 1089, 1089, 1089
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -2460,6 +2480,8 @@
 
 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')
@@ -2489,7 +2511,7 @@
 
 
 
-#line 2493 "compilers/imcc/imclexer.c"
+#line 2515 "compilers/imcc/imclexer.c"
 
 #define INITIAL 0
 #define emit 1
@@ -2734,7 +2756,7 @@
 	register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 152 "compilers/imcc/imcc.l"
+#line 154 "compilers/imcc/imcc.l"
 
         /* for emacs "*/
         if (IMCC_INFO(interp)->expect_pasm == 1 && !IMCC_INFO(interp)->in_pod) {
@@ -2753,7 +2775,7 @@
             return 0;
         }
 
-#line 2757 "compilers/imcc/imclexer.c"
+#line 2779 "compilers/imcc/imclexer.c"
 
 	if ( !yyg->yy_init )
 		{
@@ -2807,13 +2829,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 >= 1090 )
 					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 != 1089 );
 		yy_cp = yyg->yy_last_accepting_cpos;
 		yy_current_state = yyg->yy_last_accepting_state;
 
@@ -2834,24 +2856,29 @@
 			goto yy_find_action;
 
 case 1:
-/* rule 1 can match eol */
 YY_RULE_SETUP
-#line 170 "compilers/imcc/imcc.l"
+#line 172 "compilers/imcc/imcc.l"
+{ IMCC_INFO(interp)->line++; }
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 174 "compilers/imcc/imcc.l"
 {
+            IMCC_INFO(interp)->line++;
             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 180 "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 +2887,11 @@
                strlen(IMCC_INFO(interp)->heredoc_content), yytext);
     }
 	YY_BREAK
-case 3:
+case 4:
 YY_RULE_SETUP
-#line 189 "compilers/imcc/imcc.l"
+#line 193 "compilers/imcc/imcc.l"
 {
+        IMCC_INFO(interp)->line++;
         /* Are we at the end of the heredoc? */
         if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
             /* End of the heredoc. */
@@ -2886,7 +2914,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 +2929,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 232 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
         yy_push_state(cmt3, yyscanner);
@@ -2915,27 +2943,27 @@
         return FILECOMMENT;
     }
 	YY_BREAK
-case 5:
+case 6:
 YY_RULE_SETUP
-#line 237 "compilers/imcc/imcc.l"
+#line 242 "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 247 "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 249 "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 251 "compilers/imcc/imcc.l"
 {
         IMCC_INFO(interp)->line = atoi(yytext);
         yy_pop_state(yyscanner);
@@ -2943,40 +2971,38 @@
         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 258 "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 262 "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 271 "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 275 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->expect_pasm == 2)
             BEGIN(INITIAL);
@@ -2984,512 +3010,512 @@
             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 287 "compilers/imcc/imcc.l"
 {
     /* this is a stand-alone =cut, but we're not in POD mode, so ignore.  */
     IMCC_INFO(interp)->line++;
 }
 	YY_BREAK
-case 14:
+case 15:
 YY_RULE_SETUP
-#line 290 "compilers/imcc/imcc.l"
+#line 292 "compilers/imcc/imcc.l"
 {
+        IMCC_INFO(interp)->line++;
         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 298 "compilers/imcc/imcc.l"
 {
+        IMCC_INFO(interp)->line++;
         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"
+#line 304 "compilers/imcc/imcc.l"
 { IMCC_INFO(interp)->line++; }
 	YY_BREAK
 case 18:
+/* rule 18 can match eol */
 YY_RULE_SETUP
-#line 305 "compilers/imcc/imcc.l"
-return TK_LINE;
+#line 306 "compilers/imcc/imcc.l"
+{ /* ignore */ }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 306 "compilers/imcc/imcc.l"
-return TK_FILE;
+#line 308 "compilers/imcc/imcc.l"
+return TK_LINE;
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 307 "compilers/imcc/imcc.l"
-return ANNOTATE;
+#line 309 "compilers/imcc/imcc.l"
+return TK_FILE;
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 308 "compilers/imcc/imcc.l"
-return LEXICAL;
+#line 310 "compilers/imcc/imcc.l"
+return ANNOTATE;
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 309 "compilers/imcc/imcc.l"
-return ARG;
+#line 311 "compilers/imcc/imcc.l"
+return LEXICAL;
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 310 "compilers/imcc/imcc.l"
-return SUB;
+#line 312 "compilers/imcc/imcc.l"
+return ARG;
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 311 "compilers/imcc/imcc.l"
-return ESUB;
+#line 313 "compilers/imcc/imcc.l"
+return SUB;
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 312 "compilers/imcc/imcc.l"
-return PCC_BEGIN;
+#line 314 "compilers/imcc/imcc.l"
+return ESUB;
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 313 "compilers/imcc/imcc.l"
-return PCC_END;
+#line 315 "compilers/imcc/imcc.l"
+return PCC_BEGIN;
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 314 "compilers/imcc/imcc.l"
-return PCC_CALL;
+#line 316 "compilers/imcc/imcc.l"
+return PCC_END;
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 315 "compilers/imcc/imcc.l"
-return NCI_CALL;
+#line 317 "compilers/imcc/imcc.l"
+return PCC_CALL;
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 316 "compilers/imcc/imcc.l"
-return METH_CALL;
+#line 318 "compilers/imcc/imcc.l"
+return NCI_CALL;
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 317 "compilers/imcc/imcc.l"
-return INVOCANT;
+#line 319 "compilers/imcc/imcc.l"
+return METH_CALL;
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 318 "compilers/imcc/imcc.l"
-return PCC_SUB;
+#line 320 "compilers/imcc/imcc.l"
+return INVOCANT;
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 319 "compilers/imcc/imcc.l"
-return PCC_BEGIN_RETURN;
+#line 321 "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 322 "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 323 "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 324 "compilers/imcc/imcc.l"
+return PCC_BEGIN_YIELD;
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 324 "compilers/imcc/imcc.l"
-return METHOD;
+#line 325 "compilers/imcc/imcc.l"
+return PCC_END_YIELD;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 325 "compilers/imcc/imcc.l"
-return MULTI;
+#line 327 "compilers/imcc/imcc.l"
+return METHOD;
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 326 "compilers/imcc/imcc.l"
-return MAIN;
+#line 328 "compilers/imcc/imcc.l"
+return MULTI;
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 327 "compilers/imcc/imcc.l"
-return LOAD;
+#line 329 "compilers/imcc/imcc.l"
+return MAIN;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 328 "compilers/imcc/imcc.l"
-return INIT;
+#line 330 "compilers/imcc/imcc.l"
+return LOAD;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 329 "compilers/imcc/imcc.l"
-return IMMEDIATE;
+#line 331 "compilers/imcc/imcc.l"
+return INIT;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 330 "compilers/imcc/imcc.l"
-return POSTCOMP;
+#line 332 "compilers/imcc/imcc.l"
+return IMMEDIATE;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 331 "compilers/imcc/imcc.l"
-return ANON;
+#line 333 "compilers/imcc/imcc.l"
+return POSTCOMP;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 332 "compilers/imcc/imcc.l"
-return OUTER;
+#line 334 "compilers/imcc/imcc.l"
+return ANON;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 333 "compilers/imcc/imcc.l"
-return NEED_LEX;
+#line 335 "compilers/imcc/imcc.l"
+return OUTER;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 334 "compilers/imcc/imcc.l"
-return VTABLE_METHOD;
+#line 336 "compilers/imcc/imcc.l"
+return NEED_LEX;
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 335 "compilers/imcc/imcc.l"
-return NS_ENTRY;
+#line 337 "compilers/imcc/imcc.l"
+return VTABLE_METHOD;
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 336 "compilers/imcc/imcc.l"
-return UNIQUE_REG;
+#line 338 "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 339 "compilers/imcc/imcc.l"
+return UNIQUE_REG;
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 338 "compilers/imcc/imcc.l"
-return SUBID;
+#line 340 "compilers/imcc/imcc.l"
+return SUB_INSTANCE_OF;
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 340 "compilers/imcc/imcc.l"
-return RESULT;
+#line 341 "compilers/imcc/imcc.l"
+return SUBID;
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 341 "compilers/imcc/imcc.l"
-return GET_RESULTS;
+#line 343 "compilers/imcc/imcc.l"
+return RESULT;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 342 "compilers/imcc/imcc.l"
-return YIELDT;
+#line 344 "compilers/imcc/imcc.l"
+return GET_RESULTS;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 343 "compilers/imcc/imcc.l"
-return SET_YIELD;
+#line 345 "compilers/imcc/imcc.l"
+return YIELDT;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 344 "compilers/imcc/imcc.l"
-return RETURN;
+#line 346 "compilers/imcc/imcc.l"
+return SET_YIELD;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 345 "compilers/imcc/imcc.l"
-return SET_RETURN;
+#line 347 "compilers/imcc/imcc.l"
+return RETURN;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 346 "compilers/imcc/imcc.l"
-return TAILCALL;
+#line 348 "compilers/imcc/imcc.l"
+return SET_RETURN;
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 347 "compilers/imcc/imcc.l"
-return LOADLIB;
+#line 349 "compilers/imcc/imcc.l"
+return TAILCALL;
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 349 "compilers/imcc/imcc.l"
-return ADV_FLAT;
+#line 350 "compilers/imcc/imcc.l"
+return LOADLIB;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 350 "compilers/imcc/imcc.l"
-return ADV_SLURPY;
+#line 352 "compilers/imcc/imcc.l"
+return ADV_FLAT;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 351 "compilers/imcc/imcc.l"
-return ADV_OPTIONAL;
+#line 353 "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 354 "compilers/imcc/imcc.l"
+return ADV_OPTIONAL;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 353 "compilers/imcc/imcc.l"
-return ADV_NAMED;
+#line 355 "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 356 "compilers/imcc/imcc.l"
+return ADV_NAMED;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 355 "compilers/imcc/imcc.l"
-return ADV_INVOCANT;
+#line 357 "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 358 "compilers/imcc/imcc.l"
+return ADV_INVOCANT;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 358 "compilers/imcc/imcc.l"
-return NAMESPACE;
+#line 359 "compilers/imcc/imcc.l"
+return ADV_CALL_SIG;
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 359 "compilers/imcc/imcc.l"
-return HLL;
+#line 361 "compilers/imcc/imcc.l"
+return NAMESPACE;
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 361 "compilers/imcc/imcc.l"
+#line 362 "compilers/imcc/imcc.l"
+return HLL;
+	YY_BREAK
+case 70:
+YY_RULE_SETUP
+#line 364 "compilers/imcc/imcc.l"
 return LOCAL;
 	YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 362 "compilers/imcc/imcc.l"
+#line 365 "compilers/imcc/imcc.l"
 return CONST;
 	YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 363 "compilers/imcc/imcc.l"
+#line 366 "compilers/imcc/imcc.l"
 return GLOBAL_CONST;
 	YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 364 "compilers/imcc/imcc.l"
+#line 367 "compilers/imcc/imcc.l"
 return PARAM;
 	YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 365 "compilers/imcc/imcc.l"
+#line 368 "compilers/imcc/imcc.l"
 return GOTO;
 	YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 366 "compilers/imcc/imcc.l"
+#line 369 "compilers/imcc/imcc.l"
 return IF;
 	YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 367 "compilers/imcc/imcc.l"
+#line 370 "compilers/imcc/imcc.l"
 return UNLESS;
 	YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 368 "compilers/imcc/imcc.l"
+#line 371 "compilers/imcc/imcc.l"
 return PNULL;
 	YY_BREAK
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 369 "compilers/imcc/imcc.l"
+#line 372 "compilers/imcc/imcc.l"
 return INTV;
 	YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 370 "compilers/imcc/imcc.l"
+#line 373 "compilers/imcc/imcc.l"
 return FLOATV;
 	YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 372 "compilers/imcc/imcc.l"
+#line 375 "compilers/imcc/imcc.l"
 return PMCV;
 	YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 373 "compilers/imcc/imcc.l"
+#line 376 "compilers/imcc/imcc.l"
 return STRINGV;
 	YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 374 "compilers/imcc/imcc.l"
+#line 377 "compilers/imcc/imcc.l"
 return SHIFT_LEFT;
 	YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 375 "compilers/imcc/imcc.l"
+#line 378 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT;
 	YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 376 "compilers/imcc/imcc.l"
+#line 379 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT_U;
 	YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 377 "compilers/imcc/imcc.l"
+#line 380 "compilers/imcc/imcc.l"
 return LOG_AND;
 	YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 378 "compilers/imcc/imcc.l"
+#line 381 "compilers/imcc/imcc.l"
 return LOG_OR;
 	YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 379 "compilers/imcc/imcc.l"
+#line 382 "compilers/imcc/imcc.l"
 return LOG_XOR;
 	YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 380 "compilers/imcc/imcc.l"
+#line 383 "compilers/imcc/imcc.l"
 return RELOP_LT;
 	YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 381 "compilers/imcc/imcc.l"
+#line 384 "compilers/imcc/imcc.l"
 return RELOP_LTE;
 	YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 382 "compilers/imcc/imcc.l"
+#line 385 "compilers/imcc/imcc.l"
 return RELOP_GT;
 	YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 383 "compilers/imcc/imcc.l"
+#line 386 "compilers/imcc/imcc.l"
 return RELOP_GTE;
 	YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 384 "compilers/imcc/imcc.l"
+#line 387 "compilers/imcc/imcc.l"
 return RELOP_EQ;
 	YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 385 "compilers/imcc/imcc.l"
+#line 388 "compilers/imcc/imcc.l"
 return RELOP_NE;
 	YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 386 "compilers/imcc/imcc.l"
+#line 389 "compilers/imcc/imcc.l"
 return POW;
 	YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 388 "compilers/imcc/imcc.l"
+#line 391 "compilers/imcc/imcc.l"
 return CONCAT;
 	YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 389 "compilers/imcc/imcc.l"
+#line 392 "compilers/imcc/imcc.l"
 return DOT;
 	YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 391 "compilers/imcc/imcc.l"
+#line 394 "compilers/imcc/imcc.l"
 return PLUS_ASSIGN;
 	YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 392 "compilers/imcc/imcc.l"
+#line 395 "compilers/imcc/imcc.l"
 return MINUS_ASSIGN;
 	YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 393 "compilers/imcc/imcc.l"
+#line 396 "compilers/imcc/imcc.l"
 return MUL_ASSIGN;
 	YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 394 "compilers/imcc/imcc.l"
+#line 397 "compilers/imcc/imcc.l"
 return DIV_ASSIGN;
 	YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 395 "compilers/imcc/imcc.l"
+#line 398 "compilers/imcc/imcc.l"
 return MOD_ASSIGN;
 	YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 396 "compilers/imcc/imcc.l"
+#line 399 "compilers/imcc/imcc.l"
 return FDIV;
 	YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 397 "compilers/imcc/imcc.l"
+#line 400 "compilers/imcc/imcc.l"
 return FDIV_ASSIGN;
 	YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 398 "compilers/imcc/imcc.l"
+#line 401 "compilers/imcc/imcc.l"
 return BAND_ASSIGN;
 	YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 399 "compilers/imcc/imcc.l"
+#line 402 "compilers/imcc/imcc.l"
 return BOR_ASSIGN;
 	YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 400 "compilers/imcc/imcc.l"
+#line 403 "compilers/imcc/imcc.l"
 return BXOR_ASSIGN;
 	YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 401 "compilers/imcc/imcc.l"
+#line 404 "compilers/imcc/imcc.l"
 return SHR_ASSIGN;
 	YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 402 "compilers/imcc/imcc.l"
+#line 405 "compilers/imcc/imcc.l"
 return SHL_ASSIGN;
 	YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 403 "compilers/imcc/imcc.l"
+#line 406 "compilers/imcc/imcc.l"
 return SHR_U_ASSIGN;
 	YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 404 "compilers/imcc/imcc.l"
+#line 407 "compilers/imcc/imcc.l"
 return CONCAT_ASSIGN;
 	YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 406 "compilers/imcc/imcc.l"
+#line 409 "compilers/imcc/imcc.l"
 {
         char *macro_name   = NULL;
         int   start_cond   = YY_START;
@@ -3533,16 +3559,18 @@
         return MACRO;
     }
 	YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 449 "compilers/imcc/imcc.l"
+#line 452 "compilers/imcc/imcc.l"
 {
+        /* the initial whitespace catcher misses this one */
+        IMCC_INFO(interp)->line++;
         return read_macro(valp, interp, yyscanner);
     }
 	YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 453 "compilers/imcc/imcc.l"
+#line 458 "compilers/imcc/imcc.l"
 {
         const int c = yylex(valp,yyscanner,interp);
 
@@ -3555,9 +3583,9 @@
         include_file(interp, yytext + 1, yyscanner);
     }
 	YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 465 "compilers/imcc/imcc.l"
+#line 470 "compilers/imcc/imcc.l"
 {
         if (valp) {
             char *label;
@@ -3580,11 +3608,10 @@
         return LABEL;
     }
 	YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 487 "compilers/imcc/imcc.l"
+#line 492 "compilers/imcc/imcc.l"
 {
-
         if (valp) {
             char *label;
             size_t len;
@@ -3604,14 +3631,14 @@
         return IDENTIFIER;
      }
 	YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 508 "compilers/imcc/imcc.l"
+#line 512 "compilers/imcc/imcc.l"
 return COMMA;
 	YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 510 "compilers/imcc/imcc.l"
+#line 514 "compilers/imcc/imcc.l"
 {
         /* trim last ':' */
         YYCHOP();
@@ -3622,9 +3649,9 @@
         return LABEL;
     }
 	YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 520 "compilers/imcc/imcc.l"
+#line 524 "compilers/imcc/imcc.l"
 {
         char   * const macro_name = mem_sys_strdup(yytext + 1);
         int failed = expand_macro(interp, macro_name, yyscanner);
@@ -3635,34 +3662,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 536 "compilers/imcc/imcc.l"
+DUP_AND_RET(valp, FLOATC);
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 534 "compilers/imcc/imcc.l"
+#line 537 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 535 "compilers/imcc/imcc.l"
+#line 538 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 536 "compilers/imcc/imcc.l"
+#line 539 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 538 "compilers/imcc/imcc.l"
+#line 540 "compilers/imcc/imcc.l"
+DUP_AND_RET(valp, INTC);
+	YY_BREAK
+case 124:
+YY_RULE_SETUP
+#line 542 "compilers/imcc/imcc.l"
 {
         valp->s = mem_sys_strdup(yytext);
 
@@ -3673,18 +3700,18 @@
         return STRINGC;
     }
 	YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 548 "compilers/imcc/imcc.l"
+#line 552 "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 558 "compilers/imcc/imcc.l"
 {
         macro_frame_t *frame;
 
@@ -3713,9 +3740,9 @@
         yy_push_state(heredoc1, yyscanner);
     }
 	YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 582 "compilers/imcc/imcc.l"
+#line 586 "compilers/imcc/imcc.l"
 {
         /* charset:"..." */
         valp->s = mem_sys_strdup(yytext);
@@ -3724,9 +3751,9 @@
         return USTRINGC;
     }
 	YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 590 "compilers/imcc/imcc.l"
+#line 594 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3735,9 +3762,9 @@
         return IREG;
     }
 	YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 598 "compilers/imcc/imcc.l"
+#line 602 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3746,9 +3773,9 @@
         return NREG;
     }
 	YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 606 "compilers/imcc/imcc.l"
+#line 610 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3757,9 +3784,9 @@
         return SREG;
     }
 	YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 614 "compilers/imcc/imcc.l"
+#line 618 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3768,17 +3795,17 @@
         return PREG;
     }
 	YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 622 "compilers/imcc/imcc.l"
+#line 626 "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 631 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->state->pasm_file == 0)
             IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3790,52 +3817,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 643 "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 645 "compilers/imcc/imcc.l"
 /* skip */;
 	YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 669 "compilers/imcc/imcc.l"
+#line 647 "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 652 "compilers/imcc/imcc.l"
 {
         BEGIN(INITIAL);
 
@@ -3848,31 +3849,34 @@
     }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 685 "compilers/imcc/imcc.l"
+#line 663 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 687 "compilers/imcc/imcc.l"
-DUP_AND_RET(valp, ENDM);
-	YY_BREAK
 case 137:
-/* rule 137 can match eol */
 YY_RULE_SETUP
-#line 689 "compilers/imcc/imcc.l"
+#line 665 "compilers/imcc/imcc.l"
 {
+        /* the initial whitespace catcher misses this one */
         IMCC_INFO(interp)->line++;
+        DUP_AND_RET(valp, ENDM);
+}
+	YY_BREAK
+case 138:
+/* rule 138 can match eol */
+YY_RULE_SETUP
+#line 671 "compilers/imcc/imcc.l"
+{
         DUP_AND_RET(valp, '\n');
     }
 	YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 694 "compilers/imcc/imcc.l"
+#line 675 "compilers/imcc/imcc.l"
 return LABEL;
 	YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 696 "compilers/imcc/imcc.l"
+#line 677 "compilers/imcc/imcc.l"
 {
 
         if (yylex(valp,yyscanner,interp) != LABEL)
@@ -3897,9 +3901,9 @@
         return LABEL;
     }
 	YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 720 "compilers/imcc/imcc.l"
+#line 701 "compilers/imcc/imcc.l"
 {
     if (valp) {
         if (!IMCC_INFO(interp)->cur_macro_name) {
@@ -3928,51 +3932,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 729 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, ' ');
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 750 "compilers/imcc/imcc.l"
+#line 730 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 751 "compilers/imcc/imcc.l"
+#line 731 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 752 "compilers/imcc/imcc.l"
+#line 732 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, IDENTIFIER);
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 753 "compilers/imcc/imcc.l"
+#line 733 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, MACRO);
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 754 "compilers/imcc/imcc.l"
+#line 734 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, yytext[0]);
 	YY_BREAK
 case YY_STATE_EOF(macro):
-#line 755 "compilers/imcc/imcc.l"
+#line 735 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 757 "compilers/imcc/imcc.l"
+#line 737 "compilers/imcc/imcc.l"
 ECHO;
 	YY_BREAK
-#line 3976 "compilers/imcc/imclexer.c"
+#line 3975 "compilers/imcc/imclexer.c"
 case YY_STATE_EOF(pod):
 case YY_STATE_EOF(cmt1):
 case YY_STATE_EOF(cmt2):
@@ -4275,7 +4274,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 >= 1090 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4304,11 +4303,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 >= 1090 )
 			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 == 1089);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5174,7 +5173,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 757 "compilers/imcc/imcc.l"
+#line 737 "compilers/imcc/imcc.l"
 
 
 
@@ -5236,6 +5235,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 +5493,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 +5653,6 @@
             }
         }
 
-        /* let the normal EOF rules match line numbers */
-        IMCC_INFO(interp)->line = m->line - 1;
         scan_string(frame, m->expansion, yyscanner);
 
         return 1;
@@ -5710,7 +5707,8 @@
     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);
 }
@@ -5889,6 +5887,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/immutable_strings_part1/compilers/imcc/imcparser.c
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/imcparser.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/imcparser.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1184,125 +1184,248 @@
    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 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
+
 
 
 
@@ -1310,7 +1433,7 @@
 typedef union YYSTYPE
 {
 
-/* Line 222 of yacc.c  */
+/* Line 214 of yacc.c  */
 #line 1075 "compilers/imcc/imcc.y"
 
     IdList * idlist;
@@ -1321,8 +1444,8 @@
 
 
 
-/* Line 222 of yacc.c  */
-#line 1315 "compilers/imcc/imcparser.c"
+/* Line 214 of yacc.c  */
+#line 1438 "compilers/imcc/imcparser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1334,7 +1457,7 @@
 
 
 /* Line 264 of yacc.c  */
-#line 1327 "compilers/imcc/imcparser.c"
+#line 1450 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -1549,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.  */
@@ -1562,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)
@@ -1573,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,
@@ -1607,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
@@ -1654,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.  */
@@ -1797,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",
@@ -1863,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.  */
@@ -2031,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
@@ -2113,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)
@@ -3136,21 +3265,21 @@
 
 /* Line 1455 of yacc.c  */
 #line 1170 "compilers/imcc/imcc.y"
-    { if (yynerrs) YYABORT; (yyval.i) = 0; ;}
+    { if (yynerrs) YYABORT; (yyval.i) = 0; }
     break;
 
   case 5:
 
 /* Line 1455 of yacc.c  */
 #line 1179 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+    { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 6:
 
 /* Line 1455 of yacc.c  */
 #line 1180 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+    { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 7:
@@ -3161,7 +3290,7 @@
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = 0;
-         ;}
+         }
     break;
 
   case 8:
@@ -3172,42 +3301,42 @@
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = 0;
-         ;}
+         }
     break;
 
   case 9:
 
 /* Line 1455 of yacc.c  */
 #line 1193 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 10:
 
 /* Line 1455 of yacc.c  */
 #line 1194 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
 #line 1195 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 12:
 
 /* Line 1455 of yacc.c  */
 #line 1196 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 13:
 
 /* Line 1455 of yacc.c  */
 #line 1200 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 14:
@@ -3218,7 +3347,7 @@
            (yyval.i) = 0;
            do_loadlib(interp, (yyvsp[(2) - (3)].s));
            mem_sys_free((yyvsp[(2) - (3)].s));
-         ;}
+         }
     break;
 
   case 15:
@@ -3229,7 +3358,7 @@
            IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
            /* set_filename() frees the STRINGC */
            set_filename(interp, (yyvsp[(4) - (5)].s));
-         ;}
+         }
     break;
 
   case 16:
@@ -3239,7 +3368,7 @@
     {
            /* set_filename() frees the STRINGC */
            set_filename(interp, (yyvsp[(2) - (3)].s));
-         ;}
+         }
     break;
 
   case 17:
@@ -3252,7 +3381,7 @@
           SymReg * const key = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate", 2, key, (yyvsp[(4) - (4)].sr));
           mem_sys_free((yyvsp[(2) - (4)].s));
-        ;}
+        }
     break;
 
   case 18:
@@ -3267,14 +3396,14 @@
             IMCC_INFO(interp)->cur_namespace = NULL;
             mem_sys_free((yyvsp[(2) - (2)].s));
             (yyval.t) = 0;
-         ;}
+         }
     break;
 
   case 19:
 
 /* Line 1455 of yacc.c  */
 #line 1249 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 20:
@@ -3285,14 +3414,14 @@
              mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
              mem_sys_free((yyvsp[(4) - (6)].s));
              IMCC_INFO(interp)->is_def = 0;
-         ;}
+         }
     break;
 
   case 21:
 
 /* Line 1455 of yacc.c  */
 #line 1258 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 22:
@@ -3303,14 +3432,14 @@
            (yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
            mem_sys_free((yyvsp[(6) - (6)].s));
            IMCC_INFO(interp)->is_def = 0;
-         ;}
+         }
     break;
 
   case 23:
 
 /* Line 1455 of yacc.c  */
 #line 1265 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 24:
@@ -3322,49 +3451,49 @@
            mem_sys_free((yyvsp[(3) - (6)].s));
            mem_sys_free((yyvsp[(6) - (6)].s));
            IMCC_INFO(interp)->is_def = 0;
-         ;}
+         }
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
 #line 1284 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  ;}
+    { (yyval.i) = 0;  }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
 #line 1285 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  ;}
+    { (yyval.i) = 0;  }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
 #line 1286 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  ;}
+    { (yyval.i) = 0;  }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
 #line 1287 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  ;}
+    { (yyval.i) = 0;  }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
 #line 1288 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+    { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
 #line 1293 "compilers/imcc/imcc.y"
-    { clear_state(interp); ;}
+    { clear_state(interp); }
     break;
 
   case 37:
@@ -3376,7 +3505,7 @@
                     (yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
                     IMCC_INFO(interp)->nargs, IMCC_INFO(interp) -> keyvec, 1);
             mem_sys_free((yyvsp[(2) - (3)].s));
-         ;}
+         }
     break;
 
   case 38:
@@ -3386,7 +3515,7 @@
     {
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
-         ;}
+         }
     break;
 
   case 39:
@@ -3399,7 +3528,7 @@
                     mk_sub_label(interp, (yyvsp[(4) - (4)].s)));
            IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(3) - (4)].t);
            mem_sys_free((yyvsp[(4) - (4)].s));
-         ;}
+         }
     break;
 
   case 40:
@@ -3408,7 +3537,7 @@
 #line 1315 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
-         ;}
+         }
     break;
 
   case 41:
@@ -3426,21 +3555,21 @@
            mem_sys_free(name);
            mem_sys_free((yyvsp[(2) - (4)].s));
            mem_sys_free((yyvsp[(4) - (4)].s));
-         ;}
+         }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
 #line 1331 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;;}
+    { (yyval.i) = 0;}
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
 #line 1339 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); ;}
+    { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
     break;
 
   case 45:
@@ -3453,7 +3582,7 @@
                          emit_flush(interp);
            */
            (yyval.i) = 0;
-         ;}
+         }
     break;
 
   case 48:
@@ -3470,7 +3599,7 @@
            IMCC_INFO(interp)->cur_namespace = (yyvsp[(2) - (3)].sr);
            if (re_open)
                IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
-         ;}
+         }
     break;
 
   case 49:
@@ -3479,14 +3608,14 @@
 #line 1373 "compilers/imcc/imcc.y"
     {
             (yyval.sr) = (yyvsp[(2) - (3)].sr);
-        ;}
+        }
     break;
 
   case 50:
 
 /* Line 1455 of yacc.c  */
 #line 1376 "compilers/imcc/imcc.y"
-    { (yyval.sr) = NULL; ;}
+    { (yyval.sr) = NULL; }
     break;
 
   case 51:
@@ -3495,7 +3624,7 @@
 #line 1381 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
-         ;}
+         }
     break;
 
   case 52:
@@ -3504,7 +3633,7 @@
 #line 1385 "compilers/imcc/imcc.y"
     {
            iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
-         ;}
+         }
     break;
 
   case 53:
@@ -3517,28 +3646,28 @@
             IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = mem_sys_strdup(
             IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->name);
           }
-        ;}
+        }
     break;
 
   case 54:
 
 /* Line 1455 of yacc.c  */
 #line 1397 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 55:
 
 /* Line 1455 of yacc.c  */
 #line 1401 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 56:
 
 /* Line 1455 of yacc.c  */
 #line 1402 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 57:
@@ -3553,21 +3682,21 @@
            }
            else
                add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         ;}
+         }
     break;
 
   case 58:
 
 /* Line 1455 of yacc.c  */
 #line 1416 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 59:
 
 /* Line 1455 of yacc.c  */
 #line 1416 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; ;}
+    { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
     break;
 
   case 60:
@@ -3593,14 +3722,14 @@
                (yyval.sr) = mk_ident(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
            (yyval.sr)->type |= (yyvsp[(3) - (3)].t);
            mem_sys_free((yyvsp[(2) - (3)].s));
-          ;}
+          }
     break;
 
   case 61:
 
 /* Line 1455 of yacc.c  */
 #line 1446 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 62:
@@ -3611,7 +3740,7 @@
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
            mem_sys_free((yyvsp[(3) - (4)].s));
-         ;}
+         }
     break;
 
   case 63:
@@ -3622,7 +3751,7 @@
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
            mem_sys_free((yyvsp[(3) - (4)].s));
-         ;}
+         }
     break;
 
   case 64:
@@ -3633,7 +3762,7 @@
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = NULL;
            IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
-         ;}
+         }
     break;
 
   case 65:
@@ -3644,7 +3773,7 @@
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
-         ;}
+         }
     break;
 
   case 66:
@@ -3655,7 +3784,7 @@
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = NULL;
            IMCC_INFO(interp)->cur_unit->is_method   = 1;
-         ;}
+         }
     break;
 
   case 67:
@@ -3666,7 +3795,7 @@
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->is_method   = 1;
-         ;}
+         }
     break;
 
   case 68:
@@ -3677,7 +3806,7 @@
            (yyval.t) = P_NSENTRY;
            IMCC_INFO(interp)->cur_unit->ns_entry_name     = NULL;
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
-         ;}
+         }
     break;
 
   case 69:
@@ -3688,7 +3817,7 @@
            (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;
-         ;}
+         }
     break;
 
   case 70:
@@ -3698,7 +3827,7 @@
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
-         ;}
+         }
     break;
 
   case 71:
@@ -3708,7 +3837,7 @@
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = NULL;
-         ;}
+         }
     break;
 
   case 72:
@@ -3720,7 +3849,7 @@
            IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = str_dup_remove_quotes((yyvsp[(3) - (4)].s));
            mem_sys_free((yyvsp[(3) - (4)].s));
-         ;}
+         }
     break;
 
   case 73:
@@ -3729,7 +3858,7 @@
 #line 1534 "compilers/imcc/imcc.y"
     {
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
-         ;}
+         }
     break;
 
   case 74:
@@ -3739,7 +3868,7 @@
     {
            (yyval.t) = 0;
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         ;}
+         }
     break;
 
   case 75:
@@ -3749,35 +3878,35 @@
     {
            (yyval.t) = 0;
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         ;}
+         }
     break;
 
   case 76:
 
 /* Line 1455 of yacc.c  */
 #line 1550 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); ;}
+    { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); }
     break;
 
   case 77:
 
 /* Line 1455 of yacc.c  */
 #line 1551 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); ;}
+    { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
     break;
 
   case 78:
 
 /* Line 1455 of yacc.c  */
 #line 1552 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "PMC",      'S'); ;}
+    { (yyval.sr) = mk_const(interp, "PMC",      'S'); }
     break;
 
   case 79:
 
 /* Line 1455 of yacc.c  */
 #line 1553 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "STRING",   'S'); ;}
+    { (yyval.sr) = mk_const(interp, "STRING",   'S'); }
     break;
 
   case 80:
@@ -3793,7 +3922,7 @@
            }
            mem_sys_free((yyvsp[(1) - (1)].s));
            (yyval.sr) = r;
-         ;}
+         }
     break;
 
   case 81:
@@ -3809,14 +3938,14 @@
            }
            mem_sys_free((yyvsp[(1) - (1)].s));
            (yyval.sr) = r;
-         ;}
+         }
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
 #line 1576 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); ;}
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 85:
@@ -3845,112 +3974,112 @@
            r1 = IMCC_INFO(interp)->cur_unit->instructions->symregs[0];
            if (r1 && r1->pcc_sub)
                r1->pcc_sub->calls_a_sub |= 1;
-         ;}
+         }
     break;
 
   case 86:
 
 /* Line 1455 of yacc.c  */
 #line 1614 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 87:
 
 /* Line 1455 of yacc.c  */
 #line 1618 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; ;}
+    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
     break;
 
   case 88:
 
 /* Line 1455 of yacc.c  */
 #line 1619 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; ;}
+    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
     break;
 
   case 89:
 
 /* Line 1455 of yacc.c  */
 #line 1623 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; ;}
+    { (yyval.i) = NULL; }
     break;
 
   case 90:
 
 /* Line 1455 of yacc.c  */
 #line 1624 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); ;}
+    { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 91:
 
 /* Line 1455 of yacc.c  */
 #line 1628 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 93:
 
 /* Line 1455 of yacc.c  */
 #line 1633 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (1)].t); ;}
+    { (yyval.t) = (yyvsp[(1) - (1)].t); }
     break;
 
   case 94:
 
 /* Line 1455 of yacc.c  */
 #line 1634 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 95:
 
 /* Line 1455 of yacc.c  */
 #line 1638 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_LOAD; ;}
+    { (yyval.t) = P_LOAD; }
     break;
 
   case 96:
 
 /* Line 1455 of yacc.c  */
 #line 1639 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_INIT; ;}
+    { (yyval.t) = P_INIT; }
     break;
 
   case 97:
 
 /* Line 1455 of yacc.c  */
 #line 1640 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_MAIN; ;}
+    { (yyval.t) = P_MAIN; }
     break;
 
   case 98:
 
 /* Line 1455 of yacc.c  */
 #line 1641 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_IMMEDIATE; ;}
+    { (yyval.t) = P_IMMEDIATE; }
     break;
 
   case 99:
 
 /* Line 1455 of yacc.c  */
 #line 1642 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_POSTCOMP; ;}
+    { (yyval.t) = P_POSTCOMP; }
     break;
 
   case 100:
 
 /* Line 1455 of yacc.c  */
 #line 1643 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_ANON; ;}
+    { (yyval.t) = P_ANON; }
     break;
 
   case 101:
 
 /* Line 1455 of yacc.c  */
 #line 1644 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_NEED_LEX; ;}
+    { (yyval.t) = P_NEED_LEX; }
     break;
 
   case 109:
@@ -3960,7 +4089,7 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
-         ;}
+         }
     break;
 
   case 110:
@@ -3969,7 +4098,7 @@
 #line 1661 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         ;}
+         }
     break;
 
   case 111:
@@ -3979,7 +4108,7 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
-         ;}
+         }
     break;
 
   case 112:
@@ -3988,7 +4117,7 @@
 #line 1670 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         ;}
+         }
     break;
 
   case 113:
@@ -3997,7 +4126,7 @@
 #line 1674 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
-         ;}
+         }
     break;
 
   case 114:
@@ -4007,7 +4136,7 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
-         ;}
+         }
     break;
 
   case 115:
@@ -4017,35 +4146,35 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
-         ;}
+         }
     break;
 
   case 116:
 
 /* Line 1455 of yacc.c  */
 #line 1691 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 117:
 
 /* Line 1455 of yacc.c  */
 #line 1692 "compilers/imcc/imcc.y"
-    { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); ;}
+    { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
     break;
 
   case 118:
 
 /* Line 1455 of yacc.c  */
 #line 1696 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (2)].sr); ;}
+    { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
     break;
 
   case 119:
 
 /* Line 1455 of yacc.c  */
 #line 1701 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 120:
@@ -4055,21 +4184,21 @@
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         ;}
+         }
     break;
 
   case 121:
 
 /* Line 1455 of yacc.c  */
 #line 1710 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 122:
 
 /* Line 1455 of yacc.c  */
 #line 1711 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 123:
@@ -4086,91 +4215,91 @@
            UNUSED(ignored);
            IMCC_INFO(interp)->is_def = 0;
            (yyval.sr) = 0;
-         ;}
+         }
     break;
 
   case 124:
 
 /* Line 1455 of yacc.c  */
 #line 1726 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 125:
 
 /* Line 1455 of yacc.c  */
 #line 1727 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 126:
 
 /* Line 1455 of yacc.c  */
 #line 1731 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_FLAT;   ;}
+    { (yyval.t) = VT_FLAT;   }
     break;
 
   case 127:
 
 /* Line 1455 of yacc.c  */
 #line 1732 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_OPTIONAL; ;}
+    { (yyval.t) = VT_OPTIONAL; }
     break;
 
   case 128:
 
 /* Line 1455 of yacc.c  */
 #line 1733 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_OPT_FLAG; ;}
+    { (yyval.t) = VT_OPT_FLAG; }
     break;
 
   case 129:
 
 /* Line 1455 of yacc.c  */
 #line 1734 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_NAMED; ;}
+    { (yyval.t) = VT_NAMED; }
     break;
 
   case 130:
 
 /* Line 1455 of yacc.c  */
 #line 1735 "compilers/imcc/imcc.y"
-    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
+    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
     break;
 
   case 131:
 
 /* Line 1455 of yacc.c  */
 #line 1736 "compilers/imcc/imcc.y"
-    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
+    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
     break;
 
   case 132:
 
 /* Line 1455 of yacc.c  */
 #line 1737 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_UNIQUE_REG; ;}
+    { (yyval.t) = VT_UNIQUE_REG; }
     break;
 
   case 133:
 
 /* Line 1455 of yacc.c  */
 #line 1738 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_CALL_SIG; ;}
+    { (yyval.t) = VT_CALL_SIG; }
     break;
 
   case 134:
 
 /* Line 1455 of yacc.c  */
 #line 1743 "compilers/imcc/imcc.y"
-    { begin_return_or_yield(interp, 0); ;}
+    { begin_return_or_yield(interp, 0); }
     break;
 
   case 135:
 
 /* Line 1455 of yacc.c  */
 #line 1745 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
+    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 136:
@@ -4180,28 +4309,28 @@
     {
            IMCC_INFO(interp)->asm_state = AsmDefault;
            (yyval.i) = 0;
-         ;}
+         }
     break;
 
   case 137:
 
 /* Line 1455 of yacc.c  */
 #line 1754 "compilers/imcc/imcc.y"
-    { begin_return_or_yield(interp, 1); ;}
+    { begin_return_or_yield(interp, 1); }
     break;
 
   case 138:
 
 /* Line 1455 of yacc.c  */
 #line 1756 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
+    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 139:
 
 /* Line 1455 of yacc.c  */
 #line 1760 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 140:
@@ -4211,7 +4340,7 @@
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
-         ;}
+         }
     break;
 
   case 141:
@@ -4221,14 +4350,14 @@
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
-         ;}
+         }
     break;
 
   case 142:
 
 /* Line 1455 of yacc.c  */
 #line 1774 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 143:
@@ -4238,7 +4367,7 @@
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
-         ;}
+         }
     break;
 
   case 144:
@@ -4248,21 +4377,21 @@
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
-         ;}
+         }
     break;
 
   case 145:
 
 /* Line 1455 of yacc.c  */
 #line 1788 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 146:
 
 /* Line 1455 of yacc.c  */
 #line 1792 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 147:
@@ -4272,7 +4401,7 @@
     {
           if (IMCC_INFO(interp)->asm_state == AsmDefault)
               begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
-        ;}
+        }
     break;
 
   case 148:
@@ -4282,28 +4411,28 @@
     {
           IMCC_INFO(interp)->asm_state = AsmDefault;
           (yyval.t) = 0;
-        ;}
+        }
     break;
 
   case 149:
 
 /* Line 1455 of yacc.c  */
 #line 1809 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 150:
 
 /* Line 1455 of yacc.c  */
 #line 1810 "compilers/imcc/imcc.y"
-    { (yyval.t) = 1; ;}
+    { (yyval.t) = 1; }
     break;
 
   case 151:
 
 /* Line 1455 of yacc.c  */
 #line 1814 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 152:
@@ -4318,7 +4447,7 @@
            }
            else
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (1)].sr));
-         ;}
+         }
     break;
 
   case 153:
@@ -4328,7 +4457,7 @@
     {
             SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
             add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
-         ;}
+         }
     break;
 
   case 154:
@@ -4343,7 +4472,7 @@
              }
              else
                  add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (3)].sr));
-         ;}
+         }
     break;
 
   case 155:
@@ -4353,63 +4482,63 @@
     {
            SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
-         ;}
+         }
     break;
 
   case 158:
 
 /* Line 1455 of yacc.c  */
 #line 1862 "compilers/imcc/imcc.y"
-    { clear_state(interp); ;}
+    { clear_state(interp); }
     break;
 
   case 159:
 
 /* Line 1455 of yacc.c  */
 #line 1867 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (2)].i); ;}
+    { (yyval.i) = (yyvsp[(2) - (2)].i); }
     break;
 
   case 160:
 
 /* Line 1455 of yacc.c  */
 #line 1868 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 161:
 
 /* Line 1455 of yacc.c  */
 #line 1869 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 162:
 
 /* Line 1455 of yacc.c  */
 #line 1870 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 163:
 
 /* Line 1455 of yacc.c  */
 #line 1871 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 164:
 
 /* Line 1455 of yacc.c  */
 #line 1872 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+    { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 165:
 
 /* Line 1455 of yacc.c  */
 #line 1876 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; ;}
+    { (yyval.i) = NULL; }
     break;
 
   case 169:
@@ -4420,14 +4549,14 @@
              Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
              mem_sys_free((yyvsp[(1) - (1)].s));
              (yyval.i) = i;
-         ;}
+         }
     break;
 
   case 170:
 
 /* Line 1455 of yacc.c  */
 #line 1897 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (3)].i); ;}
+    { (yyval.i) = (yyvsp[(2) - (3)].i); }
     break;
 
   case 171:
@@ -4440,7 +4569,7 @@
                YYABORT;
            }
            yyerrok;
-         ;}
+         }
     break;
 
   case 172:
@@ -4451,7 +4580,7 @@
            IdList* const l = (yyvsp[(1) - (1)].idlist);
            l->next = NULL;
            (yyval.idlist) = l;
-         ;}
+         }
     break;
 
   case 173:
@@ -4462,7 +4591,7 @@
            IdList* const l = (yyvsp[(3) - (3)].idlist);
            l->next = (yyvsp[(1) - (3)].idlist);
            (yyval.idlist) = l;
-         ;}
+         }
     break;
 
   case 174:
@@ -4474,28 +4603,28 @@
            l->id           = (yyvsp[(1) - (2)].s);
            l->unique_reg   = (yyvsp[(2) - (2)].t);
            (yyval.idlist) = l;
-         ;}
+         }
     break;
 
   case 175:
 
 /* Line 1455 of yacc.c  */
 #line 1935 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 176:
 
 /* Line 1455 of yacc.c  */
 #line 1936 "compilers/imcc/imcc.y"
-    { (yyval.t) = 1; ;}
+    { (yyval.t) = 1; }
     break;
 
   case 179:
 
 /* Line 1455 of yacc.c  */
 #line 1943 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 180:
@@ -4516,7 +4645,7 @@
                mem_sys_free(l1);
            }
            IMCC_INFO(interp)->is_def = 0; (yyval.i) = 0;
-         ;}
+         }
     break;
 
   case 181:
@@ -4538,7 +4667,7 @@
                mem_sys_free((yyvsp[(2) - (4)].s));
                mem_sys_free(name);
             }
-         ;}
+         }
     break;
 
   case 182:
@@ -4556,14 +4685,14 @@
                set_lexical(interp, (yyvsp[(4) - (4)].sr), n); (yyval.i) = 0;
                mem_sys_free((yyvsp[(2) - (4)].s));
             }
-         ;}
+         }
     break;
 
   case 183:
 
 /* Line 1455 of yacc.c  */
 #line 1989 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 184:
@@ -4574,14 +4703,14 @@
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
            IMCC_INFO(interp)->is_def = 0;
            mem_sys_free((yyvsp[(4) - (6)].s));
-         ;}
+         }
     break;
 
   case 186:
 
 /* Line 1455 of yacc.c  */
 #line 1997 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; ;}
+    { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 187:
@@ -4592,7 +4721,7 @@
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
            IMCC_INFO(interp)->is_def = 0;
            mem_sys_free((yyvsp[(4) - (6)].s));
-         ;}
+         }
     break;
 
   case 188:
@@ -4603,7 +4732,7 @@
            (yyval.i) = NULL;
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
            IMCC_INFO(interp)->cur_call = NULL;
-         ;}
+         }
     break;
 
   case 189:
@@ -4612,7 +4741,7 @@
 #line 2010 "compilers/imcc/imcc.y"
     {
             (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
-         ;}
+         }
     break;
 
   case 190:
@@ -4629,63 +4758,63 @@
                     IMCC_INFO(interp)->keyvec,
                     1);
            mem_sys_free((yyvsp[(1) - (2)].s));
-         ;}
+         }
     break;
 
   case 191:
 
 /* Line 1455 of yacc.c  */
 #line 2025 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); ;}
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
     break;
 
   case 192:
 
 /* Line 1455 of yacc.c  */
 #line 2026 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 193:
 
 /* Line 1455 of yacc.c  */
 #line 2027 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; ;}
+    { (yyval.i) = 0; }
     break;
 
   case 196:
 
 /* Line 1455 of yacc.c  */
 #line 2030 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;;}
+    { (yyval.i) = 0;}
     break;
 
   case 197:
 
 /* Line 1455 of yacc.c  */
 #line 2034 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'I'; ;}
+    { (yyval.t) = 'I'; }
     break;
 
   case 198:
 
 /* Line 1455 of yacc.c  */
 #line 2035 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'N'; ;}
+    { (yyval.t) = 'N'; }
     break;
 
   case 199:
 
 /* Line 1455 of yacc.c  */
 #line 2036 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'S'; ;}
+    { (yyval.t) = 'S'; }
     break;
 
   case 200:
 
 /* Line 1455 of yacc.c  */
 #line 2037 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'P'; ;}
+    { (yyval.t) = 'P'; }
     break;
 
   case 201:
@@ -4700,49 +4829,49 @@
                IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
                     "Unknown PMC type '%s'\n", (yyvsp[(1) - (1)].s));
            }
-         ;}
+         }
     break;
 
   case 202:
 
 /* Line 1455 of yacc.c  */
 #line 2055 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  ;}
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  }
     break;
 
   case 203:
 
 /* Line 1455 of yacc.c  */
 #line 2057 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  ;}
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  }
     break;
 
   case 204:
 
 /* Line 1455 of yacc.c  */
 #line 2059 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); ;}
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
     break;
 
   case 205:
 
 /* Line 1455 of yacc.c  */
 #line 2061 "compilers/imcc/imcc.y"
-    { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); ;}
+    { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
     break;
 
   case 206:
 
 /* Line 1455 of yacc.c  */
 #line 2063 "compilers/imcc/imcc.y"
-    { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); ;}
+    { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 207:
 
 /* Line 1455 of yacc.c  */
 #line 2068 "compilers/imcc/imcc.y"
-    { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); ;}
+    { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
     break;
 
   case 208:
@@ -4753,7 +4882,7 @@
            add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
            (yyval.i) = 0;
-         ;}
+         }
     break;
 
   case 209:
@@ -4762,7 +4891,7 @@
 #line 2077 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
-         ;}
+         }
     break;
 
   case 210:
@@ -4772,7 +4901,7 @@
     {
            IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
-         ;}
+         }
     break;
 
   case 214:
@@ -4781,189 +4910,189 @@
 #line 2089 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
-         ;}
+         }
     break;
 
   case 215:
 
 /* Line 1455 of yacc.c  */
 #line 2096 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"not"; ;}
+    { (yyval.s) = (char *)"not"; }
     break;
 
   case 216:
 
 /* Line 1455 of yacc.c  */
 #line 2097 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bnot"; ;}
+    { (yyval.s) = (char *)"bnot"; }
     break;
 
   case 217:
 
 /* Line 1455 of yacc.c  */
 #line 2098 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"neg"; ;}
+    { (yyval.s) = (char *)"neg"; }
     break;
 
   case 218:
 
 /* Line 1455 of yacc.c  */
 #line 2102 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"sub"; ;}
+    { (yyval.s) = (char *)"sub"; }
     break;
 
   case 219:
 
 /* Line 1455 of yacc.c  */
 #line 2103 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"add"; ;}
+    { (yyval.s) = (char *)"add"; }
     break;
 
   case 220:
 
 /* Line 1455 of yacc.c  */
 #line 2104 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mul"; ;}
+    { (yyval.s) = (char *)"mul"; }
     break;
 
   case 221:
 
 /* Line 1455 of yacc.c  */
 #line 2105 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"div"; ;}
+    { (yyval.s) = (char *)"div"; }
     break;
 
   case 222:
 
 /* Line 1455 of yacc.c  */
 #line 2106 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mod"; ;}
+    { (yyval.s) = (char *)"mod"; }
     break;
 
   case 223:
 
 /* Line 1455 of yacc.c  */
 #line 2107 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"fdiv"; ;}
+    { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 224:
 
 /* Line 1455 of yacc.c  */
 #line 2108 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"pow"; ;}
+    { (yyval.s) = (char *)"pow"; }
     break;
 
   case 225:
 
 /* Line 1455 of yacc.c  */
 #line 2109 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"concat"; ;}
+    { (yyval.s) = (char *)"concat"; }
     break;
 
   case 226:
 
 /* Line 1455 of yacc.c  */
 #line 2110 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"iseq"; ;}
+    { (yyval.s) = (char *)"iseq"; }
     break;
 
   case 227:
 
 /* Line 1455 of yacc.c  */
 #line 2111 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isne"; ;}
+    { (yyval.s) = (char *)"isne"; }
     break;
 
   case 228:
 
 /* Line 1455 of yacc.c  */
 #line 2112 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isgt"; ;}
+    { (yyval.s) = (char *)"isgt"; }
     break;
 
   case 229:
 
 /* Line 1455 of yacc.c  */
 #line 2113 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isge"; ;}
+    { (yyval.s) = (char *)"isge"; }
     break;
 
   case 230:
 
 /* Line 1455 of yacc.c  */
 #line 2114 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"islt"; ;}
+    { (yyval.s) = (char *)"islt"; }
     break;
 
   case 231:
 
 /* Line 1455 of yacc.c  */
 #line 2115 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isle"; ;}
+    { (yyval.s) = (char *)"isle"; }
     break;
 
   case 232:
 
 /* Line 1455 of yacc.c  */
 #line 2116 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shl"; ;}
+    { (yyval.s) = (char *)"shl"; }
     break;
 
   case 233:
 
 /* Line 1455 of yacc.c  */
 #line 2117 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shr"; ;}
+    { (yyval.s) = (char *)"shr"; }
     break;
 
   case 234:
 
 /* Line 1455 of yacc.c  */
 #line 2118 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lsr"; ;}
+    { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 235:
 
 /* Line 1455 of yacc.c  */
 #line 2119 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"and"; ;}
+    { (yyval.s) = (char *)"and"; }
     break;
 
   case 236:
 
 /* Line 1455 of yacc.c  */
 #line 2120 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"or"; ;}
+    { (yyval.s) = (char *)"or"; }
     break;
 
   case 237:
 
 /* Line 1455 of yacc.c  */
 #line 2121 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"xor"; ;}
+    { (yyval.s) = (char *)"xor"; }
     break;
 
   case 238:
 
 /* Line 1455 of yacc.c  */
 #line 2122 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"band"; ;}
+    { (yyval.s) = (char *)"band"; }
     break;
 
   case 239:
 
 /* Line 1455 of yacc.c  */
 #line 2123 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bor"; ;}
+    { (yyval.s) = (char *)"bor"; }
     break;
 
   case 240:
 
 /* Line 1455 of yacc.c  */
 #line 2124 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bxor"; ;}
+    { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 241:
@@ -4974,112 +5103,112 @@
            (yyval.i) = IMCC_create_itcall_label(interp);
            (yyval.i)->type &= ~ITCALL;
            (yyval.i)->type |= ITRESULT;
-         ;}
+         }
     break;
 
   case 242:
 
 /* Line 1455 of yacc.c  */
 #line 2135 "compilers/imcc/imcc.y"
-    {  (yyval.i) = 0; ;}
+    {  (yyval.i) = 0; }
     break;
 
   case 243:
 
 /* Line 1455 of yacc.c  */
 #line 2142 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); ;}
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
     break;
 
   case 244:
 
 /* Line 1455 of yacc.c  */
 #line 2146 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"add"; ;}
+    { (yyval.s) = (char *)"add"; }
     break;
 
   case 245:
 
 /* Line 1455 of yacc.c  */
 #line 2147 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"sub"; ;}
+    { (yyval.s) = (char *)"sub"; }
     break;
 
   case 246:
 
 /* Line 1455 of yacc.c  */
 #line 2148 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mul"; ;}
+    { (yyval.s) = (char *)"mul"; }
     break;
 
   case 247:
 
 /* Line 1455 of yacc.c  */
 #line 2149 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"div"; ;}
+    { (yyval.s) = (char *)"div"; }
     break;
 
   case 248:
 
 /* Line 1455 of yacc.c  */
 #line 2150 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mod"; ;}
+    { (yyval.s) = (char *)"mod"; }
     break;
 
   case 249:
 
 /* Line 1455 of yacc.c  */
 #line 2151 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"fdiv"; ;}
+    { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 250:
 
 /* Line 1455 of yacc.c  */
 #line 2152 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"concat"; ;}
+    { (yyval.s) = (char *)"concat"; }
     break;
 
   case 251:
 
 /* Line 1455 of yacc.c  */
 #line 2153 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"band"; ;}
+    { (yyval.s) = (char *)"band"; }
     break;
 
   case 252:
 
 /* Line 1455 of yacc.c  */
 #line 2154 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bor"; ;}
+    { (yyval.s) = (char *)"bor"; }
     break;
 
   case 253:
 
 /* Line 1455 of yacc.c  */
 #line 2155 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bxor"; ;}
+    { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 254:
 
 /* Line 1455 of yacc.c  */
 #line 2156 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shr"; ;}
+    { (yyval.s) = (char *)"shr"; }
     break;
 
   case 255:
 
 /* Line 1455 of yacc.c  */
 #line 2157 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shl"; ;}
+    { (yyval.s) = (char *)"shl"; }
     break;
 
   case 256:
 
 /* Line 1455 of yacc.c  */
 #line 2158 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lsr"; ;}
+    { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 257:
@@ -5092,28 +5221,28 @@
                       IMCC_INFO(interp) -> nargs,
                       IMCC_INFO(interp) -> keyvec, 1);
          mem_sys_free((yyvsp[(3) - (4)].s));
-       ;}
+       }
     break;
 
   case 258:
 
 /* Line 1455 of yacc.c  */
 #line 2174 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));       mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));       mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 259:
 
 /* Line 1455 of yacc.c  */
 #line 2175 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 260:
 
 /* Line 1455 of yacc.c  */
 #line 2176 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));     mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));     mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 261:
@@ -5124,7 +5253,7 @@
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
            if ((yyvsp[(1) - (1)].sr)->set != 'P')
                IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, "Sub isn't a PMC");
-         ;}
+         }
     break;
 
   case 262:
@@ -5143,7 +5272,7 @@
 
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = (yyvsp[(3) - (3)].sr);
-        ;}
+        }
     break;
 
   case 263:
@@ -5154,7 +5283,7 @@
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
             mem_sys_free((yyvsp[(3) - (3)].s));
-         ;}
+         }
     break;
 
   case 264:
@@ -5165,14 +5294,14 @@
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
             mem_sys_free((yyvsp[(3) - (3)].s));
-         ;}
+         }
     break;
 
   case 265:
 
 /* Line 1455 of yacc.c  */
 #line 2209 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); ;}
+    { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
     break;
 
   case 266:
@@ -5182,21 +5311,21 @@
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
-         ;}
+         }
     break;
 
   case 267:
 
 /* Line 1455 of yacc.c  */
 #line 2219 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (5)].i); ;}
+    { (yyval.i) = (yyvsp[(2) - (5)].i); }
     break;
 
   case 268:
 
 /* Line 1455 of yacc.c  */
 #line 2223 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 269:
@@ -5211,7 +5340,7 @@
            }
            else
                add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         ;}
+         }
     break;
 
   case 270:
@@ -5226,7 +5355,7 @@
            }
            else
                add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         ;}
+         }
     break;
 
   case 271:
@@ -5238,7 +5367,7 @@
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
                 mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
            mem_sys_free((yyvsp[(3) - (5)].s));
-         ;}
+         }
     break;
 
   case 272:
@@ -5248,7 +5377,7 @@
     {
            (yyval.sr) = 0;
            add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
-         ;}
+         }
     break;
 
   case 273:
@@ -5260,70 +5389,70 @@
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
                 mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
-         ;}
+         }
     break;
 
   case 274:
 
 /* Line 1455 of yacc.c  */
 #line 2266 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
+    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 275:
 
 /* Line 1455 of yacc.c  */
 #line 2270 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 276:
 
 /* Line 1455 of yacc.c  */
 #line 2271 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 277:
 
 /* Line 1455 of yacc.c  */
 #line 2275 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_FLAT;     ;}
+    { (yyval.t) = VT_FLAT;     }
     break;
 
   case 278:
 
 /* Line 1455 of yacc.c  */
 #line 2276 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_NAMED;    ;}
+    { (yyval.t) = VT_NAMED;    }
     break;
 
   case 279:
 
 /* Line 1455 of yacc.c  */
 #line 2277 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_CALL_SIG; ;}
+    { (yyval.t) = VT_CALL_SIG; }
     break;
 
   case 280:
 
 /* Line 1455 of yacc.c  */
 #line 2280 "compilers/imcc/imcc.y"
-    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; ;}
+    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
     break;
 
   case 281:
 
 /* Line 1455 of yacc.c  */
 #line 2281 "compilers/imcc/imcc.y"
-    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; ;}
+    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; }
     break;
 
   case 282:
 
 /* Line 1455 of yacc.c  */
 #line 2285 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
+    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 283:
@@ -5338,7 +5467,7 @@
            }
            else
                add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         ;}
+         }
     break;
 
   case 284:
@@ -5349,7 +5478,7 @@
             add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
                     mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
             mem_sys_free((yyvsp[(3) - (5)].s));
-         ;}
+         }
     break;
 
   case 285:
@@ -5364,7 +5493,7 @@
            }
            else
                add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         ;}
+         }
     break;
 
   case 286:
@@ -5374,28 +5503,28 @@
     {
            add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
-         ;}
+         }
     break;
 
   case 287:
 
 /* Line 1455 of yacc.c  */
 #line 2320 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; ;}
+    { (yyval.sr) = 0; }
     break;
 
   case 288:
 
 /* Line 1455 of yacc.c  */
 #line 2324 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+    { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 289:
 
 /* Line 1455 of yacc.c  */
 #line 2325 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+    { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 290:
@@ -5404,7 +5533,7 @@
 #line 2330 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
-         ;}
+         }
     break;
 
   case 291:
@@ -5413,7 +5542,7 @@
 #line 2334 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
-         ;}
+         }
     break;
 
   case 292:
@@ -5422,7 +5551,7 @@
 #line 2338 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
-         ;}
+         }
     break;
 
   case 293:
@@ -5431,7 +5560,7 @@
 #line 2345 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
-         ;}
+         }
     break;
 
   case 294:
@@ -5440,7 +5569,7 @@
 #line 2349 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
-         ;}
+         }
     break;
 
   case 295:
@@ -5449,91 +5578,91 @@
 #line 2353 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
-         ;}
+         }
     break;
 
   case 296:
 
 /* Line 1455 of yacc.c  */
 #line 2359 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 297:
 
 /* Line 1455 of yacc.c  */
 #line 2360 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; ;}
+    { (yyval.t) = 0; }
     break;
 
   case 298:
 
 /* Line 1455 of yacc.c  */
 #line 2364 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"eq"; ;}
+    { (yyval.s) = (char *)"eq"; }
     break;
 
   case 299:
 
 /* Line 1455 of yacc.c  */
 #line 2365 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"ne"; ;}
+    { (yyval.s) = (char *)"ne"; }
     break;
 
   case 300:
 
 /* Line 1455 of yacc.c  */
 #line 2366 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"gt"; ;}
+    { (yyval.s) = (char *)"gt"; }
     break;
 
   case 301:
 
 /* Line 1455 of yacc.c  */
 #line 2367 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"ge"; ;}
+    { (yyval.s) = (char *)"ge"; }
     break;
 
   case 302:
 
 /* Line 1455 of yacc.c  */
 #line 2368 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lt"; ;}
+    { (yyval.s) = (char *)"lt"; }
     break;
 
   case 303:
 
 /* Line 1455 of yacc.c  */
 #line 2369 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"le"; ;}
+    { (yyval.s) = (char *)"le"; }
     break;
 
   case 306:
 
 /* Line 1455 of yacc.c  */
 #line 2378 "compilers/imcc/imcc.y"
-    { (yyval.sr) = NULL; ;}
+    { (yyval.sr) = NULL; }
     break;
 
   case 307:
 
 /* Line 1455 of yacc.c  */
 #line 2379 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (1)].sr); ;}
+    { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 308:
 
 /* Line 1455 of yacc.c  */
 #line 2383 "compilers/imcc/imcc.y"
-    { (yyval.sr) = IMCC_INFO(interp)->regs[0]; ;}
+    { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
     break;
 
   case 310:
 
 /* Line 1455 of yacc.c  */
 #line 2388 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); ;}
+    { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 311:
@@ -5545,7 +5674,7 @@
            IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(3) - (4)].sr);
            (yyval.sr) = (yyvsp[(1) - (4)].sr);
-         ;}
+         }
     break;
 
   case 312:
@@ -5555,49 +5684,49 @@
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
            (yyval.sr) = (yyvsp[(2) - (3)].sr);
-         ;}
+         }
     break;
 
   case 314:
 
 /* Line 1455 of yacc.c  */
 #line 2404 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 315:
 
 /* Line 1455 of yacc.c  */
 #line 2405 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 316:
 
 /* Line 1455 of yacc.c  */
 #line 2409 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 317:
 
 /* Line 1455 of yacc.c  */
 #line 2410 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 318:
 
 /* Line 1455 of yacc.c  */
 #line 2414 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 319:
 
 /* Line 1455 of yacc.c  */
 #line 2415 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 324:
@@ -5606,7 +5735,7 @@
 #line 2429 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
-         ;}
+         }
     break;
 
   case 325:
@@ -5617,7 +5746,7 @@
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
                           IMCC_INFO(interp)->keys, 0);
-         ;}
+         }
     break;
 
   case 326:
@@ -5626,7 +5755,7 @@
 #line 2441 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys = 0;
-         ;}
+         }
     break;
 
   case 327:
@@ -5637,14 +5766,14 @@
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
                           IMCC_INFO(interp)->keys, 1);
-         ;}
+         }
     break;
 
   case 328:
 
 /* Line 1455 of yacc.c  */
 #line 2453 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); ;}
+    { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 329:
@@ -5654,7 +5783,7 @@
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
            (yyval.sr) = IMCC_INFO(interp)->keys[0];
-         ;}
+         }
     break;
 
   case 330:
@@ -5663,76 +5792,76 @@
 #line 2463 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
-         ;}
+         }
     break;
 
   case 331:
 
 /* Line 1455 of yacc.c  */
 #line 2469 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); ;}
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
     break;
 
   case 332:
 
 /* Line 1455 of yacc.c  */
 #line 2470 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); ;}
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
     break;
 
   case 333:
 
 /* Line 1455 of yacc.c  */
 #line 2471 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); ;}
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
     break;
 
   case 334:
 
 /* Line 1455 of yacc.c  */
 #line 2472 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); ;}
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
     break;
 
   case 335:
 
 /* Line 1455 of yacc.c  */
 #line 2473 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 336:
 
 /* Line 1455 of yacc.c  */
 #line 2477 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 337:
 
 /* Line 1455 of yacc.c  */
 #line 2478 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 338:
 
 /* Line 1455 of yacc.c  */
 #line 2479 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 339:
 
 /* Line 1455 of yacc.c  */
 #line 2480 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
 
 
 /* Line 1455 of yacc.c  */
-#line 5725 "compilers/imcc/imcparser.c"
+#line 5854 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5972,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/immutable_strings_part1/compilers/imcc/imcparser.h
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/imcparser.h	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/imcparser.h	Wed Apr 21 09:44:01 2010	(r45849)
@@ -52,125 +52,248 @@
    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 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
+
 
 
 
@@ -178,7 +301,7 @@
 typedef union YYSTYPE
 {
 
-/* Line 1740 of yacc.c  */
+/* Line 1676 of yacc.c  */
 #line 1075 "compilers/imcc/imcc.y"
 
     IdList * idlist;
@@ -189,8 +312,8 @@
 
 
 
-/* Line 1740 of yacc.c  */
-#line 183 "compilers/imcc/imcparser.h"
+/* Line 1676 of yacc.c  */
+#line 306 "compilers/imcc/imcparser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */

Modified: branches/immutable_strings_part1/compilers/imcc/instructions.c
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/instructions.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/instructions.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -813,6 +813,8 @@
 
 =item C<static int e_file_close(PARROT_INTERP, void *param)>
 
+Close STDOUT
+
 =cut
 
 */
@@ -832,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/immutable_strings_part1/compilers/imcc/main.c
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/main.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/main.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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);
 
@@ -462,7 +462,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 +472,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 +692,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 +705,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/immutable_strings_part1/compilers/imcc/optimizer.c
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/optimizer.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/optimizer.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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/immutable_strings_part1/compilers/imcc/parser_util.c
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/parser_util.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/parser_util.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -935,11 +935,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/immutable_strings_part1/compilers/imcc/pbc.c
==============================================================================
--- branches/immutable_strings_part1/compilers/imcc/pbc.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/compilers/imcc/pbc.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1336,8 +1336,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);

Modified: branches/immutable_strings_part1/config/auto/arch.pm
==============================================================================
--- branches/immutable_strings_part1/config/auto/arch.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/config/auto/arch.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -31,7 +31,7 @@
     $data{result}      = q{};
     my $unamep;
     eval {
-       chomp( $unamep  = `uname -p` );
+       chomp( $unamep  = `uname -p` ) unless ($^O eq 'MSWin32');
     };
     $data{unamep} = (! $@ and $unamep)
         ? $unamep

Deleted: branches/immutable_strings_part1/config/auto/crypto.pm
==============================================================================
--- branches/immutable_strings_part1/config/auto/crypto.pm	Wed Apr 21 09:44:01 2010	(r45848)
+++ /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/immutable_strings_part1/config/auto/crypto/crypto_c.in
==============================================================================
--- branches/immutable_strings_part1/config/auto/crypto/crypto_c.in	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,26 +0,0 @@
-/*
-  Copyright (C) 2008, Parrot Foundation.
-  $Id$
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <openssl/opensslv.h>
-#include <openssl/err.h>
-
-int
-main(int argc, char *argv[])
-{
-    unsigned long dummy = ERR_get_error();
-
-    printf("%s\n", OPENSSL_VERSION_TEXT);
-
-    return EXIT_SUCCESS;
-}
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Deleted: branches/immutable_strings_part1/config/auto/gdbm.pm
==============================================================================
--- branches/immutable_strings_part1/config/auto/gdbm.pm	Wed Apr 21 09:44:01 2010	(r45848)
+++ /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:

Deleted: branches/immutable_strings_part1/config/auto/gdbm/gdbm_c.in
==============================================================================
--- branches/immutable_strings_part1/config/auto/gdbm/gdbm_c.in	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,48 +0,0 @@
-/*
-  Copyright (C) 2001-2009, Parrot Foundation.
-  $Id$
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <gdbm.h>
-
-int
-main(int argc, char *argv[])
-{
-    GDBM_FILE dbf;
-    datum key, val_in, val_out;
-
-    dbf = gdbm_open("gdbm_test_db", 0, GDBM_NEWDB, 0666, 0);
-    if (!dbf) {
-        fprintf(stderr, "File %s could not be created.\n", argv[1]);
-        exit(2);
-    }
-
-    key.dptr  = "Is gdbm funktional?";
-    key.dsize = 19;
-    val_in.dptr  = "gdbm is working.";
-    val_in.dsize = 17;
-
-    gdbm_store(dbf, key, val_in, GDBM_INSERT);
-
-    val_out = gdbm_fetch(dbf, key);
-
-    if (val_out.dsize > 0) {
-        printf("%s\n", val_out.dptr);
-        free(val_out.dptr);
-    }
-    else {
-        printf("Key not found.\n");
-    }
-    gdbm_close(dbf);
-
-    return EXIT_SUCCESS;
-}
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/immutable_strings_part1/config/auto/warnings.pm
==============================================================================
--- branches/immutable_strings_part1/config/auto/warnings.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/config/auto/warnings.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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

Deleted: branches/immutable_strings_part1/config/gen/crypto.pm
==============================================================================
--- branches/immutable_strings_part1/config/gen/crypto.pm	Wed Apr 21 09:44:01 2010	(r45848)
+++ /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:

Deleted: branches/immutable_strings_part1/config/gen/crypto/digest_pmc.in
==============================================================================
--- branches/immutable_strings_part1/config/gen/crypto/digest_pmc.in	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,161 +0,0 @@
-/*
-Copyright (C) 2008-2010, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/dynpmc/@TEMP_md_file at .pmc - @TEMP_md_name@ wrapper of libcrypto (libssl)
-
-=head1 DESCRIPTION
-
-See L<www.openssl.org>
-
-=head2 Methods
-
-=over 4
-
-=cut
-
-*/
-
-#include <openssl/@TEMP_md_inc at .h>
-
-pmclass @TEMP_md_name@
-    dynpmc
-    group digest_group
-    lib crypto {
-
-/*
-
-=item C<void init()>
-
-=cut
-
-*/
-    VTABLE void init() {
- at TEMP_md_guard@
-        @TEMP_md_ctx@ *c    = mem_gc_allocate_zeroed_typed(INTERP, @TEMP_md_ctx@);
-        PMC_data(SELF) = c;
-        PObj_custom_destroy_SET(SELF);
-#else
-        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ILL_INHERIT,
-            "@TEMP_md_name@ is disabled");
-#endif
-    }
-
-/*
-
-=item C<void destroy()>
-
-=cut
-
-*/
-    VTABLE void destroy() {
- at TEMP_md_guard@
-        @TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
-        if (c) {
-            mem_gc_free(INTERP, c);
-            PMC_data(SELF) = NULL;
-        }
-#endif
-    }
-
-/*
-
-=item C<PMC* clone()>
-
-=cut
-
-*/
-    VTABLE PMC* clone() {
- at TEMP_md_guard@
-        PMC     *retval  = Parrot_pmc_new_noinit(INTERP, SELF->vtable->base_type);
-        @TEMP_md_ctx@ *c       = mem_allocate_zeroed_typed(@TEMP_md_ctx@);
-
-        memcpy(c, PMC_data(SELF), sizeof (@TEMP_md_ctx@));
-        PMC_data(retval) = c;
-
-        PObj_custom_destroy_SET(retval);
-        return retval;
-#else
-        return NULL;
-#endif
-    }
-
-
-/*
-
-=back
-
-=head2 Specific Methods
-
-=over 4
-
-=item C<void Init()>
-
-=cut
-
-*/
-    METHOD void Init() {
- at TEMP_md_guard@
-        @TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
-        (void)@TEMP_md_name at _Init(c);
-#endif
-    }
-
-/*
-
-=item C<void Update(STRING *buf)>
-
-=cut
-
-*/
-    METHOD void Update(STRING *buf) {
- at TEMP_md_guard@
-        @TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
-        (void)@TEMP_md_name at _Update(c, (const unsigned char *)Buffer_bufstart(buf), buf->bufused);
-#endif
-    }
-
-/*
-
-=item C<STRING* Final()>
-
-=cut
-
-*/
-    METHOD STRING* Final() {
- at TEMP_md_guard@
-        unsigned char digest[@TEMP_md_digest at _LENGTH];
-        @TEMP_md_ctx@      *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
-        STRING       *retval;
-
-        (void)@TEMP_md_name at _Final(digest, c);
-        retval = Parrot_str_new(INTERP, (char *)digest, @TEMP_md_digest at _LENGTH);
-
-        RETURN(STRING *retval);
-#else
-        return;
-#endif
-    }
-
-}
-
-/*
-
-=back
-
-=head1 AUTHORS
-
-Francois Perrad
-
-=cut
-
-*/
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Deleted: branches/immutable_strings_part1/config/gen/crypto/digest_t.in
==============================================================================
--- branches/immutable_strings_part1/config/gen/crypto/digest_t.in	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,79 +0,0 @@
-#! parrot
-# Copyright (C) 2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/dynpmc/@TEMP_md_file at .t - test the @TEMP_md_name@ PMC (part of digest_group)
-
-=head1 SYNOPSIS
-
-        % parrot -Ilib t/dynpmc/@TEMP_md_file at .t
-
-=head1 DESCRIPTION
-
-Tests the C<digest_group> a libcrypto wrapper.
-
-=cut
-
-.sub main :main
-    .include 'test_more.pir'
-    .include 'iglobals.pasm'
-    .local pmc config_hash, interp
-
-    plan(2)
-    interp = getinterp
-    config_hash = interp[.IGLOBALS_CONFIG_HASH]
-    $S0 = config_hash['has_crypto']
-    $S1 = config_hash['openssl_version']
-    unless $S0 goto no_crypto
-    if $S1 < '@TEMP_md_skip@' goto old_openssl
-
-    test_typeof()
-    test_digest()
-    .return()
-  no_crypto:
-    skip(2, 'No crypto library available')
-    .return()
-  old_openssl:
-    skip(2, 'Too old openssl library, needs at least @TEMP_md_skip@')
-.end
-
-
-.sub test_typeof
-    $P0 = loadlib 'digest_group'
-    .local pmc md
-    md = new '@TEMP_md_name@'
-    $S0 = typeof md
-    is($S0, '@TEMP_md_name@', '@TEMP_md_name@ typeof')
-.end
-
-.sub test_digest
-    $P0 = loadlib 'digest_group'
-    .local pmc md
-    md = new '@TEMP_md_name@'
-    md.'Init'()
-    $S0 = 'message digest'
-    md.'Update'($S0)
-    $S0 = md.'Final'()
-    $P0 = split '', $S0
-    new $P1, 'FixedPMCArray'
-    set $P1, 1
-    $S3 = ''
-  L1:
-    unless $P0 goto L2
-    $S1 = shift $P0
-    $I1 = ord $S1
-    $P1[0] = $I1
-    $S2 = sprintf '%02x', $P1
-    $S3 .= $S2
-    goto L1
-  L2:
-    is($S3, '@TEMP_md_result@', '@TEMP_md_name@ digest')
-.end
-
-# Local Variables:
-#   mode: pir
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/immutable_strings_part1/config/gen/makefiles/dynpmc.in
==============================================================================
--- branches/immutable_strings_part1/config/gen/makefiles/dynpmc.in	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/config/gen/makefiles/dynpmc.in	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2009, Parrot Foundation.
+# Copyright (C) 2003-2010, Parrot Foundation.
 # $Id$
 
 PERL          = @perl@
@@ -32,31 +32,9 @@
   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) \
   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,14 +43,6 @@
   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
-
 CLEANUPS = \
   "*.c" \
   "pmc_*.h" \
@@ -165,19 +135,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 +148,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

Modified: branches/immutable_strings_part1/config/gen/makefiles/root.in
==============================================================================
--- branches/immutable_strings_part1/config/gen/makefiles/root.in	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/config/gen/makefiles/root.in	Wed Apr 21 09:44:01 2010	(r45849)
@@ -166,22 +166,6 @@
 #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.pir \
     parrot.pc \
     compilers/imcc/imcc.y.flag \

Modified: branches/immutable_strings_part1/config/gen/opengl.pm
==============================================================================
--- branches/immutable_strings_part1/config/gen/opengl.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/config/gen/opengl.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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/immutable_strings_part1/config/init/defaults.pm
==============================================================================
--- branches/immutable_strings_part1/config/init/defaults.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/config/init/defaults.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -94,9 +94,9 @@
         # Compiler -- used to turn .c files into object files.
         # (Usually cc or cl, or something like that.)
         cc      => $cc_option ? $cc_option : $Config{cc},
-        # If we specify a compiler, we can't use existing ccflags and ccwarn.
+        # If we specify a compiler, we can't use existing ccflags.
         ccflags => $cc_option ? ''         : $Config{ccflags},
-        ccwarn  => $cc_option ? ''         : $Config{ccwarn},
+        ccwarn  => '',
 
         # Flags used to indicate this object file is to be compiled
         # with position-independent code suitable for dynamic loading.

Modified: branches/immutable_strings_part1/config/init/hints/cygwin.pm
==============================================================================
--- branches/immutable_strings_part1/config/init/hints/cygwin.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/config/init/hints/cygwin.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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/immutable_strings_part1/docs/parrothist.pod
==============================================================================
--- branches/immutable_strings_part1/docs/parrothist.pod	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/docs/parrothist.pod	Wed Apr 21 09:44:01 2010	(r45849)
@@ -105,4 +105,6 @@
  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/immutable_strings_part1/docs/project/release_manager_guide.pod
==============================================================================
--- branches/immutable_strings_part1/docs/project/release_manager_guide.pod	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/docs/project/release_manager_guide.pod	Wed Apr 21 09:44:01 2010	(r45849)
@@ -213,10 +213,10 @@
 
  $ 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 different compressed tarballs from your machine into the new directory.
 
@@ -283,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
 
@@ -294,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
@@ -394,10 +394,11 @@
 visible at
 L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
 
- - 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/immutable_strings_part1/examples/languages/abc/setup.pir
==============================================================================
--- branches/immutable_strings_part1/examples/languages/abc/setup.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/examples/languages/abc/setup.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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/immutable_strings_part1/examples/pir/befunge/setup.pir
==============================================================================
--- branches/immutable_strings_part1/examples/pir/befunge/setup.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/examples/pir/befunge/setup.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -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/immutable_strings_part1/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/immutable_strings_part1/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -854,7 +854,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1270238407.987")
+.sub "_block11"  :anon :subid("10_1271336377.56964")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -868,9 +868,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post105") :outer("10_1270238407.987")
+.sub "" :load :init :subid("post105") :outer("10_1271336377.56964")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1270238407.987" 
+    .const 'Sub' $P12 = "10_1271336377.56964" 
     .local pmc block
     set block, $P12
     $P345 = get_root_global ["parrot"], "P6metaclass"
@@ -879,86 +879,86 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1270238407.987") :outer("10_1270238407.987")
+.sub "_block13"  :subid("11_1271336377.56964") :outer("10_1271336377.56964")
 .annotate "line", 5
-    .const 'Sub' $P334 = "103_1270238407.987" 
+    .const 'Sub' $P334 = "103_1271336377.56964" 
     capture_lex $P334
-    .const 'Sub' $P327 = "101_1270238407.987" 
+    .const 'Sub' $P327 = "101_1271336377.56964" 
     capture_lex $P327
-    .const 'Sub' $P314 = "98_1270238407.987" 
+    .const 'Sub' $P314 = "98_1271336377.56964" 
     capture_lex $P314
-    .const 'Sub' $P282 = "93_1270238407.987" 
+    .const 'Sub' $P282 = "93_1271336377.56964" 
     capture_lex $P282
-    .const 'Sub' $P276 = "91_1270238407.987" 
+    .const 'Sub' $P276 = "91_1271336377.56964" 
     capture_lex $P276
-    .const 'Sub' $P271 = "89_1270238407.987" 
+    .const 'Sub' $P271 = "89_1271336377.56964" 
     capture_lex $P271
-    .const 'Sub' $P265 = "87_1270238407.987" 
+    .const 'Sub' $P265 = "87_1271336377.56964" 
     capture_lex $P265
-    .const 'Sub' $P259 = "85_1270238407.987" 
+    .const 'Sub' $P259 = "85_1271336377.56964" 
     capture_lex $P259
-    .const 'Sub' $P254 = "83_1270238407.987" 
+    .const 'Sub' $P254 = "83_1271336377.56964" 
     capture_lex $P254
-    .const 'Sub' $P249 = "81_1270238407.987" 
+    .const 'Sub' $P249 = "81_1271336377.56964" 
     capture_lex $P249
-    .const 'Sub' $P244 = "79_1270238407.987" 
+    .const 'Sub' $P244 = "79_1271336377.56964" 
     capture_lex $P244
-    .const 'Sub' $P239 = "77_1270238407.987" 
+    .const 'Sub' $P239 = "77_1271336377.56964" 
     capture_lex $P239
-    .const 'Sub' $P234 = "75_1270238407.987" 
+    .const 'Sub' $P234 = "75_1271336377.56964" 
     capture_lex $P234
-    .const 'Sub' $P229 = "73_1270238407.987" 
+    .const 'Sub' $P229 = "73_1271336377.56964" 
     capture_lex $P229
-    .const 'Sub' $P224 = "71_1270238407.987" 
+    .const 'Sub' $P224 = "71_1271336377.56964" 
     capture_lex $P224
-    .const 'Sub' $P219 = "69_1270238407.987" 
+    .const 'Sub' $P219 = "69_1271336377.56964" 
     capture_lex $P219
-    .const 'Sub' $P208 = "65_1270238407.987" 
+    .const 'Sub' $P208 = "65_1271336377.56964" 
     capture_lex $P208
-    .const 'Sub' $P195 = "63_1270238407.987" 
+    .const 'Sub' $P195 = "63_1271336377.56964" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1270238407.987" 
+    .const 'Sub' $P183 = "61_1271336377.56964" 
     capture_lex $P183
-    .const 'Sub' $P176 = "59_1270238407.987" 
+    .const 'Sub' $P176 = "59_1271336377.56964" 
     capture_lex $P176
-    .const 'Sub' $P167 = "57_1270238407.987" 
+    .const 'Sub' $P167 = "57_1271336377.56964" 
     capture_lex $P167
-    .const 'Sub' $P160 = "55_1270238407.987" 
+    .const 'Sub' $P160 = "55_1271336377.56964" 
     capture_lex $P160
-    .const 'Sub' $P151 = "53_1270238407.987" 
+    .const 'Sub' $P151 = "53_1271336377.56964" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1270238407.987" 
+    .const 'Sub' $P144 = "51_1271336377.56964" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1270238407.987" 
+    .const 'Sub' $P135 = "49_1271336377.56964" 
     capture_lex $P135
-    .const 'Sub' $P128 = "47_1270238407.987" 
+    .const 'Sub' $P128 = "47_1271336377.56964" 
     capture_lex $P128
-    .const 'Sub' $P121 = "45_1270238407.987" 
+    .const 'Sub' $P121 = "45_1271336377.56964" 
     capture_lex $P121
-    .const 'Sub' $P111 = "43_1270238407.987" 
+    .const 'Sub' $P111 = "43_1271336377.56964" 
     capture_lex $P111
-    .const 'Sub' $P103 = "41_1270238407.987" 
+    .const 'Sub' $P103 = "41_1271336377.56964" 
     capture_lex $P103
-    .const 'Sub' $P93 = "40_1270238407.987" 
+    .const 'Sub' $P93 = "40_1271336377.56964" 
     capture_lex $P93
-    .const 'Sub' $P87 = "38_1270238407.987" 
+    .const 'Sub' $P87 = "38_1271336377.56964" 
     capture_lex $P87
-    .const 'Sub' $P82 = "36_1270238407.987" 
+    .const 'Sub' $P82 = "36_1271336377.56964" 
     capture_lex $P82
-    .const 'Sub' $P74 = "34_1270238407.987" 
+    .const 'Sub' $P74 = "34_1271336377.56964" 
     capture_lex $P74
-    .const 'Sub' $P68 = "32_1270238407.987" 
+    .const 'Sub' $P68 = "32_1271336377.56964" 
     capture_lex $P68
-    .const 'Sub' $P62 = "30_1270238407.987" 
+    .const 'Sub' $P62 = "30_1271336377.56964" 
     capture_lex $P62
-    .const 'Sub' $P56 = "28_1270238407.987" 
+    .const 'Sub' $P56 = "28_1271336377.56964" 
     capture_lex $P56
-    .const 'Sub' $P23 = "14_1270238407.987" 
+    .const 'Sub' $P23 = "14_1271336377.56964" 
     capture_lex $P23
-    .const 'Sub' $P15 = "12_1270238407.987" 
+    .const 'Sub' $P15 = "12_1271336377.56964" 
     capture_lex $P15
 .annotate "line", 33
-    .const 'Sub' $P334 = "103_1270238407.987" 
+    .const 'Sub' $P334 = "103_1271336377.56964" 
     capture_lex $P334
 .annotate "line", 5
     .return ($P334)
@@ -966,7 +966,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1270238407.987") :method :outer("11_1270238407.987")
+.sub "ws"  :subid("12_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1050,7 +1050,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1270238407.987") :method
+.sub "!PREFIX__ws"  :subid("13_1271336377.56964") :method
 .annotate "line", 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1059,7 +1059,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1270238407.987") :method :outer("11_1270238407.987")
+.sub "termish"  :subid("14_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx24_tgt
     .local int rx24_pos
@@ -1151,7 +1151,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1270238407.987") :method
+.sub "!PREFIX__termish"  :subid("15_1271336377.56964") :method
 .annotate "line", 5
     new $P26, "ResizablePMCArray"
     push $P26, ""
@@ -1160,7 +1160,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1270238407.987") :method
+.sub "term"  :subid("16_1271336377.56964") :method
 .annotate "line", 13
     $P33 = self."!protoregex"("term")
     .return ($P33)
@@ -1168,7 +1168,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1270238407.987") :method
+.sub "!PREFIX__term"  :subid("17_1271336377.56964") :method
 .annotate "line", 13
     $P35 = self."!PREFIX__!protoregex"("term")
     .return ($P35)
@@ -1176,7 +1176,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1270238407.987") :method
+.sub "infix"  :subid("18_1271336377.56964") :method
 .annotate "line", 14
     $P37 = self."!protoregex"("infix")
     .return ($P37)
@@ -1184,7 +1184,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1270238407.987") :method
+.sub "!PREFIX__infix"  :subid("19_1271336377.56964") :method
 .annotate "line", 14
     $P39 = self."!PREFIX__!protoregex"("infix")
     .return ($P39)
@@ -1192,7 +1192,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1270238407.987") :method
+.sub "prefix"  :subid("20_1271336377.56964") :method
 .annotate "line", 15
     $P41 = self."!protoregex"("prefix")
     .return ($P41)
@@ -1200,7 +1200,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1270238407.987") :method
+.sub "!PREFIX__prefix"  :subid("21_1271336377.56964") :method
 .annotate "line", 15
     $P43 = self."!PREFIX__!protoregex"("prefix")
     .return ($P43)
@@ -1208,7 +1208,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1270238407.987") :method
+.sub "postfix"  :subid("22_1271336377.56964") :method
 .annotate "line", 16
     $P45 = self."!protoregex"("postfix")
     .return ($P45)
@@ -1216,7 +1216,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1270238407.987") :method
+.sub "!PREFIX__postfix"  :subid("23_1271336377.56964") :method
 .annotate "line", 16
     $P47 = self."!PREFIX__!protoregex"("postfix")
     .return ($P47)
@@ -1224,7 +1224,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1270238407.987") :method
+.sub "circumfix"  :subid("24_1271336377.56964") :method
 .annotate "line", 17
     $P49 = self."!protoregex"("circumfix")
     .return ($P49)
@@ -1232,7 +1232,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1270238407.987") :method
+.sub "!PREFIX__circumfix"  :subid("25_1271336377.56964") :method
 .annotate "line", 17
     $P51 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P51)
@@ -1240,7 +1240,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1270238407.987") :method
+.sub "postcircumfix"  :subid("26_1271336377.56964") :method
 .annotate "line", 18
     $P53 = self."!protoregex"("postcircumfix")
     .return ($P53)
@@ -1248,7 +1248,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1270238407.987") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1271336377.56964") :method
 .annotate "line", 18
     $P55 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P55)
@@ -1256,7 +1256,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1270238407.987") :method :outer("11_1270238407.987")
+.sub "term:sym<circumfix>"  :subid("28_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx57_tgt
     .local int rx57_pos
@@ -1314,7 +1314,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1270238407.987") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1271336377.56964") :method
 .annotate "line", 5
     $P59 = self."!PREFIX__!subrule"("circumfix", "")
     new $P60, "ResizablePMCArray"
@@ -1324,7 +1324,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1270238407.987") :method :outer("11_1270238407.987")
+.sub "infixish"  :subid("30_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx63_tgt
     .local int rx63_pos
@@ -1382,7 +1382,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1270238407.987") :method
+.sub "!PREFIX__infixish"  :subid("31_1271336377.56964") :method
 .annotate "line", 5
     $P65 = self."!PREFIX__!subrule"("OPER=infix", "")
     new $P66, "ResizablePMCArray"
@@ -1392,7 +1392,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1270238407.987") :method :outer("11_1270238407.987")
+.sub "prefixish"  :subid("32_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx69_tgt
     .local int rx69_pos
@@ -1455,7 +1455,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1270238407.987") :method
+.sub "!PREFIX__prefixish"  :subid("33_1271336377.56964") :method
 .annotate "line", 5
     $P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
     new $P72, "ResizablePMCArray"
@@ -1465,7 +1465,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1270238407.987") :method :outer("11_1270238407.987")
+.sub "postfixish"  :subid("34_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx75_tgt
     .local int rx75_pos
@@ -1539,7 +1539,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1270238407.987") :method
+.sub "!PREFIX__postfixish"  :subid("35_1271336377.56964") :method
 .annotate "line", 5
     $P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
     $P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
@@ -1551,7 +1551,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1270238407.987") :method :outer("11_1270238407.987")
+.sub "nullterm"  :subid("36_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx83_tgt
     .local int rx83_pos
@@ -1602,7 +1602,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1270238407.987") :method
+.sub "!PREFIX__nullterm"  :subid("37_1271336377.56964") :method
 .annotate "line", 5
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -1611,7 +1611,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1270238407.987") :method :outer("11_1270238407.987")
+.sub "nullterm_alt"  :subid("38_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 5
     .local string rx88_tgt
     .local int rx88_pos
@@ -1669,7 +1669,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1270238407.987") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1271336377.56964") :method
 .annotate "line", 5
     $P90 = self."!PREFIX__!subrule"("term", "")
     new $P91, "ResizablePMCArray"
@@ -1679,7 +1679,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nulltermish"  :subid("40_1270238407.987") :method :outer("11_1270238407.987")
+.sub "nulltermish"  :subid("40_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     new $P95, 'ExceptionHandler'
     set_addr $P95, control_94
@@ -1706,7 +1706,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_delimited"  :subid("41_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx104_tgt
     .local int rx104_pos
@@ -1788,7 +1788,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1270238407.987") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1271336377.56964") :method
 .annotate "line", 33
     $P106 = self."!PREFIX__!subrule"("starter", "")
     new $P107, "ResizablePMCArray"
@@ -1798,7 +1798,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_atom"  :subid("43_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx112_tgt
     .local int rx112_pos
@@ -1889,7 +1889,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1270238407.987") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1271336377.56964") :method
 .annotate "line", 33
     new $P114, "ResizablePMCArray"
     push $P114, ""
@@ -1898,7 +1898,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1270238407.987") :method :outer("11_1270238407.987")
+.sub "decint"  :subid("45_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx122_tgt
     .local int rx122_pos
@@ -1970,7 +1970,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1270238407.987") :method
+.sub "!PREFIX__decint"  :subid("46_1271336377.56964") :method
 .annotate "line", 33
     new $P124, "ResizablePMCArray"
     push $P124, ""
@@ -1979,7 +1979,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1270238407.987") :method :outer("11_1270238407.987")
+.sub "decints"  :subid("47_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx129_tgt
     .local int rx129_pos
@@ -2063,7 +2063,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1270238407.987") :method
+.sub "!PREFIX__decints"  :subid("48_1271336377.56964") :method
 .annotate "line", 33
     new $P131, "ResizablePMCArray"
     push $P131, ""
@@ -2072,7 +2072,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1270238407.987") :method :outer("11_1270238407.987")
+.sub "hexint"  :subid("49_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx136_tgt
     .local int rx136_pos
@@ -2153,7 +2153,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1270238407.987") :method
+.sub "!PREFIX__hexint"  :subid("50_1271336377.56964") :method
 .annotate "line", 33
     new $P138, "ResizablePMCArray"
     push $P138, ""
@@ -2162,7 +2162,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1270238407.987") :method :outer("11_1270238407.987")
+.sub "hexints"  :subid("51_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2246,7 +2246,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1270238407.987") :method
+.sub "!PREFIX__hexints"  :subid("52_1271336377.56964") :method
 .annotate "line", 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2255,7 +2255,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1270238407.987") :method :outer("11_1270238407.987")
+.sub "octint"  :subid("53_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2336,7 +2336,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1270238407.987") :method
+.sub "!PREFIX__octint"  :subid("54_1271336377.56964") :method
 .annotate "line", 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2345,7 +2345,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1270238407.987") :method :outer("11_1270238407.987")
+.sub "octints"  :subid("55_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx161_tgt
     .local int rx161_pos
@@ -2429,7 +2429,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1270238407.987") :method
+.sub "!PREFIX__octints"  :subid("56_1271336377.56964") :method
 .annotate "line", 33
     new $P163, "ResizablePMCArray"
     push $P163, ""
@@ -2438,7 +2438,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1270238407.987") :method :outer("11_1270238407.987")
+.sub "binint"  :subid("57_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx168_tgt
     .local int rx168_pos
@@ -2519,7 +2519,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1270238407.987") :method
+.sub "!PREFIX__binint"  :subid("58_1271336377.56964") :method
 .annotate "line", 33
     new $P170, "ResizablePMCArray"
     push $P170, ""
@@ -2528,7 +2528,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1270238407.987") :method :outer("11_1270238407.987")
+.sub "binints"  :subid("59_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx177_tgt
     .local int rx177_pos
@@ -2612,7 +2612,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1270238407.987") :method
+.sub "!PREFIX__binints"  :subid("60_1271336377.56964") :method
 .annotate "line", 33
     new $P179, "ResizablePMCArray"
     push $P179, ""
@@ -2621,7 +2621,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1270238407.987") :method :outer("11_1270238407.987")
+.sub "integer"  :subid("61_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx184_tgt
     .local int rx184_pos
@@ -2769,7 +2769,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1270238407.987") :method
+.sub "!PREFIX__integer"  :subid("62_1271336377.56964") :method
 .annotate "line", 33
     $P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
     $P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
@@ -2787,7 +2787,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1270238407.987") :method :outer("11_1270238407.987")
+.sub "dec_number"  :subid("63_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -2966,7 +2966,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1270238407.987") :method
+.sub "!PREFIX__dec_number"  :subid("64_1271336377.56964") :method
 .annotate "line", 33
     new $P198, "ResizablePMCArray"
     push $P198, ""
@@ -2977,7 +2977,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1270238407.987") :method :outer("11_1270238407.987")
+.sub "escale"  :subid("65_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx209_tgt
     .local int rx209_pos
@@ -3054,7 +3054,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1270238407.987") :method
+.sub "!PREFIX__escale"  :subid("66_1271336377.56964") :method
 .annotate "line", 33
     new $P211, "ResizablePMCArray"
     push $P211, "e"
@@ -3064,7 +3064,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1270238407.987") :method
+.sub "quote_escape"  :subid("67_1271336377.56964") :method
 .annotate "line", 79
     $P216 = self."!protoregex"("quote_escape")
     .return ($P216)
@@ -3072,7 +3072,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1270238407.987") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1271336377.56964") :method
 .annotate "line", 79
     $P218 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P218)
@@ -3080,7 +3080,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<backslash>"  :subid("69_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx220_tgt
     .local int rx220_pos
@@ -3142,7 +3142,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1271336377.56964") :method
 .annotate "line", 33
     new $P222, "ResizablePMCArray"
     push $P222, "\\\\"
@@ -3151,7 +3151,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<stopper>"  :subid("71_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx225_tgt
     .local int rx225_pos
@@ -3220,7 +3220,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1271336377.56964") :method
 .annotate "line", 33
     new $P227, "ResizablePMCArray"
     push $P227, "\\"
@@ -3229,7 +3229,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<bs>"  :subid("73_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx230_tgt
     .local int rx230_pos
@@ -3291,7 +3291,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1271336377.56964") :method
 .annotate "line", 33
     new $P232, "ResizablePMCArray"
     push $P232, "\\b"
@@ -3300,7 +3300,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<nl>"  :subid("75_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx235_tgt
     .local int rx235_pos
@@ -3362,7 +3362,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1271336377.56964") :method
 .annotate "line", 33
     new $P237, "ResizablePMCArray"
     push $P237, "\\n"
@@ -3371,7 +3371,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<cr>"  :subid("77_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx240_tgt
     .local int rx240_pos
@@ -3433,7 +3433,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1271336377.56964") :method
 .annotate "line", 33
     new $P242, "ResizablePMCArray"
     push $P242, "\\r"
@@ -3442,7 +3442,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<tab>"  :subid("79_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx245_tgt
     .local int rx245_pos
@@ -3504,7 +3504,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1271336377.56964") :method
 .annotate "line", 33
     new $P247, "ResizablePMCArray"
     push $P247, "\\t"
@@ -3513,7 +3513,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<ff>"  :subid("81_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx250_tgt
     .local int rx250_pos
@@ -3575,7 +3575,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1271336377.56964") :method
 .annotate "line", 33
     new $P252, "ResizablePMCArray"
     push $P252, "\\f"
@@ -3584,7 +3584,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("83_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<esc>"  :subid("83_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx255_tgt
     .local int rx255_pos
@@ -3646,7 +3646,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1271336377.56964") :method
 .annotate "line", 33
     new $P257, "ResizablePMCArray"
     push $P257, "\\e"
@@ -3655,7 +3655,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("85_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<hex>"  :subid("85_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx260_tgt
     .local int rx260_pos
@@ -3753,7 +3753,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1271336377.56964") :method
 .annotate "line", 33
     new $P262, "ResizablePMCArray"
     push $P262, unicode:"\\x"
@@ -3762,7 +3762,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("87_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<oct>"  :subid("87_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx266_tgt
     .local int rx266_pos
@@ -3860,7 +3860,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1271336377.56964") :method
 .annotate "line", 33
     new $P268, "ResizablePMCArray"
     push $P268, "\\o"
@@ -3869,7 +3869,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("89_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<chr>"  :subid("89_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx272_tgt
     .local int rx272_pos
@@ -3938,7 +3938,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1271336377.56964") :method
 .annotate "line", 33
     new $P274, "ResizablePMCArray"
     push $P274, "\\c"
@@ -3947,7 +3947,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("91_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<0>"  :subid("91_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx277_tgt
     .local int rx277_pos
@@ -4030,7 +4030,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1271336377.56964") :method
 .annotate "line", 33
     new $P279, "ResizablePMCArray"
     push $P279, "\\0"
@@ -4039,13 +4039,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("93_1270238407.987") :method :outer("11_1270238407.987")
+.sub "quote_escape:sym<misc>"  :subid("93_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
-    .const 'Sub' $P302 = "97_1270238407.987" 
+    .const 'Sub' $P302 = "97_1271336377.56964" 
     capture_lex $P302
-    .const 'Sub' $P295 = "96_1270238407.987" 
+    .const 'Sub' $P295 = "96_1271336377.56964" 
     capture_lex $P295
-    .const 'Sub' $P290 = "95_1270238407.987" 
+    .const 'Sub' $P290 = "95_1271336377.56964" 
     capture_lex $P290
     .local string rx283_tgt
     .local int rx283_pos
@@ -4082,7 +4082,7 @@
     $P288 = $P287."MATCH"()
     store_lex "$/", $P288
 .annotate "line", 100
-    .const 'Sub' $P290 = "95_1270238407.987" 
+    .const 'Sub' $P290 = "95_1271336377.56964" 
     capture_lex $P290
     $P291 = $P290()
   # rx literal  "\\"
@@ -4108,7 +4108,7 @@
 .annotate "line", 104
   # rx subrule $P295 subtype=capture negate=
     rx283_cur."!cursor_pos"(rx283_pos)
-    .const 'Sub' $P295 = "96_1270238407.987" 
+    .const 'Sub' $P295 = "96_1271336377.56964" 
     capture_lex $P295
     $P10 = rx283_cur.$P295()
     unless $P10, rx283_fail
@@ -4142,7 +4142,7 @@
     find_lex $P299, unicode:"$\x{a2}"
     $P300 = $P299."MATCH"()
     store_lex "$/", $P300
-    .const 'Sub' $P302 = "97_1270238407.987" 
+    .const 'Sub' $P302 = "97_1271336377.56964" 
     capture_lex $P302
     $P312 = $P302()
   alt293_end:
@@ -4188,7 +4188,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1270238407.987") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1271336377.56964") :method
 .annotate "line", 33
     new $P285, "ResizablePMCArray"
     push $P285, ""
@@ -4197,14 +4197,14 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block289"  :anon :subid("95_1270238407.987") :outer("93_1270238407.987")
+.sub "_block289"  :anon :subid("95_1271336377.56964") :outer("93_1271336377.56964")
 .annotate "line", 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block294"  :anon :subid("96_1270238407.987") :method :outer("93_1270238407.987")
+.sub "_block294"  :anon :subid("96_1271336377.56964") :method :outer("93_1271336377.56964")
 .annotate "line", 104
     .local string rx296_tgt
     .local int rx296_pos
@@ -4259,7 +4259,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block301"  :anon :subid("97_1270238407.987") :outer("93_1270238407.987")
+.sub "_block301"  :anon :subid("97_1271336377.56964") :outer("93_1271336377.56964")
 .annotate "line", 105
     find_lex $P303, "$/"
     $P304 = $P303."CURSOR"()
@@ -4282,9 +4282,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1270238407.987") :method :outer("11_1270238407.987")
+.sub "charname"  :subid("98_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
-    .const 'Sub' $P324 = "100_1270238407.987" 
+    .const 'Sub' $P324 = "100_1271336377.56964" 
     capture_lex $P324
     .local string rx315_tgt
     .local int rx315_pos
@@ -4362,7 +4362,7 @@
 .annotate "line", 114
   # rx subrule "before" subtype=zerowidth negate=
     rx315_cur."!cursor_pos"(rx315_pos)
-    .const 'Sub' $P324 = "100_1270238407.987" 
+    .const 'Sub' $P324 = "100_1271336377.56964" 
     capture_lex $P324
     $P10 = rx315_cur."before"($P324)
     unless $P10, rx315_fail
@@ -4387,7 +4387,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1270238407.987") :method
+.sub "!PREFIX__charname"  :subid("99_1271336377.56964") :method
 .annotate "line", 33
     $P317 = self."!PREFIX__!subrule"("integer", "")
     new $P318, "ResizablePMCArray"
@@ -4449,7 +4449,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block323"  :anon :subid("100_1270238407.987") :method :outer("98_1270238407.987")
+.sub "_block323"  :anon :subid("100_1271336377.56964") :method :outer("98_1271336377.56964")
 .annotate "line", 114
     .local string rx325_tgt
     .local int rx325_pos
@@ -4509,7 +4509,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1270238407.987") :method :outer("11_1270238407.987")
+.sub "charnames"  :subid("101_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx328_tgt
     .local int rx328_pos
@@ -4593,7 +4593,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1270238407.987") :method
+.sub "!PREFIX__charnames"  :subid("102_1271336377.56964") :method
 .annotate "line", 33
     new $P330, "ResizablePMCArray"
     push $P330, ""
@@ -4602,7 +4602,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1270238407.987") :method :outer("11_1270238407.987")
+.sub "charspec"  :subid("103_1271336377.56964") :method :outer("11_1271336377.56964")
 .annotate "line", 33
     .local string rx335_tgt
     .local int rx335_pos
@@ -4732,7 +4732,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1270238407.987") :method
+.sub "!PREFIX__charspec"  :subid("104_1271336377.56964") :method
 .annotate "line", 33
     $P337 = self."!PREFIX__!subrule"("", "")
     $P338 = self."!PREFIX__!subrule"("charnames", "[")
@@ -4774,7 +4774,7 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1270238409.746")
+.sub "_block11"  :anon :subid("10_1271336380.06238")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -4788,9 +4788,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post50") :outer("10_1270238409.746")
+.sub "" :load :init :subid("post50") :outer("10_1271336380.06238")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1270238409.746" 
+    .const 'Sub' $P12 = "10_1271336380.06238" 
     .local pmc block
     set block, $P12
     $P579 = get_root_global ["parrot"], "P6metaclass"
@@ -4799,74 +4799,74 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1270238409.746") :outer("10_1270238409.746")
+.sub "_block13"  :subid("11_1271336380.06238") :outer("10_1271336380.06238")
 .annotate "line", 3
-    .const 'Sub' $P561 = "49_1270238409.746" 
+    .const 'Sub' $P561 = "49_1271336380.06238" 
     capture_lex $P561
-    .const 'Sub' $P536 = "47_1270238409.746" 
+    .const 'Sub' $P536 = "47_1271336380.06238" 
     capture_lex $P536
-    .const 'Sub' $P505 = "46_1270238409.746" 
+    .const 'Sub' $P505 = "46_1271336380.06238" 
     capture_lex $P505
-    .const 'Sub' $P486 = "45_1270238409.746" 
+    .const 'Sub' $P486 = "45_1271336380.06238" 
     capture_lex $P486
-    .const 'Sub' $P479 = "44_1270238409.746" 
+    .const 'Sub' $P479 = "44_1271336380.06238" 
     capture_lex $P479
-    .const 'Sub' $P469 = "43_1270238409.746" 
+    .const 'Sub' $P469 = "43_1271336380.06238" 
     capture_lex $P469
-    .const 'Sub' $P452 = "42_1270238409.746" 
+    .const 'Sub' $P452 = "42_1271336380.06238" 
     capture_lex $P452
-    .const 'Sub' $P435 = "41_1270238409.746" 
+    .const 'Sub' $P435 = "41_1271336380.06238" 
     capture_lex $P435
-    .const 'Sub' $P428 = "40_1270238409.746" 
+    .const 'Sub' $P428 = "40_1271336380.06238" 
     capture_lex $P428
-    .const 'Sub' $P421 = "39_1270238409.746" 
+    .const 'Sub' $P421 = "39_1271336380.06238" 
     capture_lex $P421
-    .const 'Sub' $P414 = "38_1270238409.746" 
+    .const 'Sub' $P414 = "38_1271336380.06238" 
     capture_lex $P414
-    .const 'Sub' $P407 = "37_1270238409.746" 
+    .const 'Sub' $P407 = "37_1271336380.06238" 
     capture_lex $P407
-    .const 'Sub' $P400 = "36_1270238409.746" 
+    .const 'Sub' $P400 = "36_1271336380.06238" 
     capture_lex $P400
-    .const 'Sub' $P393 = "35_1270238409.746" 
+    .const 'Sub' $P393 = "35_1271336380.06238" 
     capture_lex $P393
-    .const 'Sub' $P383 = "34_1270238409.746" 
+    .const 'Sub' $P383 = "34_1271336380.06238" 
     capture_lex $P383
-    .const 'Sub' $P376 = "33_1270238409.746" 
+    .const 'Sub' $P376 = "33_1271336380.06238" 
     capture_lex $P376
-    .const 'Sub' $P360 = "32_1270238409.746" 
+    .const 'Sub' $P360 = "32_1271336380.06238" 
     capture_lex $P360
-    .const 'Sub' $P285 = "30_1270238409.746" 
+    .const 'Sub' $P285 = "30_1271336380.06238" 
     capture_lex $P285
-    .const 'Sub' $P222 = "27_1270238409.746" 
+    .const 'Sub' $P222 = "27_1271336380.06238" 
     capture_lex $P222
-    .const 'Sub' $P213 = "26_1270238409.746" 
+    .const 'Sub' $P213 = "26_1271336380.06238" 
     capture_lex $P213
-    .const 'Sub' $P204 = "25_1270238409.746" 
+    .const 'Sub' $P204 = "25_1271336380.06238" 
     capture_lex $P204
-    .const 'Sub' $P195 = "24_1270238409.746" 
+    .const 'Sub' $P195 = "24_1271336380.06238" 
     capture_lex $P195
-    .const 'Sub' $P186 = "23_1270238409.746" 
+    .const 'Sub' $P186 = "23_1271336380.06238" 
     capture_lex $P186
-    .const 'Sub' $P177 = "22_1270238409.746" 
+    .const 'Sub' $P177 = "22_1271336380.06238" 
     capture_lex $P177
-    .const 'Sub' $P167 = "21_1270238409.746" 
+    .const 'Sub' $P167 = "21_1271336380.06238" 
     capture_lex $P167
-    .const 'Sub' $P157 = "20_1270238409.746" 
+    .const 'Sub' $P157 = "20_1271336380.06238" 
     capture_lex $P157
-    .const 'Sub' $P149 = "19_1270238409.746" 
+    .const 'Sub' $P149 = "19_1271336380.06238" 
     capture_lex $P149
-    .const 'Sub' $P139 = "18_1270238409.746" 
+    .const 'Sub' $P139 = "18_1271336380.06238" 
     capture_lex $P139
-    .const 'Sub' $P129 = "17_1270238409.746" 
+    .const 'Sub' $P129 = "17_1271336380.06238" 
     capture_lex $P129
-    .const 'Sub' $P28 = "14_1270238409.746" 
+    .const 'Sub' $P28 = "14_1271336380.06238" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1270238409.746" 
+    .const 'Sub' $P22 = "13_1271336380.06238" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1270238409.746" 
+    .const 'Sub' $P15 = "12_1271336380.06238" 
     capture_lex $P15
 .annotate "line", 198
-    .const 'Sub' $P561 = "49_1270238409.746" 
+    .const 'Sub' $P561 = "49_1271336380.06238" 
     capture_lex $P561
 .annotate "line", 3
     .return ($P561)
@@ -4874,7 +4874,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "string_to_int"  :subid("12_1270238409.746") :outer("11_1270238409.746")
+.sub "string_to_int"  :subid("12_1271336380.06238") :outer("11_1271336380.06238")
     .param pmc param_18
     .param pmc param_19
 .annotate "line", 3
@@ -4927,7 +4927,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "ints_to_string"  :subid("13_1270238409.746") :outer("11_1270238409.746")
+.sub "ints_to_string"  :subid("13_1271336380.06238") :outer("11_1271336380.06238")
     .param pmc param_25
 .annotate "line", 37
     new $P24, 'ExceptionHandler'
@@ -4968,14 +4968,14 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "EXPR"  :subid("14_1270238409.746") :method :outer("11_1270238409.746")
+.sub "EXPR"  :subid("14_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_31
     .param pmc param_32 :optional
     .param int has_param_32 :opt_flag
 .annotate "line", 62
-    .const 'Sub' $P111 = "16_1270238409.746" 
+    .const 'Sub' $P111 = "16_1271336380.06238" 
     capture_lex $P111
-    .const 'Sub' $P78 = "15_1270238409.746" 
+    .const 'Sub' $P78 = "15_1271336380.06238" 
     capture_lex $P78
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5110,7 +5110,7 @@
     find_lex $P75, "$past"
     $P76 = $P75."name"()
     if $P76, unless_74_end
-    .const 'Sub' $P78 = "15_1270238409.746" 
+    .const 'Sub' $P78 = "15_1271336380.06238" 
     capture_lex $P78
     $P78()
   unless_74_end:
@@ -5134,7 +5134,7 @@
     unless $P105, loop122_done
     shift $P109, $P105
   loop122_redo:
-    .const 'Sub' $P111 = "16_1270238409.746" 
+    .const 'Sub' $P111 = "16_1271336380.06238" 
     capture_lex $P111
     $P111($P109)
   loop122_next:
@@ -5179,7 +5179,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block77"  :anon :subid("15_1270238409.746") :outer("14_1270238409.746")
+.sub "_block77"  :anon :subid("15_1271336380.06238") :outer("14_1271336380.06238")
 .annotate "line", 71
     new $P79, "Undef"
     .lex "$name", $P79
@@ -5229,7 +5229,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block110"  :anon :subid("16_1270238409.746") :outer("14_1270238409.746")
+.sub "_block110"  :anon :subid("16_1271336380.06238") :outer("14_1271336380.06238")
     .param pmc param_112
 .annotate "line", 82
     .lex "$_", param_112
@@ -5252,7 +5252,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>"  :subid("17_1270238409.746") :method :outer("11_1270238409.746")
+.sub "term:sym<circumfix>"  :subid("17_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_132
 .annotate "line", 87
     new $P131, 'ExceptionHandler'
@@ -5282,7 +5282,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "termish"  :subid("18_1270238409.746") :method :outer("11_1270238409.746")
+.sub "termish"  :subid("18_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_142
 .annotate "line", 89
     new $P141, 'ExceptionHandler'
@@ -5312,7 +5312,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm"  :subid("19_1270238409.746") :method :outer("11_1270238409.746")
+.sub "nullterm"  :subid("19_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_152
 .annotate "line", 90
     new $P151, 'ExceptionHandler'
@@ -5334,7 +5334,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm_alt"  :subid("20_1270238409.746") :method :outer("11_1270238409.746")
+.sub "nullterm_alt"  :subid("20_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_160
 .annotate "line", 91
     new $P159, 'ExceptionHandler'
@@ -5364,7 +5364,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "integer"  :subid("21_1270238409.746") :method :outer("11_1270238409.746")
+.sub "integer"  :subid("21_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_170
 .annotate "line", 93
     new $P169, 'ExceptionHandler'
@@ -5394,7 +5394,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "dec_number"  :subid("22_1270238409.746") :method :outer("11_1270238409.746")
+.sub "dec_number"  :subid("22_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_180
 .annotate "line", 95
     new $P179, 'ExceptionHandler'
@@ -5417,7 +5417,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "decint"  :subid("23_1270238409.746") :method :outer("11_1270238409.746")
+.sub "decint"  :subid("23_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_189
 .annotate "line", 97
     new $P188, 'ExceptionHandler'
@@ -5440,7 +5440,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "hexint"  :subid("24_1270238409.746") :method :outer("11_1270238409.746")
+.sub "hexint"  :subid("24_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_198
 .annotate "line", 98
     new $P197, 'ExceptionHandler'
@@ -5463,7 +5463,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "octint"  :subid("25_1270238409.746") :method :outer("11_1270238409.746")
+.sub "octint"  :subid("25_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_207
 .annotate "line", 99
     new $P206, 'ExceptionHandler'
@@ -5486,7 +5486,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "binint"  :subid("26_1270238409.746") :method :outer("11_1270238409.746")
+.sub "binint"  :subid("26_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_216
 .annotate "line", 100
     new $P215, 'ExceptionHandler'
@@ -5509,10 +5509,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_EXPR"  :subid("27_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_EXPR"  :subid("27_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_225
 .annotate "line", 102
-    .const 'Sub' $P241 = "28_1270238409.746" 
+    .const 'Sub' $P241 = "28_1271336380.06238" 
     capture_lex $P241
     new $P224, 'ExceptionHandler'
     set_addr $P224, control_223
@@ -5534,9 +5534,9 @@
     $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"
@@ -5544,7 +5544,7 @@
     $P237 = $P235."ACCEPTS"($P236)
     if $P237, if_234
 .annotate "line", 108
-    .const 'Sub' $P241 = "28_1270238409.746" 
+    .const 'Sub' $P241 = "28_1271336380.06238" 
     capture_lex $P241
     $P241()
     goto if_234_end
@@ -5583,9 +5583,9 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block240"  :anon :subid("28_1270238409.746") :outer("27_1270238409.746")
+.sub "_block240"  :anon :subid("28_1271336380.06238") :outer("27_1271336380.06238")
 .annotate "line", 108
-    .const 'Sub' $P260 = "29_1270238409.746" 
+    .const 'Sub' $P260 = "29_1271336380.06238" 
     capture_lex $P260
 .annotate "line", 109
     $P242 = root_new ['parrot';'ResizablePMCArray']
@@ -5636,7 +5636,7 @@
     unless $P255, loop265_done
     shift $P258, $P255
   loop265_redo:
-    .const 'Sub' $P260 = "29_1270238409.746" 
+    .const 'Sub' $P260 = "29_1271336380.06238" 
     capture_lex $P260
     $P260($P258)
   loop265_next:
@@ -5659,7 +5659,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block259"  :anon :subid("29_1270238409.746") :outer("28_1270238409.746")
+.sub "_block259"  :anon :subid("29_1271336380.06238") :outer("28_1271336380.06238")
     .param pmc param_261
 .annotate "line", 112
     .lex "$_", param_261
@@ -5671,10 +5671,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_delimited"  :subid("30_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_delimited"  :subid("30_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_288
 .annotate "line", 125
-    .const 'Sub' $P300 = "31_1270238409.746" 
+    .const 'Sub' $P300 = "31_1271336380.06238" 
     capture_lex $P300
     new $P287, 'ExceptionHandler'
     set_addr $P287, control_286
@@ -5717,7 +5717,7 @@
     unless $P294, loop332_done
     shift $P298, $P294
   loop332_redo:
-    .const 'Sub' $P300 = "31_1270238409.746" 
+    .const 'Sub' $P300 = "31_1271336380.06238" 
     capture_lex $P300
     $P300($P298)
   loop332_next:
@@ -5795,7 +5795,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block299"  :anon :subid("31_1270238409.746") :outer("30_1270238409.746")
+.sub "_block299"  :anon :subid("31_1271336380.06238") :outer("30_1271336380.06238")
     .param pmc param_302
 .annotate "line", 129
     new $P301, "Undef"
@@ -5864,7 +5864,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_atom"  :subid("32_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_atom"  :subid("32_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_363
 .annotate "line", 150
     new $P362, 'ExceptionHandler'
@@ -5913,7 +5913,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>"  :subid("33_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<backslash>"  :subid("33_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_379
 .annotate "line", 154
     new $P378, 'ExceptionHandler'
@@ -5934,7 +5934,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>"  :subid("34_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<stopper>"  :subid("34_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_386
 .annotate "line", 155
     new $P385, 'ExceptionHandler'
@@ -5964,7 +5964,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>"  :subid("35_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<bs>"  :subid("35_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_396
 .annotate "line", 157
     new $P395, 'ExceptionHandler'
@@ -5985,7 +5985,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>"  :subid("36_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<nl>"  :subid("36_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_403
 .annotate "line", 158
     new $P402, 'ExceptionHandler'
@@ -6006,7 +6006,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>"  :subid("37_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<cr>"  :subid("37_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_410
 .annotate "line", 159
     new $P409, 'ExceptionHandler'
@@ -6027,7 +6027,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>"  :subid("38_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<tab>"  :subid("38_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_417
 .annotate "line", 160
     new $P416, 'ExceptionHandler'
@@ -6048,7 +6048,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<ff>"  :subid("39_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<ff>"  :subid("39_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_424
 .annotate "line", 161
     new $P423, 'ExceptionHandler'
@@ -6069,7 +6069,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<esc>"  :subid("40_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<esc>"  :subid("40_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_431
 .annotate "line", 162
     new $P430, 'ExceptionHandler'
@@ -6090,7 +6090,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>"  :subid("41_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<hex>"  :subid("41_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_438
 .annotate "line", 164
     new $P437, 'ExceptionHandler'
@@ -6148,7 +6148,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>"  :subid("42_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<oct>"  :subid("42_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_455
 .annotate "line", 168
     new $P454, 'ExceptionHandler'
@@ -6206,7 +6206,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<chr>"  :subid("43_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<chr>"  :subid("43_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_472
 .annotate "line", 172
     new $P471, 'ExceptionHandler'
@@ -6238,7 +6238,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<0>"  :subid("44_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<0>"  :subid("44_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_482
 .annotate "line", 176
     new $P481, 'ExceptionHandler'
@@ -6261,7 +6261,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<misc>"  :subid("45_1270238409.746") :method :outer("11_1270238409.746")
+.sub "quote_escape:sym<misc>"  :subid("45_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_489
 .annotate "line", 180
     new $P488, 'ExceptionHandler'
@@ -6319,7 +6319,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charname"  :subid("46_1270238409.746") :method :outer("11_1270238409.746")
+.sub "charname"  :subid("46_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_508
 .annotate "line", 184
     new $P507, 'ExceptionHandler'
@@ -6392,10 +6392,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charnames"  :subid("47_1270238409.746") :method :outer("11_1270238409.746")
+.sub "charnames"  :subid("47_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_539
 .annotate "line", 192
-    .const 'Sub' $P548 = "48_1270238409.746" 
+    .const 'Sub' $P548 = "48_1271336380.06238" 
     capture_lex $P548
     new $P538, 'ExceptionHandler'
     set_addr $P538, control_537
@@ -6429,7 +6429,7 @@
     unless $P542, loop554_done
     shift $P546, $P542
   loop554_redo:
-    .const 'Sub' $P548 = "48_1270238409.746" 
+    .const 'Sub' $P548 = "48_1271336380.06238" 
     capture_lex $P548
     $P548($P546)
   loop554_next:
@@ -6458,7 +6458,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block547"  :anon :subid("48_1270238409.746") :outer("47_1270238409.746")
+.sub "_block547"  :anon :subid("48_1271336380.06238") :outer("47_1271336380.06238")
     .param pmc param_549
 .annotate "line", 194
     .lex "$_", param_549
@@ -6472,7 +6472,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charspec"  :subid("49_1270238409.746") :method :outer("11_1270238409.746")
+.sub "charspec"  :subid("49_1271336380.06238") :method :outer("11_1271336380.06238")
     .param pmc param_564
 .annotate "line", 198
     new $P563, 'ExceptionHandler'
@@ -6523,7 +6523,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1270238410.509")
+.sub "_block11"  :anon :subid("10_1271336381.18625")
 .annotate "line", 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -6537,9 +6537,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post25") :outer("10_1270238410.509")
+.sub "" :load :init :subid("post25") :outer("10_1271336381.18625")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1270238410.509" 
+    .const 'Sub' $P12 = "10_1271336381.18625" 
     .local pmc block
     set block, $P12
 .annotate "line", 2
@@ -6553,28 +6553,28 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1270238410.509") :outer("10_1270238410.509")
+.sub "_block13"  :subid("11_1271336381.18625") :outer("10_1271336381.18625")
 .annotate "line", 6
-    .const 'Sub' $P187 = "20_1270238410.509" 
+    .const 'Sub' $P187 = "20_1271336381.18625" 
     capture_lex $P187
-    .const 'Sub' $P152 = "18_1270238410.509" 
+    .const 'Sub' $P152 = "18_1271336381.18625" 
     capture_lex $P152
-    .const 'Sub' $P137 = "17_1270238410.509" 
+    .const 'Sub' $P137 = "17_1271336381.18625" 
     capture_lex $P137
-    .const 'Sub' $P121 = "16_1270238410.509" 
+    .const 'Sub' $P121 = "16_1271336381.18625" 
     capture_lex $P121
-    .const 'Sub' $P32 = "13_1270238410.509" 
+    .const 'Sub' $P32 = "13_1271336381.18625" 
     capture_lex $P32
-    .const 'Sub' $P15 = "12_1270238410.509" 
+    .const 'Sub' $P15 = "12_1271336381.18625" 
     capture_lex $P15
 .annotate "line", 14
-    .const 'Sub' $P15 = "12_1270238410.509" 
+    .const 'Sub' $P15 = "12_1271336381.18625" 
     capture_lex $P15
     .lex "value_type", $P15
 .annotate "line", 10
     find_lex $P31, "value_type"
 .annotate "line", 69
-    .const 'Sub' $P187 = "20_1270238410.509" 
+    .const 'Sub' $P187 = "20_1271336381.18625" 
     capture_lex $P187
 .annotate "line", 6
     .return ($P187)
@@ -6582,7 +6582,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post26") :outer("11_1270238410.509")
+.sub "" :load :init :subid("post26") :outer("11_1271336381.18625")
 .annotate "line", 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -6594,7 +6594,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "value_type"  :subid("12_1270238410.509") :outer("11_1270238410.509")
+.sub "value_type"  :subid("12_1271336381.18625") :outer("11_1271336381.18625")
     .param pmc param_18
 .annotate "line", 14
     new $P17, 'ExceptionHandler'
@@ -6638,15 +6638,15 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_exports"  :subid("13_1270238410.509") :method :outer("11_1270238410.509")
+.sub "get_exports"  :subid("13_1271336381.18625") :method :outer("11_1271336381.18625")
     .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_1270238410.509" 
+    .const 'Sub' $P104 = "15_1271336381.18625" 
     capture_lex $P104
-    .const 'Sub' $P83 = "14_1270238410.509" 
+    .const 'Sub' $P83 = "14_1271336381.18625" 
     capture_lex $P83
     new $P34, 'ExceptionHandler'
     set_addr $P34, control_33
@@ -6752,7 +6752,7 @@
     unless $P99, loop116_done
     shift $P102, $P99
   loop116_redo:
-    .const 'Sub' $P104 = "15_1270238410.509" 
+    .const 'Sub' $P104 = "15_1271336381.18625" 
     capture_lex $P104
     $P104($P102)
   loop116_next:
@@ -6782,7 +6782,7 @@
     unless $P78, loop96_done
     shift $P81, $P78
   loop96_redo:
-    .const 'Sub' $P83 = "14_1270238410.509" 
+    .const 'Sub' $P83 = "14_1271336381.18625" 
     capture_lex $P83
     $P83($P81)
   loop96_next:
@@ -6810,7 +6810,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block103"  :anon :subid("15_1270238410.509") :outer("13_1270238410.509")
+.sub "_block103"  :anon :subid("15_1271336381.18625") :outer("13_1271336381.18625")
     .param pmc param_106
 .annotate "line", 40
     new $P105, "Undef"
@@ -6842,7 +6842,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block82"  :anon :subid("14_1270238410.509") :outer("13_1270238410.509")
+.sub "_block82"  :anon :subid("14_1271336381.18625") :outer("13_1271336381.18625")
     .param pmc param_85
 .annotate "line", 34
     new $P84, "Undef"
@@ -6881,7 +6881,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_module"  :subid("16_1270238410.509") :method :outer("11_1270238410.509")
+.sub "get_module"  :subid("16_1271336381.18625") :method :outer("11_1271336381.18625")
     .param pmc param_124
 .annotate "line", 47
     new $P123, 'ExceptionHandler'
@@ -6921,7 +6921,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "language"  :subid("17_1270238410.509") :method :outer("11_1270238410.509")
+.sub "language"  :subid("17_1271336381.18625") :method :outer("11_1271336381.18625")
     .param pmc param_140 :optional
     .param int has_param_140 :opt_flag
 .annotate "line", 53
@@ -6965,10 +6965,10 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "load_module"  :subid("18_1270238410.509") :method :outer("11_1270238410.509")
+.sub "load_module"  :subid("18_1271336381.18625") :method :outer("11_1271336381.18625")
     .param pmc param_155
 .annotate "line", 61
-    .const 'Sub' $P165 = "19_1270238410.509" 
+    .const 'Sub' $P165 = "19_1271336381.18625" 
     capture_lex $P165
     new $P154, 'ExceptionHandler'
     set_addr $P154, control_153
@@ -6995,7 +6995,7 @@
     assign $P163, 0
     store_lex "$loaded", $P163
 .annotate "line", 64
-    .const 'Sub' $P165 = "19_1270238410.509" 
+    .const 'Sub' $P165 = "19_1271336381.18625" 
     capture_lex $P165
     $P165()
 .annotate "line", 65
@@ -7024,7 +7024,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block164"  :anon :subid("19_1270238410.509") :outer("18_1270238410.509")
+.sub "_block164"  :anon :subid("19_1271336381.18625") :outer("18_1271336381.18625")
 .annotate "line", 64
     new $P172, 'ExceptionHandler'
     set_addr $P172, control_171
@@ -7057,11 +7057,11 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "import"  :subid("20_1270238410.509") :method :outer("11_1270238410.509")
+.sub "import"  :subid("20_1271336381.18625") :method :outer("11_1271336381.18625")
     .param pmc param_190
     .param pmc param_191
 .annotate "line", 69
-    .const 'Sub' $P197 = "21_1270238410.509" 
+    .const 'Sub' $P197 = "21_1271336381.18625" 
     capture_lex $P197
     new $P189, 'ExceptionHandler'
     set_addr $P189, control_188
@@ -7083,7 +7083,7 @@
     unless $P192, loop278_done
     shift $P195, $P192
   loop278_redo:
-    .const 'Sub' $P197 = "21_1270238410.509" 
+    .const 'Sub' $P197 = "21_1271336381.18625" 
     capture_lex $P197
     $P197($P195)
   loop278_next:
@@ -7108,14 +7108,14 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block196"  :anon :subid("21_1270238410.509") :outer("20_1270238410.509")
+.sub "_block196"  :anon :subid("21_1271336381.18625") :outer("20_1271336381.18625")
     .param pmc param_200
 .annotate "line", 70
-    .const 'Sub' $P267 = "24_1270238410.509" 
+    .const 'Sub' $P267 = "24_1271336381.18625" 
     capture_lex $P267
-    .const 'Sub' $P247 = "23_1270238410.509" 
+    .const 'Sub' $P247 = "23_1271336381.18625" 
     capture_lex $P247
-    .const 'Sub' $P218 = "22_1270238410.509" 
+    .const 'Sub' $P218 = "22_1271336381.18625" 
     capture_lex $P218
 .annotate "line", 71
     new $P198, "Undef"
@@ -7163,7 +7163,7 @@
     unless $P262, loop275_done
     shift $P265, $P262
   loop275_redo:
-    .const 'Sub' $P267 = "24_1270238410.509" 
+    .const 'Sub' $P267 = "24_1271336381.18625" 
     capture_lex $P267
     $P267($P265)
   loop275_next:
@@ -7195,7 +7195,7 @@
     unless $P242, loop259_done
     shift $P245, $P242
   loop259_redo:
-    .const 'Sub' $P247 = "23_1270238410.509" 
+    .const 'Sub' $P247 = "23_1271336381.18625" 
     capture_lex $P247
     $P247($P245)
   loop259_next:
@@ -7229,7 +7229,7 @@
     unless $P213, loop231_done
     shift $P216, $P213
   loop231_redo:
-    .const 'Sub' $P218 = "22_1270238410.509" 
+    .const 'Sub' $P218 = "22_1271336381.18625" 
     capture_lex $P218
     $P218($P216)
   loop231_next:
@@ -7252,7 +7252,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block266"  :anon :subid("24_1270238410.509") :outer("21_1270238410.509")
+.sub "_block266"  :anon :subid("24_1271336381.18625") :outer("21_1271336381.18625")
     .param pmc param_268
 .annotate "line", 80
     .lex "$_", param_268
@@ -7272,7 +7272,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block246"  :anon :subid("23_1270238410.509") :outer("21_1270238410.509")
+.sub "_block246"  :anon :subid("23_1271336381.18625") :outer("21_1271336381.18625")
     .param pmc param_248
 .annotate "line", 77
     .lex "$_", param_248
@@ -7292,7 +7292,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block217"  :anon :subid("22_1270238410.509") :outer("21_1270238410.509")
+.sub "_block217"  :anon :subid("22_1271336381.18625") :outer("21_1271336381.18625")
     .param pmc param_219
 .annotate "line", 74
     .lex "$_", param_219

Modified: branches/immutable_strings_part1/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/immutable_strings_part1/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1270238421.383")
+.sub "_block11"  :anon :subid("10_1271336396.90314")
 .annotate "line", 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -29,9 +29,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post331") :outer("10_1270238421.383")
+.sub "" :load :init :subid("post331") :outer("10_1271336396.90314")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1270238421.383" 
+    .const 'Sub' $P12 = "10_1271336396.90314" 
     .local pmc block
     set block, $P12
     $P1300 = get_root_global ["parrot"], "P6metaclass"
@@ -40,293 +40,293 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1270238421.383") :outer("10_1270238421.383")
+.sub "_block13"  :subid("11_1271336396.90314") :outer("10_1271336396.90314")
 .annotate "line", 4
     get_hll_global $P1243, ["NQP";"Regex"], "_block1242" 
     capture_lex $P1243
-    .const 'Sub' $P1229 = "317_1270238421.383" 
+    .const 'Sub' $P1229 = "317_1271336396.90314" 
     capture_lex $P1229
-    .const 'Sub' $P1223 = "315_1270238421.383" 
+    .const 'Sub' $P1223 = "315_1271336396.90314" 
     capture_lex $P1223
-    .const 'Sub' $P1217 = "313_1270238421.383" 
+    .const 'Sub' $P1217 = "313_1271336396.90314" 
     capture_lex $P1217
-    .const 'Sub' $P1210 = "311_1270238421.383" 
+    .const 'Sub' $P1210 = "311_1271336396.90314" 
     capture_lex $P1210
-    .const 'Sub' $P1203 = "309_1270238421.383" 
+    .const 'Sub' $P1203 = "309_1271336396.90314" 
     capture_lex $P1203
-    .const 'Sub' $P1196 = "307_1270238421.383" 
+    .const 'Sub' $P1196 = "307_1271336396.90314" 
     capture_lex $P1196
-    .const 'Sub' $P1189 = "305_1270238421.383" 
+    .const 'Sub' $P1189 = "305_1271336396.90314" 
     capture_lex $P1189
-    .const 'Sub' $P1183 = "303_1270238421.383" 
+    .const 'Sub' $P1183 = "303_1271336396.90314" 
     capture_lex $P1183
-    .const 'Sub' $P1176 = "301_1270238421.383" 
+    .const 'Sub' $P1176 = "301_1271336396.90314" 
     capture_lex $P1176
-    .const 'Sub' $P1169 = "299_1270238421.383" 
+    .const 'Sub' $P1169 = "299_1271336396.90314" 
     capture_lex $P1169
-    .const 'Sub' $P1162 = "297_1270238421.383" 
+    .const 'Sub' $P1162 = "297_1271336396.90314" 
     capture_lex $P1162
-    .const 'Sub' $P1155 = "295_1270238421.383" 
+    .const 'Sub' $P1155 = "295_1271336396.90314" 
     capture_lex $P1155
-    .const 'Sub' $P1148 = "293_1270238421.383" 
+    .const 'Sub' $P1148 = "293_1271336396.90314" 
     capture_lex $P1148
-    .const 'Sub' $P1141 = "291_1270238421.383" 
+    .const 'Sub' $P1141 = "291_1271336396.90314" 
     capture_lex $P1141
-    .const 'Sub' $P1134 = "289_1270238421.383" 
+    .const 'Sub' $P1134 = "289_1271336396.90314" 
     capture_lex $P1134
-    .const 'Sub' $P1127 = "287_1270238421.383" 
+    .const 'Sub' $P1127 = "287_1271336396.90314" 
     capture_lex $P1127
-    .const 'Sub' $P1120 = "285_1270238421.383" 
+    .const 'Sub' $P1120 = "285_1271336396.90314" 
     capture_lex $P1120
-    .const 'Sub' $P1113 = "283_1270238421.383" 
+    .const 'Sub' $P1113 = "283_1271336396.90314" 
     capture_lex $P1113
-    .const 'Sub' $P1106 = "281_1270238421.383" 
+    .const 'Sub' $P1106 = "281_1271336396.90314" 
     capture_lex $P1106
-    .const 'Sub' $P1099 = "279_1270238421.383" 
+    .const 'Sub' $P1099 = "279_1271336396.90314" 
     capture_lex $P1099
-    .const 'Sub' $P1092 = "277_1270238421.383" 
+    .const 'Sub' $P1092 = "277_1271336396.90314" 
     capture_lex $P1092
-    .const 'Sub' $P1085 = "275_1270238421.383" 
+    .const 'Sub' $P1085 = "275_1271336396.90314" 
     capture_lex $P1085
-    .const 'Sub' $P1078 = "273_1270238421.383" 
+    .const 'Sub' $P1078 = "273_1271336396.90314" 
     capture_lex $P1078
-    .const 'Sub' $P1071 = "271_1270238421.383" 
+    .const 'Sub' $P1071 = "271_1271336396.90314" 
     capture_lex $P1071
-    .const 'Sub' $P1064 = "269_1270238421.383" 
+    .const 'Sub' $P1064 = "269_1271336396.90314" 
     capture_lex $P1064
-    .const 'Sub' $P1057 = "267_1270238421.383" 
+    .const 'Sub' $P1057 = "267_1271336396.90314" 
     capture_lex $P1057
-    .const 'Sub' $P1050 = "265_1270238421.383" 
+    .const 'Sub' $P1050 = "265_1271336396.90314" 
     capture_lex $P1050
-    .const 'Sub' $P1043 = "263_1270238421.383" 
+    .const 'Sub' $P1043 = "263_1271336396.90314" 
     capture_lex $P1043
-    .const 'Sub' $P1036 = "261_1270238421.383" 
+    .const 'Sub' $P1036 = "261_1271336396.90314" 
     capture_lex $P1036
-    .const 'Sub' $P1029 = "259_1270238421.383" 
+    .const 'Sub' $P1029 = "259_1271336396.90314" 
     capture_lex $P1029
-    .const 'Sub' $P1022 = "257_1270238421.383" 
+    .const 'Sub' $P1022 = "257_1271336396.90314" 
     capture_lex $P1022
-    .const 'Sub' $P1015 = "255_1270238421.383" 
+    .const 'Sub' $P1015 = "255_1271336396.90314" 
     capture_lex $P1015
-    .const 'Sub' $P1008 = "253_1270238421.383" 
+    .const 'Sub' $P1008 = "253_1271336396.90314" 
     capture_lex $P1008
-    .const 'Sub' $P1001 = "251_1270238421.383" 
+    .const 'Sub' $P1001 = "251_1271336396.90314" 
     capture_lex $P1001
-    .const 'Sub' $P995 = "249_1270238421.383" 
+    .const 'Sub' $P995 = "249_1271336396.90314" 
     capture_lex $P995
-    .const 'Sub' $P988 = "247_1270238421.383" 
+    .const 'Sub' $P988 = "247_1271336396.90314" 
     capture_lex $P988
-    .const 'Sub' $P981 = "245_1270238421.383" 
+    .const 'Sub' $P981 = "245_1271336396.90314" 
     capture_lex $P981
-    .const 'Sub' $P974 = "243_1270238421.383" 
+    .const 'Sub' $P974 = "243_1271336396.90314" 
     capture_lex $P974
-    .const 'Sub' $P967 = "241_1270238421.383" 
+    .const 'Sub' $P967 = "241_1271336396.90314" 
     capture_lex $P967
-    .const 'Sub' $P960 = "239_1270238421.383" 
+    .const 'Sub' $P960 = "239_1271336396.90314" 
     capture_lex $P960
-    .const 'Sub' $P953 = "237_1270238421.383" 
+    .const 'Sub' $P953 = "237_1271336396.90314" 
     capture_lex $P953
-    .const 'Sub' $P946 = "235_1270238421.383" 
+    .const 'Sub' $P946 = "235_1271336396.90314" 
     capture_lex $P946
-    .const 'Sub' $P940 = "233_1270238421.383" 
+    .const 'Sub' $P940 = "233_1271336396.90314" 
     capture_lex $P940
-    .const 'Sub' $P934 = "231_1270238421.383" 
+    .const 'Sub' $P934 = "231_1271336396.90314" 
     capture_lex $P934
-    .const 'Sub' $P929 = "229_1270238421.383" 
+    .const 'Sub' $P929 = "229_1271336396.90314" 
     capture_lex $P929
-    .const 'Sub' $P923 = "227_1270238421.383" 
+    .const 'Sub' $P923 = "227_1271336396.90314" 
     capture_lex $P923
-    .const 'Sub' $P917 = "225_1270238421.383" 
+    .const 'Sub' $P917 = "225_1271336396.90314" 
     capture_lex $P917
-    .const 'Sub' $P912 = "223_1270238421.383" 
+    .const 'Sub' $P912 = "223_1271336396.90314" 
     capture_lex $P912
-    .const 'Sub' $P907 = "221_1270238421.383" 
+    .const 'Sub' $P907 = "221_1271336396.90314" 
     capture_lex $P907
-    .const 'Sub' $P900 = "219_1270238421.383" 
+    .const 'Sub' $P900 = "219_1271336396.90314" 
     capture_lex $P900
-    .const 'Sub' $P892 = "217_1270238421.383" 
+    .const 'Sub' $P892 = "217_1271336396.90314" 
     capture_lex $P892
-    .const 'Sub' $P887 = "215_1270238421.383" 
+    .const 'Sub' $P887 = "215_1271336396.90314" 
     capture_lex $P887
-    .const 'Sub' $P882 = "213_1270238421.383" 
+    .const 'Sub' $P882 = "213_1271336396.90314" 
     capture_lex $P882
-    .const 'Sub' $P877 = "211_1270238421.383" 
+    .const 'Sub' $P877 = "211_1271336396.90314" 
     capture_lex $P877
-    .const 'Sub' $P869 = "209_1270238421.383" 
+    .const 'Sub' $P869 = "209_1271336396.90314" 
     capture_lex $P869
-    .const 'Sub' $P861 = "207_1270238421.383" 
+    .const 'Sub' $P861 = "207_1271336396.90314" 
     capture_lex $P861
-    .const 'Sub' $P856 = "205_1270238421.383" 
+    .const 'Sub' $P856 = "205_1271336396.90314" 
     capture_lex $P856
-    .const 'Sub' $P851 = "203_1270238421.383" 
+    .const 'Sub' $P851 = "203_1271336396.90314" 
     capture_lex $P851
-    .const 'Sub' $P845 = "201_1270238421.383" 
+    .const 'Sub' $P845 = "201_1271336396.90314" 
     capture_lex $P845
-    .const 'Sub' $P839 = "199_1270238421.383" 
+    .const 'Sub' $P839 = "199_1271336396.90314" 
     capture_lex $P839
-    .const 'Sub' $P833 = "197_1270238421.383" 
+    .const 'Sub' $P833 = "197_1271336396.90314" 
     capture_lex $P833
-    .const 'Sub' $P827 = "195_1270238421.383" 
+    .const 'Sub' $P827 = "195_1271336396.90314" 
     capture_lex $P827
-    .const 'Sub' $P821 = "193_1270238421.383" 
+    .const 'Sub' $P821 = "193_1271336396.90314" 
     capture_lex $P821
-    .const 'Sub' $P816 = "191_1270238421.383" 
+    .const 'Sub' $P816 = "191_1271336396.90314" 
     capture_lex $P816
-    .const 'Sub' $P811 = "189_1270238421.383" 
+    .const 'Sub' $P811 = "189_1271336396.90314" 
     capture_lex $P811
-    .const 'Sub' $P798 = "185_1270238421.383" 
+    .const 'Sub' $P798 = "185_1271336396.90314" 
     capture_lex $P798
-    .const 'Sub' $P790 = "183_1270238421.383" 
+    .const 'Sub' $P790 = "183_1271336396.90314" 
     capture_lex $P790
-    .const 'Sub' $P784 = "181_1270238421.383" 
+    .const 'Sub' $P784 = "181_1271336396.90314" 
     capture_lex $P784
-    .const 'Sub' $P777 = "179_1270238421.383" 
+    .const 'Sub' $P777 = "179_1271336396.90314" 
     capture_lex $P777
-    .const 'Sub' $P771 = "177_1270238421.383" 
+    .const 'Sub' $P771 = "177_1271336396.90314" 
     capture_lex $P771
-    .const 'Sub' $P763 = "175_1270238421.383" 
+    .const 'Sub' $P763 = "175_1271336396.90314" 
     capture_lex $P763
-    .const 'Sub' $P755 = "173_1270238421.383" 
+    .const 'Sub' $P755 = "173_1271336396.90314" 
     capture_lex $P755
-    .const 'Sub' $P749 = "171_1270238421.383" 
+    .const 'Sub' $P749 = "171_1271336396.90314" 
     capture_lex $P749
-    .const 'Sub' $P743 = "169_1270238421.383" 
+    .const 'Sub' $P743 = "169_1271336396.90314" 
     capture_lex $P743
-    .const 'Sub' $P728 = "165_1270238421.383" 
+    .const 'Sub' $P728 = "165_1271336396.90314" 
     capture_lex $P728
-    .const 'Sub' $P691 = "163_1270238421.383" 
+    .const 'Sub' $P691 = "163_1271336396.90314" 
     capture_lex $P691
-    .const 'Sub' $P683 = "161_1270238421.383" 
+    .const 'Sub' $P683 = "161_1271336396.90314" 
     capture_lex $P683
-    .const 'Sub' $P677 = "159_1270238421.383" 
+    .const 'Sub' $P677 = "159_1271336396.90314" 
     capture_lex $P677
-    .const 'Sub' $P667 = "157_1270238421.383" 
+    .const 'Sub' $P667 = "157_1271336396.90314" 
     capture_lex $P667
-    .const 'Sub' $P652 = "155_1270238421.383" 
+    .const 'Sub' $P652 = "155_1271336396.90314" 
     capture_lex $P652
-    .const 'Sub' $P643 = "153_1270238421.383" 
+    .const 'Sub' $P643 = "153_1271336396.90314" 
     capture_lex $P643
-    .const 'Sub' $P624 = "151_1270238421.383" 
+    .const 'Sub' $P624 = "151_1271336396.90314" 
     capture_lex $P624
-    .const 'Sub' $P600 = "149_1270238421.383" 
+    .const 'Sub' $P600 = "149_1271336396.90314" 
     capture_lex $P600
-    .const 'Sub' $P593 = "147_1270238421.383" 
+    .const 'Sub' $P593 = "147_1271336396.90314" 
     capture_lex $P593
-    .const 'Sub' $P586 = "145_1270238421.383" 
+    .const 'Sub' $P586 = "145_1271336396.90314" 
     capture_lex $P586
-    .const 'Sub' $P576 = "141_1270238421.383" 
+    .const 'Sub' $P576 = "141_1271336396.90314" 
     capture_lex $P576
-    .const 'Sub' $P565 = "139_1270238421.383" 
+    .const 'Sub' $P565 = "139_1271336396.90314" 
     capture_lex $P565
-    .const 'Sub' $P558 = "137_1270238421.383" 
+    .const 'Sub' $P558 = "137_1271336396.90314" 
     capture_lex $P558
-    .const 'Sub' $P551 = "135_1270238421.383" 
+    .const 'Sub' $P551 = "135_1271336396.90314" 
     capture_lex $P551
-    .const 'Sub' $P544 = "133_1270238421.383" 
+    .const 'Sub' $P544 = "133_1271336396.90314" 
     capture_lex $P544
-    .const 'Sub' $P517 = "129_1270238421.383" 
+    .const 'Sub' $P517 = "129_1271336396.90314" 
     capture_lex $P517
-    .const 'Sub' $P508 = "127_1270238421.383" 
+    .const 'Sub' $P508 = "127_1271336396.90314" 
     capture_lex $P508
-    .const 'Sub' $P501 = "125_1270238421.383" 
+    .const 'Sub' $P501 = "125_1271336396.90314" 
     capture_lex $P501
-    .const 'Sub' $P492 = "121_1270238421.383" 
+    .const 'Sub' $P492 = "121_1271336396.90314" 
     capture_lex $P492
-    .const 'Sub' $P487 = "119_1270238421.383" 
+    .const 'Sub' $P487 = "119_1271336396.90314" 
     capture_lex $P487
-    .const 'Sub' $P475 = "117_1270238421.383" 
+    .const 'Sub' $P475 = "117_1271336396.90314" 
     capture_lex $P475
-    .const 'Sub' $P463 = "115_1270238421.383" 
+    .const 'Sub' $P463 = "115_1271336396.90314" 
     capture_lex $P463
-    .const 'Sub' $P455 = "113_1270238421.383" 
+    .const 'Sub' $P455 = "113_1271336396.90314" 
     capture_lex $P455
-    .const 'Sub' $P450 = "111_1270238421.383" 
+    .const 'Sub' $P450 = "111_1271336396.90314" 
     capture_lex $P450
-    .const 'Sub' $P444 = "109_1270238421.383" 
+    .const 'Sub' $P444 = "109_1271336396.90314" 
     capture_lex $P444
-    .const 'Sub' $P438 = "107_1270238421.383" 
+    .const 'Sub' $P438 = "107_1271336396.90314" 
     capture_lex $P438
-    .const 'Sub' $P432 = "105_1270238421.383" 
+    .const 'Sub' $P432 = "105_1271336396.90314" 
     capture_lex $P432
-    .const 'Sub' $P426 = "103_1270238421.383" 
+    .const 'Sub' $P426 = "103_1271336396.90314" 
     capture_lex $P426
-    .const 'Sub' $P420 = "101_1270238421.383" 
+    .const 'Sub' $P420 = "101_1271336396.90314" 
     capture_lex $P420
-    .const 'Sub' $P414 = "99_1270238421.383" 
+    .const 'Sub' $P414 = "99_1271336396.90314" 
     capture_lex $P414
-    .const 'Sub' $P408 = "97_1270238421.383" 
+    .const 'Sub' $P408 = "97_1271336396.90314" 
     capture_lex $P408
-    .const 'Sub' $P402 = "95_1270238421.383" 
+    .const 'Sub' $P402 = "95_1271336396.90314" 
     capture_lex $P402
-    .const 'Sub' $P394 = "93_1270238421.383" 
+    .const 'Sub' $P394 = "93_1271336396.90314" 
     capture_lex $P394
-    .const 'Sub' $P386 = "91_1270238421.383" 
+    .const 'Sub' $P386 = "91_1271336396.90314" 
     capture_lex $P386
-    .const 'Sub' $P374 = "87_1270238421.383" 
+    .const 'Sub' $P374 = "87_1271336396.90314" 
     capture_lex $P374
-    .const 'Sub' $P366 = "85_1270238421.383" 
+    .const 'Sub' $P366 = "85_1271336396.90314" 
     capture_lex $P366
-    .const 'Sub' $P356 = "81_1270238421.383" 
+    .const 'Sub' $P356 = "81_1271336396.90314" 
     capture_lex $P356
-    .const 'Sub' $P349 = "79_1270238421.383" 
+    .const 'Sub' $P349 = "79_1271336396.90314" 
     capture_lex $P349
-    .const 'Sub' $P342 = "77_1270238421.383" 
+    .const 'Sub' $P342 = "77_1271336396.90314" 
     capture_lex $P342
-    .const 'Sub' $P330 = "73_1270238421.383" 
+    .const 'Sub' $P330 = "73_1271336396.90314" 
     capture_lex $P330
-    .const 'Sub' $P322 = "71_1270238421.383" 
+    .const 'Sub' $P322 = "71_1271336396.90314" 
     capture_lex $P322
-    .const 'Sub' $P314 = "69_1270238421.383" 
+    .const 'Sub' $P314 = "69_1271336396.90314" 
     capture_lex $P314
-    .const 'Sub' $P294 = "67_1270238421.383" 
+    .const 'Sub' $P294 = "67_1271336396.90314" 
     capture_lex $P294
-    .const 'Sub' $P285 = "65_1270238421.383" 
+    .const 'Sub' $P285 = "65_1271336396.90314" 
     capture_lex $P285
-    .const 'Sub' $P267 = "62_1270238421.383" 
+    .const 'Sub' $P267 = "62_1271336396.90314" 
     capture_lex $P267
-    .const 'Sub' $P247 = "60_1270238421.383" 
+    .const 'Sub' $P247 = "60_1271336396.90314" 
     capture_lex $P247
-    .const 'Sub' $P238 = "56_1270238421.383" 
+    .const 'Sub' $P238 = "56_1271336396.90314" 
     capture_lex $P238
-    .const 'Sub' $P233 = "54_1270238421.383" 
+    .const 'Sub' $P233 = "54_1271336396.90314" 
     capture_lex $P233
-    .const 'Sub' $P224 = "50_1270238421.383" 
+    .const 'Sub' $P224 = "50_1271336396.90314" 
     capture_lex $P224
-    .const 'Sub' $P219 = "48_1270238421.383" 
+    .const 'Sub' $P219 = "48_1271336396.90314" 
     capture_lex $P219
-    .const 'Sub' $P211 = "46_1270238421.383" 
+    .const 'Sub' $P211 = "46_1271336396.90314" 
     capture_lex $P211
-    .const 'Sub' $P204 = "44_1270238421.383" 
+    .const 'Sub' $P204 = "44_1271336396.90314" 
     capture_lex $P204
-    .const 'Sub' $P198 = "42_1270238421.383" 
+    .const 'Sub' $P198 = "42_1271336396.90314" 
     capture_lex $P198
-    .const 'Sub' $P190 = "40_1270238421.383" 
+    .const 'Sub' $P190 = "40_1271336396.90314" 
     capture_lex $P190
-    .const 'Sub' $P184 = "38_1270238421.383" 
+    .const 'Sub' $P184 = "38_1271336396.90314" 
     capture_lex $P184
-    .const 'Sub' $P178 = "36_1270238421.383" 
+    .const 'Sub' $P178 = "36_1271336396.90314" 
     capture_lex $P178
-    .const 'Sub' $P162 = "33_1270238421.383" 
+    .const 'Sub' $P162 = "33_1271336396.90314" 
     capture_lex $P162
-    .const 'Sub' $P149 = "31_1270238421.383" 
+    .const 'Sub' $P149 = "31_1271336396.90314" 
     capture_lex $P149
-    .const 'Sub' $P142 = "29_1270238421.383" 
+    .const 'Sub' $P142 = "29_1271336396.90314" 
     capture_lex $P142
-    .const 'Sub' $P96 = "26_1270238421.383" 
+    .const 'Sub' $P96 = "26_1271336396.90314" 
     capture_lex $P96
-    .const 'Sub' $P78 = "23_1270238421.383" 
+    .const 'Sub' $P78 = "23_1271336396.90314" 
     capture_lex $P78
-    .const 'Sub' $P68 = "21_1270238421.383" 
+    .const 'Sub' $P68 = "21_1271336396.90314" 
     capture_lex $P68
-    .const 'Sub' $P54 = "19_1270238421.383" 
+    .const 'Sub' $P54 = "19_1271336396.90314" 
     capture_lex $P54
-    .const 'Sub' $P46 = "17_1270238421.383" 
+    .const 'Sub' $P46 = "17_1271336396.90314" 
     capture_lex $P46
-    .const 'Sub' $P39 = "15_1270238421.383" 
+    .const 'Sub' $P39 = "15_1271336396.90314" 
     capture_lex $P39
-    .const 'Sub' $P33 = "13_1270238421.383" 
+    .const 'Sub' $P33 = "13_1271336396.90314" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1270238421.383" 
+    .const 'Sub' $P15 = "12_1271336396.90314" 
     capture_lex $P15
 .annotate "line", 535
     get_hll_global $P1243, ["NQP";"Regex"], "_block1242" 
@@ -338,7 +338,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post332") :outer("11_1270238421.383")
+.sub "" :load :init :subid("post332") :outer("11_1271336396.90314")
 .annotate "line", 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
@@ -395,7 +395,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "TOP"  :subid("12_1270238421.383") :method :outer("11_1270238421.383")
+.sub "TOP"  :subid("12_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -478,7 +478,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1270238421.383") :method :outer("11_1270238421.383")
+.sub "identifier"  :subid("13_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx34_tgt
     .local int rx34_pos
@@ -536,7 +536,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1270238421.383") :method
+.sub "!PREFIX__identifier"  :subid("14_1271336396.90314") :method
 .annotate "line", 4
     $P36 = self."!PREFIX__!subrule"("ident", "")
     new $P37, "ResizablePMCArray"
@@ -546,7 +546,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1270238421.383") :method :outer("11_1270238421.383")
+.sub "name"  :subid("15_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx40_tgt
     .local int rx40_pos
@@ -620,7 +620,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1270238421.383") :method
+.sub "!PREFIX__name"  :subid("16_1271336396.90314") :method
 .annotate "line", 4
     new $P42, "ResizablePMCArray"
     push $P42, ""
@@ -629,7 +629,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1270238421.383") :method :outer("11_1270238421.383")
+.sub "deflongname"  :subid("17_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx47_tgt
     .local int rx47_pos
@@ -702,7 +702,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1270238421.383") :method
+.sub "!PREFIX__deflongname"  :subid("18_1271336396.90314") :method
 .annotate "line", 4
     $P49 = self."!PREFIX__!subrule"("identifier", "")
     new $P50, "ResizablePMCArray"
@@ -712,7 +712,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1270238421.383") :method :outer("11_1270238421.383")
+.sub "ENDSTMT"  :subid("19_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx55_tgt
     .local int rx55_pos
@@ -844,7 +844,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1270238421.383") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1271336396.90314") :method
 .annotate "line", 4
     new $P57, "ResizablePMCArray"
     push $P57, ""
@@ -853,7 +853,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1270238421.383") :method :outer("11_1270238421.383")
+.sub "ws"  :subid("21_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx69_tgt
     .local int rx69_pos
@@ -979,7 +979,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1270238421.383") :method
+.sub "!PREFIX__ws"  :subid("22_1271336396.90314") :method
 .annotate "line", 4
     new $P71, "ResizablePMCArray"
     push $P71, ""
@@ -989,9 +989,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1270238421.383") :method :outer("11_1270238421.383")
+.sub "unv"  :subid("23_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
-    .const 'Sub' $P86 = "25_1270238421.383" 
+    .const 'Sub' $P86 = "25_1271336396.90314" 
     capture_lex $P86
     .local string rx79_tgt
     .local int rx79_pos
@@ -1037,7 +1037,7 @@
   rxanchor84_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx79_cur."!cursor_pos"(rx79_pos)
-    .const 'Sub' $P86 = "25_1270238421.383" 
+    .const 'Sub' $P86 = "25_1271336396.90314" 
     capture_lex $P86
     $P10 = rx79_cur."before"($P86)
     unless $P10, rx79_fail
@@ -1116,7 +1116,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1270238421.383") :method
+.sub "!PREFIX__unv"  :subid("24_1271336396.90314") :method
 .annotate "line", 4
     new $P81, "ResizablePMCArray"
     push $P81, ""
@@ -1127,7 +1127,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block85"  :anon :subid("25_1270238421.383") :method :outer("23_1270238421.383")
+.sub "_block85"  :anon :subid("25_1271336396.90314") :method :outer("23_1271336396.90314")
 .annotate "line", 44
     .local string rx87_tgt
     .local int rx87_pos
@@ -1217,9 +1217,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1270238421.383") :method :outer("11_1270238421.383")
+.sub "pod_comment"  :subid("26_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
-    .const 'Sub' $P133 = "28_1270238421.383" 
+    .const 'Sub' $P133 = "28_1271336396.90314" 
     capture_lex $P133
     .local string rx97_tgt
     .local int rx97_pos
@@ -1675,7 +1675,7 @@
   rxanchor131_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx97_cur."!cursor_pos"(rx97_pos)
-    .const 'Sub' $P133 = "28_1270238421.383" 
+    .const 'Sub' $P133 = "28_1271336396.90314" 
     capture_lex $P133
     $P10 = rx97_cur."before"($P133)
     unless $P10, rx97_fail
@@ -1726,7 +1726,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1270238421.383") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1271336396.90314") :method
 .annotate "line", 4
     new $P99, "ResizablePMCArray"
     push $P99, ""
@@ -1735,7 +1735,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block132"  :anon :subid("28_1270238421.383") :method :outer("26_1270238421.383")
+.sub "_block132"  :anon :subid("28_1271336396.90314") :method :outer("26_1271336396.90314")
 .annotate "line", 67
     .local string rx134_tgt
     .local int rx134_pos
@@ -1854,7 +1854,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1270238421.383") :method :outer("11_1270238421.383")
+.sub "comp_unit"  :subid("29_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx143_tgt
     .local int rx143_pos
@@ -1933,7 +1933,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1270238421.383") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1271336396.90314") :method
 .annotate "line", 4
     $P145 = self."!PREFIX__!subrule"("", "")
     new $P146, "ResizablePMCArray"
@@ -1943,7 +1943,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statementlist"  :subid("31_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx150_tgt
     .local int rx150_pos
@@ -2051,7 +2051,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1270238421.383") :method
+.sub "!PREFIX__statementlist"  :subid("32_1271336396.90314") :method
 .annotate "line", 4
     new $P152, "ResizablePMCArray"
     push $P152, ""
@@ -2061,9 +2061,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement"  :subid("33_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
-    .const 'Sub' $P168 = "35_1270238421.383" 
+    .const 'Sub' $P168 = "35_1271336396.90314" 
     capture_lex $P168
     .local string rx163_tgt
     .local int rx163_pos
@@ -2098,7 +2098,7 @@
 .annotate "line", 93
   # rx subrule "before" subtype=zerowidth negate=1
     rx163_cur."!cursor_pos"(rx163_pos)
-    .const 'Sub' $P168 = "35_1270238421.383" 
+    .const 'Sub' $P168 = "35_1271336396.90314" 
     capture_lex $P168
     $P10 = rx163_cur."before"($P168)
     if $P10, rx163_fail
@@ -2203,7 +2203,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1270238421.383") :method
+.sub "!PREFIX__statement"  :subid("34_1271336396.90314") :method
 .annotate "line", 4
     new $P165, "ResizablePMCArray"
     push $P165, ""
@@ -2212,7 +2212,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block167"  :anon :subid("35_1270238421.383") :method :outer("33_1270238421.383")
+.sub "_block167"  :anon :subid("35_1271336396.90314") :method :outer("33_1271336396.90314")
 .annotate "line", 93
     .local string rx169_tgt
     .local int rx169_pos
@@ -2276,7 +2276,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1270238421.383") :method :outer("11_1270238421.383")
+.sub "eat_terminator"  :subid("36_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx179_tgt
     .local int rx179_pos
@@ -2363,7 +2363,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1270238421.383") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1271336396.90314") :method
 .annotate "line", 4
     new $P181, "ResizablePMCArray"
     push $P181, ""
@@ -2375,7 +2375,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1270238421.383") :method :outer("11_1270238421.383")
+.sub "xblock"  :subid("38_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx185_tgt
     .local int rx185_pos
@@ -2446,7 +2446,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1270238421.383") :method
+.sub "!PREFIX__xblock"  :subid("39_1271336396.90314") :method
 .annotate "line", 4
     $P187 = self."!PREFIX__!subrule"("EXPR", "")
     new $P188, "ResizablePMCArray"
@@ -2456,7 +2456,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1270238421.383") :method :outer("11_1270238421.383")
+.sub "pblock"  :subid("40_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx191_tgt
     .local int rx191_pos
@@ -2575,7 +2575,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1270238421.383") :method
+.sub "!PREFIX__pblock"  :subid("41_1271336396.90314") :method
 .annotate "line", 4
     $P193 = self."!PREFIX__!subrule"("", "")
     $P194 = self."!PREFIX__!subrule"("", "")
@@ -2588,7 +2588,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1270238421.383") :method :outer("11_1270238421.383")
+.sub "lambda"  :subid("42_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx199_tgt
     .local int rx199_pos
@@ -2659,7 +2659,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1270238421.383") :method
+.sub "!PREFIX__lambda"  :subid("43_1271336396.90314") :method
 .annotate "line", 4
     new $P201, "ResizablePMCArray"
     push $P201, "<->"
@@ -2669,7 +2669,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1270238421.383") :method :outer("11_1270238421.383")
+.sub "block"  :subid("44_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx205_tgt
     .local int rx205_pos
@@ -2752,7 +2752,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1270238421.383") :method
+.sub "!PREFIX__block"  :subid("45_1271336396.90314") :method
 .annotate "line", 4
     $P207 = self."!PREFIX__!subrule"("", "")
     new $P208, "ResizablePMCArray"
@@ -2763,7 +2763,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1270238421.383") :method :outer("11_1270238421.383")
+.sub "blockoid"  :subid("46_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx212_tgt
     .local int rx212_pos
@@ -2858,7 +2858,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1270238421.383") :method
+.sub "!PREFIX__blockoid"  :subid("47_1271336396.90314") :method
 .annotate "line", 4
     $P214 = self."!PREFIX__!subrule"("", "")
     new $P215, "ResizablePMCArray"
@@ -2868,7 +2868,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1270238421.383") :method :outer("11_1270238421.383")
+.sub "newpad"  :subid("48_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx220_tgt
     .local int rx220_pos
@@ -2919,7 +2919,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1270238421.383") :method
+.sub "!PREFIX__newpad"  :subid("49_1271336396.90314") :method
 .annotate "line", 4
     new $P222, "ResizablePMCArray"
     push $P222, ""
@@ -2928,7 +2928,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("50_1270238421.383") :method :outer("11_1270238421.383")
+.sub "finishpad"  :subid("50_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx225_tgt
     .local int rx225_pos
@@ -2979,7 +2979,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("51_1270238421.383") :method
+.sub "!PREFIX__finishpad"  :subid("51_1271336396.90314") :method
 .annotate "line", 4
     new $P227, "ResizablePMCArray"
     push $P227, ""
@@ -2988,7 +2988,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("52_1270238421.383") :method
+.sub "terminator"  :subid("52_1271336396.90314") :method
 .annotate "line", 144
     $P230 = self."!protoregex"("terminator")
     .return ($P230)
@@ -2996,7 +2996,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("53_1270238421.383") :method
+.sub "!PREFIX__terminator"  :subid("53_1271336396.90314") :method
 .annotate "line", 144
     $P232 = self."!PREFIX__!protoregex"("terminator")
     .return ($P232)
@@ -3004,7 +3004,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("54_1270238421.383") :method :outer("11_1270238421.383")
+.sub "terminator:sym<;>"  :subid("54_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx234_tgt
     .local int rx234_pos
@@ -3061,7 +3061,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("55_1270238421.383") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("55_1271336396.90314") :method
 .annotate "line", 4
     new $P236, "ResizablePMCArray"
     push $P236, ";"
@@ -3070,7 +3070,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("56_1270238421.383") :method :outer("11_1270238421.383")
+.sub "terminator:sym<}>"  :subid("56_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx239_tgt
     .local int rx239_pos
@@ -3127,7 +3127,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("57_1270238421.383") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("57_1271336396.90314") :method
 .annotate "line", 4
     new $P241, "ResizablePMCArray"
     push $P241, "}"
@@ -3136,7 +3136,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("58_1270238421.383") :method
+.sub "statement_control"  :subid("58_1271336396.90314") :method
 .annotate "line", 151
     $P244 = self."!protoregex"("statement_control")
     .return ($P244)
@@ -3144,7 +3144,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("59_1270238421.383") :method
+.sub "!PREFIX__statement_control"  :subid("59_1271336396.90314") :method
 .annotate "line", 151
     $P246 = self."!PREFIX__!protoregex"("statement_control")
     .return ($P246)
@@ -3152,7 +3152,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("60_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_control:sym<if>"  :subid("60_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx248_tgt
     .local int rx248_pos
@@ -3162,7 +3162,7 @@
     .local pmc rx248_cur
     (rx248_cur, rx248_pos, rx248_tgt) = self."!cursor_start"()
     rx248_cur."!cursor_debug"("START ", "statement_control:sym<if>")
-    rx248_cur."!cursor_caparray"("xblock", "else")
+    rx248_cur."!cursor_caparray"("else", "xblock")
     .lex unicode:"$\x{a2}", rx248_cur
     .local pmc match
     .lex "$/", match
@@ -3346,7 +3346,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("61_1270238421.383") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("61_1271336396.90314") :method
 .annotate "line", 4
     new $P250, "ResizablePMCArray"
     push $P250, "if"
@@ -3355,9 +3355,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("62_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_control:sym<unless>"  :subid("62_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
-    .const 'Sub' $P278 = "64_1270238421.383" 
+    .const 'Sub' $P278 = "64_1271336396.90314" 
     capture_lex $P278
     .local string rx268_tgt
     .local int rx268_pos
@@ -3445,7 +3445,7 @@
     rx268_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
     rx268_cur."!cursor_pos"(rx268_pos)
-    .const 'Sub' $P278 = "64_1270238421.383" 
+    .const 'Sub' $P278 = "64_1271336396.90314" 
     capture_lex $P278
     $P10 = rx268_cur."before"($P278)
     if $P10, rx268_fail
@@ -3497,7 +3497,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("63_1270238421.383") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("63_1271336396.90314") :method
 .annotate "line", 4
     new $P270, "ResizablePMCArray"
     push $P270, "unless"
@@ -3506,7 +3506,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block277"  :anon :subid("64_1270238421.383") :method :outer("62_1270238421.383")
+.sub "_block277"  :anon :subid("64_1271336396.90314") :method :outer("62_1271336396.90314")
 .annotate "line", 163
     .local string rx279_tgt
     .local int rx279_pos
@@ -3562,7 +3562,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("65_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_control:sym<while>"  :subid("65_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx286_tgt
     .local int rx286_pos
@@ -3672,7 +3672,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("66_1270238421.383") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("66_1271336396.90314") :method
 .annotate "line", 4
     new $P288, "ResizablePMCArray"
     push $P288, "until"
@@ -3682,7 +3682,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("67_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_control:sym<repeat>"  :subid("67_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx295_tgt
     .local int rx295_pos
@@ -3917,7 +3917,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("68_1270238421.383") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("68_1271336396.90314") :method
 .annotate "line", 4
     new $P297, "ResizablePMCArray"
     push $P297, "repeat"
@@ -3926,7 +3926,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("69_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_control:sym<for>"  :subid("69_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx315_tgt
     .local int rx315_pos
@@ -4023,7 +4023,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("70_1270238421.383") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("70_1271336396.90314") :method
 .annotate "line", 4
     new $P317, "ResizablePMCArray"
     push $P317, "for"
@@ -4032,7 +4032,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("71_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_control:sym<CATCH>"  :subid("71_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx323_tgt
     .local int rx323_pos
@@ -4129,7 +4129,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("72_1270238421.383") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("72_1271336396.90314") :method
 .annotate "line", 4
     new $P325, "ResizablePMCArray"
     push $P325, "CATCH"
@@ -4138,7 +4138,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("73_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_control:sym<CONTROL>"  :subid("73_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx331_tgt
     .local int rx331_pos
@@ -4235,7 +4235,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("74_1270238421.383") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("74_1271336396.90314") :method
 .annotate "line", 4
     new $P333, "ResizablePMCArray"
     push $P333, "CONTROL"
@@ -4244,7 +4244,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("75_1270238421.383") :method
+.sub "statement_prefix"  :subid("75_1271336396.90314") :method
 .annotate "line", 194
     $P339 = self."!protoregex"("statement_prefix")
     .return ($P339)
@@ -4252,7 +4252,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("76_1270238421.383") :method
+.sub "!PREFIX__statement_prefix"  :subid("76_1271336396.90314") :method
 .annotate "line", 194
     $P341 = self."!PREFIX__!protoregex"("statement_prefix")
     .return ($P341)
@@ -4260,7 +4260,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("77_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_prefix:sym<INIT>"  :subid("77_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx343_tgt
     .local int rx343_pos
@@ -4339,7 +4339,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("78_1270238421.383") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("78_1271336396.90314") :method
 .annotate "line", 4
     $P345 = self."!PREFIX__!subrule"("blorst", "INIT")
     new $P346, "ResizablePMCArray"
@@ -4349,7 +4349,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("79_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_prefix:sym<try>"  :subid("79_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx350_tgt
     .local int rx350_pos
@@ -4430,7 +4430,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("80_1270238421.383") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("80_1271336396.90314") :method
 .annotate "line", 4
     $P352 = self."!PREFIX__!subrule"("blorst", "try")
     new $P353, "ResizablePMCArray"
@@ -4440,7 +4440,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("81_1270238421.383") :method :outer("11_1270238421.383")
+.sub "blorst"  :subid("81_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx357_tgt
     .local int rx357_pos
@@ -4529,7 +4529,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("82_1270238421.383") :method
+.sub "!PREFIX__blorst"  :subid("82_1271336396.90314") :method
 .annotate "line", 4
     new $P359, "ResizablePMCArray"
     push $P359, ""
@@ -4538,7 +4538,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("83_1270238421.383") :method
+.sub "statement_mod_cond"  :subid("83_1271336396.90314") :method
 .annotate "line", 208
     $P363 = self."!protoregex"("statement_mod_cond")
     .return ($P363)
@@ -4546,7 +4546,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("84_1270238421.383") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("84_1271336396.90314") :method
 .annotate "line", 208
     $P365 = self."!PREFIX__!protoregex"("statement_mod_cond")
     .return ($P365)
@@ -4554,7 +4554,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("85_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_mod_cond:sym<if>"  :subid("85_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx367_tgt
     .local int rx367_pos
@@ -4643,7 +4643,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("86_1270238421.383") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("86_1271336396.90314") :method
 .annotate "line", 4
     new $P369, "ResizablePMCArray"
     push $P369, "if"
@@ -4652,7 +4652,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("87_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_mod_cond:sym<unless>"  :subid("87_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx375_tgt
     .local int rx375_pos
@@ -4741,7 +4741,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("88_1270238421.383") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("88_1271336396.90314") :method
 .annotate "line", 4
     new $P377, "ResizablePMCArray"
     push $P377, "unless"
@@ -4750,7 +4750,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("89_1270238421.383") :method
+.sub "statement_mod_loop"  :subid("89_1271336396.90314") :method
 .annotate "line", 213
     $P383 = self."!protoregex"("statement_mod_loop")
     .return ($P383)
@@ -4758,7 +4758,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("90_1270238421.383") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("90_1271336396.90314") :method
 .annotate "line", 213
     $P385 = self."!PREFIX__!protoregex"("statement_mod_loop")
     .return ($P385)
@@ -4766,7 +4766,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("91_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_mod_loop:sym<while>"  :subid("91_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx387_tgt
     .local int rx387_pos
@@ -4855,7 +4855,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("92_1270238421.383") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("92_1271336396.90314") :method
 .annotate "line", 4
     new $P389, "ResizablePMCArray"
     push $P389, "while"
@@ -4864,7 +4864,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("93_1270238421.383") :method :outer("11_1270238421.383")
+.sub "statement_mod_loop:sym<until>"  :subid("93_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx395_tgt
     .local int rx395_pos
@@ -4953,7 +4953,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("94_1270238421.383") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("94_1271336396.90314") :method
 .annotate "line", 4
     new $P397, "ResizablePMCArray"
     push $P397, "until"
@@ -4962,7 +4962,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("95_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<fatarrow>"  :subid("95_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx403_tgt
     .local int rx403_pos
@@ -5020,7 +5020,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("96_1270238421.383") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("96_1271336396.90314") :method
 .annotate "line", 4
     $P405 = self."!PREFIX__!subrule"("fatarrow", "")
     new $P406, "ResizablePMCArray"
@@ -5030,7 +5030,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("97_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<colonpair>"  :subid("97_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx409_tgt
     .local int rx409_pos
@@ -5088,7 +5088,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("98_1270238421.383") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("98_1271336396.90314") :method
 .annotate "line", 4
     $P411 = self."!PREFIX__!subrule"("colonpair", "")
     new $P412, "ResizablePMCArray"
@@ -5098,7 +5098,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("99_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<variable>"  :subid("99_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx415_tgt
     .local int rx415_pos
@@ -5156,7 +5156,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("100_1270238421.383") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("100_1271336396.90314") :method
 .annotate "line", 4
     $P417 = self."!PREFIX__!subrule"("variable", "")
     new $P418, "ResizablePMCArray"
@@ -5166,7 +5166,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("101_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<package_declarator>"  :subid("101_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx421_tgt
     .local int rx421_pos
@@ -5224,7 +5224,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("102_1270238421.383") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("102_1271336396.90314") :method
 .annotate "line", 4
     $P423 = self."!PREFIX__!subrule"("package_declarator", "")
     new $P424, "ResizablePMCArray"
@@ -5234,7 +5234,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("103_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<scope_declarator>"  :subid("103_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx427_tgt
     .local int rx427_pos
@@ -5292,7 +5292,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("104_1270238421.383") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("104_1271336396.90314") :method
 .annotate "line", 4
     $P429 = self."!PREFIX__!subrule"("scope_declarator", "")
     new $P430, "ResizablePMCArray"
@@ -5302,7 +5302,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("105_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<routine_declarator>"  :subid("105_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx433_tgt
     .local int rx433_pos
@@ -5360,7 +5360,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("106_1270238421.383") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("106_1271336396.90314") :method
 .annotate "line", 4
     $P435 = self."!PREFIX__!subrule"("routine_declarator", "")
     new $P436, "ResizablePMCArray"
@@ -5370,7 +5370,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("107_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<regex_declarator>"  :subid("107_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx439_tgt
     .local int rx439_pos
@@ -5428,7 +5428,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("108_1270238421.383") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("108_1271336396.90314") :method
 .annotate "line", 4
     $P441 = self."!PREFIX__!subrule"("regex_declarator", "")
     new $P442, "ResizablePMCArray"
@@ -5438,7 +5438,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("109_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<statement_prefix>"  :subid("109_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx445_tgt
     .local int rx445_pos
@@ -5496,7 +5496,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("110_1270238421.383") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("110_1271336396.90314") :method
 .annotate "line", 4
     $P447 = self."!PREFIX__!subrule"("statement_prefix", "")
     new $P448, "ResizablePMCArray"
@@ -5506,7 +5506,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("111_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<lambda>"  :subid("111_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx451_tgt
     .local int rx451_pos
@@ -5568,7 +5568,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("112_1270238421.383") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("112_1271336396.90314") :method
 .annotate "line", 4
     new $P453, "ResizablePMCArray"
     push $P453, ""
@@ -5577,7 +5577,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("113_1270238421.383") :method :outer("11_1270238421.383")
+.sub "fatarrow"  :subid("113_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx456_tgt
     .local int rx456_pos
@@ -5670,7 +5670,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("114_1270238421.383") :method
+.sub "!PREFIX__fatarrow"  :subid("114_1271336396.90314") :method
 .annotate "line", 4
     $P458 = self."!PREFIX__!subrule"("key", "")
     new $P459, "ResizablePMCArray"
@@ -5680,7 +5680,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("115_1270238421.383") :method :outer("11_1270238421.383")
+.sub "colonpair"  :subid("115_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx464_tgt
     .local int rx464_pos
@@ -5809,7 +5809,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("116_1270238421.383") :method
+.sub "!PREFIX__colonpair"  :subid("116_1271336396.90314") :method
 .annotate "line", 4
     $P466 = self."!PREFIX__!subrule"("circumfix", ":")
     $P467 = self."!PREFIX__!subrule"("identifier", ":")
@@ -5823,7 +5823,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("117_1270238421.383") :method :outer("11_1270238421.383")
+.sub "variable"  :subid("117_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx476_tgt
     .local int rx476_pos
@@ -5978,7 +5978,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("118_1270238421.383") :method
+.sub "!PREFIX__variable"  :subid("118_1271336396.90314") :method
 .annotate "line", 4
     $P478 = self."!PREFIX__!subrule"("sigil", "")
     $P479 = self."!PREFIX__!subrule"("sigil", "")
@@ -5993,7 +5993,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("119_1270238421.383") :method :outer("11_1270238421.383")
+.sub "sigil"  :subid("119_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx488_tgt
     .local int rx488_pos
@@ -6051,7 +6051,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("120_1270238421.383") :method
+.sub "!PREFIX__sigil"  :subid("120_1271336396.90314") :method
 .annotate "line", 4
     new $P490, "ResizablePMCArray"
     push $P490, "&"
@@ -6063,7 +6063,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("121_1270238421.383") :method :outer("11_1270238421.383")
+.sub "twigil"  :subid("121_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx493_tgt
     .local int rx493_pos
@@ -6121,7 +6121,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("122_1270238421.383") :method
+.sub "!PREFIX__twigil"  :subid("122_1271336396.90314") :method
 .annotate "line", 4
     new $P495, "ResizablePMCArray"
     push $P495, "?"
@@ -6132,7 +6132,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("123_1270238421.383") :method
+.sub "package_declarator"  :subid("123_1271336396.90314") :method
 .annotate "line", 253
     $P498 = self."!protoregex"("package_declarator")
     .return ($P498)
@@ -6140,7 +6140,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("124_1270238421.383") :method
+.sub "!PREFIX__package_declarator"  :subid("124_1271336396.90314") :method
 .annotate "line", 253
     $P500 = self."!PREFIX__!protoregex"("package_declarator")
     .return ($P500)
@@ -6148,7 +6148,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("125_1270238421.383") :method :outer("11_1270238421.383")
+.sub "package_declarator:sym<module>"  :subid("125_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx502_tgt
     .local int rx502_pos
@@ -6227,7 +6227,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("126_1270238421.383") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("126_1271336396.90314") :method
 .annotate "line", 4
     $P504 = self."!PREFIX__!subrule"("package_def", "module")
     new $P505, "ResizablePMCArray"
@@ -6237,7 +6237,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("127_1270238421.383") :method :outer("11_1270238421.383")
+.sub "package_declarator:sym<class>"  :subid("127_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx509_tgt
     .local int rx509_pos
@@ -6329,7 +6329,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("128_1270238421.383") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("128_1271336396.90314") :method
 .annotate "line", 4
     $P511 = self."!PREFIX__!subrule"("package_def", "grammar")
     $P512 = self."!PREFIX__!subrule"("package_def", "class")
@@ -6341,7 +6341,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("129_1270238421.383") :method :outer("11_1270238421.383")
+.sub "package_def"  :subid("129_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx518_tgt
     .local int rx518_pos
@@ -6545,7 +6545,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("130_1270238421.383") :method
+.sub "!PREFIX__package_def"  :subid("130_1271336396.90314") :method
 .annotate "line", 4
     new $P520, "ResizablePMCArray"
     push $P520, ""
@@ -6554,7 +6554,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("131_1270238421.383") :method
+.sub "scope_declarator"  :subid("131_1271336396.90314") :method
 .annotate "line", 267
     $P541 = self."!protoregex"("scope_declarator")
     .return ($P541)
@@ -6562,7 +6562,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("132_1270238421.383") :method
+.sub "!PREFIX__scope_declarator"  :subid("132_1271336396.90314") :method
 .annotate "line", 267
     $P543 = self."!PREFIX__!protoregex"("scope_declarator")
     .return ($P543)
@@ -6570,7 +6570,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("133_1270238421.383") :method :outer("11_1270238421.383")
+.sub "scope_declarator:sym<my>"  :subid("133_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx545_tgt
     .local int rx545_pos
@@ -6649,7 +6649,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("134_1270238421.383") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("134_1271336396.90314") :method
 .annotate "line", 4
     $P547 = self."!PREFIX__!subrule"("scoped", "my")
     new $P548, "ResizablePMCArray"
@@ -6659,7 +6659,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("135_1270238421.383") :method :outer("11_1270238421.383")
+.sub "scope_declarator:sym<our>"  :subid("135_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx552_tgt
     .local int rx552_pos
@@ -6738,7 +6738,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("136_1270238421.383") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("136_1271336396.90314") :method
 .annotate "line", 4
     $P554 = self."!PREFIX__!subrule"("scoped", "our")
     new $P555, "ResizablePMCArray"
@@ -6748,7 +6748,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("137_1270238421.383") :method :outer("11_1270238421.383")
+.sub "scope_declarator:sym<has>"  :subid("137_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx559_tgt
     .local int rx559_pos
@@ -6827,7 +6827,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("138_1270238421.383") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("138_1271336396.90314") :method
 .annotate "line", 4
     $P561 = self."!PREFIX__!subrule"("scoped", "has")
     new $P562, "ResizablePMCArray"
@@ -6837,7 +6837,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("139_1270238421.383") :method :outer("11_1270238421.383")
+.sub "scoped"  :subid("139_1271336396.90314") :method :outer("11_1271336396.90314")
     .param pmc param_566
 .annotate "line", 272
     .lex "$*SCOPE", param_566
@@ -6934,7 +6934,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("140_1270238421.383") :method
+.sub "!PREFIX__scoped"  :subid("140_1271336396.90314") :method
 .annotate "line", 4
     new $P569, "ResizablePMCArray"
     push $P569, ""
@@ -6944,7 +6944,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("141_1270238421.383") :method :outer("11_1270238421.383")
+.sub "variable_declarator"  :subid("141_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx577_tgt
     .local int rx577_pos
@@ -7002,7 +7002,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("142_1270238421.383") :method
+.sub "!PREFIX__variable_declarator"  :subid("142_1271336396.90314") :method
 .annotate "line", 4
     $P579 = self."!PREFIX__!subrule"("variable", "")
     new $P580, "ResizablePMCArray"
@@ -7012,7 +7012,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("143_1270238421.383") :method
+.sub "routine_declarator"  :subid("143_1271336396.90314") :method
 .annotate "line", 279
     $P583 = self."!protoregex"("routine_declarator")
     .return ($P583)
@@ -7020,7 +7020,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("144_1270238421.383") :method
+.sub "!PREFIX__routine_declarator"  :subid("144_1271336396.90314") :method
 .annotate "line", 279
     $P585 = self."!PREFIX__!protoregex"("routine_declarator")
     .return ($P585)
@@ -7028,7 +7028,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("145_1270238421.383") :method :outer("11_1270238421.383")
+.sub "routine_declarator:sym<sub>"  :subid("145_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx587_tgt
     .local int rx587_pos
@@ -7107,7 +7107,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("146_1270238421.383") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("146_1271336396.90314") :method
 .annotate "line", 4
     $P589 = self."!PREFIX__!subrule"("routine_def", "sub")
     new $P590, "ResizablePMCArray"
@@ -7117,7 +7117,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("147_1270238421.383") :method :outer("11_1270238421.383")
+.sub "routine_declarator:sym<method>"  :subid("147_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx594_tgt
     .local int rx594_pos
@@ -7196,7 +7196,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("148_1270238421.383") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("148_1271336396.90314") :method
 .annotate "line", 4
     $P596 = self."!PREFIX__!subrule"("method_def", "method")
     new $P597, "ResizablePMCArray"
@@ -7206,7 +7206,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("149_1270238421.383") :method :outer("11_1270238421.383")
+.sub "routine_def"  :subid("149_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx601_tgt
     .local int rx601_pos
@@ -7413,7 +7413,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("150_1270238421.383") :method
+.sub "!PREFIX__routine_def"  :subid("150_1271336396.90314") :method
 .annotate "line", 4
     new $P603, "ResizablePMCArray"
     push $P603, ""
@@ -7422,7 +7422,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("151_1270238421.383") :method :outer("11_1270238421.383")
+.sub "method_def"  :subid("151_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx625_tgt
     .local int rx625_pos
@@ -7592,7 +7592,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("152_1270238421.383") :method
+.sub "!PREFIX__method_def"  :subid("152_1271336396.90314") :method
 .annotate "line", 4
     new $P627, "ResizablePMCArray"
     push $P627, ""
@@ -7601,7 +7601,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("153_1270238421.383") :method :outer("11_1270238421.383")
+.sub "signature"  :subid("153_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx644_tgt
     .local int rx644_pos
@@ -7691,7 +7691,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("154_1270238421.383") :method
+.sub "!PREFIX__signature"  :subid("154_1271336396.90314") :method
 .annotate "line", 4
     new $P646, "ResizablePMCArray"
     push $P646, ""
@@ -7700,7 +7700,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("155_1270238421.383") :method :outer("11_1270238421.383")
+.sub "parameter"  :subid("155_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx653_tgt
     .local int rx653_pos
@@ -7861,7 +7861,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("156_1270238421.383") :method
+.sub "!PREFIX__parameter"  :subid("156_1271336396.90314") :method
 .annotate "line", 4
     $P655 = self."!PREFIX__!subrule"("named_param", "")
     $P656 = self."!PREFIX__!subrule"("param_var", "")
@@ -7875,7 +7875,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("157_1270238421.383") :method :outer("11_1270238421.383")
+.sub "param_var"  :subid("157_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx668_tgt
     .local int rx668_pos
@@ -7983,7 +7983,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("158_1270238421.383") :method
+.sub "!PREFIX__param_var"  :subid("158_1271336396.90314") :method
 .annotate "line", 4
     $P670 = self."!PREFIX__!subrule"("sigil", "")
     new $P671, "ResizablePMCArray"
@@ -7993,7 +7993,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("159_1270238421.383") :method :outer("11_1270238421.383")
+.sub "named_param"  :subid("159_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx678_tgt
     .local int rx678_pos
@@ -8059,7 +8059,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("160_1270238421.383") :method
+.sub "!PREFIX__named_param"  :subid("160_1271336396.90314") :method
 .annotate "line", 4
     $P680 = self."!PREFIX__!subrule"("param_var", ":")
     new $P681, "ResizablePMCArray"
@@ -8069,7 +8069,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("161_1270238421.383") :method :outer("11_1270238421.383")
+.sub "default_value"  :subid("161_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx684_tgt
     .local int rx684_pos
@@ -8149,7 +8149,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("162_1270238421.383") :method
+.sub "!PREFIX__default_value"  :subid("162_1271336396.90314") :method
 .annotate "line", 4
     new $P686, "ResizablePMCArray"
     push $P686, ""
@@ -8158,7 +8158,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("163_1270238421.383") :method :outer("11_1270238421.383")
+.sub "regex_declarator"  :subid("163_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx692_tgt
     .local int rx692_pos
@@ -8559,7 +8559,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("164_1270238421.383") :method
+.sub "!PREFIX__regex_declarator"  :subid("164_1271336396.90314") :method
 .annotate "line", 4
     new $P694, "ResizablePMCArray"
     push $P694, ""
@@ -8568,7 +8568,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("165_1270238421.383") :method :outer("11_1270238421.383")
+.sub "dotty"  :subid("165_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx729_tgt
     .local int rx729_pos
@@ -8724,7 +8724,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("166_1270238421.383") :method
+.sub "!PREFIX__dotty"  :subid("166_1271336396.90314") :method
 .annotate "line", 4
     $P731 = self."!PREFIX__!subrule"("longname=identifier", ".")
     new $P732, "ResizablePMCArray"
@@ -8736,7 +8736,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("167_1270238421.383") :method
+.sub "term"  :subid("167_1271336396.90314") :method
 .annotate "line", 351
     $P740 = self."!protoregex"("term")
     .return ($P740)
@@ -8744,7 +8744,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("168_1270238421.383") :method
+.sub "!PREFIX__term"  :subid("168_1271336396.90314") :method
 .annotate "line", 351
     $P742 = self."!PREFIX__!protoregex"("term")
     .return ($P742)
@@ -8752,7 +8752,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("169_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<self>"  :subid("169_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx744_tgt
     .local int rx744_pos
@@ -8832,7 +8832,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("170_1270238421.383") :method
+.sub "!PREFIX__term:sym<self>"  :subid("170_1271336396.90314") :method
 .annotate "line", 4
     new $P746, "ResizablePMCArray"
     push $P746, "self"
@@ -8841,7 +8841,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("171_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<identifier>"  :subid("171_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx750_tgt
     .local int rx750_pos
@@ -8913,7 +8913,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("172_1270238421.383") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("172_1271336396.90314") :method
 .annotate "line", 4
     $P752 = self."!PREFIX__!subrule"("identifier", "")
     new $P753, "ResizablePMCArray"
@@ -8923,7 +8923,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("173_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<name>"  :subid("173_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx756_tgt
     .local int rx756_pos
@@ -8996,7 +8996,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("174_1270238421.383") :method
+.sub "!PREFIX__term:sym<name>"  :subid("174_1271336396.90314") :method
 .annotate "line", 4
     $P758 = self."!PREFIX__!subrule"("name", "")
     new $P759, "ResizablePMCArray"
@@ -9006,7 +9006,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("175_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<pir::op>"  :subid("175_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx764_tgt
     .local int rx764_pos
@@ -9099,7 +9099,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("176_1270238421.383") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("176_1271336396.90314") :method
 .annotate "line", 4
     new $P766, "ResizablePMCArray"
     push $P766, "pir::"
@@ -9108,7 +9108,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("177_1270238421.383") :method :outer("11_1270238421.383")
+.sub "args"  :subid("177_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx772_tgt
     .local int rx772_pos
@@ -9180,7 +9180,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("178_1270238421.383") :method
+.sub "!PREFIX__args"  :subid("178_1271336396.90314") :method
 .annotate "line", 4
     $P774 = self."!PREFIX__!subrule"("arglist", "(")
     new $P775, "ResizablePMCArray"
@@ -9190,7 +9190,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("179_1270238421.383") :method :outer("11_1270238421.383")
+.sub "arglist"  :subid("179_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx778_tgt
     .local int rx778_pos
@@ -9262,7 +9262,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("180_1270238421.383") :method
+.sub "!PREFIX__arglist"  :subid("180_1271336396.90314") :method
 .annotate "line", 4
     $P780 = self."!PREFIX__!subrule"("", "")
     new $P781, "ResizablePMCArray"
@@ -9272,7 +9272,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("181_1270238421.383") :method :outer("11_1270238421.383")
+.sub "term:sym<value>"  :subid("181_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx785_tgt
     .local int rx785_pos
@@ -9330,7 +9330,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("182_1270238421.383") :method
+.sub "!PREFIX__term:sym<value>"  :subid("182_1271336396.90314") :method
 .annotate "line", 4
     $P787 = self."!PREFIX__!subrule"("value", "")
     new $P788, "ResizablePMCArray"
@@ -9340,7 +9340,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("183_1270238421.383") :method :outer("11_1270238421.383")
+.sub "value"  :subid("183_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx791_tgt
     .local int rx791_pos
@@ -9414,7 +9414,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("184_1270238421.383") :method
+.sub "!PREFIX__value"  :subid("184_1271336396.90314") :method
 .annotate "line", 4
     $P793 = self."!PREFIX__!subrule"("number", "")
     $P794 = self."!PREFIX__!subrule"("quote", "")
@@ -9426,7 +9426,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("185_1270238421.383") :method :outer("11_1270238421.383")
+.sub "number"  :subid("185_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx799_tgt
     .local int rx799_pos
@@ -9526,7 +9526,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("186_1270238421.383") :method
+.sub "!PREFIX__number"  :subid("186_1271336396.90314") :method
 .annotate "line", 4
     new $P801, "ResizablePMCArray"
     push $P801, ""
@@ -9535,7 +9535,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("187_1270238421.383") :method
+.sub "quote"  :subid("187_1271336396.90314") :method
 .annotate "line", 392
     $P808 = self."!protoregex"("quote")
     .return ($P808)
@@ -9543,7 +9543,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("188_1270238421.383") :method
+.sub "!PREFIX__quote"  :subid("188_1271336396.90314") :method
 .annotate "line", 392
     $P810 = self."!PREFIX__!protoregex"("quote")
     .return ($P810)
@@ -9551,7 +9551,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("189_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote:sym<apos>"  :subid("189_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx812_tgt
     .local int rx812_pos
@@ -9615,7 +9615,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("190_1270238421.383") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("190_1271336396.90314") :method
 .annotate "line", 4
     new $P814, "ResizablePMCArray"
     push $P814, "'"
@@ -9624,7 +9624,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("191_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote:sym<dblq>"  :subid("191_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx817_tgt
     .local int rx817_pos
@@ -9688,7 +9688,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("192_1270238421.383") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("192_1271336396.90314") :method
 .annotate "line", 4
     new $P819, "ResizablePMCArray"
     push $P819, "\""
@@ -9697,7 +9697,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("193_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote:sym<q>"  :subid("193_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx822_tgt
     .local int rx822_pos
@@ -9773,7 +9773,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("194_1270238421.383") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("194_1271336396.90314") :method
 .annotate "line", 4
     $P824 = self."!PREFIX__!subrule"("", "q")
     new $P825, "ResizablePMCArray"
@@ -9783,7 +9783,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("195_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote:sym<qq>"  :subid("195_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx828_tgt
     .local int rx828_pos
@@ -9859,7 +9859,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("196_1270238421.383") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("196_1271336396.90314") :method
 .annotate "line", 4
     $P830 = self."!PREFIX__!subrule"("", "qq")
     new $P831, "ResizablePMCArray"
@@ -9869,7 +9869,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("197_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote:sym<Q>"  :subid("197_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx834_tgt
     .local int rx834_pos
@@ -9945,7 +9945,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("198_1270238421.383") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("198_1271336396.90314") :method
 .annotate "line", 4
     $P836 = self."!PREFIX__!subrule"("", "Q")
     new $P837, "ResizablePMCArray"
@@ -9955,7 +9955,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("199_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote:sym<Q:PIR>"  :subid("199_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx840_tgt
     .local int rx840_pos
@@ -10025,7 +10025,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("200_1270238421.383") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("200_1271336396.90314") :method
 .annotate "line", 4
     $P842 = self."!PREFIX__!subrule"("", "Q:PIR")
     new $P843, "ResizablePMCArray"
@@ -10035,7 +10035,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("201_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote:sym</ />"  :subid("201_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx846_tgt
     .local int rx846_pos
@@ -10120,7 +10120,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("202_1270238421.383") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("202_1271336396.90314") :method
 .annotate "line", 4
     $P848 = self."!PREFIX__!subrule"("", "/")
     new $P849, "ResizablePMCArray"
@@ -10130,7 +10130,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("203_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote_escape:sym<$>"  :subid("203_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx852_tgt
     .local int rx852_pos
@@ -10198,7 +10198,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("204_1270238421.383") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("204_1271336396.90314") :method
 .annotate "line", 4
     new $P854, "ResizablePMCArray"
     push $P854, "$"
@@ -10207,7 +10207,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("205_1270238421.383") :method :outer("11_1270238421.383")
+.sub "quote_escape:sym<{ }>"  :subid("205_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx857_tgt
     .local int rx857_pos
@@ -10275,7 +10275,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("206_1270238421.383") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("206_1271336396.90314") :method
 .annotate "line", 4
     new $P859, "ResizablePMCArray"
     push $P859, "{"
@@ -10284,7 +10284,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("207_1270238421.383") :method :outer("11_1270238421.383")
+.sub "circumfix:sym<( )>"  :subid("207_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx862_tgt
     .local int rx862_pos
@@ -10368,7 +10368,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("208_1270238421.383") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("208_1271336396.90314") :method
 .annotate "line", 4
     $P864 = self."!PREFIX__!subrule"("", "(")
     new $P865, "ResizablePMCArray"
@@ -10378,7 +10378,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("209_1270238421.383") :method :outer("11_1270238421.383")
+.sub "circumfix:sym<[ ]>"  :subid("209_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx870_tgt
     .local int rx870_pos
@@ -10462,7 +10462,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("210_1270238421.383") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("210_1271336396.90314") :method
 .annotate "line", 4
     $P872 = self."!PREFIX__!subrule"("", "[")
     new $P873, "ResizablePMCArray"
@@ -10472,7 +10472,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("211_1270238421.383") :method :outer("11_1270238421.383")
+.sub "circumfix:sym<ang>"  :subid("211_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx878_tgt
     .local int rx878_pos
@@ -10536,7 +10536,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("212_1270238421.383") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("212_1271336396.90314") :method
 .annotate "line", 4
     new $P880, "ResizablePMCArray"
     push $P880, "<"
@@ -10545,7 +10545,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("213_1270238421.383") :method :outer("11_1270238421.383")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("213_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx883_tgt
     .local int rx883_pos
@@ -10609,7 +10609,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("214_1270238421.383") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("214_1271336396.90314") :method
 .annotate "line", 4
     new $P885, "ResizablePMCArray"
     push $P885, unicode:"\x{ab}"
@@ -10618,7 +10618,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("215_1270238421.383") :method :outer("11_1270238421.383")
+.sub "circumfix:sym<{ }>"  :subid("215_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx888_tgt
     .local int rx888_pos
@@ -10682,7 +10682,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("216_1270238421.383") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("216_1271336396.90314") :method
 .annotate "line", 4
     new $P890, "ResizablePMCArray"
     push $P890, "{"
@@ -10691,7 +10691,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("217_1270238421.383") :method :outer("11_1270238421.383")
+.sub "circumfix:sym<sigil>"  :subid("217_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx893_tgt
     .local int rx893_pos
@@ -10781,7 +10781,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("218_1270238421.383") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("218_1271336396.90314") :method
 .annotate "line", 4
     $P895 = self."!PREFIX__!subrule"("sigil", "")
     new $P896, "ResizablePMCArray"
@@ -10791,7 +10791,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("219_1270238421.383") :method :outer("11_1270238421.383")
+.sub "semilist"  :subid("219_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 4
     .local string rx901_tgt
     .local int rx901_pos
@@ -10859,7 +10859,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("220_1270238421.383") :method
+.sub "!PREFIX__semilist"  :subid("220_1271336396.90314") :method
 .annotate "line", 4
     new $P903, "ResizablePMCArray"
     push $P903, ""
@@ -10868,7 +10868,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("221_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infixish"  :subid("221_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx908_tgt
     .local int rx908_pos
@@ -10930,7 +10930,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("222_1270238421.383") :method
+.sub "!PREFIX__infixish"  :subid("222_1271336396.90314") :method
 .annotate "line", 421
     new $P910, "ResizablePMCArray"
     push $P910, ""
@@ -10939,7 +10939,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("223_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infixstopper"  :subid("223_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx913_tgt
     .local int rx913_pos
@@ -10994,7 +10994,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("224_1270238421.383") :method
+.sub "!PREFIX__infixstopper"  :subid("224_1271336396.90314") :method
 .annotate "line", 421
     new $P915, "ResizablePMCArray"
     push $P915, ""
@@ -11003,7 +11003,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("225_1270238421.383") :method :outer("11_1270238421.383")
+.sub "postcircumfix:sym<[ ]>"  :subid("225_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx918_tgt
     .local int rx918_pos
@@ -11089,7 +11089,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("226_1270238421.383") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("226_1271336396.90314") :method
 .annotate "line", 421
     $P920 = self."!PREFIX__!subrule"("", "[")
     new $P921, "ResizablePMCArray"
@@ -11099,7 +11099,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("227_1270238421.383") :method :outer("11_1270238421.383")
+.sub "postcircumfix:sym<{ }>"  :subid("227_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx924_tgt
     .local int rx924_pos
@@ -11185,7 +11185,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("228_1270238421.383") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("228_1271336396.90314") :method
 .annotate "line", 421
     $P926 = self."!PREFIX__!subrule"("", "{")
     new $P927, "ResizablePMCArray"
@@ -11195,7 +11195,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("229_1270238421.383") :method :outer("11_1270238421.383")
+.sub "postcircumfix:sym<ang>"  :subid("229_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx930_tgt
     .local int rx930_pos
@@ -11268,7 +11268,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("230_1270238421.383") :method
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("230_1271336396.90314") :method
 .annotate "line", 421
     new $P932, "ResizablePMCArray"
     push $P932, "<"
@@ -11277,7 +11277,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("231_1270238421.383") :method :outer("11_1270238421.383")
+.sub "postcircumfix:sym<( )>"  :subid("231_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx935_tgt
     .local int rx935_pos
@@ -11363,7 +11363,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("232_1270238421.383") :method
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("232_1271336396.90314") :method
 .annotate "line", 421
     $P937 = self."!PREFIX__!subrule"("", "(")
     new $P938, "ResizablePMCArray"
@@ -11373,7 +11373,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("233_1270238421.383") :method :outer("11_1270238421.383")
+.sub "postfix:sym<.>"  :subid("233_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx941_tgt
     .local int rx941_pos
@@ -11438,7 +11438,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("234_1270238421.383") :method
+.sub "!PREFIX__postfix:sym<.>"  :subid("234_1271336396.90314") :method
 .annotate "line", 421
     $P943 = self."!PREFIX__!subrule"("dotty", "")
     new $P944, "ResizablePMCArray"
@@ -11448,7 +11448,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("235_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<++>"  :subid("235_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx947_tgt
     .local int rx947_pos
@@ -11527,7 +11527,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("236_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<++>"  :subid("236_1271336396.90314") :method
 .annotate "line", 421
     $P949 = self."!PREFIX__!subrule"("O", "++")
     new $P950, "ResizablePMCArray"
@@ -11537,7 +11537,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("237_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<-->"  :subid("237_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx954_tgt
     .local int rx954_pos
@@ -11616,7 +11616,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("238_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<-->"  :subid("238_1271336396.90314") :method
 .annotate "line", 421
     $P956 = self."!PREFIX__!subrule"("O", "--")
     new $P957, "ResizablePMCArray"
@@ -11626,7 +11626,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("239_1270238421.383") :method :outer("11_1270238421.383")
+.sub "postfix:sym<++>"  :subid("239_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx961_tgt
     .local int rx961_pos
@@ -11705,7 +11705,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("240_1270238421.383") :method
+.sub "!PREFIX__postfix:sym<++>"  :subid("240_1271336396.90314") :method
 .annotate "line", 421
     $P963 = self."!PREFIX__!subrule"("O", "++")
     new $P964, "ResizablePMCArray"
@@ -11715,7 +11715,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("241_1270238421.383") :method :outer("11_1270238421.383")
+.sub "postfix:sym<-->"  :subid("241_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx968_tgt
     .local int rx968_pos
@@ -11794,7 +11794,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("242_1270238421.383") :method
+.sub "!PREFIX__postfix:sym<-->"  :subid("242_1271336396.90314") :method
 .annotate "line", 421
     $P970 = self."!PREFIX__!subrule"("O", "--")
     new $P971, "ResizablePMCArray"
@@ -11804,7 +11804,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("243_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<**>"  :subid("243_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx975_tgt
     .local int rx975_pos
@@ -11883,7 +11883,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("244_1270238421.383") :method
+.sub "!PREFIX__infix:sym<**>"  :subid("244_1271336396.90314") :method
 .annotate "line", 421
     $P977 = self."!PREFIX__!subrule"("O", "**")
     new $P978, "ResizablePMCArray"
@@ -11893,7 +11893,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("245_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<+>"  :subid("245_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx982_tgt
     .local int rx982_pos
@@ -11972,7 +11972,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("246_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<+>"  :subid("246_1271336396.90314") :method
 .annotate "line", 421
     $P984 = self."!PREFIX__!subrule"("O", "+")
     new $P985, "ResizablePMCArray"
@@ -11982,7 +11982,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("247_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<~>"  :subid("247_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx989_tgt
     .local int rx989_pos
@@ -12061,7 +12061,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("248_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<~>"  :subid("248_1271336396.90314") :method
 .annotate "line", 421
     $P991 = self."!PREFIX__!subrule"("O", "~")
     new $P992, "ResizablePMCArray"
@@ -12071,7 +12071,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("249_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<->"  :subid("249_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx996_tgt
     .local int rx996_pos
@@ -12160,7 +12160,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("250_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<->"  :subid("250_1271336396.90314") :method
 .annotate "line", 421
     new $P998, "ResizablePMCArray"
     push $P998, "-"
@@ -12169,7 +12169,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("251_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<?>"  :subid("251_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1002_tgt
     .local int rx1002_pos
@@ -12248,7 +12248,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("252_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<?>"  :subid("252_1271336396.90314") :method
 .annotate "line", 421
     $P1004 = self."!PREFIX__!subrule"("O", "?")
     new $P1005, "ResizablePMCArray"
@@ -12258,7 +12258,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("253_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<!>"  :subid("253_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1009_tgt
     .local int rx1009_pos
@@ -12337,7 +12337,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("254_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<!>"  :subid("254_1271336396.90314") :method
 .annotate "line", 421
     $P1011 = self."!PREFIX__!subrule"("O", "!")
     new $P1012, "ResizablePMCArray"
@@ -12347,7 +12347,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("255_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<|>"  :subid("255_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1016_tgt
     .local int rx1016_pos
@@ -12426,7 +12426,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("256_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<|>"  :subid("256_1271336396.90314") :method
 .annotate "line", 421
     $P1018 = self."!PREFIX__!subrule"("O", "|")
     new $P1019, "ResizablePMCArray"
@@ -12436,7 +12436,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("257_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<*>"  :subid("257_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1023_tgt
     .local int rx1023_pos
@@ -12515,7 +12515,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("258_1270238421.383") :method
+.sub "!PREFIX__infix:sym<*>"  :subid("258_1271336396.90314") :method
 .annotate "line", 421
     $P1025 = self."!PREFIX__!subrule"("O", "*")
     new $P1026, "ResizablePMCArray"
@@ -12525,7 +12525,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("259_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym</>"  :subid("259_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1030_tgt
     .local int rx1030_pos
@@ -12604,7 +12604,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("260_1270238421.383") :method
+.sub "!PREFIX__infix:sym</>"  :subid("260_1271336396.90314") :method
 .annotate "line", 421
     $P1032 = self."!PREFIX__!subrule"("O", "/")
     new $P1033, "ResizablePMCArray"
@@ -12614,7 +12614,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("261_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<%>"  :subid("261_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1037_tgt
     .local int rx1037_pos
@@ -12693,7 +12693,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("262_1270238421.383") :method
+.sub "!PREFIX__infix:sym<%>"  :subid("262_1271336396.90314") :method
 .annotate "line", 421
     $P1039 = self."!PREFIX__!subrule"("O", "%")
     new $P1040, "ResizablePMCArray"
@@ -12703,7 +12703,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("263_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<+>"  :subid("263_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1044_tgt
     .local int rx1044_pos
@@ -12782,7 +12782,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("264_1270238421.383") :method
+.sub "!PREFIX__infix:sym<+>"  :subid("264_1271336396.90314") :method
 .annotate "line", 421
     $P1046 = self."!PREFIX__!subrule"("O", "+")
     new $P1047, "ResizablePMCArray"
@@ -12792,7 +12792,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("265_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<->"  :subid("265_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1051_tgt
     .local int rx1051_pos
@@ -12871,7 +12871,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("266_1270238421.383") :method
+.sub "!PREFIX__infix:sym<->"  :subid("266_1271336396.90314") :method
 .annotate "line", 421
     $P1053 = self."!PREFIX__!subrule"("O", "-")
     new $P1054, "ResizablePMCArray"
@@ -12881,7 +12881,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("267_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<~>"  :subid("267_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1058_tgt
     .local int rx1058_pos
@@ -12960,7 +12960,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("268_1270238421.383") :method
+.sub "!PREFIX__infix:sym<~>"  :subid("268_1271336396.90314") :method
 .annotate "line", 421
     $P1060 = self."!PREFIX__!subrule"("O", "~")
     new $P1061, "ResizablePMCArray"
@@ -12970,7 +12970,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("269_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<==>"  :subid("269_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1065_tgt
     .local int rx1065_pos
@@ -13049,7 +13049,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("270_1270238421.383") :method
+.sub "!PREFIX__infix:sym<==>"  :subid("270_1271336396.90314") :method
 .annotate "line", 421
     $P1067 = self."!PREFIX__!subrule"("O", "==")
     new $P1068, "ResizablePMCArray"
@@ -13059,7 +13059,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("271_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<!=>"  :subid("271_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1072_tgt
     .local int rx1072_pos
@@ -13138,7 +13138,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("272_1270238421.383") :method
+.sub "!PREFIX__infix:sym<!=>"  :subid("272_1271336396.90314") :method
 .annotate "line", 421
     $P1074 = self."!PREFIX__!subrule"("O", "!=")
     new $P1075, "ResizablePMCArray"
@@ -13148,7 +13148,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("273_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<<=>"  :subid("273_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1079_tgt
     .local int rx1079_pos
@@ -13227,7 +13227,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("274_1270238421.383") :method
+.sub "!PREFIX__infix:sym<<=>"  :subid("274_1271336396.90314") :method
 .annotate "line", 421
     $P1081 = self."!PREFIX__!subrule"("O", "<=")
     new $P1082, "ResizablePMCArray"
@@ -13237,7 +13237,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("275_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<>=>"  :subid("275_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1086_tgt
     .local int rx1086_pos
@@ -13316,7 +13316,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("276_1270238421.383") :method
+.sub "!PREFIX__infix:sym<>=>"  :subid("276_1271336396.90314") :method
 .annotate "line", 421
     $P1088 = self."!PREFIX__!subrule"("O", ">=")
     new $P1089, "ResizablePMCArray"
@@ -13326,7 +13326,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("277_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<<>"  :subid("277_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1093_tgt
     .local int rx1093_pos
@@ -13405,7 +13405,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("278_1270238421.383") :method
+.sub "!PREFIX__infix:sym<<>"  :subid("278_1271336396.90314") :method
 .annotate "line", 421
     $P1095 = self."!PREFIX__!subrule"("O", "<")
     new $P1096, "ResizablePMCArray"
@@ -13415,7 +13415,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("279_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<>>"  :subid("279_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1100_tgt
     .local int rx1100_pos
@@ -13494,7 +13494,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("280_1270238421.383") :method
+.sub "!PREFIX__infix:sym<>>"  :subid("280_1271336396.90314") :method
 .annotate "line", 421
     $P1102 = self."!PREFIX__!subrule"("O", ">")
     new $P1103, "ResizablePMCArray"
@@ -13504,7 +13504,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("281_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<eq>"  :subid("281_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1107_tgt
     .local int rx1107_pos
@@ -13583,7 +13583,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("282_1270238421.383") :method
+.sub "!PREFIX__infix:sym<eq>"  :subid("282_1271336396.90314") :method
 .annotate "line", 421
     $P1109 = self."!PREFIX__!subrule"("O", "eq")
     new $P1110, "ResizablePMCArray"
@@ -13593,7 +13593,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("283_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<ne>"  :subid("283_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1114_tgt
     .local int rx1114_pos
@@ -13672,7 +13672,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("284_1270238421.383") :method
+.sub "!PREFIX__infix:sym<ne>"  :subid("284_1271336396.90314") :method
 .annotate "line", 421
     $P1116 = self."!PREFIX__!subrule"("O", "ne")
     new $P1117, "ResizablePMCArray"
@@ -13682,7 +13682,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("285_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<le>"  :subid("285_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1121_tgt
     .local int rx1121_pos
@@ -13761,7 +13761,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("286_1270238421.383") :method
+.sub "!PREFIX__infix:sym<le>"  :subid("286_1271336396.90314") :method
 .annotate "line", 421
     $P1123 = self."!PREFIX__!subrule"("O", "le")
     new $P1124, "ResizablePMCArray"
@@ -13771,7 +13771,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("287_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<ge>"  :subid("287_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1128_tgt
     .local int rx1128_pos
@@ -13850,7 +13850,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("288_1270238421.383") :method
+.sub "!PREFIX__infix:sym<ge>"  :subid("288_1271336396.90314") :method
 .annotate "line", 421
     $P1130 = self."!PREFIX__!subrule"("O", "ge")
     new $P1131, "ResizablePMCArray"
@@ -13860,7 +13860,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("289_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<lt>"  :subid("289_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1135_tgt
     .local int rx1135_pos
@@ -13939,7 +13939,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("290_1270238421.383") :method
+.sub "!PREFIX__infix:sym<lt>"  :subid("290_1271336396.90314") :method
 .annotate "line", 421
     $P1137 = self."!PREFIX__!subrule"("O", "lt")
     new $P1138, "ResizablePMCArray"
@@ -13949,7 +13949,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("291_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<gt>"  :subid("291_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1142_tgt
     .local int rx1142_pos
@@ -14028,7 +14028,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("292_1270238421.383") :method
+.sub "!PREFIX__infix:sym<gt>"  :subid("292_1271336396.90314") :method
 .annotate "line", 421
     $P1144 = self."!PREFIX__!subrule"("O", "gt")
     new $P1145, "ResizablePMCArray"
@@ -14038,7 +14038,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("293_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<=:=>"  :subid("293_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1149_tgt
     .local int rx1149_pos
@@ -14117,7 +14117,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("294_1270238421.383") :method
+.sub "!PREFIX__infix:sym<=:=>"  :subid("294_1271336396.90314") :method
 .annotate "line", 421
     $P1151 = self."!PREFIX__!subrule"("O", "=:=")
     new $P1152, "ResizablePMCArray"
@@ -14127,7 +14127,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("295_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<~~>"  :subid("295_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1156_tgt
     .local int rx1156_pos
@@ -14206,7 +14206,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("296_1270238421.383") :method
+.sub "!PREFIX__infix:sym<~~>"  :subid("296_1271336396.90314") :method
 .annotate "line", 421
     $P1158 = self."!PREFIX__!subrule"("O", "~~")
     new $P1159, "ResizablePMCArray"
@@ -14216,7 +14216,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("297_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<&&>"  :subid("297_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1163_tgt
     .local int rx1163_pos
@@ -14295,7 +14295,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("298_1270238421.383") :method
+.sub "!PREFIX__infix:sym<&&>"  :subid("298_1271336396.90314") :method
 .annotate "line", 421
     $P1165 = self."!PREFIX__!subrule"("O", "&&")
     new $P1166, "ResizablePMCArray"
@@ -14305,7 +14305,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("299_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<||>"  :subid("299_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1170_tgt
     .local int rx1170_pos
@@ -14384,7 +14384,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("300_1270238421.383") :method
+.sub "!PREFIX__infix:sym<||>"  :subid("300_1271336396.90314") :method
 .annotate "line", 421
     $P1172 = self."!PREFIX__!subrule"("O", "||")
     new $P1173, "ResizablePMCArray"
@@ -14394,7 +14394,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("301_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<//>"  :subid("301_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1177_tgt
     .local int rx1177_pos
@@ -14473,7 +14473,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("302_1270238421.383") :method
+.sub "!PREFIX__infix:sym<//>"  :subid("302_1271336396.90314") :method
 .annotate "line", 421
     $P1179 = self."!PREFIX__!subrule"("O", "//")
     new $P1180, "ResizablePMCArray"
@@ -14483,7 +14483,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("303_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<?? !!>"  :subid("303_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1184_tgt
     .local int rx1184_pos
@@ -14572,7 +14572,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("304_1270238421.383") :method
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("304_1271336396.90314") :method
 .annotate "line", 421
     $P1186 = self."!PREFIX__!subrule"("", "??")
     new $P1187, "ResizablePMCArray"
@@ -14582,7 +14582,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("305_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<=>"  :subid("305_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1190_tgt
     .local int rx1190_pos
@@ -14660,7 +14660,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("306_1270238421.383") :method
+.sub "!PREFIX__infix:sym<=>"  :subid("306_1271336396.90314") :method
 .annotate "line", 421
     $P1192 = self."!PREFIX__!subrule"("", "=")
     new $P1193, "ResizablePMCArray"
@@ -14670,7 +14670,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("307_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<:=>"  :subid("307_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1197_tgt
     .local int rx1197_pos
@@ -14749,7 +14749,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("308_1270238421.383") :method
+.sub "!PREFIX__infix:sym<:=>"  :subid("308_1271336396.90314") :method
 .annotate "line", 421
     $P1199 = self."!PREFIX__!subrule"("O", ":=")
     new $P1200, "ResizablePMCArray"
@@ -14759,7 +14759,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("309_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<::=>"  :subid("309_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1204_tgt
     .local int rx1204_pos
@@ -14838,7 +14838,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("310_1270238421.383") :method
+.sub "!PREFIX__infix:sym<::=>"  :subid("310_1271336396.90314") :method
 .annotate "line", 421
     $P1206 = self."!PREFIX__!subrule"("O", "::=")
     new $P1207, "ResizablePMCArray"
@@ -14848,7 +14848,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("311_1270238421.383") :method :outer("11_1270238421.383")
+.sub "infix:sym<,>"  :subid("311_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1211_tgt
     .local int rx1211_pos
@@ -14927,7 +14927,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("312_1270238421.383") :method
+.sub "!PREFIX__infix:sym<,>"  :subid("312_1271336396.90314") :method
 .annotate "line", 421
     $P1213 = self."!PREFIX__!subrule"("O", ",")
     new $P1214, "ResizablePMCArray"
@@ -14937,7 +14937,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("313_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<return>"  :subid("313_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1218_tgt
     .local int rx1218_pos
@@ -15022,7 +15022,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("314_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<return>"  :subid("314_1271336396.90314") :method
 .annotate "line", 421
     new $P1220, "ResizablePMCArray"
     push $P1220, "return"
@@ -15031,7 +15031,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("315_1270238421.383") :method :outer("11_1270238421.383")
+.sub "prefix:sym<make>"  :subid("315_1271336396.90314") :method :outer("11_1271336396.90314")
 .annotate "line", 421
     .local string rx1224_tgt
     .local int rx1224_pos
@@ -15116,7 +15116,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("316_1270238421.383") :method
+.sub "!PREFIX__prefix:sym<make>"  :subid("316_1271336396.90314") :method
 .annotate "line", 421
     new $P1226, "ResizablePMCArray"
     push $P1226, "make"
@@ -15125,7 +15125,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "smartmatch"  :subid("317_1270238421.383") :method :outer("11_1270238421.383")
+.sub "smartmatch"  :subid("317_1271336396.90314") :method :outer("11_1271336396.90314")
     .param pmc param_1232
 .annotate "line", 529
     new $P1231, 'ExceptionHandler'
@@ -15178,28 +15178,28 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1242"  :subid("318_1270238421.383") :outer("11_1270238421.383")
+.sub "_block1242"  :subid("318_1271336396.90314") :outer("11_1271336396.90314")
 .annotate "line", 535
-    .const 'Sub' $P1276 = "329_1270238421.383" 
+    .const 'Sub' $P1276 = "329_1271336396.90314" 
     capture_lex $P1276
-    .const 'Sub' $P1263 = "326_1270238421.383" 
+    .const 'Sub' $P1263 = "326_1271336396.90314" 
     capture_lex $P1263
-    .const 'Sub' $P1258 = "324_1270238421.383" 
+    .const 'Sub' $P1258 = "324_1271336396.90314" 
     capture_lex $P1258
-    .const 'Sub' $P1253 = "322_1270238421.383" 
+    .const 'Sub' $P1253 = "322_1271336396.90314" 
     capture_lex $P1253
-    .const 'Sub' $P1244 = "319_1270238421.383" 
+    .const 'Sub' $P1244 = "319_1271336396.90314" 
     capture_lex $P1244
-    .const 'Sub' $P1276 = "329_1270238421.383" 
+    .const 'Sub' $P1276 = "329_1271336396.90314" 
     capture_lex $P1276
     .return ($P1276)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("319_1270238421.383") :method :outer("318_1270238421.383")
+.sub "metachar:sym<:my>"  :subid("319_1271336396.90314") :method :outer("318_1271336396.90314")
 .annotate "line", 535
-    .const 'Sub' $P1250 = "321_1270238421.383" 
+    .const 'Sub' $P1250 = "321_1271336396.90314" 
     capture_lex $P1250
     .local string rx1245_tgt
     .local int rx1245_pos
@@ -15240,7 +15240,7 @@
     add rx1245_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
     rx1245_cur."!cursor_pos"(rx1245_pos)
-    .const 'Sub' $P1250 = "321_1270238421.383" 
+    .const 'Sub' $P1250 = "321_1271336396.90314" 
     capture_lex $P1250
     $P10 = rx1245_cur."before"($P1250)
     unless $P10, rx1245_fail
@@ -15283,7 +15283,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("320_1270238421.383") :method
+.sub "!PREFIX__metachar:sym<:my>"  :subid("320_1271336396.90314") :method
 .annotate "line", 535
     new $P1247, "ResizablePMCArray"
     push $P1247, ":"
@@ -15292,7 +15292,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1249"  :anon :subid("321_1270238421.383") :method :outer("319_1270238421.383")
+.sub "_block1249"  :anon :subid("321_1271336396.90314") :method :outer("319_1271336396.90314")
 .annotate "line", 537
     .local string rx1251_tgt
     .local int rx1251_pos
@@ -15348,7 +15348,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("322_1270238421.383") :method :outer("318_1270238421.383")
+.sub "metachar:sym<{ }>"  :subid("322_1271336396.90314") :method :outer("318_1271336396.90314")
 .annotate "line", 535
     .local string rx1254_tgt
     .local int rx1254_pos
@@ -15413,7 +15413,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("323_1270238421.383") :method
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("323_1271336396.90314") :method
 .annotate "line", 535
     new $P1256, "ResizablePMCArray"
     push $P1256, "{"
@@ -15422,7 +15422,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("324_1270238421.383") :method :outer("318_1270238421.383")
+.sub "assertion:sym<{ }>"  :subid("324_1271336396.90314") :method :outer("318_1271336396.90314")
 .annotate "line", 535
     .local string rx1259_tgt
     .local int rx1259_pos
@@ -15487,7 +15487,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("325_1270238421.383") :method
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("325_1271336396.90314") :method
 .annotate "line", 535
     new $P1261, "ResizablePMCArray"
     push $P1261, "{"
@@ -15496,9 +15496,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("326_1270238421.383") :method :outer("318_1270238421.383")
+.sub "assertion:sym<name>"  :subid("326_1271336396.90314") :method :outer("318_1271336396.90314")
 .annotate "line", 535
-    .const 'Sub' $P1272 = "328_1270238421.383" 
+    .const 'Sub' $P1272 = "328_1271336396.90314" 
     capture_lex $P1272
     .local string rx1264_tgt
     .local int rx1264_pos
@@ -15508,7 +15508,7 @@
     .local pmc rx1264_cur
     (rx1264_cur, rx1264_pos, rx1264_tgt) = self."!cursor_start"()
     rx1264_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx1264_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    rx1264_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
     .lex unicode:"$\x{a2}", rx1264_cur
     .local pmc match
     .lex "$/", match
@@ -15563,7 +15563,7 @@
 .annotate "line", 551
   # rx subrule "before" subtype=zerowidth negate=
     rx1264_cur."!cursor_pos"(rx1264_pos)
-    .const 'Sub' $P1272 = "328_1270238421.383" 
+    .const 'Sub' $P1272 = "328_1271336396.90314" 
     capture_lex $P1272
     $P10 = rx1264_cur."before"($P1272)
     unless $P10, rx1264_fail
@@ -15670,7 +15670,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("327_1270238421.383") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("327_1271336396.90314") :method
 .annotate "line", 535
     new $P1266, "ResizablePMCArray"
     push $P1266, ""
@@ -15679,7 +15679,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1271"  :anon :subid("328_1270238421.383") :method :outer("326_1270238421.383")
+.sub "_block1271"  :anon :subid("328_1271336396.90314") :method :outer("326_1271336396.90314")
 .annotate "line", 551
     .local string rx1273_tgt
     .local int rx1273_pos
@@ -15735,7 +15735,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("329_1270238421.383") :method :outer("318_1270238421.383")
+.sub "codeblock"  :subid("329_1271336396.90314") :method :outer("318_1271336396.90314")
 .annotate "line", 535
     .local string rx1277_tgt
     .local int rx1277_pos
@@ -15794,7 +15794,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("330_1270238421.383") :method
+.sub "!PREFIX__codeblock"  :subid("330_1271336396.90314") :method
 .annotate "line", 535
     $P1279 = self."!PREFIX__!subrule"("block", "")
     new $P1280, "ResizablePMCArray"
@@ -15805,7 +15805,7 @@
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1270238429.61")
+.sub "_block11"  :anon :subid("10_1271336409.53729")
 .annotate "line", 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -15819,9 +15819,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post126") :outer("10_1270238429.61")
+.sub "" :load :init :subid("post126") :outer("10_1271336409.53729")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1270238429.61" 
+    .const 'Sub' $P12 = "10_1271336409.53729" 
     .local pmc block
     set block, $P12
     $P2169 = get_root_global ["parrot"], "P6metaclass"
@@ -15830,199 +15830,199 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1270238429.61") :outer("10_1270238429.61")
+.sub "_block13"  :subid("11_1271336409.53729") :outer("10_1271336409.53729")
 .annotate "line", 3
-    .const 'Sub' $P2164 = "125_1270238429.61" 
+    .const 'Sub' $P2164 = "125_1271336409.53729" 
     capture_lex $P2164
     get_hll_global $P2100, ["NQP";"RegexActions"], "_block2099" 
     capture_lex $P2100
-    .const 'Sub' $P2089 = "119_1270238429.61" 
+    .const 'Sub' $P2089 = "119_1271336409.53729" 
     capture_lex $P2089
-    .const 'Sub' $P2077 = "118_1270238429.61" 
+    .const 'Sub' $P2077 = "118_1271336409.53729" 
     capture_lex $P2077
-    .const 'Sub' $P2067 = "117_1270238429.61" 
+    .const 'Sub' $P2067 = "117_1271336409.53729" 
     capture_lex $P2067
-    .const 'Sub' $P2057 = "116_1270238429.61" 
+    .const 'Sub' $P2057 = "116_1271336409.53729" 
     capture_lex $P2057
-    .const 'Sub' $P2047 = "115_1270238429.61" 
+    .const 'Sub' $P2047 = "115_1271336409.53729" 
     capture_lex $P2047
-    .const 'Sub' $P2033 = "114_1270238429.61" 
+    .const 'Sub' $P2033 = "114_1271336409.53729" 
     capture_lex $P2033
-    .const 'Sub' $P2023 = "113_1270238429.61" 
+    .const 'Sub' $P2023 = "113_1271336409.53729" 
     capture_lex $P2023
-    .const 'Sub' $P1986 = "112_1270238429.61" 
+    .const 'Sub' $P1986 = "112_1271336409.53729" 
     capture_lex $P1986
-    .const 'Sub' $P1972 = "111_1270238429.61" 
+    .const 'Sub' $P1972 = "111_1271336409.53729" 
     capture_lex $P1972
-    .const 'Sub' $P1962 = "110_1270238429.61" 
+    .const 'Sub' $P1962 = "110_1271336409.53729" 
     capture_lex $P1962
-    .const 'Sub' $P1952 = "109_1270238429.61" 
+    .const 'Sub' $P1952 = "109_1271336409.53729" 
     capture_lex $P1952
-    .const 'Sub' $P1942 = "108_1270238429.61" 
+    .const 'Sub' $P1942 = "108_1271336409.53729" 
     capture_lex $P1942
-    .const 'Sub' $P1932 = "107_1270238429.61" 
+    .const 'Sub' $P1932 = "107_1271336409.53729" 
     capture_lex $P1932
-    .const 'Sub' $P1922 = "106_1270238429.61" 
+    .const 'Sub' $P1922 = "106_1271336409.53729" 
     capture_lex $P1922
-    .const 'Sub' $P1894 = "105_1270238429.61" 
+    .const 'Sub' $P1894 = "105_1271336409.53729" 
     capture_lex $P1894
-    .const 'Sub' $P1877 = "104_1270238429.61" 
+    .const 'Sub' $P1877 = "104_1271336409.53729" 
     capture_lex $P1877
-    .const 'Sub' $P1867 = "103_1270238429.61" 
+    .const 'Sub' $P1867 = "103_1271336409.53729" 
     capture_lex $P1867
-    .const 'Sub' $P1854 = "102_1270238429.61" 
+    .const 'Sub' $P1854 = "102_1271336409.53729" 
     capture_lex $P1854
-    .const 'Sub' $P1841 = "101_1270238429.61" 
+    .const 'Sub' $P1841 = "101_1271336409.53729" 
     capture_lex $P1841
-    .const 'Sub' $P1828 = "100_1270238429.61" 
+    .const 'Sub' $P1828 = "100_1271336409.53729" 
     capture_lex $P1828
-    .const 'Sub' $P1818 = "99_1270238429.61" 
+    .const 'Sub' $P1818 = "99_1271336409.53729" 
     capture_lex $P1818
-    .const 'Sub' $P1789 = "98_1270238429.61" 
+    .const 'Sub' $P1789 = "98_1271336409.53729" 
     capture_lex $P1789
-    .const 'Sub' $P1769 = "97_1270238429.61" 
+    .const 'Sub' $P1769 = "97_1271336409.53729" 
     capture_lex $P1769
-    .const 'Sub' $P1759 = "96_1270238429.61" 
+    .const 'Sub' $P1759 = "96_1271336409.53729" 
     capture_lex $P1759
-    .const 'Sub' $P1749 = "95_1270238429.61" 
+    .const 'Sub' $P1749 = "95_1271336409.53729" 
     capture_lex $P1749
-    .const 'Sub' $P1722 = "94_1270238429.61" 
+    .const 'Sub' $P1722 = "94_1271336409.53729" 
     capture_lex $P1722
-    .const 'Sub' $P1704 = "93_1270238429.61" 
+    .const 'Sub' $P1704 = "93_1271336409.53729" 
     capture_lex $P1704
-    .const 'Sub' $P1694 = "92_1270238429.61" 
+    .const 'Sub' $P1694 = "92_1271336409.53729" 
     capture_lex $P1694
-    .const 'Sub' $P1610 = "89_1270238429.61" 
+    .const 'Sub' $P1610 = "89_1271336409.53729" 
     capture_lex $P1610
-    .const 'Sub' $P1600 = "88_1270238429.61" 
+    .const 'Sub' $P1600 = "88_1271336409.53729" 
     capture_lex $P1600
-    .const 'Sub' $P1571 = "87_1270238429.61" 
+    .const 'Sub' $P1571 = "87_1271336409.53729" 
     capture_lex $P1571
-    .const 'Sub' $P1529 = "86_1270238429.61" 
+    .const 'Sub' $P1529 = "86_1271336409.53729" 
     capture_lex $P1529
-    .const 'Sub' $P1513 = "85_1270238429.61" 
+    .const 'Sub' $P1513 = "85_1271336409.53729" 
     capture_lex $P1513
-    .const 'Sub' $P1504 = "84_1270238429.61" 
+    .const 'Sub' $P1504 = "84_1271336409.53729" 
     capture_lex $P1504
-    .const 'Sub' $P1472 = "83_1270238429.61" 
+    .const 'Sub' $P1472 = "83_1271336409.53729" 
     capture_lex $P1472
-    .const 'Sub' $P1373 = "80_1270238429.61" 
+    .const 'Sub' $P1373 = "80_1271336409.53729" 
     capture_lex $P1373
-    .const 'Sub' $P1356 = "79_1270238429.61" 
+    .const 'Sub' $P1356 = "79_1271336409.53729" 
     capture_lex $P1356
-    .const 'Sub' $P1336 = "78_1270238429.61" 
+    .const 'Sub' $P1336 = "78_1271336409.53729" 
     capture_lex $P1336
-    .const 'Sub' $P1252 = "77_1270238429.61" 
+    .const 'Sub' $P1252 = "77_1271336409.53729" 
     capture_lex $P1252
-    .const 'Sub' $P1228 = "75_1270238429.61" 
+    .const 'Sub' $P1228 = "75_1271336409.53729" 
     capture_lex $P1228
-    .const 'Sub' $P1194 = "73_1270238429.61" 
+    .const 'Sub' $P1194 = "73_1271336409.53729" 
     capture_lex $P1194
-    .const 'Sub' $P1144 = "71_1270238429.61" 
+    .const 'Sub' $P1144 = "71_1271336409.53729" 
     capture_lex $P1144
-    .const 'Sub' $P1134 = "70_1270238429.61" 
+    .const 'Sub' $P1134 = "70_1271336409.53729" 
     capture_lex $P1134
-    .const 'Sub' $P1124 = "69_1270238429.61" 
+    .const 'Sub' $P1124 = "69_1271336409.53729" 
     capture_lex $P1124
-    .const 'Sub' $P1053 = "67_1270238429.61" 
+    .const 'Sub' $P1053 = "67_1271336409.53729" 
     capture_lex $P1053
-    .const 'Sub' $P1036 = "66_1270238429.61" 
+    .const 'Sub' $P1036 = "66_1271336409.53729" 
     capture_lex $P1036
-    .const 'Sub' $P1026 = "65_1270238429.61" 
+    .const 'Sub' $P1026 = "65_1271336409.53729" 
     capture_lex $P1026
-    .const 'Sub' $P1016 = "64_1270238429.61" 
+    .const 'Sub' $P1016 = "64_1271336409.53729" 
     capture_lex $P1016
-    .const 'Sub' $P1006 = "63_1270238429.61" 
+    .const 'Sub' $P1006 = "63_1271336409.53729" 
     capture_lex $P1006
-    .const 'Sub' $P982 = "62_1270238429.61" 
+    .const 'Sub' $P982 = "62_1271336409.53729" 
     capture_lex $P982
-    .const 'Sub' $P929 = "61_1270238429.61" 
+    .const 'Sub' $P929 = "61_1271336409.53729" 
     capture_lex $P929
-    .const 'Sub' $P919 = "60_1270238429.61" 
+    .const 'Sub' $P919 = "60_1271336409.53729" 
     capture_lex $P919
-    .const 'Sub' $P830 = "58_1270238429.61" 
+    .const 'Sub' $P830 = "58_1271336409.53729" 
     capture_lex $P830
-    .const 'Sub' $P804 = "57_1270238429.61" 
+    .const 'Sub' $P804 = "57_1271336409.53729" 
     capture_lex $P804
-    .const 'Sub' $P788 = "56_1270238429.61" 
+    .const 'Sub' $P788 = "56_1271336409.53729" 
     capture_lex $P788
-    .const 'Sub' $P778 = "55_1270238429.61" 
+    .const 'Sub' $P778 = "55_1271336409.53729" 
     capture_lex $P778
-    .const 'Sub' $P768 = "54_1270238429.61" 
+    .const 'Sub' $P768 = "54_1271336409.53729" 
     capture_lex $P768
-    .const 'Sub' $P758 = "53_1270238429.61" 
+    .const 'Sub' $P758 = "53_1271336409.53729" 
     capture_lex $P758
-    .const 'Sub' $P748 = "52_1270238429.61" 
+    .const 'Sub' $P748 = "52_1271336409.53729" 
     capture_lex $P748
-    .const 'Sub' $P738 = "51_1270238429.61" 
+    .const 'Sub' $P738 = "51_1271336409.53729" 
     capture_lex $P738
-    .const 'Sub' $P728 = "50_1270238429.61" 
+    .const 'Sub' $P728 = "50_1271336409.53729" 
     capture_lex $P728
-    .const 'Sub' $P718 = "49_1270238429.61" 
+    .const 'Sub' $P718 = "49_1271336409.53729" 
     capture_lex $P718
-    .const 'Sub' $P708 = "48_1270238429.61" 
+    .const 'Sub' $P708 = "48_1271336409.53729" 
     capture_lex $P708
-    .const 'Sub' $P698 = "47_1270238429.61" 
+    .const 'Sub' $P698 = "47_1271336409.53729" 
     capture_lex $P698
-    .const 'Sub' $P688 = "46_1270238429.61" 
+    .const 'Sub' $P688 = "46_1271336409.53729" 
     capture_lex $P688
-    .const 'Sub' $P678 = "45_1270238429.61" 
+    .const 'Sub' $P678 = "45_1271336409.53729" 
     capture_lex $P678
-    .const 'Sub' $P668 = "44_1270238429.61" 
+    .const 'Sub' $P668 = "44_1271336409.53729" 
     capture_lex $P668
-    .const 'Sub' $P658 = "43_1270238429.61" 
+    .const 'Sub' $P658 = "43_1271336409.53729" 
     capture_lex $P658
-    .const 'Sub' $P640 = "42_1270238429.61" 
+    .const 'Sub' $P640 = "42_1271336409.53729" 
     capture_lex $P640
-    .const 'Sub' $P605 = "41_1270238429.61" 
+    .const 'Sub' $P605 = "41_1271336409.53729" 
     capture_lex $P605
-    .const 'Sub' $P589 = "40_1270238429.61" 
+    .const 'Sub' $P589 = "40_1271336409.53729" 
     capture_lex $P589
-    .const 'Sub' $P568 = "39_1270238429.61" 
+    .const 'Sub' $P568 = "39_1271336409.53729" 
     capture_lex $P568
-    .const 'Sub' $P548 = "38_1270238429.61" 
+    .const 'Sub' $P548 = "38_1271336409.53729" 
     capture_lex $P548
-    .const 'Sub' $P535 = "37_1270238429.61" 
+    .const 'Sub' $P535 = "37_1271336409.53729" 
     capture_lex $P535
-    .const 'Sub' $P509 = "36_1270238429.61" 
+    .const 'Sub' $P509 = "36_1271336409.53729" 
     capture_lex $P509
-    .const 'Sub' $P473 = "35_1270238429.61" 
+    .const 'Sub' $P473 = "35_1271336409.53729" 
     capture_lex $P473
-    .const 'Sub' $P456 = "34_1270238429.61" 
+    .const 'Sub' $P456 = "34_1271336409.53729" 
     capture_lex $P456
-    .const 'Sub' $P442 = "33_1270238429.61" 
+    .const 'Sub' $P442 = "33_1271336409.53729" 
     capture_lex $P442
-    .const 'Sub' $P389 = "31_1270238429.61" 
+    .const 'Sub' $P389 = "31_1271336409.53729" 
     capture_lex $P389
-    .const 'Sub' $P376 = "30_1270238429.61" 
+    .const 'Sub' $P376 = "30_1271336409.53729" 
     capture_lex $P376
-    .const 'Sub' $P357 = "29_1270238429.61" 
+    .const 'Sub' $P357 = "29_1271336409.53729" 
     capture_lex $P357
-    .const 'Sub' $P347 = "28_1270238429.61" 
+    .const 'Sub' $P347 = "28_1271336409.53729" 
     capture_lex $P347
-    .const 'Sub' $P337 = "27_1270238429.61" 
+    .const 'Sub' $P337 = "27_1271336409.53729" 
     capture_lex $P337
-    .const 'Sub' $P321 = "26_1270238429.61" 
+    .const 'Sub' $P321 = "26_1271336409.53729" 
     capture_lex $P321
-    .const 'Sub' $P261 = "24_1270238429.61" 
+    .const 'Sub' $P261 = "24_1271336409.53729" 
     capture_lex $P261
-    .const 'Sub' $P212 = "22_1270238429.61" 
+    .const 'Sub' $P212 = "22_1271336409.53729" 
     capture_lex $P212
-    .const 'Sub' $P193 = "21_1270238429.61" 
+    .const 'Sub' $P193 = "21_1271336409.53729" 
     capture_lex $P193
-    .const 'Sub' $P160 = "20_1270238429.61" 
+    .const 'Sub' $P160 = "20_1271336409.53729" 
     capture_lex $P160
-    .const 'Sub' $P150 = "19_1270238429.61" 
+    .const 'Sub' $P150 = "19_1271336409.53729" 
     capture_lex $P150
-    .const 'Sub' $P96 = "18_1270238429.61" 
+    .const 'Sub' $P96 = "18_1271336409.53729" 
     capture_lex $P96
-    .const 'Sub' $P81 = "17_1270238429.61" 
+    .const 'Sub' $P81 = "17_1271336409.53729" 
     capture_lex $P81
-    .const 'Sub' $P61 = "16_1270238429.61" 
+    .const 'Sub' $P61 = "16_1271336409.53729" 
     capture_lex $P61
-    .const 'Sub' $P26 = "13_1270238429.61" 
+    .const 'Sub' $P26 = "13_1271336409.53729" 
     capture_lex $P26
-    .const 'Sub' $P16 = "12_1270238429.61" 
+    .const 'Sub' $P16 = "12_1271336409.53729" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
     unless_null $P15, vivify_129
@@ -16030,23 +16030,23 @@
     set_global "@BLOCK", $P15
   vivify_129:
 .annotate "line", 9
-    .const 'Sub' $P16 = "12_1270238429.61" 
+    .const 'Sub' $P16 = "12_1271336409.53729" 
     capture_lex $P16
     .lex "xblock_immediate", $P16
 .annotate "line", 14
-    .const 'Sub' $P26 = "13_1270238429.61" 
+    .const 'Sub' $P26 = "13_1271336409.53729" 
     capture_lex $P26
     .lex "block_immediate", $P26
 .annotate "line", 24
-    .const 'Sub' $P61 = "16_1270238429.61" 
+    .const 'Sub' $P61 = "16_1271336409.53729" 
     capture_lex $P61
     .lex "vivitype", $P61
 .annotate "line", 43
-    .const 'Sub' $P81 = "17_1270238429.61" 
+    .const 'Sub' $P81 = "17_1271336409.53729" 
     capture_lex $P81
     .lex "colonpair_str", $P81
 .annotate "line", 190
-    .const 'Sub' $P96 = "18_1270238429.61" 
+    .const 'Sub' $P96 = "18_1271336409.53729" 
     capture_lex $P96
     .lex "push_block_handler", $P96
 .annotate "line", 3
@@ -16069,13 +16069,13 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post127") :outer("11_1270238429.61")
+.sub "" :load :init :subid("post127") :outer("11_1271336409.53729")
 .annotate "line", 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate "line", 5
-    .const 'Sub' $P2164 = "125_1270238429.61" 
+    .const 'Sub' $P2164 = "125_1271336409.53729" 
     capture_lex $P2164
     $P2164()
     $P2167 = get_root_global ["parrot"], "P6metaclass"
@@ -16084,7 +16084,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2163"  :anon :subid("125_1270238429.61") :outer("11_1270238429.61")
+.sub "_block2163"  :anon :subid("125_1271336409.53729") :outer("11_1271336409.53729")
 .annotate "line", 6
     get_global $P2165, "@BLOCK"
     unless_null $P2165, vivify_128
@@ -16099,7 +16099,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock_immediate"  :subid("12_1270238429.61") :outer("11_1270238429.61")
+.sub "xblock_immediate"  :subid("12_1271336409.53729") :outer("11_1271336409.53729")
     .param pmc param_19
 .annotate "line", 9
     new $P18, 'ExceptionHandler'
@@ -16135,10 +16135,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "block_immediate"  :subid("13_1270238429.61") :outer("11_1270238429.61")
+.sub "block_immediate"  :subid("13_1271336409.53729") :outer("11_1271336409.53729")
     .param pmc param_29
 .annotate "line", 14
-    .const 'Sub' $P39 = "14_1270238429.61" 
+    .const 'Sub' $P39 = "14_1271336409.53729" 
     capture_lex $P39
     new $P28, 'ExceptionHandler'
     set_addr $P28, control_27
@@ -16160,7 +16160,7 @@
     set $P32, $P37
   unless_33_end:
     if $P32, unless_31_end
-    .const 'Sub' $P39 = "14_1270238429.61" 
+    .const 'Sub' $P39 = "14_1271336409.53729" 
     capture_lex $P39
     $P39()
   unless_31_end:
@@ -16176,9 +16176,9 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block38"  :anon :subid("14_1270238429.61") :outer("13_1270238429.61")
+.sub "_block38"  :anon :subid("14_1271336409.53729") :outer("13_1271336409.53729")
 .annotate "line", 16
-    .const 'Sub' $P50 = "15_1270238429.61" 
+    .const 'Sub' $P50 = "15_1271336409.53729" 
     capture_lex $P50
 .annotate "line", 17
     new $P40, "Undef"
@@ -16201,7 +16201,7 @@
     unless $P44, loop55_done
     shift $P48, $P44
   loop55_redo:
-    .const 'Sub' $P50 = "15_1270238429.61" 
+    .const 'Sub' $P50 = "15_1271336409.53729" 
     capture_lex $P50
     $P50($P48)
   loop55_next:
@@ -16224,7 +16224,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block49"  :anon :subid("15_1270238429.61") :outer("14_1270238429.61")
+.sub "_block49"  :anon :subid("15_1271336409.53729") :outer("14_1271336409.53729")
     .param pmc param_51
 .annotate "line", 18
     .lex "$_", param_51
@@ -16236,7 +16236,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "vivitype"  :subid("16_1270238429.61") :outer("11_1270238429.61")
+.sub "vivitype"  :subid("16_1271336409.53729") :outer("11_1271336409.53729")
     .param pmc param_64
 .annotate "line", 24
     new $P63, 'ExceptionHandler'
@@ -16284,7 +16284,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair_str"  :subid("17_1270238429.61") :outer("11_1270238429.61")
+.sub "colonpair_str"  :subid("17_1271336409.53729") :outer("11_1271336409.53729")
     .param pmc param_84
 .annotate "line", 43
     new $P83, 'ExceptionHandler'
@@ -16322,7 +16322,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "push_block_handler"  :subid("18_1270238429.61") :outer("11_1270238429.61")
+.sub "push_block_handler"  :subid("18_1271336409.53729") :outer("11_1271336409.53729")
     .param pmc param_99
     .param pmc param_100
 .annotate "line", 190
@@ -16439,7 +16439,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "TOP"  :subid("19_1270238429.61") :method :outer("11_1270238429.61")
+.sub "TOP"  :subid("19_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_153
 .annotate "line", 33
     new $P152, 'ExceptionHandler'
@@ -16469,7 +16469,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "deflongname"  :subid("20_1270238429.61") :method :outer("11_1270238429.61")
+.sub "deflongname"  :subid("20_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_163
 .annotate "line", 35
     new $P162, 'ExceptionHandler'
@@ -16558,7 +16558,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "comp_unit"  :subid("21_1270238429.61") :method :outer("11_1270238429.61")
+.sub "comp_unit"  :subid("21_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_196
 .annotate "line", 49
     new $P195, 'ExceptionHandler'
@@ -16611,10 +16611,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statementlist"  :subid("22_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statementlist"  :subid("22_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_215
 .annotate "line", 57
-    .const 'Sub' $P229 = "23_1270238429.61" 
+    .const 'Sub' $P229 = "23_1271336409.53729" 
     capture_lex $P229
     new $P214, 'ExceptionHandler'
     set_addr $P214, control_213
@@ -16659,7 +16659,7 @@
     unless $P223, loop254_done
     shift $P227, $P223
   loop254_redo:
-    .const 'Sub' $P229 = "23_1270238429.61" 
+    .const 'Sub' $P229 = "23_1271336409.53729" 
     capture_lex $P229
     $P229($P227)
   loop254_next:
@@ -16689,7 +16689,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block228"  :anon :subid("23_1270238429.61") :outer("22_1270238429.61")
+.sub "_block228"  :anon :subid("23_1271336409.53729") :outer("22_1271336409.53729")
     .param pmc param_231
 .annotate "line", 61
     new $P230, "Undef"
@@ -16749,12 +16749,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement"  :subid("24_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement"  :subid("24_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_264
     .param pmc param_265 :optional
     .param int has_param_265 :opt_flag
 .annotate "line", 72
-    .const 'Sub' $P273 = "25_1270238429.61" 
+    .const 'Sub' $P273 = "25_1271336409.53729" 
     capture_lex $P273
     new $P263, 'ExceptionHandler'
     set_addr $P263, control_262
@@ -16813,7 +16813,7 @@
     goto if_269_end
   if_269:
 .annotate "line", 74
-    .const 'Sub' $P273 = "25_1270238429.61" 
+    .const 'Sub' $P273 = "25_1271336409.53729" 
     capture_lex $P273
     $P273()
   if_269_end:
@@ -16832,7 +16832,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block272"  :anon :subid("25_1270238429.61") :outer("24_1270238429.61")
+.sub "_block272"  :anon :subid("25_1271336409.53729") :outer("24_1271336409.53729")
 .annotate "line", 75
     new $P274, "Undef"
     .lex "$mc", $P274
@@ -16945,7 +16945,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock"  :subid("26_1270238429.61") :method :outer("11_1270238429.61")
+.sub "xblock"  :subid("26_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_324
 .annotate "line", 90
     new $P323, 'ExceptionHandler'
@@ -16989,7 +16989,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "pblock"  :subid("27_1270238429.61") :method :outer("11_1270238429.61")
+.sub "pblock"  :subid("27_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_340
 .annotate "line", 94
     new $P339, 'ExceptionHandler'
@@ -17021,7 +17021,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "block"  :subid("28_1270238429.61") :method :outer("11_1270238429.61")
+.sub "block"  :subid("28_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_350
 .annotate "line", 98
     new $P349, 'ExceptionHandler'
@@ -17053,7 +17053,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "blockoid"  :subid("29_1270238429.61") :method :outer("11_1270238429.61")
+.sub "blockoid"  :subid("29_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_360
 .annotate "line", 102
     new $P359, 'ExceptionHandler'
@@ -17106,7 +17106,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "newpad"  :subid("30_1270238429.61") :method :outer("11_1270238429.61")
+.sub "newpad"  :subid("30_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_379
 .annotate "line", 110
     new $P378, 'ExceptionHandler'
@@ -17141,10 +17141,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>"  :subid("31_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<if>"  :subid("31_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_392
 .annotate "line", 117
-    .const 'Sub' $P420 = "32_1270238429.61" 
+    .const 'Sub' $P420 = "32_1271336409.53729" 
     capture_lex $P420
     new $P391, 'ExceptionHandler'
     set_addr $P391, control_390
@@ -17229,7 +17229,7 @@
     isgt $I418, $N417, 0.0
     unless $I418, loop435_done
   loop435_redo:
-    .const 'Sub' $P420 = "32_1270238429.61" 
+    .const 'Sub' $P420 = "32_1271336409.53729" 
     capture_lex $P420
     $P420()
   loop435_next:
@@ -17257,7 +17257,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block419"  :anon :subid("32_1270238429.61") :outer("31_1270238429.61")
+.sub "_block419"  :anon :subid("32_1271336409.53729") :outer("31_1271336409.53729")
 .annotate "line", 126
     new $P421, "Undef"
     .lex "$else", $P421
@@ -17296,7 +17296,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>"  :subid("33_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<unless>"  :subid("33_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_445
 .annotate "line", 133
     new $P444, 'ExceptionHandler'
@@ -17337,7 +17337,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>"  :subid("34_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<while>"  :subid("34_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_459
 .annotate "line", 139
     new $P458, 'ExceptionHandler'
@@ -17387,7 +17387,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>"  :subid("35_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<repeat>"  :subid("35_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_476
 .annotate "line", 145
     new $P475, 'ExceptionHandler'
@@ -17487,7 +17487,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>"  :subid("36_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<for>"  :subid("36_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_512
 .annotate "line", 159
     new $P511, 'ExceptionHandler'
@@ -17567,7 +17567,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>"  :subid("37_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<return>"  :subid("37_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_538
 .annotate "line", 172
     new $P537, 'ExceptionHandler'
@@ -17602,7 +17602,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>"  :subid("38_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<CATCH>"  :subid("38_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_551
 .annotate "line", 176
     new $P550, 'ExceptionHandler'
@@ -17660,7 +17660,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>"  :subid("39_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_control:sym<CONTROL>"  :subid("39_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_571
 .annotate "line", 183
     new $P570, 'ExceptionHandler'
@@ -17718,7 +17718,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>"  :subid("40_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_prefix:sym<INIT>"  :subid("40_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_592
 .annotate "line", 227
     new $P591, 'ExceptionHandler'
@@ -17764,7 +17764,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>"  :subid("41_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_prefix:sym<try>"  :subid("41_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_608
 .annotate "line", 232
     new $P607, 'ExceptionHandler'
@@ -17841,7 +17841,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "blorst"  :subid("42_1270238429.61") :method :outer("11_1270238429.61")
+.sub "blorst"  :subid("42_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_643
 .annotate "line", 255
     new $P642, 'ExceptionHandler'
@@ -17900,7 +17900,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>"  :subid("43_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_mod_cond:sym<if>"  :subid("43_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_661
 .annotate "line", 263
     new $P660, 'ExceptionHandler'
@@ -17930,7 +17930,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>"  :subid("44_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_mod_cond:sym<unless>"  :subid("44_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_671
 .annotate "line", 264
     new $P670, 'ExceptionHandler'
@@ -17960,7 +17960,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>"  :subid("45_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_mod_loop:sym<while>"  :subid("45_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_681
 .annotate "line", 266
     new $P680, 'ExceptionHandler'
@@ -17990,7 +17990,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>"  :subid("46_1270238429.61") :method :outer("11_1270238429.61")
+.sub "statement_mod_loop:sym<until>"  :subid("46_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_691
 .annotate "line", 267
     new $P690, 'ExceptionHandler'
@@ -18020,7 +18020,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>"  :subid("47_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<fatarrow>"  :subid("47_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_701
 .annotate "line", 271
     new $P700, 'ExceptionHandler'
@@ -18050,7 +18050,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>"  :subid("48_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<colonpair>"  :subid("48_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_711
 .annotate "line", 272
     new $P710, 'ExceptionHandler'
@@ -18080,7 +18080,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<variable>"  :subid("49_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<variable>"  :subid("49_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_721
 .annotate "line", 273
     new $P720, 'ExceptionHandler'
@@ -18110,7 +18110,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>"  :subid("50_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<package_declarator>"  :subid("50_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_731
 .annotate "line", 274
     new $P730, 'ExceptionHandler'
@@ -18140,7 +18140,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>"  :subid("51_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<scope_declarator>"  :subid("51_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_741
 .annotate "line", 275
     new $P740, 'ExceptionHandler'
@@ -18170,7 +18170,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>"  :subid("52_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<routine_declarator>"  :subid("52_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_751
 .annotate "line", 276
     new $P750, 'ExceptionHandler'
@@ -18200,7 +18200,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>"  :subid("53_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<regex_declarator>"  :subid("53_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_761
 .annotate "line", 277
     new $P760, 'ExceptionHandler'
@@ -18230,7 +18230,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>"  :subid("54_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<statement_prefix>"  :subid("54_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_771
 .annotate "line", 278
     new $P770, 'ExceptionHandler'
@@ -18260,7 +18260,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>"  :subid("55_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<lambda>"  :subid("55_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_781
 .annotate "line", 279
     new $P780, 'ExceptionHandler'
@@ -18290,7 +18290,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "fatarrow"  :subid("56_1270238429.61") :method :outer("11_1270238429.61")
+.sub "fatarrow"  :subid("56_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_791
 .annotate "line", 281
     new $P790, 'ExceptionHandler'
@@ -18339,7 +18339,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair"  :subid("57_1270238429.61") :method :outer("11_1270238429.61")
+.sub "colonpair"  :subid("57_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_807
 .annotate "line", 287
     new $P806, 'ExceptionHandler'
@@ -18420,10 +18420,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable"  :subid("58_1270238429.61") :method :outer("11_1270238429.61")
+.sub "variable"  :subid("58_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_833
 .annotate "line", 295
-    .const 'Sub' $P846 = "59_1270238429.61" 
+    .const 'Sub' $P846 = "59_1271336409.53729" 
     capture_lex $P846
     new $P832, 'ExceptionHandler'
     set_addr $P832, control_831
@@ -18447,7 +18447,7 @@
   vivify_296:
     if $P838, if_836
 .annotate "line", 301
-    .const 'Sub' $P846 = "59_1270238429.61" 
+    .const 'Sub' $P846 = "59_1271336409.53729" 
     capture_lex $P846
     $P846()
     goto if_836_end
@@ -18484,7 +18484,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block845"  :anon :subid("59_1270238429.61") :outer("58_1270238429.61")
+.sub "_block845"  :anon :subid("59_1271336409.53729") :outer("58_1271336409.53729")
 .annotate "line", 302
     $P847 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P847
@@ -18653,7 +18653,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>"  :subid("60_1270238429.61") :method :outer("11_1270238429.61")
+.sub "package_declarator:sym<module>"  :subid("60_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_922
 .annotate "line", 333
     new $P921, 'ExceptionHandler'
@@ -18683,7 +18683,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>"  :subid("61_1270238429.61") :method :outer("11_1270238429.61")
+.sub "package_declarator:sym<class>"  :subid("61_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_932
 .annotate "line", 334
     new $P931, 'ExceptionHandler'
@@ -18840,7 +18840,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_def"  :subid("62_1270238429.61") :method :outer("11_1270238429.61")
+.sub "package_def"  :subid("62_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_985
 .annotate "line", 357
     new $P984, 'ExceptionHandler'
@@ -18918,7 +18918,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>"  :subid("63_1270238429.61") :method :outer("11_1270238429.61")
+.sub "scope_declarator:sym<my>"  :subid("63_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1009
 .annotate "line", 364
     new $P1008, 'ExceptionHandler'
@@ -18948,7 +18948,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>"  :subid("64_1270238429.61") :method :outer("11_1270238429.61")
+.sub "scope_declarator:sym<our>"  :subid("64_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1019
 .annotate "line", 365
     new $P1018, 'ExceptionHandler'
@@ -18978,7 +18978,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>"  :subid("65_1270238429.61") :method :outer("11_1270238429.61")
+.sub "scope_declarator:sym<has>"  :subid("65_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1029
 .annotate "line", 366
     new $P1028, 'ExceptionHandler'
@@ -19008,7 +19008,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scoped"  :subid("66_1270238429.61") :method :outer("11_1270238429.61")
+.sub "scoped"  :subid("66_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1039
 .annotate "line", 368
     new $P1038, 'ExceptionHandler'
@@ -19066,10 +19066,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable_declarator"  :subid("67_1270238429.61") :method :outer("11_1270238429.61")
+.sub "variable_declarator"  :subid("67_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1056
 .annotate "line", 374
-    .const 'Sub' $P1096 = "68_1270238429.61" 
+    .const 'Sub' $P1096 = "68_1271336409.53729" 
     capture_lex $P1096
     new $P1055, 'ExceptionHandler'
     set_addr $P1055, control_1054
@@ -19151,7 +19151,7 @@
     iseq $I1081, $S1080, "has"
     if $I1081, if_1078
 .annotate "line", 391
-    .const 'Sub' $P1096 = "68_1270238429.61" 
+    .const 'Sub' $P1096 = "68_1271336409.53729" 
     capture_lex $P1096
     $P1096()
     goto if_1078_end
@@ -19211,7 +19211,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1095"  :anon :subid("68_1270238429.61") :outer("67_1270238429.61")
+.sub "_block1095"  :anon :subid("68_1271336409.53729") :outer("67_1271336409.53729")
 .annotate "line", 392
     new $P1097, "Undef"
     .lex "$scope", $P1097
@@ -19272,7 +19272,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>"  :subid("69_1270238429.61") :method :outer("11_1270238429.61")
+.sub "routine_declarator:sym<sub>"  :subid("69_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1127
 .annotate "line", 402
     new $P1126, 'ExceptionHandler'
@@ -19302,7 +19302,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>"  :subid("70_1270238429.61") :method :outer("11_1270238429.61")
+.sub "routine_declarator:sym<method>"  :subid("70_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1137
 .annotate "line", 403
     new $P1136, 'ExceptionHandler'
@@ -19332,10 +19332,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_def"  :subid("71_1270238429.61") :method :outer("11_1270238429.61")
+.sub "routine_def"  :subid("71_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1147
 .annotate "line", 405
-    .const 'Sub' $P1158 = "72_1270238429.61" 
+    .const 'Sub' $P1158 = "72_1271336409.53729" 
     capture_lex $P1158
     new $P1146, 'ExceptionHandler'
     set_addr $P1146, control_1145
@@ -19372,7 +19372,7 @@
     new $P1156, "Undef"
   vivify_380:
     unless $P1156, if_1154_end
-    .const 'Sub' $P1158 = "72_1270238429.61" 
+    .const 'Sub' $P1158 = "72_1271336409.53729" 
     capture_lex $P1158
     $P1158()
   if_1154_end:
@@ -19391,7 +19391,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1157"  :anon :subid("72_1270238429.61") :outer("71_1270238429.61")
+.sub "_block1157"  :anon :subid("72_1271336409.53729") :outer("71_1271336409.53729")
 .annotate "line", 410
     new $P1159, "Undef"
     .lex "$name", $P1159
@@ -19487,10 +19487,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "method_def"  :subid("73_1270238429.61") :method :outer("11_1270238429.61")
+.sub "method_def"  :subid("73_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1197
 .annotate "line", 423
-    .const 'Sub' $P1213 = "74_1270238429.61" 
+    .const 'Sub' $P1213 = "74_1271336409.53729" 
     capture_lex $P1213
     new $P1196, 'ExceptionHandler'
     set_addr $P1196, control_1195
@@ -19542,7 +19542,7 @@
     new $P1211, "Undef"
   vivify_399:
     unless $P1211, if_1209_end
-    .const 'Sub' $P1213 = "74_1270238429.61" 
+    .const 'Sub' $P1213 = "74_1271336409.53729" 
     capture_lex $P1213
     $P1213()
   if_1209_end:
@@ -19561,7 +19561,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1212"  :anon :subid("74_1270238429.61") :outer("73_1270238429.61")
+.sub "_block1212"  :anon :subid("74_1271336409.53729") :outer("73_1271336409.53729")
 .annotate "line", 430
     new $P1214, "Undef"
     .lex "$name", $P1214
@@ -19592,10 +19592,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "signature"  :subid("75_1270238429.61") :method :outer("11_1270238429.61")
+.sub "signature"  :subid("75_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1231
 .annotate "line", 437
-    .const 'Sub' $P1242 = "76_1270238429.61" 
+    .const 'Sub' $P1242 = "76_1271336409.53729" 
     capture_lex $P1242
     new $P1230, 'ExceptionHandler'
     set_addr $P1230, control_1229
@@ -19639,7 +19639,7 @@
     unless $P1236, loop1248_done
     shift $P1240, $P1236
   loop1248_redo:
-    .const 'Sub' $P1242 = "76_1270238429.61" 
+    .const 'Sub' $P1242 = "76_1271336409.53729" 
     capture_lex $P1242
     $P1242($P1240)
   loop1248_next:
@@ -19664,7 +19664,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1241"  :anon :subid("76_1270238429.61") :outer("75_1270238429.61")
+.sub "_block1241"  :anon :subid("76_1271336409.53729") :outer("75_1271336409.53729")
     .param pmc param_1243
 .annotate "line", 439
     .lex "$_", param_1243
@@ -19677,7 +19677,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "parameter"  :subid("77_1270238429.61") :method :outer("11_1270238429.61")
+.sub "parameter"  :subid("77_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1255
 .annotate "line", 442
     new $P1254, 'ExceptionHandler'
@@ -19909,7 +19909,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "param_var"  :subid("78_1270238429.61") :method :outer("11_1270238429.61")
+.sub "param_var"  :subid("78_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1339
 .annotate "line", 474
     new $P1338, 'ExceptionHandler'
@@ -19962,7 +19962,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "named_param"  :subid("79_1270238429.61") :method :outer("11_1270238429.61")
+.sub "named_param"  :subid("79_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1359
 .annotate "line", 482
     new $P1358, 'ExceptionHandler'
@@ -20015,14 +20015,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "regex_declarator"  :subid("80_1270238429.61") :method :outer("11_1270238429.61")
+.sub "regex_declarator"  :subid("80_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1376
     .param pmc param_1377 :optional
     .param int has_param_1377 :opt_flag
 .annotate "line", 488
-    .const 'Sub' $P1447 = "82_1270238429.61" 
+    .const 'Sub' $P1447 = "82_1271336409.53729" 
     capture_lex $P1447
-    .const 'Sub' $P1419 = "81_1270238429.61" 
+    .const 'Sub' $P1419 = "81_1271336409.53729" 
     capture_lex $P1419
     new $P1375, 'ExceptionHandler'
     set_addr $P1375, control_1374
@@ -20080,13 +20080,13 @@
     iseq $I1417, $S1416, "open"
     if $I1417, if_1414
 .annotate "line", 534
-    .const 'Sub' $P1447 = "82_1270238429.61" 
+    .const 'Sub' $P1447 = "82_1271336409.53729" 
     capture_lex $P1447
     $P1447()
     goto if_1414_end
   if_1414:
 .annotate "line", 521
-    .const 'Sub' $P1419 = "81_1270238429.61" 
+    .const 'Sub' $P1419 = "81_1271336409.53729" 
     capture_lex $P1419
     $P1419()
   if_1414_end:
@@ -20143,7 +20143,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1446"  :anon :subid("82_1270238429.61") :outer("80_1270238429.61")
+.sub "_block1446"  :anon :subid("82_1271336409.53729") :outer("80_1271336409.53729")
 .annotate "line", 535
     new $P1448, "Undef"
     .lex "$regex", $P1448
@@ -20194,7 +20194,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1418"  :anon :subid("81_1270238429.61") :outer("80_1270238429.61")
+.sub "_block1418"  :anon :subid("81_1271336409.53729") :outer("80_1271336409.53729")
 .annotate "line", 522
     $P1420 = root_new ['parrot';'Hash']
     .lex "%h", $P1420
@@ -20292,7 +20292,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "dotty"  :subid("83_1270238429.61") :method :outer("11_1270238429.61")
+.sub "dotty"  :subid("83_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1475
 .annotate "line", 552
     new $P1474, 'ExceptionHandler'
@@ -20389,7 +20389,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<self>"  :subid("84_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<self>"  :subid("84_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1507
 .annotate "line", 561
     new $P1506, 'ExceptionHandler'
@@ -20414,7 +20414,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>"  :subid("85_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<identifier>"  :subid("85_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1516
 .annotate "line", 565
     new $P1515, 'ExceptionHandler'
@@ -20463,7 +20463,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<name>"  :subid("86_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<name>"  :subid("86_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1532
 .annotate "line", 571
     new $P1531, 'ExceptionHandler'
@@ -20581,7 +20581,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>"  :subid("87_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<pir::op>"  :subid("87_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1574
 .annotate "line", 585
     new $P1573, 'ExceptionHandler'
@@ -20672,7 +20672,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "args"  :subid("88_1270238429.61") :method :outer("11_1270238429.61")
+.sub "args"  :subid("88_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1603
 .annotate "line", 600
     new $P1602, 'ExceptionHandler'
@@ -20702,10 +20702,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "arglist"  :subid("89_1270238429.61") :method :outer("11_1270238429.61")
+.sub "arglist"  :subid("89_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1613
 .annotate "line", 602
-    .const 'Sub' $P1624 = "90_1270238429.61" 
+    .const 'Sub' $P1624 = "90_1271336409.53729" 
     capture_lex $P1624
     new $P1612, 'ExceptionHandler'
     set_addr $P1612, control_1611
@@ -20737,7 +20737,7 @@
     new $P1622, "Undef"
   vivify_498:
     unless $P1622, if_1620_end
-    .const 'Sub' $P1624 = "90_1270238429.61" 
+    .const 'Sub' $P1624 = "90_1271336409.53729" 
     capture_lex $P1624
     $P1624()
   if_1620_end:
@@ -20845,9 +20845,9 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1623"  :anon :subid("90_1270238429.61") :outer("89_1270238429.61")
+.sub "_block1623"  :anon :subid("90_1271336409.53729") :outer("89_1271336409.53729")
 .annotate "line", 604
-    .const 'Sub' $P1645 = "91_1270238429.61" 
+    .const 'Sub' $P1645 = "91_1271336409.53729" 
     capture_lex $P1645
 .annotate "line", 605
     new $P1625, "Undef"
@@ -20900,7 +20900,7 @@
     unless $P1639, loop1650_done
     shift $P1643, $P1639
   loop1650_redo:
-    .const 'Sub' $P1645 = "91_1270238429.61" 
+    .const 'Sub' $P1645 = "91_1271336409.53729" 
     capture_lex $P1645
     $P1645($P1643)
   loop1650_next:
@@ -20923,7 +20923,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1644"  :anon :subid("91_1270238429.61") :outer("90_1270238429.61")
+.sub "_block1644"  :anon :subid("91_1271336409.53729") :outer("90_1271336409.53729")
     .param pmc param_1646
 .annotate "line", 607
     .lex "$_", param_1646
@@ -20935,7 +20935,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<value>"  :subid("92_1270238429.61") :method :outer("11_1270238429.61")
+.sub "term:sym<value>"  :subid("92_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1697
 .annotate "line", 624
     new $P1696, 'ExceptionHandler'
@@ -20965,7 +20965,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>"  :subid("93_1270238429.61") :method :outer("11_1270238429.61")
+.sub "circumfix:sym<( )>"  :subid("93_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1707
 .annotate "line", 626
     new $P1706, 'ExceptionHandler'
@@ -21021,7 +21021,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>"  :subid("94_1270238429.61") :method :outer("11_1270238429.61")
+.sub "circumfix:sym<[ ]>"  :subid("94_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1725
 .annotate "line", 632
     new $P1724, 'ExceptionHandler'
@@ -21097,7 +21097,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>"  :subid("95_1270238429.61") :method :outer("11_1270238429.61")
+.sub "circumfix:sym<ang>"  :subid("95_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1752
 .annotate "line", 647
     new $P1751, 'ExceptionHandler'
@@ -21127,7 +21127,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("96_1270238429.61") :method :outer("11_1270238429.61")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("96_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1762
 .annotate "line", 648
     new $P1761, 'ExceptionHandler'
@@ -21157,7 +21157,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>"  :subid("97_1270238429.61") :method :outer("11_1270238429.61")
+.sub "circumfix:sym<{ }>"  :subid("97_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1772
 .annotate "line", 650
     new $P1771, 'ExceptionHandler'
@@ -21221,7 +21221,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>"  :subid("98_1270238429.61") :method :outer("11_1270238429.61")
+.sub "circumfix:sym<sigil>"  :subid("98_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1792
 .annotate "line", 656
     new $P1791, 'ExceptionHandler'
@@ -21300,7 +21300,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "semilist"  :subid("99_1270238429.61") :method :outer("11_1270238429.61")
+.sub "semilist"  :subid("99_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1821
 .annotate "line", 663
     new $P1820, 'ExceptionHandler'
@@ -21330,7 +21330,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>"  :subid("100_1270238429.61") :method :outer("11_1270238429.61")
+.sub "postcircumfix:sym<[ ]>"  :subid("100_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1831
 .annotate "line", 665
     new $P1830, 'ExceptionHandler'
@@ -21367,7 +21367,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>"  :subid("101_1270238429.61") :method :outer("11_1270238429.61")
+.sub "postcircumfix:sym<{ }>"  :subid("101_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1844
 .annotate "line", 671
     new $P1843, 'ExceptionHandler'
@@ -21404,7 +21404,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>"  :subid("102_1270238429.61") :method :outer("11_1270238429.61")
+.sub "postcircumfix:sym<ang>"  :subid("102_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1857
 .annotate "line", 677
     new $P1856, 'ExceptionHandler'
@@ -21441,7 +21441,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>"  :subid("103_1270238429.61") :method :outer("11_1270238429.61")
+.sub "postcircumfix:sym<( )>"  :subid("103_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1870
 .annotate "line", 683
     new $P1869, 'ExceptionHandler'
@@ -21473,7 +21473,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "value"  :subid("104_1270238429.61") :method :outer("11_1270238429.61")
+.sub "value"  :subid("104_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1880
 .annotate "line", 687
     new $P1879, 'ExceptionHandler'
@@ -21528,7 +21528,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "number"  :subid("105_1270238429.61") :method :outer("11_1270238429.61")
+.sub "number"  :subid("105_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1897
 .annotate "line", 691
     new $P1896, 'ExceptionHandler'
@@ -21606,7 +21606,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>"  :subid("106_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote:sym<apos>"  :subid("106_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1925
 .annotate "line", 697
     new $P1924, 'ExceptionHandler'
@@ -21636,7 +21636,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>"  :subid("107_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote:sym<dblq>"  :subid("107_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1935
 .annotate "line", 698
     new $P1934, 'ExceptionHandler'
@@ -21666,7 +21666,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>"  :subid("108_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote:sym<qq>"  :subid("108_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1945
 .annotate "line", 699
     new $P1944, 'ExceptionHandler'
@@ -21696,7 +21696,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<q>"  :subid("109_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote:sym<q>"  :subid("109_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1955
 .annotate "line", 700
     new $P1954, 'ExceptionHandler'
@@ -21726,7 +21726,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>"  :subid("110_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote:sym<Q>"  :subid("110_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1965
 .annotate "line", 701
     new $P1964, 'ExceptionHandler'
@@ -21756,7 +21756,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>"  :subid("111_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote:sym<Q:PIR>"  :subid("111_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1975
 .annotate "line", 702
     new $P1974, 'ExceptionHandler'
@@ -21792,7 +21792,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym</ />"  :subid("112_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote:sym</ />"  :subid("112_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_1989
     .param pmc param_1990 :optional
     .param int has_param_1990 :opt_flag
@@ -21901,7 +21901,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>"  :subid("113_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote_escape:sym<$>"  :subid("113_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_2026
 .annotate "line", 731
     new $P2025, 'ExceptionHandler'
@@ -21931,7 +21931,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>"  :subid("114_1270238429.61") :method :outer("11_1270238429.61")
+.sub "quote_escape:sym<{ }>"  :subid("114_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_2036
 .annotate "line", 732
     new $P2035, 'ExceptionHandler'
@@ -21969,7 +21969,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>"  :subid("115_1270238429.61") :method :outer("11_1270238429.61")
+.sub "postfix:sym<.>"  :subid("115_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_2050
 .annotate "line", 740
     new $P2049, 'ExceptionHandler'
@@ -21999,7 +21999,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>"  :subid("116_1270238429.61") :method :outer("11_1270238429.61")
+.sub "postfix:sym<++>"  :subid("116_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_2060
 .annotate "line", 742
     new $P2059, 'ExceptionHandler'
@@ -22029,7 +22029,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->"  :subid("117_1270238429.61") :method :outer("11_1270238429.61")
+.sub "postfix:sym<-->"  :subid("117_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_2070
 .annotate "line", 748
     new $P2069, 'ExceptionHandler'
@@ -22059,7 +22059,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>"  :subid("118_1270238429.61") :method :outer("11_1270238429.61")
+.sub "prefix:sym<make>"  :subid("118_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_2080
 .annotate "line", 754
     new $P2079, 'ExceptionHandler'
@@ -22089,7 +22089,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>"  :subid("119_1270238429.61") :method :outer("11_1270238429.61")
+.sub "infix:sym<~~>"  :subid("119_1271336409.53729") :method :outer("11_1271336409.53729")
     .param pmc param_2092
 .annotate "line", 763
     new $P2091, 'ExceptionHandler'
@@ -22115,18 +22115,18 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2099"  :subid("120_1270238429.61") :outer("11_1270238429.61")
+.sub "_block2099"  :subid("120_1271336409.53729") :outer("11_1271336409.53729")
 .annotate "line", 768
-    .const 'Sub' $P2135 = "124_1270238429.61" 
+    .const 'Sub' $P2135 = "124_1271336409.53729" 
     capture_lex $P2135
-    .const 'Sub' $P2125 = "123_1270238429.61" 
+    .const 'Sub' $P2125 = "123_1271336409.53729" 
     capture_lex $P2125
-    .const 'Sub' $P2115 = "122_1270238429.61" 
+    .const 'Sub' $P2115 = "122_1271336409.53729" 
     capture_lex $P2115
-    .const 'Sub' $P2101 = "121_1270238429.61" 
+    .const 'Sub' $P2101 = "121_1271336409.53729" 
     capture_lex $P2101
 .annotate "line", 779
-    .const 'Sub' $P2135 = "124_1270238429.61" 
+    .const 'Sub' $P2135 = "124_1271336409.53729" 
     capture_lex $P2135
 .annotate "line", 768
     .return ($P2135)
@@ -22134,7 +22134,7 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>"  :subid("121_1270238429.61") :method :outer("120_1270238429.61")
+.sub "metachar:sym<:my>"  :subid("121_1271336409.53729") :method :outer("120_1271336409.53729")
     .param pmc param_2104
 .annotate "line", 770
     new $P2103, 'ExceptionHandler'
@@ -22173,7 +22173,7 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>"  :subid("122_1270238429.61") :method :outer("120_1270238429.61")
+.sub "metachar:sym<{ }>"  :subid("122_1271336409.53729") :method :outer("120_1271336409.53729")
     .param pmc param_2118
 .annotate "line", 775
     new $P2117, 'ExceptionHandler'
@@ -22203,7 +22203,7 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>"  :subid("123_1270238429.61") :method :outer("120_1270238429.61")
+.sub "assertion:sym<{ }>"  :subid("123_1271336409.53729") :method :outer("120_1271336409.53729")
     .param pmc param_2128
 .annotate "line", 777
     new $P2127, 'ExceptionHandler'
@@ -22233,7 +22233,7 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "codeblock"  :subid("124_1270238429.61") :method :outer("120_1270238429.61")
+.sub "codeblock"  :subid("124_1271336409.53729") :method :outer("120_1271336409.53729")
     .param pmc param_2138
 .annotate "line", 779
     new $P2137, 'ExceptionHandler'

Modified: branches/immutable_strings_part1/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/immutable_strings_part1/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1270238412.111")
+.sub "_block11"  :anon :subid("10_1271336383.463")
 .annotate "line", 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -30,9 +30,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post158") :outer("10_1270238412.111")
+.sub "" :load :init :subid("post158") :outer("10_1271336383.463")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1270238412.111" 
+    .const 'Sub' $P12 = "10_1271336383.463" 
     .local pmc block
     set block, $P12
     $P580 = get_root_global ["parrot"], "P6metaclass"
@@ -41,140 +41,140 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1270238412.111") :outer("10_1270238412.111")
+.sub "_block13"  :subid("11_1271336383.463") :outer("10_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P571 = "156_1270238412.111" 
+    .const 'Sub' $P571 = "156_1271336383.463" 
     capture_lex $P571
-    .const 'Sub' $P563 = "154_1270238412.111" 
+    .const 'Sub' $P563 = "154_1271336383.463" 
     capture_lex $P563
-    .const 'Sub' $P555 = "152_1270238412.111" 
+    .const 'Sub' $P555 = "152_1271336383.463" 
     capture_lex $P555
-    .const 'Sub' $P534 = "147_1270238412.111" 
+    .const 'Sub' $P534 = "147_1271336383.463" 
     capture_lex $P534
-    .const 'Sub' $P499 = "141_1270238412.111" 
+    .const 'Sub' $P499 = "141_1271336383.463" 
     capture_lex $P499
-    .const 'Sub' $P487 = "138_1270238412.111" 
+    .const 'Sub' $P487 = "138_1271336383.463" 
     capture_lex $P487
-    .const 'Sub' $P474 = "135_1270238412.111" 
+    .const 'Sub' $P474 = "135_1271336383.463" 
     capture_lex $P474
-    .const 'Sub' $P468 = "133_1270238412.111" 
+    .const 'Sub' $P468 = "133_1271336383.463" 
     capture_lex $P468
-    .const 'Sub' $P457 = "130_1270238412.111" 
+    .const 'Sub' $P457 = "130_1271336383.463" 
     capture_lex $P457
-    .const 'Sub' $P446 = "127_1270238412.111" 
+    .const 'Sub' $P446 = "127_1271336383.463" 
     capture_lex $P446
-    .const 'Sub' $P437 = "123_1270238412.111" 
+    .const 'Sub' $P437 = "123_1271336383.463" 
     capture_lex $P437
-    .const 'Sub' $P431 = "121_1270238412.111" 
+    .const 'Sub' $P431 = "121_1271336383.463" 
     capture_lex $P431
-    .const 'Sub' $P425 = "119_1270238412.111" 
+    .const 'Sub' $P425 = "119_1271336383.463" 
     capture_lex $P425
-    .const 'Sub' $P419 = "117_1270238412.111" 
+    .const 'Sub' $P419 = "117_1271336383.463" 
     capture_lex $P419
-    .const 'Sub' $P413 = "115_1270238412.111" 
+    .const 'Sub' $P413 = "115_1271336383.463" 
     capture_lex $P413
-    .const 'Sub' $P405 = "113_1270238412.111" 
+    .const 'Sub' $P405 = "113_1271336383.463" 
     capture_lex $P405
-    .const 'Sub' $P394 = "111_1270238412.111" 
+    .const 'Sub' $P394 = "111_1271336383.463" 
     capture_lex $P394
-    .const 'Sub' $P383 = "109_1270238412.111" 
+    .const 'Sub' $P383 = "109_1271336383.463" 
     capture_lex $P383
-    .const 'Sub' $P377 = "107_1270238412.111" 
+    .const 'Sub' $P377 = "107_1271336383.463" 
     capture_lex $P377
-    .const 'Sub' $P371 = "105_1270238412.111" 
+    .const 'Sub' $P371 = "105_1271336383.463" 
     capture_lex $P371
-    .const 'Sub' $P365 = "103_1270238412.111" 
+    .const 'Sub' $P365 = "103_1271336383.463" 
     capture_lex $P365
-    .const 'Sub' $P359 = "101_1270238412.111" 
+    .const 'Sub' $P359 = "101_1271336383.463" 
     capture_lex $P359
-    .const 'Sub' $P353 = "99_1270238412.111" 
+    .const 'Sub' $P353 = "99_1271336383.463" 
     capture_lex $P353
-    .const 'Sub' $P347 = "97_1270238412.111" 
+    .const 'Sub' $P347 = "97_1271336383.463" 
     capture_lex $P347
-    .const 'Sub' $P341 = "95_1270238412.111" 
+    .const 'Sub' $P341 = "95_1271336383.463" 
     capture_lex $P341
-    .const 'Sub' $P335 = "93_1270238412.111" 
+    .const 'Sub' $P335 = "93_1271336383.463" 
     capture_lex $P335
-    .const 'Sub' $P323 = "89_1270238412.111" 
+    .const 'Sub' $P323 = "89_1271336383.463" 
     capture_lex $P323
-    .const 'Sub' $P311 = "87_1270238412.111" 
+    .const 'Sub' $P311 = "87_1271336383.463" 
     capture_lex $P311
-    .const 'Sub' $P304 = "85_1270238412.111" 
+    .const 'Sub' $P304 = "85_1271336383.463" 
     capture_lex $P304
-    .const 'Sub' $P287 = "83_1270238412.111" 
+    .const 'Sub' $P287 = "83_1271336383.463" 
     capture_lex $P287
-    .const 'Sub' $P280 = "81_1270238412.111" 
+    .const 'Sub' $P280 = "81_1271336383.463" 
     capture_lex $P280
-    .const 'Sub' $P274 = "79_1270238412.111" 
+    .const 'Sub' $P274 = "79_1271336383.463" 
     capture_lex $P274
-    .const 'Sub' $P268 = "77_1270238412.111" 
+    .const 'Sub' $P268 = "77_1271336383.463" 
     capture_lex $P268
-    .const 'Sub' $P261 = "75_1270238412.111" 
+    .const 'Sub' $P261 = "75_1271336383.463" 
     capture_lex $P261
-    .const 'Sub' $P254 = "73_1270238412.111" 
+    .const 'Sub' $P254 = "73_1271336383.463" 
     capture_lex $P254
-    .const 'Sub' $P247 = "71_1270238412.111" 
+    .const 'Sub' $P247 = "71_1271336383.463" 
     capture_lex $P247
-    .const 'Sub' $P240 = "69_1270238412.111" 
+    .const 'Sub' $P240 = "69_1271336383.463" 
     capture_lex $P240
-    .const 'Sub' $P234 = "67_1270238412.111" 
+    .const 'Sub' $P234 = "67_1271336383.463" 
     capture_lex $P234
-    .const 'Sub' $P228 = "65_1270238412.111" 
+    .const 'Sub' $P228 = "65_1271336383.463" 
     capture_lex $P228
-    .const 'Sub' $P222 = "63_1270238412.111" 
+    .const 'Sub' $P222 = "63_1271336383.463" 
     capture_lex $P222
-    .const 'Sub' $P216 = "61_1270238412.111" 
+    .const 'Sub' $P216 = "61_1271336383.463" 
     capture_lex $P216
-    .const 'Sub' $P210 = "59_1270238412.111" 
+    .const 'Sub' $P210 = "59_1271336383.463" 
     capture_lex $P210
-    .const 'Sub' $P205 = "57_1270238412.111" 
+    .const 'Sub' $P205 = "57_1271336383.463" 
     capture_lex $P205
-    .const 'Sub' $P200 = "55_1270238412.111" 
+    .const 'Sub' $P200 = "55_1271336383.463" 
     capture_lex $P200
-    .const 'Sub' $P194 = "53_1270238412.111" 
+    .const 'Sub' $P194 = "53_1271336383.463" 
     capture_lex $P194
-    .const 'Sub' $P188 = "51_1270238412.111" 
+    .const 'Sub' $P188 = "51_1271336383.463" 
     capture_lex $P188
-    .const 'Sub' $P182 = "49_1270238412.111" 
+    .const 'Sub' $P182 = "49_1271336383.463" 
     capture_lex $P182
-    .const 'Sub' $P166 = "44_1270238412.111" 
+    .const 'Sub' $P166 = "44_1271336383.463" 
     capture_lex $P166
-    .const 'Sub' $P154 = "42_1270238412.111" 
+    .const 'Sub' $P154 = "42_1271336383.463" 
     capture_lex $P154
-    .const 'Sub' $P147 = "40_1270238412.111" 
+    .const 'Sub' $P147 = "40_1271336383.463" 
     capture_lex $P147
-    .const 'Sub' $P140 = "38_1270238412.111" 
+    .const 'Sub' $P140 = "38_1271336383.463" 
     capture_lex $P140
-    .const 'Sub' $P133 = "36_1270238412.111" 
+    .const 'Sub' $P133 = "36_1271336383.463" 
     capture_lex $P133
-    .const 'Sub' $P114 = "31_1270238412.111" 
+    .const 'Sub' $P114 = "31_1271336383.463" 
     capture_lex $P114
-    .const 'Sub' $P101 = "28_1270238412.111" 
+    .const 'Sub' $P101 = "28_1271336383.463" 
     capture_lex $P101
-    .const 'Sub' $P94 = "26_1270238412.111" 
+    .const 'Sub' $P94 = "26_1271336383.463" 
     capture_lex $P94
-    .const 'Sub' $P82 = "24_1270238412.111" 
+    .const 'Sub' $P82 = "24_1271336383.463" 
     capture_lex $P82
-    .const 'Sub' $P75 = "22_1270238412.111" 
+    .const 'Sub' $P75 = "22_1271336383.463" 
     capture_lex $P75
-    .const 'Sub' $P63 = "20_1270238412.111" 
+    .const 'Sub' $P63 = "20_1271336383.463" 
     capture_lex $P63
-    .const 'Sub' $P56 = "18_1270238412.111" 
+    .const 'Sub' $P56 = "18_1271336383.463" 
     capture_lex $P56
-    .const 'Sub' $P46 = "15_1270238412.111" 
+    .const 'Sub' $P46 = "15_1271336383.463" 
     capture_lex $P46
-    .const 'Sub' $P38 = "13_1270238412.111" 
+    .const 'Sub' $P38 = "13_1271336383.463" 
     capture_lex $P38
-    .const 'Sub' $P15 = "12_1270238412.111" 
+    .const 'Sub' $P15 = "12_1271336383.463" 
     capture_lex $P15
-    .const 'Sub' $P571 = "156_1270238412.111" 
+    .const 'Sub' $P571 = "156_1271336383.463" 
     capture_lex $P571
     .return ($P571)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs"  :subid("12_1270238412.111") :method :outer("11_1270238412.111")
+.sub "obs"  :subid("12_1271336383.463") :method :outer("11_1271336383.463")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -222,7 +222,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1270238412.111") :method :outer("11_1270238412.111")
+.sub "ws"  :subid("13_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx39_tgt
     .local int rx39_pos
@@ -304,7 +304,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1270238412.111") :method
+.sub "!PREFIX__ws"  :subid("14_1271336383.463") :method
 .annotate "line", 3
     new $P41, "ResizablePMCArray"
     push $P41, ""
@@ -313,9 +313,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1270238412.111") :method :outer("11_1270238412.111")
+.sub "normspace"  :subid("15_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P52 = "17_1270238412.111" 
+    .const 'Sub' $P52 = "17_1271336383.463" 
     capture_lex $P52
     .local string rx47_tgt
     .local int rx47_pos
@@ -349,7 +349,7 @@
 .annotate "line", 10
   # rx subrule "before" subtype=zerowidth negate=
     rx47_cur."!cursor_pos"(rx47_pos)
-    .const 'Sub' $P52 = "17_1270238412.111" 
+    .const 'Sub' $P52 = "17_1271336383.463" 
     capture_lex $P52
     $P10 = rx47_cur."before"($P52)
     unless $P10, rx47_fail
@@ -377,7 +377,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1270238412.111") :method
+.sub "!PREFIX__normspace"  :subid("16_1271336383.463") :method
 .annotate "line", 3
     new $P49, "ResizablePMCArray"
     push $P49, ""
@@ -386,7 +386,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51"  :anon :subid("17_1270238412.111") :method :outer("15_1270238412.111")
+.sub "_block51"  :anon :subid("17_1271336383.463") :method :outer("15_1271336383.463")
 .annotate "line", 10
     .local string rx53_tgt
     .local int rx53_pos
@@ -454,7 +454,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("18_1270238412.111") :method :outer("11_1270238412.111")
+.sub "arg"  :subid("18_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx57_tgt
     .local int rx57_pos
@@ -565,7 +565,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("19_1270238412.111") :method
+.sub "!PREFIX__arg"  :subid("19_1271336383.463") :method
 .annotate "line", 3
     new $P59, "ResizablePMCArray"
     push $P59, ""
@@ -576,7 +576,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("20_1270238412.111") :method :outer("11_1270238412.111")
+.sub "arglist"  :subid("20_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx64_tgt
     .local int rx64_pos
@@ -682,7 +682,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("21_1270238412.111") :method
+.sub "!PREFIX__arglist"  :subid("21_1271336383.463") :method
 .annotate "line", 3
     new $P66, "ResizablePMCArray"
     push $P66, ""
@@ -691,7 +691,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("22_1270238412.111") :method :outer("11_1270238412.111")
+.sub "TOP"  :subid("22_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx76_tgt
     .local int rx76_pos
@@ -764,7 +764,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("23_1270238412.111") :method
+.sub "!PREFIX__TOP"  :subid("23_1271336383.463") :method
 .annotate "line", 3
     $P78 = self."!PREFIX__!subrule"("nibbler", "")
     new $P79, "ResizablePMCArray"
@@ -774,7 +774,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("24_1270238412.111") :method :outer("11_1270238412.111")
+.sub "nibbler"  :subid("24_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx83_tgt
     .local int rx83_pos
@@ -942,7 +942,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("25_1270238412.111") :method
+.sub "!PREFIX__nibbler"  :subid("25_1271336383.463") :method
 .annotate "line", 3
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -951,7 +951,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("26_1270238412.111") :method :outer("11_1270238412.111")
+.sub "termish"  :subid("26_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx95_tgt
     .local int rx95_pos
@@ -1019,7 +1019,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("27_1270238412.111") :method
+.sub "!PREFIX__termish"  :subid("27_1271336383.463") :method
 .annotate "line", 3
     new $P97, "ResizablePMCArray"
     push $P97, ""
@@ -1028,9 +1028,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("28_1270238412.111") :method :outer("11_1270238412.111")
+.sub "quantified_atom"  :subid("28_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P110 = "30_1270238412.111" 
+    .const 'Sub' $P110 = "30_1271336383.463" 
     capture_lex $P110
     .local string rx102_tgt
     .local int rx102_pos
@@ -1093,7 +1093,7 @@
   alt108_1:
   # rx subrule "before" subtype=zerowidth negate=
     rx102_cur."!cursor_pos"(rx102_pos)
-    .const 'Sub' $P110 = "30_1270238412.111" 
+    .const 'Sub' $P110 = "30_1271336383.463" 
     capture_lex $P110
     $P10 = rx102_cur."before"($P110)
     unless $P10, rx102_fail
@@ -1131,7 +1131,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("29_1270238412.111") :method
+.sub "!PREFIX__quantified_atom"  :subid("29_1271336383.463") :method
 .annotate "line", 3
     $P104 = self."!PREFIX__!subrule"("atom", "")
     new $P105, "ResizablePMCArray"
@@ -1141,7 +1141,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block109"  :anon :subid("30_1270238412.111") :method :outer("28_1270238412.111")
+.sub "_block109"  :anon :subid("30_1271336383.463") :method :outer("28_1271336383.463")
 .annotate "line", 41
     .local string rx111_tgt
     .local int rx111_pos
@@ -1197,9 +1197,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("31_1270238412.111") :method :outer("11_1270238412.111")
+.sub "atom"  :subid("31_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P125 = "33_1270238412.111" 
+    .const 'Sub' $P125 = "33_1271336383.463" 
     capture_lex $P125
     .local string rx115_tgt
     .local int rx115_pos
@@ -1259,7 +1259,7 @@
   rxquantg122_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx115_cur."!cursor_pos"(rx115_pos)
-    .const 'Sub' $P125 = "33_1270238412.111" 
+    .const 'Sub' $P125 = "33_1271336383.463" 
     capture_lex $P125
     $P10 = rx115_cur."before"($P125)
     unless $P10, rx115_fail
@@ -1296,7 +1296,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("32_1270238412.111") :method
+.sub "!PREFIX__atom"  :subid("32_1271336383.463") :method
 .annotate "line", 3
     $P117 = self."!PREFIX__!subrule"("metachar", "")
     new $P118, "ResizablePMCArray"
@@ -1307,7 +1307,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block124"  :anon :subid("33_1270238412.111") :method :outer("31_1270238412.111")
+.sub "_block124"  :anon :subid("33_1271336383.463") :method :outer("31_1271336383.463")
 .annotate "line", 47
     .local string rx126_tgt
     .local int rx126_pos
@@ -1362,7 +1362,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("34_1270238412.111") :method
+.sub "quantifier"  :subid("34_1271336383.463") :method
 .annotate "line", 52
     $P130 = self."!protoregex"("quantifier")
     .return ($P130)
@@ -1370,7 +1370,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("35_1270238412.111") :method
+.sub "!PREFIX__quantifier"  :subid("35_1271336383.463") :method
 .annotate "line", 52
     $P132 = self."!PREFIX__!protoregex"("quantifier")
     .return ($P132)
@@ -1378,7 +1378,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("36_1270238412.111") :method :outer("11_1270238412.111")
+.sub "quantifier:sym<*>"  :subid("36_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx134_tgt
     .local int rx134_pos
@@ -1457,7 +1457,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1270238412.111") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1271336383.463") :method
 .annotate "line", 3
     $P136 = self."!PREFIX__!subrule"("backmod", "*")
     new $P137, "ResizablePMCArray"
@@ -1467,7 +1467,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("38_1270238412.111") :method :outer("11_1270238412.111")
+.sub "quantifier:sym<+>"  :subid("38_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx141_tgt
     .local int rx141_pos
@@ -1546,7 +1546,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1270238412.111") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1271336383.463") :method
 .annotate "line", 3
     $P143 = self."!PREFIX__!subrule"("backmod", "+")
     new $P144, "ResizablePMCArray"
@@ -1556,7 +1556,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("40_1270238412.111") :method :outer("11_1270238412.111")
+.sub "quantifier:sym<?>"  :subid("40_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx148_tgt
     .local int rx148_pos
@@ -1635,7 +1635,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1270238412.111") :method
+.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1271336383.463") :method
 .annotate "line", 3
     $P150 = self."!PREFIX__!subrule"("backmod", "?")
     new $P151, "ResizablePMCArray"
@@ -1645,7 +1645,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("42_1270238412.111") :method :outer("11_1270238412.111")
+.sub "quantifier:sym<**>"  :subid("42_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx155_tgt
     .local int rx155_pos
@@ -1834,7 +1834,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1270238412.111") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1271336383.463") :method
 .annotate "line", 3
     new $P157, "ResizablePMCArray"
     push $P157, "**"
@@ -1843,9 +1843,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("44_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backmod"  :subid("44_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P175 = "46_1270238412.111" 
+    .const 'Sub' $P175 = "46_1271336383.463" 
     capture_lex $P175
     .local string rx167_tgt
     .local int rx167_pos
@@ -1915,7 +1915,7 @@
   alt173_2:
   # rx subrule "before" subtype=zerowidth negate=1
     rx167_cur."!cursor_pos"(rx167_pos)
-    .const 'Sub' $P175 = "46_1270238412.111" 
+    .const 'Sub' $P175 = "46_1271336383.463" 
     capture_lex $P175
     $P10 = rx167_cur."before"($P175)
     if $P10, rx167_fail
@@ -1939,7 +1939,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("45_1270238412.111") :method
+.sub "!PREFIX__backmod"  :subid("45_1271336383.463") :method
 .annotate "line", 3
     new $P169, "ResizablePMCArray"
     push $P169, ""
@@ -1948,7 +1948,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174"  :anon :subid("46_1270238412.111") :method :outer("44_1270238412.111")
+.sub "_block174"  :anon :subid("46_1271336383.463") :method :outer("44_1271336383.463")
 .annotate "line", 71
     .local string rx176_tgt
     .local int rx176_pos
@@ -2004,7 +2004,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("47_1270238412.111") :method
+.sub "metachar"  :subid("47_1271336383.463") :method
 .annotate "line", 73
     $P179 = self."!protoregex"("metachar")
     .return ($P179)
@@ -2012,7 +2012,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("48_1270238412.111") :method
+.sub "!PREFIX__metachar"  :subid("48_1271336383.463") :method
 .annotate "line", 73
     $P181 = self."!PREFIX__!protoregex"("metachar")
     .return ($P181)
@@ -2020,7 +2020,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("49_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<ws>"  :subid("49_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx183_tgt
     .local int rx183_pos
@@ -2076,7 +2076,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1271336383.463") :method
 .annotate "line", 3
     $P185 = self."!PREFIX__!subrule"("", "")
     new $P186, "ResizablePMCArray"
@@ -2086,7 +2086,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("51_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<[ ]>"  :subid("51_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx189_tgt
     .local int rx189_pos
@@ -2158,7 +2158,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1271336383.463") :method
 .annotate "line", 3
     $P191 = self."!PREFIX__!subrule"("nibbler", "[")
     new $P192, "ResizablePMCArray"
@@ -2168,7 +2168,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("53_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<( )>"  :subid("53_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx195_tgt
     .local int rx195_pos
@@ -2240,7 +2240,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1271336383.463") :method
 .annotate "line", 3
     $P197 = self."!PREFIX__!subrule"("nibbler", "(")
     new $P198, "ResizablePMCArray"
@@ -2250,7 +2250,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("55_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<'>"  :subid("55_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx201_tgt
     .local int rx201_pos
@@ -2314,7 +2314,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("56_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("56_1271336383.463") :method
 .annotate "line", 3
     new $P203, "ResizablePMCArray"
     push $P203, "'"
@@ -2323,7 +2323,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("57_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<\">"  :subid("57_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx206_tgt
     .local int rx206_pos
@@ -2387,7 +2387,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("58_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("58_1271336383.463") :method
 .annotate "line", 3
     new $P208, "ResizablePMCArray"
     push $P208, "\""
@@ -2396,7 +2396,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("59_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<.>"  :subid("59_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx211_tgt
     .local int rx211_pos
@@ -2468,7 +2468,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("60_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<.>"  :subid("60_1271336383.463") :method
 .annotate "line", 3
     new $P213, "ResizablePMCArray"
     push $P213, "."
@@ -2477,7 +2477,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("61_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<^>"  :subid("61_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx217_tgt
     .local int rx217_pos
@@ -2549,7 +2549,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("62_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("62_1271336383.463") :method
 .annotate "line", 3
     new $P219, "ResizablePMCArray"
     push $P219, "^"
@@ -2558,7 +2558,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("63_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<^^>"  :subid("63_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx223_tgt
     .local int rx223_pos
@@ -2630,7 +2630,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1271336383.463") :method
 .annotate "line", 3
     new $P225, "ResizablePMCArray"
     push $P225, "^^"
@@ -2639,7 +2639,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("65_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<$>"  :subid("65_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx229_tgt
     .local int rx229_pos
@@ -2711,7 +2711,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("66_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("66_1271336383.463") :method
 .annotate "line", 3
     new $P231, "ResizablePMCArray"
     push $P231, "$"
@@ -2720,7 +2720,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("67_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<$$>"  :subid("67_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx235_tgt
     .local int rx235_pos
@@ -2792,7 +2792,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1271336383.463") :method
 .annotate "line", 3
     new $P237, "ResizablePMCArray"
     push $P237, "$$"
@@ -2801,7 +2801,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("69_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<:::>"  :subid("69_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx241_tgt
     .local int rx241_pos
@@ -2878,7 +2878,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1271336383.463") :method
 .annotate "line", 3
     $P243 = self."!PREFIX__!subrule"("", ":::")
     new $P244, "ResizablePMCArray"
@@ -2888,7 +2888,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("71_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<::>"  :subid("71_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx248_tgt
     .local int rx248_pos
@@ -2965,7 +2965,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("72_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("72_1271336383.463") :method
 .annotate "line", 3
     $P250 = self."!PREFIX__!subrule"("", "::")
     new $P251, "ResizablePMCArray"
@@ -2975,7 +2975,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("73_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<lwb>"  :subid("73_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx255_tgt
     .local int rx255_pos
@@ -3060,7 +3060,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1271336383.463") :method
 .annotate "line", 3
     new $P257, "ResizablePMCArray"
     push $P257, unicode:"\x{ab}"
@@ -3070,7 +3070,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("75_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<rwb>"  :subid("75_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx262_tgt
     .local int rx262_pos
@@ -3155,7 +3155,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1271336383.463") :method
 .annotate "line", 3
     new $P264, "ResizablePMCArray"
     push $P264, unicode:"\x{bb}"
@@ -3165,7 +3165,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("77_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<bs>"  :subid("77_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx269_tgt
     .local int rx269_pos
@@ -3230,7 +3230,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1271336383.463") :method
 .annotate "line", 3
     $P271 = self."!PREFIX__!subrule"("backslash", "\\")
     new $P272, "ResizablePMCArray"
@@ -3240,7 +3240,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("79_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<mod>"  :subid("79_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx275_tgt
     .local int rx275_pos
@@ -3298,7 +3298,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1271336383.463") :method
 .annotate "line", 3
     $P277 = self."!PREFIX__!subrule"("mod_internal", "")
     new $P278, "ResizablePMCArray"
@@ -3308,7 +3308,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("81_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<~>"  :subid("81_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx281_tgt
     .local int rx281_pos
@@ -3407,7 +3407,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("82_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("82_1271336383.463") :method
 .annotate "line", 3
     $P283 = self."!PREFIX__!subrule"("", "~")
     new $P284, "ResizablePMCArray"
@@ -3417,7 +3417,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("83_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<{*}>"  :subid("83_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx288_tgt
     .local int rx288_pos
@@ -3584,7 +3584,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1271336383.463") :method
 .annotate "line", 3
     new $P290, "ResizablePMCArray"
     push $P290, "{*}"
@@ -3593,7 +3593,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("85_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<assert>"  :subid("85_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx305_tgt
     .local int rx305_pos
@@ -3678,7 +3678,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1271336383.463") :method
 .annotate "line", 3
     $P307 = self."!PREFIX__!subrule"("assertion", "<")
     new $P308, "ResizablePMCArray"
@@ -3688,7 +3688,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("87_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<var>"  :subid("87_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx312_tgt
     .local int rx312_pos
@@ -3850,7 +3850,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("88_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("88_1271336383.463") :method
 .annotate "line", 3
     new $P314, "ResizablePMCArray"
     push $P314, "$"
@@ -3860,7 +3860,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("89_1270238412.111") :method :outer("11_1270238412.111")
+.sub "metachar:sym<PIR>"  :subid("89_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx324_tgt
     .local int rx324_pos
@@ -3951,7 +3951,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1270238412.111") :method
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1271336383.463") :method
 .annotate "line", 3
     new $P326, "ResizablePMCArray"
     push $P326, ":PIR{{"
@@ -3960,7 +3960,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("91_1270238412.111") :method
+.sub "backslash"  :subid("91_1271336383.463") :method
 .annotate "line", 120
     $P332 = self."!protoregex"("backslash")
     .return ($P332)
@@ -3968,7 +3968,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("92_1270238412.111") :method
+.sub "!PREFIX__backslash"  :subid("92_1271336383.463") :method
 .annotate "line", 120
     $P334 = self."!PREFIX__!protoregex"("backslash")
     .return ($P334)
@@ -3976,7 +3976,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("93_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<w>"  :subid("93_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx336_tgt
     .local int rx336_pos
@@ -4048,7 +4048,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("94_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<w>"  :subid("94_1271336383.463") :method
 .annotate "line", 3
     new $P338, "ResizablePMCArray"
     push $P338, "N"
@@ -4064,7 +4064,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("95_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<b>"  :subid("95_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx342_tgt
     .local int rx342_pos
@@ -4136,7 +4136,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("96_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("96_1271336383.463") :method
 .annotate "line", 3
     new $P344, "ResizablePMCArray"
     push $P344, "B"
@@ -4146,7 +4146,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("97_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<e>"  :subid("97_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx348_tgt
     .local int rx348_pos
@@ -4218,7 +4218,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("98_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<e>"  :subid("98_1271336383.463") :method
 .annotate "line", 3
     new $P350, "ResizablePMCArray"
     push $P350, "E"
@@ -4228,7 +4228,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("99_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<f>"  :subid("99_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx354_tgt
     .local int rx354_pos
@@ -4300,7 +4300,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("100_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("100_1271336383.463") :method
 .annotate "line", 3
     new $P356, "ResizablePMCArray"
     push $P356, "F"
@@ -4310,7 +4310,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("101_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<h>"  :subid("101_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx360_tgt
     .local int rx360_pos
@@ -4382,7 +4382,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("102_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("102_1271336383.463") :method
 .annotate "line", 3
     new $P362, "ResizablePMCArray"
     push $P362, "H"
@@ -4392,7 +4392,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("103_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<r>"  :subid("103_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx366_tgt
     .local int rx366_pos
@@ -4464,7 +4464,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("104_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("104_1271336383.463") :method
 .annotate "line", 3
     new $P368, "ResizablePMCArray"
     push $P368, "R"
@@ -4474,7 +4474,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("105_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<t>"  :subid("105_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx372_tgt
     .local int rx372_pos
@@ -4546,7 +4546,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("106_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("106_1271336383.463") :method
 .annotate "line", 3
     new $P374, "ResizablePMCArray"
     push $P374, "T"
@@ -4556,7 +4556,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("107_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<v>"  :subid("107_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx378_tgt
     .local int rx378_pos
@@ -4628,7 +4628,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("108_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("108_1271336383.463") :method
 .annotate "line", 3
     new $P380, "ResizablePMCArray"
     push $P380, "V"
@@ -4638,7 +4638,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("109_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<o>"  :subid("109_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx384_tgt
     .local int rx384_pos
@@ -4744,7 +4744,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("110_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<o>"  :subid("110_1271336383.463") :method
 .annotate "line", 3
     $P386 = self."!PREFIX__!subrule"("octints", "O[")
     $P387 = self."!PREFIX__!subrule"("octint", "O")
@@ -4760,7 +4760,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("111_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<x>"  :subid("111_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx395_tgt
     .local int rx395_pos
@@ -4866,7 +4866,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("112_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<x>"  :subid("112_1271336383.463") :method
 .annotate "line", 3
     $P397 = self."!PREFIX__!subrule"("hexints", "X[")
     $P398 = self."!PREFIX__!subrule"("hexint", "X")
@@ -4882,7 +4882,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("113_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<c>"  :subid("113_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx406_tgt
     .local int rx406_pos
@@ -4961,7 +4961,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("114_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("114_1271336383.463") :method
 .annotate "line", 3
     $P408 = self."!PREFIX__!subrule"("charspec", "C")
     $P409 = self."!PREFIX__!subrule"("charspec", "c")
@@ -4973,7 +4973,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("115_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<A>"  :subid("115_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx414_tgt
     .local int rx414_pos
@@ -5036,7 +5036,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("116_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("116_1271336383.463") :method
 .annotate "line", 3
     $P416 = self."!PREFIX__!subrule"("", "A")
     new $P417, "ResizablePMCArray"
@@ -5046,7 +5046,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("117_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<z>"  :subid("117_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx420_tgt
     .local int rx420_pos
@@ -5109,7 +5109,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("118_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<z>"  :subid("118_1271336383.463") :method
 .annotate "line", 3
     $P422 = self."!PREFIX__!subrule"("", "z")
     new $P423, "ResizablePMCArray"
@@ -5119,7 +5119,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("119_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<Z>"  :subid("119_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx426_tgt
     .local int rx426_pos
@@ -5182,7 +5182,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1271336383.463") :method
 .annotate "line", 3
     $P428 = self."!PREFIX__!subrule"("", "Z")
     new $P429, "ResizablePMCArray"
@@ -5192,7 +5192,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("121_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<Q>"  :subid("121_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx432_tgt
     .local int rx432_pos
@@ -5255,7 +5255,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1271336383.463") :method
 .annotate "line", 3
     $P434 = self."!PREFIX__!subrule"("", "Q")
     new $P435, "ResizablePMCArray"
@@ -5265,7 +5265,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("123_1270238412.111") :method :outer("11_1270238412.111")
+.sub "backslash:sym<misc>"  :subid("123_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx438_tgt
     .local int rx438_pos
@@ -5322,7 +5322,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1270238412.111") :method
+.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1271336383.463") :method
 .annotate "line", 3
     new $P440, "ResizablePMCArray"
     push $P440, ""
@@ -5331,7 +5331,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("125_1270238412.111") :method
+.sub "assertion"  :subid("125_1271336383.463") :method
 .annotate "line", 138
     $P443 = self."!protoregex"("assertion")
     .return ($P443)
@@ -5339,7 +5339,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("126_1270238412.111") :method
+.sub "!PREFIX__assertion"  :subid("126_1271336383.463") :method
 .annotate "line", 138
     $P445 = self."!PREFIX__!protoregex"("assertion")
     .return ($P445)
@@ -5347,9 +5347,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("127_1270238412.111") :method :outer("11_1270238412.111")
+.sub "assertion:sym<?>"  :subid("127_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P454 = "129_1270238412.111" 
+    .const 'Sub' $P454 = "129_1271336383.463" 
     capture_lex $P454
     .local string rx447_tgt
     .local int rx447_pos
@@ -5393,7 +5393,7 @@
     rx447_cur."!mark_push"(0, rx447_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx447_cur."!cursor_pos"(rx447_pos)
-    .const 'Sub' $P454 = "129_1270238412.111" 
+    .const 'Sub' $P454 = "129_1271336383.463" 
     capture_lex $P454
     $P10 = rx447_cur."before"($P454)
     unless $P10, rx447_fail
@@ -5426,7 +5426,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("128_1270238412.111") :method
+.sub "!PREFIX__assertion:sym<?>"  :subid("128_1271336383.463") :method
 .annotate "line", 3
     $P449 = self."!PREFIX__!subrule"("assertion", "?")
     new $P450, "ResizablePMCArray"
@@ -5437,7 +5437,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block453"  :anon :subid("129_1270238412.111") :method :outer("127_1270238412.111")
+.sub "_block453"  :anon :subid("129_1271336383.463") :method :outer("127_1271336383.463")
 .annotate "line", 140
     .local string rx455_tgt
     .local int rx455_pos
@@ -5493,9 +5493,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("130_1270238412.111") :method :outer("11_1270238412.111")
+.sub "assertion:sym<!>"  :subid("130_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P465 = "132_1270238412.111" 
+    .const 'Sub' $P465 = "132_1271336383.463" 
     capture_lex $P465
     .local string rx458_tgt
     .local int rx458_pos
@@ -5539,7 +5539,7 @@
     rx458_cur."!mark_push"(0, rx458_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx458_cur."!cursor_pos"(rx458_pos)
-    .const 'Sub' $P465 = "132_1270238412.111" 
+    .const 'Sub' $P465 = "132_1271336383.463" 
     capture_lex $P465
     $P10 = rx458_cur."before"($P465)
     unless $P10, rx458_fail
@@ -5572,7 +5572,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("131_1270238412.111") :method
+.sub "!PREFIX__assertion:sym<!>"  :subid("131_1271336383.463") :method
 .annotate "line", 3
     $P460 = self."!PREFIX__!subrule"("assertion", "!")
     new $P461, "ResizablePMCArray"
@@ -5583,7 +5583,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block464"  :anon :subid("132_1270238412.111") :method :outer("130_1270238412.111")
+.sub "_block464"  :anon :subid("132_1271336383.463") :method :outer("130_1271336383.463")
 .annotate "line", 141
     .local string rx466_tgt
     .local int rx466_pos
@@ -5639,7 +5639,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("133_1270238412.111") :method :outer("11_1270238412.111")
+.sub "assertion:sym<method>"  :subid("133_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx469_tgt
     .local int rx469_pos
@@ -5705,7 +5705,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("134_1270238412.111") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("134_1271336383.463") :method
 .annotate "line", 3
     $P471 = self."!PREFIX__!subrule"("assertion", ".")
     new $P472, "ResizablePMCArray"
@@ -5715,9 +5715,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("135_1270238412.111") :method :outer("11_1270238412.111")
+.sub "assertion:sym<name>"  :subid("135_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P483 = "137_1270238412.111" 
+    .const 'Sub' $P483 = "137_1271336383.463" 
     capture_lex $P483
     .local string rx475_tgt
     .local int rx475_pos
@@ -5727,7 +5727,7 @@
     .local pmc rx475_cur
     (rx475_cur, rx475_pos, rx475_tgt) = self."!cursor_start"()
     rx475_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx475_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    rx475_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
     .lex unicode:"$\x{a2}", rx475_cur
     .local pmc match
     .lex "$/", match
@@ -5782,7 +5782,7 @@
 .annotate "line", 150
   # rx subrule "before" subtype=zerowidth negate=
     rx475_cur."!cursor_pos"(rx475_pos)
-    .const 'Sub' $P483 = "137_1270238412.111" 
+    .const 'Sub' $P483 = "137_1271336383.463" 
     capture_lex $P483
     $P10 = rx475_cur."before"($P483)
     unless $P10, rx475_fail
@@ -5889,7 +5889,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("136_1270238412.111") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("136_1271336383.463") :method
 .annotate "line", 3
     new $P477, "ResizablePMCArray"
     push $P477, ""
@@ -5898,7 +5898,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482"  :anon :subid("137_1270238412.111") :method :outer("135_1270238412.111")
+.sub "_block482"  :anon :subid("137_1271336383.463") :method :outer("135_1271336383.463")
 .annotate "line", 150
     .local string rx484_tgt
     .local int rx484_pos
@@ -5954,9 +5954,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("138_1270238412.111") :method :outer("11_1270238412.111")
+.sub "assertion:sym<[>"  :subid("138_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P493 = "140_1270238412.111" 
+    .const 'Sub' $P493 = "140_1271336383.463" 
     capture_lex $P493
     .local string rx488_tgt
     .local int rx488_pos
@@ -5991,7 +5991,7 @@
 .annotate "line", 158
   # rx subrule "before" subtype=zerowidth negate=
     rx488_cur."!cursor_pos"(rx488_pos)
-    .const 'Sub' $P493 = "140_1270238412.111" 
+    .const 'Sub' $P493 = "140_1271336383.463" 
     capture_lex $P493
     $P10 = rx488_cur."before"($P493)
     unless $P10, rx488_fail
@@ -6029,7 +6029,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("139_1270238412.111") :method
+.sub "!PREFIX__assertion:sym<[>"  :subid("139_1271336383.463") :method
 .annotate "line", 3
     new $P490, "ResizablePMCArray"
     push $P490, ""
@@ -6038,7 +6038,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492"  :anon :subid("140_1270238412.111") :method :outer("138_1270238412.111")
+.sub "_block492"  :anon :subid("140_1271336383.463") :method :outer("138_1271336383.463")
 .annotate "line", 158
     .local string rx494_tgt
     .local int rx494_pos
@@ -6118,9 +6118,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("141_1270238412.111") :method :outer("11_1270238412.111")
+.sub "cclass_elem"  :subid("141_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P511 = "143_1270238412.111" 
+    .const 'Sub' $P511 = "143_1271336383.463" 
     capture_lex $P511
     .local string rx500_tgt
     .local int rx500_pos
@@ -6223,7 +6223,7 @@
 .annotate "line", 164
   # rx subrule $P511 subtype=capture negate=
     rx500_cur."!cursor_pos"(rx500_pos)
-    .const 'Sub' $P511 = "143_1270238412.111" 
+    .const 'Sub' $P511 = "143_1271336383.463" 
     capture_lex $P511
     $P10 = rx500_cur.$P511()
     unless $P10, rx500_fail
@@ -6304,7 +6304,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("142_1270238412.111") :method
+.sub "!PREFIX__cclass_elem"  :subid("142_1271336383.463") :method
 .annotate "line", 3
     new $P502, "ResizablePMCArray"
     push $P502, ""
@@ -6315,13 +6315,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510"  :anon :subid("143_1270238412.111") :method :outer("141_1270238412.111")
+.sub "_block510"  :anon :subid("143_1271336383.463") :method :outer("141_1271336383.463")
 .annotate "line", 164
-    .const 'Sub' $P526 = "146_1270238412.111" 
+    .const 'Sub' $P526 = "146_1271336383.463" 
     capture_lex $P526
-    .const 'Sub' $P521 = "145_1270238412.111" 
+    .const 'Sub' $P521 = "145_1271336383.463" 
     capture_lex $P521
-    .const 'Sub' $P517 = "144_1270238412.111" 
+    .const 'Sub' $P517 = "144_1271336383.463" 
     capture_lex $P517
     .local string rx512_tgt
     .local int rx512_pos
@@ -6392,7 +6392,7 @@
     add rx512_pos, 1
   # rx subrule $P517 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P517 = "144_1270238412.111" 
+    .const 'Sub' $P517 = "144_1271336383.463" 
     capture_lex $P517
     $P10 = rx512_cur.$P517()
     unless $P10, rx512_fail
@@ -6403,7 +6403,7 @@
   alt515_1:
   # rx subrule $P521 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P521 = "145_1270238412.111" 
+    .const 'Sub' $P521 = "145_1271336383.463" 
     capture_lex $P521
     $P10 = rx512_cur.$P521()
     unless $P10, rx512_fail
@@ -6432,7 +6432,7 @@
     add rx512_pos, rx512_off, $I11
   # rx subrule $P526 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P526 = "146_1270238412.111" 
+    .const 'Sub' $P526 = "146_1271336383.463" 
     capture_lex $P526
     $P10 = rx512_cur.$P526()
     unless $P10, rx512_fail
@@ -6461,7 +6461,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516"  :anon :subid("144_1270238412.111") :method :outer("143_1270238412.111")
+.sub "_block516"  :anon :subid("144_1271336383.463") :method :outer("143_1271336383.463")
 .annotate "line", 166
     .local string rx518_tgt
     .local int rx518_pos
@@ -6513,7 +6513,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520"  :anon :subid("145_1270238412.111") :method :outer("143_1270238412.111")
+.sub "_block520"  :anon :subid("145_1271336383.463") :method :outer("143_1271336383.463")
 .annotate "line", 166
     .local string rx522_tgt
     .local int rx522_pos
@@ -6569,7 +6569,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525"  :anon :subid("146_1270238412.111") :method :outer("143_1270238412.111")
+.sub "_block525"  :anon :subid("146_1271336383.463") :method :outer("143_1271336383.463")
 .annotate "line", 166
     .local string rx527_tgt
     .local int rx527_pos
@@ -6621,9 +6621,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("147_1270238412.111") :method :outer("11_1270238412.111")
+.sub "mod_internal"  :subid("147_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
-    .const 'Sub' $P543 = "149_1270238412.111" 
+    .const 'Sub' $P543 = "149_1271336383.463" 
     capture_lex $P543
     .local string rx535_tgt
     .local int rx535_pos
@@ -6673,7 +6673,7 @@
   rxquantr541_loop:
   # rx subrule $P543 subtype=capture negate=
     rx535_cur."!cursor_pos"(rx535_pos)
-    .const 'Sub' $P543 = "149_1270238412.111" 
+    .const 'Sub' $P543 = "149_1271336383.463" 
     capture_lex $P543
     $P10 = rx535_cur.$P543()
     unless $P10, rx535_fail
@@ -6775,7 +6775,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("148_1270238412.111") :method
+.sub "!PREFIX__mod_internal"  :subid("148_1271336383.463") :method
 .annotate "line", 3
     $P537 = self."!PREFIX__!subrule"("mod_ident", ":")
     new $P538, "ResizablePMCArray"
@@ -6786,7 +6786,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block542"  :anon :subid("149_1270238412.111") :method :outer("147_1270238412.111")
+.sub "_block542"  :anon :subid("149_1271336383.463") :method :outer("147_1271336383.463")
 .annotate "line", 176
     .local string rx544_tgt
     .local int rx544_pos
@@ -6854,7 +6854,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("150_1270238412.111") :method
+.sub "mod_ident"  :subid("150_1271336383.463") :method
 .annotate "line", 181
     $P552 = self."!protoregex"("mod_ident")
     .return ($P552)
@@ -6862,7 +6862,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("151_1270238412.111") :method
+.sub "!PREFIX__mod_ident"  :subid("151_1271336383.463") :method
 .annotate "line", 181
     $P554 = self."!PREFIX__!protoregex"("mod_ident")
     .return ($P554)
@@ -6870,7 +6870,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("152_1270238412.111") :method :outer("11_1270238412.111")
+.sub "mod_ident:sym<ignorecase>"  :subid("152_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx556_tgt
     .local int rx556_pos
@@ -6955,7 +6955,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1270238412.111") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1271336383.463") :method
 .annotate "line", 3
     new $P558, "ResizablePMCArray"
     push $P558, "i"
@@ -6964,7 +6964,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("154_1270238412.111") :method :outer("11_1270238412.111")
+.sub "mod_ident:sym<ratchet>"  :subid("154_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx564_tgt
     .local int rx564_pos
@@ -7049,7 +7049,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1270238412.111") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1271336383.463") :method
 .annotate "line", 3
     new $P566, "ResizablePMCArray"
     push $P566, "r"
@@ -7058,7 +7058,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("156_1270238412.111") :method :outer("11_1270238412.111")
+.sub "mod_ident:sym<sigspace>"  :subid("156_1271336383.463") :method :outer("11_1271336383.463")
 .annotate "line", 3
     .local string rx572_tgt
     .local int rx572_pos
@@ -7143,7 +7143,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1270238412.111") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1271336383.463") :method
 .annotate "line", 3
     new $P574, "ResizablePMCArray"
     push $P574, "s"
@@ -7153,7 +7153,7 @@
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1270238416.756")
+.sub "_block11"  :anon :subid("10_1271336390.22432")
 .annotate "line", 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7167,9 +7167,9 @@
 
 
 .namespace []
-.sub "" :load :init :subid("post90") :outer("10_1270238416.756")
+.sub "" :load :init :subid("post90") :outer("10_1271336390.22432")
 .annotate "line", 0
-    .const 'Sub' $P12 = "10_1270238416.756" 
+    .const 'Sub' $P12 = "10_1271336390.22432" 
     .local pmc block
     set block, $P12
     $P1570 = get_root_global ["parrot"], "P6metaclass"
@@ -7178,117 +7178,117 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1270238416.756") :outer("10_1270238416.756")
+.sub "_block13"  :subid("11_1271336390.22432") :outer("10_1271336390.22432")
 .annotate "line", 4
-    .const 'Sub' $P1536 = "89_1270238416.756" 
+    .const 'Sub' $P1536 = "89_1271336390.22432" 
     capture_lex $P1536
-    .const 'Sub' $P1467 = "85_1270238416.756" 
+    .const 'Sub' $P1467 = "85_1271336390.22432" 
     capture_lex $P1467
-    .const 'Sub' $P1399 = "83_1270238416.756" 
+    .const 'Sub' $P1399 = "83_1271336390.22432" 
     capture_lex $P1399
-    .const 'Sub' $P1326 = "80_1270238416.756" 
+    .const 'Sub' $P1326 = "80_1271336390.22432" 
     capture_lex $P1326
-    .const 'Sub' $P1312 = "79_1270238416.756" 
+    .const 'Sub' $P1312 = "79_1271336390.22432" 
     capture_lex $P1312
-    .const 'Sub' $P1288 = "78_1270238416.756" 
+    .const 'Sub' $P1288 = "78_1271336390.22432" 
     capture_lex $P1288
-    .const 'Sub' $P1270 = "77_1270238416.756" 
+    .const 'Sub' $P1270 = "77_1271336390.22432" 
     capture_lex $P1270
-    .const 'Sub' $P1256 = "76_1270238416.756" 
+    .const 'Sub' $P1256 = "76_1271336390.22432" 
     capture_lex $P1256
-    .const 'Sub' $P1243 = "75_1270238416.756" 
+    .const 'Sub' $P1243 = "75_1271336390.22432" 
     capture_lex $P1243
-    .const 'Sub' $P1212 = "74_1270238416.756" 
+    .const 'Sub' $P1212 = "74_1271336390.22432" 
     capture_lex $P1212
-    .const 'Sub' $P1181 = "73_1270238416.756" 
+    .const 'Sub' $P1181 = "73_1271336390.22432" 
     capture_lex $P1181
-    .const 'Sub' $P1165 = "72_1270238416.756" 
+    .const 'Sub' $P1165 = "72_1271336390.22432" 
     capture_lex $P1165
-    .const 'Sub' $P1149 = "71_1270238416.756" 
+    .const 'Sub' $P1149 = "71_1271336390.22432" 
     capture_lex $P1149
-    .const 'Sub' $P1133 = "70_1270238416.756" 
+    .const 'Sub' $P1133 = "70_1271336390.22432" 
     capture_lex $P1133
-    .const 'Sub' $P1117 = "69_1270238416.756" 
+    .const 'Sub' $P1117 = "69_1271336390.22432" 
     capture_lex $P1117
-    .const 'Sub' $P1101 = "68_1270238416.756" 
+    .const 'Sub' $P1101 = "68_1271336390.22432" 
     capture_lex $P1101
-    .const 'Sub' $P1085 = "67_1270238416.756" 
+    .const 'Sub' $P1085 = "67_1271336390.22432" 
     capture_lex $P1085
-    .const 'Sub' $P1069 = "66_1270238416.756" 
+    .const 'Sub' $P1069 = "66_1271336390.22432" 
     capture_lex $P1069
-    .const 'Sub' $P1045 = "65_1270238416.756" 
+    .const 'Sub' $P1045 = "65_1271336390.22432" 
     capture_lex $P1045
-    .const 'Sub' $P1030 = "64_1270238416.756" 
+    .const 'Sub' $P1030 = "64_1271336390.22432" 
     capture_lex $P1030
-    .const 'Sub' $P974 = "63_1270238416.756" 
+    .const 'Sub' $P974 = "63_1271336390.22432" 
     capture_lex $P974
-    .const 'Sub' $P953 = "62_1270238416.756" 
+    .const 'Sub' $P953 = "62_1271336390.22432" 
     capture_lex $P953
-    .const 'Sub' $P931 = "61_1270238416.756" 
+    .const 'Sub' $P931 = "61_1271336390.22432" 
     capture_lex $P931
-    .const 'Sub' $P921 = "60_1270238416.756" 
+    .const 'Sub' $P921 = "60_1271336390.22432" 
     capture_lex $P921
-    .const 'Sub' $P911 = "59_1270238416.756" 
+    .const 'Sub' $P911 = "59_1271336390.22432" 
     capture_lex $P911
-    .const 'Sub' $P901 = "58_1270238416.756" 
+    .const 'Sub' $P901 = "58_1271336390.22432" 
     capture_lex $P901
-    .const 'Sub' $P889 = "57_1270238416.756" 
+    .const 'Sub' $P889 = "57_1271336390.22432" 
     capture_lex $P889
-    .const 'Sub' $P877 = "56_1270238416.756" 
+    .const 'Sub' $P877 = "56_1271336390.22432" 
     capture_lex $P877
-    .const 'Sub' $P865 = "55_1270238416.756" 
+    .const 'Sub' $P865 = "55_1271336390.22432" 
     capture_lex $P865
-    .const 'Sub' $P853 = "54_1270238416.756" 
+    .const 'Sub' $P853 = "54_1271336390.22432" 
     capture_lex $P853
-    .const 'Sub' $P841 = "53_1270238416.756" 
+    .const 'Sub' $P841 = "53_1271336390.22432" 
     capture_lex $P841
-    .const 'Sub' $P829 = "52_1270238416.756" 
+    .const 'Sub' $P829 = "52_1271336390.22432" 
     capture_lex $P829
-    .const 'Sub' $P817 = "51_1270238416.756" 
+    .const 'Sub' $P817 = "51_1271336390.22432" 
     capture_lex $P817
-    .const 'Sub' $P805 = "50_1270238416.756" 
+    .const 'Sub' $P805 = "50_1271336390.22432" 
     capture_lex $P805
-    .const 'Sub' $P782 = "49_1270238416.756" 
+    .const 'Sub' $P782 = "49_1271336390.22432" 
     capture_lex $P782
-    .const 'Sub' $P759 = "48_1270238416.756" 
+    .const 'Sub' $P759 = "48_1271336390.22432" 
     capture_lex $P759
-    .const 'Sub' $P741 = "47_1270238416.756" 
+    .const 'Sub' $P741 = "47_1271336390.22432" 
     capture_lex $P741
-    .const 'Sub' $P731 = "46_1270238416.756" 
+    .const 'Sub' $P731 = "46_1271336390.22432" 
     capture_lex $P731
-    .const 'Sub' $P713 = "45_1270238416.756" 
+    .const 'Sub' $P713 = "45_1271336390.22432" 
     capture_lex $P713
-    .const 'Sub' $P666 = "44_1270238416.756" 
+    .const 'Sub' $P666 = "44_1271336390.22432" 
     capture_lex $P666
-    .const 'Sub' $P649 = "43_1270238416.756" 
+    .const 'Sub' $P649 = "43_1271336390.22432" 
     capture_lex $P649
-    .const 'Sub' $P634 = "42_1270238416.756" 
+    .const 'Sub' $P634 = "42_1271336390.22432" 
     capture_lex $P634
-    .const 'Sub' $P619 = "41_1270238416.756" 
+    .const 'Sub' $P619 = "41_1271336390.22432" 
     capture_lex $P619
-    .const 'Sub' $P593 = "40_1270238416.756" 
+    .const 'Sub' $P593 = "40_1271336390.22432" 
     capture_lex $P593
-    .const 'Sub' $P543 = "38_1270238416.756" 
+    .const 'Sub' $P543 = "38_1271336390.22432" 
     capture_lex $P543
-    .const 'Sub' $P475 = "36_1270238416.756" 
+    .const 'Sub' $P475 = "36_1271336390.22432" 
     capture_lex $P475
-    .const 'Sub' $P420 = "33_1270238416.756" 
+    .const 'Sub' $P420 = "33_1271336390.22432" 
     capture_lex $P420
-    .const 'Sub' $P405 = "32_1270238416.756" 
+    .const 'Sub' $P405 = "32_1271336390.22432" 
     capture_lex $P405
-    .const 'Sub' $P379 = "30_1270238416.756" 
+    .const 'Sub' $P379 = "30_1271336390.22432" 
     capture_lex $P379
-    .const 'Sub' $P362 = "29_1270238416.756" 
+    .const 'Sub' $P362 = "29_1271336390.22432" 
     capture_lex $P362
-    .const 'Sub' $P340 = "28_1270238416.756" 
+    .const 'Sub' $P340 = "28_1271336390.22432" 
     capture_lex $P340
-    .const 'Sub' $P308 = "27_1270238416.756" 
+    .const 'Sub' $P308 = "27_1271336390.22432" 
     capture_lex $P308
-    .const 'Sub' $P54 = "14_1270238416.756" 
+    .const 'Sub' $P54 = "14_1271336390.22432" 
     capture_lex $P54
-    .const 'Sub' $P21 = "13_1270238416.756" 
+    .const 'Sub' $P21 = "13_1271336390.22432" 
     capture_lex $P21
-    .const 'Sub' $P16 = "12_1270238416.756" 
+    .const 'Sub' $P16 = "12_1271336390.22432" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
     unless_null $P15, vivify_91
@@ -7296,23 +7296,23 @@
     set_global "@MODIFIERS", $P15
   vivify_91:
 .annotate "line", 6
-    .const 'Sub' $P16 = "12_1270238416.756" 
+    .const 'Sub' $P16 = "12_1271336390.22432" 
     capture_lex $P16
     .lex "INIT", $P16
 .annotate "line", 479
-    .const 'Sub' $P21 = "13_1270238416.756" 
+    .const 'Sub' $P21 = "13_1271336390.22432" 
     capture_lex $P21
     .lex "buildsub", $P21
 .annotate "line", 496
-    .const 'Sub' $P54 = "14_1270238416.756" 
+    .const 'Sub' $P54 = "14_1271336390.22432" 
     capture_lex $P54
     .lex "capnames", $P54
 .annotate "line", 562
-    .const 'Sub' $P308 = "27_1270238416.756" 
+    .const 'Sub' $P308 = "27_1271336390.22432" 
     capture_lex $P308
     .lex "backmod", $P308
 .annotate "line", 569
-    .const 'Sub' $P340 = "28_1270238416.756" 
+    .const 'Sub' $P340 = "28_1271336390.22432" 
     capture_lex $P340
     .lex "subrule_alias", $P340
 .annotate "line", 4
@@ -7329,7 +7329,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "INIT"  :subid("12_1270238416.756") :outer("11_1270238416.756")
+.sub "INIT"  :subid("12_1271336390.22432") :outer("11_1271336390.22432")
 .annotate "line", 6
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
@@ -7353,7 +7353,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub"  :subid("13_1270238416.756") :outer("11_1270238416.756")
+.sub "buildsub"  :subid("13_1271336390.22432") :outer("11_1271336390.22432")
     .param pmc param_24
     .param pmc param_25 :optional
     .param int has_param_25 :opt_flag
@@ -7430,19 +7430,19 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames"  :subid("14_1270238416.756") :outer("11_1270238416.756")
+.sub "capnames"  :subid("14_1271336390.22432") :outer("11_1271336390.22432")
     .param pmc param_57
     .param pmc param_58
 .annotate "line", 496
-    .const 'Sub' $P283 = "25_1270238416.756" 
+    .const 'Sub' $P283 = "25_1271336390.22432" 
     capture_lex $P283
-    .const 'Sub' $P220 = "22_1270238416.756" 
+    .const 'Sub' $P220 = "22_1271336390.22432" 
     capture_lex $P220
-    .const 'Sub' $P178 = "20_1270238416.756" 
+    .const 'Sub' $P178 = "20_1271336390.22432" 
     capture_lex $P178
-    .const 'Sub' $P136 = "18_1270238416.756" 
+    .const 'Sub' $P136 = "18_1271336390.22432" 
     capture_lex $P136
-    .const 'Sub' $P69 = "15_1270238416.756" 
+    .const 'Sub' $P69 = "15_1271336390.22432" 
     capture_lex $P69
     new $P56, 'ExceptionHandler'
     set_addr $P56, control_55
@@ -7498,21 +7498,21 @@
     set $S280, $P279
     iseq $I281, $S280, "quant"
     unless $I281, if_278_end
-    .const 'Sub' $P283 = "25_1270238416.756" 
+    .const 'Sub' $P283 = "25_1271336390.22432" 
     capture_lex $P283
     $P283()
   if_278_end:
     goto if_215_end
   if_215:
 .annotate "line", 534
-    .const 'Sub' $P220 = "22_1270238416.756" 
+    .const 'Sub' $P220 = "22_1271336390.22432" 
     capture_lex $P220
     $P220()
   if_215_end:
     goto if_168_end
   if_168:
 .annotate "line", 521
-    .const 'Sub' $P178 = "20_1270238416.756" 
+    .const 'Sub' $P178 = "20_1271336390.22432" 
     capture_lex $P178
     $P178()
   if_168_end:
@@ -7532,7 +7532,7 @@
     unless $P130, loop165_done
     shift $P134, $P130
   loop165_redo:
-    .const 'Sub' $P136 = "18_1270238416.756" 
+    .const 'Sub' $P136 = "18_1271336390.22432" 
     capture_lex $P136
     $P136($P134)
   loop165_next:
@@ -7551,7 +7551,7 @@
     goto if_64_end
   if_64:
 .annotate "line", 499
-    .const 'Sub' $P69 = "15_1270238416.756" 
+    .const 'Sub' $P69 = "15_1271336390.22432" 
     capture_lex $P69
     $P69()
   if_64_end:
@@ -7575,9 +7575,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block282"  :anon :subid("25_1270238416.756") :outer("14_1270238416.756")
+.sub "_block282"  :anon :subid("25_1271336390.22432") :outer("14_1271336390.22432")
 .annotate "line", 551
-    .const 'Sub' $P294 = "26_1270238416.756" 
+    .const 'Sub' $P294 = "26_1271336390.22432" 
     capture_lex $P294
 .annotate "line", 552
     $P284 = root_new ['parrot';'Hash']
@@ -7606,7 +7606,7 @@
     unless $P289, loop299_done
     shift $P292, $P289
   loop299_redo:
-    .const 'Sub' $P294 = "26_1270238416.756" 
+    .const 'Sub' $P294 = "26_1271336390.22432" 
     capture_lex $P294
     $P294($P292)
   loop299_next:
@@ -7636,7 +7636,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block293"  :anon :subid("26_1270238416.756") :outer("25_1270238416.756")
+.sub "_block293"  :anon :subid("26_1271336390.22432") :outer("25_1271336390.22432")
     .param pmc param_295
 .annotate "line", 553
     .lex "$_", param_295
@@ -7656,11 +7656,11 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block219"  :anon :subid("22_1270238416.756") :outer("14_1270238416.756")
+.sub "_block219"  :anon :subid("22_1271336390.22432") :outer("14_1271336390.22432")
 .annotate "line", 534
-    .const 'Sub' $P260 = "24_1270238416.756" 
+    .const 'Sub' $P260 = "24_1271336390.22432" 
     capture_lex $P260
-    .const 'Sub' $P232 = "23_1270238416.756" 
+    .const 'Sub' $P232 = "23_1271336390.22432" 
     capture_lex $P232
 .annotate "line", 535
     new $P221, "Undef"
@@ -7695,7 +7695,7 @@
     unless $P227, loop248_done
     shift $P230, $P227
   loop248_redo:
-    .const 'Sub' $P232 = "23_1270238416.756" 
+    .const 'Sub' $P232 = "23_1271336390.22432" 
     capture_lex $P232
     $P232($P230)
   loop248_next:
@@ -7734,7 +7734,7 @@
     unless $P255, loop273_done
     shift $P258, $P255
   loop273_redo:
-    .const 'Sub' $P260 = "24_1270238416.756" 
+    .const 'Sub' $P260 = "24_1271336390.22432" 
     capture_lex $P260
     $P260($P258)
   loop273_next:
@@ -7764,7 +7764,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block231"  :anon :subid("23_1270238416.756") :outer("22_1270238416.756")
+.sub "_block231"  :anon :subid("23_1271336390.22432") :outer("22_1271336390.22432")
     .param pmc param_233
 .annotate "line", 541
     .lex "$_", param_233
@@ -7804,7 +7804,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block259"  :anon :subid("24_1270238416.756") :outer("22_1270238416.756")
+.sub "_block259"  :anon :subid("24_1271336390.22432") :outer("22_1271336390.22432")
     .param pmc param_261
 .annotate "line", 546
     .lex "$_", param_261
@@ -7844,9 +7844,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block177"  :anon :subid("20_1270238416.756") :outer("14_1270238416.756")
+.sub "_block177"  :anon :subid("20_1271336390.22432") :outer("14_1271336390.22432")
 .annotate "line", 521
-    .const 'Sub' $P196 = "21_1270238416.756" 
+    .const 'Sub' $P196 = "21_1271336390.22432" 
     capture_lex $P196
 .annotate "line", 522
     new $P179, "Undef"
@@ -7889,7 +7889,7 @@
     unless $P191, loop212_done
     shift $P194, $P191
   loop212_redo:
-    .const 'Sub' $P196 = "21_1270238416.756" 
+    .const 'Sub' $P196 = "21_1271336390.22432" 
     capture_lex $P196
     $P196($P194)
   loop212_next:
@@ -7909,7 +7909,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block195"  :anon :subid("21_1270238416.756") :outer("20_1270238416.756")
+.sub "_block195"  :anon :subid("21_1271336390.22432") :outer("20_1271336390.22432")
     .param pmc param_197
 .annotate "line", 529
     .lex "$_", param_197
@@ -7949,10 +7949,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block135"  :anon :subid("18_1270238416.756") :outer("14_1270238416.756")
+.sub "_block135"  :anon :subid("18_1271336390.22432") :outer("14_1271336390.22432")
     .param pmc param_138
 .annotate "line", 513
-    .const 'Sub' $P147 = "19_1270238416.756" 
+    .const 'Sub' $P147 = "19_1271336390.22432" 
     capture_lex $P147
 .annotate "line", 514
     $P137 = root_new ['parrot';'Hash']
@@ -7975,7 +7975,7 @@
     unless $P142, loop160_done
     shift $P145, $P142
   loop160_redo:
-    .const 'Sub' $P147 = "19_1270238416.756" 
+    .const 'Sub' $P147 = "19_1271336390.22432" 
     capture_lex $P147
     $P147($P145)
   loop160_next:
@@ -8005,7 +8005,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block146"  :anon :subid("19_1270238416.756") :outer("18_1270238416.756")
+.sub "_block146"  :anon :subid("19_1271336390.22432") :outer("18_1271336390.22432")
     .param pmc param_148
 .annotate "line", 515
     .lex "$_", param_148
@@ -8045,9 +8045,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block68"  :anon :subid("15_1270238416.756") :outer("14_1270238416.756")
+.sub "_block68"  :anon :subid("15_1271336390.22432") :outer("14_1271336390.22432")
 .annotate "line", 499
-    .const 'Sub' $P78 = "16_1270238416.756" 
+    .const 'Sub' $P78 = "16_1271336390.22432" 
     capture_lex $P78
 .annotate "line", 500
     new $P70, "Undef"
@@ -8068,7 +8068,7 @@
     unless $P72, loop122_done
     shift $P76, $P72
   loop122_redo:
-    .const 'Sub' $P78 = "16_1270238416.756" 
+    .const 'Sub' $P78 = "16_1271336390.22432" 
     capture_lex $P78
     $P78($P76)
   loop122_next:
@@ -8091,10 +8091,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block77"  :anon :subid("16_1270238416.756") :outer("15_1270238416.756")
+.sub "_block77"  :anon :subid("16_1271336390.22432") :outer("15_1271336390.22432")
     .param pmc param_80
 .annotate "line", 501
-    .const 'Sub' $P89 = "17_1270238416.756" 
+    .const 'Sub' $P89 = "17_1271336390.22432" 
     capture_lex $P89
 .annotate "line", 502
     $P79 = root_new ['parrot';'Hash']
@@ -8117,7 +8117,7 @@
     unless $P84, loop109_done
     shift $P87, $P84
   loop109_redo:
-    .const 'Sub' $P89 = "17_1270238416.756" 
+    .const 'Sub' $P89 = "17_1271336390.22432" 
     capture_lex $P89
     $P89($P87)
   loop109_next:
@@ -8166,7 +8166,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block88"  :anon :subid("17_1270238416.756") :outer("16_1270238416.756")
+.sub "_block88"  :anon :subid("17_1271336390.22432") :outer("16_1271336390.22432")
     .param pmc param_90
 .annotate "line", 503
     .lex "$_", param_90
@@ -8225,7 +8225,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod"  :subid("27_1270238416.756") :outer("11_1270238416.756")
+.sub "backmod"  :subid("27_1271336390.22432") :outer("11_1271336390.22432")
     .param pmc param_311
     .param pmc param_312
 .annotate "line", 562
@@ -8299,7 +8299,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias"  :subid("28_1270238416.756") :outer("11_1270238416.756")
+.sub "subrule_alias"  :subid("28_1271336390.22432") :outer("11_1271336390.22432")
     .param pmc param_343
     .param pmc param_344
 .annotate "line", 569
@@ -8343,7 +8343,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg"  :subid("29_1270238416.756") :method :outer("11_1270238416.756")
+.sub "arg"  :subid("29_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_365
 .annotate "line", 14
     new $P364, 'ExceptionHandler'
@@ -8399,10 +8399,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist"  :subid("30_1270238416.756") :method :outer("11_1270238416.756")
+.sub "arglist"  :subid("30_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_382
 .annotate "line", 18
-    .const 'Sub' $P392 = "31_1270238416.756" 
+    .const 'Sub' $P392 = "31_1271336390.22432" 
     capture_lex $P392
     new $P381, 'ExceptionHandler'
     set_addr $P381, control_380
@@ -8436,7 +8436,7 @@
     unless $P386, loop398_done
     shift $P390, $P386
   loop398_redo:
-    .const 'Sub' $P392 = "31_1270238416.756" 
+    .const 'Sub' $P392 = "31_1271336390.22432" 
     capture_lex $P392
     $P392($P390)
   loop398_next:
@@ -8465,7 +8465,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block391"  :anon :subid("31_1270238416.756") :outer("30_1270238416.756")
+.sub "_block391"  :anon :subid("31_1271336390.22432") :outer("30_1271336390.22432")
     .param pmc param_393
 .annotate "line", 20
     .lex "$_", param_393
@@ -8478,7 +8478,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP"  :subid("32_1270238416.756") :method :outer("11_1270238416.756")
+.sub "TOP"  :subid("32_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_408
 .annotate "line", 24
     new $P407, 'ExceptionHandler'
@@ -8520,14 +8520,14 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler"  :subid("33_1270238416.756") :method :outer("11_1270238416.756")
+.sub "nibbler"  :subid("33_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_423
     .param pmc param_424 :optional
     .param int has_param_424 :opt_flag
 .annotate "line", 30
-    .const 'Sub' $P458 = "35_1270238416.756" 
+    .const 'Sub' $P458 = "35_1271336390.22432" 
     capture_lex $P458
-    .const 'Sub' $P432 = "34_1270238416.756" 
+    .const 'Sub' $P432 = "34_1271336390.22432" 
     capture_lex $P432
     new $P422, 'ExceptionHandler'
     set_addr $P422, control_421
@@ -8548,7 +8548,7 @@
     set $S429, $P428
     iseq $I430, $S429, "open"
     unless $I430, if_427_end
-    .const 'Sub' $P432 = "34_1270238416.756" 
+    .const 'Sub' $P432 = "34_1271336390.22432" 
     capture_lex $P432
     $P432()
   if_427_end:
@@ -8611,7 +8611,7 @@
     unless $P452, loop464_done
     shift $P456, $P452
   loop464_redo:
-    .const 'Sub' $P458 = "35_1270238416.756" 
+    .const 'Sub' $P458 = "35_1271336390.22432" 
     capture_lex $P458
     $P458($P456)
   loop464_next:
@@ -8641,7 +8641,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block431"  :anon :subid("34_1270238416.756") :outer("33_1270238416.756")
+.sub "_block431"  :anon :subid("34_1271336390.22432") :outer("33_1271336390.22432")
 .annotate "line", 32
     $P433 = root_new ['parrot';'Hash']
     .lex "%old", $P433
@@ -8681,7 +8681,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block457"  :anon :subid("35_1270238416.756") :outer("33_1270238416.756")
+.sub "_block457"  :anon :subid("35_1271336390.22432") :outer("33_1271336390.22432")
     .param pmc param_459
 .annotate "line", 45
     .lex "$_", param_459
@@ -8696,10 +8696,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish"  :subid("36_1270238416.756") :method :outer("11_1270238416.756")
+.sub "termish"  :subid("36_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_478
 .annotate "line", 55
-    .const 'Sub' $P491 = "37_1270238416.756" 
+    .const 'Sub' $P491 = "37_1271336390.22432" 
     capture_lex $P491
     new $P477, 'ExceptionHandler'
     set_addr $P477, control_476
@@ -8742,7 +8742,7 @@
     unless $P485, loop536_done
     shift $P489, $P485
   loop536_redo:
-    .const 'Sub' $P491 = "37_1270238416.756" 
+    .const 'Sub' $P491 = "37_1271336390.22432" 
     capture_lex $P491
     $P491($P489)
   loop536_next:
@@ -8771,7 +8771,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block490"  :anon :subid("37_1270238416.756") :outer("36_1270238416.756")
+.sub "_block490"  :anon :subid("37_1271336390.22432") :outer("36_1271336390.22432")
     .param pmc param_493
 .annotate "line", 59
     new $P492, "Undef"
@@ -8898,10 +8898,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom"  :subid("38_1270238416.756") :method :outer("11_1270238416.756")
+.sub "quantified_atom"  :subid("38_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_546
 .annotate "line", 76
-    .const 'Sub' $P555 = "39_1270238416.756" 
+    .const 'Sub' $P555 = "39_1271336390.22432" 
     capture_lex $P555
     new $P545, 'ExceptionHandler'
     set_addr $P545, control_544
@@ -8964,7 +8964,7 @@
     goto if_551_end
   if_551:
 .annotate "line", 78
-    .const 'Sub' $P555 = "39_1270238416.756" 
+    .const 'Sub' $P555 = "39_1271336390.22432" 
     capture_lex $P555
     $P555()
   if_551_end:
@@ -9018,7 +9018,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block554"  :anon :subid("39_1270238416.756") :outer("38_1270238416.756")
+.sub "_block554"  :anon :subid("39_1271336390.22432") :outer("38_1271336390.22432")
 .annotate "line", 80
     new $P556, "Undef"
     .lex "$qast", $P556
@@ -9057,7 +9057,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom"  :subid("40_1270238416.756") :method :outer("11_1270238416.756")
+.sub "atom"  :subid("40_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_596
 .annotate "line", 91
     new $P595, 'ExceptionHandler'
@@ -9135,7 +9135,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>"  :subid("41_1270238416.756") :method :outer("11_1270238416.756")
+.sub "quantifier:sym<*>"  :subid("41_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_622
 .annotate "line", 101
     new $P621, 'ExceptionHandler'
@@ -9175,7 +9175,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>"  :subid("42_1270238416.756") :method :outer("11_1270238416.756")
+.sub "quantifier:sym<+>"  :subid("42_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_637
 .annotate "line", 106
     new $P636, 'ExceptionHandler'
@@ -9215,7 +9215,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>"  :subid("43_1270238416.756") :method :outer("11_1270238416.756")
+.sub "quantifier:sym<?>"  :subid("43_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_652
 .annotate "line", 111
     new $P651, 'ExceptionHandler'
@@ -9259,7 +9259,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>"  :subid("44_1270238416.756") :method :outer("11_1270238416.756")
+.sub "quantifier:sym<**>"  :subid("44_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_669
 .annotate "line", 117
     new $P668, 'ExceptionHandler'
@@ -9399,7 +9399,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>"  :subid("45_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<ws>"  :subid("45_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_716
 .annotate "line", 131
     new $P715, 'ExceptionHandler'
@@ -9451,7 +9451,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>"  :subid("46_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<[ ]>"  :subid("46_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_734
 .annotate "line", 140
     new $P733, 'ExceptionHandler'
@@ -9483,7 +9483,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>"  :subid("47_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<( )>"  :subid("47_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_744
 .annotate "line", 144
     new $P743, 'ExceptionHandler'
@@ -9531,7 +9531,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>"  :subid("48_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<'>"  :subid("48_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_762
 .annotate "line", 151
     new $P761, 'ExceptionHandler'
@@ -9587,7 +9587,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">"  :subid("49_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<\">"  :subid("49_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_785
 .annotate "line", 158
     new $P784, 'ExceptionHandler'
@@ -9643,7 +9643,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>"  :subid("50_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<.>"  :subid("50_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_808
 .annotate "line", 165
     new $P807, 'ExceptionHandler'
@@ -9674,7 +9674,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>"  :subid("51_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<^>"  :subid("51_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_820
 .annotate "line", 170
     new $P819, 'ExceptionHandler'
@@ -9705,7 +9705,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>"  :subid("52_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<^^>"  :subid("52_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_832
 .annotate "line", 175
     new $P831, 'ExceptionHandler'
@@ -9736,7 +9736,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>"  :subid("53_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<$>"  :subid("53_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_844
 .annotate "line", 180
     new $P843, 'ExceptionHandler'
@@ -9767,7 +9767,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>"  :subid("54_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<$$>"  :subid("54_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_856
 .annotate "line", 185
     new $P855, 'ExceptionHandler'
@@ -9798,7 +9798,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>"  :subid("55_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<:::>"  :subid("55_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_868
 .annotate "line", 190
     new $P867, 'ExceptionHandler'
@@ -9829,7 +9829,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>"  :subid("56_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<lwb>"  :subid("56_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_880
 .annotate "line", 195
     new $P879, 'ExceptionHandler'
@@ -9860,7 +9860,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>"  :subid("57_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<rwb>"  :subid("57_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_892
 .annotate "line", 200
     new $P891, 'ExceptionHandler'
@@ -9891,7 +9891,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>"  :subid("58_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<bs>"  :subid("58_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_904
 .annotate "line", 205
     new $P903, 'ExceptionHandler'
@@ -9923,7 +9923,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>"  :subid("59_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<mod>"  :subid("59_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_914
 .annotate "line", 209
     new $P913, 'ExceptionHandler'
@@ -9955,7 +9955,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>"  :subid("60_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<assert>"  :subid("60_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_924
 .annotate "line", 213
     new $P923, 'ExceptionHandler'
@@ -9987,7 +9987,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>"  :subid("61_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<~>"  :subid("61_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_934
 .annotate "line", 217
     new $P933, 'ExceptionHandler'
@@ -10049,7 +10049,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>"  :subid("62_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<{*}>"  :subid("62_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_956
 .annotate "line", 230
     new $P955, 'ExceptionHandler'
@@ -10110,7 +10110,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>"  :subid("63_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<var>"  :subid("63_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_977
 .annotate "line", 237
     new $P976, 'ExceptionHandler'
@@ -10270,7 +10270,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>"  :subid("64_1270238416.756") :method :outer("11_1270238416.756")
+.sub "metachar:sym<PIR>"  :subid("64_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1033
 .annotate "line", 257
     new $P1032, 'ExceptionHandler'
@@ -10309,7 +10309,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>"  :subid("65_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<w>"  :subid("65_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1048
 .annotate "line", 265
     new $P1047, 'ExceptionHandler'
@@ -10375,7 +10375,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>"  :subid("66_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<b>"  :subid("66_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1072
 .annotate "line", 271
     new $P1071, 'ExceptionHandler'
@@ -10418,7 +10418,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>"  :subid("67_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<e>"  :subid("67_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1088
 .annotate "line", 277
     new $P1087, 'ExceptionHandler'
@@ -10461,7 +10461,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>"  :subid("68_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<f>"  :subid("68_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1104
 .annotate "line", 283
     new $P1103, 'ExceptionHandler'
@@ -10504,7 +10504,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>"  :subid("69_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<h>"  :subid("69_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1120
 .annotate "line", 289
     new $P1119, 'ExceptionHandler'
@@ -10547,7 +10547,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>"  :subid("70_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<r>"  :subid("70_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1136
 .annotate "line", 295
     new $P1135, 'ExceptionHandler'
@@ -10590,7 +10590,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>"  :subid("71_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<t>"  :subid("71_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1152
 .annotate "line", 301
     new $P1151, 'ExceptionHandler'
@@ -10633,7 +10633,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>"  :subid("72_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<v>"  :subid("72_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1168
 .annotate "line", 307
     new $P1167, 'ExceptionHandler'
@@ -10676,7 +10676,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>"  :subid("73_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<o>"  :subid("73_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1184
 .annotate "line", 314
     new $P1183, 'ExceptionHandler'
@@ -10759,7 +10759,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>"  :subid("74_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<x>"  :subid("74_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1215
 .annotate "line", 323
     new $P1214, 'ExceptionHandler'
@@ -10842,7 +10842,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<c>"  :subid("75_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<c>"  :subid("75_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1246
 .annotate "line", 332
     new $P1245, 'ExceptionHandler'
@@ -10877,7 +10877,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>"  :subid("76_1270238416.756") :method :outer("11_1270238416.756")
+.sub "backslash:sym<misc>"  :subid("76_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1259
 .annotate "line", 336
     new $P1258, 'ExceptionHandler'
@@ -10910,7 +10910,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>"  :subid("77_1270238416.756") :method :outer("11_1270238416.756")
+.sub "assertion:sym<?>"  :subid("77_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1273
 .annotate "line", 342
     new $P1272, 'ExceptionHandler'
@@ -10970,7 +10970,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>"  :subid("78_1270238416.756") :method :outer("11_1270238416.756")
+.sub "assertion:sym<!>"  :subid("78_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1291
 .annotate "line", 352
     new $P1290, 'ExceptionHandler'
@@ -11038,7 +11038,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>"  :subid("79_1270238416.756") :method :outer("11_1270238416.756")
+.sub "assertion:sym<method>"  :subid("79_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1315
 .annotate "line", 365
     new $P1314, 'ExceptionHandler'
@@ -11081,12 +11081,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>"  :subid("80_1270238416.756") :method :outer("11_1270238416.756")
+.sub "assertion:sym<name>"  :subid("80_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1329
 .annotate "line", 372
-    .const 'Sub' $P1387 = "82_1270238416.756" 
+    .const 'Sub' $P1387 = "82_1271336390.22432" 
     capture_lex $P1387
-    .const 'Sub' $P1351 = "81_1270238416.756" 
+    .const 'Sub' $P1351 = "81_1271336390.22432" 
     capture_lex $P1351
     new $P1328, 'ExceptionHandler'
     set_addr $P1328, control_1327
@@ -11182,7 +11182,7 @@
     unless $P1378, loop1392_done
     shift $P1385, $P1378
   loop1392_redo:
-    .const 'Sub' $P1387 = "82_1270238416.756" 
+    .const 'Sub' $P1387 = "82_1271336390.22432" 
     capture_lex $P1387
     $P1387($P1385)
   loop1392_next:
@@ -11222,7 +11222,7 @@
     goto if_1346_end
   if_1346:
 .annotate "line", 379
-    .const 'Sub' $P1351 = "81_1270238416.756" 
+    .const 'Sub' $P1351 = "81_1271336390.22432" 
     capture_lex $P1351
     $P1351()
   if_1346_end:
@@ -11263,7 +11263,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1386"  :anon :subid("82_1270238416.756") :outer("80_1270238416.756")
+.sub "_block1386"  :anon :subid("82_1271336390.22432") :outer("80_1271336390.22432")
     .param pmc param_1388
 .annotate "line", 401
     .lex "$_", param_1388
@@ -11275,7 +11275,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1350"  :anon :subid("81_1270238416.756") :outer("80_1270238416.756")
+.sub "_block1350"  :anon :subid("81_1271336390.22432") :outer("80_1271336390.22432")
 .annotate "line", 380
     new $P1352, "Undef"
     .lex "$regexsym", $P1352
@@ -11306,10 +11306,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>"  :subid("83_1270238416.756") :method :outer("11_1270238416.756")
+.sub "assertion:sym<[>"  :subid("83_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1402
 .annotate "line", 407
-    .const 'Sub' $P1437 = "84_1270238416.756" 
+    .const 'Sub' $P1437 = "84_1271336390.22432" 
     capture_lex $P1437
     new $P1401, 'ExceptionHandler'
     set_addr $P1401, control_1400
@@ -11401,7 +11401,7 @@
     islt $I1435, $N1432, $N1434
     unless $I1435, loop1460_done
   loop1460_redo:
-    .const 'Sub' $P1437 = "84_1270238416.756" 
+    .const 'Sub' $P1437 = "84_1271336390.22432" 
     capture_lex $P1437
     $P1437()
   loop1460_next:
@@ -11429,7 +11429,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1436"  :anon :subid("84_1270238416.756") :outer("83_1270238416.756")
+.sub "_block1436"  :anon :subid("84_1271336390.22432") :outer("83_1271336390.22432")
 .annotate "line", 421
     new $P1438, "Undef"
     .lex "$ast", $P1438
@@ -11480,12 +11480,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem"  :subid("85_1270238416.756") :method :outer("11_1270238416.756")
+.sub "cclass_elem"  :subid("85_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1470
 .annotate "line", 434
-    .const 'Sub' $P1495 = "87_1270238416.756" 
+    .const 'Sub' $P1495 = "87_1271336390.22432" 
     capture_lex $P1495
-    .const 'Sub' $P1479 = "86_1270238416.756" 
+    .const 'Sub' $P1479 = "86_1271336390.22432" 
     capture_lex $P1479
     new $P1469, 'ExceptionHandler'
     set_addr $P1469, control_1468
@@ -11534,7 +11534,7 @@
     unless $P1489, loop1520_done
     shift $P1493, $P1489
   loop1520_redo:
-    .const 'Sub' $P1495 = "87_1270238416.756" 
+    .const 'Sub' $P1495 = "87_1271336390.22432" 
     capture_lex $P1495
     $P1495($P1493)
   loop1520_next:
@@ -11558,7 +11558,7 @@
     goto if_1475_end
   if_1475:
 .annotate "line", 437
-    .const 'Sub' $P1479 = "86_1270238416.756" 
+    .const 'Sub' $P1479 = "86_1271336390.22432" 
     capture_lex $P1479
     $P1479()
   if_1475_end:
@@ -11590,10 +11590,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1494"  :anon :subid("87_1270238416.756") :outer("85_1270238416.756")
+.sub "_block1494"  :anon :subid("87_1271336390.22432") :outer("85_1271336390.22432")
     .param pmc param_1496
 .annotate "line", 441
-    .const 'Sub' $P1502 = "88_1270238416.756" 
+    .const 'Sub' $P1502 = "88_1271336390.22432" 
     capture_lex $P1502
     .lex "$_", param_1496
 .annotate "line", 442
@@ -11622,7 +11622,7 @@
 .annotate "line", 442
     goto if_1498_end
   if_1498:
-    .const 'Sub' $P1502 = "88_1270238416.756" 
+    .const 'Sub' $P1502 = "88_1271336390.22432" 
     capture_lex $P1502
     $P1515 = $P1502()
     set $P1497, $P1515
@@ -11633,7 +11633,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1501"  :anon :subid("88_1270238416.756") :outer("87_1270238416.756")
+.sub "_block1501"  :anon :subid("88_1271336390.22432") :outer("87_1271336390.22432")
 .annotate "line", 443
     new $P1503, "Undef"
     .lex "$a", $P1503
@@ -11697,7 +11697,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1478"  :anon :subid("86_1270238416.756") :outer("85_1270238416.756")
+.sub "_block1478"  :anon :subid("86_1271336390.22432") :outer("85_1271336390.22432")
 .annotate "line", 438
     new $P1480, "Undef"
     .lex "$name", $P1480
@@ -11725,7 +11725,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal"  :subid("89_1270238416.756") :method :outer("11_1270238416.756")
+.sub "mod_internal"  :subid("89_1271336390.22432") :method :outer("11_1271336390.22432")
     .param pmc param_1539
 .annotate "line", 472
     new $P1538, 'ExceptionHandler'

Modified: branches/immutable_strings_part1/include/parrot/call.h
==============================================================================
--- branches/immutable_strings_part1/include/parrot/call.h	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/include/parrot/call.h	Wed Apr 21 09:44:01 2010	(r45849)
@@ -319,10 +319,10 @@
 
 /* XXX Remove interp from this */
 #define ADD_OP_VAR_PART(interp, seg, pc, n) do { \
-    if (*(pc) == PARROT_OP_set_args_pc || \
-            *(pc) == PARROT_OP_get_results_pc || \
-            *(pc) == PARROT_OP_get_params_pc || \
-            *(pc) == PARROT_OP_set_returns_pc) { \
+    if (*(pc) == PARROT_OP_set_args_pc       \
+    ||  *(pc) == PARROT_OP_get_results_pc    \
+    ||  *(pc) == PARROT_OP_get_params_pc     \
+    ||  *(pc) == PARROT_OP_set_returns_pc) { \
         PMC * const sig = (seg)->const_table->constants[(pc)[1]]->u.key; \
         (n) += VTABLE_elements((interp), sig); \
     } \

Modified: branches/immutable_strings_part1/include/parrot/embed.h
==============================================================================
--- branches/immutable_strings_part1/include/parrot/embed.h	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/include/parrot/embed.h	Wed Apr 21 09:44:01 2010	(r45849)
@@ -56,7 +56,7 @@
 
 PARROT_EXPORT void Parrot_pbc_fixup_loaded(Parrot_Interp);
 
-PARROT_EXPORT void Parrot_runcode(Parrot_Interp, int argc, char **argv);
+PARROT_EXPORT void Parrot_runcode(Parrot_Interp, int argc, const char **argv);
 
 PARROT_EXPORT Parrot_PMC Parrot_compile_string(Parrot_Interp,
         Parrot_String type, const char *code, Parrot_String *error);

Modified: branches/immutable_strings_part1/include/parrot/imcc.h
==============================================================================
--- branches/immutable_strings_part1/include/parrot/imcc.h	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/include/parrot/imcc.h	Wed Apr 21 09:44:01 2010	(r45849)
@@ -9,7 +9,7 @@
 PARROT_EXPORT void imcc_initialize(PARROT_INTERP);
 PARROT_EXPORT void imcc_start_handling_flags(PARROT_INTERP);
 PARROT_EXPORT int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt, Parrot_Run_core_t *core);
-PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, char **argv);
+PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char **argv);
 
 #endif /* PARROT_IMCC_H_GUARD */
 

Modified: branches/immutable_strings_part1/lib/Parrot/Configure/Options/Conf.pm
==============================================================================
--- branches/immutable_strings_part1/lib/Parrot/Configure/Options/Conf.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/lib/Parrot/Configure/Options/Conf.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -99,8 +99,6 @@
 
 External Library Options:
 
-   --without-crypto     Build parrot without crypto support (libssl)
-   --without-gdbm       Build parrot without GDBM support
    --without-gettext    Build parrot without gettext support
    --without-gmp        Build parrot without GMP support
    --without-opengl     Build parrot without OpenGL support (GL/GLU/GLUT)

Modified: branches/immutable_strings_part1/lib/Parrot/Configure/Step/List.pm
==============================================================================
--- branches/immutable_strings_part1/lib/Parrot/Configure/Step/List.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/lib/Parrot/Configure/Step/List.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -52,10 +52,8 @@
     auto::thread
     auto::gmp
     auto::readline
-    auto::gdbm
     auto::pcre
     auto::opengl
-    auto::crypto
     auto::gettext
     auto::snprintf
     auto::perldoc
@@ -65,7 +63,6 @@
     auto::icu
     gen::config_h
     gen::core_pmcs
-    gen::crypto
     gen::opengl
     gen::makefiles
     gen::platform

Modified: branches/immutable_strings_part1/lib/Parrot/Harness/Smoke.pm
==============================================================================
--- branches/immutable_strings_part1/lib/Parrot/Harness/Smoke.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/lib/Parrot/Harness/Smoke.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -116,6 +116,7 @@
           . '/app/projects/process_add_report/'
           . $project_id;
     my $ua = LWP::UserAgent->new();
+    $ua->timeout(360);
     $ua->agent( 'Parrot::Harness::Smoke' );
     $ua->env_proxy();
 

Modified: branches/immutable_strings_part1/lib/Parrot/Pmc2c/PCCMETHOD.pm
==============================================================================
--- branches/immutable_strings_part1/lib/Parrot/Pmc2c/PCCMETHOD.pm	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/lib/Parrot/Pmc2c/PCCMETHOD.pm	Wed Apr 21 09:44:01 2010	(r45849)
@@ -414,7 +414,7 @@
     $e->emit( <<"END", __FILE__, __LINE__ + 1 );
     PMC * const _ctx         = CURRENT_CONTEXT(interp);
     PMC * const _ccont       = Parrot_pcc_get_continuation(interp, _ctx);
-    PMC * _call_object       = Parrot_pcc_get_signature(interp, _ctx);
+    PMC * const _call_object = Parrot_pcc_get_signature(interp, _ctx);
     PMC * _ret_object        = PMCNULL;
 
     { /* BEGIN PARMS SCOPE */
@@ -428,11 +428,11 @@
             $params_varargs);
 END
     }
-    $e->emit( <<"END", __FILE__, __LINE__ + 1 );
+    $e->emit( <<'END', __FILE__, __LINE__ + 1 );
     { /* BEGIN PMETHOD BODY */
 END
 
-    $e_post->emit( <<"END", __FILE__, __LINE__ + 1 );
+    $e_post->emit( <<'END', __FILE__, __LINE__ + 1 );
 
     } /* END PMETHOD BODY */
     } /* END PARAMS SCOPE */
@@ -450,10 +450,6 @@
     return 1;
 }
 
-sub isquoted {
-    1;
-}
-
 sub rewrite_pccinvoke {
     my ( $method, $pmc ) = @_;
     my $body             = $method->body;

Modified: branches/immutable_strings_part1/ports/debian/control.in
==============================================================================
--- branches/immutable_strings_part1/ports/debian/control.in	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/ports/debian/control.in	Wed Apr 21 09:44:01 2010	(r45849)
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Debian Parrot Maintainers <pkg-parrot-devel at lists.alioth.debian.org>
 Uploaders: Allison Randal <allison at parrot.org>, Nuno Carvalho <mestre.smash at gmail.com>, Patrick Michaud <pmichaud at pobox.com>
-Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libgdbm-dev, libreadline-dev, quilt
+Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev, quilt
 Standards-Version: 3.8.4
 
 Package: parrot

Modified: branches/immutable_strings_part1/ports/ubuntu/control.in
==============================================================================
--- branches/immutable_strings_part1/ports/ubuntu/control.in	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/ports/ubuntu/control.in	Wed Apr 21 09:44:01 2010	(r45849)
@@ -4,7 +4,7 @@
 Maintainer: Ubuntu Developers <ubuntu-devel-discuss at lists.ubuntu.com>
 XSBC-Original-Maintainer: Debian Parrot Maintainers <pkg-parrot-devel at lists.alioth.debian.org>
 Uploaders: Allison Randal <allison at parrot.org>, Nuno Carvalho <mestre.smash at gmail.com>, Patrick Michaud <pmichaud at pobox.com>
-Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libgdbm-dev, libreadline-dev
+Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev
 Standards-Version: 3.8.1
 
 Package: parrot

Modified: branches/immutable_strings_part1/runtime/parrot/library/TAP/Formatter.pir
==============================================================================
--- branches/immutable_strings_part1/runtime/parrot/library/TAP/Formatter.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/runtime/parrot/library/TAP/Formatter.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -19,7 +19,11 @@
     $P0 = newclass ['TAP';'Formatter';'Base']
     $P0.'add_attribute'('verbosity')
     $P0.'add_attribute'('normalize')
+    $P0.'add_attribute'('failures')
+    $P0.'add_attribute'('comments')
+    $P0.'add_attribute'('directives')
     $P0.'add_attribute'('_longest')
+    $P0.'add_attribute'('_printed_summary_header')
 .end
 
 .sub 'init' :vtable :method
@@ -50,6 +54,24 @@
     set $P0, 1
     setattribute self, 'normalize', $P0
   L4:
+    $I0 = exists opts['failures']
+    unless $I0 goto L5
+    $P0 = new 'Boolean'
+    set $P0, 1
+    setattribute self, 'failures', $P0
+  L5:
+    $I0 = exists opts['comments']
+    unless $I0 goto L6
+    $P0 = new 'Boolean'
+    set $P0, 1
+    setattribute self, 'comments', $P0
+  L6:
+    $I0 = exists opts['directives']
+    unless $I0 goto L7
+    $P0 = new 'Boolean'
+    set $P0, 1
+    setattribute self, 'directives', $P0
+  L7:
 .end
 
 .sub 'verbose' :method
@@ -138,8 +160,42 @@
   L3:
     self.'_output'("\nTest Summary Report")
     self.'_output'("\n-------------------\n")
+    $P0 = iter tests
+  L5:
+    unless $P0 goto L4
+    .local string test
+    test = shift $P0
+    $P1 = box 0
+    setattribute self, '_printed_summary_header', $P1
+    .local pmc parser
+    parser = aggregate.'parsers'(test)
+    $P2 = parser.'failed'()
+    self.'_output_summary_failure'($P2, '  Failed test:  ', '  Failed tests:  ', test, parser)
+    $P2 = parser.'todo_passed'()
+    self.'_output_summary_failure'($P2, "  TODO passed:   ", "  TODO passed:   ", test, parser)
+
+    .local int _exit
+    _exit = parser.'exit'()
+    unless _exit goto L6
+    self.'_summary_test_header'(test, parser)
+    $S1 = _exit
+    self.'_failure_output'("  Non-zero exit status: ", $S1, "\n")
+  L6:
 
-    # work is progress
+    .local pmc errors
+    errors = parser.'parse_errors'()
+    $I0 = elements errors
+    unless $I0 goto L5
+    self.'_summary_test_header'(test, parser)
+    $P2 = iter errors
+    $S1 = shift $P2
+    self.'_failure_output'("  Parse errors: ", $S1, "\n")
+  L8:
+    unless $P2 goto L5
+    $S1 = repeat ' ', 16
+    $S2 = shift $P2
+    self.'_failure_output'($S1, $S2, "\n")
+    goto L8
 
   L4:
     $I0 = elements tests
@@ -151,6 +207,56 @@
   L1:
 .end
 
+.sub '_output_summary_failure' :method
+    .param pmc r
+    .param string singular
+    .param string plural
+    .param string test
+    .param pmc parser
+    $I0 = elements r
+    unless $I0 goto L1
+    self.'_summary_test_header'(test, parser)
+    unless $I0 == 1 goto L2
+    self.'_output'(singular)
+    goto L3
+  L2:
+    self.'_output'(plural)
+  L3:
+    .local pmc results
+    results = self.'_balanced_range'(40, r)
+    $S1 = shift results
+    self.'_output'($S1, "\n")
+  L4:
+    unless results goto L1
+    $S1 = repeat ' ', 16
+    $S2 = shift results
+    self.'_output'($S1, $S2, "\n")
+    goto L4
+  L1:
+.end
+
+.sub '_summary_test_header' :method
+    .param string test
+    .param pmc parser
+    .local pmc _printed_summary_header
+    _printed_summary_header = getattribute self, '_printed_summary_header'
+    if _printed_summary_header goto L1
+    .local string spaces, tests_run, failed
+    $P0 = getattribute self, '_longest'
+    $I0 = $P0
+    $I1 = length test
+    $I0 -= $I1
+    inc $I0
+    spaces = repeat ' ', $I0
+    tests_run = parser.'tests_run'()
+    $P0 = parser.'failed'()
+    $I0 = elements $P0
+    failed = $I0
+    self.'_output'(test, spaces, "(Tests: ", tests_run, " Failed: ", failed, ")\n")
+    set _printed_summary_header, 1
+  L1:
+.end
+
 .sub '_output' :method
     .param pmc args :slurpy
     $S0 = join '', args
@@ -167,6 +273,78 @@
     self.'_output'(args :flat)
 .end
 
+.sub '_balanced_range' :method
+    .param int limit
+    .param pmc range
+    range = self.'_range'(range)
+    .local string line
+    line = ''
+    .local pmc lines
+    lines = new 'ResizableStringArray'
+    .local int curr
+    curr = 0
+  L1:
+    unless range goto L2
+    unless curr < limit goto L3
+    $S0 = shift range
+    $S0 .= ", "
+    line .= $S0
+    $I0 = length $S0
+    curr += $I0
+    goto L1
+  L3:
+    unless range goto L1
+    $I0 = length line
+    $I0 -= 2
+    line = substr line, 0, $I0
+    push lines, line
+    line = ''
+    curr = 0
+    goto L1
+  L2:
+    if line == '' goto L9
+    $I0 = length line
+    $I0 -= 2
+    line = substr line, 0, $I0
+    push lines, line
+  L9:
+    .return (lines)
+.end
+
+.sub '_range' :method
+    .param pmc numbers
+    .local int min, i, _num, next
+    .local pmc range
+    range = new 'ResizableStringArray'
+    push numbers, -1
+    min = -1
+  L1:
+    _num = shift numbers
+    if _num == -1 goto L2
+    next = shift numbers
+    unshift numbers, next
+    $I0 = _num + 1
+    unless next == $I0 goto L3
+    unless min == -1 goto L1
+    min = _num
+    goto L1
+  L3:
+    unless min != -1 goto L4
+    $S0 = min
+    $S0 .= '-'
+    $S1 = _num
+    $S0 .= $S1
+    push range, $S0
+    min = -1
+    goto L1
+  L4:
+    $S0 = _num
+    push range, $S0
+    goto L1
+  L2:
+    .return (range)
+.end
+
 
 .namespace ['TAP';'Formatter';'Session']
 
@@ -246,8 +424,10 @@
   L3:
 
     .local int passed, failed, exit
-    passed = parser.'passed'()
-    failed = parser.'failed'()
+    $P0 = parser.'passed'()
+    passed = elements $P0
+    $P0 = parser.'failed'()
+    failed = elements $P0
     failed += total
     $I0 = tests_run
     failed -= $I0
@@ -275,7 +455,8 @@
   L7:
 
     .local int skipped
-    skipped = parser.'skipped'()
+    $P0 = parser.'skipped'()
+    skipped = elements $P0
     unless skipped goto L8
     passed -= skipped
     $S1 = skipped
@@ -287,7 +468,8 @@
     formatter.'_output'("\n\t(less ", $S1, " skipped subtest", $S2, ": ", $S3, " okay)")
   L8:
 
-    failed = parser.'todo_passed'()
+    $P0 = parser.'todo_passed'()
+    failed = elements $P0
     unless failed goto L10
     $S1 = failed
     $S2 = ''
@@ -443,16 +625,28 @@
     if $I0 goto L2
     $I0 = formatter.'verbose'()
     if $I0 goto L6
-
-    # work in progress
-
-    goto L2
+    unless is_test goto L7
+    $P0 = getattribute formatter, 'failures'
+    if null $P0 goto L7
+    unless $P0 goto L7
+    $I0 = result.'is_ok'()
+    unless $I0 goto L6
+  L7:
+    $P0 = getattribute formatter, 'comments'
+    if null $P0 goto L8
+    $I0 = isa result, ['TAP';'Parser';'Result';'Comment']
+    if $I0 goto L6
+  L8:
+    $P0 = getattribute formatter, 'directives'
+    if null $P0 goto L2
+    $I0 = result.'has_directive'()
+    unless $I0 goto L2
   L6:
     $P0 = getattribute self, 'newline_printed'
-    if $P0 goto L7
+    if $P0 goto L9
     formatter.'_output'("\n")
     set $P0, 1
-  L7:
+  L9:
     self.'_get_output_result'(result)
     formatter.'_output'("\n")
   L2:

Modified: branches/immutable_strings_part1/runtime/parrot/library/TAP/Harness.pir
==============================================================================
--- branches/immutable_strings_part1/runtime/parrot/library/TAP/Harness.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/runtime/parrot/library/TAP/Harness.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -18,11 +18,13 @@
 .namespace ['TAP';'Harness']
 
 .sub '' :init :load :anon
-    load_bytecode 'TAP/Parser.pir'
-    load_bytecode 'TAP/Formatter.pir'
+    load_bytecode 'TAP/Parser.pbc'
+    load_bytecode 'TAP/Formatter.pbc'
     $P0 = subclass ['TAP';'Base'], ['TAP';'Harness']
     $P0.'add_attribute'('formatter')
     $P0.'add_attribute'('exec')
+    $P0.'add_attribute'('ignore_exit')
+    $P0.'add_attribute'('merge')
     $P0.'add_attribute'('opts')
 
     $P0 = new 'Hash'
@@ -50,6 +52,20 @@
     $P0 = box $S0
     setattribute self, 'exec', $P0
   L1:
+    $I0 = exists opts['ignore-exit']
+    unless $I0 goto L2
+    $S0 = opts['ignore-exit']
+    $P0 = new 'Boolean'
+    set $P0, 1
+    setattribute self, 'ignore_exit', $P0
+  L2:
+    $I0 = exists opts['merge']
+    unless $I0 goto L3
+    $S0 = opts['merge']
+    $P0 = new 'Boolean'
+    set $P0, 1
+    setattribute self, 'merge', $P0
+  L3:
 .end
 
 .sub 'formatter' :method
@@ -83,33 +99,39 @@
     $P0 = getattribute self, 'formatter'
     $P0.'prepare'(tests)
     .local string exec
-    exec = 'parrot'
+    exec = ''
     $P0 = getattribute self, 'exec'
-    if null $P0 goto L0
+    if null $P0 goto L1
     exec = $P0
-  L0:
-    $P0 = iter tests
   L1:
-    unless $P0 goto L2
+    $P0 = iter tests
+  L2:
+    unless $P0 goto L3
     $S0 = shift $P0
     .local pmc parser, session
     (parser, session) = self.'make_parser'($S0)
+    unless exec == '' goto L4
+    parser.'file'($S0)
+    goto L5
+  L4:
     parser.'exec'(exec, $S0)
-    .local pmc next, coro, result
-    next = get_hll_global ['TAP';'Parser'], 'next'
-    coro = clone next
-  L3:
+  L5:
+    .local pmc coro
+    $P1 = get_hll_global ['TAP';'Parser'], 'next'
+    coro = newclosure $P1
+  L6:
+    .local pmc result
     result = coro(parser)
-    if null result goto L4
+    if null result goto L7
     session.'result'(result)
     $I0 = isa result, ['TAP';'Parser';'Result';'Bailout']
-    unless $I0 goto L3
+    unless $I0 goto L6
     self.'_bailout'(result)
-  L4:
+  L7:
     self.'finish_parser'(parser, session)
     self.'_after_test'(aggregate, $S0, parser)
-    goto L1
-  L2:
+    goto L2
+  L3:
 .end
 
 .sub '_after_test' :method
@@ -141,6 +163,14 @@
     .param string desc
     .local pmc parser, session
     parser = new ['TAP';'Parser']
+    $P0 = getattribute self, 'merge'
+    if null $P0 goto L1
+    parser.'merge'($P0)
+  L1:
+    $P0 = getattribute self, 'ignore_exit'
+    if null $P0 goto L2
+    parser.'ignore_exit'($P0)
+  L2:
     self.'_open_spool'(parser, desc)
     self.'_make_callback'('made_parser', parser)
     $P0 = getattribute self, 'formatter'
@@ -162,9 +192,10 @@
     $P0 = new 'Env'
     $I0 = exists $P0['PARROT_TEST_HARNESS_DUMP_TAP']
     unless $I0 goto L1
-    $S0 = $P0['PARROT_TEST_HARNESS_DUMP_TAP']
     .local string spool
-    spool = $S0 . test
+    spool = $P0['PARROT_TEST_HARNESS_DUMP_TAP']
+    spool .= '/'
+    spool .= test
     $S0 = dirname(spool)
     mkpath($S0)
     $P0 = new 'FileHandle'
@@ -223,22 +254,111 @@
   L1:
     .local string archive, dir
     archive = $P0
-    dir = './reports/'
+    dir = tempdir()
     .local pmc env
     env = new 'Env'
     env['PARROT_TEST_HARNESS_DUMP_TAP'] = dir
     .local pmc aggregate
     $P0 = get_hll_global ['TAP';'Harness'], 'runtests'
-    aggregate = $P0(files)
+    aggregate = $P0(self, files)
     .local string current_dir, cmd
     current_dir = cwd()
     chdir(dir)
-    cmd = "tar cvf " . archive
+    $S0 = self.'_mk_meta'(aggregate)
+    spew('meta.yml', $S0)
+    $P0 = getattribute self, 'archive_extra_files'
+    if null $P0 goto L2
+    $P1 = iter $P0
+  L3:
+    unless $P1 goto L2
+    $S2 = shift $P1
+    $S1 = current_dir . '/'
+    $S1 .= $S2
+    cp($S1, $S2)
+    goto L3
+  L2:
+    $S0 = current_dir
+    $I0 = index $S0, ':'
+    unless $I0 == 1 goto L4
+    $S0 = substr $S0, 2         # remove Windows drive
+  L4:
+    cmd = "tar -cf " . $S0
+    cmd .= "/"
+    $I0 = length archive
+    $I0 -= 3
+    $S0 = substr archive, 0, $I0
+    cmd .= $S0
+    cmd .= " *"
     system(cmd)
     chdir(current_dir)
+    cmd = "gzip --best " . $S0
+    system(cmd)
+    rmtree(dir)
     .return (aggregate)
 .end
 
+.sub '_mk_meta' :method
+    .param pmc aggregate
+    $S0 = "---"
+    $S0 .= "\nfile_attributes:"
+    $P0 = aggregate.'descriptions'()
+    $P1 = iter $P0
+  L1:
+    unless $P1 goto L2
+    $S1 = shift $P1
+    .local pmc parser
+    parser = aggregate.'parsers'($S1)
+    $S0 .= "\n  -"
+    $S0 .= "\n    description: "
+    $S0 .= $S1
+    $N0 = parser.'start_time'()
+    $S0 .= "\n    start_time: "
+    $S1 = $N0
+    $S0 .= $S1
+    $N0 = parser.'end_time'()
+    $S0 .= "\n    stop_time: "
+    $S1 = $N0
+    $S0 .= $S1
+    goto L1
+  L2:
+    $S0 .= "\nfile_order:"
+    $P1 = iter $P0
+  L3:
+    unless $P1 goto L4
+    $S1 = shift $P1
+    $S0 .= "\n  - "
+    $S0 .= $S1
+    goto L3
+  L4:
+    $I0 = aggregate.'start_time'()
+    $S0 .= "\nstart_time: "
+    $S1 = $I0
+    $S0 .= $S1
+    $I0 = aggregate.'end_time'()
+    $S0 .= "\nstop_time: "
+    $S1 = $I0
+    $S0 .= $S1
+    $P0 = getattribute self, 'archive_extra_props'
+    if null $P0 goto L5
+    $S0 .= "\nextra_properties:"
+    $P1 = iter $P0
+  L6:
+    unless $P1 goto L5
+    .local string key, value
+    key = shift $P1
+    value = $P0[key]
+    if value == '' goto L6
+    $S0 .= "\n  "
+    $S0 .= key
+    $S0 .= ": "
+    $S0 .= value
+    goto L6
+  L5:
+    $S0 .= "\n"
+    .return ($S0)
+.end
+
+
 =head1 AUTHOR
 
 Francois Perrad

Modified: branches/immutable_strings_part1/runtime/parrot/library/TAP/Parser.pir
==============================================================================
--- branches/immutable_strings_part1/runtime/parrot/library/TAP/Parser.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/runtime/parrot/library/TAP/Parser.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -124,7 +124,9 @@
     if $S1 == '' goto L2
     $S0 .= ' # '
     $S0 .= $S1
+    $S0 .= ' '
     $P0 = getattribute self, 'explanation'
+    if null $P0 goto L2
     $S1 = $P0
     $S0 .= $S1
   L2:
@@ -160,6 +162,15 @@
     .return ($I0)
 .end
 
+.sub 'is_unplanned' :method
+    $I0 = 0
+    $P0 = getattribute self, 'unplanned'
+    if null $P0 goto L1
+    $I0 = $P0
+  L1:
+    .return ($I0)
+.end
+
 
 .namespace ['TAP';'Parser';'Result';'Unknown']
 
@@ -232,8 +243,10 @@
     $I0 = is_cclass .CCLASS_NUMERIC, line, pos
     unless $I0 goto L5
     $I2 = find_not_cclass .CCLASS_NUMERIC, line, pos, lastpos
+    if $I2 == lastpos goto L_5
     $I0 = is_cclass .CCLASS_WHITESPACE, line, $I2
     unless $I0 goto L5
+  L_5:
     $I1 = $I2 - pos
     test_num = substr line, pos, $I1
     if $I2 == lastpos goto L4
@@ -483,9 +496,10 @@
 .namespace ['TAP';'Parser']
 
 .sub '' :init :load :anon
+    load_bytecode 'osutils.pbc'
+
     $P0 = subclass ['TAP';'Base'], ['TAP';'Parser']
     $P0.'add_attribute'('stream')
-    $P0.'add_attribute'('results')
     $P0.'add_attribute'('skipped')
     $P0.'add_attribute'('todo')
     $P0.'add_attribute'('passed')
@@ -502,6 +516,7 @@
     $P0.'add_attribute'('version')
     $P0.'add_attribute'('exit')
     $P0.'add_attribute'('ignore_exit')
+    $P0.'add_attribute'('merge')
     $P0.'add_attribute'('spool')
     $P0.'add_attribute'('start_time')
     $P0.'add_attribute'('end_time')
@@ -521,66 +536,66 @@
 .end
 
 .sub 'init' :vtable :init
-    $P0 = new 'ResizablePMCArray'
-    setattribute self, 'results', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableIntegerArray'
     setattribute self, 'skipped', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableIntegerArray'
     setattribute self, 'todo', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableIntegerArray'
     setattribute self, 'passed', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableIntegerArray'
     setattribute self, 'failed', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableIntegerArray'
     setattribute self, 'actual_failed', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableIntegerArray'
     setattribute self, 'actual_passed', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableIntegerArray'
     setattribute self, 'todo_passed', $P0
-    $P0 = new 'ResizablePMCArray'
+    $P0 = new 'ResizableStringArray'
     setattribute self, 'parse_errors', $P0
     $P0 = box 0
     setattribute self, 'tests_run', $P0
-    $P0 = box 0
-    setattribute self, 'tests_planned', $P0
     $P0 = get_global ['TAP';'Parser'], 'LEGAL_CALLBACK'
     setattribute self, 'ok_callbacks', $P0
 .end
 
+.sub 'start_time' :method
+    $P0 = getattribute self, 'start_time'
+    .return ($P0)
+.end
+
+.sub 'end_time' :method
+    $P0 = getattribute self, 'end_time'
+    .return ($P0)
+.end
+
 .sub 'skipped' :method :nsentry
     $P0 = getattribute self, 'skipped'
-    $I0 = elements $P0
-    .return ($I0)
+    .return ($P0)
 .end
 
 .sub 'todo' :method :nsentry
     $P0 = getattribute self, 'todo'
-    $I0 = elements $P0
-    .return ($I0)
+    .return ($P0)
 .end
 
 .sub 'passed' :method :nsentry
     $P0 = getattribute self, 'passed'
-    $I0 = elements $P0
-    .return ($I0)
+    .return ($P0)
 .end
 
 .sub 'failed' :method :nsentry
     $P0 = getattribute self, 'failed'
-    $I0 = elements $P0
-    .return ($I0)
+    .return ($P0)
 .end
 
 .sub 'todo_passed' :method :nsentry
     $P0 = getattribute self, 'todo_passed'
-    $I0 = elements $P0
-    .return ($I0)
+    .return ($P0)
 .end
 
 .sub 'parse_errors' :method :nsentry
     $P0 = getattribute self, 'parse_errors'
-    $I0 = elements $P0
-    .return ($I0)
+    .return ($P0)
 .end
 
 .sub 'tests_run' :method :nsentry
@@ -593,10 +608,17 @@
     .return ($P0)
 .end
 
+.sub 'merge' :method :nsentry
+    .param int val
+    $P0 = new 'Boolean'
+    set $P0, val
+    setattribute self, 'merge', $P0
+.end
+
 .sub 'ignore_exit' :method :nsentry
-    .param int ign
+    .param int val
     $P0 = new 'Boolean'
-    set $P0, ign
+    set $P0, val
     setattribute self, 'ignore_exit', $P0
 .end
 
@@ -615,9 +637,11 @@
 .end
 
 .sub 'has_problems' :method
-    $I0 = self.'failed'()
+    $P0 = getattribute self, 'failed'
+    $I0 = elements $P0
     if $I0 goto L1
-    $I0 = self.'parse_errors'()
+    $P0 = getattribute self, 'parse_errors'
+    $I0 = elements $P0
     if $I0 goto L1
     $P0 = getattribute self, 'ignore_exit'
     if null $P0 goto L2
@@ -675,6 +699,14 @@
     push_eh _handler
     $P0.'open'(filename, 'r')
     pop_eh
+    $S0 = readline $P0
+    $I0 = index $S0, '#!'
+    unless $I0 == 0 goto L1
+    close $P0
+    $S0 = _get_exec($S0)
+    .tailcall self.'exec'($S0, filename)
+  L1:
+    seek $P0, 0, 0
     setattribute self, 'stream', $P0
     .return ()
   _handler:
@@ -690,10 +722,32 @@
     rethrow ex
 .end
 
+.include 'iglobals.pasm'
+
+.sub '_get_exec' :anon
+    .param string line
+    $S0 = chomp(line)
+    $I0 = length $S0
+    $I0 = find_not_cclass .CCLASS_WHITESPACE, $S0, 2, $I0
+    $S0 = substr $S0, $I0
+    .local string slash
+    $P0 = getinterp
+    $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+    slash = $P1['slash']
+    $P0 = split "/", $S0
+    $S0 = join slash, $P0
+    .return ($S0)
+.end
+
 .sub 'exec' :method
     .param pmc cmds :slurpy
     .local string cmd
     cmd = join ' ', cmds
+    $P0 = getattribute self, 'merge'
+    if null $P0 goto L1
+    unless $P0 goto L1
+    cmd .= ' 2>&1'
+  L1:
     $P0 = new 'FileHandle'
     push_eh _handler
     $P0.'open'(cmd, 'pr')
@@ -713,45 +767,34 @@
     rethrow ex
 .end
 
-.sub 'chomp' :anon
-    .param string str
-    $I0 = index str, "\r"
-    if $I0 < 0 goto L1
-    str = substr str, 0, $I0
-  L1:
-    $I1 = index str, "\n"
-    if $I1 < 0 goto L2
-    str = substr str, 0, $I1
-  L2:
-    .return (str)
-.end
-
 .sub 'run' :method
-    .const 'Sub' next = 'next'
-    $P0 = clone next
+    .const 'Sub' $P0 = 'next'
+    $P0 = newclosure $P0
   L1:
     $P1 = $P0(self)
     unless null $P1 goto L1
 .end
 
-.sub 'next' :method :nsentry
+.sub 'next' :method :nsentry :lex
     .local pmc stream, spool
     stream = getattribute self, 'stream'
     if null stream goto L1
     $N0 = time
     $P0 = box $N0
     setattribute self, 'start_time', $P0
-    .local pmc grammar
+    .local pmc grammar, st
     grammar = new ['TAP';'Parser';'Grammar']
-    .local string st
-    st = 'INIT'
+    .const 'Sub' $P0 = 'next_state'
+    capture_lex $P0
+    st = box 'INIT'
+    .lex 'state', st
   L2:
     $S0 = readline stream
     if $S0 == '' goto L3
     $S0 = chomp($S0)
     .local pmc token
     token = grammar.'tokenize'($S0)
-    st = self.'next_state'(token, st)
+    self.'next_state'(token)
     $S0 = token.'type'()
     $P0 = self.'_callback_for'($S0)
     if null $P0 goto L4
@@ -765,6 +808,7 @@
     if null spool goto L6
     $S0 = token
     print spool, $S0
+    print spool, "\n"
   L6:
     .yield (token)
     goto L2
@@ -785,17 +829,18 @@
     die "no stream"
 .end
 
-.sub 'next_state' :method
+.sub 'next_state' :method :lex :outer('next')
     .param pmc token
-    .param string st
-    .local pmc STATES
+    .local pmc STATES, st
     STATES = get_global ['TAP';'Parser'], 'STATES'
+    st = find_lex 'state'
     .local string type
     type = token.'type'()
   REDO:
     $I0 = STATES[st]
     if $I0 goto L1
-    $S0 = "Illegal state: " . st
+    $S0 = st
+    $S0 = "Illegal state: " . $S0
     die $S0
   L1:
     $P0 = STATES[st]
@@ -810,20 +855,19 @@
     $I0 = exists $P1['continue']
     unless $I0 goto L4
     $S0 = $P1['continue']
-    st = $S0
+    set st, $S0
     goto REDO
   L4:
     $I0 = exists $P1['goto']
     unless $I0 goto L5
     $S0 = $P1['goto']
-    st = $S0
+    set st, $S0
     goto L5
   L2:
     printerr "Unhandled token type: "
     printerr type
     printerr "\n"
   L5:
-    .return (st)
 .end
 
 .sub '_make_state_table'
@@ -901,7 +945,7 @@
 
     st = states['UNPLANNED']
     $P0 = st['test']
-    $P0['goto'] = 'PLANNED_AFTER_TEST'
+    $P0['goto'] = 'UNPLANNED_AFTER_TEST'
     $P0 = st['plan']
     $P0['goto'] = 'GOT_PLAN'
 
@@ -919,6 +963,7 @@
 .end
 
 .sub '_no_action' :method :nsentry
+    .param pmc result
     # nothing
 .end
 
@@ -967,7 +1012,8 @@
     .local int tests_planned
     tests_planned = $P0
     unless tests_run > tests_planned goto L11
-    $P0 = box 1
+    $P0 = new 'Boolean'
+    set $P0, 1
     setattribute result, 'unplanned', $P0
   L11:
 
@@ -989,42 +1035,35 @@
     $I0 = result.'has_todo'()
     unless $I0 goto L31
     $P0 = getattribute self, 'todo'
-    $P1 = box number
-    push $P0, $P1
+    push $P0, number
   L31:
     $I0 = result.'todo_passed'()
     unless $I0 goto L32
     $P0 = getattribute self, 'todo_passed'
-    $P1 = box number
-    push $P0, $P1
+    push $P0, number
   L32:
     $I0 = result.'has_skip'()
     unless $I0 goto L33
     $P0 = getattribute self, 'skipped'
-    $P1 = box number
-    push $P0, $P1
+    push $P0, number
   L33:
     $I0 = result.'is_ok'()
     unless $I0 goto L34
     $P0 = getattribute self, 'passed'
-    $P1 = box number
-    push $P0, $P1
+    push $P0, number
     goto L35
   L34:
     $P0 = getattribute self, 'failed'
-    $P1 = box number
-    push $P0, $P1
+    push $P0, number
   L35:
     $I0 = result.'is_actual_ok'()
     unless $I0 goto L36
     $P0 = getattribute self, 'actual_passed'
-    $P1 = box number
-    push $P0, $P1
+    push $P0, number
     goto L37
   L36:
     $P0 = getattribute self, 'actual_failed'
-    $P1 = box number
-    push $P0, $P1
+    push $P0, number
   L37:
 .end
 
@@ -1194,6 +1233,13 @@
   L3:
 .end
 
+.sub 'parsers' :method
+    .param string desc
+    $P0 = getattribute self, 'parser_for'
+    $P1 = $P0[desc]
+    .return ($P1)
+.end
+
 .sub 'total' :method
     $P0 = getattribute self, 'total'
     $I0 = $P0
@@ -1223,6 +1269,16 @@
     setattribute self, 'end_time', $P0
 .end
 
+.sub 'start_time' :method
+    $P0= getattribute self, 'start_time'
+    .return ($P0)
+.end
+
+.sub 'end_time' :method
+    $P0= getattribute self, 'end_time'
+    .return ($P0)
+.end
+
 .sub 'elapsed' :method
     $P0 = getattribute self, 'end_time'
     if null $P0 goto L1

Modified: branches/immutable_strings_part1/runtime/parrot/library/Test/Builder/Test.pir
==============================================================================
--- branches/immutable_strings_part1/runtime/parrot/library/Test/Builder/Test.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/runtime/parrot/library/Test/Builder/Test.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -323,30 +323,32 @@
 
 .sub report :method
     .local pmc    passed
-    .local pmc    description
+    .local pmc    reason
     .local pmc    number
     .local string report
-    .local string number_string
-    .local string desc_string
 
     passed        = self.'passed'()
     number        = self.'number'()
-    description   = self.'description'()
     report        = ''
-    number_string = number
-    desc_string   = description
 
     if passed goto PASSED
     report      = 'not '
 
   PASSED:
     concat report, 'ok '
-    concat report, number_string
-    concat report, ' # TODO'
-
-    unless description goto REPORT
-    concat report, ' '
-    concat report, desc_string
+    $S0 = number
+    concat report, $S0
+    concat report, ' # TODO '
+
+    $S0 = self.'reason'()
+    concat report, $S0
+
+    if passed goto REPORT
+    # Build long explanation why
+    report .= "\n\tFailed (TODO) test '"
+    $S0     = self.'description'()
+    report .= $S0
+    report .= "'"
 
   REPORT:
     .return( report )

Modified: branches/immutable_strings_part1/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/immutable_strings_part1/runtime/parrot/library/distutils.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/runtime/parrot/library/distutils.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -96,14 +96,6 @@
 
 =over 4
 
-=item prove (in step 'test')
-
-core module Test-Harness
-
-=item prove --archive (in step 'smoke')
-
-module TAP-Harness-Archive
-
 =item pod2html
 
 core module Pod-Html
@@ -120,9 +112,11 @@
 
 =item glob (in step 'manifest' & 'sdist')
 
-PGE::Glob
+PGE/Glob.pbc
 
-Limitation: currently, OS.'readdir' is dummy with MSVC.
+=item tempdir (in step 'smoke')
+
+Math/Rand.pbc
 
 =back
 
@@ -132,7 +126,7 @@
 
 =item smoke
 
-curl
+tar, gzip, curl
 
 =item sdist_gztar
 
@@ -2054,72 +2048,13 @@
 
 =head3 Step test
 
-If t/harness exists, run : t/harness
-
-If parrot-tapir exists, run it with t/*.t
-
-Else run : prove t/*.t
-
-=cut
-
-.sub '_test' :anon
-    .param pmc kv :slurpy :named
-    run_step('build', kv :flat :named)
-    $I0 = file_exists('t/harness')
-    unless $I0 goto L1
-    .tailcall _test_harness(kv :flat :named)
-  L1:
-    $S0 = get_executable('parrot-tapir')
-    $I0 = file_exists($S0)
-    unless $I0 goto L2
-    .tailcall _test_tapir($S0, kv :flat :named)
-  L2:
-    .tailcall _test_prove(kv :flat :named)
-.end
-
 =over 4
 
-=item harness_exec
-
-the default value is with perl
-
-=item harness_options
-
-the default value is empty
-
-=item harness_files
-
-the default value is "t/*.t"
+=item prove_exec / test_exec
 
-=cut
+option --exec of prove / tapir
 
-.sub '_test_harness' :anon
-    .param pmc kv :slurpy :named
-    .local string cmd
-    $I0 = exists kv['harness_exec']
-    unless $I0 goto L1
-    cmd = kv['harness_exec']
-    goto L2
-  L1:
-    cmd = "perl -I"
-    $S0 = get_libdir()
-    cmd .= $S0
-    cmd .= "/tools/lib"
-  L2:
-    cmd .= " t/harness "
-    $S0 = get_value('harness_options', '' :named('default'), kv :flat :named)
-    cmd .= $S0
-    cmd .= " "
-    $S0 = get_value('harness_files', "t/*.t" :named('default'), kv :flat :named)
-    cmd .= $S0
-    system(cmd, 1 :named('verbose'))
-.end
-
-=item prove_exec
-
-option --exec of prove
-
-=item prove_files
+=item prove_files / test_files
 
 the default value is "t/*.t"
 
@@ -2127,113 +2062,78 @@
 
 =cut
 
-.sub '_test_prove' :anon
+.sub '_test' :anon
     .param pmc kv :slurpy :named
-    .local string cmd
-    cmd = "prove"
-    $I0 = exists kv['prove_exec']
-    unless $I0 goto L1
-    $S0 = get_prove_version()
-    $S0 = substr $S0, 0, 1
-    unless $S0 == "3" goto L3
-    cmd .= " --exec="
-    goto L4
-  L3:
-    cmd .= " --perl="
-  L4:
-    $S0 = kv['prove_exec']
-    $I0 = index $S0, ' '
-    if $I0 < 0 goto L2
-    cmd .= "\""
-  L2:
-    cmd .= $S0
-    if $I0 < 0 goto L1
-    cmd .= "\""
-  L1:
-    cmd .= " "
-    $S0 = get_value('prove_files', "t/*.t" :named('default'), kv :flat :named)
-    cmd .= $S0
-    system(cmd, 1 :named('verbose'))
-.end
-
-.sub 'get_prove_version' :anon
-    $P0 = open 'prove --version', 'rp'
-    $S0 = $P0.'readline'()
-    $P0.'close'()
-    $I1 = index $S0, "Test::Harness v"
-    $I1 += 15
-    $I2 = index $S0, " ", $I1
-    $I3 = $I2 - $I1
-    $S0 = substr $S0, $I1, $I3
-    .return ($S0)
-.end
+    run_step('build', kv :flat :named)
 
-.sub '_test_tapir' :anon
-    .param string tapir
-    .param pmc kv :slurpy :named
-    .local string cmd
-    cmd = tapir
+    load_bytecode 'TAP/Harness.pbc'
+    .local pmc opts, files, harness, aggregate
+    opts = new 'Hash'
     $I0 = exists kv['prove_exec']
     unless $I0 goto L1
-    cmd .= " --exec="
     $S0 = kv['prove_exec']
-    $I0 = index $S0, ' '
-    if $I0 < 0 goto L2
-    cmd .= "\""
-  L2:
-    cmd .= $S0
-    if $I0 < 0 goto L1
-    cmd .= "\""
+    opts['exec'] = $S0
   L1:
-    cmd .= " "
-    $S0 = get_value('prove_files', "t/*.t" :named('default'), kv :flat :named)
-    cmd .= $S0
-    system(cmd, 1 :named('verbose'))
+    $I0 = exists kv['test_exec']
+    unless $I0 goto L2
+    $S0 = kv['test_exec']
+    opts['exec'] = $S0
+  L2:
+    $S0 = "t/*.t"
+    $I0 = exists kv['prove_files']
+    unless $I0 goto L3
+    $S0 = kv['prove_files']
+  L3:
+    $I0 = exists kv['test_files']
+    unless $I0 goto L4
+    $S0 = kv['test_files']
+  L4:
+    $P0 = glob($S0)
+    files = sort_strings($P0)
+    harness = new ['TAP';'Harness']
+    harness.'process_args'(opts)
+    aggregate = harness.'runtests'(files)
+    $I0 = aggregate.'has_errors'()
+    unless $I0 goto L5
+    die "test fails"
+  L5:
 .end
 
-=head3 Step smoke
-
-Unless t/harness exists, run : prove --archive t/*.t
-
-=cut
-
-.sub '_smoke' :anon
-    .param pmc kv :slurpy :named
-    run_step('build', kv :flat :named)
-    $I0 = file_exists('t/harness')
-    if $I0 goto L1
-    $S0 = get_prove_version()
-    $S0 = substr $S0, 0, 1
-    unless $S0 == "3" goto L2
-    .tailcall _smoke_prove(kv :flat :named)
-  L2:
-    die "Require Test::Harness v3.x (option --archive)."
+.sub 'sort_strings'
+    .param pmc array
+    # currently, FixedStringArray hasn't the method sort.
+    # see TT #1356
+    $I0 = elements array
+    $P0 = new 'FixedPMCArray'
+    set $P0, $I0
+    $I0 = 0
+    $P1 = iter array
   L1:
-    .tailcall _smoke_harness(kv :flat :named)
+    unless $P1 goto L2
+    $S0 = shift $P1
+    $P0[$I0] = $S0
+    inc $I0
+    goto L1
+  L2:
+    $P0.'sort'()
+    .return ($P0)
 .end
 
-.sub '_clean_smoke' :anon
-    .param pmc kv :slurpy :named
-    $S0 = get_value('prove_archive', "report.tar.gz" :named('default'), kv :flat :named)
-    unlink($S0, 1 :named('verbose'))
-    $S0 = get_value('harness_archive', "report.tar.gz" :named('default'), kv :flat :named)
-    unlink($S0, 1 :named('verbose'))
-    unlink('meta.yml', 1 :named('verbose'))
-.end
+=head3 Step smoke
 
 =over 4
 
-=item prove_exec
+=item prove_exec / test_exec
 
 option --exec of prove
 
-=item prove_files
+=item prove_files / test_files
 
 the default value is "t/*.t"
 
-=item prove_archive
+=item prove_archive / smolder_archive
 
-option --archive of prove
+option --archive of prove / tapir
 
 the default value is report.tar.gz
 
@@ -2253,80 +2153,60 @@
 
 a hash
 
+=back
+
 =cut
 
-.sub '_smoke_prove' :anon
+.sub '_smoke' :anon
     .param pmc kv :slurpy :named
-    .local string cmd
-    cmd = "prove"
+    run_step('build', kv :flat :named)
+
+    load_bytecode 'TAP/Harness.pbc'
+    .local pmc opts, files, harness, aggregate
+    opts = new 'Hash'
     $I0 = exists kv['prove_exec']
     unless $I0 goto L1
-    cmd .= " --exec="
     $S0 = kv['prove_exec']
-    $I0 = index $S0, ' '
-    if $I0 < 0 goto L2
-    cmd .= "\""
-  L2:
-    cmd .= $S0
-    if $I0 < 0 goto L1
-    cmd .= "\""
+    opts['exec'] = $S0
   L1:
-    cmd .= " "
-    $S0 = get_value('prove_files', "t/*.t" :named('default'), kv :flat :named)
-    cmd .= $S0
-    cmd .= " --archive="
+    $I0 = exists kv['test_exec']
+    unless $I0 goto L2
+    $S0 = kv['test_exec']
+    opts['exec'] = $S0
+  L2:
+    $S0 = "t/*.t"
+    $I0 = exists kv['prove_files']
+    unless $I0 goto L3
+    $S0 = kv['prove_files']
+  L3:
+    $I0 = exists kv['test_files']
+    unless $I0 goto L4
+    $S0 = kv['test_files']
+  L4:
+    $P0 = glob($S0)
+    files = sort_strings($P0)
+    harness = new ['TAP';'Harness';'Archive']
+    harness.'process_args'(opts)
     .local string archive
+    archive = "report.tar.gz"
+    $I0 = exists kv['prove_archive']
+    unless $I0 goto L5
+    archive = kv['prove_archive']
+  L5:
+    $I0 = exists kv['smolder_archive']
+    unless $I0 goto L6
+    archive = kv['smolder_archive']
+  L6:
     archive = get_value('prove_archive', "report.tar.gz" :named('default'), kv :flat :named)
-    cmd .= archive
-    system(cmd, 1 :named('verbose'), 1 :named('ignore_error'))
-
-    add_extra_properties(archive, kv :flat :named)
-    smolder_post(archive, kv :flat :named)
-.end
-
-.sub 'add_extra_properties' :anon
-    .param string archive
-    .param pmc kv :slurpy :named
-    .local string cmd
+    harness.'archive'(archive)
     $I0 = exists kv['smolder_extra_properties']
-    unless $I0 goto L1
-    system('perl -MExtUtils::Command -e rm_rf tmp')
-    cmd = "mkdir tmp && cd tmp && tar xzf ../"
-    cmd .= archive
-    system(cmd, 1 :named('verbose'))
-
+    unless $I0 goto L7
     $P0 = kv['smolder_extra_properties']
-    $S0 = mk_extra_properties($P0)
-    say "append extra properties"
-    append('tmp/meta.yml', $S0)
-
-    unlink(archive)
-    cmd = "cd tmp && tar czf ../"
-    cmd .= archive
-    cmd .= " *"
-    system(cmd, 1 :named('verbose'))
-    system('perl -MExtUtils::Command -e rm_rf tmp')
-  L1:
-.end
+    harness.'extra_props'($P0)
+  L7:
+    aggregate = harness.'runtests'(files)
 
-.sub 'mk_extra_properties' :anon
-    .param pmc hash
-    $S0 = "extra_properties:\n"
-    $P0 = iter hash
-  L1:
-    unless $P0 goto L2
-    .local string key, value
-    key = shift $P0
-    value = hash[key]
-    if value == '' goto L1
-    $S0 .= "  "
-    $S0 .= key
-    $S0 .= ": "
-    $S0 .= value
-    $S0 .= "\n"
-    goto L1
-  L2:
-    .return ($S0)
+    smolder_post(archive, kv :flat :named)
 .end
 
 .sub 'smolder_post' :anon
@@ -2369,53 +2249,12 @@
   L1:
 .end
 
-=item harness_exec
-
-the default value is with perl
-
-=item harness_options
-
-the default value is empty
-
-=item harness_archive
-
-the default value is report.tar.gz
-
-=item harness_files
-
-the default value is "t/*.t"
-
-=back
-
-=cut
-
-.sub '_smoke_harness' :anon
+.sub '_clean_smoke' :anon
     .param pmc kv :slurpy :named
-    .local string cmd
-    $I0 = exists kv['harness_exec']
-    unless $I0 goto L1
-    cmd = kv['harness_exec']
-    goto L2
-  L1:
-    cmd = "perl -I"
-    $S0 = get_libdir()
-    cmd .= $S0
-    cmd .= "/tools/lib"
-  L2:
-    cmd .= " t/harness "
-    $S0 = get_value('harness_options', '' :named('default'), kv :flat :named)
-    cmd .= $S0
-    cmd .= " --archive="
-    .local string archive
-    archive = get_value('harness_archive', "report.tar.gz" :named('default'), kv :flat :named)
-    cmd .= archive
-    cmd .= " "
-    $S0 = get_value('harness_files', "t/*.t" :named('default'), kv :flat :named)
-    cmd .= $S0
-    system(cmd, 1 :named('verbose'), 1 :named('ignore_error'))
-
-    add_extra_properties(archive, kv :flat :named)
-    smolder_post(archive, kv :flat :named)
+    $S0 = get_value('prove_archive', "report.tar.gz" :named('default'), kv :flat :named)
+    unlink($S0, 1 :named('verbose'))
+    $S0 = get_value('smolder_archive', "report.tar.gz" :named('default'), kv :flat :named)
+    unlink($S0, 1 :named('verbose'))
 .end
 
 =head3 Step install
@@ -2922,7 +2761,7 @@
         "requires"     : {
             "fetch"    : ["%s"],
             "build"    : [],
-            "test"     : ["perl5"],
+            "test"     : [],
             "install"  : [],
             "runtime"  : []
         }

Modified: branches/immutable_strings_part1/runtime/parrot/library/osutils.pir
==============================================================================
--- branches/immutable_strings_part1/runtime/parrot/library/osutils.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/runtime/parrot/library/osutils.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -119,13 +119,18 @@
     inc $I1
     $I0 = stat $S0, .STAT_EXISTS
     if $I0 goto L1
+    $I0 = length $S0
+    if $I0 != 2 goto L3
+    $I0 = index $S0, ':'
+    if $I0 == 1 goto L1
+  L3:
     mkdir($S0, verbose :named('verbose'))
     goto L1
   L2:
     $I0 = stat pathname, .STAT_EXISTS
-    if $I0 goto L3
+    if $I0 goto L4
     mkdir(pathname, verbose :named('verbose'))
-  L3:
+  L4:
 .end
 
 =item mkdir
@@ -657,6 +662,108 @@
     rethrow e
 .end
 
+=item tempdir
+
+=cut
+
+.sub 'tempdir'
+    .param string suffix        :named('SUFFIX') :optional
+    .param int has_suffix       :opt_flag
+    $S0 = tmpdir()
+    $S0 .= '/TEMPXXX'
+    unless has_suffix goto L1
+    $S0 .= suffix
+  L1:
+    .tailcall _gettemp($S0)
+.end
+
+.sub '_gettemp' :anon
+    .param string template
+    $P0 = split "/", template
+    $S0 = pop $P0
+    .const string TEMPCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+    $P1 = split '', TEMPCHARS
+    $I1 = elements $P1
+    load_bytecode 'Math/Rand.pbc'
+    .local pmc rand
+    rand = get_global [ 'Math'; 'Rand' ], 'rand'
+    .local pmc srand
+    srand = get_global [ 'Math'; 'Rand' ], 'srand'
+    $I0 = time
+    srand($I0)
+  REDO:
+    $S1 = ''
+    $P2 = split '', $S0
+  L1:
+    unless $P2 goto L2
+    $S2 = shift $P2
+    unless $S2 == 'X' goto L3
+    $I0 = rand()
+    $I0 = $I0 % $I1
+    $S2 = $P1[$I0]
+  L3:
+    $S1 .= $S2
+    goto L1
+  L2:
+    push $P0, $S1
+    $S0 = join "/", $P0
+    $I0 = stat $S0, .STAT_EXISTS
+    if $I0 goto REDO
+    .return ($S0)
+.end
+
+=item tmpdir
+
+=cut
+
+.sub 'tmpdir'
+    .local pmc env, dirlist
+    env = new 'Env'
+    dirlist = new 'ResizableStringArray'
+    $P0 = getinterp
+    $P0 = $P0[.IGLOBALS_CONFIG_HASH]
+    $I0 = $P0['win32']
+    unless $I0 goto L1
+    $I0 = exists env['TMPDIR']
+    unless $I0 goto L2
+    $S0 = env['TMPDIR']
+    push dirlist, $S0
+  L2:
+    $I0 = exists env['TEMP']
+    unless $I0 goto L3
+    $S0 = env['TEMP']
+    push dirlist, $S0
+  L3:
+    $I0 = exists env['TMP']
+    unless $I0 goto L4
+    $S0 = env['TMP']
+    push dirlist, $S0
+  L4:
+    push dirlist, 'c:/system/temp'
+    push dirlist, 'c:/temp'
+    push dirlist, '/tmp'
+    push dirlist, '/'
+    goto L5
+  L1:
+    $I0 = exists env['TMPDIR']
+    unless $I0 goto L6
+    $S0 = env['TMPDIR']
+    push dirlist, $S0
+  L6:
+    push dirlist, '/tmp'
+  L5:
+    unless dirlist goto L7
+    $S0 = shift dirlist
+    $I0 = stat $S0, .STAT_EXISTS
+    unless $I0 goto L5
+    $I0 = stat $S0, .STAT_ISDIR
+    unless $I0 goto L5
+    $P0 = split "\\", $S0
+    $S0 = join "/", $P0
+    .return ($S0)
+  L7:
+.end
+
 =back
 
 =head1 AUTHOR

Modified: branches/immutable_strings_part1/src/debug.c
==============================================================================
--- branches/immutable_strings_part1/src/debug.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/debug.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -2199,7 +2199,14 @@
             *(fill++) = '"';
             break;
           default:
-            *(fill++) = *string;
+            /* Hide non-ascii chars that may come from utf8 or latin-1
+             * strings in constant strings.
+             * Workaround for TT #1557
+             */
+            if ((unsigned char)*string > 127)
+                *(fill++) = '?';
+            else
+                *(fill++) = *string;
             break;
         }
     }

Deleted: branches/immutable_strings_part1/src/dynpmc/gdbmhash.pmc
==============================================================================
--- branches/immutable_strings_part1/src/dynpmc/gdbmhash.pmc	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,442 +0,0 @@
-/* gdbmhash.pmc
- *  Copyright (C) 2005-2010, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *     These are the vtable functions for the GDBMHash PMC
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *     Please remove unneeded entries.
- *  References:
-
-=head1 NAME
-
-src/dynpmc/gdbmhash.pmc - GDBM PMC
-
-=head1 DESCRIPTION
-
-This is an interface to the GNU dbm library.
-
-=head1 keys
-
-On inserted and fetch, keys are converted to STRINGs.
-
-=head2 store
-
-PMC insert values are converted to STRINGs.
-
-=head2 fetch
-
-C<get_integer_keyed()> and C<get_number_keyed()> probably don't make
-any sense, as integers usually can't be converted.
-
-When a PMC is requested, a String PMC is returned.
-
-
-=head2 Functions
-
-=over 4
-
-=cut
-
- */
-
-#include <gdbm.h>
-#include "parrot/extend.h"
-
-typedef struct GDBM_FH {
-    GDBM_FILE f;
-} GDBM_FH;
-
-#define PMC_dbfh(x) ((Parrot_GDBMHash_attributes *)PMC_data(x))->db_handle->f
-
-
-/*
-
-=item C<static STRING* make_hash_key(PARROT_INTERP, PMC *key)>
-
-Returns a Parrot string for C<*key>.
-
-=cut
-
-*/
-
-static STRING* make_hash_key(PARROT_INTERP, ARGIN(PMC * key))
-{
-    if (key)
-        return VTABLE_get_string(interp, key);
-
-    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
-        "Hash: Cannot use NULL key");
-}
-
-
-pmclass GDBMHash provides hash dynpmc lib gdbm auto_attrs {
-    ATTR struct GDBM_FH *db_handle;
-
-/*
-
-=item C<void class_init()>
-
-Class initialization. GDBMHash is a dynamic PMC, meaning that a dynamically
-loadable module is created. On Unix-like systems this is a shared library.
-When it is available, the shared library has linked in the library 'gdbm'.
-
-On WIN32 the relevant library seems to be called 'gdbm3'.
-So we do a bit of cheating here, and load it during class initialization.
-
-=cut
-
-*/
-
-    VTABLE void class_init() {
-#ifdef WIN32
-        /* TT #1252:  What if libgdbm.so cannot be loaded */
-        /* Parrot_load_lib(interp, slib, NULL); */
-        STRING *slib = CONST_STRING(interp, "gdbm3");
-#endif
-    }
-
-    VTABLE void init() {
-        Parrot_GDBMHash_attributes *attrs = PARROT_GDBMHASH(SELF);
-        attrs->db_handle = mem_gc_allocate_zeroed_typed(INTERP, GDBM_FH);
-        PObj_custom_destroy_SET(SELF);
-    }
-
-    VTABLE void destroy() {
-        Parrot_GDBMHash_attributes *attrs = PARROT_GDBMHASH(SELF);
-        mem_gc_free(INTERP, attrs->db_handle);
-        PMC_data(SELF) = NULL;
-    }
-
-    VTABLE void* get_pointer() {
-        return PMC_dbfh(SELF);
-    }
-
-    VTABLE void set_pointer(void* p) {
-        PMC_dbfh(SELF) = (GDBM_FILE)p;
-    }
-
-/*
-
-=item C<VOID set_string_native(STRING* value)>
-
-Open a or create a new dbm file.
-
-=cut
-
-*/
-
-    VTABLE void set_string_native(STRING* value) {
-        char * const c_db_name = Parrot_str_to_cstring(interp, value);
-        GDBM_FILE dbf          = gdbm_open(c_db_name, 0, GDBM_NEWDB, 0666, 0);
-
-        Parrot_str_free_cstring(c_db_name);
-
-        PMC_dbfh(SELF) = dbf;
-    }
-
-/*
-
-=item C<INTVAL get_integer()>
-
-Returns the number of pairs in the hash.
-A uninitialized GDBMHash returns 0.
-
-=cut
-
-*/
-
-    VTABLE INTVAL get_integer() {
-        GDBM_FILE dbf = PMC_dbfh(SELF);
-        if (! dbf) {
-            return 0;
-        }
-        else {
-            INTVAL cnt = 0;
-            datum key, nextkey;
-            for (key = gdbm_firstkey(dbf); key.dptr; key = nextkey) {
-                cnt++;
-                nextkey = gdbm_nextkey(dbf, key);
-                free(key.dptr);
-            }
-
-            return cnt;
-        }
-    }
-
-/*
-
-=item C<INTVAL get_bool()>
-
-Returns true if the hash size is not zero.
-
-=cut
-
-*/
-
-    VTABLE INTVAL get_bool() {
-        GDBM_FILE dbf = PMC_dbfh(SELF);
-        if (! dbf) {
-            return 0;
-        }
-        else {
-            datum key = gdbm_firstkey(dbf);
-            if (key.dptr) {
-                return 1;
-            }
-            else {
-                return 0;
-            }
-        }
-    }
-
-/*
-
-=item C<void set_string_keyed(PMC *key, STRING *value)>
-
-=cut
-
-*/
-
-    VTABLE void set_string_keyed(PMC* key, STRING* value) {
-        STRING* keystr;
-        GDBM_FILE dbf = PMC_dbfh(SELF);
-        datum key_gdbm, val_gdbm;
-
-        if (!key) return;
-        if (!dbf) return;
-        keystr = make_hash_key(interp, key);
-
-        key_gdbm.dptr  = Parrot_str_to_cstring(interp, keystr);
-        key_gdbm.dsize = strlen(key_gdbm.dptr);
-        val_gdbm.dptr  = Parrot_str_to_cstring(interp, value);
-        val_gdbm.dsize = strlen(val_gdbm.dptr);
-
-        gdbm_store(dbf, key_gdbm, val_gdbm, GDBM_REPLACE);
-
-        Parrot_str_free_cstring(key_gdbm.dptr);
-        Parrot_str_free_cstring(val_gdbm.dptr);
-
-        return;
-    }
-
-/*
-
-=item C<STRING *get_string_keyed(PMC *key)>
-
-Returns the string value for the element at C<*key>.
-
-=cut
-
-*/
-
-    VTABLE STRING* get_string_keyed(PMC *key) {
-        STRING *keystr, *val;
-        GDBM_FILE dbf = PMC_dbfh(SELF);
-        datum key_gdbm, val_gdbm;
-
-        if (!key)
-            return string_from_literal(INTERP, "");
-
-        if (!dbf)
-            return string_from_literal(INTERP, "");
-
-        keystr         = make_hash_key(interp, key);
-
-        key_gdbm.dptr  = Parrot_str_to_cstring(interp, keystr);
-        key_gdbm.dsize = strlen(key_gdbm.dptr);
-        val_gdbm       = gdbm_fetch(dbf, key_gdbm);
-
-        val = Parrot_str_new(interp, val_gdbm.dptr, val_gdbm.dsize);
-        Parrot_str_free_cstring(key_gdbm.dptr);
-        free(val_gdbm.dptr);
-
-        return val;
-    }
-
-
-/*
-
-=item C<void set_pmc_keyed(PMC* key, PMC *value)>
-
-Convert C<value> to a string and set the string for the C<key>.
-
-=cut
-
-*/
-
-    VTABLE void set_pmc_keyed(PMC* key, PMC* value) {
-        STRING * const temp = VTABLE_get_string(interp, value);
-
-        SELF.set_string_keyed(key, temp);
-    }
-
-/*
-
-=item C<PMC *get_pmc_keyed(PMC *key)>
-
-Returns the PMC value for the element at C<*key>.
-
-=cut
-
-*/
-
-    VTABLE PMC* get_pmc_keyed(PMC* key) {
-        STRING * const ret_string = SELF.get_string_keyed(key);
-        PMC    * const ret_pmc    = Parrot_pmc_new(interp, enum_class_String);
-
-        VTABLE_set_string_native(interp, ret_pmc, ret_string);
-
-        return ret_pmc;
-    }
-
-/*
-
-=item C<void set_integer_keyed(PMC* key, INTVAL value)>
-
-Convert C<value> to a string and set the string for the C<key>.
-
-=cut
-
-*/
-
-    VTABLE void set_integer_keyed(PMC* key, INTVAL value) {
-        PMC * const temp = Parrot_pmc_new(interp, enum_class_String);
-
-        VTABLE_set_integer_native(interp, temp, value);
-        SELF.set_pmc_keyed(key, temp);
-    }
-
-
-/*
-
-=item C<void set_number_keyed(PMC* key, FLOATVAL value)>
-
-Convert C<value> to a string and set the string for the C<key>.
-
-=cut
-
-*/
-
-    VTABLE void set_number_keyed(PMC* key, FLOATVAL value) {
-        PMC * const temp = Parrot_pmc_new(interp, enum_class_String);
-
-        VTABLE_set_number_native(interp, temp, value);
-        SELF.set_pmc_keyed(key, temp);
-    }
-
-/*
-
-=item C<INTVAL exists_keyed(PMC *key)>
-
-Returns whether a key C<*key> exists in the hash.
-
-=cut
-
-*/
-
-    VTABLE INTVAL exists_keyed(PMC* key) {
-        STRING* keystr;
-        GDBM_FILE dbf = PMC_dbfh(SELF);
-        datum key_gdbm;
-        INTVAL ret;
-
-        if (!key) return 0;
-        if (!dbf) return 0;
-        keystr = make_hash_key(interp, key);
-
-        key_gdbm.dptr  = Parrot_str_to_cstring(interp, keystr);
-        key_gdbm.dsize = strlen(key_gdbm.dptr);
-
-        ret = gdbm_exists(dbf, key_gdbm);
-        Parrot_str_free_cstring(key_gdbm.dptr);
-
-        return ret;
-    }
-
-/*
-
-=item C<void delete_keyed(PMC *key)>
-
-Deletes the element associated with C<*key>.
-
-=cut
-
-*/
-
-    VTABLE void delete_keyed(PMC* key) {
-        STRING* keystr;
-        GDBM_FILE dbf = PMC_dbfh(SELF);
-        datum key_gdbm;
-
-        if (!key) return;
-        if (!dbf) return;
-        keystr = make_hash_key(interp, key);
-
-        key_gdbm.dptr  = Parrot_str_to_cstring(interp, keystr);
-        key_gdbm.dsize = strlen(key_gdbm.dptr);
-
-        if (gdbm_exists(dbf, key_gdbm)) {
-           gdbm_delete(dbf, key_gdbm);
-        }
-
-        Parrot_str_free_cstring(key_gdbm.dptr);
-
-        return;
-    }
-
-/*
-
-=back
-
-=head2 Specific Methods
-
-=over 4
-
-=item C<void open(STRING* value)>
-
-Open a or create a new dbm file.
-
-=cut
-
-*/
-
-    METHOD void open(STRING* value) {
-        VTABLE_set_string_native(interp, SELF, value);
-    }
-
-/*
-
-=item C<void close()>
-
-Close current dbm file.
-
-=cut
-
-*/
-
-    METHOD void close() {
-        gdbm_close(PMC_dbfh(SELF));
-    }
-}
-
-/*
-
-=back
-
-=head1 SEE ALSO
-
-F<docs/pdds/pdd08_keys.pod>, L<http://gdbm.gnu.org>
-
-=cut
-
-*/
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/immutable_strings_part1/src/embed.c
==============================================================================
--- branches/immutable_strings_part1/src/embed.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/embed.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -44,7 +44,7 @@
         __attribute__nonnull__(1);
 
 PARROT_CANNOT_RETURN_NULL
-static PMC* setup_argv(PARROT_INTERP, int argc, ARGIN(char **argv))
+static PMC* setup_argv(PARROT_INTERP, int argc, ARGIN(const char **argv))
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
 
@@ -618,7 +618,7 @@
 
 /*
 
-=item C<static PMC* setup_argv(PARROT_INTERP, int argc, char **argv)>
+=item C<static PMC* setup_argv(PARROT_INTERP, int argc, const char **argv)>
 
 Creates and returns C<ARGS> array PMC.
 
@@ -628,7 +628,7 @@
 
 PARROT_CANNOT_RETURN_NULL
 static PMC*
-setup_argv(PARROT_INTERP, int argc, ARGIN(char **argv))
+setup_argv(PARROT_INTERP, int argc, ARGIN(const char **argv))
 {
     ASSERT_ARGS(setup_argv)
     PMC   * const userargv = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
@@ -748,7 +748,7 @@
 
 /*
 
-=item C<void Parrot_runcode(PARROT_INTERP, int argc, char **argv)>
+=item C<void Parrot_runcode(PARROT_INTERP, int argc, const char **argv)>
 
 Sets up C<ARGV> and runs the ops.
 
@@ -758,7 +758,7 @@
 
 PARROT_EXPORT
 void
-Parrot_runcode(PARROT_INTERP, int argc, ARGIN(char **argv))
+Parrot_runcode(PARROT_INTERP, int argc, ARGIN(const char **argv))
 {
     PMC *userargv, *main_sub;
 

Modified: branches/immutable_strings_part1/src/gc/alloc_resources.c
==============================================================================
--- branches/immutable_strings_part1/src/gc/alloc_resources.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/gc/alloc_resources.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -587,6 +587,8 @@
 #if RESOURCE_DEBUG
         if (Buffer_buflen(old_buf) >= RESOURCE_DEBUG_SIZE)
             debug_print_buf(interp, old_buf);
+#else
+        UNUSED(interp);
 #endif
 
         /* we can't perform the math all the time, because

Modified: branches/immutable_strings_part1/src/main.c
==============================================================================
--- branches/immutable_strings_part1/src/main.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/main.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -46,7 +46,7 @@
 PARROT_CAN_RETURN_NULL
 static const char * parseflags(PARROT_INTERP,
     ARGMOD(int *argc),
-    ARGMOD(char **argv[]),
+    ARGMOD(const char **argv[]),
     ARGMOD(Parrot_Run_core_t *core),
     ARGMOD(Parrot_trace_flags *trace))
         __attribute__nonnull__(1)
@@ -59,7 +59,9 @@
         FUNC_MODIFIES(*core)
         FUNC_MODIFIES(*trace);
 
-static void parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+static void parseflags_minimal(PARROT_INTERP,
+    int argc,
+    ARGIN(const char *argv[]))
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
 
@@ -88,7 +90,7 @@
 
 /*
 
-=item C<int main(int argc, char * argv[])>
+=item C<int main(int argc, const char *argv[])>
 
 The entry point from the command line into Parrot.
 
@@ -97,7 +99,7 @@
 */
 
 int
-main(int argc, char * argv[])
+main(int argc, const char *argv[])
 {
     int         stacktop;
     const char *sourcefile;
@@ -358,7 +360,8 @@
 
 /*
 
-=item C<static void parseflags_minimal(PARROT_INTERP, int argc, char *argv[])>
+=item C<static void parseflags_minimal(PARROT_INTERP, int argc, const char
+*argv[])>
 
 Parse minimal subset of args required for initializing interpreter.
 
@@ -366,7 +369,7 @@
 
 */
 static void
-parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+parseflags_minimal(PARROT_INTERP, int argc, ARGIN(const char *argv[]))
 {
     ASSERT_ARGS(parseflags_minimal)
 
@@ -398,11 +401,11 @@
         }
         else if (!strncmp(arg, "--hash-seed", 11)) {
 
-            arg = strrchr(arg, '=')+1;
-            if (!arg) {
-                ++pos;
-                arg = argv[pos];
-            }
+            if ((arg = strrchr(arg, '=')))
+                arg++;
+            else
+                arg = argv[++pos];
+
             if (is_all_hex_digits(arg)) {
                 interp->hash_seed = strtoul(arg, NULL, 16);
             }
@@ -420,8 +423,8 @@
 
 /*
 
-=item C<static const char * parseflags(PARROT_INTERP, int *argc, char **argv[],
-Parrot_Run_core_t *core, Parrot_trace_flags *trace)>
+=item C<static const char * parseflags(PARROT_INTERP, int *argc, const char
+**argv[], Parrot_Run_core_t *core, Parrot_trace_flags *trace)>
 
 Parse Parrot's command line for options and set appropriate flags.
 
@@ -432,7 +435,7 @@
 PARROT_CAN_RETURN_NULL
 static const char *
 parseflags(PARROT_INTERP,
-        ARGMOD(int *argc), ARGMOD(char **argv[]),
+        ARGMOD(int *argc), ARGMOD(const char **argv[]),
         ARGMOD(Parrot_Run_core_t *core), ARGMOD(Parrot_trace_flags *trace))
 {
     ASSERT_ARGS(parseflags)

Modified: branches/immutable_strings_part1/src/parrot_debugger.c
==============================================================================
--- branches/immutable_strings_part1/src/parrot_debugger.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/parrot_debugger.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -147,11 +147,11 @@
 #include "parrot/runcore_api.h"
 
 static void PDB_printwelcome(void);
-static void PDB_run_code(PARROT_INTERP, int argc, char *argv[]);
+static void PDB_run_code(PARROT_INTERP, int argc, const char *argv[]);
 
 /*
 
-=item C<int main(int argc, char *argv[])>
+=item C<int main(int argc, const char *argv[])>
 
 Reads the PIR, PASM or PBC file from argv[1], loads it, and then calls
 Parrot_debug().
@@ -161,7 +161,7 @@
 */
 
 int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
 {
     int nextarg;
     Parrot_Interp     interp;
@@ -271,7 +271,7 @@
 
 /*
 
-=item C<static void PDB_run_code(PARROT_INTERP, int argc, char *argv[])>
+=item C<static void PDB_run_code(PARROT_INTERP, int argc, const char *argv[])>
 
 Run the code, catching exceptions if they are left unhandled.
 
@@ -280,7 +280,7 @@
 */
 
 static void
-PDB_run_code(PARROT_INTERP, int argc, char *argv[])
+PDB_run_code(PARROT_INTERP, int argc, const char *argv[])
 {
     new_runloop_jump_point(interp);
     if (setjmp(interp->current_runloop->resume)) {

Modified: branches/immutable_strings_part1/src/pbc_dump.c
==============================================================================
--- branches/immutable_strings_part1/src/pbc_dump.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/pbc_dump.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -78,6 +78,7 @@
     Parrot_io_printf(interp, "],\n");
 }
 
+
 /*
 
 =item C<static void fixup_dump(PARROT_INTERP, const PackFile_Segment *segp)>
@@ -96,6 +97,7 @@
     Parrot_io_printf(interp, "],\n");
 }
 
+
 /*
 
 =item C<static void disas_dump(PARROT_INTERP, const PackFile_Segment *self)>
@@ -109,28 +111,110 @@
 static void
 disas_dump(PARROT_INTERP, const PackFile_Segment *self)
 {
-    opcode_t *pc;
-    size_t i, n;
+    opcode_t *pc = self->data;
+
     Parrot_io_printf(interp, "%Ss => [ # %d ops at offs 0x%x\n",
             self->name, (int)self->size, (int)self->file_offset + 4);
-    pc = self->data;
+
     while (pc < self->data + self->size) {
+        /* n can't be const; the ADD_OP_VAR_PART macro increments it */
+        size_t n = (size_t)interp->op_info_table[*pc].op_count;
+        size_t i;
+
         /* trace_op_dump(interp, self->pf->src, pc); */
-        Parrot_io_printf(interp, " %04x:  ", (int) (pc - self->data));
-        n = (size_t)interp->op_info_table[*pc].op_count;
+        Parrot_io_printf(interp, " %04x:  ", (int)(pc - self->data));
+
         for (i = 0; i < 6; i++)
             if (i < n)
-                Parrot_io_printf(interp, "%08lx ", (unsigned long) pc[i]);
+                Parrot_io_printf(interp, "%08lx ", (unsigned long)pc[i]);
             else
                 Parrot_io_printf(interp, "         ");
+
         Parrot_io_printf(interp, "%s\n",
                 interp->op_info_table[*pc].full_name);
+
         ADD_OP_VAR_PART(interp, interp->code, pc, n);
         pc += n;
     }
+
     Parrot_io_printf(interp, "]\n");
 }
 
+
+/*
+
+=item C<static void nums_dump(PARROT_INTERP, const PackFile_Segment *self)>
+
+Disassembles and dumps op names and line numbers only.
+
+=cut
+
+*/
+
+static void
+nums_dump(PARROT_INTERP, const PackFile_Segment *self)
+{
+    STRING                 *debug_name = Parrot_str_concat(interp, self->name,
+            Parrot_str_new_constant(interp, "_DB"));
+    const PackFile_Segment *debug      = PackFile_find_segment(interp,
+                                            self->dir, debug_name, 1);
+
+    opcode_t               *pc         = self->data;
+    opcode_t               *debug_ops  = debug->data;
+    const op_info_t * const op_info    = interp->op_info_table;
+
+    while (pc < self->data + self->size) {
+        /* n can't be const; the ADD_OP_VAR_PART macro increments it */
+        size_t n = (size_t)op_info[*pc].op_count;
+
+        Parrot_io_printf(interp, " %04x:  %s\n",
+            *(debug_ops++), op_info[*pc].full_name);
+
+        ADD_OP_VAR_PART(interp, interp->code, pc, n);
+        pc += n;
+    }
+}
+
+
+/*
+
+=item C<static void null_dump(PARROT_INTERP, const PackFile_Segment *self)>
+
+Produces no output for the given segment type.
+
+=cut
+
+*/
+
+static void
+null_dump(SHIM_INTERP, const PackFile_Segment *self)
+{
+    UNUSED(self);
+}
+
+
+/*
+
+=item C<static void null_dir_dump(PARROT_INTERP, const PackFile_Segment *self)>
+
+Dumps all of the segments of the given PackFile_Directory, but produces no
+output for the directory itself.
+
+=cut
+
+*/
+
+static void
+null_dir_dump(PARROT_INTERP, const PackFile_Segment *self)
+{
+    const PackFile_Directory * const dir = (const PackFile_Directory *)self;
+    size_t i;
+
+    for (i = 0; i < dir->num_segments; i++)
+        self->pf->PackFuncs[dir->segments[i]->type].dump(interp, dir->segments[i]);
+}
+
+
 /*
 
 =item C<static void PackFile_header_dump(PARROT_INTERP, PackFile *pf)>
@@ -152,24 +236,30 @@
     Parrot_io_printf(interp, "\t(interpreter's byteorder       = %d)\n",
             PARROT_BIGENDIAN);
     Parrot_io_printf(interp, "\tfloattype = %d", pf->header->floattype);
-    Parrot_io_printf(interp, "\t(interpreter's NUMVAL_SIZE     = %d)\n", NUMVAL_SIZE);
-    Parrot_io_printf(interp, "\tparrot-version %d.%d.%d, bytecode-version %d.%d\n",
-                     pf->header->major, pf->header->minor, pf->header->patch,
-                     pf->header->bc_major, pf->header->bc_minor);
+    Parrot_io_printf(interp, "\t(interpreter's NUMVAL_SIZE     = %d)\n",
+            NUMVAL_SIZE);
+    Parrot_io_printf(interp, "\tparrot-version %d.%d.%d, "
+            "bytecode-version %d.%d\n",
+            pf->header->major, pf->header->minor, pf->header->patch,
+            pf->header->bc_major, pf->header->bc_minor);
     Parrot_io_printf(interp, "\tUUID: type = %d, size = %d",
-                     pf->header->uuid_type, pf->header->uuid_size);
+            pf->header->uuid_type, pf->header->uuid_size);
+
     if (pf->header->uuid_size)
         Parrot_io_printf(interp, ", '%s'\n", pf->header->uuid_data);
     else
         Parrot_io_printf(interp, "\n");
+
     Parrot_io_printf(interp, "\t%s endianize, %s opcode, %s numval transform\n",
             pf->need_endianize ? "**need**" : "no",
-            pf->need_wordsize ? "**need**" : "no",
-            pf->fetch_nv ? "**need**" : "no");
+            pf->need_wordsize  ? "**need**" : "no",
+            pf->fetch_nv       ? "**need**" : "no");
+
     Parrot_io_printf(interp, "\tdirformat = %d\n", pf->header->dir_format);
     Parrot_io_printf(interp, "]\n");
 }
 
+
 /*
 
 =item C<static void help(void)>
@@ -184,17 +274,21 @@
 {
     printf("pbc_dump - dump or convert parrot bytecode (PBC) files\n");
     printf("usage:\n");
-    printf("pbc_dump [-tdh] [--terse|--disassemble|--header-only] file.pbc\n");
+    printf("pbc_dump [-tdh] [--terse|--disassemble|--header-only|--line-nums]"
+           " file.pbc\n");
     printf("pbc_dump -o converted.pbc file.pbc\n\n");
     printf("\t-d ... disassemble bytecode segments\n");
     printf("\t-h ... dump header only\n");
     printf("\t-t ... terse output\n");
+    printf("\t-n ... show ops and line numbers only\n");
+
 #if TRACE_PACKFILE
     printf("\t-D<1-7> --debug debug output\n");
     printf("\t   1 general info\n");
     printf("\t   2 alignment\n");
     printf("\t   4 values\n");
 #endif
+
     printf("\t-o converted.pbc ... repacks a PBC file into "
            "the platform's native\n");
     printf("\t   binary format for better efficiency on reading "
@@ -202,17 +296,21 @@
     exit(EXIT_SUCCESS);
 }
 
+
 static struct longopt_opt_decl opt_options[] = {
     { 'h', 'h', OPTION_optional_FLAG, { "--header-only" } },
-    { '?', '?', OPTION_optional_FLAG, { "--help" } },
-    { 't', 't', OPTION_optional_FLAG, { "--terse" } },
+    { '?', '?', OPTION_optional_FLAG, { "--help"        } },
+    { 't', 't', OPTION_optional_FLAG, { "--terse"       } },
+    { 'n', 'n', OPTION_optional_FLAG, { "--line-nums"   } },
     { 'd', 'd', OPTION_optional_FLAG, { "--disassemble" } },
+    { 'o', 'o', OPTION_required_FLAG, { "--output"      } }
+
 #if TRACE_PACKFILE
-    { 'D', 'D', OPTION_required_FLAG, { "--debug" } },
+    { 'D', 'D', OPTION_required_FLAG, { "--debug"       } },
 #endif
-    { 'o', 'o', OPTION_required_FLAG, { "--output" } }
 };
 
+
 /*
 
 =item C<int main(int argc, const char **argv)>
@@ -226,25 +324,35 @@
 int
 main(int argc, const char **argv)
 {
-    PackFile *pf;
-    Interp *interp;
-    int terse = 0;
-    int disas = 0;
-    int convert = 0;
-    int options = PFOPT_UTILS;
-    const char *file = NULL;
+    PackFile   *pf;
+    Interp     *interp;
+
+    const char *file            = NULL;
+    int         terse           = 0;
+    int         disas           = 0;
+    int         convert         = 0;
+    int         nums_only       = 0;
+    int         options         = PFOPT_UTILS;
+
     struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
-    int status;
 
-    if (argc < 2) {
+    int         status;
+
+    if (argc < 2)
         help();
-    }
+
     interp = Parrot_new(NULL);
+
     /* init and set top of stack */
     Parrot_init_stacktop(interp, &status);
-    while ((status = longopt_get(interp,
-                    argc, argv, opt_options, &opt)) > 0) {
+
+    while ((status = longopt_get(interp, argc, argv, opt_options, &opt)) > 0) {
         switch (opt.opt_id) {
+#if TRACE_PACKFILE
+          case 'D':
+            options += atoi(opt.opt_arg) << 2;
+            break;
+#endif
           case 'h':
             options += PFOPT_HEADERONLY;
             break;
@@ -254,48 +362,49 @@
           case 'd':
             disas = 1;
             break;
-#if TRACE_PACKFILE
-          case 'D':
-            options += atoi(opt.opt_arg) << 2;
-            break;
-#endif
           case 'o':
-            file = opt.opt_arg;
+            file    = opt.opt_arg;
             convert = 1;
             break;
+          case 'n':
+            nums_only = 1;
+            break;
           case '?':
           default:
             help();
             break;
         }
     }
-    if (status == -1) {
+
+    if (status == -1)
         help();
-    }
+
     argc -= opt.opt_index;
     argv += opt.opt_index;
 
-
     pf = Parrot_pbc_read(interp, *argv, options);
 
     if (!pf) {
         printf("Can't read PBC\n");
         return 1;
     }
+
     Parrot_pbc_load(interp, pf);
+
     if (convert) {
-        size_t size;
-        opcode_t *pack;
+        size_t   size  = PackFile_pack_size(interp,
+                            interp->code->base.pf) * sizeof (opcode_t);
+        opcode_t *pack = (opcode_t *)Parrot_gc_allocate_memory_chunk(interp,
+                                        size);
         FILE *fp;
 
-        size = PackFile_pack_size(interp,
-                interp->code->base.pf) * sizeof (opcode_t);
-        pack = (opcode_t*) Parrot_gc_allocate_memory_chunk(interp, size);
         if (!pack) {
             printf("out of mem\n");
             exit(EXIT_FAILURE);
         }
+
         PackFile_pack(interp, interp->code->base.pf, pack);
+
         if (STREQ(file, "-"))
             fp = stdout;
         else if ((fp = fopen(file, "wb")) == 0) {
@@ -307,28 +416,44 @@
             printf("Couldn't write %s\n", file);
             exit(EXIT_FAILURE);
         }
+
         fclose(fp);
         Parrot_gc_free_memory_chunk(interp, pack);
         Parrot_exit(interp, 0);
     }
 
-    PackFile_header_dump(interp, pf);
-    if (options & PFOPT_HEADERONLY) {
+    if (!nums_only)
+        PackFile_header_dump(interp, pf);
+
+    if (options & PFOPT_HEADERONLY)
         Parrot_exit(interp, 0);
-    }
+
     /* install a dumper function */
     if (!terse) {
         pf->PackFuncs[PF_CONST_SEG].dump = const_dump;
         pf->PackFuncs[PF_FIXUP_SEG].dump = fixup_dump;
     }
+
     if (disas)
         pf->PackFuncs[PF_BYTEC_SEG].dump = disas_dump;
+
+    if (nums_only) {
+        int i;
+
+        for (i = PF_DIR_SEG + 1; i < PF_MAX_SEG; i++)
+            pf->PackFuncs[i].dump = null_dump;
+
+        pf->PackFuncs[PF_DIR_SEG].dump   = null_dir_dump;
+        pf->PackFuncs[PF_BYTEC_SEG].dump = nums_dump;
+    }
+
     /* do a directory dump, which dumps segs then */
     PackFile_Segment_dump(interp, &pf->directory.base);
 
     Parrot_exit(interp, 0);
 }
 
+
 /*
 
 =back

Modified: branches/immutable_strings_part1/src/pmc/imageio.pmc
==============================================================================
--- branches/immutable_strings_part1/src/pmc/imageio.pmc	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/pmc/imageio.pmc	Wed Apr 21 09:44:01 2010	(r45849)
@@ -316,7 +316,7 @@
 
         PARROT_ASSERT(pmc);
         VTABLE_push_integer(interp, info,
-                PObj_is_object_TEST(pmc) ? enum_class_Object : pmc->vtable->base_type);
+                PObj_is_object_TEST(pmc) ? (INTVAL) enum_class_Object : pmc->vtable->base_type);
         parrot_hash_put(interp, hash, pmc, (void *)id);
         VTABLE_push_pmc(interp, PARROT_IMAGEIO(info)->todo, pmc);
         VTABLE_freeze(interp, pmc, info);
@@ -531,8 +531,9 @@
 
     VTABLE INTVAL shift_integer()
     {
-        opcode_t *pos  = GET_VISIT_CURSOR(SELF);
-        const INTVAL i = PF_fetch_integer(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
+        const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+        const INTVAL i      = PF_fetch_integer(PARROT_IMAGEIO(SELF)->pf,
+                (const opcode_t **)&pos);
         SET_VISIT_CURSOR(SELF, (char *)pos);
         BYTECODE_SHIFT_OK(SELF);
         return i;
@@ -550,8 +551,9 @@
 */
 
     VTABLE FLOATVAL shift_float() {
-        opcode_t *pos    = GET_VISIT_CURSOR(SELF);
-        const FLOATVAL f = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
+        const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+        const FLOATVAL f    = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf,
+                (const opcode_t **)&pos);
         SET_VISIT_CURSOR(SELF, (char *)pos);
         BYTECODE_SHIFT_OK(SELF);
         return f;
@@ -570,8 +572,8 @@
 
     VTABLE STRING *shift_string()
     {
-        opcode_t *pos    = GET_VISIT_CURSOR(SELF);
-        STRING * const s = PF_fetch_string(interp, PARROT_IMAGEIO(SELF)->pf,
+        const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+        STRING * const s    = PF_fetch_string(interp, PARROT_IMAGEIO(SELF)->pf,
                                            (const opcode_t **)&pos);
         SET_VISIT_CURSOR(SELF, (char *)pos);
         BYTECODE_SHIFT_OK(SELF);

Modified: branches/immutable_strings_part1/src/pmc/lexinfo.pmc
==============================================================================
--- branches/immutable_strings_part1/src/pmc/lexinfo.pmc	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/pmc/lexinfo.pmc	Wed Apr 21 09:44:01 2010	(r45849)
@@ -56,11 +56,6 @@
     }
 
     VTABLE void init() {
-        Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
-                "Cannot create a LexInfo PMC without an initializer");
-    }
-
-    VTABLE void init_pmc(PMC *sub) {
         PARROT_ASSERT(PObj_constant_TEST(SELF));
 
         /* Set value type to INTVAL */
@@ -68,6 +63,11 @@
         PObj_custom_mark_destroy_SETALL(SELF);
     }
 
+    VTABLE void init_pmc(PMC *sub) {
+        UNUSED(sub);
+        SELF.init();
+    }
+
 /*
 
 =item C<void declare_lex_preg(STRING *name, INTVAL preg)>
@@ -125,41 +125,6 @@
             Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
                 "Unknown introspection value '%S'", what);
     }
-
-/*
-
-=item C<void visit(PMC *info)>
-
-=item C<void freeze(PMC *info)>
-
-=item C<void thaw(PMC *info)>
-
-Freeze/thaw interface used during freeze/thaw of the Sub PMC.
-The implementation of the Hash PMC is called.
-
-=cut
-
-*/
-
-
-    VTABLE void thaw(PMC *info) {
-        const INTVAL elems  = VTABLE_shift_integer(INTERP, info);
-        const INTVAL k_type = VTABLE_shift_integer(INTERP, info);
-        const INTVAL v_type = VTABLE_shift_integer(INTERP, info);
-        Hash        *hash;
-
-        UNUSED(k_type);
-        UNUSED(v_type);
-
-        PARROT_ASSERT(v_type == enum_hash_int);
-        /* TODO make a better interface for hash creation
-         * TODO create hash with needed types in the first place
-         */
-
-        SELF.init_pmc(NULL);
-        hash          = (Hash *)SELF.get_pointer();
-        hash->entries = elems;
-    }
 }
 
 
@@ -169,7 +134,7 @@
 
 =head1 SEE ALSO
 
-F<docs/pdds/pdd20_lexical_vars.pod>, F<src/classes/lexpad.pmc>.
+F<docs/pdds/pdd20_lexical_vars.pod>, F<src/pmc/lexpad.pmc>.
 
 =cut
 

Modified: branches/immutable_strings_part1/src/pmc/namespace.pmc
==============================================================================
--- branches/immutable_strings_part1/src/pmc/namespace.pmc	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/pmc/namespace.pmc	Wed Apr 21 09:44:01 2010	(r45849)
@@ -62,13 +62,15 @@
         __attribute__nonnull__(3)
         __attribute__nonnull__(4);
 
+PARROT_WARN_UNUSED_RESULT
 static int ns_insert_sub_keyed_str(PARROT_INTERP,
     ARGIN(PMC *self),
     ARGIN(STRING *key),
-    ARGIN_NULLOK(PMC *value))
+    ARGIN(PMC *value))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
+        __attribute__nonnull__(3)
+        __attribute__nonnull__(4);
 
 #define ASSERT_ARGS_add_multi_to_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
@@ -91,7 +93,8 @@
 #define ASSERT_ARGS_ns_insert_sub_keyed_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(self) \
-    , PARROT_ASSERT_ARG(key))
+    , PARROT_ASSERT_ARG(key) \
+    , PARROT_ASSERT_ARG(value))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -117,9 +120,10 @@
     }
 }
 
+PARROT_WARN_UNUSED_RESULT
 static int
 ns_insert_sub_keyed_str(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *key),
-        ARGIN_NULLOK(PMC *value))
+        ARGIN(PMC *value))
 {
     ASSERT_ARGS(ns_insert_sub_keyed_str)
 
@@ -128,6 +132,7 @@
     PMC              * const classobj = VTABLE_get_class(interp, self);
     STRING           * vtable_key     = STRINGNULL;
     Parrot_Sub_attributes *sub;
+    INTVAL stored = 0;
 
     PMC_get_sub(interp, value, sub);
 
@@ -152,6 +157,8 @@
             /* Insert it. */
             VTABLE_set_pmc_keyed_int(interp, vtable, sub->vtable_index, value);
         }
+        if (!(sub->comp_flags & SUB_COMP_FLAG_NSENTRY))
+            stored = 1;
     }
 
     if (sub->comp_flags & SUB_COMP_FLAG_METHOD) {
@@ -166,9 +173,12 @@
             method_name = sub->method_name;
         }
         add_to_class(interp, nsinfo, classobj, method_name, value);
+
+        if (!(sub->comp_flags & SUB_COMP_FLAG_NSENTRY))
+            stored = 1;
     }
 
-    return 0;
+    return stored;
 }
 
 PARROT_WARN_UNUSED_RESULT

Modified: branches/immutable_strings_part1/src/pmc/schedulermessage.pmc
==============================================================================
--- branches/immutable_strings_part1/src/pmc/schedulermessage.pmc	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/pmc/schedulermessage.pmc	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -114,7 +114,10 @@
 */
 
     VTABLE INTVAL get_integer() {
-        Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+        const Parrot_SchedulerMessage_attributes * const
+            core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+        UNUSED(interp);
+
         return core_struct->id;
     }
 
@@ -129,7 +132,8 @@
 */
 
     VTABLE void set_integer_native(INTVAL value) {
-        Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+        Parrot_SchedulerMessage_attributes * const core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+        UNUSED(interp);
         core_struct->id = value;
     }
 
@@ -145,7 +149,9 @@
 */
 
     STRING *  get_string() {
-        Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+        const Parrot_SchedulerMessage_attributes * const core_struct =
+            PARROT_SCHEDULERMESSAGE(SELF);
+        UNUSED(interp);
         return core_struct->type;
     }
 
@@ -160,7 +166,8 @@
 */
 
     VTABLE void set_string_native(STRING *value) {
-        Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+        Parrot_SchedulerMessage_attributes * const core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+        UNUSED(interp);
         core_struct->type = value;
     }
 

Modified: branches/immutable_strings_part1/src/runcore/trace.c
==============================================================================
--- branches/immutable_strings_part1/src/runcore/trace.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/runcore/trace.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -80,18 +80,18 @@
 trace_class_name(PARROT_INTERP, ARGIN(const PMC* pmc))
 {
     ASSERT_ARGS(trace_class_name)
-    STRING *class_name;
+
     if (PObj_is_class_TEST(pmc)) {
-        SLOTTYPE * const class_array = (SLOTTYPE *)PMC_data(pmc);
-        PMC * const class_name_pmc = get_attrib_num(class_array,
+        SLOTTYPE * const class_array    = PMC_data_typed(pmc, SLOTTYPE *);
+        PMC      * const class_name_pmc = get_attrib_num(class_array,
                                                     PCD_CLASS_NAME);
-        class_name = VTABLE_get_string(interp, class_name_pmc);
+        return VTABLE_get_string(interp, class_name_pmc);
     }
     else
-        class_name = pmc->vtable->whoami;
-    return class_name;
+        return pmc->vtable->whoami;
 }
 
+
 /*
 
 =item C<void trace_pmc_dump(PARROT_INTERP, PMC *pmc)>
@@ -113,17 +113,21 @@
         Parrot_io_eprintf(debugger, "(null)");
         return;
     }
+
     if (PMC_IS_NULL(pmc))  {
         Parrot_io_eprintf(debugger, "PMCNULL");
         return;
     }
+
     if (!pmc->vtable || (UINTVAL)pmc->vtable == 0xdeadbeef) {
         Parrot_io_eprintf(debugger, "<!!no vtable!!>");
         return;
     }
-    if (PObj_on_free_list_TEST(pmc)) {
-        Parrot_io_eprintf(debugger, "**************** PMC is on free list *****\n");
-    }
+
+    if (PObj_on_free_list_TEST(pmc))
+        Parrot_io_eprintf(debugger,
+            "**************** PMC is on free list *****\n");
+
     if (pmc->vtable->pmc_class == pmc) {
         STRING * const name = trace_class_name(interp, pmc);
         Parrot_io_eprintf(debugger, "Class=%Ss:PMC(%#p)", name, pmc);
@@ -134,25 +138,23 @@
             Parrot_io_eprintf(debugger, "%S=PMC(%#p Str:(NULL))",
                     VTABLE_name(interp, pmc), pmc);
         else {
-            STRING* const escaped = Parrot_str_escape_truncate(
-                            interp, s, 20);
+            STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
             if (escaped)
                 Parrot_io_eprintf(debugger, "%S=PMC(%#p Str:\"%Ss\")",
-                    VTABLE_name(interp, pmc), pmc,
-                    escaped);
+                    VTABLE_name(interp, pmc), pmc, escaped);
             else
                 Parrot_io_eprintf(debugger, "%S=PMC(%#p Str:\"(null)\")",
                     VTABLE_name(interp, pmc), pmc);
         }
     }
-    else if (pmc->vtable->base_type == enum_class_Boolean) {
+    else if (pmc->vtable->base_type == enum_class_Boolean)
         Parrot_io_eprintf(debugger, "Boolean=PMC(%#p: %d)",
                 pmc, VTABLE_get_integer(interp, pmc));
-    }
-    else if (pmc->vtable->base_type == enum_class_Integer) {
+
+    else if (pmc->vtable->base_type == enum_class_Integer)
         Parrot_io_eprintf(debugger, "Integer=PMC(%#p: %d)",
                 pmc, VTABLE_get_integer(interp, pmc));
-    }
+
     else if (pmc->vtable->base_type == enum_class_BigInt) {
         STRING * const s = VTABLE_get_string(interp, pmc);
         Parrot_io_eprintf(debugger, "BigInt=PMC(%#p: %Ss)",
@@ -160,8 +162,7 @@
     }
     else if (pmc->vtable->base_type == enum_class_Complex) {
         STRING * const s = VTABLE_get_string(interp, pmc);
-        Parrot_io_eprintf(debugger, "Complex=PMC(%#p: %Ss)",
-                pmc, s);
+        Parrot_io_eprintf(debugger, "Complex=PMC(%#p: %Ss)", pmc, s);
     }
     else if (pmc->vtable->base_type == enum_class_Sub) {
         PMC_get_sub(interp, pmc, sub);
@@ -178,6 +179,7 @@
     }
 }
 
+
 /*
 
 =item C<int trace_key_dump(PARROT_INTERP, PMC *key)>
@@ -199,16 +201,18 @@
     while (key) {
         switch (PObj_get_FLAGS(key) & KEY_type_FLAGS) {
           case KEY_integer_FLAG:
-            len += Parrot_io_eprintf(debugger, "%vi", VTABLE_get_integer(interp, key));
+              len += Parrot_io_eprintf(debugger, "%vi",
+                 VTABLE_get_integer(interp, key));
             break;
           case KEY_number_FLAG:
-            len += Parrot_io_eprintf(debugger, "%vg", VTABLE_get_number(interp, key));
+              len += Parrot_io_eprintf(debugger, "%vg",
+                  VTABLE_get_number(interp, key));
             break;
           case KEY_string_FLAG:
             {
             const STRING * const s = key_string(interp, key);
-            STRING* const escaped = Parrot_str_escape_truncate(
-                            interp, s, 20);
+            STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
+
             if (escaped)
                 len += Parrot_io_eprintf(debugger, "\"%Ss\"", escaped);
             else
@@ -216,33 +220,37 @@
             }
             break;
           case KEY_integer_FLAG|KEY_register_FLAG:
-            len += Parrot_io_eprintf(debugger, "I%vd=%vd", VTABLE_get_integer(interp, key),
+              len += Parrot_io_eprintf(debugger, "I%vd=%vd",
+                  VTABLE_get_integer(interp, key),
                     REG_INT(interp, VTABLE_get_integer(interp, key)));
             break;
           case KEY_number_FLAG|KEY_register_FLAG:
-            len += Parrot_io_eprintf(debugger, "I%vd=%vd", VTABLE_get_integer(interp, key),
+              len += Parrot_io_eprintf(debugger, "I%vd=%vd",
+                  VTABLE_get_integer(interp, key),
                     REG_NUM(interp, VTABLE_get_integer(interp, key)));
             break;
           case KEY_string_FLAG|KEY_register_FLAG:
             {
-            const STRING * const s = REG_STR(interp, VTABLE_get_integer(interp, key));
-            STRING* const escaped = Parrot_str_escape_truncate(
-                            interp, s, 20);
+            const STRING * const s = REG_STR(interp,
+                 VTABLE_get_integer(interp, key));
+            STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
             if (escaped)
-                len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"", VTABLE_get_integer(interp, key),
-                        escaped);
+                len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"",
+                    VTABLE_get_integer(interp, key), escaped);
             else
                 len += Parrot_io_eprintf(debugger, "S%vd=\"(null)\"",
                         VTABLE_get_integer(interp, key));
             }
             break;
           case KEY_pmc_FLAG|KEY_register_FLAG:
-            len += Parrot_io_eprintf(debugger, "P%vd=", VTABLE_get_integer(interp, key));
-            trace_pmc_dump(debugger, REG_PMC(interp, VTABLE_get_integer(interp, key)));
+              len += Parrot_io_eprintf(debugger, "P%vd=",
+                  VTABLE_get_integer(interp, key));
+              trace_pmc_dump(debugger, REG_PMC(interp,
+                  VTABLE_get_integer(interp, key)));
             break;
           default:
             len += Parrot_io_eprintf(debugger, "??");
-            key = NULL;
+            key  = NULL;
             break;
         }
 
@@ -251,12 +259,13 @@
             if (key)
                 len += Parrot_io_eprintf(debugger, ";");
         }
-    } /* while */
+    }
 
     len += Parrot_io_eprintf(debugger, "]");
     return len;
 }
 
+
 /*
 
 =item C<void trace_op_dump(PARROT_INTERP, const opcode_t *code_start, const
@@ -276,29 +285,23 @@
         ARGIN(const opcode_t *pc))
 {
     ASSERT_ARGS(trace_op_dump)
-    INTVAL s, n;
-    int more = 0, var_args;
-    Interp * const debugger = debugger_or_interp(interp);
-    op_info_t * const info = &interp->op_info_table[*pc];
-    PMC *sig;
-    int type;
-    int len;
-#define ARGS_COLUMN 40
+    Interp    * const debugger = debugger_or_interp(interp);
+    op_info_t * const info     = &interp->op_info_table[*pc];
+    PMC *sig                   = PMCNULL;
+    INTVAL n                   = info->op_count;
+    INTVAL s                   = 1;
+    int more                   = 0, type;
+    int var_args               = 0;
 
-    PARROT_ASSERT(debugger);
-    sig = NULL; /* silence compiler uninit warning */
+    int len = Parrot_io_eprintf(debugger, "%04vx ", (UINTVAL)(pc - code_start))
+            + Parrot_io_eprintf(debugger, "%s", info->name);
+
+#define ARGS_COLUMN 40
 
-    s = 1;
-    len = Parrot_io_eprintf(debugger, "%04vx ", (UINTVAL)(pc - code_start));
-    len += Parrot_io_eprintf(debugger, "%s", info->name);
-
-    n = info->op_count;
-    var_args = 0;
-
-    if (*pc == PARROT_OP_set_args_pc ||
-            *pc == PARROT_OP_get_results_pc ||
-            *pc == PARROT_OP_get_params_pc ||
-            *pc == PARROT_OP_set_returns_pc) {
+    if (*pc == PARROT_OP_set_args_pc
+    ||  *pc == PARROT_OP_get_results_pc
+    ||  *pc == PARROT_OP_get_params_pc
+    ||  *pc == PARROT_OP_set_returns_pc) {
         sig = interp->code->const_table->constants[pc[1]]->u.key;
 
         if (!sig)
@@ -306,7 +309,7 @@
                 "NULL sig PMC detected in trace_op_dump");
 
         var_args = VTABLE_elements(interp, sig);
-        n += var_args;
+        n       += var_args;
     }
 
     if (n > 1) {
@@ -315,9 +318,9 @@
         /* pass 1 print arguments */
         for (i = s; i < n; i++) {
             const opcode_t o = pc[i];
-            if (i < info->op_count) {
+
+            if (i < info->op_count)
                 type = info->types[i - 1];
-            }
             else {
                 if (!sig)
                     Parrot_ex_throw_from_c_args(interp, NULL, 1,
@@ -326,21 +329,22 @@
                 type = VTABLE_get_integer_keyed_int(interp, sig, i - 2) &
                     (PARROT_ARG_TYPE_MASK|PARROT_ARG_CONSTANT);
             }
-            if (i > s &&
-                    type != PARROT_ARG_KC &&
-                    type != PARROT_ARG_KIC &&
-                    type != PARROT_ARG_KI &&
-                    type != PARROT_ARG_K) {
+
+            if (i > s
+            &&  type != PARROT_ARG_KC
+            &&  type != PARROT_ARG_KIC
+            &&  type != PARROT_ARG_KI
+            &&  type != PARROT_ARG_K)
                 len += Parrot_io_eprintf(debugger, ", ");
-            }
+
             switch (type) {
               case PARROT_ARG_IC:
                 len += Parrot_io_eprintf(debugger, "%vd", o);
                 break;
               case PARROT_ARG_NC:
                 len += Parrot_io_eprintf(debugger, "%vg",
-                                         Parrot_pcc_get_num_constant(interp,
-                                                                     CURRENT_CONTEXT(interp), o));
+                        Parrot_pcc_get_num_constant(interp,
+                            CURRENT_CONTEXT(interp), o));
                 break;
               case PARROT_ARG_PC:
                 if (var_args)
@@ -351,10 +355,9 @@
                 break;
               case PARROT_ARG_SC:
                 {
-                    STRING* const escaped = Parrot_str_escape_truncate(
-                            interp,
-                            Parrot_pcc_get_string_constant(interp,
-                                                           CURRENT_CONTEXT(interp), o), 20);
+                    STRING * const escaped = Parrot_str_escape_truncate(
+                            interp, Parrot_pcc_get_string_constant(interp,
+                                        CURRENT_CONTEXT(interp), o), 20);
                     if (escaped)
                         len += Parrot_io_eprintf(debugger, "\"%Ss\"", escaped);
                     else
@@ -363,8 +366,8 @@
                 break;
               case PARROT_ARG_KC:
                 len += trace_key_dump(interp,
-                                      Parrot_pcc_get_pmc_constant(interp,
-                                                                  CURRENT_CONTEXT(interp), o));
+                        Parrot_pcc_get_pmc_constant(interp,
+                            CURRENT_CONTEXT(interp), o));
                 break;
               case PARROT_ARG_KIC:
                 len += Parrot_io_eprintf(debugger, "[%vd]", o);
@@ -399,17 +402,17 @@
                 break;
             }
         }
+
         if (!more)
             goto done;
+
         if (len < ARGS_COLUMN)  {
             STRING * const fill = Parrot_str_repeat(debugger,
-                    Parrot_str_new_constant(debugger, " "),
-                    ARGS_COLUMN);
+                    Parrot_str_new_constant(debugger, " "), ARGS_COLUMN);
             Parrot_io_putps(debugger, Parrot_io_STDERR(debugger), fill);
         }
-        else {
+        else
             Parrot_io_eprintf(debugger, "\t");
-        }
 
         /* pass 2 print argument details if needed */
         for (i = 1; i < n; i++) {
@@ -419,9 +422,10 @@
             else
                 type = VTABLE_get_integer_keyed_int(interp, sig, i - 2) &
                     (PARROT_ARG_TYPE_MASK|PARROT_ARG_CONSTANT);
-            if (i > s) {
+
+            if (i > s)
                 Parrot_io_eprintf(debugger, " ");
-            }
+
             switch (type) {
               case PARROT_ARG_I:
                 Parrot_io_eprintf(debugger, "I%vd=%vd", o, REG_INT(interp, o));
@@ -432,7 +436,7 @@
               case PARROT_ARG_PC:
                 Parrot_io_eprintf(debugger, "PC%vd=", o);
                 trace_pmc_dump(interp, Parrot_pcc_get_pmc_constant(interp,
-                                                                   CURRENT_CONTEXT(interp), o));
+                                            CURRENT_CONTEXT(interp), o));
                 break;
               case PARROT_ARG_P:
                 Parrot_io_eprintf(debugger, "P%vd=", o);
@@ -440,10 +444,9 @@
                 break;
               case PARROT_ARG_S:
                 if (REG_STR(interp, o)) {
-                    STRING* const escaped = Parrot_str_escape_truncate(
+                    STRING * const escaped = Parrot_str_escape_truncate(
                                 interp, REG_STR(interp, o), 20);
-                    Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"", o,
-                                escaped);
+                    Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"", o, escaped);
                 }
                 else
                     Parrot_io_eprintf(debugger, "S%vd=\"(null)\"", o);
@@ -463,20 +466,21 @@
 done:
 
     if (interp->code->annotations) {
-        PMC * const annot = PackFile_Annotations_lookup(interp, interp->code->annotations,
-                pc - code_start + 1, NULL);
+        PMC * const annot = PackFile_Annotations_lookup(interp,
+                interp->code->annotations, pc - code_start + 1, NULL);
+
         if (!PMC_IS_NULL(annot)) {
             PMC * const pfile = VTABLE_get_pmc_keyed_str(interp, annot,
                     Parrot_str_new_constant(interp, "file"));
             PMC * const pline = VTABLE_get_pmc_keyed_str(interp, annot,
                     Parrot_str_new_constant(interp, "line"));
+
             if ((!PMC_IS_NULL(pfile)) && (!PMC_IS_NULL(pline))) {
                 /* The debugger interpreter may not be the same as
                  * the main interpreter, extract values from the
-                 * PMC instad of passing them directly
-                 */
+                 * PMC instad of passing them directly */
                 STRING * const file = VTABLE_get_string(interp, pfile);
-                const INTVAL line   = VTABLE_get_integer(interp, pline);
+                const INTVAL   line = VTABLE_get_integer(interp, pline);
                 Parrot_io_eprintf(debugger, " (%Ss:%li)", file, (long)line);
             }
         }
@@ -485,13 +489,13 @@
     Parrot_io_eprintf(debugger, "\n");
 }
 
+
 /*
 
 =item C<void trace_op(PARROT_INTERP, const opcode_t *code_start, const opcode_t
 *code_end, const opcode_t *pc)>
 
-Prints the PC, OP and ARGS. Used by C<runops_trace()>. With bounds
-checking.
+Prints the PC, OP and ARGS. Used by C<runops_trace()>. With bounds checking.
 
 I<Not really part of the API.>
 
@@ -506,16 +510,18 @@
         ARGIN_NULLOK(const opcode_t *pc))
 {
     ASSERT_ARGS(trace_op)
-    if (!pc) {
+
+    if (!pc)
         return;
-    }
 
     if (pc >= code_start && pc < code_end)
         trace_op_dump(interp, code_start, pc);
     else
-        Parrot_io_eprintf(interp, "PC=%ld; OP=<err>\n", (long)(pc - code_start));
+        Parrot_io_eprintf(interp, "PC=%ld; OP=<err>\n",
+        (long)(pc - code_start));
 }
 
+
 /*
 
 =back

Modified: branches/immutable_strings_part1/src/string/encoding/ucs2.c
==============================================================================
--- branches/immutable_strings_part1/src/string/encoding/ucs2.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/string/encoding/ucs2.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -104,16 +104,13 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-static UINTVAL ucs2_decode_and_advance(PARROT_INTERP,
-    ARGMOD(String_iter *i))
-        __attribute__nonnull__(1)
+static UINTVAL ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*i);
 
-static void ucs2_encode_and_advance(PARROT_INTERP,
+static void ucs2_encode_and_advance(SHIM_INTERP,
     ARGMOD(String_iter *i),
     UINTVAL c)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*i);
 
@@ -158,11 +155,9 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(src))
 #define ASSERT_ARGS_ucs2_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(i))
+       PARROT_ASSERT_ARG(i))
 #define ASSERT_ARGS_ucs2_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(i))
+       PARROT_ASSERT_ARG(i))
 #define ASSERT_ARGS_ucs2_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(s))
@@ -415,12 +410,12 @@
 */
 
 static UINTVAL
-ucs2_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i))
+ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
 {
     ASSERT_ARGS(ucs2_decode_and_advance)
 
 #if PARROT_HAS_ICU
-    const UChar * const s = (UChar*) i->str->strstart;
+    const UChar * const s = (const UChar*) i->str->strstart;
     size_t pos = i->bytepos / sizeof (UChar);
 
     /* TODO either make sure that we don't go past end or use SAFE
@@ -435,7 +430,6 @@
      * See TT #557
      */
     PARROT_ASSERT(0);
-    UNUSED(interp);
     UNUSED(i);
     return (UINTVAL)0; /* Stop the static analyzers from panicing */
 #endif
@@ -454,7 +448,7 @@
 */
 
 static void
-ucs2_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+ucs2_encode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL c)
 {
     ASSERT_ARGS(ucs2_encode_and_advance)
 
@@ -468,7 +462,6 @@
     /* This function must never be called if compiled without ICU.
      * See TT #557
      */
-    UNUSED(interp);
     UNUSED(i);
     UNUSED(c);
     PARROT_ASSERT(0);
@@ -554,6 +547,7 @@
 {
     ASSERT_ARGS(iter_init)
 #if PARROT_HAS_ICU
+    UNUSED(interp);
     iter->str             = src;
     iter->bytepos         = 0;
     iter->charpos         = 0;

Modified: branches/immutable_strings_part1/src/thread.c
==============================================================================
--- branches/immutable_strings_part1/src/thread.c	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/src/thread.c	Wed Apr 21 09:44:01 2010	(r45849)
@@ -31,8 +31,7 @@
 
 static Parrot_Interp detach(UINTVAL tid);
 PARROT_CAN_RETURN_NULL
-static Shared_gc_info * get_pool(PARROT_INTERP)
-        __attribute__nonnull__(1);
+static Shared_gc_info * get_pool(void);
 
 PARROT_WARN_UNUSED_RESULT
 static int is_suspended_for_gc(PARROT_INTERP)
@@ -60,17 +59,13 @@
 static Parrot_Interp pt_check_tid(UINTVAL tid, ARGIN(const char *from))
         __attribute__nonnull__(2);
 
-static int pt_gc_count_threads(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
+static int pt_gc_count_threads(void);
 static void pt_gc_wait_for_stage(PARROT_INTERP,
     thread_gc_stage_enum from_stage,
     thread_gc_stage_enum to_stage)
         __attribute__nonnull__(1);
 
-static void pt_gc_wakeup_check(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
+static void pt_gc_wakeup_check(void);
 static void pt_ns_clone(PARROT_INTERP,
     ARGOUT(Parrot_Interp d),
     ARGOUT(PMC *dest_ns),
@@ -101,8 +96,7 @@
 static void* thread_func(ARGIN_NULLOK(void *arg));
 
 #define ASSERT_ARGS_detach __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_get_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_is_suspended_for_gc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_make_local_args_copy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -116,12 +110,10 @@
        PARROT_ASSERT_ARG(arg))
 #define ASSERT_ARGS_pt_check_tid __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(from))
-#define ASSERT_ARGS_pt_gc_count_threads __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pt_gc_count_threads __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_pt_gc_wait_for_stage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_pt_gc_wakeup_check __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pt_gc_wakeup_check __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_pt_ns_clone __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(d) \
@@ -216,7 +208,7 @@
 
 /*
 
-=item C<static Shared_gc_info * get_pool(PARROT_INTERP)>
+=item C<static Shared_gc_info * get_pool(void)>
 
 Gets the shared gc information.  For now this is global data; ideally it will
 become something other than a static variable.  If everything uses this
@@ -228,7 +220,7 @@
 
 PARROT_CAN_RETURN_NULL
 static Shared_gc_info *
-get_pool(PARROT_INTERP)
+get_pool(void)
 {
     ASSERT_ARGS(get_pool)
     return shared_gc_info;
@@ -550,7 +542,7 @@
     }
 
     /* make sure we don't block a GC run */
-    pt_gc_wakeup_check(interp);
+    pt_gc_wakeup_check();
     PARROT_ASSERT(interp->thread_data->state & THREAD_STATE_FINISHED);
 
     UNLOCK(interpreter_array_mutex);
@@ -954,7 +946,7 @@
 
 /*
 
-=item C<static int pt_gc_count_threads(PARROT_INTERP)>
+=item C<static int pt_gc_count_threads(void)>
 
 Returns the number of active threads in the system (running or suspended).  Be
 sure to hold C<interpreter_array_mutex>.
@@ -964,7 +956,7 @@
 */
 
 static int
-pt_gc_count_threads(PARROT_INTERP)
+pt_gc_count_threads(void)
 {
     ASSERT_ARGS(pt_gc_count_threads)
     UINTVAL i;
@@ -1011,7 +1003,7 @@
     LOCK(interpreter_array_mutex);
 
     DEBUG_ONLY(fprintf(stderr, "%p: got lock\n", interp));
-    thread_count = pt_gc_count_threads(interp);
+    thread_count = pt_gc_count_threads();
 
     PARROT_ASSERT(info->gc_stage == from_stage);
     PARROT_ASSERT(!(interp->thread_data->state & THREAD_STATE_NOT_STARTED));
@@ -1042,7 +1034,7 @@
 
 /*
 
-=item C<static void pt_gc_wakeup_check(PARROT_INTERP)>
+=item C<static void pt_gc_wakeup_check(void)>
 
 Checks if it's necessary to wake threads to perform garbage collection.  This
 is called after thread death.  Be sure to hold C<interpreter_array_mutex>.
@@ -1052,7 +1044,7 @@
 */
 
 static void
-pt_gc_wakeup_check(PARROT_INTERP)
+pt_gc_wakeup_check(void)
 {
     ASSERT_ARGS(pt_gc_wakeup_check)
     Shared_gc_info * const info = shared_gc_info;
@@ -1061,7 +1053,7 @@
     if (!info)
         return;
 
-    thread_count = pt_gc_count_threads(interp);
+    thread_count = pt_gc_count_threads();
 
     if (info->num_reached == thread_count) {
         PARROT_ASSERT(info->gc_stage == THREAD_GC_STAGE_NONE);
@@ -1578,7 +1570,7 @@
     if (!running_threads)
         return;
 
-    info = get_pool(interp);
+    info = get_pool();
     PARROT_ATOMIC_INT_GET(block_level, info->gc_block_level);
 
     DEBUG_ONLY(fprintf(stderr, "start threaded mark\n"));
@@ -1715,7 +1707,7 @@
 Parrot_shared_gc_block(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_shared_gc_block)
-    Shared_gc_info * const info = get_pool(interp);
+    Shared_gc_info * const info = get_pool();
 
     if (info) {
         int level;
@@ -1739,7 +1731,7 @@
 Parrot_shared_gc_unblock(PARROT_INTERP)
 {
     ASSERT_ARGS(Parrot_shared_gc_unblock)
-    Shared_gc_info * const info = get_pool(interp);
+    Shared_gc_info * const info = get_pool();
     if (info) {
         int level;
         PARROT_ATOMIC_INT_DEC(level, info->gc_block_level);

Modified: branches/immutable_strings_part1/t/codingstd/c_function_docs.t
==============================================================================
--- branches/immutable_strings_part1/t/codingstd/c_function_docs.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/codingstd/c_function_docs.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -91,8 +91,6 @@
 }
 
 __DATA__
-compilers/imcc/instructions.c
-compilers/imcc/optimizer.c
 compilers/imcc/parser_util.c
 compilers/imcc/pbc.c
 compilers/imcc/pcc.c

Modified: branches/immutable_strings_part1/t/compilers/imcc/syn/file.t
==============================================================================
--- branches/immutable_strings_part1/t/compilers/imcc/syn/file.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/compilers/imcc/syn/file.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,5 @@
 #!perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -400,7 +400,7 @@
     $err_msg =~ s/\r//g if $^O =~ /^(MSWin32|msys)$/i;
     is( $err_msg, << "OUT", 'including a non-existent file' );
 error:imcc:$enoent_err_msg
-\tin file '$temp_pir' line 2
+\tin file '$temp_pir' line 1
 OUT
 }
 

Modified: branches/immutable_strings_part1/t/compilers/imcc/syn/subflags.t
==============================================================================
--- branches/immutable_strings_part1/t/compilers/imcc/syn/subflags.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/compilers/imcc/syn/subflags.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -69,7 +69,7 @@
     isa_ok($P30, 'Sub', ":method sub found w/.const")
     $P0 = get_global 'method1'
     $I0 = isnull $P0
-    todo($I0, ":method sub not found in namespace")
+    ok($I0, ":method sub not found in namespace")
 
     ## :subid subs
     .const 'Sub' $P40 = 'subid1'

Deleted: branches/immutable_strings_part1/t/dynpmc/gdbmhash.t
==============================================================================
--- branches/immutable_strings_part1/t/dynpmc/gdbmhash.t	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,441 +0,0 @@
-#! parrot
-# Copyright (C) 2005-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/dynpmc/gdbmhash.t - test the GDBMHash PMC
-
-=head1 SYNOPSIS
-
-    % parrot t/dynpmc/gdbmhash.t
-
-=head1 DESCRIPTION
-
-Tests the C<GDBMHash> PMC.
-
-=cut
-
-.sub main
-    .include 'test_more.pir'
-    .include 'iglobals.pasm'
-    .local pmc config_hash, interp
-
-    plan(48)
-    interp = getinterp
-    config_hash = interp[.IGLOBALS_CONFIG_HASH]
-    $S0 = config_hash['has_gdbm']
-    unless $S0 goto no_gdbm
-
-    test_typeof()
-    test_interface()
-    test_get_integer()
-    test_get_bool()
-    test_modify_an_entry()
-    test_exists_keyed()
-    test_set_string_with_string_key()
-    test_set_string_with_pmc_key()
-    test_set_pmc_with_string_key()
-    test_set_pmc_with_pmc_key()
-    test_set_intval_with_string_key()
-    test_set_floatval_with_pmc_key()
-    test_delete_keyed()
-    .return()
-  no_gdbm:
-    skip(48, 'No gdbm library available')
-.end
-
-.sub unlink
-    .param string filename
-    new $P0, 'OS'
-    push_eh _handler
-    $P0.'rm'(filename)
-    .return ()
-  _handler:
-    .local pmc e
-    .get_results (e)
-    printerr "# Cannot unlink "
-    printerr filename
-    printerr " ("
-    printerr e
-    printerr ")\n"
-.end
-
-.sub test_typeof
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    .local string type
-    type = typeof hash_1
-    is(type, 'GDBMHash', 'typeof')
-.end
-
-.sub test_interface
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    .local int bool1
-    does bool1, hash_1, "scalar"
-    is(bool1, 0, 'check whether interface is done')
-    does bool1, hash_1, "hash"
-    is(bool1, 1, 'check whether interface is done')
-    does bool1, hash_1, "no_interface"
-    is(bool1, 0, 'check whether interface is done')
-.end
-
-.sub test_get_integer
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    .local int hash_size
-    hash_size = hash_1
-    is(hash_size, 0, 'An unitialized GDBMHash has size 0')
-
-    hash_1 = "gdbm_hash_1"
-    hash_size = hash_1
-    is(hash_size, 0, 'An GDBMHash for a new file has size 0')
-
-    hash_1["key1"] = "val1"
-    hash_size = hash_1
-    is(hash_size, 1, 'After one assignment GDBMHash has size 1')
-
-    hash_1["key2"] = "val2"
-    hash_size = hash_1
-    is(hash_size, 2, 'After two assignments GDBMHash has size 2')
-
-    hash_1["key3"] = "val3"
-    hash_1["key4"] = "val4"
-    hash_1["key5"] = "val5"
-    hash_1["key6"] = "val6"
-    hash_1["key7"] = "val7"
-    hash_1["key8"] = "val8"
-    hash_1["key9"] = "val9"
-    hash_1["key10"] = "val10"
-    hash_1["key11"] = "val11"
-    hash_1["key12"] = "val12"
-    hash_1["key13"] = "val13"
-    hash_1["key14"] = "val14"
-    hash_1["key15"] = "val15"
-    hash_size = hash_1
-    is(hash_size, 15, 'After 15 assignments GDBMHash has size 15')
-
-    delete hash_1["key7"]
-    delete hash_1["key9"]
-
-    hash_size = hash_1
-    is(hash_size, 13, 'After 15 assignments and 2 deletes GDBMHash has size 13')
-
-    hash_1."close"()
-    unlink('gdbm_hash_1')
-.end
-
-.sub test_get_bool
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    if hash_1 goto HASH1_IS_1
-    ok(1, 'An uninitialized GDBMHash is not')
-HASH1_IS_1:
-
-    hash_1 = "gdbm_hash_2"
-    if hash_1 goto HASH1_IS_2
-    ok(1, 'A GDBMHash for a new file is not')
-HASH1_IS_2:
-
-    hash_1["key1"] = "val1"
-    if hash_1 goto HASH1_IS_3
-    ok(0, 'After one insert the GDBMHash is not')
-HASH1_IS_3:
-    ok(1, 'After one insert the GDBMHash is')
-
-    hash_1."close"()
-    unlink('gdbm_hash_2')
-.end
-
-# The value is a STRING, with umlaut
-# The key used for insertion is a STRING.
-.sub test_modify_an_entry
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_3"
-
-    .local pmc    val_pmc
-
-    hash_1["Schluessel"] = "Wert urspruenglich"
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert urspruenglich', 'modify an entry')
-    hash_1["Schluessel"] = "Wert geaendert"
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert geaendert', 'modify an entry')
-    hash_1["Schluessel"] = "Wert nocheinmal geaendert"
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert nocheinmal geaendert', 'modify an entry')
-    hash_1["Schluessel"] = "Wert urspruenglich"
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert urspruenglich', 'modify an entry')
-
-    hash_1."close"()
-    unlink('gdbm_hash_3')
-.end
-
-# The value is a STRING.
-# The key used for insertion is a STRING.
-.sub test_exists_keyed
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_4"
-
-    hash_1["Schluessel"] = "Wert"
-
-    .local int exist_flag
-    exist_flag = exists hash_1["a"]
-    is(exist_flag, 0, 'exists keyed')
-    exist_flag = exists hash_1["Schluessel"]
-    is(exist_flag, 1, 'exists keyed')
-
-    .local pmc key_out
-    key_out = new 'String'
-    key_out = "b"
-    exist_flag = exists hash_1[key_out]
-    is(exist_flag, 0, 'exists keyed')
-    key_out = "Schluessel"
-    exist_flag = exists hash_1[key_out]
-    is(exist_flag, 1, 'exists keyed')
-
-    hash_1."close"()
-    unlink('gdbm_hash_4')
-.end
-
-# The value is a STRING.
-# The key used for insertion is a STRING.
-.sub test_set_string_with_string_key
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_5"
-
-    hash_1["Schluessel"] = "Wert"
-
-    .local pmc    val_pmc
-    .local string val_string
-
-    val_string = hash_1["Schluessel"]
-    is(val_string, 'Wert', 'set string with string key')
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert', 'set string with string key')
-    .local pmc key_out
-    key_out = new 'String'
-    key_out = "Schluessel"
-    val_string = hash_1[key_out]
-    is(val_string, 'Wert', 'set string with string key')
-    val_pmc = hash_1[key_out]
-    is(val_pmc, 'Wert', 'set string with string key')
-
-    hash_1."close"()
-    unlink('gdbm_hash_5')
-.end
-
-# The value is a STRING.
-# The key used for insertion is a PMC.
-.sub test_set_string_with_pmc_key
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_6"
-
-    .local pmc key_pmc
-    key_pmc = new 'String'
-    key_pmc = "Schluessel"
-    hash_1[key_pmc] = "Wert"
-
-    .local pmc    val_pmc
-    .local string val_string
-
-    val_string = hash_1["Schluessel"]
-    is(val_string, 'Wert', 'set string with pmc key')
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert', 'set string with pmc key')
-    .local pmc key2
-    key2 = new 'String'
-    key2 = "Schluessel"
-    val_string = hash_1[key2]
-    is(val_string, 'Wert', 'set string with pmc key')
-    val_pmc = hash_1[key2]
-    is(val_pmc, 'Wert', 'set string with pmc key')
-
-    hash_1."close"()
-    unlink('gdbm_hash_6')
-.end
-
-# The value is a PMC.
-# The key used for insertion is a STRING.
-.sub test_set_pmc_with_string_key
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_7"
-
-    .local pmc val
-    val = new 'String'
-    val = "Wert"
-    hash_1["Schluessel"] = val
-
-    .local pmc    val_pmc
-    .local string val_string
-
-    val_string = hash_1["Schluessel"]
-    is(val_string, 'Wert', 'set pmc with string key')
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert', 'set pmc with string key')
-    .local pmc key_out
-    key_out = new 'String'
-    key_out = "Schluessel"
-    val_string = hash_1[key_out]
-    is(val_string, 'Wert', 'set pmc with string key')
-    val_pmc = hash_1[key_out]
-    is(val_pmc, 'Wert', 'set pmc with string key')
-
-    hash_1."close"()
-    unlink('gdbm_hash_7')
-.end
-
-# The value is a PMC.
-# The key used for insertion is a PMC.
-.sub test_set_pmc_with_pmc_key
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_8"
-
-    .local pmc val
-    val = new 'String'
-    val = "Wert"
-    .local pmc key_pmc
-    key_pmc = new 'String'
-    key_pmc = "Schluessel"
-    hash_1[key_pmc] = val
-
-    .local pmc    val_pmc
-    .local string val_string
-
-    val_string = hash_1["Schluessel"]
-    is(val_string, 'Wert', 'set pmc with pmc key')
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, 'Wert', 'set pmc with pmc key')
-    .local pmc key2
-    key2 = new 'String'
-    key2 = "Schluessel"
-    val_string = hash_1[key2]
-    is(val_string, 'Wert', 'set pmc with pmc key')
-    val_pmc = hash_1[key2]
-    is(val_pmc, 'Wert', 'set pmc with pmc key')
-
-    hash_1."close"()
-    unlink('gdbm_hash_8')
-.end
-
-# The value is an INTVAL
-# The key used for insertion is a STRING.
-.sub test_set_intval_with_string_key
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_9"
-
-    hash_1["Schluessel"] = -11012005
-
-    .local pmc    val_pmc
-    .local string val_string
-
-    val_string = hash_1["Schluessel"]
-    is(val_string, -11012005, 'set intval with a string key')
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, -11012005, 'set intval with a string key')
-    .local pmc key_out
-    key_out = new 'String'
-    key_out = "Schluessel"
-    val_string = hash_1[key_out]
-    is(val_string, -11012005, 'set intval with a string key')
-    val_pmc = hash_1[key_out]
-    is(val_pmc, -11012005, 'set intval with a string key')
-
-    hash_1."close"()
-    unlink('gdbm_hash_9')
-.end
-
-# The value is a FLOATVAL.
-# The key used for insertion is a PMC.
-.sub test_set_floatval_with_pmc_key
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_10"
-
-    .local pmc key_pmc
-    key_pmc = new 'String'
-    key_pmc = "Schluessel"
-    hash_1[key_pmc] = -1101.2005
-
-    .local pmc    val_pmc
-    .local string val_string
-
-    val_string = hash_1["Schluessel"]
-    is(val_string, -1101.2005, 'set float with a pmc key')
-    val_pmc = hash_1["Schluessel"]
-    is(val_pmc, -1101.2005, 'set float with a pmc key')
-    .local pmc key2
-    key2 = new 'String'
-    key2 = "Schluessel"
-    val_string = hash_1[key2]
-    is(val_string, -1101.2005, 'set float with a pmc key')
-    val_pmc = hash_1[key2]
-    is(val_pmc, -1101.2005, 'set float with a pmc key')
-
-    hash_1."close"()
-    unlink('gdbm_hash_10')
-.end
-
-.sub test_delete_keyed
-    .local pmc gdbmhash_lib
-    gdbmhash_lib = loadlib "gdbmhash"
-    .local pmc hash_1
-    hash_1 = new "GDBMHash"
-    hash_1 = "gdbm_hash_11"
-
-    .local int exist_flag
-    .local int hash_size
-
-    exist_flag = exists hash_1["a"]
-    is(exist_flag, 0, 'delete keyed')
-
-    hash_1["a"] = "A"
-    exist_flag = exists hash_1["a"]
-    is(exist_flag, 1, 'delete keyed')
-
-    delete hash_1["a"]
-    exist_flag = exists hash_1["a"]
-    is(exist_flag, 0, 'delete keyed')
-
-    hash_1."close"()
-    unlink('gdbm_hash_11')
-.end
-
-# Local Variables:
-#   mode: pir
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/immutable_strings_part1/t/examples/tutorial.t
==============================================================================
--- branches/immutable_strings_part1/t/examples/tutorial.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/examples/tutorial.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -220,7 +220,7 @@
 ok 1 - first test
 ok 2 - second test
 ok 3 #skip skipped test
-ok 4 # TODO 42
+ok 4 # TODO todo test
 END_EXPECTED
 
 );

Added: branches/immutable_strings_part1/t/library/osutils.t
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/immutable_strings_part1/t/library/osutils.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -0,0 +1,49 @@
+#!parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/library/osutils.t
+
+=head1 DESCRIPTION
+
+Test the osutils library
+
+=head1 SYNOPSIS
+
+    % prove t/library/osutils.t
+
+=cut
+
+.sub 'main' :main
+    .include 'test_more.pir'
+
+    load_bytecode 'osutils.pir'
+
+    plan(4)
+    test_basename()
+    test_dirname()
+.end
+
+.sub 'test_basename'
+    $S0 = 'foo/bar/baz.txt'
+    $S0 = basename($S0)
+    is( $S0, 'baz.txt', "basename" )
+.end
+
+.sub 'test_dirname'
+    $S0 = 'foo/bar/baz.txt'
+    $S0 = dirname($S0)
+    is( $S0, 'foo/bar', "dirname" )
+    $S0 = dirname($S0)
+    is( $S0, 'foo', "dirname" )
+    $S0 = dirname($S0)
+    is( $S0, '.', "dirname" )
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/immutable_strings_part1/t/library/tap_parser.t
==============================================================================
--- branches/immutable_strings_part1/t/library/tap_parser.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/library/tap_parser.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -21,7 +21,7 @@
 
     load_bytecode 'TAP/Parser.pir'
 
-    plan(169)
+    plan(203)
     test_grammar_plan()
     test_grammar_bailout()
     test_grammar_comment()
@@ -31,6 +31,7 @@
     test_tap_with_blank_lines()
     test_tap_has_problem()
     test_tap_version_wrong_place()
+    test_tap_trailing_plan()
     test_aggregator()
 .end
 
@@ -148,6 +149,33 @@
     is($P0, 22, "test_num")
     $P0 = getattribute token, 'description'
     is($P0, 'this is a test \# TODO whee!', "description")
+
+    token = grammar.'tokenize'("not ok")
+    $P0 = get_class ['TAP';'Parser';'Result';'Test']
+    isa_ok(token, $P0)
+    $P0 = getattribute token, 'raw'
+    is($P0, "not ok")
+    $P0 = getattribute token, 'ok'
+    is($P0, 'not ok', "ok")
+    $P0 = getattribute token, 'test_num'
+    null $P1
+    is($P0, $P1, "test_num")
+    $P0 = getattribute token, 'description'
+    null $P1
+    is($P0, $P1, "description")
+
+    token = grammar.'tokenize'("ok 42")
+    $P0 = get_class ['TAP';'Parser';'Result';'Test']
+    isa_ok(token, $P0)
+    $P0 = getattribute token, 'raw'
+    is($P0, "ok 42")
+    $P0 = getattribute token, 'ok'
+    is($P0, 'ok', "ok")
+    $P0 = getattribute token, 'test_num'
+    is($P0, 42, "test_num")
+    $P0 = getattribute token, 'description'
+    null $P1
+    is($P0, $P1, "description")
 .end
 
 .sub 'test_grammar_version'
@@ -168,7 +196,7 @@
     result = new 'ResizablePMCArray'
     $P0 = get_hll_global ['TAP';'Parser'], 'next'
     .local pmc coro
-    coro = clone $P0
+    coro = newclosure $P0
   L1:
     $P0 = coro(parser)
     if null $P0 goto L2
@@ -508,6 +536,73 @@
     is($S0, "If TAP version is present it must be the first line of output")
 .end
 
+.sub 'test_tap_trailing_plan'
+    .local pmc parser, result, token
+    parser = new ['TAP';'Parser']
+    parser.'tap'(<<'END_TAP')
+ok 1 - input file opened
+ok 2 - Gandalf wins
+1..2
+END_TAP
+    result = _get_results(parser)
+    $I0 = elements result
+    is($I0, 3, "elements")
+
+    token = shift result
+    $P0 = get_class ['TAP';'Parser';'Result';'Test']
+    isa_ok(token, $P0)
+    $P0 = getattribute token, 'ok'
+    is($P0, 'ok', "ok")
+    $P0 = getattribute token, 'test_num'
+    is($P0, 1, "test_num")
+    $P0 = getattribute token, 'description'
+    is($P0, '- input file opened', "description")
+    $I0 = token.'is_ok'()
+    ok($I0)
+    $I0 = token.'is_actual_ok'()
+    ok($I0)
+    $I0 = token.'is_unplanned'()
+    nok($I0, "unplanned")
+
+    token = shift result
+    $P0 = get_class ['TAP';'Parser';'Result';'Test']
+    isa_ok(token, $P0)
+    $P0 = getattribute token, 'ok'
+    is($P0, 'ok', "ok")
+    $P0 = getattribute token, 'test_num'
+    is($P0, 2, "test_num")
+    $P0 = getattribute token, 'description'
+    is($P0, '- Gandalf wins', "description")
+    $I0 = token.'is_ok'()
+    ok($I0)
+    $I0 = token.'is_actual_ok'()
+    ok($I0)
+    $I0 = token.'is_unplanned'()
+    nok($I0, "unplanned")
+
+    token = shift result
+    $P0 = get_class ['TAP';'Parser';'Result';'Plan']
+    isa_ok(token, $P0)
+    $P0 = getattribute token, 'plan'
+    is($P0, "1..2", "plan")
+    $P0 = getattribute token, 'tests_planned'
+    is($P0, 2, "tests_planned")
+
+    $I0 = parser.'passed'()
+    is($I0, 2, "passed")
+    $I0 = parser.'failed'()
+    is($I0, 0, "failed")
+    $I0 = parser.'parse_errors'()
+    is($I0, 0, "parse_errors")
+    $I0 = parser.'has_problems'()
+    is($I0, 0, "has_problems")
+
+    $P0 = getattribute parser, 'plan'
+    is($P0, "1..2", "plan")
+    $P0 = getattribute parser, 'tests_planned'
+    is($P0, 2, "tests_planned")
+.end
+
 .sub 'test_aggregator'
     .local pmc parser1, parser2, agg
     parser1 = new ['TAP';'Parser']

Modified: branches/immutable_strings_part1/t/library/test_builder_tester.t
==============================================================================
--- branches/immutable_strings_part1/t/library/test_builder_tester.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/library/test_builder_tester.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -59,12 +59,12 @@
    test.'skip'( 3, 'three skips' )
    test_test( 'multiple skips' )
 
-   test_out( 'not ok 9 # TODO some todo test' )
+   test_out( "not ok 9 # TODO \n\tFailed (TODO) test 'some todo test'" )
    test.'todo'( 0, 'some todo test' )
    test_test( 'failing todo test' )
 
-   test_out( 'ok 10 # TODO another todo test' )
-   test.'todo'( 1, 'another todo test' )
+   test_out( "ok 10 # TODO another todo test" )
+   test.'todo'( 1, 'reason', 'another todo test' )
    test_test( 'passing todo test' )
 
    test_pass()

Modified: branches/immutable_strings_part1/t/library/test_more.t
==============================================================================
--- branches/immutable_strings_part1/t/library/test_more.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/library/test_more.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -797,23 +797,23 @@
     .local pmc test
     test = new [ 'Test'; 'Builder' ]
 
-    test_out( 'ok 8 # TODO passing test' )
+    test_out( 'ok 8 # TODO todo reason' )
     test.'todo'( 1, 'passing test', 'todo reason' )
     test_test( 'todo test should pass, marked as TODO' )
 
-    test_out( 'not ok 9 # TODO failing test' )
+    test_out( "not ok 9 # TODO todo reason\n\tFailed (TODO) test 'failing test'" )
     test.'todo'( 0, 'failing test', 'todo reason' )
     test_test( 'todo test should fail, marked as TODO' )
 
-    test_out( 'ok 10 # TODO passing test' )
+    test_out( 'ok 10 # TODO todo reason' )
     todo( 1, 'passing test', 'todo reason' )
     test_test( 'todo test should pass, marked as TODO' )
 
-    test_out( 'not ok 11 # TODO failing test' )
+    test_out( "not ok 11 # TODO todo reason\n\tFailed (TODO) test 'failing test'" )
     todo( 0, 'failing test', 'todo reason' )
     test_test( 'todo test should fail, marked as TODO' )
 
-    test_out( 'not ok 12 # TODO' )
+    test_out( "not ok 12 # TODO \n\tFailed (TODO) test ''" )
     todo( 0 )
     test_test( 'todo test with no description or reason' )
 

Modified: branches/immutable_strings_part1/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/immutable_strings_part1/t/native_pbc/integer_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/immutable_strings_part1/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/immutable_strings_part1/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: branches/immutable_strings_part1/t/op/lexicals.t
==============================================================================
--- branches/immutable_strings_part1/t/op/lexicals.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/op/lexicals.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -14,7 +14,7 @@
 plan( skip_all => 'lexicals not thawed properly from PBC, TT #1171' )
     if $ENV{TEST_PROG_ARGS} =~ /--run-pbc/;
 
-plan( tests => 58 );
+plan( tests => 57 );
 
 =head1 NAME
 
@@ -1612,29 +1612,6 @@
 /error/
 OUTPUT
 
-pir_error_output_is( <<'CODE', <<'OUTPUT', "don't lost lexical when cloning", todo => "see TT#1550");
-.sub 'main' :main
-    .const 'Sub' f = 'func'
-    $P0 = clone f
-    $P0()
-.end
-
-.sub 'func' :lex
-    say "func"
-    $P0 = box 'STATE'
-    .lex 'VAR', $P0
-    inner()
-.end
-
-.sub 'inner' :lex :outer('func')
-    $P0 = find_lex 'VAR'
-    say $P0
-.end
-CODE
-func
-STATE
-OUTPUT
-
 # Local Variables:
 #   mode: cperl
 #   cperl-indent-level: 4

Modified: branches/immutable_strings_part1/t/pmc/namespace-subs.t
==============================================================================
--- branches/immutable_strings_part1/t/pmc/namespace-subs.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/pmc/namespace-subs.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -73,8 +73,7 @@
     is($I1, 75, "Invoked stored method")
 
     $P2 = get_hll_global ['MethodTest'], 'methodtest'
-    todo(0, "Method not stored in namespace", "see TT #389")
-#    is_null($P2, "Method not stored in namespace")
+    is_null($P2, "Method not stored in namespace")
 .end
 
 .sub 'store_nsentry'

Modified: branches/immutable_strings_part1/t/src/basic.t
==============================================================================
--- branches/immutable_strings_part1/t/src/basic.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/src/basic.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -27,7 +27,7 @@
     #include <stdlib.h>
 
     int
-    main(int argc, char* argv[])
+    main(int argc, const char* argv[])
     {
         printf("Hello, World!\n");
         exit(0);
@@ -41,7 +41,7 @@
     #include <parrot/exceptions.h>
 
     int
-    main(int argc, char* argv[])
+    main(int argc, const char* argv[])
     {
          exit_fatal(0, "Blow'd Up(tm)"); /* ' */
     }
@@ -59,7 +59,7 @@
 static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
 
 int
-main(int argc, char* argv[])
+main(int argc, const char* argv[])
 {
     Interp *interp;
 

Modified: branches/immutable_strings_part1/t/src/embed.t
==============================================================================
--- branches/immutable_strings_part1/t/src/embed.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/src/embed.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -39,7 +39,7 @@
     exit(EXIT_FAILURE);
 }
 
-int main(int argc, char **argv)
+int main(int argc, const char **argv)
 {
     Parrot_Interp interp;
     interp = Parrot_new(NULL);
@@ -308,20 +308,20 @@
 #include "parrot/embed.h"
 
 static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, cosnt char *argv[])
 {
     const char *c_src = ".sub main :main\n" "    print \"ok\\n\"\n" ".end\n";
 
-    STRING *src, *smain;
+    Parrot_String *src, *smain;
     PMC *prog, *entry;
     opcode_t *dest;
-    STRING *error;
+    Parrot_String *error;
 
     /* get PIR compiler  - TODO API */
     PMC   *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
                                        interp->iglobals,
                                        IGLOBALS_COMPREG_HASH);
-    STRING *pir    = Parrot_str_new_constant(interp, "PIR");
+    Parrot_String *pir    = Parrot_str_new_constant(interp, "PIR");
     PMC    *comp   = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
 
     if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -357,7 +357,7 @@
 }
 
 int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
 {
     Parrot_Interp interp;
     PackFile *pf;
@@ -388,12 +388,12 @@
 #include "parrot/embed.h"
 
 static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
-            char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+            const char *argv[])
 {
-    STRING   *smain;
+    Parrot_String   *smain;
     PMC      *entry;
-    STRING   *error;
+    Parrot_String   *error;
     opcode_t *dest;
     PMC      *prog = Parrot_compile_string(interp, type, src, &error);
 
@@ -421,20 +421,20 @@
 }
 
 static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
 {
     const char *c_src  = ".sub main :main\n" "    print \"ok\\n\"\n" ".end\n";
 
     const char *c2_src =
         ".sub main :main\n" "    print \"hola\\n\"\n" ".end\n";
 
-    STRING *src, *smain;
+    Parrot_String *src, *smain;
 
     /* get PIR compiler  - TODO API */
     PMC    *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
                                        interp->iglobals,
                                        IGLOBALS_COMPREG_HASH);
-    STRING *pir     = Parrot_str_new_constant(interp, "PIR");
+    Parrot_String *pir     = Parrot_str_new_constant(interp, "PIR");
     PMC    *comp    = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
 
     if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -447,7 +447,7 @@
 }
 
 int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
 {
     Parrot_Interp interp;
     PackFile *pf;
@@ -479,12 +479,12 @@
 #include "parrot/embed.h"
 
 static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
-            char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+            const char *argv[])
 {
-    STRING   *smain;
+    Parrot_String   *smain;
     PMC      *entry;
-    STRING   *error;
+    Parrot_String   *error;
     opcode_t *dest;
     PMC      *prog = Parrot_compile_string(interp, type, src, &error);
 
@@ -512,20 +512,20 @@
 }
 
 static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
 {
     const char *c_src  = ".sub main :main\n" "    print ok\\n\"\n" ".end\n";
 
     const char *c2_src =
         ".sub main :main\n" "    print \"hola\\n\"\n" ".end\n";
 
-    STRING *src, *smain;
+    Parrot_String *src, *smain;
 
     /* get PIR compiler  - TODO API */
     PMC    *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
                                        interp->iglobals,
                                        IGLOBALS_COMPREG_HASH);
-    STRING *pir     = Parrot_str_new_constant(interp, "PIR");
+    Parrot_String *pir     = Parrot_str_new_constant(interp, "PIR");
     PMC    *comp    = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
 
     if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -538,12 +538,12 @@
 }
 
 int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
 {
     Parrot_Interp interp;
     PackFile *pf;
     int argc = 1;
-    char *argv[] = { "test", NULL };
+    const char *argv[] = { "test", NULL };
 
     PackFile_Segment *seg;
 
@@ -570,12 +570,12 @@
 #include "parrot/embed.h"
 
 static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
-            char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+            const char *argv[])
 {
-    STRING   *smain;
+    Parrot_String   *smain;
     PMC      *entry;
-    STRING   *error;
+    Parrot_String   *error;
     opcode_t *dest;
     PMC      *prog = Parrot_compile_string(interp, type, src, &error);
 
@@ -603,19 +603,19 @@
 }
 
 static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
 {
     const char *c_src  = ".sub main :main\n" "    print ok\\n\"\n" ".end\n";
 
     const char *c2_src =
         ".sub main :main\n" "    print \"hola\\n\"\n" ".end\n";
 
-    STRING *src, *smain;
+    Parrot_String *src, *smain;
     /* get PIR compiler  - TODO API */
     PMC    *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
                                        interp->iglobals,
                                        IGLOBALS_COMPREG_HASH);
-    STRING *pir     = Parrot_str_new_constant(interp, "PIR");
+    Parrot_String *pir     = Parrot_str_new_constant(interp, "PIR");
     PMC    *comp    = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
 
     if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -628,7 +628,7 @@
 }
 
 int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
 {
     Parrot_Interp interp;
     PackFile *pf;
@@ -660,12 +660,12 @@
 #include "parrot/embed.h"
 
 static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
-            char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+            const char *argv[])
 {
-    STRING   *smain;
+    Parrot_String   *smain;
     PMC      *entry;
-    STRING   *error;
+    Parrot_String   *error;
     opcode_t *dest;
     PMC      *prog = Parrot_compile_string(interp, type, src, &error);
 
@@ -693,18 +693,18 @@
 }
 
 static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
 {
     const char *c_src  = ".sub main :main\n" "    print ok\\n\"\n" ".end\n";
 
     const char *c2_src = ".sub main :main\n" "    print hola\\n\"\n" ".end\n";
 
-    STRING *src, *smain;
+    Parrot_String *src, *smain;
     /* get PIR compiler  - TODO API */
     PMC    *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
                                        interp->iglobals,
                                        IGLOBALS_COMPREG_HASH);
-    STRING *pir     = Parrot_str_new_constant(interp, "PIR");
+    Parrot_String *pir     = Parrot_str_new_constant(interp, "PIR");
     PMC    *comp    = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
 
     if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -717,7 +717,7 @@
 }
 
 int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
 {
     Parrot_Interp interp;
     PackFile *pf;

Modified: branches/immutable_strings_part1/t/src/extend.t
==============================================================================
--- branches/immutable_strings_part1/t/src/extend.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/src/extend.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,5 @@
 #!perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -35,7 +35,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp  = Parrot_new(NULL);
     Parrot_Int    parrot_reg = 0;
     Parrot_Int    value      = 42;
@@ -65,7 +66,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp     = Parrot_new(NULL);
     Parrot_Int    parrot_reg = 1;
     Parrot_Float  value       = 2.5;
@@ -95,7 +97,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp = Parrot_new(NULL);
     Parrot_String output;
 
@@ -121,7 +124,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp     = Parrot_new(NULL);
     Parrot_Int    parrot_reg = 2;
     Parrot_String value, new_value;
@@ -151,7 +155,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp = Parrot_new(NULL);
     Parrot_Int    value  = 101010;
     Parrot_PMC    testpmc;
@@ -201,7 +206,8 @@
 }
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp = Parrot_new(NULL);
 
     /* Interpreter set-up */
@@ -223,7 +229,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp     = Parrot_new(NULL);
     Parrot_Int    value      = -123;
     Parrot_Int    parrot_reg =  31;
@@ -261,7 +268,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp = Parrot_new(NULL);
     Parrot_Float  value  = 3.1415927;
     Parrot_Int    type;
@@ -294,7 +302,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp = Parrot_new(NULL);
     Parrot_Int    type;
     Parrot_String value, new_value;
@@ -327,7 +336,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp = Parrot_new(NULL);
     Parrot_Int    type;
     Parrot_PMC    testpmc;
@@ -361,7 +371,8 @@
 #include "parrot/extend.h"
 
 int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp = Parrot_new(NULL);
     Parrot_Int    length = 6;
     Parrot_Int    type;
@@ -422,7 +433,7 @@
 static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
 
 int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
 {
     Parrot_Interp interp = Parrot_new(NULL);
     if (!interp)
@@ -440,9 +451,9 @@
 static opcode_t*
 the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
 {
-    PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
-    STRING   *name = Parrot_str_new_constant(interp, "_sub1");
-    PMC      *sub, *arg;
+    PackFile      *pf   = Parrot_pbc_read(interp, "$temp_pbc", 0);
+    Parrot_String  name = Parrot_str_new_constant(interp, "_sub1");
+    PMC           *sub, *arg;
 
     Parrot_pbc_load(interp, pf);
     sub = Parrot_find_global_cur(interp, name);
@@ -480,7 +491,7 @@
 static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
 
 int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
 {
     Parrot_Interp interp = Parrot_new(NULL);
     if (!interp)
@@ -498,9 +509,9 @@
 static opcode_t*
 the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
 {
-    PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
-    STRING   *name = Parrot_str_new_constant(interp, "_sub1");
-    PMC      *sub, *arg;
+    PackFile      *pf   = Parrot_pbc_read(interp, "$temp_pbc", 0);
+    Parrot_String  name = Parrot_str_new_constant(interp, "_sub1");
+    PMC           *sub, *arg;
 
     Parrot_pbc_load(interp, pf);
     sub = Parrot_find_global_cur(interp, name);
@@ -556,7 +567,7 @@
 static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
 
 int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
 {
     Parrot_Interp interp = Parrot_new(NULL);
     if (!interp)
@@ -574,10 +585,10 @@
 static opcode_t*
 the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
 {
-    PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
-    STRING   *name = Parrot_str_new_constant(interp, "foo");
-    PMC      *sub, *arg;
-    Parrot_Int result;
+    PackFile      *pf   = Parrot_pbc_read(interp, "$temp_pbc", 0);
+    Parrot_String  name = Parrot_str_new_constant(interp, "foo");
+    PMC           *sub, *arg;
+    Parrot_Int     result;
 
     Parrot_pbc_load(interp, pf);
     sub  = Parrot_find_global_cur(interp, name);
@@ -623,7 +634,7 @@
 the_test(Parrot_Interp, opcode_t *, opcode_t *);
 
 int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
 {
     Parrot_Interp interp = Parrot_new(NULL);
     if (!interp)
@@ -641,9 +652,9 @@
 static opcode_t*
 the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
 {
-    PackFile         *pf   = Parrot_pbc_read(interp, "$temp_pbc", 0);
-    STRING           *name = Parrot_str_new_constant(interp, "_sub1");
-    PMC              *sub;
+    PackFile      *pf   = Parrot_pbc_read(interp, "$temp_pbc", 0);
+    Parrot_String  name = Parrot_str_new_constant(interp, "_sub1");
+    PMC           *sub;
     Parrot_runloop jump_point;
 
     Parrot_pbc_load(interp, pf);
@@ -718,10 +729,10 @@
 #include <parrot/embed.h>
 
 int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
 {
     Parrot_PackFile packfile;
-    char * code[] = { ".sub foo\\nsay \\"Hello from foo!\\"\\n.end\\n" };
+    const char * code[] = { ".sub foo\\nsay \\"Hello from foo!\\"\\n.end\\n" };
 
     Parrot_Interp interp = Parrot_new(NULL);
     if (!interp) {
@@ -755,15 +766,13 @@
 #include <parrot/extend.h>
 
 int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
 {
     Parrot_Interp   interp    = Parrot_new(NULL);
     const char      *code      = ".sub foo\nprint\"Hello from foo!\\n\"\n.end\n";
     Parrot_PMC      retval;
     Parrot_PMC      sub;
-    STRING         *code_type;
-    STRING         *error;
-    STRING         *foo_name;
+    Parrot_String   code_type, error, foo_name;
 
     if (!interp) {
         printf( "Hiss\n" );
@@ -796,7 +805,7 @@
 #include <parrot/extend.h>
 
 int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
 {
     Parrot_Int      result;
     Parrot_PMC      sub;
@@ -828,7 +837,7 @@
 #include <parrot/extend.h>
 
 int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
 {
     Parrot_Int      result;
     Parrot_PMC      sub;
@@ -881,7 +890,8 @@
 }
 
 int
-main(int argc, char *argv[]) {
+main(int argc, const char *argv[])
+{
     Parrot_Interp interp;
     int i, niter = 2;
 

Modified: branches/immutable_strings_part1/t/src/warnings.t
==============================================================================
--- branches/immutable_strings_part1/t/src/warnings.t	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/t/src/warnings.t	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -34,7 +34,7 @@
 #include <parrot/embed.h>
 
 int
-main(int argc, char* argv[])
+main(int argc, const char* argv[])
 {
     Parrot_Interp interp = Parrot_new(NULL);
     int error_val;
@@ -57,7 +57,7 @@
 #include <parrot/embed.h>
 
 int
-main(int argc, char* argv[])
+main(int argc, const char* argv[])
 {
     Parrot_Interp interp = Parrot_new(NULL);
     int error_val;

Deleted: branches/immutable_strings_part1/t/steps/auto/crypto-01.t
==============================================================================
--- branches/immutable_strings_part1/t/steps/auto/crypto-01.t	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,176 +0,0 @@
-#! perl
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use Test::More tests =>  24;
-use Carp;
-use lib qw( lib t/configure/testlib );
-use_ok('config::auto::crypto');
-use Parrot::Configure::Options qw( process_options );
-use Parrot::Configure::Step::Test;
-use Parrot::Configure::Test qw(
-    test_step_constructor_and_description
-);
-use IO::CaptureOutput qw( capture );
-
-########## --without-crypto ##########
-
-my ($args, $step_list_ref) = process_options(
-    {
-        argv => [ q{--without-crypto} ],
-        mode => q{configure},
-    }
-);
-
-my $conf = Parrot::Configure::Step::Test->new;
-$conf->include_config_results( $args );
-
-my $pkg = q{auto::crypto};
-
-$conf->add_steps($pkg);
-
-my $serialized = $conf->pcfreeze();
-
-$conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
-my $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
-is($conf->data->get('has_crypto'), 0,
-    "Got expected value for 'has_crypto'");
-is($step->result(), q{no}, "Expected result was set");
-
-$conf->replenish($serialized);
-
-########## _select_lib() ##########
-
-($args, $step_list_ref) = process_options( {
-    argv => [ ],
-    mode => q{configure},
-} );
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-# Mock different OS/compiler combinations.
-my ($osname, $cc, $initial_libs);
-$initial_libs = $conf->data->get('libs');
-$osname = 'mswin32';
-$cc = 'gcc';
-is($step->_select_lib( {
-    conf            => $conf,
-    osname          => $osname,
-    cc              => $cc,
-    win32_nongcc    => 'libcrypto.lib',
-    default         => '-lcrypto',
-} ),
-   '-lcrypto',
-   "_select_lib() returned expected value");
-
-$osname = 'mswin32';
-$cc = 'cc';
-is($step->_select_lib( {
-    conf            => $conf,
-    osname          => $osname,
-    cc              => $cc,
-    win32_nongcc    => 'libcrypto.lib',
-    default         => '-lcrypto',
-} ),
-   'libcrypto.lib',
-   "_select_lib() returned expected value");
-
-$osname = 'foobar';
-$cc = 'cc';
-is($step->_select_lib( {
-    conf            => $conf,
-    osname          => $osname,
-    cc              => $cc,
-    win32_nongcc    => 'libcrypto.lib',
-    default         => '-lcrypto',
-} ),
-   '-lcrypto',
-   "_select_lib() returned expected value");
-
-my $verbose = undef;
-
-$conf->replenish($serialized);
-
-########## --without-crypto; _evaluate_cc_run() ##########
-
-($args, $step_list_ref) = process_options( {
-    argv => [ q{--without-crypto} ],
-    mode => q{configure},
-} );
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my ($test, $has_crypto);
-$test = qq{OpenSSL 0.9.9z\n};
-$has_crypto = 0;
-$verbose = undef;
-$has_crypto = $step->_evaluate_cc_run($conf, $test, $has_crypto, $verbose);
-is($has_crypto, 1, "'has_crypto' set as expected");
-is($step->result(), 'yes, 0.9.9z', "Expected result was set");
-# Prepare for next test
-$step->set_result(undef);
-
-$test = qq{foobar};
-$has_crypto = 0;
-$verbose = undef;
-$has_crypto = $step->_evaluate_cc_run($conf, $test, $has_crypto, $verbose);
-is($has_crypto, 0, "'has_crypto' set as expected");
-ok(! defined $step->result(), "Result is undefined, as expected");
-
-{
-    my $stdout;
-    $test = qq{OpenSSL 0.9.9z\n};
-    $has_crypto = 0;
-    $verbose = 1;
-    capture(
-        sub { $has_crypto =
-            $step->_evaluate_cc_run($conf, $test, $has_crypto, $verbose); },
-        \$stdout,
-    );
-    is($has_crypto, 1, "'has_crypto' set as expected");
-    is($step->result(), 'yes, 0.9.9z', "Expected result was set");
-    like($stdout, qr/\(yes\)/, "Got expected verbose output");
-    # Prepare for next test
-    $step->set_result(undef);
-}
-
-pass("Completed all tests in $0");
-
-################### DOCUMENTATION ###################
-
-=head1 NAME
-
-auto/crypto-01.t - test auto::crypto
-
-=head1 SYNOPSIS
-
-    % prove t/steps/auto/crypto-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test auto::crypto.
-
-=head1 HISTORY
-
-Mostly taken from F<t/steps/auto/gdbm-01.t>.
-
-=head1 AUTHOR
-
-Francois Perrad
-
-=head1 SEE ALSO
-
-config::auto::crypto, F<Configure.pl>.
-
-=cut
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/immutable_strings_part1/t/steps/auto/gdbm-01.t
==============================================================================
--- branches/immutable_strings_part1/t/steps/auto/gdbm-01.t	Wed Apr 21 09:44:01 2010	(r45848)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,175 +0,0 @@
-#! perl
-# Copyright (C) 2007, Parrot Foundation.
-# $Id$
-# auto/gdbm-01.t
-
-use strict;
-use warnings;
-use Test::More tests =>  29;
-use Carp;
-use Cwd;
-use File::Spec;
-use File::Temp qw( tempdir );
-use lib qw( lib t/configure/testlib );
-use_ok('config::auto::gdbm');
-use Parrot::Configure::Options qw( process_options );
-use Parrot::Configure::Step::Test;
-use Parrot::Configure::Test qw(
-    test_step_constructor_and_description
-);
-use IO::CaptureOutput qw| capture |;
-
-=for hints_for_testing The documentation for this package is skimpy;
-please try to improve it, e.g., by providing a short description of what
-the 'gdbm' is.  Some branches are compiler- or OS-specific.  As noted in
-a comment in the module, please consider the issues raised in
-http://rt.perl.org/rt3/Ticket/Display.html?id=43134.
-
-=cut
-
-########## --without-gdbm  ##########
-
-my ($args, $step_list_ref) = process_options( {
-    argv => [ q{--without-gdbm} ],
-    mode => q{configure},
-} );
-
-my $conf = Parrot::Configure::Step::Test->new;
-$conf->include_config_results( $args );
-
-my $serialized = $conf->pcfreeze();
-
-my $pkg = q{auto::gdbm};
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
-my $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
-is($conf->data->get('has_gdbm'), 0,
-    "Got expected value for 'has_gdbm'");
-is($step->result(), q{no}, "Expected result was set");
-
-$conf->replenish($serialized);
-
-########## --without-gdbm ##########
-
-($args, $step_list_ref) = process_options( {
-    argv => [ q{--without-gdbm} ],
-    mode => q{configure},
-} );
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my $osname;
-my ($flagsbefore, $flagsafter);
-$osname = 'foobar';
-my $cwd = cwd();
-{
-    my $tdir = tempdir( CLEANUP => 1 );
-    ok(chdir $tdir, "Able to change to temporary directory");
-    ok( (mkdir 'lib'), "Able to make lib directory");
-    ok( (mkdir 'include'), "Able to make include directory");
-    my $libdir = File::Spec->catdir( $tdir, 'lib' );
-    my $includedir = File::Spec->catdir( $tdir, 'include' );
-    $conf->data->set('fink_lib_dir' => $libdir);
-    $conf->data->set('fink_include_dir' => $includedir);
-
-    ok(chdir $cwd, "Able to change back to original directory after testing");
-}
-{
-    my $tdir2 = tempdir( CLEANUP => 1 );
-    ok(chdir $tdir2, "Able to change to temporary directory");
-    ok( (mkdir 'lib'), "Able to make lib directory");
-    ok( (mkdir 'include'), "Able to make include directory");
-    my $libdir = File::Spec->catdir( $tdir2, 'lib' );
-    my $includedir = File::Spec->catdir( $tdir2, 'include' );
-    $conf->data->set('fink_lib_dir' => $libdir);
-    $conf->data->set('fink_include_dir' => $includedir);
-    my $foo = File::Spec->catfile( $includedir, 'gdbm.h' );
-    open my $FH, ">", $foo or croak "Could not open for writing";
-    print $FH "Hello world\n";
-    close $FH or croak "Could not close after writing";
-
-    ok(chdir $cwd, "Able to change back to original directory after testing");
-}
-
-$conf->replenish($serialized);
-
-########## --without-gdbm; _evaluate_cc_run() ##########
-
-($args, $step_list_ref) = process_options( {
-    argv => [ q{--without-gdbm} ],
-    mode => q{configure},
-} );
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my ($test, $has_gdbm, $verbose);
-$test = qq{gdbm is working.\n};
-$has_gdbm = 0;
-$verbose = undef;
-$has_gdbm = $step->_evaluate_cc_run($test, $has_gdbm, $verbose);
-is($has_gdbm, 1, "'has_gdbm' set as expected");
-is($step->result(), 'yes', "Expected result was set");
-# Prepare for next test
-$step->set_result(undef);
-$test = qq{foobar};
-$has_gdbm = 0;
-$verbose = undef;
-$has_gdbm = $step->_evaluate_cc_run($test, $has_gdbm, $verbose);
-is($has_gdbm, 0, "'has_gdbm' set as expected");
-ok(! defined $step->result(), "Result is undefined, as expected");
-{
-    my $stdout;
-    $test = qq{gdbm is working.\n};
-    $has_gdbm = 0;
-    $verbose = 1;
-    capture(
-        sub { $has_gdbm =
-            $step->_evaluate_cc_run($test, $has_gdbm, $verbose); },
-        \$stdout,
-    );
-    is($has_gdbm, 1, "'has_gdbm' set as expected");
-    is($step->result(), 'yes', "Expected result was set");
-    like($stdout, qr/\(yes\)/, "Got expected verbose output");
-    # Prepare for next test
-    $step->set_result(undef);
-}
-
-$conf->replenish($serialized);
-
-pass("Completed all tests in $0");
-
-################### DOCUMENTATION ###################
-
-=head1 NAME
-
-auto/gdbm-01.t - test auto::gdbm
-
-=head1 SYNOPSIS
-
-    % prove t/steps/auto/gdbm-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test auto::gdbm.
-
-=head1 AUTHOR
-
-James E Keenan
-
-=head1 SEE ALSO
-
-config::auto::gdbm, F<Configure.pl>.
-
-=cut
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/immutable_strings_part1/tools/dev/mk_inno.pl
==============================================================================
--- branches/immutable_strings_part1/tools/dev/mk_inno.pl	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/tools/dev/mk_inno.pl	Wed Apr 21 09:44:01 2010	(r45849)
@@ -34,7 +34,6 @@
 } if ($PConfig{has_icu});
 
 my %dll = (
-    has_gdbm     => [ 'gdbm3.dll' ],
     HAS_GETTEXT  => [ 'libintl3.dll', 'libiconv2.dll' ],
     HAS_PCRE     => [ 'pcre3.dll' ],
     HAS_READLINE => [ 'readline5.dll' ],

Modified: branches/immutable_strings_part1/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/immutable_strings_part1/tools/dev/pbc_to_exe.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/tools/dev/pbc_to_exe.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -66,7 +66,7 @@
     print outfh, codestring
 
     print outfh, <<'MAIN'
-        int main(int argc, char *argv[])
+        int main(int argc, const char *argv[])
         {
             PackFile     *pf;
             Parrot_Interp interp;

Modified: branches/immutable_strings_part1/tools/dev/tapir.pir
==============================================================================
--- branches/immutable_strings_part1/tools/dev/tapir.pir	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/tools/dev/tapir.pir	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,6 +1,53 @@
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 
+=head1 NAME
+
+Tapir
+
+=head1 DESCRIPTION
+
+Tapir is a PIR-based TAP (Test Anything Protocol) Harness
+
+It eats test output (i.e. is a TAP consumer) and tells humans if the
+test suite passed, and if not, which kind of pretty colors of smoke
+came out. It is mostly equivalent to 'prove' from Perl 5.
+
+=head1 SYNOPSIS
+
+  ./tapir t/*.t
+
+=head2 OPTIONS
+
+Usage:
+
+  tapir [OPTIONS] <files>
+
+=head3 Boolean options
+
+ -v,  --verbose         Print all test lines.
+ -s,  --shuffle         Run the tests in random order.
+ -f,  --failures        Show failed tests.
+ -o,  --comments        Show comments.
+      --ignore-exit     Ignore exit status from test scripts.
+ -m,  --merge           Merge test scripts' STDERR with their STDOUT.
+      --reverse         Run the tests in reverse order.
+ -q,  --quiet           Suppress some test output while running tests.
+ -Q,  --QUIET           Only print summary results.
+      --directives      Only show results with TODO or SKIP directives.
+      --normalize       Normalize TAP output in verbose output
+ -h,  --help            Display this help
+ -V,  --version         Display the version
+
+=head3 Options that take arguments
+
+ -e,  --exec            Interpreter to run the tests ('' for compiled
+                        tests.)
+ -a,  --archive         Store the resulting TAP in an archive file.
+
+=cut
+
+
 .sub 'main' :main
     .param pmc argv
     $S0  = shift argv
@@ -32,34 +79,29 @@
 .sub 'help' :anon
     say <<"HELP"
 
-Tapir is a TAP test harness, you can use Tapir like this:
-
-        ./tapir t/*.t
-
-Currently supported arguments:
-    -v                  Print the output of each test file
-    --verbose
-
-    -q
-    -quiet
-
-    -Q
-    -QUIET
+ tapir [options] [files]
 
-    -normalize
+Boolean options:
 
-    -a
-    --archive=file
-
-    -e
-    --exec=program      Use a given program to execute test scripts
-                        i.e. ./tapir --exec=perl t/*.t to run Perl tests
-
-    -V
-    --version           Print out the current Tapir version
-
-    -h
-    --help              This message
+ -v,  --verbose         Print all test lines.
+ -s,  --shuffle         Run the tests in random order.
+ -f,  --failures        Show failed tests.
+ -o,  --comments        Show comments.
+      --ignore-exit     Ignore exit status from test scripts.
+ -m,  --merge           Merge test scripts' STDERR with their STDOUT.
+      --reverse         Run the tests in reverse order.
+ -q,  --quiet           Suppress some test output while running tests.
+ -Q,  --QUIET           Only print summary results.
+      --directives      Only show results with TODO or SKIP directives.
+      --normalize       Normalize TAP output in verbose output
+ -h,  --help            Display this help
+ -V,  --version         Display the version
+
+Options that take arguments:
+
+ -e,  --exec            Interpreter to run the tests ('' for compiled
+                        tests.)
+ -a,  --archive         Store the resulting TAP in an archive file.
 HELP
 .end
 
@@ -75,6 +117,13 @@
     push getopts, 'quiet|q'
     push getopts, 'QUIET|Q'
     push getopts, 'normalize'
+    push getopts, 'failures|f'
+    push getopts, 'comments|o'
+    push getopts, 'directives'
+    push getopts, 'ignore-exit'
+    push getopts, 'reverse'
+    push getopts, 'merge|m'
+    push getopts, 'shuffle|s'
     push getopts, 'version|V'
     push getopts, 'help|h'
     opts = getopts.'get_options'(argv)
@@ -84,7 +133,7 @@
 .sub 'do' :anon
     .param pmc opts
     .param pmc files
-    load_bytecode 'TAP/Harness.pir'
+    load_bytecode 'TAP/Harness.pbc'
     .local pmc harness, aggregate
     $I0 = exists opts['archive']
     if $I0 goto L1
@@ -96,12 +145,91 @@
     harness.'archive'($S0)
   L2:
     harness.'process_args'(opts)
-    aggregate = harness.'runtests'(files)
+    $P0 = _get_tests(opts, files)
+    aggregate = harness.'runtests'($P0)
     $I0 = aggregate.'has_errors'()
-    $I0 = not $I0
     exit $I0
 .end
 
+.sub '_get_tests' :anon
+    .param pmc opts
+    .param pmc files
+    .local int nb
+    nb = elements files
+    # currently, FixedStringArray hasn't the method sort.
+    # see TT #1356
+    $P0 = new 'FixedPMCArray'
+    set $P0, nb
+    $I0 = 0
+    $P1 = iter files
+  L1:
+    unless $P1 goto L2
+    $S0 = shift $P1
+    $P2 = split "\\", $S0
+    $S0 = join "/", $P2
+    $P2 = box $S0
+    $P0[$I0] = $P2
+    inc $I0
+    goto L1
+  L2:
+    $I0 = exists opts['shuffle']
+    unless $I0 goto L3
+    $P0 = _shuffle($P0)
+    goto L4
+  L3:
+    $P0.'sort'()
+    $I0 = exists opts['reverse']
+    unless $I0 goto L4
+    $P0 = _reverse($P0)
+  L4:
+    .return ($P0)
+.end
+
+.sub '_reverse' :anon
+    .param pmc array
+    .local int nb
+    nb = elements array
+    $P0 = new 'FixedPMCArray'
+    set $P0, nb
+    $I0 = 0
+    $I1 = nb - 1
+  L1:
+    unless $I0 < nb goto L2
+    $P1 = array[$I0]
+    $P0[$I1] = $P1
+    inc $I0
+    dec $I1
+    goto L1
+  L2:
+    .return ($P0)
+.end
+
+.sub '_shuffle' :anon
+    .param pmc array
+    load_bytecode 'Math/Rand.pbc'
+    .local pmc rand
+    rand = get_global [ 'Math'; 'Rand' ], 'rand'
+    .local pmc srand
+    srand = get_global [ 'Math'; 'Rand' ], 'srand'
+    $I0 = time
+    srand($I0)
+    .local int i, j
+    i = elements array
+  L1:
+    unless i > 0 goto L2
+    $I0 = rand()
+    j = $I0 % i
+    dec i
+    $P1 = array[i]
+    $P2 = array[j]
+    array[i] = $P2
+    array[j] = $P1
+    goto L1
+  L2:
+    .return (array)
+.end
+
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/immutable_strings_part1/tools/docs/filename_and_chapter.pl
==============================================================================
--- branches/immutable_strings_part1/tools/docs/filename_and_chapter.pl	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/tools/docs/filename_and_chapter.pl	Wed Apr 21 09:44:01 2010	(r45849)
@@ -12,6 +12,7 @@
 
 my $item_list_ref = [ ['intro.pod', 'Introduction to Parrot'],
                       ['overview.pod', 'Overview'],
+                      ['submissions.pod', 'Submitting bug reports and patches'],
                     ];
 
 my $lang = @$item_list_ref;

Modified: branches/immutable_strings_part1/tools/util/release.json
==============================================================================
--- branches/immutable_strings_part1/tools/util/release.json	Wed Apr 21 09:36:33 2010	(r45848)
+++ branches/immutable_strings_part1/tools/util/release.json	Wed Apr 21 09:44:01 2010	(r45849)
@@ -1,9 +1,9 @@
 {
-    "release.version"  : "2.2.0",
-    "release.name"     : "Like Clockwork",
+    "release.version"  : "2.3.0",
+    "release.name"     : "Samoan Lory",
     "release.day"      : "Tuesday",
-    "release.date"     : "16 March 2010",
-    "release.nextdate" : "20 April 2010",
+    "release.date"     : "20 April 2010",
+    "release.nextdate" : "18 May 2010",
 
     "web.root"         : "http://parrot.org/",
     "web.source"       : "download",
@@ -11,13 +11,13 @@
     "web.repository"   : "https://svn.parrot.org/parrot/trunk/",
 
     "bugday.day"       : "Saturday",
-    "bugday.date"      : "13 March 2010",
+    "bugday.date"      : "17 April 2010",
 
     "wiki.root"        : "https://trac.parrot.org/parrot/wiki/",
-    "wiki.bugday"      : "bug_day_2010_03_13",
+    "wiki.bugday"      : "bug_day_2010_04_17",
 
     "cpan.search"      : "http://search.cpan.org/dist/parrot",
-    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.2.0/",
-    "subversion.root"  : "http://subversion.tigris.org/",
+    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/stable/2.3.0/",
+    "subversion.root"  : "http://subversion.apache.org/",
     "svk.root"         : "http://svk.bestpractical.com/"
 }


More information about the parrot-commits mailing list