diff --git a/src/foreign/README b/src/foreign/README new file mode 100644 index 0000000000..b0d7275106 --- /dev/null +++ b/src/foreign/README @@ -0,0 +1,12 @@ +The copy of libffi for PLT Scheme has been changed in a few small +ways: + + * Added i386 Mac OS X support from the PyObjC project: + gcc/libffi/src/x86/ffi_darwin.c + gcc/libffi/src/x86/darwin.S + and changed ffi.c and sysv.S to #include these when __APPLE__ + is defined. + + * Added line to "configure" for i*86-*-darwin* + + * Added line to "configure" for i*86-*-openbsd* diff --git a/src/foreign/gcc/libffi/configure b/src/foreign/gcc/libffi/configure index 8dd9f1b3d3..38a512be0c 100755 --- a/src/foreign/gcc/libffi/configure +++ b/src/foreign/gcc/libffi/configure @@ -5383,6 +5383,7 @@ i*86-*-solaris2.1[0-9]*) TARGET=X86_64; TARGETDIR=x86;; i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;; i*86-*-beos*) TARGET=X86; TARGETDIR=x86;; i*86-*-freebsd* | i*86-*-kfreebsd*-gnu) TARGET=X86; TARGETDIR=x86;; +i*86-*-openbsd* | i*86-*-kopenbsd*-gnu) TARGET=X86; TARGETDIR=x86;; i*86-*-netbsdelf* | i*86-*-knetbsd*-gnu) TARGET=X86; TARGETDIR=x86;; i*86-*-rtems*) TARGET=X86; TARGETDIR=x86;; i*86-*-darwin*) TARGET=X86; TARGETDIR=x86;; diff --git a/src/mzscheme/include/mzscheme.exp b/src/mzscheme/include/mzscheme.exp index 9c6388c732..453521c697 100644 --- a/src/mzscheme/include/mzscheme.exp +++ b/src/mzscheme/include/mzscheme.exp @@ -418,10 +418,6 @@ scheme_lookup_global scheme_global_bucket scheme_global_keyword_bucket scheme_module_bucket -scheme_exptime_global_bucket -scheme_exptime_expdef_global_bucket -scheme_exptime_module_bucket -scheme_exptime_expdef_module_bucket scheme_builtin_value scheme_set_global_bucket scheme_install_macro diff --git a/src/mzscheme/include/mzscheme3m.exp b/src/mzscheme/include/mzscheme3m.exp index fe367e4269..179a477452 100644 --- a/src/mzscheme/include/mzscheme3m.exp +++ b/src/mzscheme/include/mzscheme3m.exp @@ -425,10 +425,6 @@ scheme_lookup_global scheme_global_bucket scheme_global_keyword_bucket scheme_module_bucket -scheme_exptime_global_bucket -scheme_exptime_expdef_global_bucket -scheme_exptime_module_bucket -scheme_exptime_expdef_module_bucket scheme_builtin_value scheme_set_global_bucket scheme_install_macro diff --git a/src/mzscheme/include/mzwin.def b/src/mzscheme/include/mzwin.def index 8183e67641..544663f113 100644 --- a/src/mzscheme/include/mzwin.def +++ b/src/mzscheme/include/mzwin.def @@ -410,10 +410,6 @@ EXPORTS scheme_global_bucket scheme_global_keyword_bucket scheme_module_bucket - scheme_exptime_global_bucket - scheme_exptime_expdef_global_bucket - scheme_exptime_module_bucket - scheme_exptime_expdef_module_bucket scheme_builtin_value scheme_set_global_bucket scheme_install_macro diff --git a/src/mzscheme/include/scheme.h b/src/mzscheme/include/scheme.h index 056617e505..f7e974306c 100644 --- a/src/mzscheme/include/scheme.h +++ b/src/mzscheme/include/scheme.h @@ -734,7 +734,7 @@ typedef struct Scheme_Hash_Table void (*make_hash_indices)(void *v, long *h1, long *h2); int (*compare)(void *v1, void *v2); Scheme_Object *mutex; - int mcount; /* number of non-null keys, <= count */ + int mcount; /* number of non-NULL keys, >= count (which is non-NULL vals) */ } Scheme_Hash_Table; diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc index a74b305cb9..bd1402215c 100644 --- a/src/mzscheme/src/cstartup.inc +++ b/src/mzscheme/src/cstartup.inc @@ -74,9 +74,9 @@ 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,71,35,37,113,113, 45,97,110,100,45,111,114,1,29,2,11,11,10,10,10,32,80,158,32,32,20, 98,158,16,1,30,3,2,2,69,113,113,45,97,112,112,101,110,100,4,254,1, -16,0,11,11,16,1,2,4,33,11,16,3,63,97,110,100,5,62,111,114,6, -70,113,117,97,115,105,113,117,111,116,101,7,16,3,11,11,11,16,3,2,5, -2,6,2,7,32,35,95,16,5,93,2,7,27,20,15,159,33,32,38,27,20, +16,0,11,11,16,1,2,4,33,11,16,3,62,111,114,5,70,113,117,97,115, +105,113,117,111,116,101,6,63,97,110,100,7,16,3,11,11,11,16,3,2,5, +2,6,2,7,32,35,95,16,5,93,2,6,27,20,15,159,33,32,38,27,20, 15,159,34,33,38,27,20,15,159,35,34,38,89,162,32,33,46,9,226,3,0, 1,2,87,94,28,248,80,158,36,32,197,250,22,252,39,2,11,6,10,10,98, 97,100,32,115,121,110,116,97,120,199,12,27,28,248,80,158,37,33,248,80,158, @@ -134,7 +134,7 @@ 69,115,116,120,45,110,117,108,108,63,21,10,30,22,2,14,67,115,116,120,45, 99,97,114,23,5,30,24,2,14,69,115,116,120,45,108,105,115,116,63,25,8, 16,14,18,16,2,97,64,104,101,114,101,26,37,97,35,10,32,11,16,8,2, -5,2,2,2,4,2,2,2,6,2,2,2,7,2,2,98,34,10,33,11,93, +5,2,2,2,7,2,2,2,6,2,2,2,4,2,2,98,34,10,33,11,93, 159,2,14,9,11,16,0,96,33,8,254,1,11,16,0,9,18,16,2,158,2, 11,37,9,18,16,2,158,2,12,37,9,18,16,2,100,9,41,35,34,33,16, 8,40,11,2,26,71,117,110,113,117,111,116,101,45,115,116,120,27,1,20,117, @@ -146,7 +146,7 @@ 115,116,36,43,35,34,33,40,39,16,6,42,11,61,97,37,61,100,38,3,1, 7,101,110,118,50,50,53,51,39,2,39,9,18,16,2,158,2,36,43,9,18, 16,2,158,65,108,105,115,116,42,40,43,9,18,16,2,158,2,40,43,9,18, -16,2,104,2,7,49,35,34,33,40,39,16,8,48,11,64,102,111,114,109,41, +16,2,104,2,6,49,35,34,33,40,39,16,8,48,11,64,102,111,114,109,41, 66,110,111,114,109,97,108,42,2,8,3,1,7,101,110,118,50,50,53,49,43, 2,43,2,43,16,4,47,11,2,9,3,1,7,101,110,118,50,50,53,52,44, 16,6,46,11,2,32,65,108,101,118,101,108,45,3,1,7,101,110,118,50,50, @@ -164,7 +164,7 @@ 61,9,18,16,2,105,63,98,111,120,62,8,28,35,34,33,40,39,48,47,46, 45,16,4,59,11,61,118,63,3,1,7,101,110,118,50,50,55,50,64,16,4, 58,11,62,113,118,65,3,1,7,101,110,118,50,50,55,51,66,9,11,16,5, -93,2,5,27,20,15,159,33,32,37,89,162,32,33,46,9,224,1,0,87,94, +93,2,7,27,20,15,159,33,32,37,89,162,32,33,46,9,224,1,0,87,94, 28,248,80,158,34,32,195,12,250,22,252,39,2,11,6,10,10,98,97,100,32, 115,121,110,116,97,120,197,27,248,80,158,35,33,196,28,248,80,158,35,34,193, 20,15,159,34,33,37,28,28,248,80,158,35,35,193,248,80,158,35,34,248,80, @@ -175,8 +175,8 @@ 2,100,10,8,33,35,34,33,16,4,8,32,11,2,26,3,1,7,101,110,118, 50,50,55,53,67,16,4,8,31,11,2,32,3,1,7,101,110,118,50,50,55, 54,68,16,4,8,30,11,61,101,69,3,1,7,101,110,118,50,50,55,55,70, -9,18,16,2,158,62,105,102,71,8,33,9,18,16,2,158,2,5,8,33,9, -18,16,2,158,11,8,33,9,11,16,5,93,2,6,27,20,15,159,33,32,38, +9,18,16,2,158,62,105,102,71,8,33,9,18,16,2,158,2,7,8,33,9, +18,16,2,158,11,8,33,9,11,16,5,93,2,5,27,20,15,159,33,32,38, 89,162,32,33,49,9,224,1,0,87,94,28,248,80,158,34,32,195,250,22,252, 39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,12,27,248,80, 158,35,33,196,28,248,80,158,35,34,193,20,15,159,34,33,38,28,28,248,80, @@ -192,7 +192,7 @@ 8,34,11,2,69,3,1,7,101,110,118,50,50,56,49,75,9,18,16,2,101, 63,108,101,116,76,8,39,35,34,33,8,36,8,35,8,34,16,4,8,38,11, 63,116,109,112,77,3,1,7,101,110,118,50,50,56,50,78,9,18,16,2,158, -2,71,8,39,9,18,16,2,158,2,6,8,39,9,11,93,83,159,32,93,80, +2,71,8,39,9,18,16,2,158,2,5,8,39,9,11,93,83,159,32,93,80, 159,32,32,33,89,162,32,34,37,2,4,222,28,248,22,58,193,249,22,65,194, 195,250,22,252,40,2,2,12,6,11,11,112,114,111,112,101,114,32,108,105,115, 116,195,93,68,35,37,107,101,114,110,101,108,79,94,2,14,2,79,0}; @@ -371,12 +371,12 @@ static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,102,252,162,11,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,74,35,37,100,101, 102,105,110,101,45,101,116,45,97,108,1,29,2,11,11,10,10,10,32,80,158, -32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,6,64,119,104,101, -110,3,66,117,110,108,101,115,115,4,74,45,100,101,102,105,110,101,45,115,121, -110,116,97,120,5,66,108,101,116,47,101,99,6,67,45,100,101,102,105,110,101, -7,73,100,101,102,105,110,101,45,115,116,114,117,99,116,8,16,6,11,11,11, +32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,6,74,45,100,101, +102,105,110,101,45,115,121,110,116,97,120,3,64,119,104,101,110,4,66,117,110, +108,101,115,115,5,73,100,101,102,105,110,101,45,115,116,114,117,99,116,6,66, +108,101,116,47,101,99,7,67,45,100,101,102,105,110,101,8,16,6,11,11,11, 11,11,11,16,6,2,3,2,4,2,5,2,6,2,7,2,8,32,38,97,16, -5,94,2,7,2,5,27,20,15,159,33,32,37,27,89,162,32,33,35,69,109, +5,94,2,8,2,3,27,20,15,159,33,32,37,27,89,162,32,33,35,69,109, 107,45,100,101,102,105,110,101,9,224,2,1,89,162,32,33,51,9,225,1,0, 2,27,248,80,158,36,32,197,27,248,80,158,37,33,194,28,248,80,158,37,34, 193,250,22,209,198,250,22,61,200,248,22,59,199,249,80,158,44,35,248,80,158, @@ -404,7 +404,7 @@ 100,101,102,105,110,101,45,118,97,108,117,101,115,38,46,35,34,33,43,16,4, 45,11,2,9,3,1,7,101,110,118,50,51,50,53,39,9,18,16,2,158,75, 100,101,102,105,110,101,45,115,121,110,116,97,120,101,115,40,46,9,11,16,5, -93,2,3,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249,22, +93,2,4,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249,22, 183,248,22,64,195,34,11,250,22,209,20,15,159,36,32,34,250,22,59,20,15, 159,39,33,34,248,80,158,40,32,248,80,158,41,33,202,249,22,61,20,15,159, 41,34,34,248,80,158,42,33,248,80,158,43,33,204,197,250,22,252,39,2,11, @@ -412,7 +412,7 @@ 14,2,11,16,3,18,99,2,23,49,35,34,33,16,4,48,11,61,120,41,3, 1,7,101,110,118,50,51,51,50,42,16,4,47,11,61,108,43,3,1,7,101, 110,118,50,51,51,51,44,18,158,62,105,102,45,49,18,158,2,0,49,11,16, -5,93,2,4,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249, +5,93,2,5,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249, 22,183,248,22,64,195,34,11,250,22,209,20,15,159,36,32,32,251,22,59,20, 15,159,40,33,32,248,22,78,200,20,15,159,40,34,32,249,22,61,20,15,159, 42,35,32,248,22,80,202,197,250,22,252,39,2,11,6,10,10,98,97,100,32, @@ -420,7 +420,7 @@ 34,33,16,4,51,11,2,41,3,1,7,101,110,118,50,51,51,53,46,16,4, 50,11,2,43,3,1,7,101,110,118,50,51,51,54,47,18,158,2,45,52,18, 158,93,158,64,118,111,105,100,48,52,52,18,158,2,0,52,11,16,5,93,2, -6,89,162,32,33,48,9,223,0,27,248,22,216,195,28,28,192,28,249,22,183, +7,89,162,32,33,48,9,223,0,27,248,22,216,195,28,28,192,28,249,22,183, 248,22,64,195,34,248,80,158,34,32,248,22,78,194,11,11,27,248,22,78,194, 27,248,80,158,36,33,248,80,158,37,33,198,250,22,209,20,15,159,38,32,36, 249,22,59,67,99,97,108,108,47,101,99,49,250,22,61,2,10,248,22,59,202, @@ -429,7 +429,7 @@ 11,2,18,2,21,16,1,18,100,2,23,56,35,34,33,16,4,55,11,2,30, 3,1,7,101,110,118,50,51,51,56,50,16,4,54,11,2,43,3,1,7,101, 110,118,50,51,51,57,51,16,6,53,11,63,118,97,114,52,65,101,120,112,114, -115,53,3,1,7,101,110,118,50,51,52,48,54,2,54,11,16,5,93,2,8, +115,53,3,1,7,101,110,118,50,51,52,48,54,2,54,11,16,5,93,2,6, 27,89,162,32,36,53,69,109,97,107,101,45,99,111,114,101,55,223,1,250,22, 59,70,108,101,116,45,118,97,108,117,101,115,56,248,22,59,249,22,59,21,97, 64,116,121,112,101,57,65,109,97,107,101,114,58,64,112,114,101,100,59,66,97, @@ -489,7 +489,7 @@ 11,23,15,23,20,28,23,15,251,22,59,63,108,101,116,73,248,22,59,249,22, 59,2,72,23,22,21,95,2,45,96,2,45,2,72,94,63,110,111,116,74,94, 70,105,110,115,112,101,99,116,111,114,63,75,2,72,11,96,76,114,97,105,115, -101,45,116,121,112,101,45,101,114,114,111,114,76,94,2,63,2,8,6,15,15, +101,45,116,121,112,101,45,101,114,114,111,114,76,94,2,63,2,6,6,15,15, 105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,2,72,196,192,250,22, 59,2,40,248,22,59,23,17,203,23,16,28,196,250,22,218,195,75,100,105,115, 97,112,112,101,97,114,101,100,45,117,115,101,77,248,22,252,84,3,200,192,33, @@ -517,16 +517,16 @@ static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,18,252,4,1,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,74,35,37,115,109, 97,108,108,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,32,80,158, -32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,10,64,119,104,101, -110,3,66,108,101,116,47,101,99,4,66,117,110,108,101,115,115,5,63,97,110, -100,6,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,7,62,111,114, -8,67,45,100,101,102,105,110,101,9,73,100,101,102,105,110,101,45,115,116,114, -117,99,116,10,64,99,111,110,100,11,70,113,117,97,115,105,113,117,111,116,101, -12,16,10,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,13,2,13, -2,13,71,35,37,113,113,45,97,110,100,45,111,114,14,2,13,2,14,2,13, -2,13,66,35,37,99,111,110,100,15,2,14,16,10,2,3,2,4,2,5,2, +32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,10,63,97,110,100, +3,62,111,114,4,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,5, +64,119,104,101,110,6,66,117,110,108,101,115,115,7,73,100,101,102,105,110,101, +45,115,116,114,117,99,116,8,66,108,101,116,47,101,99,9,67,45,100,101,102, +105,110,101,10,64,99,111,110,100,11,70,113,117,97,115,105,113,117,111,116,101, +12,16,10,71,35,37,113,113,45,97,110,100,45,111,114,13,2,13,74,35,37, +100,101,102,105,110,101,45,101,116,45,97,108,14,2,14,2,14,2,14,2,14, +2,14,66,35,37,99,111,110,100,15,2,13,16,10,2,3,2,4,2,5,2, 6,2,7,2,8,2,9,2,10,2,11,2,12,32,42,9,9,97,68,35,37, -107,101,114,110,101,108,16,65,35,37,115,116,120,17,2,14,2,15,2,13,9, +107,101,114,110,101,108,16,65,35,37,115,116,120,17,2,13,2,15,2,14,9, 0}; EVAL_ONE_SIZED_STR((char *)expr, 273); } @@ -575,13 +575,13 @@ 120,45,109,97,112,112,105,110,103,45,118,97,108,118,97,114,33,78,254,1,16, 2,18,98,63,46,46,46,79,38,98,36,10,32,11,94,159,74,35,37,115,109, 97,108,108,45,115,99,104,101,109,101,80,9,11,159,2,18,9,11,16,62,2, -54,2,2,2,72,2,2,2,8,2,2,2,64,2,2,2,68,2,2,2,60, +54,2,2,2,72,2,2,2,33,2,2,2,64,2,2,2,8,2,2,2,25, 2,2,74,115,121,110,116,97,120,45,109,97,112,112,105,110,103,81,2,2,2, -76,2,2,2,14,2,2,2,50,2,2,2,44,2,2,2,56,2,2,2,33, -2,2,2,46,2,2,2,29,2,2,2,25,2,2,2,48,2,2,2,58,2, -2,2,78,2,2,2,35,2,2,2,12,2,2,2,62,2,2,2,16,2,2, -2,6,2,2,2,10,2,2,2,27,2,2,2,74,2,2,2,4,2,2,2, -52,2,2,2,66,2,2,2,70,2,2,96,35,33,11,16,0,96,34,8,254, +50,2,2,2,14,2,2,2,70,2,2,2,44,2,2,2,56,2,2,2,78, +2,2,2,74,2,2,2,46,2,2,2,58,2,2,2,48,2,2,2,68,2, +2,2,29,2,2,2,60,2,2,2,35,2,2,2,4,2,2,2,62,2,2, +2,16,2,2,2,6,2,2,2,10,2,2,2,12,2,2,2,27,2,2,2, +76,2,2,2,52,2,2,2,66,2,2,96,35,33,11,16,0,96,34,8,254, 1,11,16,0,16,4,33,11,61,115,82,3,1,7,101,110,118,50,51,55,48, 83,18,103,2,79,45,36,35,34,16,10,44,11,61,112,84,67,112,114,111,116, 111,45,114,85,61,107,86,64,100,101,115,116,87,3,1,7,101,110,118,50,52, @@ -990,8 +990,8 @@ 120,99,97,115,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158, 16,1,30,3,2,2,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110, 116,45,101,114,114,111,114,4,254,1,16,0,11,11,16,1,2,4,33,11,16, -2,66,115,121,110,116,97,120,5,73,115,121,110,116,97,120,45,99,97,115,101, -42,42,6,16,2,11,11,16,2,2,5,2,6,32,34,94,16,5,93,2,6, +2,73,115,121,110,116,97,120,45,99,97,115,101,42,42,5,66,115,121,110,116, +97,120,6,16,2,11,11,16,2,2,5,2,6,32,34,94,16,5,93,2,5, 89,162,32,33,8,32,9,223,0,91,159,33,10,90,161,33,32,10,28,248,80, 158,34,32,195,248,22,53,248,80,158,35,33,196,11,87,94,28,28,248,80,158, 34,32,195,249,22,183,248,22,64,210,35,11,12,250,22,252,39,2,11,6,8, @@ -1067,7 +1067,7 @@ 97,116,99,104,38,101,110,118,31,1,30,32,2,28,72,115,116,120,45,109,101, 109,113,45,112,111,115,33,5,16,29,18,101,63,97,114,103,34,41,98,39,10, 32,11,94,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,35,9, -11,159,2,15,9,11,16,6,2,5,2,2,2,6,2,2,2,4,2,2,98, +11,159,2,15,9,11,16,6,2,6,2,2,2,5,2,2,2,4,2,2,98, 38,10,33,11,95,159,2,28,9,11,159,2,35,9,11,159,2,15,9,11,16, 0,96,37,8,254,1,11,16,0,16,4,36,11,61,120,36,3,1,7,101,110, 118,50,53,52,52,37,16,4,35,11,61,108,38,3,1,7,101,110,118,50,53, @@ -1122,7 +1122,7 @@ 2,100,18,158,2,57,8,32,18,158,2,79,57,18,109,2,55,8,34,39,38, 37,36,35,34,33,46,49,48,54,53,52,51,16,10,8,33,11,2,75,2,76, 2,77,61,109,101,2,78,2,78,2,78,2,78,18,158,2,9,8,34,11,16, -5,93,2,5,89,162,32,33,53,9,223,0,91,159,33,10,90,161,33,32,10, +5,93,2,6,89,162,32,33,53,9,223,0,91,159,33,10,90,161,33,32,10, 20,15,159,33,32,42,87,94,28,28,248,80,158,34,32,195,27,248,80,158,35, 33,196,28,248,80,158,35,32,193,248,80,158,35,34,248,80,158,36,33,194,11, 11,12,250,22,252,39,2,11,6,8,8,98,97,100,32,102,111,114,109,197,250, @@ -1171,7 +1171,7 @@ 128,2,128,16,4,8,44,11,63,108,101,110,129,3,1,7,101,110,118,50,54, 48,56,130,18,158,65,108,105,115,116,42,131,8,47,18,104,2,57,8,48,39, 38,37,8,37,8,42,8,41,8,40,8,39,8,46,8,45,11,93,83,159,32, -93,80,159,32,32,33,89,162,32,34,38,2,4,222,251,22,252,39,2,2,5, +93,80,159,32,32,33,89,162,32,34,38,2,4,222,251,22,252,39,2,2,6, 6,47,47,105,110,99,111,109,112,97,116,105,98,108,101,32,101,108,108,105,112, 115,105,115,32,109,97,116,99,104,32,99,111,117,110,116,115,32,102,111,114,32, 116,101,109,112,108,97,116,101,196,197,95,68,35,37,107,101,114,110,101,108,132, @@ -1194,10 +1194,10 @@ 35,196,28,248,80,158,43,32,193,249,80,158,44,33,248,80,158,45,34,195,27, 248,80,158,46,35,196,28,248,80,158,46,36,193,248,80,158,46,37,193,11,11, 11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, -248,22,90,197,27,248,22,89,198,27,252,22,61,202,198,200,201,199,27,20,15, +248,22,90,197,27,248,22,89,198,27,252,22,61,198,200,201,199,202,27,20,15, 159,40,32,38,250,22,209,20,15,159,43,33,38,250,22,209,20,15,159,46,34, -38,254,22,62,20,15,159,53,35,38,248,22,52,23,15,20,15,159,53,36,38, -248,22,90,23,15,248,22,87,23,15,248,22,89,23,15,248,22,78,23,15,20, +38,254,22,62,20,15,159,53,35,38,248,22,89,23,15,20,15,159,53,36,38, +248,22,87,23,15,248,22,78,23,15,248,22,90,23,15,248,22,52,23,15,20, 15,159,46,37,38,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, 110,116,97,120,197,32,20,98,158,16,6,30,10,65,35,37,115,116,120,11,69, 115,116,120,45,112,97,105,114,63,12,11,30,13,2,11,67,99,111,110,115,47, @@ -1224,10 +1224,10 @@ 40,32,193,249,80,158,41,33,248,80,158,42,34,195,27,248,80,158,43,35,196, 28,248,80,158,43,36,193,248,80,158,43,37,193,11,11,11,11,28,192,27,248, 22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,27,251,22, -61,200,197,198,199,27,20,15,159,39,32,38,250,22,209,20,15,159,42,33,38, -250,22,209,20,15,159,45,34,38,254,22,62,20,15,159,52,35,38,248,22,52, -23,15,20,15,159,52,36,38,248,22,88,23,15,248,22,87,23,15,20,15,159, -52,37,38,248,22,78,23,15,20,15,159,45,38,38,195,250,22,252,39,2,11, +61,197,199,198,200,27,20,15,159,39,32,38,250,22,209,20,15,159,42,33,38, +250,22,209,20,15,159,45,34,38,254,22,62,20,15,159,52,35,38,248,22,88, +23,15,20,15,159,52,36,38,248,22,78,23,15,248,22,87,23,15,20,15,159, +52,37,38,248,22,52,23,15,20,15,159,45,38,38,195,250,22,252,39,2,11, 6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,6,2, 10,2,13,2,15,2,17,2,19,2,21,16,7,18,16,2,95,2,23,42,93, 8,252,61,7,95,9,8,252,61,7,2,24,18,100,2,25,46,40,39,38,16, @@ -1243,10 +1243,10 @@ 80,158,38,33,248,80,158,39,34,195,27,248,80,158,40,35,196,28,248,80,158, 40,32,193,249,80,158,41,36,248,80,158,42,34,195,248,80,158,42,37,248,80, 158,43,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, -22,80,196,27,249,22,61,195,196,27,20,15,159,38,32,38,250,22,209,20,15, +22,80,196,27,249,22,61,196,195,27,20,15,159,38,32,38,250,22,209,20,15, 159,41,33,38,250,22,209,20,15,159,44,34,38,250,22,60,20,15,159,47,35, -38,248,22,53,203,250,22,209,20,15,159,50,36,38,249,22,60,20,15,159,52, -37,38,248,22,52,23,16,20,15,159,50,38,38,20,15,159,44,39,38,195,250, +38,248,22,52,203,250,22,209,20,15,159,50,36,38,249,22,60,20,15,159,52, +37,38,248,22,53,23,16,20,15,159,50,38,38,20,15,159,44,39,38,195,250, 22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20, 98,158,16,6,2,10,2,13,2,15,2,17,30,51,2,11,69,97,112,112,101, 110,100,47,35,102,52,0,30,53,2,11,71,115,116,120,45,110,117,108,108,47, @@ -1265,7 +1265,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1737); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,87,252,135,8,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,87,252,121,8,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,70,35,37,119,105, 116,104,45,115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98, 158,16,7,30,3,2,2,76,119,105,116,104,45,115,121,110,116,97,120,45,102, @@ -1284,126 +1284,125 @@ 193,249,80,158,40,33,248,80,158,41,34,195,27,248,80,158,42,35,196,28,248, 80,158,42,37,193,248,80,158,42,38,193,11,11,11,11,11,28,192,27,248,22, 52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,39,39,200,27,249,22, -61,197,198,27,20,15,159,41,33,44,250,22,209,20,15,159,44,34,44,250,22, -209,20,15,159,47,35,44,250,22,62,20,15,159,50,36,44,248,22,53,203,248, -22,52,203,20,15,159,47,37,44,195,27,28,248,80,158,36,32,195,249,80,158, -37,33,248,80,158,38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32, -193,249,80,158,40,40,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248, -22,9,89,162,32,33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9, -224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249,80,158,37,33,248, -80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80, -158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11, -11,194,248,80,158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35, -42,193,11,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43, -33,248,80,158,44,34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193, -248,80,158,45,38,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78, -195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,27,248,22,216,27, -20,15,159,43,38,44,250,22,209,20,15,159,46,39,44,200,195,87,94,251,80, -158,45,43,201,206,27,20,15,159,46,40,44,250,22,209,20,15,159,49,41,44, -204,195,9,27,249,22,2,89,162,32,33,34,9,222,248,22,48,65,119,115,116, -109,112,19,195,27,249,22,2,89,162,32,33,36,9,222,250,22,209,195,64,104, -101,114,101,20,195,196,27,248,22,216,27,20,15,159,46,42,44,250,22,209,20, -15,159,49,43,44,204,195,250,22,209,20,15,159,47,44,44,250,22,59,63,108, -101,116,21,251,22,2,89,162,32,35,42,9,222,249,22,59,194,250,22,59,1, -20,100,97,116,117,109,45,62,115,121,110,116,97,120,45,111,98,106,101,99,116, -22,249,22,59,72,113,117,111,116,101,45,115,121,110,116,97,120,23,200,199,204, -203,205,249,91,159,33,11,20,12,95,33,192,89,162,32,34,57,64,108,111,111, -112,24,226,21,13,14,0,28,248,22,57,197,27,249,22,61,197,196,27,20,15, -159,37,45,44,250,22,209,20,15,159,40,46,44,250,22,209,20,15,159,43,47, -44,250,22,62,20,15,159,46,48,44,248,22,53,203,248,22,52,203,20,15,159, -43,49,44,195,26,8,22,59,73,115,121,110,116,97,120,45,99,97,115,101,42, -42,25,11,10,248,22,52,205,9,79,109,111,100,117,108,101,45,105,100,101,110, -116,105,102,105,101,114,61,63,26,249,22,59,248,22,52,23,16,249,204,248,22, -53,23,17,248,22,53,23,18,249,22,59,65,95,101,108,115,101,27,249,22,59, -2,4,249,22,59,2,23,250,22,209,11,248,22,208,248,22,52,23,24,248,22, -52,23,23,202,200,23,16,250,22,252,39,2,11,6,10,10,98,97,100,32,115, -121,110,116,97,120,197,32,20,98,158,16,12,30,28,2,12,69,115,116,120,45, -112,97,105,114,63,29,11,30,30,2,12,67,99,111,110,115,47,35,102,31,1, -30,32,2,12,67,115,116,120,45,99,97,114,33,5,30,34,2,12,67,115,116, -120,45,99,100,114,35,6,30,36,2,12,71,115,116,120,45,110,117,108,108,47, -35,102,37,9,30,38,2,12,2,13,8,30,39,2,12,2,15,4,30,40,68, -35,37,115,116,120,108,111,99,41,68,114,101,108,111,99,97,116,101,42,1,30, -43,2,12,69,97,112,112,101,110,100,47,35,102,44,0,30,45,2,12,73,115, -116,120,45,99,104,101,99,107,47,101,115,99,46,7,30,47,2,12,70,115,116, -120,45,114,111,116,97,116,101,48,12,30,49,64,35,37,115,99,50,74,103,101, -116,45,109,97,116,99,104,45,118,97,114,115,51,0,16,18,18,98,2,20,38, -98,36,10,32,11,96,159,69,35,37,115,116,120,99,97,115,101,52,9,11,159, -74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,53,9,11,159,2,41, -9,11,159,2,12,9,11,16,10,2,18,2,2,2,6,2,2,2,10,2,2, -2,8,2,2,2,4,2,2,98,35,10,33,11,97,159,66,35,37,99,111,110, -100,54,9,11,159,71,35,37,113,113,45,97,110,100,45,111,114,55,9,11,159, -2,50,9,11,159,2,41,9,11,159,2,52,9,11,16,0,96,34,8,254,1, -11,16,0,16,4,33,11,61,120,56,3,1,7,101,110,118,50,54,54,52,57, -18,16,2,95,66,115,114,99,116,97,103,58,39,93,8,252,104,7,95,9,8, -252,104,7,2,52,18,100,64,100,101,115,116,59,42,36,35,34,33,16,8,41, -11,3,1,4,103,50,57,55,60,3,1,4,103,50,57,56,61,3,1,4,103, -50,57,57,62,3,1,7,101,110,118,50,54,55,49,63,2,63,2,63,16,8, -40,11,61,95,64,62,101,49,65,62,101,50,66,3,1,7,101,110,118,50,54, -55,50,67,2,67,2,67,18,158,63,99,116,120,68,42,18,158,2,0,42,18, -158,2,68,42,18,16,2,95,2,58,43,93,8,252,106,7,95,9,8,252,106, -7,2,52,18,100,2,59,46,36,35,34,33,16,12,45,11,3,1,4,103,50, -57,50,69,3,1,4,103,50,57,51,70,3,1,4,103,50,57,52,71,3,1, -4,103,50,57,53,72,3,1,4,103,50,57,54,73,3,1,7,101,110,118,50, -54,56,56,74,2,74,2,74,2,74,2,74,16,12,44,11,2,64,63,111,117, -116,75,62,105,110,76,2,65,2,66,3,1,7,101,110,118,50,54,56,57,77, -2,77,2,77,2,77,2,77,18,16,2,95,2,58,47,93,8,252,122,7,95, -9,8,252,122,7,2,52,18,101,2,59,49,36,35,34,33,45,44,16,4,48, -11,63,105,110,115,78,3,1,7,101,110,118,50,54,57,53,79,18,16,2,95, -2,58,50,93,8,252,123,7,95,9,8,252,123,7,2,52,18,158,2,59,49, -18,102,2,20,52,36,35,34,33,45,44,48,16,8,51,11,64,116,109,112,115, -80,65,104,101,114,101,115,81,64,111,117,116,115,82,3,1,7,101,110,118,50, -54,57,56,83,2,83,2,83,18,16,2,95,2,58,53,93,8,252,128,7,95, -9,8,252,128,7,2,52,18,103,2,59,55,36,35,34,33,45,44,48,51,16, -4,54,11,2,24,3,1,7,101,110,118,50,55,48,51,84,18,158,2,68,55, -18,158,2,0,55,18,158,2,68,55,11,96,83,159,32,93,80,159,32,32,33, -89,162,32,33,36,2,4,222,250,22,252,39,2,2,18,6,20,20,98,105,110, -100,105,110,103,32,109,97,116,99,104,32,102,97,105,108,101,100,195,83,159,32, -93,80,159,32,33,34,32,83,159,32,93,80,159,32,34,33,89,162,32,33,38, -2,8,223,0,87,94,83,160,34,11,80,159,32,33,34,248,22,170,80,159,33, -33,34,248,22,42,250,22,252,184,1,6,4,4,126,97,126,115,197,80,159,36, -33,34,83,159,32,93,80,159,32,35,33,89,162,32,33,37,2,10,223,0,87, -94,28,248,80,158,33,36,194,12,250,22,252,40,2,2,10,6,11,11,115,121, -110,116,97,120,32,112,97,105,114,196,27,248,80,158,34,37,195,249,22,2,89, -162,32,33,39,9,223,3,248,247,22,252,85,3,28,248,22,41,195,249,22,209, -11,248,80,159,36,34,34,197,28,248,22,252,136,1,195,249,22,209,11,248,80, -159,36,34,34,197,28,248,80,158,34,38,195,249,22,209,11,248,80,159,36,34, -34,248,22,210,198,249,22,209,11,248,80,159,36,34,34,64,116,101,109,112,85, -194,97,68,35,37,107,101,114,110,101,108,86,2,12,2,41,2,53,2,52,98, -2,86,2,52,2,41,2,50,2,55,2,54,0}; - EVAL_ONE_SIZED_STR((char *)expr, 2196); +61,198,197,27,20,15,159,41,33,44,250,22,209,20,15,159,44,34,44,250,22, +209,20,15,159,47,35,44,249,22,56,20,15,159,49,36,44,201,20,15,159,47, +37,44,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34, +197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,40,27, +248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8,89,162,32,33,39, +9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80,158,35, +41,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248, +80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41, +34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158,37,38, +196,28,248,22,57,193,21,94,9,9,248,80,158,35,42,193,11,27,248,80,158, +42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44,34,195, +27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45,38,193,11, +11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, +248,22,90,197,27,248,22,89,198,27,248,22,216,27,20,15,159,43,38,44,250, +22,209,20,15,159,46,39,44,200,195,87,94,251,80,158,45,43,201,206,27,20, +15,159,46,40,44,250,22,209,20,15,159,49,41,44,204,195,9,27,249,22,2, +89,162,32,33,34,9,222,248,22,48,65,119,115,116,109,112,19,195,27,249,22, +2,89,162,32,33,36,9,222,250,22,209,195,64,104,101,114,101,20,195,196,27, +248,22,216,27,20,15,159,46,42,44,250,22,209,20,15,159,49,43,44,204,195, +250,22,209,20,15,159,47,44,44,250,22,59,63,108,101,116,21,251,22,2,89, +162,32,35,42,9,222,249,22,59,194,250,22,59,1,20,100,97,116,117,109,45, +62,115,121,110,116,97,120,45,111,98,106,101,99,116,22,249,22,59,72,113,117, +111,116,101,45,115,121,110,116,97,120,23,200,199,204,203,205,249,91,159,33,11, +20,12,95,33,192,89,162,32,34,57,64,108,111,111,112,24,226,21,13,14,0, +28,248,22,57,197,27,249,22,61,196,197,27,20,15,159,37,45,44,250,22,209, +20,15,159,40,46,44,250,22,209,20,15,159,43,47,44,249,22,56,20,15,159, +45,48,44,201,20,15,159,43,49,44,195,26,8,22,59,73,115,121,110,116,97, +120,45,99,97,115,101,42,42,25,11,10,248,22,52,205,9,79,109,111,100,117, +108,101,45,105,100,101,110,116,105,102,105,101,114,61,63,26,249,22,59,248,22, +52,23,16,249,204,248,22,53,23,17,248,22,53,23,18,249,22,59,65,95,101, +108,115,101,27,249,22,59,2,4,249,22,59,2,23,250,22,209,11,248,22,208, +248,22,52,23,24,248,22,52,23,23,202,200,23,16,250,22,252,39,2,11,6, +10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,12,30,28, +2,12,69,115,116,120,45,112,97,105,114,63,29,11,30,30,2,12,67,99,111, +110,115,47,35,102,31,1,30,32,2,12,67,115,116,120,45,99,97,114,33,5, +30,34,2,12,67,115,116,120,45,99,100,114,35,6,30,36,2,12,71,115,116, +120,45,110,117,108,108,47,35,102,37,9,30,38,2,12,2,13,8,30,39,2, +12,2,15,4,30,40,68,35,37,115,116,120,108,111,99,41,68,114,101,108,111, +99,97,116,101,42,1,30,43,2,12,69,97,112,112,101,110,100,47,35,102,44, +0,30,45,2,12,73,115,116,120,45,99,104,101,99,107,47,101,115,99,46,7, +30,47,2,12,70,115,116,120,45,114,111,116,97,116,101,48,12,30,49,64,35, +37,115,99,50,74,103,101,116,45,109,97,116,99,104,45,118,97,114,115,51,0, +16,18,18,98,2,20,38,98,36,10,32,11,96,159,69,35,37,115,116,120,99, +97,115,101,52,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109, +101,53,9,11,159,2,41,9,11,159,2,12,9,11,16,10,2,4,2,2,2, +6,2,2,2,10,2,2,2,8,2,2,2,18,2,2,98,35,10,33,11,97, +159,66,35,37,99,111,110,100,54,9,11,159,71,35,37,113,113,45,97,110,100, +45,111,114,55,9,11,159,2,50,9,11,159,2,41,9,11,159,2,52,9,11, +16,0,96,34,8,254,1,11,16,0,16,4,33,11,61,120,56,3,1,7,101, +110,118,50,54,54,52,57,18,16,2,95,66,115,114,99,116,97,103,58,39,93, +8,252,104,7,95,9,8,252,104,7,2,52,18,100,64,100,101,115,116,59,42, +36,35,34,33,16,8,41,11,3,1,4,103,50,57,55,60,3,1,4,103,50, +57,56,61,3,1,4,103,50,57,57,62,3,1,7,101,110,118,50,54,55,49, +63,2,63,2,63,16,8,40,11,61,95,64,62,101,49,65,62,101,50,66,3, +1,7,101,110,118,50,54,55,50,67,2,67,2,67,18,158,63,99,116,120,68, +42,18,158,2,0,42,18,158,2,68,42,18,16,2,95,2,58,43,93,8,252, +106,7,95,9,8,252,106,7,2,52,18,100,2,59,46,36,35,34,33,16,12, +45,11,3,1,4,103,50,57,50,69,3,1,4,103,50,57,51,70,3,1,4, +103,50,57,52,71,3,1,4,103,50,57,53,72,3,1,4,103,50,57,54,73, +3,1,7,101,110,118,50,54,56,56,74,2,74,2,74,2,74,2,74,16,12, +44,11,2,64,63,111,117,116,75,62,105,110,76,2,65,2,66,3,1,7,101, +110,118,50,54,56,57,77,2,77,2,77,2,77,2,77,18,16,2,95,2,58, +47,93,8,252,122,7,95,9,8,252,122,7,2,52,18,101,2,59,49,36,35, +34,33,45,44,16,4,48,11,63,105,110,115,78,3,1,7,101,110,118,50,54, +57,53,79,18,16,2,95,2,58,50,93,8,252,123,7,95,9,8,252,123,7, +2,52,18,158,2,59,49,18,102,2,20,52,36,35,34,33,45,44,48,16,8, +51,11,64,116,109,112,115,80,65,104,101,114,101,115,81,64,111,117,116,115,82, +3,1,7,101,110,118,50,54,57,56,83,2,83,2,83,18,16,2,95,2,58, +53,93,8,252,128,7,95,9,8,252,128,7,2,52,18,103,2,59,55,36,35, +34,33,45,44,48,51,16,4,54,11,2,24,3,1,7,101,110,118,50,55,48, +51,84,18,158,2,68,55,18,158,2,0,55,18,158,2,68,55,11,96,83,159, +32,93,80,159,32,32,33,89,162,32,33,36,2,4,222,250,22,252,39,2,2, +18,6,20,20,98,105,110,100,105,110,103,32,109,97,116,99,104,32,102,97,105, +108,101,100,195,83,159,32,93,80,159,32,33,34,32,83,159,32,93,80,159,32, +34,33,89,162,32,33,38,2,8,223,0,87,94,83,160,34,11,80,159,32,33, +34,248,22,170,80,159,33,33,34,248,22,42,250,22,252,184,1,6,4,4,126, +97,126,115,197,80,159,36,33,34,83,159,32,93,80,159,32,35,33,89,162,32, +33,37,2,10,223,0,87,94,28,248,80,158,33,36,194,12,250,22,252,40,2, +2,10,6,11,11,115,121,110,116,97,120,32,112,97,105,114,196,27,248,80,158, +34,37,195,249,22,2,89,162,32,33,39,9,223,3,248,247,22,252,85,3,28, +248,22,41,195,249,22,209,11,248,80,159,36,34,34,197,28,248,22,252,136,1, +195,249,22,209,11,248,80,159,36,34,34,197,28,248,80,158,34,38,195,249,22, +209,11,248,80,159,36,34,34,248,22,210,198,249,22,209,11,248,80,159,36,34, +34,64,116,101,109,112,85,194,97,68,35,37,107,101,114,110,101,108,86,2,12, +2,41,2,53,2,52,98,2,86,2,52,2,41,2,50,2,55,2,54,0}; + EVAL_ONE_SIZED_STR((char *)expr, 2182); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,188,252,5,31,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,188,252,51,31,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,76,35,37,115,116, 120,99,97,115,101,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,32, 80,158,32,32,20,98,158,16,2,30,3,2,2,1,26,99,104,101,99,107,45, 100,117,112,108,105,99,97,116,101,45,105,100,101,110,116,105,102,105,101,114,4, 254,1,30,5,65,35,37,115,116,120,6,71,105,100,101,110,116,105,102,105,101, 114,63,7,2,16,0,11,11,16,0,32,11,16,23,2,4,1,20,103,101,110, -101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101,115,8,73,108,101, -116,114,101,99,45,115,121,110,116,97,120,9,63,97,110,100,10,71,115,121,110, -116,97,120,45,99,97,115,101,11,72,108,101,116,45,115,121,110,116,97,120,101, -115,12,72,115,121,110,116,97,120,45,99,97,115,101,42,13,66,117,110,108,101, -115,115,14,66,115,121,110,116,97,120,15,72,115,121,110,116,97,120,45,114,117, -108,101,115,16,73,100,101,102,105,110,101,45,115,116,114,117,99,116,17,66,108, -101,116,47,101,99,18,64,119,104,101,110,19,67,45,100,101,102,105,110,101,20, -75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115,21,74,45,100,101, -102,105,110,101,45,115,121,110,116,97,120,22,70,115,121,110,116,97,120,47,108, -111,99,23,70,108,101,116,45,115,121,110,116,97,120,24,62,111,114,25,64,99, -111,110,100,26,75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,27, -70,113,117,97,115,105,113,117,111,116,101,28,71,119,105,116,104,45,115,121,110, -116,97,120,29,16,23,11,70,35,37,119,105,116,104,45,115,116,120,30,11,71, -35,37,113,113,45,97,110,100,45,111,114,31,68,35,37,115,116,120,108,111,99, -32,11,2,32,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,33,69, -35,37,115,116,120,99,97,115,101,34,11,2,33,2,33,2,33,2,33,11,2, -33,2,32,11,2,31,66,35,37,99,111,110,100,35,11,2,31,2,30,16,23, +101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101,115,8,64,119,104, +101,110,9,75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,10,63, +97,110,100,11,71,115,121,110,116,97,120,45,99,97,115,101,12,73,108,101,116, +114,101,99,45,115,121,110,116,97,120,13,72,115,121,110,116,97,120,45,99,97, +115,101,42,14,66,115,121,110,116,97,120,15,70,108,101,116,45,115,121,110,116, +97,120,16,74,45,100,101,102,105,110,101,45,115,121,110,116,97,120,17,72,108, +101,116,45,115,121,110,116,97,120,101,115,18,62,111,114,19,71,119,105,116,104, +45,115,121,110,116,97,120,20,66,117,110,108,101,115,115,21,73,100,101,102,105, +110,101,45,115,116,114,117,99,116,22,72,115,121,110,116,97,120,45,114,117,108, +101,115,23,70,115,121,110,116,97,120,47,108,111,99,24,66,108,101,116,47,101, +99,25,67,45,100,101,102,105,110,101,26,64,99,111,110,100,27,75,115,121,110, +116,97,120,45,105,100,45,114,117,108,101,115,28,70,113,117,97,115,105,113,117, +111,116,101,29,16,23,11,70,35,37,119,105,116,104,45,115,116,120,30,74,35, +37,100,101,102,105,110,101,45,101,116,45,97,108,31,11,71,35,37,113,113,45, +97,110,100,45,111,114,32,68,35,37,115,116,120,108,111,99,33,11,2,33,69, +35,37,115,116,120,99,97,115,101,34,11,2,31,11,2,32,2,30,2,31,2, +31,11,2,33,2,31,2,31,66,35,37,99,111,110,100,35,11,2,32,16,23, 2,4,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2, 17,2,18,2,19,2,20,2,21,2,22,2,23,2,24,2,25,2,26,2,27, -2,28,2,29,34,55,98,16,5,93,2,27,89,162,32,33,50,9,223,0,27, +2,28,2,29,34,55,98,16,5,93,2,10,89,162,32,33,50,9,223,0,27, 249,22,209,20,15,159,35,32,44,196,27,28,248,80,158,35,32,194,249,80,158, 36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, 193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248, -22,9,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,47,9, +22,8,89,162,32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,47,9, 224,4,5,249,80,158,35,38,28,248,80,158,36,32,197,249,80,158,37,36,27, 248,80,158,39,34,200,28,248,80,158,39,37,193,248,22,59,248,80,158,40,39, 194,11,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33, @@ -1413,8 +1412,8 @@ 158,43,34,195,27,248,80,158,44,35,196,28,248,80,158,44,37,193,248,80,158, 44,39,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, 22,87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,42,202,27,251, -22,61,201,202,200,199,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, -11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,13,2,3, +22,61,199,200,201,202,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, +11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2,3, 1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, 252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162, 32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249, @@ -1425,8 +1424,8 @@ 250,22,209,20,15,159,38,35,44,250,22,209,20,15,159,41,36,44,252,22,62, 20,15,159,46,37,44,250,22,2,89,162,33,33,41,9,223,17,250,22,209,20, 15,159,35,38,44,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35,39, -44,248,22,78,23,16,248,22,52,23,16,20,15,159,46,40,44,248,22,87,205, -248,22,88,205,20,15,159,41,41,44,197,89,162,32,32,33,9,223,0,192,89, +44,248,22,88,23,16,248,22,87,23,16,20,15,159,46,40,44,248,22,78,205, +248,22,52,205,20,15,159,41,41,44,197,89,162,32,32,33,9,223,0,192,89, 162,32,32,34,9,223,3,248,22,252,184,2,208,250,22,252,39,2,11,6,10, 10,98,97,100,32,115,121,110,116,97,120,196,32,20,98,158,16,12,30,42,2, 6,69,115,116,120,45,112,97,105,114,63,43,11,30,44,2,6,67,99,111,110, @@ -1436,14 +1435,14 @@ 63,53,8,30,54,2,6,73,115,116,120,45,99,104,101,99,107,47,101,115,99, 55,7,30,56,2,6,69,115,116,120,45,62,108,105,115,116,57,4,30,58,2, 6,71,115,116,120,45,110,117,108,108,47,35,102,59,9,30,60,2,6,70,115, -116,120,45,114,111,116,97,116,101,61,12,30,62,2,32,68,114,101,108,111,99, +116,120,45,114,111,116,97,116,101,61,12,30,62,2,33,68,114,101,108,111,99, 97,116,101,63,1,30,64,2,34,1,20,101,108,108,105,112,115,105,115,45,99, 111,117,110,116,45,101,114,114,111,114,65,0,16,10,18,98,64,104,101,114,101, -66,38,98,36,10,32,11,97,159,2,32,9,11,159,2,30,9,11,159,2,34, +66,38,98,36,10,32,11,97,159,2,33,9,11,159,2,30,9,11,159,2,34, 9,11,159,2,6,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101, -109,101,67,9,11,16,14,2,9,2,2,2,4,2,2,2,12,2,2,2,16, -2,2,2,21,2,2,2,24,2,2,2,27,2,2,98,35,10,33,11,97,159, -2,32,9,11,159,2,30,9,11,159,2,34,9,11,159,2,6,9,11,159,2, +109,101,67,9,11,16,14,2,10,2,2,2,4,2,2,2,13,2,2,2,16, +2,2,2,18,2,2,2,23,2,2,2,28,2,2,98,35,10,33,11,97,159, +2,33,9,11,159,2,30,9,11,159,2,34,9,11,159,2,6,9,11,159,2, 67,9,11,16,0,96,34,8,254,1,11,16,0,16,4,33,11,63,115,116,120, 68,3,1,7,101,110,118,50,55,49,55,69,18,16,2,95,66,115,114,99,116, 97,103,70,39,93,8,252,163,7,95,9,8,252,163,7,2,34,18,16,2,99, @@ -1458,11 +1457,11 @@ 48,86,2,86,2,86,2,86,2,86,16,12,45,11,61,95,87,2,37,2,39, 2,40,2,41,3,1,7,101,110,118,50,55,51,49,88,2,88,2,88,2,88, 2,88,18,158,63,99,116,120,89,47,18,158,2,36,47,18,158,2,89,47,18, -158,2,89,47,18,158,9,47,18,158,2,89,47,11,16,5,93,2,9,89,162, +158,2,89,47,18,158,9,47,18,158,2,89,47,11,16,5,93,2,13,89,162, 32,33,50,9,223,0,27,249,22,209,20,15,159,35,32,44,196,27,28,248,80, 158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35, 197,28,248,80,158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28, -248,80,158,41,37,193,248,22,9,89,162,32,33,39,9,224,9,1,27,249,22, +248,80,158,41,37,193,248,22,8,89,162,32,33,39,9,224,9,1,27,249,22, 2,89,162,32,33,45,9,224,4,5,249,80,158,35,38,28,248,80,158,36,32, 197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248, 80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,39, @@ -1471,8 +1470,8 @@ 41,32,193,249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196, 28,248,80,158,44,37,193,248,80,158,44,40,193,11,11,11,11,28,192,27,248, 22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22, -89,198,249,80,158,41,42,202,27,251,22,61,201,202,200,199,27,20,15,159,43, -33,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9, +89,198,249,80,158,41,42,202,27,251,22,61,199,200,201,202,27,20,15,159,43, +33,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8, 89,162,32,33,40,9,226,13,2,3,1,250,22,31,89,162,32,32,36,9,225, 6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32, 33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, @@ -1482,8 +1481,8 @@ 20,15,159,41,36,44,252,22,62,20,15,159,46,37,44,250,22,2,89,162,33, 33,45,9,223,17,250,22,209,20,15,159,35,38,44,249,22,60,250,22,209,20, 15,159,40,39,44,248,22,60,248,22,52,203,20,15,159,40,40,44,248,22,78, -199,20,15,159,35,41,44,248,22,78,23,16,248,22,52,23,16,20,15,159,46, -42,44,248,22,87,205,248,22,88,205,20,15,159,41,43,44,197,89,162,32,32, +199,20,15,159,35,41,44,248,22,88,23,16,248,22,87,23,16,20,15,159,46, +42,44,248,22,78,205,248,22,52,205,20,15,159,41,43,44,197,89,162,32,32, 33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,250,22, 252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,98, 158,16,12,2,42,2,44,2,46,2,48,2,50,2,52,2,54,2,58,2,56, @@ -1501,10 +1500,10 @@ 3,1,7,101,110,118,50,55,54,52,101,2,101,2,101,2,101,2,101,18,158, 2,89,58,18,158,2,36,58,18,158,2,89,58,18,158,2,89,58,18,158,2, 89,58,18,158,2,89,58,18,158,9,58,18,158,2,89,58,11,16,5,93,2, -12,89,162,32,33,52,9,223,0,27,249,22,209,20,15,159,35,32,47,196,27, +18,89,162,32,33,52,9,223,0,27,249,22,209,20,15,159,35,32,47,196,27, 28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80, 158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36,27,248,80,158,41, -34,196,28,248,80,158,41,37,193,248,22,9,89,162,32,33,39,9,224,9,1, +34,196,28,248,80,158,41,37,193,248,22,8,89,162,32,33,39,9,224,9,1, 27,249,22,2,89,162,32,33,47,9,224,4,5,249,80,158,35,38,28,248,80, 158,36,32,197,249,80,158,37,36,27,248,80,158,39,34,200,28,248,80,158,39, 37,193,248,22,59,248,80,158,40,39,194,11,27,248,80,158,39,35,200,28,248, @@ -1516,12 +1515,12 @@ 22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22, 89,198,27,249,22,209,20,15,159,42,33,47,249,22,2,80,158,44,42,248,22, 216,27,20,15,159,46,34,47,250,22,209,20,15,159,49,35,47,205,195,27,28, -248,80,158,42,37,194,248,22,9,89,162,32,33,39,9,224,10,2,27,249,22, +248,80,158,42,37,194,248,22,8,89,162,32,33,39,9,224,10,2,27,249,22, 2,89,162,32,33,39,9,224,4,5,249,80,158,35,38,28,248,80,158,36,37, 197,248,22,59,248,80,158,37,39,198,11,194,248,80,158,37,39,196,28,248,22, 57,193,9,248,80,158,35,43,193,11,28,192,249,80,158,43,44,204,27,252,22, -61,202,205,203,204,200,27,20,15,159,45,36,47,91,159,33,11,90,161,33,32, -11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,15,2,3, +61,203,200,202,204,205,27,20,15,159,45,36,47,91,159,33,11,90,161,33,32, +11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,15,2,3, 1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, 252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162, 32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249, @@ -1533,7 +1532,7 @@ 32,32,58,9,225,6,5,4,27,250,22,209,20,15,159,38,38,47,250,22,209, 20,15,159,41,39,47,251,22,60,20,15,159,45,40,47,250,22,2,89,162,33, 33,41,9,223,16,250,22,209,20,15,159,35,41,47,249,22,60,248,22,52,199, -248,22,78,199,20,15,159,35,42,47,248,22,89,23,15,248,22,90,23,15,20, +248,22,78,199,20,15,159,35,42,47,248,22,78,23,15,248,22,90,23,15,20, 15,159,45,43,47,250,22,209,20,15,159,48,44,47,252,22,62,20,15,159,53, 45,47,250,22,2,89,162,33,33,47,9,223,24,250,22,209,20,15,159,35,46, 47,249,22,60,248,22,52,199,250,22,209,20,15,159,40,47,47,249,22,56,20, @@ -1541,8 +1540,8 @@ 159,35,49,47,249,22,60,20,15,159,37,50,47,250,22,209,20,15,159,40,51, 47,249,22,60,20,15,159,42,52,47,248,22,52,204,20,15,159,40,53,47,20, 15,159,35,54,47,248,22,78,206,20,15,159,40,55,47,20,15,159,35,56,47, -248,22,78,23,23,248,22,89,23,23,20,15,159,53,57,47,248,22,87,23,20, -248,22,52,23,20,20,15,159,48,58,47,20,15,159,41,59,47,197,89,162,32, +248,22,89,23,23,248,22,78,23,23,20,15,159,53,57,47,248,22,52,23,20, +248,22,87,23,20,20,15,159,48,58,47,20,15,159,41,59,47,197,89,162,32, 32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,248, 80,158,42,46,20,15,159,42,8,28,47,250,22,252,39,2,11,6,10,10,98, 97,100,32,115,121,110,116,97,120,196,32,20,98,158,16,15,2,42,2,44,2, @@ -1577,10 +1576,10 @@ 54,128,3,1,7,101,110,118,50,56,51,52,129,16,4,8,42,11,65,95,101, 108,115,101,130,3,1,7,101,110,118,50,56,51,53,131,9,16,2,158,2,38, 8,45,9,8,45,9,16,2,158,2,38,8,45,9,8,45,95,9,8,252,192, -7,2,30,11,16,5,93,2,24,89,162,32,33,50,9,223,0,27,249,22,209, +7,2,30,11,16,5,93,2,16,89,162,32,33,50,9,223,0,27,249,22,209, 20,15,159,35,32,44,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248, 80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80, -158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,9,89, +158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,8,89, 162,32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,45,9,224,4,5, 249,80,158,35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38, 34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33, @@ -1590,18 +1589,18 @@ 158,43,34,195,27,248,80,158,44,35,196,28,248,80,158,44,37,193,248,80,158, 44,40,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, 22,87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,42,202,27,251, -22,61,202,201,200,199,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, -11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,13,2,3, +22,61,199,200,201,202,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, +11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2,3, 1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, 252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162, 32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249, -80,158,35,43,21,97,2,12,94,94,93,2,37,2,39,2,38,2,40,2,41, +80,158,35,43,21,97,2,18,94,94,93,2,37,2,39,2,38,2,40,2,41, 2,38,20,15,159,35,34,44,89,162,32,32,50,9,225,6,5,4,27,250,22, 209,20,15,159,38,35,44,250,22,209,20,15,159,41,36,44,251,22,62,20,15, 159,45,37,44,250,22,2,89,162,33,33,45,9,223,16,250,22,209,20,15,159, 35,38,44,249,22,60,250,22,209,20,15,159,40,39,44,248,22,60,248,22,52, -203,20,15,159,40,40,44,248,22,78,199,20,15,159,35,41,44,248,22,52,23, -15,248,22,78,23,15,248,22,87,204,248,22,88,204,20,15,159,41,42,44,197, +203,20,15,159,40,40,44,248,22,78,199,20,15,159,35,41,44,248,22,88,23, +15,248,22,87,23,15,248,22,78,204,248,22,52,204,20,15,159,41,42,44,197, 89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184, 2,208,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, 196,32,20,98,158,16,12,2,42,2,44,2,46,2,48,2,50,2,52,2,54, @@ -1618,14 +1617,14 @@ 50,50,141,3,1,7,101,110,118,50,56,53,48,142,2,142,2,142,2,142,2, 142,16,12,8,54,11,2,87,2,37,2,39,2,40,2,41,3,1,7,101,110, 118,50,56,53,49,143,2,143,2,143,2,143,2,143,18,158,2,89,8,56,18, -158,2,12,8,56,18,158,2,89,8,56,18,158,2,89,8,56,18,158,2,89, -8,56,18,158,2,89,8,56,18,158,2,89,8,56,11,16,5,93,2,16,89, +158,2,18,8,56,18,158,2,89,8,56,18,158,2,89,8,56,18,158,2,89, +8,56,18,158,2,89,8,56,18,158,2,89,8,56,11,16,5,93,2,23,89, 162,32,33,52,9,223,0,27,89,162,32,32,36,68,116,114,121,45,110,101,120, 116,144,223,2,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, 97,120,195,27,28,248,80,158,35,32,196,249,80,158,36,33,248,80,158,37,34, 198,27,248,80,158,38,35,199,28,248,80,158,38,32,193,249,80,158,39,36,27, 248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,59,248,80,158,42,38, -194,11,27,248,80,158,41,35,196,28,248,80,158,41,37,193,248,22,9,89,162, +194,11,27,248,80,158,41,35,196,28,248,80,158,41,37,193,248,22,8,89,162, 32,33,39,9,224,9,1,27,249,22,2,89,162,32,33,53,9,224,4,5,249, 80,158,35,39,28,248,80,158,36,32,197,249,80,158,37,36,27,248,80,158,39, 34,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,27, @@ -1639,8 +1638,8 @@ 2,89,162,32,33,36,9,222,248,22,43,248,22,44,248,22,210,195,248,22,216, 27,20,15,159,46,35,46,250,22,209,20,15,159,49,36,46,204,195,27,28,248, 80,158,42,37,194,248,80,158,42,38,194,11,28,192,249,80,158,43,43,204,27, -252,22,61,200,203,206,202,205,27,20,15,159,45,37,46,91,159,33,11,90,161, -33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,15, +252,22,61,205,200,202,203,206,27,20,15,159,45,37,46,91,159,33,11,90,161, +33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,15, 2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10, 247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193, 89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2, @@ -1648,17 +1647,17 @@ 73,115,121,110,116,97,120,45,99,97,115,101,42,42,147,2,87,10,2,146,94, 61,107,148,2,38,79,109,111,100,117,108,101,45,105,100,101,110,116,105,102,105, 101,114,61,63,149,94,158,65,100,117,109,109,121,150,67,112,97,116,116,101,114, -110,151,95,2,23,2,146,68,116,101,109,112,108,97,116,101,152,2,38,20,15, +110,151,95,2,24,2,146,68,116,101,109,112,108,97,116,101,152,2,38,20,15, 159,35,38,46,89,162,32,32,8,28,9,225,6,5,4,27,250,22,209,20,15, 159,38,39,46,250,22,209,20,15,159,41,40,46,250,22,60,20,15,159,44,41, 46,20,15,159,44,42,46,250,22,209,20,15,159,47,43,46,254,22,62,20,15, -159,54,44,46,248,22,87,23,21,20,15,159,54,45,46,20,15,159,54,46,46, -248,22,89,23,21,20,15,159,54,47,46,251,22,2,89,162,33,33,49,9,223, +159,54,44,46,248,22,89,23,21,20,15,159,54,45,46,20,15,159,54,46,46, +248,22,52,23,21,20,15,159,54,47,46,251,22,2,89,162,33,33,49,9,223, 26,250,22,209,20,15,159,35,48,46,249,22,60,250,22,209,20,15,159,40,49, 46,249,22,56,248,22,52,204,248,22,78,204,20,15,159,40,50,46,250,22,209, 20,15,159,40,51,46,250,22,60,20,15,159,43,52,46,20,15,159,43,53,46, -248,22,87,205,20,15,159,40,54,46,20,15,159,35,55,46,248,22,52,23,25, -248,22,78,23,25,248,22,90,23,25,20,15,159,47,56,46,20,15,159,41,57, +248,22,87,205,20,15,159,40,54,46,20,15,159,35,55,46,248,22,78,23,25, +248,22,90,23,25,248,22,87,23,25,20,15,159,47,56,46,20,15,159,41,57, 46,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22, 252,184,2,208,248,80,158,42,45,20,15,159,42,58,46,247,198,247,193,32,20, 98,158,16,14,2,42,2,44,2,46,2,48,2,50,2,52,2,56,2,54,2, @@ -1677,82 +1676,84 @@ 118,50,57,48,53,163,2,163,16,4,8,66,11,2,74,3,1,7,101,110,118, 50,57,48,54,164,16,4,8,65,11,2,76,3,1,7,101,110,118,50,57,48, 55,165,16,4,8,64,11,2,78,3,1,7,101,110,118,50,57,48,57,166,95, -9,8,252,234,7,2,34,18,102,2,80,8,71,36,35,34,8,60,8,59,8, -58,16,4,8,70,11,3,1,4,103,51,51,48,167,3,1,7,101,110,118,50, -57,48,49,168,16,4,8,69,11,2,150,3,1,7,101,110,118,50,57,48,50, -169,18,158,2,89,8,71,18,158,2,145,8,71,18,158,93,16,2,158,2,146, -8,71,9,8,71,18,158,2,89,8,71,18,158,2,147,8,71,18,158,10,8, -71,18,158,2,146,8,71,18,158,2,149,8,71,18,158,2,89,8,71,18,158, -2,89,8,71,18,158,2,89,8,71,18,158,2,89,8,71,18,158,2,23,8, -71,18,158,2,146,8,71,18,158,2,89,8,71,18,158,2,89,8,71,18,158, -2,89,8,71,18,158,2,89,8,71,18,16,2,158,94,16,2,98,2,150,8, -75,93,8,252,230,7,16,4,8,74,11,3,1,8,119,115,116,109,112,51,50, -56,170,3,1,7,101,110,118,50,56,57,53,171,16,4,8,73,11,3,1,4, -103,51,50,57,172,3,1,7,101,110,118,50,57,49,56,173,16,4,8,72,11, -2,130,3,1,7,101,110,118,50,57,49,57,174,9,16,2,158,2,38,8,75, -9,8,75,95,9,8,252,230,7,2,30,11,16,5,93,2,21,89,162,32,33, -48,9,223,0,27,89,162,32,32,36,2,144,223,2,250,22,252,39,2,11,6, -10,10,98,97,100,32,115,121,110,116,97,120,195,27,28,248,80,158,35,32,196, -249,80,158,36,33,248,80,158,37,34,198,27,248,80,158,38,35,199,28,248,80, -158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41, -37,193,248,22,59,248,80,158,42,38,194,11,27,248,80,158,41,35,196,28,248, -80,158,41,37,193,248,22,9,89,162,32,33,39,9,224,9,1,27,249,22,2, -89,162,32,33,45,9,224,4,5,249,80,158,35,39,28,248,80,158,36,32,197, -249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80, -158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,40,248, -80,158,42,35,196,11,11,194,248,80,158,37,38,196,28,248,22,57,193,21,93, -9,248,80,158,35,41,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78, -195,27,248,22,87,196,27,248,22,88,197,28,249,22,4,80,158,40,42,248,22, -216,27,20,15,159,42,32,45,250,22,209,20,15,159,45,33,45,201,195,249,80, -158,40,43,201,27,251,22,61,200,202,199,201,27,20,15,159,42,34,45,91,159, -33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33, -40,9,226,12,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90, -161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224, -3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248, -22,252,186,2,193,249,80,158,35,44,21,94,1,21,109,97,107,101,45,115,101, -116,33,45,116,114,97,110,115,102,111,114,109,101,114,175,95,2,145,93,2,146, -100,2,147,2,87,10,2,146,94,2,148,2,38,2,149,94,2,151,95,2,23, -2,146,2,152,2,38,20,15,159,35,35,45,89,162,32,32,8,32,9,225,6, -5,4,27,250,22,209,20,15,159,38,36,45,250,22,209,20,15,159,41,37,45, -249,22,60,20,15,159,43,38,45,250,22,209,20,15,159,46,39,45,250,22,60, -20,15,159,49,40,45,20,15,159,49,41,45,250,22,209,20,15,159,52,42,45, -254,22,62,20,15,159,59,43,45,248,22,78,23,26,20,15,159,59,44,45,20, -15,159,59,45,45,248,22,88,23,26,20,15,159,59,46,45,250,22,2,89,162, -33,33,46,9,223,30,250,22,209,20,15,159,35,47,45,249,22,60,248,22,52, -199,250,22,209,20,15,159,40,48,45,250,22,60,20,15,159,43,49,45,20,15, -159,43,50,45,248,22,78,205,20,15,159,40,51,45,20,15,159,35,52,45,248, -22,52,23,29,248,22,87,23,29,20,15,159,52,53,45,20,15,159,46,54,45, -20,15,159,41,55,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34, -9,223,3,248,22,252,184,2,208,247,197,247,193,32,20,98,158,16,13,2,42, -2,44,2,46,2,48,2,50,2,52,2,56,2,54,2,58,2,107,2,153,2, -62,2,64,16,24,18,16,2,95,2,70,8,76,93,8,252,248,7,95,9,8, -252,248,7,2,34,18,100,2,80,8,80,36,35,34,16,4,8,79,11,2,146, -3,1,7,101,110,118,50,57,50,50,176,16,10,8,78,11,3,1,4,103,51, -51,49,177,3,1,4,103,51,51,50,178,3,1,4,103,51,51,51,179,3,1, -4,103,51,51,52,180,3,1,7,101,110,118,50,57,51,53,181,2,181,2,181, -2,181,16,10,8,77,11,2,87,2,148,2,151,2,152,3,1,7,101,110,118, -50,57,51,54,182,2,182,2,182,2,182,18,16,2,95,2,70,8,81,93,8, -252,250,7,95,9,8,252,250,7,2,34,18,16,2,99,2,38,8,86,93,8, -252,250,7,16,6,8,85,11,2,71,2,72,3,1,7,101,110,118,50,57,52, -50,183,2,183,16,4,8,84,11,2,74,3,1,7,101,110,118,50,57,52,51, -184,16,4,8,83,11,2,76,3,1,7,101,110,118,50,57,52,52,185,16,4, -8,82,11,2,78,3,1,7,101,110,118,50,57,52,54,186,95,9,8,252,250, -7,2,34,18,158,2,80,8,80,18,158,2,89,8,80,18,158,2,175,8,80, -18,158,2,89,8,80,18,158,2,145,8,80,18,158,93,16,2,158,2,146,8, -80,9,8,80,18,158,2,89,8,80,18,158,2,147,8,80,18,158,10,8,80, -18,158,2,146,8,80,18,158,2,149,8,80,18,158,2,89,8,80,18,158,2, -89,8,80,18,158,2,23,8,80,18,158,2,146,8,80,18,158,2,89,8,80, -18,158,2,89,8,80,18,158,2,89,8,80,18,158,2,89,8,80,18,158,2, -89,8,80,11,93,83,159,32,93,80,159,32,32,33,89,162,32,33,35,2,4, -223,0,248,22,9,89,162,32,33,38,9,224,1,2,27,247,22,110,87,94,249, -22,3,89,162,32,33,43,9,226,4,3,5,2,87,94,28,248,80,158,36,33, -197,12,250,22,252,40,2,2,4,6,19,19,108,105,115,116,32,111,102,32,105, -100,101,110,116,105,102,105,101,114,115,197,27,250,22,116,196,248,22,210,201,89, -97,40,32,32,9,222,87,94,28,249,22,5,89,162,32,33,36,9,223,7,249, -22,221,195,194,194,248,195,198,12,250,22,115,196,248,22,210,201,249,22,51,202, -197,195,11,98,68,35,37,107,101,114,110,101,108,187,2,67,2,6,2,34,2, -30,2,32,98,2,187,2,67,2,6,2,34,2,30,2,32,0}; - EVAL_ONE_SIZED_STR((char *)expr, 7954); +9,8,252,234,7,2,34,18,102,2,80,8,73,36,35,34,8,60,16,12,8, +72,11,2,155,2,156,2,157,2,158,2,159,2,160,2,160,2,160,2,160,2, +160,16,12,8,71,11,2,87,2,148,2,161,2,151,2,152,2,162,2,162,2, +162,2,162,2,162,16,4,8,70,11,3,1,4,103,51,51,48,167,3,1,7, +101,110,118,50,57,48,49,168,16,4,8,69,11,2,150,3,1,7,101,110,118, +50,57,48,50,169,18,158,2,89,8,73,18,158,2,145,8,73,18,158,93,16, +2,158,2,146,8,73,9,8,73,18,158,2,89,8,73,18,158,2,147,8,73, +18,158,10,8,73,18,158,2,146,8,73,18,158,2,149,8,73,18,158,2,89, +8,73,18,158,2,89,8,73,18,158,2,89,8,73,18,158,2,89,8,73,18, +158,2,24,8,73,18,158,2,146,8,73,18,158,2,89,8,73,18,158,2,89, +8,73,18,158,2,89,8,73,18,158,2,89,8,73,18,16,2,158,94,16,2, +98,2,150,8,77,93,8,252,230,7,16,4,8,76,11,3,1,8,119,115,116, +109,112,51,50,56,170,3,1,7,101,110,118,50,56,57,53,171,16,4,8,75, +11,3,1,4,103,51,50,57,172,3,1,7,101,110,118,50,57,49,56,173,16, +4,8,74,11,2,130,3,1,7,101,110,118,50,57,49,57,174,9,16,2,158, +2,38,8,77,9,8,77,95,9,8,252,230,7,2,30,11,16,5,93,2,28, +89,162,32,33,48,9,223,0,27,89,162,32,32,36,2,144,223,2,250,22,252, +39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,195,27,28,248,80, +158,35,32,196,249,80,158,36,33,248,80,158,37,34,198,27,248,80,158,38,35, +199,28,248,80,158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28, +248,80,158,41,37,193,248,22,59,248,80,158,42,38,194,11,27,248,80,158,41, +35,196,28,248,80,158,41,37,193,248,22,8,89,162,32,33,39,9,224,9,1, +27,249,22,2,89,162,32,33,45,9,224,4,5,249,80,158,35,39,28,248,80, +158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35, +200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80, +158,41,40,248,80,158,42,35,196,11,11,194,248,80,158,37,38,196,28,248,22, +57,193,21,93,9,248,80,158,35,41,193,11,11,11,28,192,27,248,22,52,194, +27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,28,249,22,4,80,158, +40,42,248,22,216,27,20,15,159,42,32,45,250,22,209,20,15,159,45,33,45, +201,195,249,80,158,40,43,201,27,251,22,61,201,199,200,202,27,20,15,159,42, +34,45,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8, +89,162,32,33,40,9,226,12,2,3,1,250,22,31,89,162,32,32,36,9,225, +6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32, +33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, +181,2,193,248,22,252,186,2,193,249,80,158,35,44,21,94,1,21,109,97,107, +101,45,115,101,116,33,45,116,114,97,110,115,102,111,114,109,101,114,175,95,2, +145,93,2,146,100,2,147,2,87,10,2,146,94,2,148,2,38,2,149,94,2, +151,95,2,24,2,146,2,152,2,38,20,15,159,35,35,45,89,162,32,32,8, +32,9,225,6,5,4,27,250,22,209,20,15,159,38,36,45,250,22,209,20,15, +159,41,37,45,249,22,60,20,15,159,43,38,45,250,22,209,20,15,159,46,39, +45,250,22,60,20,15,159,49,40,45,20,15,159,49,41,45,250,22,209,20,15, +159,52,42,45,254,22,62,20,15,159,59,43,45,248,22,88,23,26,20,15,159, +59,44,45,20,15,159,59,45,45,248,22,52,23,26,20,15,159,59,46,45,250, +22,2,89,162,33,33,46,9,223,30,250,22,209,20,15,159,35,47,45,249,22, +60,248,22,52,199,250,22,209,20,15,159,40,48,45,250,22,60,20,15,159,43, +49,45,20,15,159,43,50,45,248,22,78,205,20,15,159,40,51,45,20,15,159, +35,52,45,248,22,87,23,29,248,22,78,23,29,20,15,159,52,53,45,20,15, +159,46,54,45,20,15,159,41,55,45,197,89,162,32,32,33,9,223,0,192,89, +162,32,32,34,9,223,3,248,22,252,184,2,208,247,197,247,193,32,20,98,158, +16,13,2,42,2,44,2,46,2,48,2,50,2,52,2,56,2,54,2,58,2, +107,2,153,2,62,2,64,16,24,18,16,2,95,2,70,8,78,93,8,252,248, +7,95,9,8,252,248,7,2,34,18,100,2,80,8,82,36,35,34,16,4,8, +81,11,2,146,3,1,7,101,110,118,50,57,50,50,176,16,10,8,80,11,3, +1,4,103,51,51,49,177,3,1,4,103,51,51,50,178,3,1,4,103,51,51, +51,179,3,1,4,103,51,51,52,180,3,1,7,101,110,118,50,57,51,53,181, +2,181,2,181,2,181,16,10,8,79,11,2,87,2,148,2,151,2,152,3,1, +7,101,110,118,50,57,51,54,182,2,182,2,182,2,182,18,16,2,95,2,70, +8,83,93,8,252,250,7,95,9,8,252,250,7,2,34,18,16,2,99,2,38, +8,88,93,8,252,250,7,16,6,8,87,11,2,71,2,72,3,1,7,101,110, +118,50,57,52,50,183,2,183,16,4,8,86,11,2,74,3,1,7,101,110,118, +50,57,52,51,184,16,4,8,85,11,2,76,3,1,7,101,110,118,50,57,52, +52,185,16,4,8,84,11,2,78,3,1,7,101,110,118,50,57,52,54,186,95, +9,8,252,250,7,2,34,18,158,2,80,8,82,18,158,2,89,8,82,18,158, +2,175,8,82,18,158,2,89,8,82,18,158,2,145,8,82,18,158,93,16,2, +158,2,146,8,82,9,8,82,18,158,2,89,8,82,18,158,2,147,8,82,18, +158,10,8,82,18,158,2,146,8,82,18,158,2,149,8,82,18,158,2,89,8, +82,18,158,2,89,8,82,18,158,2,24,8,82,18,158,2,146,8,82,18,158, +2,89,8,82,18,158,2,89,8,82,18,158,2,89,8,82,18,158,2,89,8, +82,18,158,2,89,8,82,11,93,83,159,32,93,80,159,32,32,33,89,162,32, +33,35,2,4,223,0,248,22,8,89,162,32,33,38,9,224,1,2,27,247,22, +110,87,94,249,22,3,89,162,32,33,43,9,226,4,3,5,2,87,94,28,248, +80,158,36,33,197,12,250,22,252,40,2,2,4,6,19,19,108,105,115,116,32, +111,102,32,105,100,101,110,116,105,102,105,101,114,115,197,27,250,22,116,196,248, +22,210,201,89,97,40,32,32,9,222,87,94,28,249,22,5,89,162,32,33,36, +9,223,7,249,22,221,195,194,194,248,195,198,12,250,22,115,196,248,22,210,201, +249,22,51,202,197,195,11,98,68,35,37,107,101,114,110,101,108,187,2,67,2, +6,2,34,2,30,2,33,98,2,187,2,67,2,6,2,34,2,30,2,33,0}; + EVAL_ONE_SIZED_STR((char *)expr, 8000); } { static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,102,252,138,12,159,32,20,98,158,16,1,20, @@ -1760,15 +1761,15 @@ 115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16,2, 30,3,2,2,79,99,104,101,99,107,45,115,112,108,105,99,105,110,103,45,108, 105,115,116,4,254,1,30,5,65,35,37,115,116,120,6,69,115,116,120,45,108, -105,115,116,63,7,8,16,0,11,11,16,1,2,4,33,11,16,4,71,113,117, -97,115,105,115,121,110,116,97,120,8,68,117,110,115,121,110,116,97,120,9,75, -113,117,97,115,105,115,121,110,116,97,120,47,108,111,99,10,77,117,110,115,121, -110,116,97,120,45,115,112,108,105,99,105,110,103,11,16,4,11,11,11,11,16, -4,2,8,2,9,2,10,2,11,32,36,94,16,5,94,2,9,2,11,27,89, +105,115,116,63,7,8,16,0,11,11,16,1,2,4,33,11,16,4,68,117,110, +115,121,110,116,97,120,8,77,117,110,115,121,110,116,97,120,45,115,112,108,105, +99,105,110,103,9,75,113,117,97,115,105,115,121,110,116,97,120,47,108,111,99, +10,71,113,117,97,115,105,115,121,110,116,97,120,11,16,4,11,11,11,11,16, +4,2,8,2,9,2,10,2,11,32,36,94,16,5,94,2,8,2,9,27,89, 162,32,33,36,61,102,12,222,250,22,252,39,2,11,6,30,30,105,108,108,101, 103,97,108,32,111,117,116,115,105,100,101,32,111,102,32,113,117,97,115,105,115, 121,110,116,97,120,195,249,22,7,194,194,35,20,98,158,16,0,16,0,11,16, -5,94,2,8,2,10,27,89,162,32,35,42,62,113,113,13,223,1,27,20,15, +5,94,2,11,2,10,27,89,162,32,35,42,62,113,113,13,223,1,27,20,15, 159,33,32,40,251,91,159,33,11,20,12,95,33,192,89,162,32,36,56,64,108, 111,111,112,14,226,6,7,5,0,27,249,22,209,20,15,159,38,33,40,199,27, 28,248,80,158,38,32,194,28,27,248,80,158,39,33,195,28,248,80,158,39,34, @@ -1791,12 +1792,12 @@ 249,22,209,20,15,159,38,37,40,248,22,52,248,80,158,40,38,21,93,63,117, 113,115,17,27,249,22,209,20,15,159,39,38,40,250,22,209,199,63,99,116,120, 18,199,249,198,250,22,209,200,250,22,61,201,20,15,159,45,39,40,206,200,249, -22,51,27,250,22,61,200,202,201,27,20,15,159,43,40,40,250,22,209,20,15, +22,51,27,250,22,61,202,200,201,27,20,15,159,43,40,40,250,22,209,20,15, 159,46,41,40,250,22,209,20,15,159,49,42,40,249,22,60,250,22,209,20,15, 159,54,43,40,249,22,60,248,22,80,23,15,20,15,159,56,44,40,20,15,159, 54,45,40,250,22,209,20,15,159,54,46,40,250,22,60,20,15,159,57,47,40, -248,22,78,23,16,250,22,209,20,15,159,8,28,48,40,249,22,60,20,15,159, -8,30,49,40,248,22,52,23,21,20,15,159,8,28,50,40,20,15,159,54,51, +248,22,52,23,16,250,22,209,20,15,159,8,28,48,40,249,22,60,20,15,159, +8,30,49,40,248,22,78,23,21,20,15,159,8,28,50,40,20,15,159,54,51, 40,20,15,159,49,52,40,195,203,251,203,197,23,16,89,162,32,32,36,9,224, 5,4,249,194,195,9,196,251,202,197,248,22,171,23,16,89,162,32,32,46,9, 229,13,10,17,16,15,14,4,251,201,196,198,199,27,248,80,158,44,33,199,27, @@ -1858,7 +1859,7 @@ 105,101,115,36,0,30,37,2,6,67,99,111,110,115,47,35,102,38,1,16,31, 18,98,64,104,101,114,101,39,38,98,36,10,32,11,94,159,2,6,9,11,159, 76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,40,9,11,16, -10,2,8,2,2,2,10,2,2,2,9,2,2,2,4,2,2,2,11,2,2, +10,2,8,2,2,2,4,2,2,2,10,2,2,2,9,2,2,2,11,2,2, 98,35,10,33,11,94,159,2,6,9,11,159,2,40,9,11,16,0,96,34,8, 254,1,11,16,0,16,8,33,11,68,111,114,105,103,45,115,116,120,41,64,98, 111,100,121,42,68,109,107,45,102,105,110,97,108,43,3,1,7,101,110,118,50, @@ -1866,8 +1867,8 @@ 68,104,101,114,101,45,115,116,120,45,3,1,7,101,110,118,50,57,55,48,46, 16,4,40,11,2,14,3,1,7,101,110,118,50,57,55,49,47,16,10,39,11, 63,115,116,120,48,65,100,101,112,116,104,49,2,21,2,20,3,1,7,101,110, -118,50,57,55,50,50,2,50,2,50,2,50,18,158,2,9,42,18,158,2,9, -42,18,158,2,11,42,18,104,2,39,46,36,35,34,33,41,40,39,16,6,45, +118,50,57,55,50,50,2,50,2,50,2,50,18,158,2,8,42,18,158,2,8, +42,18,158,2,9,42,18,104,2,39,46,36,35,34,33,41,40,39,16,6,45, 11,3,1,4,103,51,51,55,51,3,1,4,103,51,51,56,52,3,1,7,101, 110,118,50,57,57,51,53,2,53,16,6,44,11,61,120,54,64,114,101,115,116, 55,3,1,7,101,110,118,50,57,57,52,56,2,56,16,6,43,11,66,114,101, @@ -1882,13 +1883,13 @@ 101,69,18,158,64,100,101,115,116,70,51,18,158,2,18,51,18,158,2,18,51, 18,158,2,60,51,18,158,2,18,51,18,158,2,18,51,18,158,2,4,51,18, 158,2,18,51,18,158,72,113,117,111,116,101,45,115,121,110,116,97,120,71,51, -18,158,2,18,51,18,158,2,18,51,18,158,2,18,51,18,158,2,11,42,18, -158,2,8,42,18,106,2,9,58,36,35,34,33,41,40,39,16,4,57,11,3, +18,158,2,18,51,18,158,2,18,51,18,158,2,18,51,18,158,2,9,42,18, +158,2,11,42,18,106,2,8,58,36,35,34,33,41,40,39,16,4,57,11,3, 1,4,103,51,51,53,72,3,1,7,101,110,118,51,48,52,48,73,16,4,56, 11,65,95,101,108,115,101,74,3,1,7,101,110,118,51,48,52,49,75,16,4, 55,11,2,19,3,1,7,101,110,118,51,48,52,52,76,16,4,54,11,61,108, 77,3,1,7,101,110,118,51,48,52,53,78,16,4,53,11,61,97,79,3,1, -7,101,110,118,51,48,52,54,80,18,158,2,8,58,18,158,2,11,58,18,16, +7,101,110,118,51,48,52,54,80,18,158,2,11,58,18,158,2,9,58,18,16, 2,100,71,119,105,116,104,45,115,121,110,116,97,120,81,8,28,36,35,34,33, 41,16,4,59,11,2,58,3,1,7,101,110,118,51,48,53,56,82,9,18,99, 2,39,8,31,36,35,34,16,4,8,30,11,2,13,3,1,7,101,110,118,50, @@ -1906,7 +1907,7 @@ 118,51,48,55,54,99,2,99,2,99,16,4,8,38,11,2,42,3,1,7,101, 110,118,51,48,56,48,100,11,93,83,159,32,93,80,159,32,32,33,89,162,32, 34,38,2,4,223,0,87,94,28,248,80,158,33,33,194,12,250,22,252,40,2, -2,11,6,18,18,112,114,111,112,101,114,32,115,121,110,116,97,120,32,108,105, +2,9,6,18,18,112,114,111,112,101,114,32,115,121,110,116,97,120,32,108,105, 115,116,196,250,22,209,197,196,197,95,68,35,37,107,101,114,110,101,108,101,2, 40,2,6,95,2,101,2,40,2,6,0}; EVAL_ONE_SIZED_STR((char *)expr, 3223); @@ -1915,11 +1916,11 @@ static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,165,252,59,26,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,68,35,37,100,101, 102,105,110,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16, -0,16,0,11,11,16,0,32,11,16,4,66,100,101,102,105,110,101,3,76,98, -101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,4,77,100,101,102,105, -110,101,45,102,111,114,45,115,121,110,116,97,120,5,73,100,101,102,105,110,101, +0,16,0,11,11,16,0,32,11,16,4,77,100,101,102,105,110,101,45,102,111, +114,45,115,121,110,116,97,120,3,76,98,101,103,105,110,45,102,111,114,45,115, +121,110,116,97,120,4,66,100,101,102,105,110,101,5,73,100,101,102,105,110,101, 45,115,121,110,116,97,120,6,16,4,11,11,11,11,16,4,2,3,2,4,2, -5,2,6,32,36,94,16,5,95,2,3,2,6,2,5,27,89,162,32,33,34, +5,2,6,32,36,94,16,5,95,2,5,2,6,2,3,27,89,162,32,33,34, 62,109,107,7,223,1,89,162,32,33,8,28,9,224,0,1,87,94,28,249,22, 71,247,22,252,81,3,21,93,70,101,120,112,114,101,115,115,105,111,110,8,250, 22,252,39,2,11,6,36,36,110,111,116,32,97,108,108,111,119,101,100,32,105, @@ -1946,12 +1947,12 @@ 158,47,39,198,33,11,28,194,27,28,248,22,206,197,196,201,249,80,158,47,40, 28,248,80,158,48,36,196,248,22,59,248,80,158,49,37,197,11,250,22,209,197, 199,197,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196, -249,22,7,248,22,216,27,249,22,61,198,199,27,20,15,159,46,42,45,250,22, -209,20,15,159,49,43,45,249,22,65,248,22,53,199,248,22,60,248,22,52,200, +249,22,7,248,22,216,27,249,22,61,199,198,27,20,15,159,46,42,45,250,22, +209,20,15,159,49,43,45,249,22,65,248,22,52,199,248,22,60,248,22,53,200, 195,89,162,32,33,55,9,226,11,10,2,3,27,249,22,209,20,15,159,38,44, -45,199,249,80,158,38,38,197,27,250,22,61,200,199,198,27,20,15,159,40,45, +45,199,249,80,158,38,38,197,27,250,22,61,199,198,200,27,20,15,159,40,45, 45,250,22,209,20,15,159,43,46,45,250,22,209,20,15,159,46,47,45,250,22, -62,20,15,159,49,48,45,249,22,65,248,22,78,205,248,22,52,205,248,22,80, +62,20,15,159,49,48,45,249,22,65,248,22,52,205,248,22,80,205,248,22,78, 203,20,15,159,46,49,45,195,250,22,252,39,2,11,6,10,10,98,97,100,32, 115,121,110,116,97,120,197,87,95,249,22,3,89,162,32,33,39,9,224,5,4, 28,248,80,158,34,41,195,12,251,22,252,39,2,11,6,40,40,110,111,116,32, @@ -1988,11 +1989,11 @@ 40,110,111,32,101,120,112,114,101,115,115,105,111,110,115,32,102,111,114,32,112, 114,111,99,101,100,117,114,101,32,98,111,100,121,41,202,12,27,249,22,209,20, 15,159,44,55,45,203,27,249,22,209,20,15,159,45,56,45,196,27,249,22,209, -20,15,159,46,57,45,248,199,200,249,80,158,46,38,204,27,250,22,61,200,199, -198,27,20,15,159,48,58,45,250,22,209,20,15,159,51,59,45,250,22,209,20, -15,159,54,8,28,45,250,22,60,248,22,52,203,250,22,209,20,15,159,8,28, -8,29,45,248,22,60,248,22,78,23,15,20,15,159,8,28,8,30,45,248,22, -80,203,20,15,159,54,8,31,45,195,250,22,252,39,2,11,6,10,10,98,97, +20,15,159,46,57,45,248,199,200,249,80,158,46,38,204,27,250,22,61,198,200, +199,27,20,15,159,48,58,45,250,22,209,20,15,159,51,59,45,250,22,209,20, +15,159,54,8,28,45,250,22,60,248,22,78,203,250,22,209,20,15,159,8,28, +8,29,45,248,22,60,248,22,80,23,15,20,15,159,8,28,8,30,45,248,22, +52,203,20,15,159,54,8,31,45,195,250,22,252,39,2,11,6,10,10,98,97, 100,32,115,121,110,116,97,120,196,27,28,248,80,158,38,32,195,249,80,158,39, 33,248,80,158,40,34,197,27,248,80,158,41,35,198,28,248,80,158,41,32,193, 27,28,248,22,206,194,193,198,249,80,158,43,33,248,80,158,44,34,196,27,248, @@ -2029,10 +2030,10 @@ 44,40,248,80,158,45,34,195,248,80,158,45,44,248,80,158,46,35,196,11,11, 11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28,248,80, 158,40,41,194,27,249,22,209,20,15,159,42,8,33,45,201,249,80,158,42,38, -203,27,250,22,61,199,200,198,27,20,15,159,44,8,34,45,250,22,209,20,15, +203,27,250,22,61,200,199,198,27,20,15,159,44,8,34,45,250,22,209,20,15, 159,47,8,35,45,250,22,209,20,15,159,50,8,36,45,250,22,60,248,22,80, -203,250,22,209,20,15,159,56,8,37,45,248,22,60,248,22,78,23,15,20,15, -159,56,8,38,45,248,22,52,203,20,15,159,50,8,39,45,195,247,196,247,193, +203,250,22,209,20,15,159,56,8,37,45,248,22,60,248,22,52,23,15,20,15, +159,56,8,38,45,248,22,78,203,20,15,159,50,8,39,45,195,247,196,247,193, 250,22,7,248,196,20,15,159,37,8,40,45,248,196,20,15,159,37,8,41,45, 248,196,20,15,159,37,8,42,45,37,20,98,158,16,13,30,12,65,35,37,115, 116,120,13,69,115,116,120,45,112,97,105,114,63,14,11,30,15,2,13,67,99, @@ -2060,24 +2061,24 @@ 54,2,54,16,6,40,11,2,10,2,11,3,1,7,101,110,118,51,49,48,56, 55,2,55,18,16,2,95,66,115,114,99,116,97,103,56,44,93,8,252,114,8, 95,9,8,252,114,8,69,35,37,115,116,120,99,97,115,101,57,18,104,64,100, -101,115,116,58,48,37,36,35,34,33,42,41,16,6,47,11,2,10,2,11,2, -55,2,55,16,6,46,11,3,1,4,103,51,54,54,59,3,1,4,103,51,54, -55,60,3,1,7,101,110,118,51,49,49,53,61,2,61,16,6,45,11,62,105, -100,62,63,97,114,103,63,3,1,7,101,110,118,51,49,49,54,64,2,64,18, -158,2,41,48,18,16,2,95,2,56,49,93,8,252,120,8,95,9,8,252,120, -8,2,57,18,158,2,58,48,18,158,63,99,116,120,65,48,18,158,66,108,97, -109,98,100,97,66,48,18,158,2,65,48,18,16,2,95,2,56,50,93,8,252, -121,8,95,9,8,252,121,8,2,57,18,104,2,58,53,37,36,35,34,33,42, -41,47,16,8,52,11,3,1,4,103,51,54,51,67,3,1,4,103,51,54,52, -68,3,1,4,103,51,54,53,69,3,1,7,101,110,118,51,49,52,49,70,2, -70,2,70,16,8,51,11,2,62,2,63,64,114,101,115,116,71,3,1,7,101, -110,118,51,49,52,50,72,2,72,2,72,18,158,2,41,53,18,16,2,95,2, -56,54,93,8,252,127,8,95,9,8,252,127,8,2,57,18,158,2,58,53,18, -158,2,65,53,18,158,2,66,53,18,158,2,65,53,18,158,2,41,43,18,16, -2,95,2,56,55,93,8,252,139,8,95,9,8,252,139,8,2,57,18,104,2, -58,58,37,36,35,34,33,42,41,40,16,8,57,11,3,1,4,103,51,55,54, +101,115,116,58,47,37,36,35,34,33,42,41,40,16,6,46,11,3,1,4,103, +51,54,54,59,3,1,4,103,51,54,55,60,3,1,7,101,110,118,51,49,49, +53,61,2,61,16,6,45,11,62,105,100,62,63,97,114,103,63,3,1,7,101, +110,118,51,49,49,54,64,2,64,18,158,2,41,47,18,16,2,95,2,56,48, +93,8,252,120,8,95,9,8,252,120,8,2,57,18,158,2,58,47,18,158,63, +99,116,120,65,47,18,158,66,108,97,109,98,100,97,66,47,18,158,2,65,47, +18,16,2,95,2,56,49,93,8,252,121,8,95,9,8,252,121,8,2,57,18, +104,2,58,52,37,36,35,34,33,42,41,40,16,8,51,11,3,1,4,103,51, +54,51,67,3,1,4,103,51,54,52,68,3,1,4,103,51,54,53,69,3,1, +7,101,110,118,51,49,52,49,70,2,70,2,70,16,8,50,11,2,62,2,63, +64,114,101,115,116,71,3,1,7,101,110,118,51,49,52,50,72,2,72,2,72, +18,158,2,41,52,18,16,2,95,2,56,53,93,8,252,127,8,95,9,8,252, +127,8,2,57,18,158,2,58,52,18,158,2,65,52,18,158,2,66,52,18,158, +2,65,52,18,158,2,41,43,18,16,2,95,2,56,54,93,8,252,139,8,95, +9,8,252,139,8,2,57,18,104,2,58,58,37,36,35,34,33,42,41,16,6, +57,11,2,10,2,11,2,55,2,55,16,8,56,11,3,1,4,103,51,55,54, 73,3,1,4,103,51,55,55,74,3,1,4,103,51,55,56,75,3,1,7,101, -110,118,51,49,55,51,76,2,76,2,76,16,8,56,11,69,115,111,109,101,116, +110,118,51,49,55,51,76,2,76,2,76,16,8,55,11,69,115,111,109,101,116, 104,105,110,103,77,64,109,111,114,101,78,2,71,3,1,7,101,110,118,51,49, 55,52,79,2,79,2,79,18,158,2,65,58,18,158,2,65,58,18,102,2,41, 8,28,37,36,35,34,33,42,41,16,6,59,11,2,62,66,109,107,45,114,104, @@ -2132,9 +2133,9 @@ 196,28,248,80,158,48,38,193,248,22,59,248,80,158,49,39,194,11,27,248,80, 158,48,36,196,28,248,80,158,48,32,193,249,80,158,49,33,248,80,158,50,34, 195,248,80,158,50,35,248,80,158,51,36,196,11,11,11,11,28,192,27,248,22, -52,194,27,248,22,53,195,27,249,22,61,195,196,27,20,15,159,47,51,42,250, +52,194,27,248,22,53,195,27,249,22,61,196,195,27,20,15,159,47,51,42,250, 22,209,20,15,159,50,52,42,250,22,209,20,15,159,53,53,42,250,22,60,20, -15,159,56,54,42,248,22,53,203,248,22,52,203,20,15,159,53,55,42,195,27, +15,159,56,54,42,248,22,52,203,248,22,53,203,20,15,159,53,55,42,195,27, 28,248,80,158,45,32,196,28,27,248,80,158,46,34,197,28,248,80,158,46,41, 193,28,249,22,224,194,20,15,159,47,56,42,9,11,11,27,248,80,158,46,36, 197,28,248,80,158,46,38,193,248,80,158,46,39,193,11,11,11,28,192,27,20, @@ -2236,7 +2237,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 6728); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,252,169,1,252,238,86,159,32,20,98,158,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,252,169,1,252,237,86,159,32,20,98,158,16, 1,20,24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,73,35,37, 109,111,114,101,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,46,80, 158,32,32,20,98,158,16,24,30,3,2,2,74,115,116,114,117,99,116,58,112, @@ -2274,13 +2275,13 @@ 101,99,107,45,102,111,114,45,98,114,101,97,107,51,254,1,16,0,11,11,16, 14,2,41,2,39,2,31,2,33,2,29,2,37,2,27,2,6,2,10,2,43, 2,12,2,35,2,25,2,4,46,11,16,18,2,49,2,23,2,45,2,16,2, -14,2,8,64,116,105,109,101,52,69,102,108,117,105,100,45,108,101,116,53,70, -108,101,116,45,115,116,114,117,99,116,54,72,112,97,114,97,109,101,116,101,114, -105,122,101,55,65,100,101,108,97,121,56,62,100,111,57,71,115,101,116,33,45, -118,97,108,117,101,115,58,73,119,105,116,104,45,104,97,110,100,108,101,114,115, -59,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,60,78,112,97,114, -97,109,101,116,101,114,105,122,101,45,98,114,101,97,107,61,64,99,97,115,101, -62,66,108,101,116,47,99,99,63,16,18,11,11,11,11,11,11,11,11,11,11, +14,2,8,66,108,101,116,47,99,99,52,73,119,105,116,104,45,104,97,110,100, +108,101,114,115,53,64,99,97,115,101,54,62,100,111,55,74,119,105,116,104,45, +104,97,110,100,108,101,114,115,42,56,71,115,101,116,33,45,118,97,108,117,101, +115,57,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97,107, +58,70,108,101,116,45,115,116,114,117,99,116,59,64,116,105,109,101,60,69,102, +108,117,105,100,45,108,101,116,61,72,112,97,114,97,109,101,116,101,114,105,122, +101,62,65,100,101,108,97,121,63,16,18,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,16,18,2,49,2,23,2,45,2,16,2,14,2, 8,2,52,2,53,2,54,2,55,2,56,2,57,2,58,2,59,2,60,2,61, 2,62,2,63,38,50,106,16,5,93,69,99,97,115,101,45,116,101,115,116,64, @@ -2291,23 +2292,23 @@ 80,158,44,34,196,28,248,80,158,44,32,193,249,80,158,45,36,248,80,158,46, 34,195,248,80,158,46,37,248,80,158,47,35,196,11,248,80,158,43,37,248,80, 158,44,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, -22,80,196,28,248,22,41,248,22,210,194,27,249,22,61,195,196,27,20,15,159, +22,80,196,28,248,22,41,248,22,210,194,27,249,22,61,196,195,27,20,15,159, 39,33,40,250,22,209,20,15,159,42,34,40,250,22,209,20,15,159,45,35,40, -250,22,60,20,15,159,48,36,40,248,22,53,203,250,22,209,20,15,159,51,37, -40,249,22,60,20,15,159,53,38,40,248,22,52,23,16,20,15,159,51,39,40, -20,15,159,45,40,40,195,27,249,22,61,195,196,27,20,15,159,39,41,40,250, +250,22,60,20,15,159,48,36,40,248,22,52,203,250,22,209,20,15,159,51,37, +40,249,22,60,20,15,159,53,38,40,248,22,53,23,16,20,15,159,51,39,40, +20,15,159,45,40,40,195,27,249,22,61,196,195,27,20,15,159,39,41,40,250, 22,209,20,15,159,42,42,40,250,22,209,20,15,159,45,43,40,250,22,60,20, -15,159,48,44,40,248,22,53,203,250,22,209,20,15,159,51,45,40,249,22,60, -20,15,159,53,46,40,248,22,52,23,16,20,15,159,51,47,40,20,15,159,45, +15,159,48,44,40,248,22,52,203,250,22,209,20,15,159,51,45,40,249,22,60, +20,15,159,53,46,40,248,22,53,23,16,20,15,159,51,47,40,20,15,159,45, 48,40,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34, 197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,33,248, 80,158,41,34,195,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80, 158,43,36,27,248,80,158,45,34,196,28,248,80,158,45,38,193,248,80,158,45, 39,193,11,248,80,158,44,37,248,80,158,45,35,196,11,11,11,28,192,27,248, -22,52,194,27,248,22,78,195,27,248,22,80,196,27,249,22,61,195,196,27,20, +22,52,194,27,248,22,78,195,27,248,22,80,196,27,249,22,61,196,195,27,20, 15,159,40,49,40,250,22,209,20,15,159,43,50,40,250,22,209,20,15,159,46, -51,40,250,22,60,20,15,159,49,52,40,248,22,53,203,250,22,209,20,15,159, -52,53,40,249,22,60,20,15,159,54,54,40,248,22,52,23,16,20,15,159,52, +51,40,250,22,60,20,15,159,49,52,40,248,22,52,203,250,22,209,20,15,159, +52,53,40,249,22,60,20,15,159,54,54,40,248,22,53,23,16,20,15,159,52, 55,40,20,15,159,46,56,40,195,250,22,252,39,2,11,6,10,10,98,97,100, 32,115,121,110,116,97,120,197,32,20,98,158,16,8,30,65,65,35,37,115,116, 120,66,69,115,116,120,45,112,97,105,114,63,67,11,30,68,2,66,67,99,111, @@ -2318,15 +2319,15 @@ 8,30,80,2,66,69,115,116,120,45,62,108,105,115,116,81,4,16,25,18,98, 64,104,101,114,101,82,38,98,36,10,32,11,95,159,2,18,9,11,159,68,35, 37,100,101,102,105,110,101,83,9,11,159,74,35,37,115,109,97,108,108,45,115, -99,104,101,109,101,84,9,11,16,70,2,61,2,2,2,41,2,2,2,23,2, -2,2,35,2,2,2,27,2,2,2,6,2,2,2,63,2,2,2,31,2,2, -2,12,2,2,2,62,2,2,2,64,2,2,2,33,2,2,2,8,2,2,2, -56,2,2,1,22,98,114,101,97,107,45,112,97,114,97,109,101,116,101,114,105, -122,97,116,105,111,110,85,2,2,2,43,2,2,2,45,2,2,2,39,2,2, -2,49,2,2,2,52,2,2,2,59,2,2,2,57,2,2,67,112,114,111,109, -105,115,101,86,2,2,2,10,2,2,2,14,2,2,2,55,2,2,2,4,2, -2,2,60,2,2,2,29,2,2,2,58,2,2,2,54,2,2,2,37,2,2, -2,16,2,2,2,25,2,2,2,53,2,2,98,35,10,33,11,95,159,67,35, +99,104,101,109,101,84,9,11,16,70,2,33,2,2,2,23,2,2,2,29,2, +2,2,63,2,2,2,53,2,2,67,112,114,111,109,105,115,101,85,2,2,2, +54,2,2,2,55,2,2,2,14,2,2,2,56,2,2,2,57,2,2,2,45, +2,2,2,12,2,2,1,22,98,114,101,97,107,45,112,97,114,97,109,101,116, +101,114,105,122,97,116,105,111,110,86,2,2,2,49,2,2,2,39,2,2,2, +64,2,2,2,62,2,2,2,8,2,2,2,52,2,2,2,41,2,2,2,10, +2,2,2,25,2,2,2,35,2,2,2,27,2,2,2,58,2,2,2,4,2, +2,2,6,2,2,2,59,2,2,2,60,2,2,2,37,2,2,2,16,2,2, +2,31,2,2,2,61,2,2,2,43,2,2,98,35,10,33,11,95,159,67,35, 37,113,113,115,116,120,87,9,11,159,76,35,37,115,116,120,99,97,115,101,45, 115,99,104,101,109,101,88,9,11,159,2,66,9,11,16,0,96,34,8,254,1, 11,16,0,16,4,33,11,61,120,89,3,1,7,101,110,118,51,51,57,49,90, @@ -2346,7 +2347,7 @@ 7,101,110,118,51,52,49,48,108,2,108,2,108,16,6,45,11,2,98,2,99, 3,1,7,101,110,118,51,52,49,49,109,2,109,18,158,2,101,47,18,158,64, 109,101,109,118,110,47,18,158,2,101,47,18,158,2,103,47,18,158,2,101,47, -18,158,2,101,47,11,16,5,93,2,62,89,162,32,33,8,36,9,223,0,27, +18,158,2,101,47,11,16,5,93,2,54,89,162,32,33,8,36,9,223,0,27, 249,22,209,20,15,159,35,32,43,196,27,28,248,80,158,35,32,194,249,80,158, 36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, 193,249,80,158,39,36,248,80,158,40,34,195,248,80,158,40,37,248,80,158,41, @@ -2362,9 +2363,9 @@ 248,80,158,48,34,195,27,248,80,158,49,35,196,28,248,80,158,49,39,193,248, 80,158,49,40,193,11,11,11,11,248,80,158,44,37,248,80,158,45,35,196,11, 11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248, -22,88,197,249,80,158,41,41,202,27,250,22,61,198,199,200,27,20,15,159,43, +22,88,197,249,80,158,41,41,202,27,250,22,61,199,200,198,27,20,15,159,43, 40,43,250,22,209,20,15,159,46,41,43,250,22,209,20,15,159,49,42,43,251, -22,62,20,15,159,53,43,43,248,22,80,204,248,22,78,204,248,22,52,204,20, +22,62,20,15,159,53,43,43,248,22,78,204,248,22,52,204,248,22,80,204,20, 15,159,49,44,43,195,27,28,248,80,158,37,32,196,249,80,158,38,33,248,80, 158,39,34,198,27,248,80,158,40,35,199,28,248,80,158,40,32,193,249,80,158, 41,33,248,80,158,42,34,195,27,248,80,158,43,35,196,28,248,80,158,43,32, @@ -2375,8 +2376,8 @@ 158,52,39,193,248,80,158,52,40,193,11,11,11,248,80,158,45,37,248,80,158, 46,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22, 87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,43,41,204,27,251,22, -61,202,200,199,201,27,20,15,159,45,45,43,91,159,33,11,90,161,33,32,11, -83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,15,2,3,1, +61,202,201,199,200,27,20,15,159,45,45,43,91,159,33,11,90,161,33,32,11, +83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,15,2,3,1, 250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252, 184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32, 32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80, @@ -2385,8 +2386,8 @@ 89,162,32,32,52,9,225,6,5,4,27,250,22,209,20,15,159,38,47,43,250, 22,209,20,15,159,41,48,43,250,22,60,20,15,159,44,49,43,250,22,209,20, 15,159,47,50,43,250,22,60,20,15,159,50,51,43,248,22,52,23,17,248,22, -88,23,17,20,15,159,47,52,43,250,22,209,20,15,159,47,53,43,250,22,62, -20,15,159,50,54,43,248,22,78,23,17,248,22,87,23,17,20,15,159,47,55, +78,23,17,20,15,159,47,52,43,250,22,209,20,15,159,47,53,43,250,22,62, +20,15,159,50,54,43,248,22,88,23,17,248,22,87,23,17,20,15,159,47,55, 43,20,15,159,41,56,43,197,89,162,32,32,33,9,223,0,192,89,162,32,32, 34,9,223,3,248,22,252,184,2,208,27,28,248,80,158,38,32,197,249,80,158, 39,33,248,80,158,40,34,199,27,248,80,158,41,35,200,28,248,80,158,41,32, @@ -2400,14 +2401,14 @@ 49,34,195,27,248,80,158,50,35,196,28,248,80,158,50,39,193,248,80,158,50, 40,193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, 22,87,196,27,248,22,90,197,27,249,22,70,199,36,27,249,22,70,200,37,27, -249,22,69,201,38,249,80,158,46,41,23,15,27,253,22,61,206,202,204,203,205, -201,27,20,15,159,48,57,43,91,159,33,11,90,161,33,32,11,83,160,38,32, -33,11,247,248,22,9,89,162,32,33,40,9,226,18,2,3,1,250,22,31,89, +249,22,69,201,38,249,80,158,46,41,23,15,27,253,22,61,206,205,201,203,202, +204,27,20,15,159,48,57,43,91,159,33,11,90,161,33,32,11,83,160,38,32, +33,11,247,248,22,8,89,162,32,33,40,9,226,18,2,3,1,250,22,31,89, 162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22, 252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224, 2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,42,21, 95,63,108,101,116,116,93,94,2,89,2,112,96,2,111,95,2,64,2,89,94, -2,99,2,113,96,2,0,2,114,2,115,2,113,97,2,62,2,89,62,99,49, +2,99,2,113,96,2,0,2,114,2,115,2,113,97,2,54,2,89,62,99,49, 117,62,99,50,118,2,113,20,15,159,35,58,43,89,162,32,32,8,29,9,225, 6,5,4,27,250,22,209,20,15,159,38,59,43,250,22,209,20,15,159,41,8, 28,43,250,22,60,20,15,159,44,8,29,43,250,22,209,20,15,159,47,8,30, @@ -2415,11 +2416,11 @@ 8,32,43,248,22,52,23,20,20,15,159,51,8,33,43,20,15,159,47,8,34, 43,250,22,209,20,15,159,47,8,35,43,251,22,60,20,15,159,51,8,36,43, 250,22,209,20,15,159,54,8,37,43,250,22,60,20,15,159,57,8,38,43,20, -15,159,57,8,39,43,249,22,70,23,25,36,20,15,159,54,8,40,43,250,22, -209,20,15,159,54,8,41,43,250,22,62,20,15,159,57,8,42,43,248,22,87, -23,24,248,22,90,23,24,20,15,159,54,8,43,43,250,22,209,20,15,159,54, -8,44,43,251,22,62,20,15,159,58,8,45,43,20,15,159,58,8,46,43,248, -22,78,23,25,249,22,69,23,26,37,20,15,159,54,8,47,43,20,15,159,47, +15,159,57,8,39,43,248,22,78,23,24,20,15,159,54,8,40,43,250,22,209, +20,15,159,54,8,41,43,250,22,62,20,15,159,57,8,42,43,249,22,69,23, +25,37,248,22,90,23,24,20,15,159,54,8,43,43,250,22,209,20,15,159,54, +8,44,43,251,22,62,20,15,159,58,8,45,43,20,15,159,58,8,46,43,249, +22,70,23,26,36,248,22,87,23,25,20,15,159,54,8,47,43,20,15,159,47, 8,48,43,20,15,159,41,8,49,43,197,89,162,32,32,33,9,223,0,192,89, 162,32,32,34,9,223,3,248,22,252,184,2,208,27,28,248,80,158,39,32,198, 249,80,158,40,33,248,80,158,41,34,200,27,248,80,158,42,35,201,28,248,80, @@ -2506,12 +2507,12 @@ 8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,101,8,51,18, 158,2,111,8,51,18,158,2,101,8,51,18,158,2,64,8,51,18,158,2,89, 8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,0,8,51,18, -158,2,101,8,51,18,158,2,101,8,51,18,158,2,62,8,51,18,158,2,89, +158,2,101,8,51,18,158,2,101,8,51,18,158,2,54,8,51,18,158,2,89, 8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,101,8,51,11, -16,5,93,2,57,89,162,32,33,8,29,9,223,0,27,249,22,209,20,15,159, +16,5,93,2,55,89,162,32,33,8,29,9,223,0,27,249,22,209,20,15,159, 35,32,45,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37, 34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36, -27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,9,89,162,32,33, +27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,8,89,162,32,33, 39,9,224,9,1,27,249,22,2,89,162,32,33,50,9,224,4,5,249,80,158, 35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27, 248,80,158,39,35,200,28,248,80,158,39,32,193,27,28,248,22,206,194,193,200, @@ -2534,8 +2535,8 @@ 28,248,80,158,44,37,194,248,80,158,44,39,194,11,28,192,27,249,22,209,20, 15,159,46,39,45,27,20,15,159,47,40,45,250,22,209,20,15,159,50,41,45, 202,195,27,248,80,158,46,41,194,28,192,249,80,158,47,42,23,16,27,252,22, -61,23,16,202,23,17,206,204,27,20,15,159,49,42,45,91,159,33,11,90,161, -33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,19, +61,23,17,206,23,16,204,202,27,20,15,159,49,42,45,91,159,33,11,90,161, +33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,19, 2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10, 247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193, 89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2, @@ -2546,36 +2547,36 @@ 22,209,20,15,159,38,44,45,250,22,209,20,15,159,41,45,45,251,22,60,20, 15,159,45,46,45,20,15,159,45,47,45,250,22,2,89,162,33,33,41,9,223, 16,250,22,209,20,15,159,35,48,45,249,22,60,248,22,52,199,248,22,78,199, -20,15,159,35,49,45,248,22,87,23,15,248,22,52,23,15,250,22,209,20,15, +20,15,159,35,49,45,248,22,52,23,15,248,22,87,23,15,250,22,209,20,15, 159,48,50,45,250,22,60,20,15,159,51,51,45,250,22,209,20,15,159,54,52, -45,249,22,60,20,15,159,56,53,45,248,22,90,23,23,20,15,159,54,54,45, +45,249,22,60,20,15,159,56,53,45,248,22,78,23,23,20,15,159,54,54,45, 250,22,209,20,15,159,54,55,45,249,22,56,20,15,159,56,56,45,249,22,65, -248,22,89,23,25,248,22,60,250,22,209,20,15,159,8,30,57,45,249,22,56, -20,15,159,8,32,58,45,248,22,78,23,31,20,15,159,8,30,59,45,20,15, +248,22,90,23,25,248,22,60,250,22,209,20,15,159,8,30,57,45,249,22,56, +20,15,159,8,32,58,45,248,22,89,23,31,20,15,159,8,30,59,45,20,15, 159,54,8,28,45,20,15,159,48,8,29,45,20,15,159,41,8,30,45,197,89, 162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2, 208,27,28,248,80,158,47,32,195,249,80,158,48,33,248,80,158,49,34,197,27, 248,80,158,50,35,198,28,248,80,158,50,37,193,248,80,158,50,39,193,11,11, 28,192,27,248,22,52,194,27,248,22,53,195,249,80,158,50,42,23,19,27,254, -22,61,23,21,23,15,203,202,23,22,23,19,23,17,27,20,15,159,52,8,31, -45,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89, +22,61,23,22,23,19,23,21,23,17,23,15,203,202,27,20,15,159,52,8,31, +45,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89, 162,32,33,40,9,226,22,2,3,1,250,22,31,89,162,32,32,36,9,225,6, 3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33, 36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181, 2,193,248,22,252,186,2,193,249,80,158,35,43,21,96,2,116,2,177,94,94, 2,178,2,179,2,113,96,2,111,2,181,96,2,0,2,114,2,115,2,113,96, 2,0,2,182,2,113,95,2,177,2,183,2,113,20,15,159,35,8,32,45,89, -162,32,32,8,35,9,225,6,5,4,27,250,22,209,20,15,159,38,8,33,45, +162,32,32,8,36,9,225,6,5,4,27,250,22,209,20,15,159,38,8,33,45, 250,22,209,20,15,159,41,8,34,45,251,22,60,20,15,159,45,8,35,45,20, 15,159,45,8,36,45,250,22,2,89,162,33,33,41,9,223,16,250,22,209,20, 15,159,35,8,37,45,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35, -8,38,45,249,22,70,23,16,36,248,22,52,23,15,250,22,209,20,15,159,48, -8,39,45,251,22,60,20,15,159,52,8,40,45,249,22,70,23,20,37,250,22, -209,20,15,159,55,8,41,45,250,22,62,20,15,159,58,8,42,45,248,22,87, -23,25,248,22,90,23,25,20,15,159,55,8,43,45,250,22,209,20,15,159,55, -8,44,45,249,22,56,20,15,159,57,8,45,45,249,22,65,249,22,69,23,27, -38,248,22,60,250,22,209,20,15,159,8,31,8,46,45,249,22,56,20,15,159, -8,33,8,47,45,248,22,78,23,32,20,15,159,8,31,8,48,45,20,15,159, +8,38,45,248,22,52,23,15,248,22,87,23,15,250,22,209,20,15,159,48,8, +39,45,251,22,60,20,15,159,52,8,40,45,248,22,78,23,19,250,22,209,20, +15,159,55,8,41,45,250,22,62,20,15,159,58,8,42,45,249,22,70,23,26, +37,249,22,69,23,26,38,20,15,159,55,8,43,45,250,22,209,20,15,159,55, +8,44,45,249,22,56,20,15,159,57,8,45,45,249,22,65,248,22,90,23,26, +248,22,60,250,22,209,20,15,159,8,31,8,46,45,249,22,56,20,15,159,8, +33,8,47,45,249,22,70,23,33,36,20,15,159,8,31,8,48,45,20,15,159, 55,8,49,45,20,15,159,48,8,50,45,20,15,159,41,8,51,45,197,89,162, 32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208, 250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,248, @@ -2631,7 +2632,7 @@ 16,4,8,80,11,3,1,4,103,52,54,48,220,3,1,7,101,110,118,51,54, 51,54,221,16,4,8,79,11,65,95,101,108,115,101,222,3,1,7,101,110,118, 51,54,51,55,223,9,16,2,158,2,113,8,82,9,8,82,95,9,8,252,58, -9,2,189,11,16,5,93,2,56,89,162,32,33,55,9,223,0,27,249,22,209, +9,2,189,11,16,5,93,2,63,89,162,32,33,55,9,223,0,27,249,22,209, 20,15,159,35,32,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248, 80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80, 158,39,36,248,80,158,40,34,195,248,80,158,40,37,248,80,158,41,35,196,11, @@ -2646,16 +2647,16 @@ 85,93,8,252,82,9,95,9,8,252,82,9,2,92,18,100,2,93,8,88,36, 35,34,8,83,16,6,8,87,11,3,1,4,103,52,54,52,225,3,1,4,103, 52,54,53,226,3,1,7,101,110,118,51,54,52,53,227,2,227,16,6,8,86, -11,2,56,63,101,120,112,228,3,1,7,101,110,118,51,54,52,54,229,2,229, +11,2,63,63,101,120,112,228,3,1,7,101,110,118,51,54,52,54,229,2,229, 18,158,2,101,8,88,18,158,2,6,8,88,18,158,2,101,8,88,18,158,66, 108,97,109,98,100,97,230,8,88,18,158,9,8,88,18,158,2,101,8,88,18, -158,2,101,8,88,11,16,5,93,2,86,253,22,60,248,247,22,252,86,3,20, +158,2,101,8,88,11,16,5,93,2,85,253,22,60,248,247,22,252,86,3,20, 15,159,39,32,32,248,247,22,252,86,3,20,15,159,39,33,32,248,247,22,252, 86,3,20,15,159,39,34,32,248,22,60,248,247,22,252,86,3,20,15,159,40, 35,32,248,22,60,248,247,22,252,86,3,20,15,159,40,36,32,10,40,20,98, 158,16,0,16,5,18,97,2,4,8,89,36,35,34,18,158,2,6,8,89,18, 158,2,8,8,89,18,158,2,10,8,89,18,158,2,12,8,89,11,16,5,93, -2,55,89,162,32,33,55,9,223,0,27,249,22,209,20,15,159,35,32,45,196, +2,62,89,162,32,33,55,9,223,0,27,249,22,209,20,15,159,35,32,45,196, 27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248, 80,158,38,35,197,28,248,80,158,38,32,193,28,248,80,158,38,36,248,80,158, 39,34,194,27,248,80,158,39,35,194,28,248,80,158,39,32,193,249,80,158,40, @@ -2666,7 +2667,7 @@ 15,159,49,36,45,20,15,159,49,37,45,248,22,53,204,248,22,52,204,20,15, 159,45,38,45,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158, 38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40, -39,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,9,89,162,32, +39,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8,89,162,32, 33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80, 158,35,40,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199, 27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80, @@ -2679,9 +2680,9 @@ 249,22,1,22,65,250,22,2,22,59,248,22,216,27,20,15,159,50,40,45,250, 22,209,20,15,159,53,41,45,23,16,195,248,22,216,27,20,15,159,50,42,45, 250,22,209,20,15,159,53,43,45,23,15,195,27,28,248,80,158,43,37,194,248, -80,158,43,38,194,11,28,192,249,80,158,44,42,205,27,250,22,61,200,201,198, +80,158,43,38,194,11,28,192,249,80,158,44,42,205,27,250,22,61,201,200,198, 27,20,15,159,46,44,45,91,159,33,11,90,161,33,32,11,83,160,38,32,33, -11,247,248,22,9,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162, +11,247,248,22,8,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162, 32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252, 184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2, 3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,96, @@ -2694,7 +2695,7 @@ 22,60,20,15,159,45,48,45,20,15,159,45,49,45,250,22,209,20,15,159,48, 50,45,250,22,62,20,15,159,51,51,45,20,15,159,51,52,45,248,22,80,23, 18,20,15,159,48,53,45,250,22,209,20,15,159,48,54,45,251,22,62,20,15, -159,52,55,45,20,15,159,52,56,45,248,22,78,23,19,248,22,52,23,19,20, +159,52,55,45,20,15,159,52,56,45,248,22,52,23,19,248,22,78,23,19,20, 15,159,48,57,45,20,15,159,41,58,45,197,89,162,32,32,33,9,223,0,192, 89,162,32,32,34,9,223,3,248,22,252,184,2,208,248,80,158,43,44,20,15, 159,43,59,45,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, @@ -2734,22 +2735,22 @@ 252,4,1,16,4,8,111,11,3,1,4,103,52,55,53,252,5,1,3,1,7, 101,110,118,51,55,48,54,252,6,1,16,4,8,110,11,2,222,3,1,7,101, 110,118,51,55,48,55,252,7,1,9,16,2,158,2,113,8,113,9,8,113,95, -9,8,252,114,9,2,189,11,16,5,93,2,61,89,162,32,33,8,36,9,223, +9,8,252,114,9,2,189,11,16,5,93,2,58,89,162,32,33,8,36,9,223, 0,27,249,22,209,20,15,159,35,32,39,196,27,28,248,80,158,35,32,194,249, 80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158, 38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196, 28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34,195,27,248,80, 158,44,35,196,28,248,80,158,44,36,193,248,80,158,44,37,193,11,11,11,11, 28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,88, -197,249,80,158,40,38,201,27,250,22,61,200,198,199,27,20,15,159,42,33,39, +197,249,80,158,40,38,201,27,250,22,61,199,200,198,27,20,15,159,42,33,39, 250,22,209,20,15,159,45,34,39,250,22,209,20,15,159,48,35,39,251,22,60, 20,15,159,52,36,39,20,15,159,52,37,39,250,22,209,20,15,159,55,38,39, 249,22,60,20,15,159,57,39,39,250,22,209,20,15,159,8,28,40,39,250,22, -62,20,15,159,8,31,41,39,248,22,52,23,23,20,15,159,8,31,42,39,20, +62,20,15,159,8,31,41,39,248,22,78,23,23,20,15,159,8,31,42,39,20, 15,159,8,28,43,39,20,15,159,55,44,39,250,22,209,20,15,159,55,45,39, 250,22,60,20,15,159,58,46,39,20,15,159,58,47,39,250,22,209,20,15,159, 8,29,48,39,251,22,62,20,15,159,8,33,49,39,20,15,159,8,33,50,39, -248,22,80,23,25,248,22,78,23,25,20,15,159,8,29,51,39,20,15,159,55, +248,22,52,23,25,248,22,80,23,25,20,15,159,8,29,51,39,20,15,159,55, 52,39,20,15,159,48,53,39,195,250,22,252,39,2,11,6,10,10,98,97,100, 32,115,121,110,116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2, 72,2,78,2,80,2,122,16,22,18,98,2,82,8,115,36,35,34,16,4,8, @@ -2771,12 +2772,12 @@ 2,101,8,119,18,158,2,0,8,119,18,158,93,16,2,158,2,51,8,119,9, 8,119,18,158,2,101,8,119,18,158,2,116,8,119,18,158,9,8,119,18,158, 2,101,8,119,18,158,2,101,8,119,18,158,2,101,8,119,11,16,5,93,2, -85,253,22,60,248,247,22,252,86,3,20,15,159,39,32,32,248,247,22,252,86, +86,253,22,60,248,247,22,252,86,3,20,15,159,39,32,32,248,247,22,252,86, 3,20,15,159,39,33,32,248,247,22,252,86,3,20,15,159,39,34,32,248,22, 60,248,247,22,252,86,3,20,15,159,40,35,32,248,22,60,248,247,22,252,86, 3,20,15,159,40,36,32,10,40,20,98,158,16,0,16,5,18,158,2,35,8, 89,18,158,2,37,8,89,18,158,2,39,8,89,18,158,2,41,8,89,18,158, -2,43,8,89,11,16,5,94,2,59,2,60,27,89,162,32,33,34,62,119,104, +2,43,8,89,11,16,5,94,2,53,2,56,27,89,162,32,33,34,62,119,104, 252,19,1,223,1,89,162,32,33,55,9,224,0,1,27,249,22,209,20,15,159, 36,32,44,197,27,28,248,80,158,36,32,194,249,80,158,37,33,248,80,158,38, 34,196,27,248,80,158,39,35,197,28,248,80,158,39,32,193,28,248,80,158,39, @@ -2789,7 +2790,7 @@ 248,22,53,204,248,22,52,204,20,15,159,48,38,44,195,27,28,248,80,158,37, 32,195,249,80,158,38,33,248,80,158,39,34,197,27,248,80,158,40,35,198,28, 248,80,158,40,32,193,249,80,158,41,40,27,248,80,158,43,34,196,28,248,80, -158,43,37,193,248,22,9,89,162,32,33,39,9,224,11,1,27,249,22,2,89, +158,43,37,193,248,22,8,89,162,32,33,39,9,224,11,1,27,249,22,2,89, 162,32,33,45,9,224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249, 80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158, 39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80, @@ -2799,9 +2800,9 @@ 80,158,46,37,193,248,80,158,46,38,193,11,11,11,11,28,192,27,248,22,52, 194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198, 27,249,22,209,20,15,159,44,39,44,28,203,20,15,159,44,40,44,20,15,159, -44,41,44,249,80,158,44,39,205,27,252,22,61,203,204,201,200,202,27,20,15, +44,41,44,249,80,158,44,39,205,27,252,22,61,202,203,204,200,201,27,20,15, 159,46,42,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248, -22,9,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36, +22,8,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36, 9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89, 162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248, 22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,95,2,116,94, @@ -2810,7 +2811,7 @@ 1,2,113,94,64,98,111,100,121,252,25,1,97,2,230,9,2,234,2,235,2, 113,95,2,116,93,94,63,98,112,122,252,26,1,95,2,232,11,2,47,96,2, 231,2,47,94,2,252,16,1,11,93,94,67,99,97,108,108,47,101,99,252,27, -1,95,2,230,93,2,99,96,2,231,2,47,2,252,26,1,95,2,55,93,94, +1,95,2,230,93,2,99,96,2,231,2,47,2,252,26,1,95,2,62,93,94, 1,25,99,117,114,114,101,110,116,45,101,120,99,101,112,116,105,111,110,45,104, 97,110,100,108,101,114,252,28,1,95,2,230,93,61,101,252,29,1,94,2,99, 95,2,230,9,96,2,116,64,108,111,111,112,252,30,1,93,94,2,252,20,1, @@ -2827,11 +2828,11 @@ 48,44,249,22,60,20,15,159,54,49,44,250,22,209,20,15,159,57,50,44,249, 22,56,20,15,159,59,51,44,250,22,2,89,162,33,33,41,9,223,30,250,22, 209,20,15,159,35,52,44,250,22,60,20,15,159,38,53,44,248,22,52,200,248, -22,78,200,20,15,159,35,54,44,248,22,78,23,29,248,22,52,23,29,20,15, +22,78,200,20,15,159,35,54,44,248,22,87,23,29,248,22,78,23,29,20,15, 159,57,55,44,20,15,159,52,56,44,250,22,209,20,15,159,52,57,44,249,22, 60,20,15,159,54,58,44,250,22,209,20,15,159,57,59,44,251,22,62,20,15, -159,8,29,8,28,44,20,15,159,8,29,8,29,44,248,22,89,23,28,248,22, -87,23,28,20,15,159,57,8,30,44,20,15,159,52,8,31,44,20,15,159,47, +159,8,29,8,28,44,20,15,159,8,29,8,29,44,248,22,52,23,28,248,22, +89,23,28,20,15,159,57,8,30,44,20,15,159,52,8,31,44,20,15,159,47, 8,32,44,250,22,209,20,15,159,47,8,33,44,250,22,60,20,15,159,50,8, 34,44,20,15,159,50,8,35,44,250,22,209,20,15,159,53,8,36,44,251,22, 60,20,15,159,57,8,37,44,20,15,159,57,8,38,44,20,15,159,57,8,39, @@ -2910,7 +2911,7 @@ 8,131,18,158,2,101,8,131,18,158,2,252,27,1,8,131,18,158,2,101,8, 131,18,158,2,230,8,131,18,158,93,16,2,158,2,99,8,131,9,8,131,18, 158,2,101,8,131,18,158,2,231,8,131,18,158,2,47,8,131,18,158,2,252, -26,1,8,131,18,158,2,101,8,131,18,158,2,55,8,131,18,158,2,101,8, +26,1,8,131,18,158,2,101,8,131,18,158,2,62,8,131,18,158,2,101,8, 131,18,158,2,101,8,131,18,158,2,252,28,1,8,131,18,158,2,101,8,131, 18,158,2,230,8,131,18,158,93,16,2,158,2,252,29,1,8,131,9,8,131, 18,158,2,101,8,131,18,158,2,99,8,131,18,158,2,101,8,131,18,158,2, @@ -2939,7 +2940,7 @@ 131,9,8,131,9,8,131,9,8,131,9,8,131,9,8,141,95,9,8,252,172, 9,2,92,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131, 18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, -101,8,131,18,158,2,101,8,131,11,16,5,93,2,58,89,162,32,33,57,9, +101,8,131,18,158,2,101,8,131,11,16,5,93,2,57,89,162,32,33,57,9, 223,0,27,249,22,209,20,15,159,35,32,46,196,27,28,248,80,158,35,32,194, 249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80, 158,38,32,193,28,248,80,158,38,36,248,80,158,39,34,194,27,248,80,158,39, @@ -2965,8 +2966,8 @@ 116,101,32,105,100,101,110,116,105,102,105,101,114,204,196,12,27,249,22,209,20, 15,159,42,46,46,248,80,158,43,42,27,20,15,159,44,47,46,250,22,209,20, 15,159,47,48,46,201,195,27,28,248,80,158,42,38,194,248,80,158,42,39,194, -11,28,192,249,80,158,43,43,202,27,250,22,61,200,198,201,27,20,15,159,45, -49,46,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9, +11,28,192,249,80,158,43,43,202,27,250,22,61,201,200,198,27,20,15,159,45, +49,46,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8, 89,162,32,33,40,9,226,15,2,3,1,250,22,31,89,162,32,32,36,9,225, 6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32, 33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, @@ -2976,10 +2977,10 @@ 1,2,113,20,15,159,35,50,46,89,162,32,32,56,9,225,6,5,4,27,250, 22,209,20,15,159,38,51,46,250,22,209,20,15,159,41,52,46,250,22,62,20, 15,159,44,53,46,250,22,209,20,15,159,47,54,46,248,22,60,250,22,209,20, -15,159,51,55,46,249,22,60,248,22,78,23,20,248,22,52,23,20,20,15,159, +15,159,51,55,46,249,22,60,248,22,80,23,20,248,22,78,23,20,20,15,159, 51,56,46,20,15,159,47,57,46,250,22,2,89,162,33,33,41,9,223,15,250, 22,209,20,15,159,35,58,46,250,22,60,20,15,159,38,59,46,248,22,52,200, -248,22,78,200,20,15,159,35,8,28,46,248,22,80,206,248,22,78,206,20,15, +248,22,78,200,20,15,159,35,8,28,46,248,22,52,206,248,22,80,206,20,15, 159,41,8,29,46,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9, 223,3,248,22,252,184,2,208,248,80,158,42,45,20,15,159,42,8,30,46,247, 196,247,193,27,28,248,80,158,37,32,196,249,80,158,38,33,248,80,158,39,34, @@ -2988,10 +2989,10 @@ 45,34,195,248,80,158,45,36,248,80,158,46,35,196,11,27,248,80,158,43,35, 196,28,248,80,158,43,32,193,249,80,158,44,37,248,80,158,45,34,195,248,80, 158,45,36,248,80,158,46,35,196,11,11,11,28,192,27,248,22,52,194,27,248, -22,78,195,27,248,22,80,196,28,248,80,158,40,40,194,27,249,22,61,196,195, +22,78,195,27,248,22,80,196,28,248,80,158,40,40,194,27,249,22,61,195,196, 27,20,15,159,41,8,31,46,250,22,209,20,15,159,44,8,32,46,250,22,209, -20,15,159,47,8,33,46,250,22,60,20,15,159,50,8,34,46,248,22,52,203, -248,22,53,203,20,15,159,47,8,35,46,195,247,196,247,193,32,20,98,158,16, +20,15,159,47,8,33,46,250,22,60,20,15,159,50,8,34,46,248,22,53,203, +248,22,52,203,20,15,159,47,8,35,46,195,247,196,247,193,32,20,98,158,16, 14,2,65,2,68,2,70,2,72,2,76,2,74,2,78,2,80,2,120,30,252, 65,1,2,88,1,26,99,104,101,99,107,45,100,117,112,108,105,99,97,116,101, 45,105,100,101,110,116,105,102,105,101,114,252,66,1,0,30,252,67,1,2,189, @@ -3041,18 +3042,18 @@ 1,2,252,96,1,2,252,96,1,16,8,8,169,11,2,98,2,252,64,1,2, 235,3,1,7,101,110,118,51,56,52,54,252,97,1,2,252,97,1,2,252,97, 1,18,158,2,101,8,171,18,158,2,252,63,1,8,171,18,158,2,101,8,171, -11,16,5,93,2,63,89,162,32,33,8,32,9,223,0,27,249,22,209,20,15, +11,16,5,93,2,52,89,162,32,33,8,32,9,223,0,27,249,22,209,20,15, 159,35,32,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158, 37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39, 33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80,158,41,32,193, 249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28,248,80, 158,44,36,193,248,80,158,44,37,193,11,11,11,11,28,192,27,248,22,52,194, 27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,249,80,158,40,38,201, -27,250,22,61,200,199,198,27,20,15,159,42,33,39,250,22,209,20,15,159,45, +27,250,22,61,198,199,200,27,20,15,159,42,33,39,250,22,209,20,15,159,45, 34,39,250,22,209,20,15,159,48,35,39,249,22,60,20,15,159,50,36,39,250, 22,209,20,15,159,53,37,39,251,22,62,20,15,159,57,38,39,250,22,209,20, -15,159,8,28,39,39,248,22,60,248,22,52,23,21,20,15,159,8,28,40,39, -248,22,78,23,17,248,22,80,23,17,20,15,159,53,41,39,20,15,159,48,42, +15,159,8,28,39,39,248,22,60,248,22,80,23,21,20,15,159,8,28,40,39, +248,22,78,23,17,248,22,52,23,17,20,15,159,53,41,39,20,15,159,48,42, 39,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, 196,32,20,98,158,16,7,2,65,2,68,2,70,2,72,2,78,2,80,2,122, 16,11,18,98,2,82,8,173,36,35,34,16,4,8,172,11,2,236,3,1,7, @@ -3066,7 +3067,7 @@ 2,252,105,1,2,252,105,1,2,252,105,1,18,158,2,101,8,177,18,158,67, 99,97,108,108,47,99,99,252,106,1,8,177,18,158,2,101,8,177,18,158,2, 230,8,177,18,158,2,101,8,177,18,158,2,101,8,177,18,158,2,101,8,177, -18,158,2,101,8,177,11,16,5,93,2,54,89,162,32,33,55,9,223,0,27, +18,158,2,101,8,177,11,16,5,93,2,59,89,162,32,33,55,9,223,0,27, 249,22,209,20,15,159,35,32,41,196,27,28,248,80,158,35,32,194,249,80,158, 36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, 193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248, @@ -3075,9 +3076,9 @@ 248,80,158,44,32,193,249,80,158,45,33,248,80,158,46,34,195,27,248,80,158, 47,35,196,28,248,80,158,47,37,193,248,80,158,47,38,193,11,11,11,11,11, 28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90, -197,27,248,22,89,198,249,80,158,41,39,202,27,251,22,61,199,201,200,202,27, +197,27,248,22,89,198,249,80,158,41,39,202,27,251,22,61,200,201,199,202,27, 20,15,159,43,33,41,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11, -247,248,22,9,89,162,32,33,40,9,226,13,2,3,1,250,22,31,89,162,32, +247,248,22,8,89,162,32,33,40,9,226,13,2,3,1,250,22,31,89,162,32, 32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184, 2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3, 28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,40,21,98,2, @@ -3087,7 +3088,7 @@ 6,5,4,27,250,22,209,20,15,159,38,35,41,250,22,209,20,15,159,41,36, 41,252,22,62,20,15,159,46,37,41,20,15,159,46,38,41,250,22,209,20,15, 159,49,39,41,250,22,60,20,15,159,52,40,41,248,22,88,23,19,248,22,78, -23,19,20,15,159,49,41,41,248,22,87,205,248,22,52,205,20,15,159,41,42, +23,19,20,15,159,49,41,41,248,22,52,205,248,22,87,205,20,15,159,41,42, 41,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22, 252,184,2,208,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, 97,120,196,32,20,98,158,16,9,2,65,2,68,2,70,2,72,2,74,2,78, @@ -3108,196 +3109,196 @@ 121,1,2,252,121,1,2,252,121,1,2,252,121,1,2,252,121,1,18,158,2, 101,8,188,18,158,2,116,8,188,18,158,9,8,188,18,158,2,101,8,188,18, 158,2,252,107,1,8,188,18,158,2,101,8,188,18,158,2,101,8,188,11,16, -5,93,2,53,89,162,32,33,53,9,223,0,27,249,22,209,20,15,159,35,32, +5,93,2,61,89,162,32,33,54,9,223,0,27,249,22,209,20,15,159,35,32, 46,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196, 27,248,80,158,38,35,197,28,248,80,158,38,32,193,28,248,80,158,38,36,248, 80,158,39,34,194,27,248,80,158,39,35,194,28,248,80,158,39,32,193,249,80, 158,40,33,248,80,158,41,34,195,27,248,80,158,42,35,196,28,248,80,158,42, 37,193,248,80,158,42,38,193,11,11,11,11,11,28,192,27,248,22,52,194,27, -248,22,78,195,27,248,22,80,196,249,80,158,39,39,200,27,249,22,61,198,197, +248,22,78,195,27,248,22,80,196,249,80,158,39,39,200,27,249,22,61,197,198, 27,20,15,159,41,33,46,250,22,209,20,15,159,44,34,46,250,22,209,20,15, -159,47,35,46,250,22,62,20,15,159,50,36,46,20,15,159,50,37,46,202,20, -15,159,47,38,46,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80, -158,38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158, -40,40,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,9,89,162, -32,33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249, -80,158,35,41,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34, -199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248, -80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80, -158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,42,193,11,27, -248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158, -44,34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45, -38,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22, -87,196,27,248,22,90,197,27,248,22,89,198,27,249,22,209,20,15,159,43,39, -46,248,80,158,44,43,27,20,15,159,45,40,46,250,22,209,20,15,159,48,41, -46,203,195,27,28,248,80,158,43,37,194,248,80,158,43,38,194,11,28,192,249, -80,158,44,39,205,27,252,22,61,202,205,200,203,204,27,20,15,159,46,42,46, -91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89,162, -32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3, -7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36, -9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2, -193,248,22,252,186,2,193,249,80,158,35,44,21,95,2,116,94,94,63,116,109, -112,252,122,1,2,250,2,113,95,2,116,93,94,64,115,119,97,112,252,123,1, -96,2,230,9,96,2,116,93,94,2,202,2,252,122,1,95,2,252,63,1,2, -252,122,1,64,110,97,109,101,252,124,1,95,2,252,63,1,2,252,124,1,2, -202,2,113,96,72,100,121,110,97,109,105,99,45,119,105,110,100,252,125,1,2, -252,123,1,97,2,230,9,2,252,104,1,2,252,25,1,2,113,2,252,123,1, -20,15,159,35,43,46,89,162,32,32,8,40,9,225,6,5,4,27,250,22,209, -20,15,159,38,44,46,250,22,209,20,15,159,41,45,46,250,22,60,20,15,159, -44,46,46,250,22,2,89,162,33,33,41,9,223,15,250,22,209,20,15,159,35, -47,46,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35,48,46,248,22, -87,206,248,22,89,206,250,22,209,20,15,159,47,49,46,250,22,60,20,15,159, -50,50,46,250,22,209,20,15,159,53,51,46,248,22,60,250,22,209,20,15,159, -57,52,46,249,22,60,20,15,159,59,53,46,250,22,209,20,15,159,8,30,54, -46,250,22,62,20,15,159,8,33,55,46,20,15,159,8,33,56,46,252,22,2, -89,162,33,33,51,9,223,38,250,22,209,20,15,159,35,57,46,251,22,60,20, -15,159,39,58,46,250,22,209,20,15,159,42,59,46,248,22,60,250,22,209,20, -15,159,46,8,28,46,249,22,60,20,15,159,48,8,29,46,248,22,52,23,18, -20,15,159,46,8,30,46,20,15,159,42,8,31,46,250,22,209,20,15,159,42, -8,32,46,250,22,60,20,15,159,45,8,33,46,248,22,52,23,15,248,22,87, -23,15,20,15,159,42,8,34,46,250,22,209,20,15,159,42,8,35,46,250,22, -62,20,15,159,45,8,36,46,248,22,87,23,15,20,15,159,45,8,37,46,20, -15,159,42,8,38,46,20,15,159,35,8,39,46,248,22,87,23,37,248,22,87, -23,37,248,22,78,23,37,248,22,78,23,37,20,15,159,8,30,8,40,46,20, -15,159,57,8,41,46,20,15,159,53,8,42,46,250,22,209,20,15,159,53,8, -43,46,251,22,62,20,15,159,57,8,44,46,20,15,159,57,8,45,46,250,22, -209,20,15,159,8,28,8,46,46,251,22,62,20,15,159,8,32,8,47,46,20, -15,159,8,32,8,48,46,248,22,90,23,31,248,22,52,23,31,20,15,159,8, -28,8,49,46,20,15,159,57,8,50,46,20,15,159,53,8,51,46,20,15,159, -47,8,52,46,20,15,159,41,8,53,46,197,89,162,32,32,33,9,223,0,192, -89,162,32,32,34,9,223,3,248,22,252,184,2,208,248,80,158,43,45,20,15, -159,43,8,54,46,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110, -116,97,120,197,32,20,98,158,16,14,2,65,2,68,2,70,2,72,2,76,2, -78,2,80,2,122,2,74,2,184,2,186,2,252,67,1,2,125,2,188,16,55, -18,98,2,82,8,190,36,35,34,16,4,8,189,11,2,236,3,1,7,101,110, -118,51,56,57,54,252,126,1,18,16,2,95,2,91,8,191,93,8,252,247,9, -95,9,8,252,247,9,2,92,18,100,2,93,8,194,36,35,34,8,189,16,8, -8,193,11,3,1,4,103,53,49,55,252,127,1,3,1,4,103,53,49,56,252, -128,1,3,1,4,103,53,49,57,252,129,1,3,1,7,101,110,118,51,57,48, -51,252,130,1,2,252,130,1,2,252,130,1,16,8,8,192,11,2,98,2,252, -104,1,2,252,25,1,3,1,7,101,110,118,51,57,48,52,252,131,1,2,252, -131,1,2,252,131,1,18,158,2,101,8,194,18,158,2,116,8,194,18,158,9, -8,194,18,158,2,101,8,194,18,100,2,82,8,197,36,35,34,8,189,16,12, -8,196,11,3,1,4,103,53,49,50,252,132,1,3,1,4,103,53,49,51,252, -133,1,3,1,4,103,53,49,52,252,134,1,3,1,4,103,53,49,53,252,135, -1,3,1,4,103,53,49,54,252,136,1,3,1,7,101,110,118,51,57,50,48, -252,137,1,2,252,137,1,2,252,137,1,2,252,137,1,2,252,137,1,16,12, -8,195,11,2,98,2,252,124,1,2,250,2,252,104,1,2,252,25,1,3,1, -7,101,110,118,51,57,50,49,252,138,1,2,252,138,1,2,252,138,1,2,252, -138,1,2,252,138,1,18,16,2,95,2,91,8,198,93,8,252,250,9,95,9, -8,252,250,9,2,92,18,158,2,93,8,197,18,16,2,95,2,91,8,199,93, -8,252,253,9,95,9,8,252,253,9,2,92,18,16,2,99,2,113,8,204,93, -8,252,253,9,16,6,8,203,11,2,140,2,141,3,1,7,101,110,118,51,57, -51,55,252,139,1,2,252,139,1,16,4,8,202,11,2,151,3,1,7,101,110, -118,51,57,51,56,252,140,1,16,4,8,201,11,2,153,3,1,7,101,110,118, -51,57,51,57,252,141,1,16,4,8,200,11,2,155,3,1,7,101,110,118,51, -57,52,49,252,142,1,95,9,8,252,253,9,2,92,18,102,2,93,8,207,36, -35,34,8,189,8,196,8,195,16,4,8,206,11,3,1,4,103,53,50,50,252, -143,1,3,1,7,101,110,118,51,57,51,51,252,144,1,16,4,8,205,11,2, -252,122,1,3,1,7,101,110,118,51,57,51,52,252,145,1,18,158,2,101,8, -207,18,158,2,116,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158, -2,101,8,207,18,158,2,116,8,207,18,158,2,101,8,207,18,158,2,101,8, -207,18,158,2,252,123,1,8,207,18,158,2,101,8,207,18,158,2,230,8,207, -18,158,9,8,207,18,158,2,101,8,207,18,158,2,116,8,207,18,158,2,101, -8,207,18,158,2,101,8,207,18,158,2,202,8,207,18,158,2,101,8,207,18, -158,2,101,8,207,18,158,2,101,8,207,18,158,2,252,63,1,8,207,18,158, -2,101,8,207,18,158,2,101,8,207,18,158,2,252,63,1,8,207,18,16,2, -106,93,16,2,158,2,202,8,207,9,8,212,8,28,59,58,57,56,55,13,16, -3,33,2,134,2,92,93,8,252,253,9,16,6,8,211,11,2,140,2,141,2, -252,139,1,2,252,139,1,16,4,8,210,11,2,151,2,252,140,1,16,4,8, -209,11,2,153,2,252,141,1,16,4,8,208,11,64,118,97,108,115,252,146,1, -3,1,7,101,110,118,51,57,52,55,252,147,1,95,9,8,252,253,9,2,92, +159,47,35,46,251,22,62,20,15,159,51,36,46,20,15,159,51,37,46,248,22, +53,204,248,22,52,204,20,15,159,47,38,46,195,27,28,248,80,158,36,32,195, +249,80,158,37,33,248,80,158,38,34,197,27,248,80,158,39,35,198,28,248,80, +158,39,32,193,249,80,158,40,40,27,248,80,158,42,34,196,28,248,80,158,42, +37,193,248,22,8,89,162,32,33,39,9,224,10,1,27,249,22,2,89,162,32, +33,45,9,224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249,80,158, +37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32, +193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80,158,42, +35,196,11,11,194,248,80,158,37,38,196,28,248,22,57,193,21,94,9,9,248, +80,158,35,42,193,11,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249, +80,158,43,33,248,80,158,44,34,195,27,248,80,158,45,35,196,28,248,80,158, +45,37,193,248,80,158,45,38,193,11,11,11,11,28,192,27,248,22,52,194,27, +248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,27,249, +22,209,20,15,159,43,39,46,248,80,158,44,43,27,20,15,159,45,40,46,250, +22,209,20,15,159,48,41,46,203,195,27,28,248,80,158,43,37,194,248,80,158, +43,38,194,11,28,192,249,80,158,44,39,205,27,252,22,61,205,203,202,200,204, +27,20,15,159,46,42,46,91,159,33,11,90,161,33,32,11,83,160,38,32,33, +11,247,248,22,8,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162, +32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252, +184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2, +3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,44,21,95, +2,116,94,94,63,116,109,112,252,122,1,2,250,2,113,95,2,116,93,94,64, +115,119,97,112,252,123,1,96,2,230,9,96,2,116,93,94,2,202,2,252,122, +1,95,2,252,63,1,2,252,122,1,64,110,97,109,101,252,124,1,95,2,252, +63,1,2,252,124,1,2,202,2,113,96,72,100,121,110,97,109,105,99,45,119, +105,110,100,252,125,1,2,252,123,1,97,2,230,9,2,252,104,1,2,252,25, +1,2,113,2,252,123,1,20,15,159,35,43,46,89,162,32,32,8,40,9,225, +6,5,4,27,250,22,209,20,15,159,38,44,46,250,22,209,20,15,159,41,45, +46,250,22,60,20,15,159,44,46,46,250,22,2,89,162,33,33,41,9,223,15, +250,22,209,20,15,159,35,47,46,249,22,60,248,22,52,199,248,22,78,199,20, +15,159,35,48,46,248,22,90,206,248,22,89,206,250,22,209,20,15,159,47,49, +46,250,22,60,20,15,159,50,50,46,250,22,209,20,15,159,53,51,46,248,22, +60,250,22,209,20,15,159,57,52,46,249,22,60,20,15,159,59,53,46,250,22, +209,20,15,159,8,30,54,46,250,22,62,20,15,159,8,33,55,46,20,15,159, +8,33,56,46,252,22,2,89,162,33,33,51,9,223,38,250,22,209,20,15,159, +35,57,46,251,22,60,20,15,159,39,58,46,250,22,209,20,15,159,42,59,46, +248,22,60,250,22,209,20,15,159,46,8,28,46,249,22,60,20,15,159,48,8, +29,46,248,22,52,23,18,20,15,159,46,8,30,46,20,15,159,42,8,31,46, +250,22,209,20,15,159,42,8,32,46,250,22,60,20,15,159,45,8,33,46,248, +22,52,23,15,248,22,87,23,15,20,15,159,42,8,34,46,250,22,209,20,15, +159,42,8,35,46,250,22,62,20,15,159,45,8,36,46,248,22,87,23,15,20, +15,159,45,8,37,46,20,15,159,42,8,38,46,20,15,159,35,8,39,46,248, +22,90,23,37,248,22,90,23,37,248,22,52,23,37,248,22,52,23,37,20,15, +159,8,30,8,40,46,20,15,159,57,8,41,46,20,15,159,53,8,42,46,250, +22,209,20,15,159,53,8,43,46,251,22,62,20,15,159,57,8,44,46,20,15, +159,57,8,45,46,250,22,209,20,15,159,8,28,8,46,46,251,22,62,20,15, +159,8,32,8,47,46,20,15,159,8,32,8,48,46,248,22,78,23,31,248,22, +87,23,31,20,15,159,8,28,8,49,46,20,15,159,57,8,50,46,20,15,159, +53,8,51,46,20,15,159,47,8,52,46,20,15,159,41,8,53,46,197,89,162, +32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208, +248,80,158,43,45,20,15,159,43,8,54,46,250,22,252,39,2,11,6,10,10, +98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,14,2,65,2,68, +2,70,2,72,2,76,2,78,2,80,2,122,2,74,2,184,2,186,2,252,67, +1,2,125,2,188,16,55,18,98,2,82,8,190,36,35,34,16,4,8,189,11, +2,236,3,1,7,101,110,118,51,56,57,54,252,126,1,18,16,2,95,2,91, +8,191,93,8,252,247,9,95,9,8,252,247,9,2,92,18,100,2,93,8,194, +36,35,34,8,189,16,8,8,193,11,3,1,4,103,53,49,55,252,127,1,3, +1,4,103,53,49,56,252,128,1,3,1,4,103,53,49,57,252,129,1,3,1, +7,101,110,118,51,57,48,51,252,130,1,2,252,130,1,2,252,130,1,16,8, +8,192,11,2,98,2,252,104,1,2,252,25,1,3,1,7,101,110,118,51,57, +48,52,252,131,1,2,252,131,1,2,252,131,1,18,158,2,101,8,194,18,158, +2,116,8,194,18,158,9,8,194,18,158,2,101,8,194,18,100,2,82,8,197, +36,35,34,8,189,16,12,8,196,11,3,1,4,103,53,49,50,252,132,1,3, +1,4,103,53,49,51,252,133,1,3,1,4,103,53,49,52,252,134,1,3,1, +4,103,53,49,53,252,135,1,3,1,4,103,53,49,54,252,136,1,3,1,7, +101,110,118,51,57,50,48,252,137,1,2,252,137,1,2,252,137,1,2,252,137, +1,2,252,137,1,16,12,8,195,11,2,98,2,252,124,1,2,250,2,252,104, +1,2,252,25,1,3,1,7,101,110,118,51,57,50,49,252,138,1,2,252,138, +1,2,252,138,1,2,252,138,1,2,252,138,1,18,16,2,95,2,91,8,198, +93,8,252,250,9,95,9,8,252,250,9,2,92,18,158,2,93,8,197,18,16, +2,95,2,91,8,199,93,8,252,253,9,95,9,8,252,253,9,2,92,18,16, +2,99,2,113,8,204,93,8,252,253,9,16,6,8,203,11,2,140,2,141,3, +1,7,101,110,118,51,57,51,55,252,139,1,2,252,139,1,16,4,8,202,11, +2,151,3,1,7,101,110,118,51,57,51,56,252,140,1,16,4,8,201,11,2, +153,3,1,7,101,110,118,51,57,51,57,252,141,1,16,4,8,200,11,2,155, +3,1,7,101,110,118,51,57,52,49,252,142,1,95,9,8,252,253,9,2,92, +18,102,2,93,8,207,36,35,34,8,189,8,196,8,195,16,4,8,206,11,3, +1,4,103,53,50,50,252,143,1,3,1,7,101,110,118,51,57,51,51,252,144, +1,16,4,8,205,11,2,252,122,1,3,1,7,101,110,118,51,57,51,52,252, +145,1,18,158,2,101,8,207,18,158,2,116,8,207,18,158,2,101,8,207,18, +158,2,101,8,207,18,158,2,101,8,207,18,158,2,116,8,207,18,158,2,101, +8,207,18,158,2,101,8,207,18,158,2,252,123,1,8,207,18,158,2,101,8, +207,18,158,2,230,8,207,18,158,9,8,207,18,158,2,101,8,207,18,158,2, +116,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,202,8,207, 18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158,2, -101,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,252,125,1, -8,207,18,158,2,252,123,1,8,207,18,158,2,101,8,207,18,158,2,230,8, -207,18,158,9,8,207,18,158,2,101,8,207,18,16,2,105,93,16,2,158,2, -252,123,1,8,207,9,8,213,8,28,59,58,57,56,55,13,16,3,33,2,134, -2,92,93,8,252,253,9,8,211,8,210,8,209,95,9,8,252,253,9,2,92, -18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,16,2, -158,94,16,2,98,2,252,122,1,8,217,93,8,252,249,9,16,4,8,216,11, -3,1,8,119,115,116,109,112,53,50,48,252,148,1,3,1,7,101,110,118,51, -57,50,56,252,149,1,16,4,8,215,11,3,1,4,103,53,50,49,252,150,1, -3,1,7,101,110,118,51,57,53,50,252,151,1,16,4,8,214,11,2,222,3, -1,7,101,110,118,51,57,53,51,252,152,1,9,16,2,158,2,113,8,217,9, -8,217,95,9,8,252,249,9,2,189,11,16,5,93,2,52,89,162,32,33,8, -43,9,223,0,27,249,22,209,20,15,159,35,32,39,196,27,28,248,80,158,35, -32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28, -248,80,158,38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158, -41,35,196,28,248,80,158,41,36,193,248,80,158,41,37,193,11,11,11,28,192, -27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,39,38,200, -27,249,22,61,197,198,27,20,15,159,41,33,39,250,22,209,20,15,159,44,34, -39,250,22,209,20,15,159,47,35,39,250,22,62,20,15,159,50,36,39,250,22, -209,20,15,159,53,37,39,248,22,60,250,22,209,20,15,159,57,38,39,249,22, -60,20,15,159,59,39,39,250,22,209,20,15,159,8,30,40,39,250,22,62,20, -15,159,8,33,41,39,250,22,209,20,15,159,8,36,42,39,251,22,62,20,15, -159,8,40,43,39,20,15,159,8,40,44,39,248,22,53,23,33,248,22,52,23, -33,20,15,159,8,36,45,39,20,15,159,8,33,46,39,20,15,159,8,30,47, -39,20,15,159,57,48,39,20,15,159,53,49,39,20,15,159,50,50,39,20,15, -159,47,51,39,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110, -116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2,72,2,78,2, -80,2,122,16,20,18,98,2,82,8,219,36,35,34,16,4,8,218,11,2,236, -3,1,7,101,110,118,51,57,53,54,252,153,1,18,16,2,95,2,91,8,220, -93,8,252,8,10,95,9,8,252,8,10,2,92,18,100,2,93,8,223,36,35, -34,8,218,16,8,8,222,11,3,1,4,103,53,50,51,252,154,1,3,1,4, -103,53,50,52,252,155,1,3,1,4,103,53,50,53,252,156,1,3,1,7,101, -110,118,51,57,54,50,252,157,1,2,252,157,1,2,252,157,1,16,8,8,221, -11,2,98,2,234,2,235,3,1,7,101,110,118,51,57,54,51,252,158,1,2, -252,158,1,2,252,158,1,18,158,2,101,8,223,18,158,2,252,61,1,8,223, -18,158,2,101,8,223,18,158,2,101,8,223,18,158,96,16,2,158,2,112,8, -223,9,16,2,158,63,99,112,117,252,159,1,8,223,9,16,2,158,64,117,115, -101,114,252,160,1,8,223,9,16,2,158,62,103,99,252,161,1,8,223,9,8, -223,18,158,2,101,8,223,18,158,70,116,105,109,101,45,97,112,112,108,121,252, -162,1,8,223,18,158,2,101,8,223,18,158,2,230,8,223,18,158,9,8,223, -18,158,2,101,8,223,18,16,2,103,93,16,2,158,64,110,117,108,108,252,163, -1,8,223,9,8,225,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92, -93,8,252,8,10,16,6,8,224,11,2,140,2,141,3,1,7,101,110,118,51, -57,54,56,252,164,1,2,252,164,1,95,9,8,252,8,10,2,92,18,158,2, -101,8,223,18,158,2,101,8,223,18,158,2,101,8,223,18,16,2,158,94,16, -2,158,97,16,2,158,66,112,114,105,110,116,102,252,165,1,8,223,9,16,2, -158,6,40,40,99,112,117,32,116,105,109,101,58,32,126,115,32,114,101,97,108, -32,116,105,109,101,58,32,126,115,32,103,99,32,116,105,109,101,58,32,126,115, -126,110,8,223,9,16,2,158,2,252,159,1,8,223,9,16,2,158,2,252,160, -1,8,223,9,16,2,158,2,252,161,1,8,223,9,8,223,9,16,2,158,95, -16,2,158,2,252,38,1,8,223,9,16,2,158,2,252,39,1,8,223,9,16, -2,158,2,112,8,223,9,8,223,9,8,225,95,9,8,252,8,10,2,92,18, -158,2,101,8,223,11,100,83,159,32,97,80,159,32,32,33,80,159,32,33,33, -80,159,32,34,33,80,159,32,35,33,80,159,32,36,33,27,247,22,252,113,2, -87,94,28,192,28,248,22,252,112,2,193,12,250,22,252,40,2,2,252,107,1, -6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,91, -159,37,11,90,161,37,32,11,254,22,252,90,2,2,86,11,33,32,11,9,204, -252,22,7,197,198,199,250,22,252,92,2,203,32,61,112,252,166,1,250,22,252, -93,2,204,32,2,252,166,1,83,159,32,93,80,159,32,37,33,89,162,32,33, -39,2,14,223,0,87,94,28,248,80,159,33,34,34,194,12,250,22,252,40,2, -2,14,6,7,7,112,114,111,109,105,115,101,196,27,248,80,159,34,35,34,195, -28,248,22,0,193,27,249,22,6,195,22,59,87,94,28,248,22,0,248,80,159, -36,35,34,197,249,80,159,36,36,34,197,194,12,249,22,1,22,7,248,80,159, -37,35,34,198,249,22,1,22,7,194,83,159,32,93,80,159,32,38,33,89,162, -32,32,36,2,16,223,0,248,80,158,33,39,249,22,19,11,80,158,35,40,83, -159,32,93,80,159,32,41,33,89,162,32,34,40,2,23,223,0,87,95,28,248, -22,252,222,2,194,12,252,22,252,40,2,2,23,6,16,16,112,97,114,97,109, -101,116,101,114,105,122,97,116,105,111,110,32,198,199,28,28,248,22,0,195,249, -22,34,196,32,11,12,252,22,252,40,2,2,23,6,19,19,112,114,111,99,101, -100,117,114,101,32,40,97,114,105,116,121,32,48,41,33,198,199,20,14,159,80, -158,32,40,193,247,194,83,159,32,97,80,159,32,42,33,80,159,32,43,33,80, -159,32,44,33,80,159,32,45,33,80,159,32,46,33,252,22,252,90,2,2,85, -11,33,32,11,83,159,32,97,80,159,32,47,33,80,159,32,48,33,80,159,32, -49,33,80,159,32,50,33,80,159,32,51,33,27,247,22,252,113,2,87,94,28, -192,28,248,22,252,9,2,248,22,252,112,2,194,250,22,252,40,2,2,252,107, -1,6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12, -12,91,159,37,11,90,161,37,32,11,254,22,252,90,2,2,85,11,33,32,11, -9,204,252,22,7,197,198,199,250,22,252,92,2,203,32,64,99,101,108,108,252, -167,1,250,22,252,93,2,204,32,2,252,167,1,83,159,32,93,80,159,32,52, -33,89,162,32,32,36,2,45,223,0,248,80,159,33,43,34,249,22,19,11,80, -158,35,53,83,159,32,93,80,159,32,54,33,89,162,32,34,40,2,49,223,0, -87,95,28,248,80,159,33,44,34,194,12,252,22,252,40,2,2,49,6,22,22, -98,114,101,97,107,32,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111, -110,32,198,199,28,28,248,22,0,195,249,22,34,196,32,11,12,252,22,252,40, -2,2,23,6,19,19,112,114,111,99,101,100,117,114,101,32,40,97,114,105,116, -121,32,48,41,33,198,199,83,158,36,20,93,94,20,14,159,80,158,32,53,249, -80,159,34,45,34,195,32,87,94,247,80,158,32,55,247,194,247,80,158,32,55, -96,68,35,37,107,101,114,110,101,108,252,168,1,2,84,2,83,2,18,96,2, -252,168,1,2,66,2,88,2,87,0}; - EVAL_ONE_SIZED_STR((char *)expr, 22269); +252,63,1,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,252, +63,1,8,207,18,16,2,106,93,16,2,158,2,202,8,207,9,8,212,8,28, +59,58,57,56,55,13,16,3,33,2,134,2,92,93,8,252,253,9,16,6,8, +211,11,2,140,2,141,2,252,139,1,2,252,139,1,16,4,8,210,11,2,151, +2,252,140,1,16,4,8,209,11,2,153,2,252,141,1,16,4,8,208,11,64, +118,97,108,115,252,146,1,3,1,7,101,110,118,51,57,52,55,252,147,1,95, +9,8,252,253,9,2,92,18,158,2,101,8,207,18,158,2,101,8,207,18,158, +2,101,8,207,18,158,2,101,8,207,18,158,2,101,8,207,18,158,2,101,8, +207,18,158,2,252,125,1,8,207,18,158,2,252,123,1,8,207,18,158,2,101, +8,207,18,158,2,230,8,207,18,158,9,8,207,18,158,2,101,8,207,18,16, +2,105,93,16,2,158,2,252,123,1,8,207,9,8,213,8,28,59,58,57,56, +55,13,16,3,33,2,134,2,92,93,8,252,253,9,8,211,8,210,8,209,95, +9,8,252,253,9,2,92,18,158,2,101,8,207,18,158,2,101,8,207,18,158, +2,101,8,207,18,16,2,158,94,16,2,98,2,252,122,1,8,217,93,8,252, +249,9,16,4,8,216,11,3,1,8,119,115,116,109,112,53,50,48,252,148,1, +3,1,7,101,110,118,51,57,50,56,252,149,1,16,4,8,215,11,3,1,4, +103,53,50,49,252,150,1,3,1,7,101,110,118,51,57,53,50,252,151,1,16, +4,8,214,11,2,222,3,1,7,101,110,118,51,57,53,51,252,152,1,9,16, +2,158,2,113,8,217,9,8,217,95,9,8,252,249,9,2,189,11,16,5,93, +2,60,89,162,32,33,8,41,9,223,0,27,249,22,209,20,15,159,35,32,39, +196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27, +248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,33,248,80,158, +40,34,195,27,248,80,158,41,35,196,28,248,80,158,41,36,193,248,80,158,41, +37,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80, +196,249,80,158,39,38,200,27,249,22,61,198,197,27,20,15,159,41,33,39,250, +22,209,20,15,159,44,34,39,250,22,209,20,15,159,47,35,39,250,22,62,20, +15,159,50,36,39,250,22,209,20,15,159,53,37,39,248,22,60,250,22,209,20, +15,159,57,38,39,249,22,60,20,15,159,59,39,39,250,22,209,20,15,159,8, +30,40,39,250,22,62,20,15,159,8,33,41,39,250,22,209,20,15,159,8,36, +42,39,250,22,62,20,15,159,8,39,43,39,20,15,159,8,39,44,39,23,31, +20,15,159,8,36,45,39,20,15,159,8,33,46,39,20,15,159,8,30,47,39, +20,15,159,57,48,39,20,15,159,53,49,39,20,15,159,50,50,39,20,15,159, +47,51,39,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, +97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2,72,2,78,2,80, +2,122,16,20,18,98,2,82,8,219,36,35,34,16,4,8,218,11,2,236,3, +1,7,101,110,118,51,57,53,54,252,153,1,18,16,2,95,2,91,8,220,93, +8,252,8,10,95,9,8,252,8,10,2,92,18,100,2,93,8,223,36,35,34, +8,218,16,8,8,222,11,3,1,4,103,53,50,51,252,154,1,3,1,4,103, +53,50,52,252,155,1,3,1,4,103,53,50,53,252,156,1,3,1,7,101,110, +118,51,57,54,50,252,157,1,2,252,157,1,2,252,157,1,16,8,8,221,11, +2,98,2,234,2,235,3,1,7,101,110,118,51,57,54,51,252,158,1,2,252, +158,1,2,252,158,1,18,158,2,101,8,223,18,158,2,252,61,1,8,223,18, +158,2,101,8,223,18,158,2,101,8,223,18,158,96,16,2,158,2,112,8,223, +9,16,2,158,63,99,112,117,252,159,1,8,223,9,16,2,158,64,117,115,101, +114,252,160,1,8,223,9,16,2,158,62,103,99,252,161,1,8,223,9,8,223, +18,158,2,101,8,223,18,158,70,116,105,109,101,45,97,112,112,108,121,252,162, +1,8,223,18,158,2,101,8,223,18,158,2,230,8,223,18,158,9,8,223,18, +158,2,101,8,223,18,16,2,103,93,16,2,158,64,110,117,108,108,252,163,1, +8,223,9,8,225,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92,93, +8,252,8,10,16,6,8,224,11,2,140,2,141,3,1,7,101,110,118,51,57, +54,56,252,164,1,2,252,164,1,95,9,8,252,8,10,2,92,18,158,2,101, +8,223,18,158,2,101,8,223,18,158,2,101,8,223,18,16,2,158,94,16,2, +158,97,16,2,158,66,112,114,105,110,116,102,252,165,1,8,223,9,16,2,158, +6,40,40,99,112,117,32,116,105,109,101,58,32,126,115,32,114,101,97,108,32, +116,105,109,101,58,32,126,115,32,103,99,32,116,105,109,101,58,32,126,115,126, +110,8,223,9,16,2,158,2,252,159,1,8,223,9,16,2,158,2,252,160,1, +8,223,9,16,2,158,2,252,161,1,8,223,9,8,223,9,16,2,158,95,16, +2,158,2,252,38,1,8,223,9,16,2,158,2,252,39,1,8,223,9,16,2, +158,2,112,8,223,9,8,223,9,8,225,95,9,8,252,8,10,2,92,18,158, +2,101,8,223,11,100,83,159,32,97,80,159,32,32,33,80,159,32,33,33,80, +159,32,34,33,80,159,32,35,33,80,159,32,36,33,27,247,22,252,113,2,87, +94,28,192,28,248,22,252,112,2,193,12,250,22,252,40,2,2,252,107,1,6, +15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,91,159, +37,11,90,161,37,32,11,254,22,252,90,2,2,85,11,33,32,11,9,204,252, +22,7,197,198,199,250,22,252,92,2,203,32,61,112,252,166,1,250,22,252,93, +2,204,32,2,252,166,1,83,159,32,93,80,159,32,37,33,89,162,32,33,39, +2,14,223,0,87,94,28,248,80,159,33,34,34,194,12,250,22,252,40,2,2, +14,6,7,7,112,114,111,109,105,115,101,196,27,248,80,159,34,35,34,195,28, +248,22,0,193,27,249,22,6,195,22,59,87,94,28,248,22,0,248,80,159,36, +35,34,197,249,80,159,36,36,34,197,194,12,249,22,1,22,7,248,80,159,37, +35,34,198,249,22,1,22,7,194,83,159,32,93,80,159,32,38,33,89,162,32, +32,36,2,16,223,0,248,80,158,33,39,249,22,19,11,80,158,35,40,83,159, +32,93,80,159,32,41,33,89,162,32,34,40,2,23,223,0,87,95,28,248,22, +252,222,2,194,12,252,22,252,40,2,2,23,6,16,16,112,97,114,97,109,101, +116,101,114,105,122,97,116,105,111,110,32,198,199,28,28,248,22,0,195,249,22, +34,196,32,11,12,252,22,252,40,2,2,23,6,19,19,112,114,111,99,101,100, +117,114,101,32,40,97,114,105,116,121,32,48,41,33,198,199,20,14,159,80,158, +32,40,193,247,194,83,159,32,97,80,159,32,42,33,80,159,32,43,33,80,159, +32,44,33,80,159,32,45,33,80,159,32,46,33,252,22,252,90,2,2,86,11, +33,32,11,83,159,32,97,80,159,32,47,33,80,159,32,48,33,80,159,32,49, +33,80,159,32,50,33,80,159,32,51,33,27,247,22,252,113,2,87,94,28,192, +28,248,22,252,9,2,248,22,252,112,2,194,250,22,252,40,2,2,252,107,1, +6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,12, +91,159,37,11,90,161,37,32,11,254,22,252,90,2,2,86,11,33,32,11,9, +204,252,22,7,197,198,199,250,22,252,92,2,203,32,64,99,101,108,108,252,167, +1,250,22,252,93,2,204,32,2,252,167,1,83,159,32,93,80,159,32,52,33, +89,162,32,32,36,2,45,223,0,248,80,159,33,43,34,249,22,19,11,80,158, +35,53,83,159,32,93,80,159,32,54,33,89,162,32,34,40,2,49,223,0,87, +95,28,248,80,159,33,44,34,194,12,252,22,252,40,2,2,49,6,22,22,98, +114,101,97,107,32,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110, +32,198,199,28,28,248,22,0,195,249,22,34,196,32,11,12,252,22,252,40,2, +2,23,6,19,19,112,114,111,99,101,100,117,114,101,32,40,97,114,105,116,121, +32,48,41,33,198,199,83,158,36,20,93,94,20,14,159,80,158,32,53,249,80, +159,34,45,34,195,32,87,94,247,80,158,32,55,247,194,247,80,158,32,55,96, +68,35,37,107,101,114,110,101,108,252,168,1,2,84,2,83,2,18,96,2,252, +168,1,2,66,2,88,2,87,0}; + EVAL_ONE_SIZED_STR((char *)expr, 22268); } { static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,50,252,149,1,252,77,49,159,32,20,98,158,16, @@ -3371,25 +3372,25 @@ 193,248,80,158,41,37,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78, 195,27,248,22,80,196,27,249,22,209,20,15,159,40,33,38,249,22,209,203,247, 22,48,27,249,22,209,20,15,159,41,34,38,249,22,209,204,247,22,48,27,249, -22,209,20,15,159,42,35,38,249,22,209,205,247,22,48,27,252,22,61,202,200, +22,209,20,15,159,42,35,38,249,22,209,205,247,22,48,27,252,22,61,200,202, 201,199,198,27,20,15,159,42,36,38,250,22,209,20,15,159,45,37,38,250,22, 209,20,15,159,48,38,38,250,22,60,20,15,159,51,39,38,250,22,209,20,15, 159,54,40,38,248,22,60,250,22,209,20,15,159,58,41,38,249,22,56,248,22, -78,23,20,20,15,159,8,28,42,38,20,15,159,58,43,38,20,15,159,54,44, +52,23,20,20,15,159,8,28,42,38,20,15,159,58,43,38,20,15,159,54,44, 38,250,22,209,20,15,159,54,45,38,251,22,60,20,15,159,58,46,38,250,22, 209,20,15,159,8,29,47,38,248,22,60,250,22,209,20,15,159,8,33,48,38, 249,22,60,248,22,90,23,27,250,22,209,20,15,159,8,38,49,38,250,22,60, -20,15,159,8,41,50,38,248,22,52,23,33,250,22,209,20,15,159,8,44,51, +20,15,159,8,41,50,38,248,22,78,23,33,250,22,209,20,15,159,8,44,51, 38,250,22,60,20,15,159,8,47,52,38,250,22,209,20,15,159,8,50,53,38, 248,22,60,250,22,209,20,15,159,8,54,54,38,249,22,60,248,22,89,23,48, 250,22,209,20,15,159,8,59,55,38,249,22,60,20,15,159,8,61,56,38,248, -22,78,23,53,20,15,159,8,59,57,38,20,15,159,8,54,58,38,20,15,159, +22,52,23,53,20,15,159,8,59,57,38,20,15,159,8,54,58,38,20,15,159, 8,50,59,38,250,22,209,20,15,159,8,50,8,28,38,251,22,62,20,15,159, 8,54,8,29,38,20,15,159,8,54,8,30,38,248,22,89,23,46,248,22,87, 23,46,20,15,159,8,50,8,31,38,20,15,159,8,44,8,32,38,20,15,159, 8,38,8,33,38,20,15,159,8,33,8,34,38,20,15,159,8,29,8,35,38, 250,22,209,20,15,159,8,29,8,36,38,250,22,60,20,15,159,8,32,8,37, -38,248,22,78,23,24,250,22,209,20,15,159,8,35,8,38,38,249,22,60,20, +38,248,22,52,23,24,250,22,209,20,15,159,8,35,8,38,38,249,22,60,20, 15,159,8,37,8,39,38,248,22,90,23,29,20,15,159,8,35,8,40,38,20, 15,159,8,29,8,41,38,248,22,90,23,18,20,15,159,54,8,42,38,20,15, 159,48,8,43,38,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, @@ -3402,15 +3403,15 @@ 37,100,101,102,105,110,101,113,9,11,159,70,35,37,109,101,109,116,114,97,99, 101,114,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,115, 9,11,159,73,35,37,109,111,114,101,45,115,99,104,101,109,101,116,9,11,16, -92,2,53,2,2,2,87,2,2,2,14,2,2,2,59,2,2,2,57,2,2, -2,22,2,2,2,63,2,2,2,30,2,2,2,47,2,2,2,71,2,2,2, -75,2,2,2,91,2,2,2,79,2,2,2,32,2,2,2,81,2,2,2,69, -2,2,2,51,2,2,2,83,2,2,2,95,2,2,2,85,2,2,2,67,2, -2,2,89,2,2,2,98,2,2,2,10,2,2,2,61,2,2,2,55,2,2, -2,18,2,2,2,65,2,2,2,20,2,2,2,34,2,2,2,16,2,2,2, -97,2,2,2,49,2,2,2,36,2,2,2,26,2,2,2,38,2,2,2,73, -2,2,2,8,2,2,2,24,2,2,2,40,2,2,2,12,2,2,2,28,2, -2,2,77,2,2,2,4,2,2,2,6,2,2,2,93,2,2,98,35,10,33, +92,2,59,2,2,2,87,2,2,2,63,2,2,2,57,2,2,2,22,2,2, +2,10,2,2,2,67,2,2,2,30,2,2,2,75,2,2,2,79,2,2,2, +91,2,2,2,81,2,2,2,83,2,2,2,69,2,2,2,85,2,2,2,51, +2,2,2,61,2,2,2,71,2,2,2,89,2,2,2,97,2,2,2,77,2, +2,2,18,2,2,2,32,2,2,2,26,2,2,2,65,2,2,2,34,2,2, +2,20,2,2,2,12,2,2,2,16,2,2,2,95,2,2,2,36,2,2,2, +8,2,2,2,38,2,2,2,98,2,2,2,47,2,2,2,73,2,2,2,24, +2,2,2,40,2,2,2,28,2,2,2,49,2,2,2,6,2,2,2,4,2, +2,2,53,2,2,2,14,2,2,2,55,2,2,2,93,2,2,98,35,10,33, 11,94,159,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,117, 9,11,159,2,100,9,11,16,0,96,34,8,254,1,11,16,0,16,4,33,11, 61,120,118,3,1,7,101,110,118,51,57,57,51,119,18,100,2,112,41,36,35, @@ -3503,9 +3504,9 @@ 112,101,45,104,97,110,100,108,101,114,167,223,1,247,207,250,22,31,89,162,32, 32,36,9,225,6,5,3,90,161,33,32,10,247,22,252,44,2,90,161,33,33, 10,247,22,252,31,2,87,94,248,22,252,44,2,195,248,22,252,31,2,11,89, -162,32,32,35,9,224,5,4,248,22,9,89,162,32,33,36,9,224,2,1,247, +162,32,32,35,9,224,5,4,248,22,8,89,162,32,33,36,9,224,2,1,247, 91,159,33,11,20,12,95,33,192,89,162,32,32,37,69,114,101,112,108,45,108, -111,111,112,168,226,2,1,3,0,87,94,248,22,9,89,162,32,33,39,9,225, +111,111,112,168,226,2,1,3,0,87,94,248,22,8,89,162,32,33,39,9,225, 4,3,2,250,22,31,89,162,32,32,36,9,225,5,4,6,87,94,248,22,252, 31,2,210,90,161,33,33,10,192,12,89,162,32,32,36,9,223,3,27,247,247, 22,40,87,94,28,248,22,252,70,1,193,248,194,12,12,249,22,6,89,162,32, @@ -3522,7 +3523,7 @@ 248,22,252,35,3,196,28,194,248,22,252,186,2,249,22,252,160,2,248,22,252, 165,1,249,22,252,184,1,6,36,36,108,111,97,100,47,99,100,58,32,99,97, 110,110,111,116,32,111,112,101,110,32,97,32,100,105,114,101,99,116,111,114,121, -58,32,126,115,201,247,22,15,28,248,22,252,188,1,193,87,94,28,248,22,252, +58,32,126,115,201,247,22,15,28,248,22,252,23,3,193,87,94,28,248,22,252, 29,3,193,12,248,22,252,186,2,249,22,252,160,2,248,22,252,165,1,250,22, 252,184,1,6,65,65,108,111,97,100,47,99,100,58,32,100,105,114,101,99,116, 111,114,121,32,111,102,32,126,115,32,100,111,101,115,32,110,111,116,32,101,120, @@ -3964,54 +3965,54 @@ 31,71,114,97,116,105,111,110,97,108,105,122,101,32,1,20,114,101,97,100,45, 101,118,97,108,45,112,114,105,110,116,45,108,111,111,112,33,1,25,115,99,104, 101,109,101,45,114,101,112,111,114,116,45,101,110,118,105,114,111,110,109,101,110, -116,34,66,108,101,116,47,101,99,35,70,115,121,110,116,97,120,47,108,111,99, -36,66,115,121,110,116,97,120,37,66,100,101,102,105,110,101,38,70,113,117,97, -115,105,113,117,111,116,101,39,71,113,117,97,115,105,115,121,110,116,97,120,40, -75,115,121,110,116,97,120,45,105,100,45,114,117,108,101,115,41,2,3,63,97, -110,100,42,62,111,114,43,70,108,101,116,45,115,116,114,117,99,116,44,71,119, -105,116,104,45,115,121,110,116,97,120,45,70,108,101,116,45,115,121,110,116,97, -120,46,73,100,101,102,105,110,101,45,115,116,114,117,99,116,47,62,100,111,48, -72,112,97,114,97,109,101,116,101,114,105,122,101,49,75,113,117,97,115,105,115, -121,110,116,97,120,47,108,111,99,50,73,119,105,116,104,45,104,97,110,100,108, -101,114,115,51,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,52,75, -108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,53,72,108,101,116,45, -115,121,110,116,97,120,101,115,54,72,115,121,110,116,97,120,45,114,117,108,101, -115,55,64,99,97,115,101,56,65,100,101,108,97,121,57,71,115,121,110,116,97, -120,45,99,97,115,101,58,66,108,101,116,47,99,99,59,73,100,101,102,105,110, -101,45,115,121,110,116,97,120,60,72,115,121,110,116,97,120,45,99,97,115,101, -42,61,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97,107, -62,68,117,110,115,121,110,116,97,120,63,77,117,110,115,121,110,116,97,120,45, -115,112,108,105,99,105,110,103,64,1,28,109,122,115,99,104,101,109,101,45,105, -110,45,115,116,120,45,109,111,100,117,108,101,45,98,101,103,105,110,65,64,116, -105,109,101,66,71,115,101,116,33,45,118,97,108,117,101,115,67,77,100,101,102, -105,110,101,45,102,111,114,45,115,121,110,116,97,120,68,76,98,101,103,105,110, -45,102,111,114,45,115,121,110,116,97,120,69,69,102,108,117,105,100,45,108,101, -116,70,79,109,101,109,111,114,121,45,116,114,97,99,101,45,108,97,109,98,100, -97,71,64,99,111,110,100,72,73,108,101,116,114,101,99,45,115,121,110,116,97, -120,73,64,119,104,101,110,74,66,117,110,108,101,115,115,75,16,73,73,35,37, +116,34,71,115,121,110,116,97,120,45,99,97,115,101,35,70,115,121,110,116,97, +120,47,108,111,99,36,66,100,101,102,105,110,101,37,79,109,101,109,111,114,121, +45,116,114,97,99,101,45,108,97,109,98,100,97,38,75,108,101,116,114,101,99, +45,115,121,110,116,97,120,101,115,39,77,100,101,102,105,110,101,45,102,111,114, +45,115,121,110,116,97,120,40,2,3,64,116,105,109,101,41,70,108,101,116,45, +115,121,110,116,97,120,42,73,100,101,102,105,110,101,45,115,116,114,117,99,116, +43,75,113,117,97,115,105,115,121,110,116,97,120,47,108,111,99,44,72,112,97, +114,97,109,101,116,101,114,105,122,101,45,73,108,101,116,114,101,99,45,115,121, +110,116,97,120,46,72,108,101,116,45,115,121,110,116,97,120,101,115,47,72,115, +121,110,116,97,120,45,114,117,108,101,115,48,75,115,121,110,116,97,120,45,105, +100,45,114,117,108,101,115,49,73,119,105,116,104,45,104,97,110,100,108,101,114, +115,50,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,51,66,115,121, +110,116,97,120,52,66,108,101,116,47,99,99,53,73,100,101,102,105,110,101,45, +115,121,110,116,97,120,54,70,113,117,97,115,105,113,117,111,116,101,55,62,100, +111,56,76,98,101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,57,77, +117,110,115,121,110,116,97,120,45,115,112,108,105,99,105,110,103,58,1,28,109, +122,115,99,104,101,109,101,45,105,110,45,115,116,120,45,109,111,100,117,108,101, +45,98,101,103,105,110,59,70,108,101,116,45,115,116,114,117,99,116,60,63,97, +110,100,61,62,111,114,62,64,99,97,115,101,63,78,112,97,114,97,109,101,116, +101,114,105,122,101,45,98,114,101,97,107,64,71,119,105,116,104,45,115,121,110, +116,97,120,65,65,100,101,108,97,121,66,71,115,101,116,33,45,118,97,108,117, +101,115,67,68,117,110,115,121,110,116,97,120,68,69,102,108,117,105,100,45,108, +101,116,69,71,113,117,97,115,105,115,121,110,116,97,120,70,72,115,121,110,116, +97,120,45,99,97,115,101,42,71,64,99,111,110,100,72,64,119,104,101,110,73, +66,117,110,108,101,115,115,74,66,108,101,116,47,101,99,75,16,73,73,35,37, 109,111,114,101,45,115,99,104,101,109,101,76,2,76,66,35,37,109,105,115,99, 77,2,77,2,77,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109, 101,78,2,77,2,76,2,77,2,76,2,77,2,77,2,76,70,35,37,119,105, 116,104,45,115,116,120,79,2,77,65,35,37,115,116,120,80,2,77,2,77,2, 77,2,77,2,77,2,77,2,77,2,77,2,77,2,77,2,77,2,76,2,77, -2,77,2,77,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,81,68, -35,37,115,116,120,108,111,99,82,69,35,37,115,116,120,99,97,115,101,83,68, -35,37,100,101,102,105,110,101,84,71,35,37,113,113,45,97,110,100,45,111,114, -85,67,35,37,113,113,115,116,120,86,2,78,68,35,37,107,101,114,110,101,108, -87,2,85,2,85,2,76,2,79,2,78,2,81,2,76,2,76,2,86,2,76, -2,76,2,78,2,78,2,78,2,76,2,76,2,82,2,76,2,84,2,82,2, -76,2,86,2,86,72,35,37,115,116,120,109,122,45,98,111,100,121,88,2,76, -2,76,2,84,2,84,2,76,2,77,66,35,37,99,111,110,100,89,2,78,2, -81,2,81,16,73,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11, +2,77,2,77,68,35,37,115,116,120,108,111,99,81,2,81,68,35,37,100,101, +102,105,110,101,82,2,77,2,78,2,82,68,35,37,107,101,114,110,101,108,83, +2,76,2,78,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,84,67, +35,37,113,113,115,116,120,85,2,76,2,78,2,78,2,78,2,78,2,76,2, +76,69,35,37,115,116,120,99,97,115,101,86,2,76,2,82,71,35,37,113,113, +45,97,110,100,45,111,114,87,2,76,2,82,2,85,72,35,37,115,116,120,109, +122,45,98,111,100,121,88,2,76,2,87,2,87,2,76,2,76,2,79,2,76, +2,76,2,85,2,76,2,85,2,81,66,35,37,99,111,110,100,89,2,84,2, +84,2,84,16,73,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11, 2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21,2, 22,2,23,2,24,2,25,2,26,2,27,2,28,2,29,2,30,2,31,2,32, -2,33,2,34,2,35,2,36,2,37,2,38,2,39,2,40,2,41,1,20,35, -37,112,108,97,105,110,45,109,111,100,117,108,101,45,98,101,103,105,110,90,2, +2,33,2,34,2,35,2,36,2,37,2,38,2,39,2,40,1,20,35,37,112, +108,97,105,110,45,109,111,100,117,108,101,45,98,101,103,105,110,90,2,41,2, 42,2,43,2,44,2,45,2,46,2,47,2,48,2,49,2,50,2,51,2,52, -2,53,2,54,2,55,2,56,2,57,2,58,2,59,2,60,2,61,2,62,2, -63,2,64,2,3,2,66,2,67,2,68,2,69,2,70,2,71,2,72,2,73, -2,74,2,75,8,31,8,73,9,9,100,2,87,2,76,2,77,2,78,2,80, -2,88,2,86,2,84,9,0}; +2,53,2,54,2,55,2,56,2,57,2,58,2,3,2,60,2,61,2,62,2, +63,2,64,2,65,2,66,2,67,2,68,2,69,2,70,2,71,2,72,2,73, +2,74,2,75,8,31,8,73,9,9,100,2,83,2,76,2,77,2,78,2,80, +2,88,2,85,2,82,9,0}; EVAL_ONE_SIZED_STR((char *)expr, 1708); } { @@ -4019,27 +4020,27 @@ 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,66,35,37,114,53, 114,115,1,29,2,11,11,10,10,10,33,80,158,32,32,20,98,158,16,1,30, 3,2,2,69,117,110,100,101,102,105,110,101,100,4,254,1,16,0,11,11,16, -1,2,4,33,11,16,24,64,99,111,110,100,5,64,108,101,116,42,6,66,100, -101,102,105,110,101,7,73,108,101,116,114,101,99,45,115,121,110,116,97,120,8, -2,0,62,105,102,9,65,113,117,111,116,101,10,64,99,97,115,101,11,67,117, -110,113,117,111,116,101,12,70,113,117,97,115,105,113,117,111,116,101,13,64,115, -101,116,33,14,76,117,110,113,117,111,116,101,45,115,112,108,105,99,105,110,103, -15,63,108,101,116,16,65,100,101,108,97,121,17,65,35,37,97,112,112,18,63, -97,110,100,19,73,100,101,102,105,110,101,45,115,121,110,116,97,120,20,67,35, -37,100,97,116,117,109,21,62,111,114,22,65,35,37,116,111,112,23,62,100,111, -24,66,108,97,109,98,100,97,25,70,108,101,116,45,115,121,110,116,97,120,26, -71,114,53,114,115,58,108,101,116,114,101,99,27,16,24,66,35,37,99,111,110, -100,28,68,35,37,107,101,114,110,101,108,29,68,35,37,100,101,102,105,110,101, -30,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,31,2,29, -2,29,2,29,73,35,37,109,111,114,101,45,115,99,104,101,109,101,32,2,29, -71,35,37,113,113,45,97,110,100,45,111,114,33,2,29,2,29,2,29,2,32, -2,29,2,33,2,30,2,29,2,33,2,29,2,32,2,29,2,31,11,16,24, -2,5,2,6,2,7,2,8,2,0,2,9,2,10,2,11,2,12,2,13,2, -14,2,15,2,16,2,17,2,18,2,19,2,20,2,21,2,22,2,23,2,24, -2,25,2,26,66,108,101,116,114,101,99,34,32,56,93,16,5,93,2,27,89, +1,2,4,33,11,16,24,64,99,111,110,100,5,65,35,37,116,111,112,6,66, +108,97,109,98,100,97,7,65,100,101,108,97,121,8,71,114,53,114,115,58,108, +101,116,114,101,99,9,63,108,101,116,10,64,108,101,116,42,11,2,0,62,105, +102,12,65,113,117,111,116,101,13,64,115,101,116,33,14,62,100,111,15,67,117, +110,113,117,111,116,101,16,70,113,117,97,115,105,113,117,111,116,101,17,73,108, +101,116,114,101,99,45,115,121,110,116,97,120,18,76,117,110,113,117,111,116,101, +45,115,112,108,105,99,105,110,103,19,73,100,101,102,105,110,101,45,115,121,110, +116,97,120,20,70,108,101,116,45,115,121,110,116,97,120,21,64,99,97,115,101, +22,63,97,110,100,23,62,111,114,24,66,100,101,102,105,110,101,25,65,35,37, +97,112,112,26,67,35,37,100,97,116,117,109,27,16,24,66,35,37,99,111,110, +100,28,68,35,37,107,101,114,110,101,108,29,2,29,73,35,37,109,111,114,101, +45,115,99,104,101,109,101,30,11,2,29,2,29,2,29,2,29,2,29,2,29, +2,30,2,29,71,35,37,113,113,45,97,110,100,45,111,114,31,76,35,37,115, +116,120,99,97,115,101,45,115,99,104,101,109,101,32,2,29,68,35,37,100,101, +102,105,110,101,33,2,32,2,30,2,31,2,31,2,33,2,29,2,29,16,24, +2,5,2,6,2,7,2,8,66,108,101,116,114,101,99,34,2,10,2,11,2, +0,2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21, +2,22,2,23,2,24,2,25,2,26,2,27,32,56,93,16,5,93,2,9,89, 162,32,33,8,32,9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33, 248,80,158,36,34,197,27,248,80,158,37,35,198,28,248,80,158,37,32,193,249, -80,158,38,36,27,248,80,158,40,34,196,28,248,80,158,40,37,193,248,22,9, +80,158,38,36,27,248,80,158,40,34,196,28,248,80,158,40,37,193,248,22,8, 89,162,32,33,39,9,224,8,1,27,249,22,2,89,162,32,33,45,9,224,4, 5,249,80,158,35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158, 38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40, @@ -4047,20 +4048,20 @@ 248,80,158,37,40,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193, 11,27,248,80,158,40,35,196,28,248,80,158,40,37,193,248,80,158,40,40,193, 11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, -248,22,88,197,249,80,158,39,42,200,27,250,22,61,198,199,200,27,20,15,159, +248,22,88,197,249,80,158,39,42,200,27,250,22,61,198,200,199,27,20,15,159, 41,32,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22, -9,89,162,32,33,40,9,226,11,2,3,1,250,22,31,89,162,32,32,36,9, +8,89,162,32,33,40,9,226,11,2,3,1,250,22,31,89,162,32,32,36,9, 225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162, 32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22, -252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,99,2,27,6,19, +252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,99,2,9,6,19, 19,103,101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,94, 64,118,97,114,49,35,63,46,46,46,36,9,94,94,2,35,65,105,110,105,116, 49,37,2,36,64,98,111,100,121,38,2,36,20,15,159,35,33,44,89,162,32, 32,52,9,225,6,5,4,27,250,22,209,20,15,159,38,34,44,250,22,209,20, 15,159,41,35,44,253,22,62,20,15,159,47,36,44,20,15,159,47,37,44,248, -22,80,206,20,15,159,47,38,44,250,22,2,89,162,33,33,41,9,223,18,250, +22,78,206,20,15,159,47,38,44,250,22,2,89,162,33,33,41,9,223,18,250, 22,209,20,15,159,35,39,44,249,22,60,248,22,52,199,248,22,78,199,20,15, -159,35,40,44,248,22,80,23,17,248,22,78,23,17,248,22,52,206,20,15,159, +159,35,40,44,248,22,78,23,17,248,22,80,23,17,248,22,52,206,20,15,159, 41,41,44,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3, 248,22,252,184,2,208,27,28,248,80,158,35,32,196,249,80,158,36,33,248,80, 158,37,34,198,27,248,80,158,38,35,199,28,248,80,158,38,32,193,28,27,248, @@ -4070,7 +4071,7 @@ 34,194,27,248,80,158,40,35,194,28,248,80,158,40,32,193,249,80,158,41,36, 27,248,80,158,43,34,196,28,248,80,158,43,37,193,248,22,59,248,80,158,44, 40,194,11,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158,44, -36,27,248,80,158,46,34,196,28,248,80,158,46,37,193,248,22,9,89,162,32, +36,27,248,80,158,46,34,196,28,248,80,158,46,37,193,248,22,8,89,162,32, 33,39,9,224,14,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80, 158,35,38,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199, 27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80, @@ -4080,12 +4081,12 @@ 11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87, 196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,42,202,27,251,22,61, 199,201,200,202,27,20,15,159,43,42,44,91,159,33,11,90,161,33,32,11,83, -160,38,32,33,11,247,248,22,9,89,162,32,33,40,9,226,13,2,3,1,250, +160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2,3,1,250, 22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184, 2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32, 36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158, -35,43,21,95,2,16,94,94,2,35,2,4,2,36,97,2,16,94,94,65,116, -101,109,112,49,39,2,37,2,36,95,2,14,2,35,2,39,2,36,96,2,16, +35,43,21,95,2,10,94,94,2,35,2,4,2,36,97,2,10,94,94,65,116, +101,109,112,49,39,2,37,2,36,95,2,14,2,35,2,39,2,36,96,2,10, 9,2,38,2,36,20,15,159,35,43,44,89,162,32,32,8,29,9,225,6,5, 4,27,250,22,209,20,15,159,38,44,44,250,22,209,20,15,159,41,45,44,250, 22,60,20,15,159,44,46,44,249,22,2,89,162,33,33,40,9,223,14,250,22, @@ -4110,7 +4111,7 @@ 196,28,248,80,158,43,32,193,249,80,158,44,36,27,248,80,158,46,34,196,28, 248,80,158,46,37,193,248,22,59,248,80,158,47,40,194,11,27,248,80,158,46, 35,196,28,248,80,158,46,32,193,249,80,158,47,36,27,248,80,158,49,34,196, -28,248,80,158,49,37,193,248,22,9,89,162,32,33,39,9,224,17,1,27,249, +28,248,80,158,49,37,193,248,22,8,89,162,32,33,39,9,224,17,1,27,249, 22,2,89,162,32,33,45,9,224,4,5,249,80,158,35,38,28,248,80,158,36, 32,197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28, 248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41, @@ -4119,22 +4120,22 @@ 158,49,37,193,248,80,158,49,40,193,11,11,11,11,11,11,11,28,192,27,248, 22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,249,22, 70,199,36,27,249,22,70,200,37,27,249,22,69,201,38,249,80,158,44,42,205, -27,252,22,61,200,202,204,201,203,27,20,15,159,46,8,31,44,91,159,33,11, -90,161,33,32,11,83,160,38,32,33,11,247,248,22,9,89,162,32,33,40,9, +27,252,22,61,204,200,202,201,203,27,20,15,159,46,8,31,44,91,159,33,11, +90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9, 226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33, 33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1, 248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252, -186,2,193,249,80,158,35,43,21,99,2,27,6,19,19,103,101,110,101,114,97, +186,2,193,249,80,158,35,43,21,99,2,9,6,19,19,103,101,110,101,114,97, 116,101,95,116,101,109,112,95,110,97,109,101,115,94,61,121,40,2,36,95,67, 110,101,119,116,101,109,112,41,64,116,101,109,112,42,2,36,94,94,2,35,2, 37,2,36,2,38,2,36,20,15,159,35,8,32,44,89,162,32,32,54,9,225, 6,5,4,27,250,22,209,20,15,159,38,8,33,44,250,22,209,20,15,159,41, 8,34,44,253,22,62,20,15,159,47,8,35,44,20,15,159,47,8,36,44,248, -22,87,206,250,22,209,20,15,159,50,8,37,44,249,22,56,20,15,159,52,8, +22,52,206,250,22,209,20,15,159,50,8,37,44,249,22,56,20,15,159,52,8, 38,44,248,22,89,23,19,20,15,159,50,8,39,44,250,22,2,89,162,33,33, 41,9,223,18,250,22,209,20,15,159,35,8,40,44,249,22,60,248,22,52,199, -248,22,78,199,20,15,159,35,8,41,44,248,22,78,23,17,248,22,90,23,17, -248,22,52,206,20,15,159,41,8,42,44,197,89,162,32,32,33,9,223,0,192, +248,22,78,199,20,15,159,35,8,41,44,248,22,87,23,17,248,22,90,23,17, +248,22,78,206,20,15,159,41,8,42,44,197,89,162,32,32,33,9,223,0,192, 89,162,32,32,34,9,223,3,248,22,252,184,2,208,250,22,252,39,2,11,6, 10,10,98,97,100,32,115,121,110,116,97,120,199,32,20,98,158,16,12,30,43, 65,35,37,115,116,120,44,69,115,116,120,45,112,97,105,114,63,45,11,30,46, @@ -4155,12 +4156,12 @@ 101,115,99,76,3,1,7,101,110,118,52,51,48,57,77,16,4,35,11,63,101, 120,110,78,3,1,7,101,110,118,52,51,49,49,79,95,9,8,252,46,11,2, 68,18,99,64,100,101,115,116,80,45,98,44,10,32,11,93,159,68,109,122,115, -99,104,101,109,101,81,9,11,16,4,2,27,2,2,2,4,2,2,98,43,10, +99,104,101,109,101,81,9,11,16,4,2,9,2,2,2,4,2,2,98,43,10, 33,11,93,159,2,81,9,11,16,0,96,42,8,254,1,11,16,0,16,8,41, 11,3,1,4,103,53,53,53,82,3,1,4,103,53,53,54,83,3,1,4,103, 53,53,55,84,3,1,7,101,110,118,52,51,48,48,85,2,85,2,85,16,8, 40,11,2,35,2,37,2,38,3,1,7,101,110,118,52,51,48,49,86,2,86, -2,86,18,158,63,99,116,120,87,45,18,158,2,27,45,18,158,6,19,19,103, +2,86,18,158,63,99,116,120,87,45,18,158,2,9,45,18,158,6,19,19,103, 101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,45,18,158, 9,45,18,158,2,87,45,18,158,2,87,45,18,158,2,87,45,18,16,2,95, 2,70,46,93,8,252,50,11,95,9,8,252,50,11,2,68,18,16,2,99,2, @@ -4172,7 +4173,7 @@ 48,92,3,1,4,103,53,53,49,93,3,1,4,103,53,53,50,94,3,1,4, 103,53,53,51,95,3,1,7,101,110,118,52,51,51,51,96,2,96,2,96,2, 96,16,10,52,11,2,39,2,35,2,37,2,38,3,1,7,101,110,118,52,51, -51,52,97,2,97,2,97,2,97,18,158,2,87,54,18,158,2,16,54,18,158, +51,52,97,2,97,2,97,2,97,18,158,2,87,54,18,158,2,10,54,18,158, 2,87,54,18,16,2,106,93,16,2,158,2,4,54,9,8,33,98,8,32,10, 32,11,94,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,98,9, 11,159,2,44,9,11,16,6,66,115,121,110,116,97,120,99,29,100,11,11,73, @@ -4185,8 +4186,8 @@ 71,2,72,2,88,2,88,16,4,57,11,2,74,2,89,16,4,56,11,2,76, 2,90,16,4,55,11,64,118,97,108,115,107,3,1,7,101,110,118,52,51,52, 57,108,95,9,8,252,50,11,2,68,18,158,2,87,54,18,158,2,87,54,18, -158,2,16,54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,158, -2,14,54,18,158,2,87,54,18,158,2,87,54,18,158,2,16,54,18,158,9, +158,2,10,54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,158, +2,14,54,18,158,2,87,54,18,158,2,87,54,18,158,2,10,54,18,158,9, 54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,16,2,95,2, 70,8,34,93,8,252,55,11,95,9,8,252,55,11,2,68,18,16,2,99,2, 36,8,39,93,8,252,55,11,16,6,8,38,11,2,71,2,72,3,1,7,101, @@ -4199,7 +4200,7 @@ 1,4,103,53,52,56,118,3,1,7,101,110,118,52,51,55,51,119,2,119,2, 119,2,119,2,119,2,119,16,14,8,40,11,2,103,2,40,2,42,2,35,2, 37,2,38,3,1,7,101,110,118,52,51,55,52,120,2,120,2,120,2,120,2, -120,2,120,18,158,2,87,8,42,18,158,2,27,8,42,18,158,6,19,19,103, +120,2,120,18,158,2,87,8,42,18,158,2,9,8,42,18,158,6,19,19,103, 101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,8,42,18, 158,2,87,8,42,18,158,2,41,8,42,18,158,2,87,8,42,18,158,2,87, 8,42,18,158,2,87,8,42,18,158,2,87,8,42,11,93,83,159,32,93,80, diff --git a/src/mzscheme/src/env.c b/src/mzscheme/src/env.c index 59f7db5bce..8a63b6d108 100644 --- a/src/mzscheme/src/env.c +++ b/src/mzscheme/src/env.c @@ -615,9 +615,30 @@ static void skip_certain_things(Scheme_Object *o, Scheme_Close_Custodian_Client /* namespace constructors */ /*========================================================================*/ +static void create_env_marked_names(Scheme_Env *e) +{ + Scheme_Hash_Table *mn; + Scheme_Object *rn; + + /* Set up a rename table, in case an identifier with a let-binding + renaming ends up in a definition position: */ + + mn = scheme_make_hash_table(SCHEME_hash_ptr); + scheme_hash_set(mn, scheme_false, scheme_null); + e->marked_names = mn; + + rn = scheme_make_module_rename(e->phase, mzMOD_RENAME_TOPLEVEL, mn); + e->rename = rn; +} + Scheme_Env *scheme_make_empty_env(void) { - return make_env(NULL, 0, 7); + Scheme_Env *e; + + e = make_env(NULL, 0, 7); + create_env_marked_names(e); + + return e; } static Scheme_Env *make_env(Scheme_Env *base, int semi, int toplevel_size) @@ -720,6 +741,9 @@ void scheme_prepare_exp_env(Scheme_Env *env) env->exp_env = eenv; eenv->template_env = env; + + if (!env->module && !env->phase) + create_env_marked_names(eenv); } } @@ -902,21 +926,6 @@ scheme_global_keyword_bucket(Scheme_Object *symbol, Scheme_Env *env) return b; } -Scheme_Bucket * -scheme_exptime_global_bucket(Scheme_Object *symbol, Scheme_Env *env) -{ - /* This is for mzc, but it can't be right. */ - scheme_prepare_exp_env(env); - return scheme_global_bucket(symbol, env->exp_env); -} - -Scheme_Bucket * -scheme_exptime_expdef_global_bucket(Scheme_Object *symbol, Scheme_Env *env) -{ - scheme_prepare_exp_env(env); - return scheme_global_bucket(symbol, env->exp_env); -} - /********** Set **********/ void @@ -1577,11 +1586,11 @@ Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modid return val; } -Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) +Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Object *bdg, int is_def) /* The `env' argument can actually be a hash table. */ { - Scheme_Object *marks = NULL, *sym, *map, *l, *a, *amarks, *m, *best_match, *cm; - int best_match_skipped, ms; + Scheme_Object *marks = NULL, *sym, *map, *l, *a, *amarks, *m, *best_match, *cm, *abdg; + int best_match_skipped, ms, one_mark; Scheme_Hash_Table *marked_names; sym = SCHEME_STX_SYM(id); @@ -1599,8 +1608,10 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) /* If we're defining, see if we need to create a table. Getting marks is relatively expensive, but we only do this once per definition. */ + if (!bdg) + bdg = scheme_stx_moduleless_env(id, 0 /* renames currently don't depend on phase */); marks = scheme_stx_extract_marks(id); - if (SCHEME_NULLP(marks)) + if (SCHEME_NULLP(marks) && SCHEME_FALSEP(bdg)) return sym; } @@ -1608,7 +1619,7 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) marked_names = scheme_make_hash_table(SCHEME_hash_ptr); env->marked_names = marked_names; } - + map = scheme_hash_get(marked_names, sym); if (!map) { @@ -1619,10 +1630,15 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) map = scheme_null; } + if (!bdg) { + /* We need lexical binding, if any, too: */ + bdg = scheme_stx_moduleless_env(id, 0 /* renames currently don't depend on phase */); + } + if (!marks) { /* We really do need the marks. Get them. */ marks = scheme_stx_extract_marks(id); - if (SCHEME_NULLP(marks)) + if (SCHEME_NULLP(marks) && SCHEME_FALSEP(bdg)) return sym; } @@ -1633,43 +1649,57 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) Since the list is otherwise marshaled into .zo, etc., simplify by extracting just the mark: */ marks = SCHEME_CAR(marks); - } + one_mark = 1; + } else + one_mark = 0; + + if (!SCHEME_TRUEP(bdg)) + bdg = NULL; /* Find a mapping that matches the longest tail of marks */ for (l = map; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) { a = SCHEME_CAR(l); amarks = SCHEME_CAR(a); - if (is_def) { - if (scheme_equal(amarks, marks)) { - best_match = SCHEME_CDR(a); - break; - } - } else { - if (!SCHEME_PAIRP(marks)) { - /* To be better than nothing, could only match exactly: */ - if (SAME_OBJ(amarks, marks)) { + + if (SCHEME_VECTORP(amarks)) { + abdg = SCHEME_VEC_ELS(amarks)[1]; + amarks = SCHEME_VEC_ELS(amarks)[0]; + } else + abdg = NULL; + + if (SAME_OBJ(abdg, bdg)) { + if (is_def) { + if (scheme_equal(amarks, marks)) { best_match = SCHEME_CDR(a); - best_match_skipped = 0; + break; } } else { - /* amarks can match a tail of marks: */ - for (m = marks, ms = 0; - SCHEME_PAIRP(m) && (ms < best_match_skipped); - m = SCHEME_CDR(m), ms++) { - - cm = m; - if (!SCHEME_PAIRP(amarks)) { - /* If we're down to the last element - of marks, then extract it to try to - match the symbol amarks. */ - if (SCHEME_NULLP(SCHEME_CDR(m))) - cm = SCHEME_CAR(m); - } - - if (scheme_equal(amarks, cm)) { + if (!SCHEME_PAIRP(marks)) { + /* To be better than nothing, could only match exactly: */ + if (scheme_equal(amarks, marks)) { best_match = SCHEME_CDR(a); - best_match_skipped = ms; - break; + best_match_skipped = 0; + } + } else { + /* amarks can match a tail of marks: */ + for (m = marks, ms = 0; + SCHEME_PAIRP(m) && (ms < best_match_skipped); + m = SCHEME_CDR(m), ms++) { + + cm = m; + if (!SCHEME_PAIRP(amarks)) { + /* If we're down to the last element + of marks, then extract it to try to + match the symbol amarks. */ + if (SCHEME_NULLP(SCHEME_CDR(m))) + cm = SCHEME_CAR(m); + } + + if (scheme_equal(amarks, cm)) { + best_match = SCHEME_CDR(a); + best_match_skipped = ms; + break; + } } } } @@ -1742,6 +1772,12 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def) /* Otherwise, increment counter and try again... */ } } + if (bdg) { + a = scheme_make_vector(2, NULL); + SCHEME_VEC_ELS(a)[0] = marks; + SCHEME_VEC_ELS(a)[1] = bdg; + marks = a; + } a = scheme_make_pair(marks, best_match); map = scheme_make_pair(a, map); @@ -2336,7 +2372,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags, *_menv = genv; if (!modname && SCHEME_STXP(find_id)) - find_global_id = scheme_tl_id_sym(env->genv, find_id, 0); + find_global_id = scheme_tl_id_sym(env->genv, find_id, NULL, 0); else find_global_id = find_id; diff --git a/src/mzscheme/src/eval.c b/src/mzscheme/src/eval.c index 1dca670aaf..845ed0bc90 100644 --- a/src/mzscheme/src/eval.c +++ b/src/mzscheme/src/eval.c @@ -3596,7 +3596,7 @@ scheme_compile_expand_expr(Scheme_Object *form, Scheme_Comp_Env *env, /* If form is a marked name, then force #%top binding. This is so temporaries can be used as defined ids. */ Scheme_Object *nm; - nm = scheme_tl_id_sym(env->genv, form, 0); + nm = scheme_tl_id_sym(env->genv, form, NULL, 0); if (!SAME_OBJ(nm, SCHEME_STX_VAL(form))) { stx = scheme_datum_to_syntax(top_symbol, scheme_false, scheme_sys_wraps(env), 0, 0); @@ -3861,7 +3861,7 @@ static Scheme_Object *check_top(const char *when, Scheme_Object *form, Scheme_Co Scheme_Object *modidx, *symbol = c, *tl_id; int bad; - tl_id = scheme_tl_id_sym(env->genv, symbol, 0); + tl_id = scheme_tl_id_sym(env->genv, symbol, NULL, 0); if (NOT_SAME_OBJ(tl_id, SCHEME_STX_SYM(symbol))) { /* Since the module has a rename for this id, it's certainly defined. */ } else { @@ -3897,7 +3897,7 @@ top_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, c = check_top(scheme_compile_stx_string, form, env); - c = scheme_tl_id_sym(env->genv, c, 0); + c = scheme_tl_id_sym(env->genv, c, NULL, 0); if (env->genv->module && !rec[drec].resolve_module_ids) { /* Self-reference in a module; need to remember the modidx. Don't @@ -6355,7 +6355,7 @@ scheme_make_lifted_defn(Scheme_Object *sys_wraps, Scheme_Object **_id, Scheme_Ob Scheme_Object *l; /* Registers marked id: */ - scheme_tl_id_sym(env->genv, *_id, 2); + scheme_tl_id_sym(env->genv, *_id, scheme_false, 2); l = icons(scheme_datum_to_syntax(define_values_symbol, scheme_false, sys_wraps, 0, 0), icons(scheme_make_immutable_pair(*_id, scheme_null), diff --git a/src/mzscheme/src/fun.c b/src/mzscheme/src/fun.c index 6d8a9744cb..57fd657763 100644 --- a/src/mzscheme/src/fun.c +++ b/src/mzscheme/src/fun.c @@ -3119,8 +3119,13 @@ static Scheme_Saved_Stack *copy_out_runstack(Scheme_Thread *p, saved->type = scheme_rt_saved_stack; #endif if (share_from && (share_from->ss.runstack_start == runstack_start)) { - /* Copy just the difference between share_from's runstack and current runstack */ + /* Copy just the difference between share_from's runstack and current runstack... */ size = (share_from->ss.runstack XFORM_OK_MINUS runstack); + /* But add one, because call/cc takes one argument. If there's not one + move value on the stack, then call/cc must have received its argument + from elsewhere. */ + if ((share_from->ss.runstack XFORM_OK_MINUS runstack_start) < p->runstack_size) + size++; } else { size = p->runstack_size - (runstack XFORM_OK_MINUS runstack_start); } @@ -3563,10 +3568,14 @@ internal_call_cc (int argc, Scheme_Object *argv[]) /* Copy shared part in: */ sub_cont = sub_cont->buf.cont; size = sub_cont->runstack_copied->runstack_size; - memcpy(MZ_RUNSTACK XFORM_OK_PLUS done, - sub_cont->runstack_copied->runstack_start, - size * sizeof(Scheme_Object *)); - done += size; + if (size) { + /* Skip the first item, since that's the call/cc argument, + which we don't want from the outer continuation. */ + memcpy(MZ_RUNSTACK XFORM_OK_PLUS done, + sub_cont->runstack_copied->runstack_start + 1, + (size - 1) * sizeof(Scheme_Object *)); + done += (size - 1); + } } else break; } diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index 73b5be8844..7beab14f53 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -78,6 +78,9 @@ END_XFORM_ARITH; #define WORDS_TO_BYTES(x) ((x) << JIT_LOG_WORD_SIZE) #define MAX_TRY_SHIFT 30 +/* a mzchar is an int: */ +#define LOG_MZCHAR_SIZE 2 + #if defined(MZ_USE_JIT_PPC) || defined(MZ_USE_JIT_X86_64) # define NEED_LONG_JUMPS #endif @@ -105,6 +108,8 @@ static void *call_original_binary_arith_for_branch_code; static void *call_original_binary_rev_arith_for_branch_code; static void *bad_car_code, *bad_cdr_code; static void *vector_ref_code, *vector_ref_check_index_code; +static void *string_ref_code, *string_ref_check_index_code; +static void *bytes_ref_code, *bytes_ref_check_index_code; static void *syntax_e_code; static void *on_demand_jit_code; static void *on_demand_jit_arity_code; @@ -2557,8 +2562,18 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i } else if (IS_NAMED_PRIM(rator, "arithmetic-shift")) { generate_arith(jitter, rator, app->rand1, app->rand2, 2, 6, 0, 0, NULL, 1); return 1; - } else if (IS_NAMED_PRIM(rator, "vector-ref")) { + } else if (IS_NAMED_PRIM(rator, "vector-ref") + || IS_NAMED_PRIM(rator, "string-ref") + || IS_NAMED_PRIM(rator, "bytes-ref")) { int simple; + int which; + + if (IS_NAMED_PRIM(rator, "vector-ref")) + which = 0; + else if (IS_NAMED_PRIM(rator, "string-ref")) + which = 1; + else + which = 2; LOG_IT(("inlined vector-ref?\n")); @@ -2590,14 +2605,31 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i jit_addi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1)); mz_runstack_popped(jitter, 1); - (void)jit_calli(vector_ref_check_index_code); + if (!which) { + (void)jit_calli(vector_ref_check_index_code); + } else if (which == 1) { + (void)jit_calli(string_ref_check_index_code); + } else { + (void)jit_calli(bytes_ref_check_index_code); + } } else { long offset; offset = SCHEME_INT_VAL(app->rand2); (void)jit_movi_p(JIT_R1, offset); - offset = ((int)&SCHEME_VEC_ELS(0x0)) + WORDS_TO_BYTES(SCHEME_INT_VAL(app->rand2)); + if (!which) + offset = ((int)&SCHEME_VEC_ELS(0x0)) + WORDS_TO_BYTES(SCHEME_INT_VAL(app->rand2)); + else if (which == 1) + offset = SCHEME_INT_VAL(app->rand2) << LOG_MZCHAR_SIZE; + else + offset = SCHEME_INT_VAL(app->rand2); jit_movi_l(JIT_V1, offset); - (void)jit_calli(vector_ref_code); + if (!which) { + (void)jit_calli(vector_ref_code); + } else if (which == 1) { + (void)jit_calli(string_ref_code); + } else { + (void)jit_calli(bytes_ref_code); + } } if (simple) @@ -3006,8 +3038,8 @@ static int generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int m jit_ldi_p(JIT_R0, &scheme_current_thread); CHECK_LIMIT(); jit_ldxi_i(JIT_V1, JIT_R0, &((Scheme_Thread *)0x0)->ku.multiple.count); - jit_lshi_i(JIT_V1, JIT_V1, 0x1); - jit_ori_i(JIT_V1, JIT_V1, 0x1); + jit_lshi_l(JIT_V1, JIT_V1, 0x1); + jit_ori_l(JIT_V1, JIT_V1, 0x1); mz_pushr_p(JIT_V1); jit_ldxi_p(JIT_V1, JIT_R0, &((Scheme_Thread *)0x0)->ku.multiple.array); mz_pushr_p(JIT_V1); /* !!!!!!!! */ @@ -3743,7 +3775,7 @@ static int generate_function_getarg(mz_jit_state *jitter, int has_rest, int num_ static int do_generate_common(mz_jit_state *jitter, void *_data) { - int in, i; + int in, i, ii; GC_CAN_IGNORE jit_insn *ref, *ref2; /* *** check_arity_code *** */ @@ -4043,8 +4075,8 @@ static int do_generate_common(mz_jit_state *jitter, void *_data) jit_sti_p(&stack_cache_stack_pos, JIT_R2); CHECK_LIMIT(); /* Extract old return address and jump to it */ - jit_lshi_i(JIT_R1, JIT_R1, (JIT_LOG_WORD_SIZE + 2)); - jit_addi_i(JIT_R1, JIT_R1, (int)&((Stack_Cache_Elem *)0x0)->orig_return_address); + jit_lshi_l(JIT_R1, JIT_R1, (JIT_LOG_WORD_SIZE + 2)); + jit_addi_l(JIT_R1, JIT_R1, (int)&((Stack_Cache_Elem *)0x0)->orig_return_address); (void)jit_movi_p(JIT_R2, &stack_cache_stack); jit_ldxr_p(JIT_R2, JIT_R2, JIT_R1); jit_movr_p(JIT_RET, JIT_R0); @@ -4054,63 +4086,140 @@ static int do_generate_common(mz_jit_state *jitter, void *_data) jit_jmpr(JIT_R2); CHECK_LIMIT(); - /* *** vector_ref_[check_index_]code *** */ - /* R0 is vector, R1 is index (Scheme number in check-index mode), - V1 is vector offset in non-check-index mode */ - for (i = 0; i < 2; i++) { - jit_insn *ref, *reffail; + /* *** {vector,string,bytes}_ref_[check_index_]code *** */ + /* R0 is vector/string/bytes, R1 is index (Scheme number in check-index mode), + V1 is vector/string/bytes offset in non-check-index mode (and for + vector, it includes the offset to the start of the elements array. */ + for (ii = 0; ii < 3; ii++) { + for (i = 0; i < 2; i++) { + jit_insn *ref, *reffail; + Scheme_Type ty; + int offset, count_offset, log_elem_size; - if (!i) { - vector_ref_code = jit_get_ip().ptr; - } else { - vector_ref_check_index_code = jit_get_ip().ptr; - } + switch (ii) { + case 0: + ty = scheme_vector_type; + offset = (int)&SCHEME_VEC_ELS(0x0); + count_offset = (int)&SCHEME_VEC_SIZE(0x0); + log_elem_size = JIT_LOG_WORD_SIZE; + if (!i) { + vector_ref_code = jit_get_ip().ptr; + } else { + vector_ref_check_index_code = jit_get_ip().ptr; + } + break; + case 1: + ty = scheme_char_string_type; + offset = (int)&SCHEME_CHAR_STR_VAL(0x0); + count_offset = (int)&SCHEME_CHAR_STRLEN_VAL(0x0); + log_elem_size = LOG_MZCHAR_SIZE; + if (!i) { + string_ref_code = jit_get_ip().ptr; + } else { + string_ref_check_index_code = jit_get_ip().ptr; + } + break; + default: + case 2: + ty = scheme_byte_string_type; + offset = (int)&SCHEME_BYTE_STR_VAL(0x0); + count_offset = (int)&SCHEME_BYTE_STRLEN_VAL(0x0); + log_elem_size = 0; + if (!i) { + bytes_ref_code = jit_get_ip().ptr; + } else { + bytes_ref_check_index_code = jit_get_ip().ptr; + } + break; + } - __START_SHORT_JUMPS__(1); + __START_SHORT_JUMPS__(1); - mz_prolog(JIT_R2); + mz_prolog(JIT_R2); - ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); - CHECK_LIMIT(); + ref = jit_bmci_ul(jit_forward(), JIT_R0, 0x1); + CHECK_LIMIT(); - reffail = _jit.x.pc; - if (!i) { - jit_lshi_ul(JIT_R1, JIT_R1, 1); - jit_ori_ul(JIT_R1, JIT_R1, 0x1); - } - jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(2)); - jit_str_p(JIT_RUNSTACK, JIT_R0); - jit_stxi_p(WORDS_TO_BYTES(1), JIT_RUNSTACK, JIT_R1); - jit_movi_i(JIT_R1, 2); - JIT_UPDATE_THREAD_RSPTR(); - jit_prepare(2); - jit_pusharg_p(JIT_RUNSTACK); - jit_pusharg_i(JIT_R1); - (void)mz_finish(scheme_checked_vector_ref); - /* doesn't return */ - CHECK_LIMIT(); + reffail = _jit.x.pc; + if (!i) { + jit_lshi_ul(JIT_R1, JIT_R1, 1); + jit_ori_ul(JIT_R1, JIT_R1, 0x1); + } + jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(2)); + jit_str_p(JIT_RUNSTACK, JIT_R0); + jit_stxi_p(WORDS_TO_BYTES(1), JIT_RUNSTACK, JIT_R1); + jit_movi_i(JIT_R1, 2); + JIT_UPDATE_THREAD_RSPTR(); + jit_prepare(2); + jit_pusharg_p(JIT_RUNSTACK); + jit_pusharg_i(JIT_R1); + switch (ii) { + case 0: + (void)mz_finish(scheme_checked_vector_ref); + break; + case 1: + (void)mz_finish(scheme_checked_string_ref); + /* might return, if char was outside Latin-1 */ + jit_addi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(2)); + JIT_UPDATE_THREAD_RSPTR(); + jit_retval(JIT_R0); + mz_epilog(JIT_R2); + break; + case 2: + (void)mz_finish(scheme_checked_byte_string_ref); + break; + } + /* doesn't return */ + CHECK_LIMIT(); - mz_patch_branch(ref); - if (i) { - (void)jit_bmci_ul(reffail, JIT_R1, 0x1); - (void)jit_blei_l(reffail, JIT_R1, 0x0); - } - jit_ldxi_s(JIT_R2, JIT_R0, &((Scheme_Object *)0x0)->type); - (void)jit_bnei_i(reffail, JIT_R2, scheme_vector_type); - jit_ldxi_i(JIT_R2, JIT_R0, &SCHEME_VEC_SIZE(0x0)); - if (i) { - jit_rshi_ul(JIT_V1, JIT_R1, 1); - (void)jit_bler_ul(reffail, JIT_R2, JIT_V1); - jit_lshi_ul(JIT_V1, JIT_V1, JIT_LOG_WORD_SIZE); - jit_addi_p(JIT_V1, JIT_V1, ((int)&SCHEME_VEC_ELS(0x0))); - } else { - (void)jit_bler_ul(reffail, JIT_R2, JIT_R1); - } - jit_ldxr_p(JIT_R0, JIT_R0, JIT_V1); - mz_epilog(JIT_R2); - CHECK_LIMIT(); + mz_patch_branch(ref); + if (i) { + (void)jit_bmci_ul(reffail, JIT_R1, 0x1); + (void)jit_blei_l(reffail, JIT_R1, 0x0); + } + jit_ldxi_s(JIT_R2, JIT_R0, &((Scheme_Object *)0x0)->type); + (void)jit_bnei_i(reffail, JIT_R2, ty); + jit_ldxi_i(JIT_R2, JIT_R0, count_offset); + if (i) { + /* index from expression: */ + jit_rshi_ul(JIT_V1, JIT_R1, 1); + (void)jit_bler_ul(reffail, JIT_R2, JIT_V1); + if (log_elem_size) + jit_lshi_ul(JIT_V1, JIT_V1, log_elem_size); + if (!ii) /* vector */ + jit_addi_p(JIT_V1, JIT_V1, offset); + } else { + /* constant index supplied: */ + (void)jit_bler_ul(reffail, JIT_R2, JIT_R1); + } + switch (ii) { + case 0: + jit_ldxr_p(JIT_R0, JIT_R0, JIT_V1); + break; + case 1: + jit_ldxi_p(JIT_R2, JIT_R0, offset); + jit_ldxr_i(JIT_R2, JIT_R2, JIT_V1); + /* Non-Latin-1 char: use slow path: */ + jit_extr_i_l(JIT_R2, JIT_R2); + (void)jit_bgti_l(reffail, JIT_R2, 255); + /* Latin-1: extract from scheme_char_constants: */ + jit_lshi_l(JIT_R2, JIT_R2, JIT_LOG_WORD_SIZE); + (void)jit_movi_p(JIT_R0, scheme_char_constants); + jit_ldxr_p(JIT_R0, JIT_R0, JIT_R2); + break; + case 2: + jit_ldxi_p(JIT_R0, JIT_R0, offset); + jit_ldxr_c(JIT_R0, JIT_R0, JIT_V1); + jit_extr_uc_ul(JIT_R0, JIT_R0); + jit_lshi_l(JIT_R0, JIT_R0, 0x1); + jit_ori_l(JIT_R0, JIT_R0, 0x1); + break; + } + mz_epilog(JIT_R2); + CHECK_LIMIT(); - __END_SHORT_JUMPS__(1); + __END_SHORT_JUMPS__(1); + } } /* *** syntax_ecode *** */ diff --git a/src/mzscheme/src/list.c b/src/mzscheme/src/list.c index 4cee94ed84..557d326af9 100644 --- a/src/mzscheme/src/list.c +++ b/src/mzscheme/src/list.c @@ -1941,7 +1941,7 @@ void scheme_clear_ephemerons() done_ephemerons = NULL; } -extern MZ_DLLIMPORT void (*GC_custom_finalize)(void); +extern MZ_DLLIMPORT void (*GC_custom_finalize)(); void scheme_init_ephemerons(void) { diff --git a/src/mzscheme/src/module.c b/src/mzscheme/src/module.c index 19a72f613d..7cf4c9ee5d 100644 --- a/src/mzscheme/src/module.c +++ b/src/mzscheme/src/module.c @@ -664,6 +664,21 @@ void scheme_install_initial_module_set(Scheme_Env *env) } } +static void annote_marked_names_nonempty(Scheme_Hash_Table *mn_ht) +{ + /* Prevents a module-renaming record for macro-introduced bindings + from being dropped in syntax objects until the module is fully + compiled/expanded. */ + scheme_hash_set(mn_ht, scheme_false, scheme_null); +} + +static void clear_marked_names_nonempty(Scheme_Hash_Table *mn_ht) +{ + /* Clears the annotation, since the module is fully + compiled/expanded. */ + scheme_hash_set(mn_ht, scheme_false, NULL); +} + /**********************************************************************/ /* parameters */ /**********************************************************************/ @@ -2006,7 +2021,7 @@ Scheme_Object *scheme_check_accessible_in_module(Scheme_Env *env, Scheme_Object supplied (not both). For unprotected access, both prot_insp and stx+certs should be supplied. */ { - symbol = scheme_tl_id_sym(env, symbol, 0); + symbol = scheme_tl_id_sym(env, symbol, NULL, 0); if ((env == scheme_initial_env) || (env->module->primitive) @@ -2163,7 +2178,7 @@ Scheme_Object *scheme_module_syntax(Scheme_Object *modname, Scheme_Env *env, Sch finish_expstart_module_in_namespace(menv, env); } - name = scheme_tl_id_sym(menv, name, 0); + name = scheme_tl_id_sym(menv, name, NULL, 0); val = scheme_lookup_in_table(menv->syntax, (char *)name); @@ -2699,26 +2714,6 @@ Scheme_Bucket *scheme_module_bucket(Scheme_Object *modname, Scheme_Object *var, return (Scheme_Bucket *)_dynamic_require(2, a, env, 1, 0, 0, 1, 1, pos); } -Scheme_Bucket *scheme_exptime_module_bucket(Scheme_Object *modname, Scheme_Object *var, int pos, Scheme_Env *env) -{ - Scheme_Object *a[2]; - - a[0] = modname; - a[1] = var; - - return (Scheme_Bucket *)_dynamic_require(2, a, env, 1, 1, 0, 1, 1, pos); -} - -Scheme_Bucket *scheme_exptime_expdef_module_bucket(Scheme_Object *modname, Scheme_Object *var, int pos, Scheme_Env *env) -{ - Scheme_Object *a[2]; - - a[0] = modname; - a[1] = var; - - return (Scheme_Bucket *)_dynamic_require(2, a, env, 1, 1, 1, 1, 1, pos); -} - Scheme_Object *scheme_builtin_value(const char *name) { Scheme_Object *a[2], *v; @@ -3328,6 +3323,10 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env, et_mn_ht = scheme_make_hash_table(SCHEME_hash_ptr); tt_mn_ht = scheme_make_hash_table(SCHEME_hash_ptr); + annote_marked_names_nonempty(mn_ht); + annote_marked_names_nonempty(et_mn_ht); + annote_marked_names_nonempty(tt_mn_ht); + rn = scheme_make_module_rename(0, mzMOD_RENAME_NORMAL, mn_ht); et_rn = scheme_make_module_rename(1, mzMOD_RENAME_NORMAL, et_mn_ht); tt_rn = scheme_make_module_rename(-1, mzMOD_RENAME_NORMAL, tt_mn_ht); @@ -3410,7 +3409,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env, scheme_wrong_syntax(NULL, NULL, form, "no #%%module-begin binding in the module's language"); } - + if (rec[drec].comp) { Scheme_Object *dummy; @@ -3428,7 +3427,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env, if (restore_confusing_name) m->modname = kernel_symbol; - return scheme_make_syntax_compiled(MODULE_EXPD, (Scheme_Object *)m); + fm = scheme_make_syntax_compiled(MODULE_EXPD, (Scheme_Object *)m); } else { Scheme_Object *hints, *formname; @@ -3484,9 +3483,13 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env, /* make self_modidx like the empty modidx */ ((Scheme_Modidx *)self_modidx)->resolved = empty_self_symbol; - - return fm; } + + clear_marked_names_nonempty(mn_ht); + clear_marked_names_nonempty(et_mn_ht); + clear_marked_names_nonempty(tt_mn_ht); + + return fm; } static Scheme_Object * @@ -3732,7 +3735,7 @@ static void check_require_name(Scheme_Object *prnt_name, Scheme_Object *name, Sc static Scheme_Object *stx_sym(Scheme_Object *name, Scheme_Object *_genv) { - return scheme_tl_id_sym((Scheme_Env *)_genv, name, 2); + return scheme_tl_id_sym((Scheme_Env *)_genv, name, NULL, 2); } static Scheme_Object *add_req(Scheme_Object *imods, Scheme_Object *requires) @@ -3768,7 +3771,7 @@ static Scheme_Object *add_lifted_defn(Scheme_Object *data, Scheme_Object **_id, self_modidx = SCHEME_VEC_ELS(data)[1]; rn = SCHEME_VEC_ELS(data)[2]; - name = scheme_tl_id_sym(env->genv, *_id, 2); + name = scheme_tl_id_sym(env->genv, *_id, scheme_false, 2); /* Create the bucket, indicating that the name will be defined: */ scheme_add_global_symbol(name, scheme_undefined, env->genv); @@ -3946,7 +3949,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, post_ex_rn = scheme_make_module_rename(0, mzMOD_RENAME_MARKED, env->genv->marked_names); post_ex_et_rn = scheme_make_module_rename(1, mzMOD_RENAME_MARKED, env->genv->exp_env->marked_names); - post_ex_tt_rn = scheme_make_module_rename(-1, mzMOD_RENAME_MARKED, env->genv->exp_env->marked_names); + post_ex_tt_rn = scheme_make_module_rename(-1, mzMOD_RENAME_MARKED, env->genv->template_env->marked_names); /* For syntax-local-context, etc., in a d-s RHS: */ rhs_env = scheme_new_comp_env(env->genv, env->insp, SCHEME_TOPLEVEL_FRAME); @@ -4041,7 +4044,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, /* Remember the original: */ all_defs = scheme_make_pair(name, all_defs); - name = scheme_tl_id_sym(env->genv, name, 2); + name = scheme_tl_id_sym(env->genv, name, NULL, 2); /* Check that it's not yet defined: */ if (scheme_lookup_in_table(env->genv->toplevel, (const char *)name)) { @@ -4111,7 +4114,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, if (!for_stx) all_defs = scheme_make_pair(name, all_defs); - name = scheme_tl_id_sym(oenv->genv, name, 2); + name = scheme_tl_id_sym(oenv->genv, name, NULL, 2); if (scheme_lookup_in_table(oenv->genv->syntax, (const char *)name)) { scheme_wrong_syntax("module", orig_name, e, @@ -4737,7 +4740,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, /* Make sure each excluded name was defined: */ for (exns = exl; !SCHEME_STX_NULLP(exns); exns = SCHEME_STX_CDR(exns)) { a = SCHEME_STX_CAR(exns); - name = scheme_tl_id_sym(env->genv, a, 0); + name = scheme_tl_id_sym(env->genv, a, NULL, 0); if (!scheme_lookup_in_table(env->genv->toplevel, (const char *)name) && !scheme_lookup_in_table(env->genv->syntax, (const char *)name)) { scheme_wrong_syntax("module", a, ree_kw, "excluded identifier was not defined"); @@ -4747,12 +4750,12 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, for (adl = all_defs; SCHEME_PAIRP(adl); adl = SCHEME_CDR(adl)) { name = SCHEME_CAR(adl); exname = SCHEME_STX_SYM(name); - name = scheme_tl_id_sym(env->genv, name, 0); + name = scheme_tl_id_sym(env->genv, name, NULL, 0); /* Was this one excluded? */ for (exns = exl; !SCHEME_STX_NULLP(exns); exns = SCHEME_STX_CDR(exns)) { a = SCHEME_STX_CAR(exns); - a = scheme_tl_id_sym(env->genv, a, 0); + a = scheme_tl_id_sym(env->genv, a, NULL, 0); if (SAME_OBJ(a, name)) break; } @@ -4768,7 +4771,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, as if it had ree_kw's context, then comparing that result to the actual tl_id. */ a = scheme_datum_to_syntax(exname, scheme_false, ree_kw, 0, 0); - a = scheme_tl_id_sym(env->genv, a, 0); + a = scheme_tl_id_sym(env->genv, a, NULL, 0); if (SAME_OBJ(a, name)) { /* Add prefix, if any */ @@ -4809,7 +4812,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, /* may be a single shadowed exclusion, now bound to exclude_hint... */ n = SCHEME_CAR(n); if (SCHEME_STXP(n)) - n = scheme_tl_id_sym(env->genv, n, 0); + n = scheme_tl_id_sym(env->genv, n, NULL, 0); n = scheme_hash_get(required, n); if (n && !SAME_OBJ(SCHEME_VEC_ELS(n)[1], kernel_symbol)) { /* there is a single shadowed exclusion. */ @@ -4854,7 +4857,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, if (SCHEME_STXP(name)) { prnt_name = SCHEME_STX_VAL(name); - name = scheme_tl_id_sym(env->genv, name, 0); + name = scheme_tl_id_sym(env->genv, name, NULL, 0); } else prnt_name = name; @@ -4906,7 +4909,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, protected = SCHEME_TRUEP(SCHEME_CDR(v)); if (SCHEME_STXP(name)) - name = scheme_tl_id_sym(env->genv, name, 0); + name = scheme_tl_id_sym(env->genv, name, NULL, 0); if (scheme_lookup_in_table(env->genv->syntax, (const char *)name)) { /* Defined locally */ @@ -5095,10 +5098,12 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env, env->genv->module->comp_prefix = cenv->prefix; - if (all_simple_renames && (env->genv->marked_names->count == 0)) { + if (all_simple_renames + && (env->genv->marked_names->count == 1 /* just the false mapping */)) { env->genv->module->rn_stx = scheme_true; } - if (et_all_simple_renames && (et_mn->count == 0)) { + if (et_all_simple_renames + && (et_mn->count == 1 /* just the false mapping */)) { env->genv->module->et_rn_stx = scheme_true; } if (tt_all_simple_renames) { @@ -5344,7 +5349,7 @@ void add_single_require(Scheme_Module *m, /* from module */ /* The `require' expression has a set of marks in its context, which means that we need to generate a name. */ iname = scheme_datum_to_syntax(iname, scheme_false, mark_src, 0, 0); - iname = scheme_tl_id_sym(env, iname, 2); + iname = scheme_tl_id_sym(env, iname, scheme_false, 2); } if (ck) diff --git a/src/mzscheme/src/numarith.c b/src/mzscheme/src/numarith.c index c235504420..64da18f419 100644 --- a/src/mzscheme/src/numarith.c +++ b/src/mzscheme/src/numarith.c @@ -240,8 +240,8 @@ GEN_BIN_OP(scheme_bin_minus, "-", SUBTRACT, F_SUBTRACT, FS_SUBTRACT, scheme_bign GEN_BIN_OP(scheme_bin_mult, "*", MULTIPLY, F_MULTIPLY, FS_MULTIPLY, scheme_bignum_multiply, scheme_rational_multiply, scheme_complex_multiply, GEN_RETURN_0, GEN_RETURN_0, NO_NAN_CHECK, NO_NAN_CHECK) GEN_BIN_DIV_OP(scheme_bin_div, "/", DIVIDE, F_DIVIDE, FS_DIVIDE, scheme_make_rational, scheme_rational_divide, scheme_complex_divide) -GEN_NARY_OP(plus, "+", scheme_bin_plus, 0, SCHEME_NUMBERP, "number") -GEN_NARY_OP(mult, "*", scheme_bin_mult, 1, SCHEME_NUMBERP, "number") +GEN_NARY_OP(static, plus, "+", scheme_bin_plus, 0, SCHEME_NUMBERP, "number") +GEN_NARY_OP(static, mult, "*", scheme_bin_mult, 1, SCHEME_NUMBERP, "number") static Scheme_Object * minus (int argc, Scheme_Object *argv[]) diff --git a/src/mzscheme/src/number.c b/src/mzscheme/src/number.c index c569049ba2..472b7c0ab3 100644 --- a/src/mzscheme/src/number.c +++ b/src/mzscheme/src/number.c @@ -264,15 +264,15 @@ scheme_init_number (Scheme_Env *env) 1, 1, 1), env); - p = scheme_make_folding_prim(scheme_bitwise_and, "bitwise-and", 1, -1, 1); + p = scheme_make_folding_prim(scheme_bitwise_and, "bitwise-and", 0, -1, 1); SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED; scheme_add_global_constant("bitwise-and", p, env); - p = scheme_make_folding_prim(bitwise_or, "bitwise-ior", 1, -1, 1); + p = scheme_make_folding_prim(bitwise_or, "bitwise-ior", 0, -1, 1); SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED; scheme_add_global_constant("bitwise-ior", p, env); - p = scheme_make_folding_prim(bitwise_xor, "bitwise-xor", 1, -1, 1); + p = scheme_make_folding_prim(bitwise_xor, "bitwise-xor", 0, -1, 1); SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED; scheme_add_global_constant("bitwise-xor", p, env); @@ -869,8 +869,8 @@ even_p (int argc, Scheme_Object *argv[]) static Scheme_Object *bin_lcm (Scheme_Object *n1, Scheme_Object *n2); -GEN_NARY_OP(gcd, "gcd", scheme_bin_gcd, 0, scheme_is_integer, "integer") -GEN_NARY_OP(lcm, "lcm", bin_lcm, 1, scheme_is_integer, "integer") +GEN_NARY_OP(static, gcd, "gcd", scheme_bin_gcd, 0, scheme_is_integer, "integer") +GEN_NARY_OP(static, lcm, "lcm", bin_lcm, 1, scheme_is_integer, "integer") Scheme_Object * scheme_bin_gcd (const Scheme_Object *n1, const Scheme_Object *n2) @@ -2324,9 +2324,9 @@ GEN_BIN_INT_OP(bin_bitwise_xor, "bitwise-xor", ^, scheme_bignum_xor) #define MZ_PUBLIC /**/ -GEN_TWOARY_OP(MZ_PUBLIC, scheme_bitwise_and, "bitwise-and", bin_bitwise_and, SCHEME_EXACT_INTEGERP, "exact integer") -GEN_TWOARY_OP(static, bitwise_or, "bitwise-ior", bin_bitwise_or, SCHEME_EXACT_INTEGERP, "exact integer") -GEN_TWOARY_OP(static, bitwise_xor, "bitwise-xor", bin_bitwise_xor, SCHEME_EXACT_INTEGERP, "exact integer") +GEN_NARY_OP(MZ_PUBLIC, scheme_bitwise_and, "bitwise-and", bin_bitwise_and, -1, SCHEME_EXACT_INTEGERP, "exact integer") +GEN_NARY_OP(static, bitwise_or, "bitwise-ior", bin_bitwise_or, 0, SCHEME_EXACT_INTEGERP, "exact integer") +GEN_NARY_OP(static, bitwise_xor, "bitwise-xor", bin_bitwise_xor, 0, SCHEME_EXACT_INTEGERP, "exact integer") static Scheme_Object * bitwise_not(int argc, Scheme_Object *argv[]) diff --git a/src/mzscheme/src/nummacs.h b/src/mzscheme/src/nummacs.h index 0fd4144525..dc1ae6cbed 100644 --- a/src/mzscheme/src/nummacs.h +++ b/src/mzscheme/src/nummacs.h @@ -456,8 +456,8 @@ name (const Scheme_Object *n1, const Scheme_Object *n2) \ return scheme_void; \ } -#define GEN_NARY_OP(name, scheme_name, bin_name, ident, TYPEP, type) \ -static Scheme_Object * \ +#define GEN_NARY_OP(stat, name, scheme_name, bin_name, ident, TYPEP, type) \ +stat Scheme_Object * \ name (int argc, Scheme_Object *argv[]) \ { \ Scheme_Object *ret; \ diff --git a/src/mzscheme/src/schemef.h b/src/mzscheme/src/schemef.h index d1002c891d..ed492fde51 100644 --- a/src/mzscheme/src/schemef.h +++ b/src/mzscheme/src/schemef.h @@ -836,11 +836,6 @@ MZ_EXTERN Scheme_Bucket *scheme_global_bucket(Scheme_Object *symbol, Scheme_Env MZ_EXTERN Scheme_Bucket *scheme_global_keyword_bucket(Scheme_Object *symbol, Scheme_Env *env); MZ_EXTERN Scheme_Bucket *scheme_module_bucket(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); -MZ_EXTERN Scheme_Bucket *scheme_exptime_global_bucket(Scheme_Object *symbol, Scheme_Env *env); -MZ_EXTERN Scheme_Bucket *scheme_exptime_expdef_global_bucket(Scheme_Object *symbol, Scheme_Env *env); -MZ_EXTERN Scheme_Bucket *scheme_exptime_module_bucket(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); -MZ_EXTERN Scheme_Bucket *scheme_exptime_expdef_module_bucket(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); - MZ_EXTERN Scheme_Object *scheme_builtin_value(const char *name); /* convenience */ MZ_EXTERN void scheme_set_global_bucket(char *proc, Scheme_Bucket *var, Scheme_Object *val, diff --git a/src/mzscheme/src/schemex.h b/src/mzscheme/src/schemex.h index 1c3e0ef1b8..ed451e2fa9 100644 --- a/src/mzscheme/src/schemex.h +++ b/src/mzscheme/src/schemex.h @@ -692,10 +692,6 @@ Scheme_Object *(*scheme_lookup_global)(Scheme_Object *symbol, Scheme_Env *env); Scheme_Bucket *(*scheme_global_bucket)(Scheme_Object *symbol, Scheme_Env *env); Scheme_Bucket *(*scheme_global_keyword_bucket)(Scheme_Object *symbol, Scheme_Env *env); Scheme_Bucket *(*scheme_module_bucket)(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); -Scheme_Bucket *(*scheme_exptime_global_bucket)(Scheme_Object *symbol, Scheme_Env *env); -Scheme_Bucket *(*scheme_exptime_expdef_global_bucket)(Scheme_Object *symbol, Scheme_Env *env); -Scheme_Bucket *(*scheme_exptime_module_bucket)(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); -Scheme_Bucket *(*scheme_exptime_expdef_module_bucket)(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); Scheme_Object *(*scheme_builtin_value)(const char *name); /* convenience */ void (*scheme_set_global_bucket)(char *proc, Scheme_Bucket *var, Scheme_Object *val, int set_undef); diff --git a/src/mzscheme/src/schemex.inc b/src/mzscheme/src/schemex.inc index 5b4e12424e..2284b8e477 100644 --- a/src/mzscheme/src/schemex.inc +++ b/src/mzscheme/src/schemex.inc @@ -467,10 +467,6 @@ scheme_extension_table->scheme_global_bucket = scheme_global_bucket; scheme_extension_table->scheme_global_keyword_bucket = scheme_global_keyword_bucket; scheme_extension_table->scheme_module_bucket = scheme_module_bucket; - scheme_extension_table->scheme_exptime_global_bucket = scheme_exptime_global_bucket; - scheme_extension_table->scheme_exptime_expdef_global_bucket = scheme_exptime_expdef_global_bucket; - scheme_extension_table->scheme_exptime_module_bucket = scheme_exptime_module_bucket; - scheme_extension_table->scheme_exptime_expdef_module_bucket = scheme_exptime_expdef_module_bucket; scheme_extension_table->scheme_builtin_value = scheme_builtin_value; scheme_extension_table->scheme_set_global_bucket = scheme_set_global_bucket; scheme_extension_table->scheme_install_macro = scheme_install_macro; diff --git a/src/mzscheme/src/schemexm.h b/src/mzscheme/src/schemexm.h index 52f4144121..5b8650d0d3 100644 --- a/src/mzscheme/src/schemexm.h +++ b/src/mzscheme/src/schemexm.h @@ -467,10 +467,6 @@ #define scheme_global_bucket (scheme_extension_table->scheme_global_bucket) #define scheme_global_keyword_bucket (scheme_extension_table->scheme_global_keyword_bucket) #define scheme_module_bucket (scheme_extension_table->scheme_module_bucket) -#define scheme_exptime_global_bucket (scheme_extension_table->scheme_exptime_global_bucket) -#define scheme_exptime_expdef_global_bucket (scheme_extension_table->scheme_exptime_expdef_global_bucket) -#define scheme_exptime_module_bucket (scheme_extension_table->scheme_exptime_module_bucket) -#define scheme_exptime_expdef_module_bucket (scheme_extension_table->scheme_exptime_expdef_module_bucket) #define scheme_builtin_value (scheme_extension_table->scheme_builtin_value) #define scheme_set_global_bucket (scheme_extension_table->scheme_set_global_bucket) #define scheme_install_macro (scheme_extension_table->scheme_install_macro) diff --git a/src/mzscheme/src/schpriv.h b/src/mzscheme/src/schpriv.h index 5fdc70a316..f1365c7d0f 100644 --- a/src/mzscheme/src/schpriv.h +++ b/src/mzscheme/src/schpriv.h @@ -611,6 +611,7 @@ Scheme_Object *scheme_stx_module_name(Scheme_Object **name, long phase, Scheme_Object **nominal_modidx, Scheme_Object **nominal_name, int *mod_phase); +Scheme_Object *scheme_stx_moduleless_env(Scheme_Object *a, long phase); int scheme_stx_parallel_is_used(Scheme_Object *sym, Scheme_Object *stx); int scheme_stx_bound_eq(Scheme_Object *a, Scheme_Object *b, long phase); @@ -1973,7 +1974,7 @@ void scheme_validate_toplevel(Scheme_Object *expr, Mz_CPort *port, void scheme_validate_boxenv(int pos, Mz_CPort *port, char *stack, int depth, int delta); -#define TRACK_ILL_FORMED_CATCH_LINES 0 +#define TRACK_ILL_FORMED_CATCH_LINES 1 #if TRACK_ILL_FORMED_CATCH_LINES void scheme_ill_formed(Mz_CPort *port, const char *file, int line); # define scheme_ill_formed_code(port) scheme_ill_formed(port, __FILE__, __LINE__) @@ -2114,7 +2115,7 @@ void scheme_add_global_keyword_symbol(Scheme_Object *name, Scheme_Object *v, Sch void scheme_add_global_constant(const char *name, Scheme_Object *v, Scheme_Env *env); void scheme_add_global_constant_symbol(Scheme_Object *name, Scheme_Object *v, Scheme_Env *env); -Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, int is_def); +Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Object *bdg, int is_def); int scheme_tl_id_is_sym_used(Scheme_Hash_Table *marked_names, Scheme_Object *sym); Scheme_Object *scheme_sys_wraps(Scheme_Comp_Env *env); @@ -2445,6 +2446,8 @@ void scheme_count_generic(Scheme_Object *o, long *s, long *e, Scheme_Hash_Table Scheme_Object *scheme_checked_car(int argc, Scheme_Object **argv); Scheme_Object *scheme_checked_cdr(int argc, Scheme_Object **argv); Scheme_Object *scheme_checked_vector_ref(int argc, Scheme_Object **argv); +Scheme_Object *scheme_checked_string_ref (int argc, Scheme_Object *argv[]); +Scheme_Object *scheme_checked_byte_string_ref (int argc, Scheme_Object *argv[]); Scheme_Object *scheme_checked_syntax_e(int argc, Scheme_Object **argv); void scheme_set_root_param(int p, Scheme_Object *v); diff --git a/src/mzscheme/src/startup.inc b/src/mzscheme/src/startup.inc index 11d685e464..16ebdc027d 100644 --- a/src/mzscheme/src/startup.inc +++ b/src/mzscheme/src/startup.inc @@ -2596,7 +2596,7 @@ "(string->immutable-string" " (format \"load/cd: cannot open a directory: ~s\" n))" "(current-continuation-marks)))" -"(if(not(bytes? base))" +"(if(not(path? base))" "(load n)" "(begin" "(if(not(directory-exists? base))" diff --git a/src/mzscheme/src/startup.ss b/src/mzscheme/src/startup.ss index 7a8d565f69..2459c301b9 100644 --- a/src/mzscheme/src/startup.ss +++ b/src/mzscheme/src/startup.ss @@ -3010,7 +3010,7 @@ (string->immutable-string (format "load/cd: cannot open a directory: ~s" n)) (current-continuation-marks))) - (if (not (bytes? base)) + (if (not (path? base)) (load n) (begin (if (not (directory-exists? base)) diff --git a/src/mzscheme/src/string.c b/src/mzscheme/src/string.c index 6e041e34a1..45f61e7111 100644 --- a/src/mzscheme/src/string.c +++ b/src/mzscheme/src/string.c @@ -162,7 +162,6 @@ static Scheme_Object *make_string (int argc, Scheme_Object *argv[]); static Scheme_Object *string (int argc, Scheme_Object *argv[]); static Scheme_Object *string_p (int argc, Scheme_Object *argv[]); static Scheme_Object *string_length (int argc, Scheme_Object *argv[]); -static Scheme_Object *string_ref (int argc, Scheme_Object *argv[]); static Scheme_Object *string_set (int argc, Scheme_Object *argv[]); static Scheme_Object *string_eq (int argc, Scheme_Object *argv[]); static Scheme_Object *string_locale_eq (int argc, Scheme_Object *argv[]); @@ -204,7 +203,6 @@ static Scheme_Object *byte_string (int argc, Scheme_Object *argv[]); static Scheme_Object *byte_p (int argc, Scheme_Object *argv[]); static Scheme_Object *byte_string_p (int argc, Scheme_Object *argv[]); static Scheme_Object *byte_string_length (int argc, Scheme_Object *argv[]); -static Scheme_Object *byte_string_ref (int argc, Scheme_Object *argv[]); static Scheme_Object *byte_string_set (int argc, Scheme_Object *argv[]); static Scheme_Object *byte_string_eq (int argc, Scheme_Object *argv[]); static Scheme_Object *byte_string_lt (int argc, Scheme_Object *argv[]); @@ -350,11 +348,11 @@ scheme_init_string (Scheme_Env *env) "string-length", 1, 1, 1), env); - scheme_add_global_constant("string-ref", - scheme_make_noncm_prim(string_ref, - "string-ref", - 2, 2), - env); + + p = scheme_make_noncm_prim(scheme_checked_string_ref, "string-ref", 2, 2); + SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED; + scheme_add_global_constant("string-ref", p, env); + scheme_add_global_constant("string-set!", scheme_make_noncm_prim(string_set, "string-set!", @@ -619,11 +617,11 @@ scheme_init_string (Scheme_Env *env) "bytes-length", 1, 1, 1), env); - scheme_add_global_constant("bytes-ref", - scheme_make_noncm_prim(byte_string_ref, - "bytes-ref", - 2, 2), - env); + + p = scheme_make_noncm_prim(scheme_checked_byte_string_ref, "bytes-ref", 2, 2); + SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_BINARY_INLINED; + scheme_add_global_constant("bytes-ref", p, env); + scheme_add_global_constant("bytes-set!", scheme_make_noncm_prim(byte_string_set, "bytes-set!", diff --git a/src/mzscheme/src/strops.inc b/src/mzscheme/src/strops.inc index 6df75d1c08..e292ae3e5c 100644 --- a/src/mzscheme/src/strops.inc +++ b/src/mzscheme/src/strops.inc @@ -145,8 +145,8 @@ X__(string_length) (int argc, Scheme_Object *argv[]) return scheme_make_integer(SCHEME_X_STRTAG_VAL(argv[0])); } -static Scheme_Object * -X__(string_ref) (int argc, Scheme_Object *argv[]) +Scheme_Object * +X_(scheme_checked, string_ref) (int argc, Scheme_Object *argv[]) { long i, len; int c; diff --git a/src/mzscheme/src/stxobj.c b/src/mzscheme/src/stxobj.c index 2231292d28..73b6bfe1ec 100644 --- a/src/mzscheme/src/stxobj.c +++ b/src/mzscheme/src/stxobj.c @@ -21,7 +21,20 @@ #include "schpriv.h" #include "schmach.h" -/* FIXME: syntax->list and resolve_env need stack checks. */ +/* The implementation of syntax objects is extremely complex due to + two levels of optimization: + + 1. Different kinds of binding are handled in different ways, + because they'll have different usage patterns. For example, + module-level bindings are handled differently than local + bindings, because modules can't be nested. + + 2. To save time and space, the data structures involved have lots + of caches, and syntax objects to be marshaled undergo a + simplification pass. + + In addition, the need to marshal syntax objects to bytecode + introduces some other complications. */ #define STX_DEBUG 0 @@ -70,6 +83,7 @@ static Scheme_Object *protected_symbol; static Scheme_Object *nominal_ipair_cache; static Scheme_Object *mark_id = scheme_make_integer(0); +static Scheme_Object *current_rib_timestamp = scheme_make_integer(0); static Scheme_Stx_Srcloc *empty_srcloc; @@ -153,6 +167,7 @@ static Scheme_Object *stx_activate_certs(Scheme_Object *o, Scheme_Cert **cp, Sch typedef struct Scheme_Lexical_Rib { Scheme_Object so; Scheme_Object *rename; /* a vector for a lexical rename */ + Scheme_Object *timestamp; struct Scheme_Lexical_Rib *next; } Scheme_Lexical_Rib; @@ -285,7 +300,7 @@ void DO_WRAP_POS_INC(Wrap_Pos *w) #define WRAP_POS_INC(w) DO_WRAP_POS_INC(&w) -#define WRAP_POS_INIT_END(w) w.l = scheme_null +#define WRAP_POS_INIT_END(w) (w.l = scheme_null, w.a = NULL, w.is_limb = 0, w.pos = 0) #define WRAP_POS_END_P(w) SCHEME_NULLP(w.l) #define WRAP_POS_FIRST(w) w.a #define WRAP_POS_COPY(w, w2) w.l = (w2).l; w.a = (w2).a; w.is_limb= (w2).is_limb; w.pos = (w2).pos @@ -1026,6 +1041,9 @@ Scheme_Object *scheme_make_rename_rib() rib = MALLOC_ONE_TAGGED(Scheme_Lexical_Rib); rib->so.type = scheme_lexical_rib_type; + rib->timestamp = current_rib_timestamp; + + current_rib_timestamp = scheme_add1(1, ¤t_rib_timestamp); return (Scheme_Object *)rib; } @@ -1041,6 +1059,8 @@ void scheme_add_rib_rename(Scheme_Object *ro, Scheme_Object *rename) rib = (Scheme_Lexical_Rib *)ro; naya->next = rib->next; rib->next = naya; + + naya->timestamp = rib->timestamp; } void scheme_drop_first_rib_rename(Scheme_Object *ro) @@ -1216,21 +1236,10 @@ static void do_append_module_rename(Scheme_Object *src, Scheme_Object *dest, } } - /* Copy over marked names */ + /* Need to share marked names: */ if (((Module_Renames *)src)->marked_names) { - if (!((Module_Renames *)dest)->marked_names) { - ht = scheme_make_hash_table(SCHEME_hash_ptr); - ((Module_Renames *)dest)->marked_names = ht; - } else - ht = ((Module_Renames *)dest)->marked_names; - hts = ((Module_Renames *)src)->marked_names; - - for (i = hts->size; i--; ) { - if (hts->vals[i]) { - scheme_hash_set(ht, hts->keys[i], hts->vals[i]); - } - } + ((Module_Renames *)dest)->marked_names = ((Module_Renames *)src)->marked_names; } } @@ -2630,7 +2639,12 @@ static void add_all_marks(Scheme_Object *wraps, Scheme_Hash_Table *marks) #define QUICK_STACK_SIZE 10 -static Scheme_Object *resolve_env(Scheme_Object *a, long phase, +/* Although resolve_env may call itself recursively, the recursion + depth is bounded (by the fact that modules can't be nested, + etc.). */ + +static Scheme_Object *resolve_env(WRAP_POS *_wraps, + Scheme_Object *a, long phase, int w_mod, Scheme_Object **get_names, Scheme_Object *skip_ribs) /* Module binding ignored if w_mod is 0. @@ -2646,29 +2660,48 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, Scheme_Object *mresult = scheme_false; Scheme_Object *modidx_shift_to = NULL, *modidx_shift_from = NULL; Scheme_Object *rename_stack[QUICK_STACK_SIZE]; - int stack_pos = 0; + int stack_pos = 0, no_lexical = 0; int is_in_module = 0, skip_other_mods = 0; Scheme_Lexical_Rib *rib = NULL, *did_rib = NULL; + long orig_phase = phase; + Scheme_Object *bdg = NULL; - WRAP_POS_INIT(wraps, ((Scheme_Stx *)a)->wraps); - + if (_wraps) { + WRAP_POS_COPY(wraps, *_wraps); + WRAP_POS_INC(wraps); + } else + WRAP_POS_INIT(wraps, ((Scheme_Stx *)a)->wraps); + while (1) { if (WRAP_POS_END_P(wraps)) { /* See rename case for info on rename_stack: */ - Scheme_Object *result; + Scheme_Object *result, *key; + int did_lexical = 0; result = scheme_false; while (!SCHEME_NULLP(o_rename_stack)) { - if (SAME_OBJ(SCHEME_CAAR(o_rename_stack), result)) + key = SCHEME_CAAR(o_rename_stack); + if (SAME_OBJ(key, result)) { + did_lexical = 1; result = SCHEME_CDR(SCHEME_CAR(o_rename_stack)); + } else if (SAME_OBJ(key, scheme_true)) { + /* marks a module-level renaming that overrides lexical renaming */ + did_lexical = 0; + } o_rename_stack = SCHEME_CDR(o_rename_stack); } while (stack_pos) { - if (SAME_OBJ(rename_stack[stack_pos - 1], result)) + key = rename_stack[stack_pos - 1]; + if (SAME_OBJ(key, result)) { result = rename_stack[stack_pos - 2]; + did_lexical = 1; + } else if (SAME_OBJ(key, scheme_true)) { + /* marks a module-level renaming that overrides lexical renaming */ + did_lexical = 0; + } stack_pos -= 2; } - if (SCHEME_FALSEP(result)) + if (!did_lexical) result = mresult; else if (get_names) get_names[0] = scheme_undefined; @@ -2687,9 +2720,24 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, if (mrn->needs_unmarshal) unmarshal_rename(mrn, modidx_shift_from, modidx_shift_to); - if (mrn->marked_names) - glob_id = scheme_tl_id_sym((Scheme_Env *)mrn->marked_names, a, 0); - else + if (mrn->marked_names) { + /* Resolve based on rest of wraps: */ + if (!bdg) + bdg = resolve_env(NULL, a, orig_phase, 0, NULL, skip_ribs); + /* Remap id based on marks and rest-of-wraps resolution: */ + glob_id = scheme_tl_id_sym((Scheme_Env *)mrn->marked_names, a, bdg, 0); + if (SCHEME_TRUEP(bdg) + && !SAME_OBJ(glob_id, SCHEME_STX_VAL(a))) { + /* Even if this module doesn't match, the lex-renamed id + has been top-level bound in its scope, so ignore all + lexical renamings. (If the id was further renamed, then + the further renaming would show up in bdg, and bdg wouldn't + have matched in marked_names.) */ + no_lexical = 1; + stack_pos = 0; + o_rename_stack = scheme_null; + } + } else glob_id = SCHEME_STX_VAL(a); rename = scheme_hash_get(mrn->ht, glob_id); @@ -2782,16 +2830,21 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, modidx_shift_from = src; } - } else if (rib || SCHEME_VECTORP(WRAP_POS_FIRST(wraps))) { + } else if (rib || (SCHEME_VECTORP(WRAP_POS_FIRST(wraps)) + && !no_lexical)) { /* Lexical rename: */ - Scheme_Object *rename, *renamed; - int ri, c, istart, iend; + Scheme_Object *rename, *renamed, *recur_skip_ribs; + int ri, c, istart, iend, is_rib; if (rib) { rename = rib->rename; + recur_skip_ribs = rib->timestamp; rib = rib->next; + is_rib = 1; } else { rename = WRAP_POS_FIRST(wraps); + recur_skip_ribs = skip_ribs; + is_rib = 0; } c = SCHEME_RENAME_LEN(rename); @@ -2836,10 +2889,9 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, if (SCHEME_VOIDP(other_env)) { SCHEME_USE_FUEL(1); - other_env = resolve_env(renamed, 0, 0, NULL, - scheme_make_pair(WRAP_POS_FIRST(wraps), - skip_ribs)); - SCHEME_VEC_ELS(rename)[2+c+ri] = other_env; + other_env = resolve_env(NULL, renamed, 0, 0, NULL, recur_skip_ribs); + if (!is_rib) + SCHEME_VEC_ELS(rename)[2+c+ri] = other_env; SCHEME_USE_FUEL(1); } @@ -2856,7 +2908,7 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, It's tempting to try to compare envname to the top element of the stack and combine the two mappings, but the intermediate name may be needed - (for other_env values that don't come from this stack. */ + (for other_env values that don't come from this stack). */ if (stack_pos < QUICK_STACK_SIZE) { rename_stack[stack_pos++] = envname; rename_stack[stack_pos++] = other_env; @@ -2871,21 +2923,20 @@ static Scheme_Object *resolve_env(Scheme_Object *a, long phase, } } } - } else if (SCHEME_RIBP(WRAP_POS_FIRST(wraps))) { + } else if (SCHEME_RIBP(WRAP_POS_FIRST(wraps)) && !no_lexical) { /* Lexical-rename rib. Splice in the names. */ - Scheme_Object *srs; rib = (Scheme_Lexical_Rib *)WRAP_POS_FIRST(wraps); - for (srs = skip_ribs; SCHEME_PAIRP(srs); srs = SCHEME_CDR(srs)) { - if (SAME_OBJ(SCHEME_CAR(srs), (Scheme_Object *)rib)) - break; + if (skip_ribs) { + if (scheme_bin_gt_eq(rib->timestamp, skip_ribs)) + rib = NULL; } - if (SCHEME_PAIRP(srs)) - rib = NULL; - else if (SAME_OBJ(did_rib, rib)) - rib = NULL; - else { - did_rib = rib; - rib = rib->next; /* First rib record has no rename */ + if (rib) { + if (SAME_OBJ(did_rib, rib)) + rib = NULL; + else { + did_rib = rib; + rib = rib->next; /* First rib record has no rename */ + } } } else if (SCHEME_NUMBERP(WRAP_POS_FIRST(wraps)) || SAME_OBJ(WRAP_POS_FIRST(wraps), barrier_symbol)) { @@ -2922,6 +2973,7 @@ static Scheme_Object *get_module_src_name(Scheme_Object *a, long phase) Scheme_Object *result; int is_in_module = 0, skip_other_mods = 0; long orig_phase = phase; + Scheme_Object *bdg = NULL; if (((Scheme_Stx *)a)->u.modinfo_cache) return ((Scheme_Stx *)a)->u.modinfo_cache; @@ -2952,12 +3004,16 @@ static Scheme_Object *get_module_src_name(Scheme_Object *a, long phase) if (mrn->needs_unmarshal) { /* Use resolve_env to trigger unmarshal, so that we don't have to implement top/from shifts here: */ - resolve_env(a, orig_phase, 1, NULL, scheme_null); + resolve_env(NULL, a, orig_phase, 1, NULL, NULL); } - if (mrn->marked_names) - glob_id = scheme_tl_id_sym((Scheme_Env *)mrn->marked_names, a, 0); - else + if (mrn->marked_names) { + /* Resolve based on rest of wraps: */ + if (!bdg) + bdg = resolve_env(&wraps, a, orig_phase, 0, NULL, NULL); + /* Remap id based on marks and rest-of-wraps resolution: */ + glob_id = scheme_tl_id_sym((Scheme_Env *)mrn->marked_names, a, bdg, 0); + } else glob_id = SCHEME_STX_VAL(a); rename = scheme_hash_get(mrn->ht, glob_id); @@ -2967,9 +3023,9 @@ static Scheme_Object *get_module_src_name(Scheme_Object *a, long phase) rename = scheme_hash_get(krn->ht, glob_id); if (rename) { + /* match; set result: */ if (mrn->kind == mzMOD_RENAME_MARKED) skip_other_mods = 1; - /* match; set result: */ if (SCHEME_PAIRP(rename)) { if (SCHEME_IMMUTABLEP(rename)) { result = glob_id; @@ -3020,8 +3076,8 @@ int scheme_stx_free_eq(Scheme_Object *a, Scheme_Object *b, long phase) if ((a == asym) || (b == bsym)) return 1; - a = resolve_env(a, phase, 1, NULL, scheme_null); - b = resolve_env(b, phase, 1, NULL, scheme_null); + a = resolve_env(NULL, a, phase, 1, NULL, NULL); + b = resolve_env(NULL, b, phase, 1, NULL, NULL); a = scheme_module_resolve(a); b = scheme_module_resolve(b); @@ -3053,8 +3109,8 @@ int scheme_stx_module_eq(Scheme_Object *a, Scheme_Object *b, long phase) if ((a == asym) || (b == bsym)) return 1; - a = resolve_env(a, phase, 1, NULL, scheme_null); - b = resolve_env(b, phase, 1, NULL, scheme_null); + a = resolve_env(NULL, a, phase, 1, NULL, NULL); + b = resolve_env(NULL, b, phase, 1, NULL, NULL); a = scheme_module_resolve(a); b = scheme_module_resolve(b); @@ -3077,7 +3133,7 @@ Scheme_Object *scheme_stx_module_name(Scheme_Object **a, long phase, names[0] = NULL; names[3] = scheme_make_integer(0); - modname = resolve_env(*a, phase, 1, names, scheme_null); + modname = resolve_env(NULL, *a, phase, 1, names, NULL); if (names[0]) { if (SAME_OBJ(names[0], scheme_undefined)) { @@ -3098,6 +3154,20 @@ Scheme_Object *scheme_stx_module_name(Scheme_Object **a, long phase, return NULL; } +Scheme_Object *scheme_stx_moduleless_env(Scheme_Object *a, long phase) + /* Returns either NULL or a lexical-rename symbol */ +{ + if (SCHEME_STXP(a)) { + Scheme_Object *r; + + r = resolve_env(NULL, a, phase, 0, NULL, NULL); + + if (r) + return r; + } + return NULL; +} + int scheme_stx_env_bound_eq(Scheme_Object *a, Scheme_Object *b, Scheme_Object *uid, long phase) /* If uid is given, it's the environment for b. */ { @@ -3119,13 +3189,13 @@ int scheme_stx_env_bound_eq(Scheme_Object *a, Scheme_Object *b, Scheme_Object *u if (!SAME_OBJ(asym, bsym)) return 0; - ae = resolve_env(a, phase, 0, NULL, scheme_null); + ae = resolve_env(NULL, a, phase, 0, NULL, NULL); /* No need to module_resolve ae, because we ignored module renamings. */ if (uid) be = uid; else { - be = resolve_env(b, phase, 0, NULL, scheme_null); + be = resolve_env(NULL, b, phase, 0, NULL, NULL); /* No need to module_resolve be, because we ignored module renamings. */ } @@ -3352,6 +3422,20 @@ int scheme_stx_proper_list_length(Scheme_Object *list) return -1; } +#ifdef DO_STACK_CHECK +static Scheme_Object *flatten_syntax_list_k(void) +{ + Scheme_Thread *p = scheme_current_thread; + Scheme_Object *l = (Scheme_Object *)p->ku.k.p1; + int *r = (int *)p->ku.k.p2; + + p->ku.k.p1 = NULL; + p->ku.k.p2 = NULL; + + return scheme_flatten_syntax_list(l, r); +} +#endif + Scheme_Object *scheme_flatten_syntax_list(Scheme_Object *lst, int *islist) { Scheme_Object *l = lst, *lflat, *first, *last; @@ -3379,7 +3463,30 @@ Scheme_Object *scheme_flatten_syntax_list(Scheme_Object *lst, int *islist) if (SCHEME_NULLP(l) || SCHEME_PAIRP(l)) { int lislist; - lflat = scheme_flatten_syntax_list(l, &lislist); + lflat = NULL; + +#ifdef DO_STACK_CHECK + { +# include "mzstkchk.h" + { + Scheme_Thread *p = scheme_current_thread; + int *r; + + r = (int *)scheme_malloc_atomic(sizeof(int)); + + p->ku.k.p1 = (void *)l; + p->ku.k.p2 = (void *)r; + + lflat = scheme_handle_stack_overflow(flatten_syntax_list_k); + + lislist = *r; + } + } +#endif + + if (!lflat) + lflat = scheme_flatten_syntax_list(l, &lislist); + if (!lislist) { /* Not a list. Can't flatten this one. */ return lst; @@ -3515,12 +3622,12 @@ static void simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Table *lex_ca && !SCHEME_SYMBOLP(SCHEME_VEC_ELS(v)[2]))) { /* This is the place to simplify: */ Scheme_Lexical_Rib *rib = NULL, *init_rib = NULL; - Scheme_Object *skip_ribs = scheme_null; + Scheme_Object *skip_ribs = NULL; int ii, vvsize; if (SCHEME_RIBP(v)) { - skip_ribs = scheme_make_pair(v, scheme_null); init_rib = (Scheme_Lexical_Rib *)v; + skip_ribs = init_rib->timestamp; rib = init_rib->next; vsize = 0; while (rib) { @@ -3570,7 +3677,7 @@ static void simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Table *lex_ca other_env = SCHEME_VEC_ELS(v)[2+vvsize+ii]; if (SCHEME_VOIDP(other_env)) { - other_env = resolve_env(stx, 0, 0, NULL, skip_ribs); + other_env = resolve_env(NULL, stx, 0, 0, NULL, skip_ribs); SCHEME_VEC_ELS(v)[2+vvsize+ii] = other_env; } @@ -3750,13 +3857,15 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in, /* Not useful if there's no marked names. */ redundant = !mrn->marked_names->count; if (!redundant) { - /* Otherwise, watch out for multiple instances of the same rename. */ + /* Otherwise, watch out for multiple instances of the same rename: */ WRAP_POS l; + Scheme_Object *la; WRAP_POS_COPY(l,w); for (; !WRAP_POS_END_P(l); WRAP_POS_INC(l)) { - if (SAME_OBJ(a, WRAP_POS_FIRST(l))) { + la = WRAP_POS_FIRST(l); + if (SAME_OBJ(a, la)) { redundant = 1; break; } @@ -3766,11 +3875,13 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in, /* Check for later [non]module rename at the same phase: */ long shift = 0; WRAP_POS l; + Scheme_Object *la; WRAP_POS_COPY(l,w); for (; !WRAP_POS_END_P(l); WRAP_POS_INC(l)) { - if (SCHEME_RENAMESP(WRAP_POS_FIRST(l))) { + la = WRAP_POS_FIRST(l); + if (SCHEME_RENAMESP(la)) { Module_Renames *lrn = (Module_Renames *)WRAP_POS_FIRST(l); if ((lrn->kind == mrn->kind) && ((lrn->phase + shift) == mrn->phase)) { @@ -3778,7 +3889,7 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in, redundant = 1; break; } - } else if (SCHEME_BOXP(WRAP_POS_FIRST(l))) { + } else if (SCHEME_BOXP(la)) { shift += SCHEME_INT_VAL(SCHEME_VEC_ELS(SCHEME_PTR_VAL(WRAP_POS_FIRST(l)))[0]); } } @@ -3804,7 +3915,7 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in, int i, j, count = 0; Scheme_Object *l, *idi; - count = mrn->ht->mcount; + count = mrn->ht->count; l = scheme_make_vector(count * 2, NULL); diff --git a/src/mzscheme/src/syntax.c b/src/mzscheme/src/syntax.c index 2abe237176..c9f1e409a2 100644 --- a/src/mzscheme/src/syntax.c +++ b/src/mzscheme/src/syntax.c @@ -898,7 +898,7 @@ defn_targets_syntax (Scheme_Object *var, Scheme_Comp_Env *env, Scheme_Compile_In Scheme_Object *name, *pr, *bucket; name = SCHEME_STX_CAR(var); - name = scheme_tl_id_sym(env->genv, name, 2); + name = scheme_tl_id_sym(env->genv, name, NULL, 2); if (rec[drec].resolve_module_ids || !env->genv->module) { bucket = (Scheme_Object *)scheme_global_bucket(name, env->genv); @@ -4077,7 +4077,7 @@ static Scheme_Object *stx_val(Scheme_Object *name, Scheme_Object *_env) { Scheme_Env *env = (Scheme_Env *)_env; - return scheme_tl_id_sym(env, name, 2); + return scheme_tl_id_sym(env, name, NULL, 2); } static Scheme_Object * diff --git a/src/mzscheme/src/thread.c b/src/mzscheme/src/thread.c index e370c82b67..fc97048488 100644 --- a/src/mzscheme/src/thread.c +++ b/src/mzscheme/src/thread.c @@ -220,7 +220,7 @@ extern MZ_DLLIMPORT long GC_get_memory_use(); typedef struct Thread_Cell { Scheme_Object so; - char inherited; + char inherited, assigned; Scheme_Object *def_val; /* A thread's thread_cell table maps cells to keys weakly. This table maps keys to values weakly. The two weak @@ -5391,15 +5391,19 @@ Scheme_Object *scheme_thread_cell_get(Scheme_Object *cell, Scheme_Thread_Cell_Ta { Scheme_Object *v; - v = scheme_lookup_in_table(cells, (const char *)cell); - if (v) - return scheme_ephemeron_value(v); - else - return ((Thread_Cell *)cell)->def_val; + if (((Thread_Cell *)cell)->assigned) { + v = scheme_lookup_in_table(cells, (const char *)cell); + if (v) + return scheme_ephemeron_value(v); + } + + return ((Thread_Cell *)cell)->def_val; } void scheme_thread_cell_set(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells, Scheme_Object *v) { + if (!((Thread_Cell *)cell)->assigned) + ((Thread_Cell *)cell)->assigned = 1; v = scheme_make_ephemeron(cell, v); scheme_add_to_table(cells, (const char *)cell, (void *)v, 0); } diff --git a/src/wxxt/src/DeviceContexts/WindowDC.cc b/src/wxxt/src/DeviceContexts/WindowDC.cc index cc8ad4d86a..8bd9d5874a 100644 --- a/src/wxxt/src/DeviceContexts/WindowDC.cc +++ b/src/wxxt/src/DeviceContexts/WindowDC.cc @@ -157,6 +157,8 @@ wxWindowDC::wxWindowDC(void) : wxDC() current_pen = wxBLACK_PEN; current_pen->Lock(1); current_font = wxNORMAL_FONT; + + need_x_set_font = 1; } wxWindowDC::~wxWindowDC(void) @@ -2428,6 +2430,10 @@ void wxWindowDC::DrawText(char *orig_text, double x, double y, #endif { if ((angle == 0.0) && (current_text_bgmode == wxSOLID)) { + if (need_x_set_font) { + XSetFont(DPY, TEXT_GC, fontinfo->fid); + need_x_set_font = 0; + } XDrawImageString16(DPY, DRAWABLE, TEXT_GC, dev_x, dev_y+ascent, (XChar2b *)text + dt, textlen); } else { if (angle != 0.0) { @@ -2471,6 +2477,10 @@ void wxWindowDC::DrawText(char *orig_text, double x, double y, XSetFont(DPY, TEXT_GC, zfontinfo->fid); } else { + if (need_x_set_font) { + XSetFont(DPY, TEXT_GC, fontinfo->fid); + need_x_set_font = 0; + } XDrawString16(DPY, DRAWABLE, TEXT_GC, dev_x, dev_y+ascent, ((XChar2b *)text) + dt, textlen); } } @@ -2673,6 +2683,8 @@ void wxWindowDC::SetFont(wxFont *font) if (!(current_font = font)) // nothing to do without a font return; + + need_x_set_font = 1; } void wxWindowDC::SetTextForeground(wxColour *col) diff --git a/src/wxxt/src/DeviceContexts/WindowDC.h b/src/wxxt/src/DeviceContexts/WindowDC.h index 182f5917ed..de5ff6be97 100644 --- a/src/wxxt/src/DeviceContexts/WindowDC.h +++ b/src/wxxt/src/DeviceContexts/WindowDC.h @@ -222,6 +222,8 @@ protected: friend class wxWindow; friend class wxPostScriptDC; + char need_x_set_font; + void Initialize(wxWindowDC_Xinit* init); void Destroy(void);