In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/eea89386b3fb948a8b1eb5ea860ec0a970c9e559?hp=3c47da3c2ebf51f08bb927dfa456939cc6c8c30f>
- Log ----------------------------------------------------------------- commit eea89386b3fb948a8b1eb5ea860ec0a970c9e559 Author: Father Chrysostomos <[email protected]> Date: Sat Feb 7 19:22:00 2015 -0800 [perl #123753] Assert fail with &{+foo} and errors This fixes the problem mentioned in 3c47da3c2e with an op address being used as flags. '&' not followed by a identifier was being fed to the parser with a stale token value, left over from the previous token that had a value, which might be an op address. This would cause the flags on the op to vary randomly. Usually the rv2cv op created this way is nulled, but if there is a syntax error it may be freed before that happens. And it is when the op is freed that the private flags are checked to make sure no invalid flags have been set. The test added to t/op/lex.t used to fail an assertion (for me) more than half the time, but not always, because the 0x10 bit was being set in op_private (rv2cv does not use that bit). M t/op/lex.t M toke.c commit 218721242848e642c0d1399644b6a90969e485e3 Author: Father Chrysostomos <[email protected]> Date: Sat Feb 7 19:10:06 2015 -0800 toke.c: Remove redundant PL_expect assignment As of v5.21.3-105-gc5e7362, force_ident no longer reads the value of PL_expect, so the assignment can come after it. And TERM('&') (just after this if-statement) already assigns XOPERATOR to PL_expect. M toke.c commit 29fa3ed31f733f1b58e89e560fb052897bccefde Author: Father Chrysostomos <[email protected]> Date: Sat Feb 7 10:06:39 2015 -0800 perly.y: Remove types for '$' and '*' These two tokens never use their value, and the value is not even set in toke.c, which means it will contain a junk value from some previous token. Removing the types prevents that junk value from being acci- dentally used. M perly.act M perly.h M perly.tab M perly.y ----------------------------------------------------------------------- Summary of changes: perly.act | 2 +- perly.h | 2 +- perly.tab | 1636 ++++++++++++++++++++++++++++++------------------------------ perly.y | 2 +- t/op/lex.t | 14 +- toke.c | 3 +- 6 files changed, 841 insertions(+), 818 deletions(-) diff --git a/perly.act b/perly.act index 4c06834..9701425 100644 --- a/perly.act +++ b/perly.act @@ -1550,6 +1550,6 @@ case 2: /* Generated from: - * 0d7275f3d26eba5194cb04d866bf174da7b0efd786c93da356327709423460ee perly.y + * d13846722b7ef2ae2bdfc0104c811b8114e262c5775f9ee344f9e51db09c48ad perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index ae67263..6da1f25 100644 --- a/perly.h +++ b/perly.h @@ -256,6 +256,6 @@ typedef union YYSTYPE /* Generated from: - * 0d7275f3d26eba5194cb04d866bf174da7b0efd786c93da356327709423460ee perly.y + * d13846722b7ef2ae2bdfc0104c811b8114e262c5775f9ee344f9e51db09c48ad perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index 1fbe818..ad95682 100644 --- a/perly.tab +++ b/perly.tab @@ -6,7 +6,7 @@ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2881 +#define YYLAST 2958 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 105 @@ -30,16 +30,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 91, 2, 2, 15, 17, 19, 2, - 103, 102, 18, 14, 80, 13, 22, 104, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 83, 20, - 2, 21, 2, 82, 16, 2, 2, 2, 2, 2, + 2, 2, 2, 89, 2, 2, 102, 16, 17, 2, + 101, 100, 103, 14, 78, 13, 20, 104, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 81, 18, + 2, 19, 2, 80, 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11, 2, 12, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 9, 2, 10, 92, 2, 2, 2, + 2, 2, 2, 9, 2, 10, 90, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -53,14 +53,14 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 81, 84, 85, 86, 87, 88, 89, 90, 93, - 94, 95, 96, 97, 98, 99, 100, 101 + 5, 6, 7, 8, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 79, 82, 83, 84, 85, 86, 87, 88, 91, + 92, 93, 94, 95, 96, 97, 98, 99 }; #if YYDEBUG @@ -102,92 +102,92 @@ static const yytype_int16 yyrhs[] = 106, 0, -1, -1, 3, 107, 115, 118, -1, -1, 4, 108, 168, -1, -1, 5, 109, 113, -1, -1, 6, 110, 122, -1, -1, 7, 111, 120, -1, -1, - 8, 112, 118, -1, 9, 115, 118, 10, -1, 21, - 115, 20, 74, 119, 20, 22, -1, -1, 9, 117, + 8, 112, 118, -1, 9, 115, 118, 10, -1, 19, + 115, 18, 72, 119, 18, 20, -1, -1, 9, 117, 118, 10, -1, -1, -1, 118, 120, -1, -1, 119, - 130, -1, 122, -1, 121, -1, 36, 122, -1, 36, - 121, -1, 35, -1, 37, 145, 142, 114, -1, -1, - 38, 146, 143, 123, 147, 148, 152, -1, -1, 38, + 130, -1, 122, -1, 121, -1, 34, 122, -1, 34, + 121, -1, 33, -1, 35, 145, 142, 114, -1, -1, + 36, 146, 143, 123, 147, 148, 152, -1, -1, 36, 146, 143, 124, 115, 150, 148, 9, 118, 10, -1, - 40, 23, 23, 20, -1, -1, 41, 143, 125, 23, - 23, 167, 20, -1, 44, 103, 115, 139, 102, 116, - 133, -1, 45, 103, 115, 141, 102, 116, 133, -1, - 50, 103, 115, 139, 102, 116, -1, 51, 103, 115, - 139, 102, 116, -1, 52, 113, -1, 42, 103, 115, - 137, 102, 135, 116, 134, -1, 43, 103, 115, 138, - 102, 135, 116, 134, -1, -1, -1, 49, 103, 115, - 140, 20, 126, 137, 20, 127, 135, 140, 102, 116, - -1, 49, 70, 115, 170, 103, 139, 102, 116, 134, - -1, 49, 174, 103, 115, 139, 102, 116, 134, -1, - -1, 49, 93, 70, 115, 171, 128, 103, 139, 102, - 116, 134, -1, 49, 93, 172, 103, 115, 139, 102, - 116, 134, -1, 49, 103, 115, 139, 102, 116, 134, - -1, 113, 134, -1, -1, 40, 23, 23, 9, 115, - 129, 118, 10, -1, 132, 20, -1, 20, -1, 26, - 131, -1, -1, 73, 118, 74, -1, 1, -1, 153, - -1, 153, 44, 153, -1, 153, 45, 153, -1, 153, - 42, 153, -1, 153, 43, 138, -1, 153, 49, 153, - -1, 153, 51, 153, -1, -1, 46, 116, -1, 47, - 103, 139, 102, 116, 133, -1, -1, 48, 113, -1, + 38, 21, 21, 18, -1, -1, 39, 143, 125, 21, + 21, 167, 18, -1, 42, 101, 115, 139, 100, 116, + 133, -1, 43, 101, 115, 141, 100, 116, 133, -1, + 48, 101, 115, 139, 100, 116, -1, 49, 101, 115, + 139, 100, 116, -1, 50, 113, -1, 40, 101, 115, + 137, 100, 135, 116, 134, -1, 41, 101, 115, 138, + 100, 135, 116, 134, -1, -1, -1, 47, 101, 115, + 140, 18, 126, 137, 18, 127, 135, 140, 100, 116, + -1, 47, 68, 115, 170, 101, 139, 100, 116, 134, + -1, 47, 174, 101, 115, 139, 100, 116, 134, -1, + -1, 47, 91, 68, 115, 171, 128, 101, 139, 100, + 116, 134, -1, 47, 91, 172, 101, 115, 139, 100, + 116, 134, -1, 47, 101, 115, 139, 100, 116, 134, + -1, 113, 134, -1, -1, 38, 21, 21, 9, 115, + 129, 118, 10, -1, 132, 18, -1, 18, -1, 24, + 131, -1, -1, 71, 118, 72, -1, 1, -1, 153, + -1, 153, 42, 153, -1, 153, 43, 153, -1, 153, + 40, 153, -1, 153, 41, 138, -1, 153, 47, 153, + -1, 153, 49, 153, -1, -1, 44, 116, -1, 45, + 101, 139, 100, 116, 133, -1, -1, 46, 113, -1, -1, -1, 132, -1, -1, 153, -1, 153, -1, 153, - -1, 136, -1, 138, -1, 23, -1, -1, -1, -1, - -1, 23, -1, 28, -1, -1, 26, -1, -1, 72, - 26, -1, 72, -1, 72, 26, -1, 72, -1, -1, - 103, 151, 102, -1, 113, -1, 20, -1, 153, 78, - 153, -1, 153, 77, 153, -1, 153, 76, 153, -1, - 154, -1, 154, 80, -1, 154, 80, 163, -1, 163, - -1, 60, 182, 154, -1, 58, 103, 182, 153, 102, - -1, 163, 101, 157, 103, 168, 102, -1, 163, 101, - 157, -1, 24, 182, 167, -1, 25, 182, 103, 168, - 102, -1, 60, 167, -1, 58, 103, 168, 102, -1, - -1, 33, 144, 113, 156, 167, -1, 24, -1, 174, - -1, 181, 9, 153, 20, 10, -1, 174, 11, 153, - 12, -1, 163, 101, 11, 153, 12, -1, 158, 11, - 153, 12, -1, 174, 9, 153, 20, 10, -1, 163, - 101, 9, 153, 20, 10, -1, 158, 9, 153, 20, - 10, -1, 163, 101, 103, 102, -1, 163, 101, 103, - 153, 102, -1, 158, 103, 153, 102, -1, 158, 103, - 102, -1, 103, 153, 102, 11, 153, 12, -1, 29, - 11, 153, 12, -1, 103, 102, 11, 153, 12, -1, - 163, 81, 163, -1, 163, 95, 163, -1, 163, 63, - 163, -1, 163, 64, 163, -1, 163, 89, 163, -1, - 163, 61, 163, -1, 163, 62, 163, -1, 163, 88, - 163, -1, 163, 87, 163, -1, 163, 54, 163, -1, - 163, 86, 163, -1, 163, 85, 163, -1, 163, 84, - 163, -1, 163, 90, 163, -1, 13, 163, -1, 14, - 163, -1, 91, 163, -1, 92, 163, -1, 163, 98, - -1, 163, 97, -1, 163, 96, -1, 100, 163, -1, - 99, 163, -1, 11, 153, 12, -1, 11, 12, -1, - 67, 153, 20, 10, -1, 67, 20, 10, -1, 39, - 144, 147, 148, 113, -1, 39, 144, 115, 150, 148, - 9, 118, 10, -1, 66, 163, -1, 66, 113, -1, - 159, -1, 160, -1, 161, -1, 162, -1, 163, 82, - 163, 83, 163, -1, 93, 163, -1, 165, -1, 69, - 163, -1, 103, 153, 102, -1, 29, -1, 103, 102, + -1, 136, -1, 138, -1, 21, -1, -1, -1, -1, + -1, 21, -1, 26, -1, -1, 24, -1, -1, 70, + 24, -1, 70, -1, 70, 24, -1, 70, -1, -1, + 101, 151, 100, -1, 113, -1, 18, -1, 153, 76, + 153, -1, 153, 75, 153, -1, 153, 74, 153, -1, + 154, -1, 154, 78, -1, 154, 78, 163, -1, 163, + -1, 58, 182, 154, -1, 56, 101, 182, 153, 100, + -1, 163, 99, 157, 101, 168, 100, -1, 163, 99, + 157, -1, 22, 182, 167, -1, 23, 182, 101, 168, + 100, -1, 58, 167, -1, 56, 101, 168, 100, -1, + -1, 31, 144, 113, 156, 167, -1, 22, -1, 174, + -1, 181, 9, 153, 18, 10, -1, 174, 11, 153, + 12, -1, 163, 99, 11, 153, 12, -1, 158, 11, + 153, 12, -1, 174, 9, 153, 18, 10, -1, 163, + 99, 9, 153, 18, 10, -1, 158, 9, 153, 18, + 10, -1, 163, 99, 101, 100, -1, 163, 99, 101, + 153, 100, -1, 158, 101, 153, 100, -1, 158, 101, + 100, -1, 101, 153, 100, 11, 153, 12, -1, 27, + 11, 153, 12, -1, 101, 100, 11, 153, 12, -1, + 163, 79, 163, -1, 163, 93, 163, -1, 163, 61, + 163, -1, 163, 62, 163, -1, 163, 87, 163, -1, + 163, 59, 163, -1, 163, 60, 163, -1, 163, 86, + 163, -1, 163, 85, 163, -1, 163, 52, 163, -1, + 163, 84, 163, -1, 163, 83, 163, -1, 163, 82, + 163, -1, 163, 88, 163, -1, 13, 163, -1, 14, + 163, -1, 89, 163, -1, 90, 163, -1, 163, 96, + -1, 163, 95, -1, 163, 94, -1, 98, 163, -1, + 97, 163, -1, 11, 153, 12, -1, 11, 12, -1, + 65, 153, 18, 10, -1, 65, 18, 10, -1, 37, + 144, 147, 148, 113, -1, 37, 144, 115, 150, 148, + 9, 118, 10, -1, 64, 163, -1, 64, 113, -1, + 159, -1, 160, -1, 161, -1, 162, -1, 163, 80, + 163, 81, 163, -1, 91, 163, -1, 165, -1, 67, + 163, -1, 101, 153, 100, -1, 27, -1, 101, 100, -1, 174, -1, 178, -1, 176, -1, 175, -1, 177, -1, 158, -1, 179, 11, 153, 12, -1, 180, 11, - 153, 12, -1, 179, 9, 153, 20, 10, -1, 180, - 9, 153, 20, 10, -1, 26, -1, 173, -1, 173, - 103, 102, -1, 173, 103, 153, 102, -1, 68, 146, - 167, -1, 163, 101, 15, 18, -1, 163, 101, 16, - 18, -1, 163, 101, 17, 18, -1, 163, 101, 19, - 18, -1, 163, 101, 18, 18, -1, 53, -1, 53, - 163, -1, 79, 154, -1, 59, -1, 59, 113, -1, - 59, 163, -1, 71, -1, 71, 163, -1, 32, -1, - 32, 163, -1, 56, -1, 56, 103, 102, -1, 30, - -1, 30, 103, 102, -1, 31, -1, 57, 103, 102, - -1, 57, 103, 153, 102, -1, -1, 27, 164, 103, - 154, 169, 102, -1, 23, -1, 155, -1, 55, -1, - 34, -1, 70, 166, 149, -1, 70, 166, -1, 103, - 153, 102, -1, 103, 102, -1, 174, -1, 176, -1, + 153, 12, -1, 179, 9, 153, 18, 10, -1, 180, + 9, 153, 18, 10, -1, 24, -1, 173, -1, 173, + 101, 100, -1, 173, 101, 153, 100, -1, 66, 146, + 167, -1, 163, 99, 102, 103, -1, 163, 99, 15, + 103, -1, 163, 99, 16, 103, -1, 163, 99, 17, + 103, -1, 163, 99, 103, 103, -1, 51, -1, 51, + 163, -1, 77, 154, -1, 57, -1, 57, 113, -1, + 57, 163, -1, 69, -1, 69, 163, -1, 30, -1, + 30, 163, -1, 54, -1, 54, 101, 100, -1, 28, + -1, 28, 101, 100, -1, 29, -1, 55, 101, 100, + -1, 55, 101, 153, 100, -1, -1, 25, 164, 101, + 154, 169, 100, -1, 21, -1, 155, -1, 53, -1, + 32, -1, 68, 166, 149, -1, 68, 166, -1, 101, + 153, 100, -1, 101, 100, -1, 174, -1, 176, -1, 175, -1, -1, 154, -1, -1, 153, -1, -1, 104, 153, -1, 174, -1, 174, -1, 175, -1, 176, -1, - 171, -1, 173, -1, 19, 182, -1, 15, 182, -1, - 16, 182, -1, 17, 182, -1, 65, 182, -1, 163, - 101, 65, 18, -1, 18, 182, -1, 175, -1, 163, - 101, 16, -1, 176, -1, 163, 101, 17, -1, 178, - -1, 163, 101, 18, -1, 23, -1, 174, -1, 113, - -1, 28, -1 + 171, -1, 173, -1, 17, 182, -1, 102, 182, -1, + 15, 182, -1, 16, 182, -1, 63, 182, -1, 163, + 99, 63, 103, -1, 103, 182, -1, 175, -1, 163, + 99, 15, -1, 176, -1, 163, 99, 16, -1, 178, + -1, 163, 99, 103, -1, 21, -1, 174, -1, 113, + -1, 26, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -229,20 +229,20 @@ static const char *const yytname[] = { "$end", "error", "$undefined", "GRAMPROG", "GRAMEXPR", "GRAMBLOCK", "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ", "'{'", "'}'", "'['", - "']'", "'-'", "'+'", "'$'", "'@'", "'%'", "'*'", "'&'", "';'", "'='", - "'.'", "WORD", "METHOD", "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", - "QWLIST", "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", - "PLUGSTMT", "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", - "WHILE", "UNTIL", "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", - "GIVEN", "WHEN", "DEFAULT", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", - "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", - "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", - "COLONATTR", "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "DOROP", "OROP", - "ANDOP", "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", - "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", - "REFGEN", "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", - "PREINC", "ARROW", "')'", "'('", "'/'", "$accept", "grammar", "@1", "@2", - "@3", "@4", "@5", "@6", "block", "formblock", "remember", "mblock", + "']'", "'-'", "'+'", "'@'", "'%'", "'&'", "';'", "'='", "'.'", "WORD", + "METHOD", "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", "QWLIST", + "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", + "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL", + "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN", + "DEFAULT", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC", + "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", "DOLSHARP", "DO", + "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", "COLONATTR", + "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "DOROP", "OROP", "ANDOP", + "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", + "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", + "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", "PREINC", + "ARROW", "')'", "'('", "'$'", "'*'", "'/'", "$accept", "grammar", "@1", + "@2", "@3", "@4", "@5", "@6", "block", "formblock", "remember", "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt", "labfullstmt", "barestmt", "@7", "@8", "@9", "@10", "@11", "@12", "@13", "formline", "formarg", "sideff", "else", "cont", "mintro", "nexpr", "texpr", "iexpr", @@ -262,16 +262,16 @@ static const char *const yytname[] = static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 123, - 125, 91, 93, 45, 43, 36, 64, 37, 42, 38, - 59, 61, 46, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 44, 321, 63, 58, 322, 323, 324, 325, 326, 327, - 328, 33, 126, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 41, 40, 47 + 125, 91, 93, 45, 43, 64, 37, 38, 59, 61, + 46, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 44, 321, + 63, 58, 322, 323, 324, 325, 326, 327, 328, 33, + 126, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 41, 40, 36, 42, 47 }; # endif @@ -344,20 +344,20 @@ static const yytype_uint8 yydefact[] = { 0, 2, 4, 6, 8, 10, 12, 0, 16, 227, 0, 0, 0, 19, 1, 19, 0, 0, 0, 0, - 0, 0, 0, 0, 214, 0, 0, 185, 212, 173, - 207, 209, 203, 85, 217, 85, 195, 216, 205, 0, - 0, 198, 225, 0, 0, 0, 0, 0, 0, 201, + 0, 0, 214, 0, 0, 185, 212, 173, 207, 209, + 203, 85, 217, 85, 195, 216, 205, 0, 0, 198, + 225, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 103, 215, 180, 164, 165, 166, 167, 106, 170, 5, 186, 175, 178, 177, 179, 176, 0, 0, 0, 16, 7, 60, 56, 27, 86, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 71, 9, 0, 61, 0, 11, 24, 23, 0, 0, 157, 0, 147, 148, 250, 253, - 252, 251, 238, 239, 240, 243, 237, 225, 0, 0, - 0, 0, 204, 0, 89, 196, 0, 0, 227, 199, - 200, 250, 226, 113, 251, 0, 241, 163, 162, 0, - 0, 87, 88, 225, 171, 0, 219, 222, 224, 223, - 202, 197, 149, 150, 169, 155, 154, 174, 0, 0, + 252, 251, 239, 240, 237, 225, 0, 0, 0, 0, + 204, 0, 89, 196, 0, 0, 227, 199, 200, 250, + 226, 113, 251, 0, 241, 163, 162, 0, 0, 87, + 88, 225, 171, 0, 219, 222, 224, 223, 202, 197, + 149, 150, 169, 155, 154, 174, 0, 238, 243, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 152, 151, 0, 0, 0, 0, 0, 0, @@ -369,14 +369,14 @@ static const yytype_uint8 yydefact[] = 221, 0, 95, 218, 0, 172, 102, 101, 100, 105, 0, 0, 129, 0, 142, 138, 139, 135, 136, 133, 0, 145, 144, 143, 141, 140, 137, 146, 134, 0, - 0, 0, 245, 247, 249, 0, 117, 0, 0, 110, + 0, 245, 247, 0, 117, 0, 0, 0, 249, 110, 118, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 29, 0, 0, 76, 0, 0, 0, 0, 16, 235, 0, 236, 232, 233, 234, 0, 16, 0, 0, 72, 64, 65, 78, 62, 63, 66, 67, 0, 229, 131, 225, 96, 91, 93, 0, 211, 114, 0, 158, 220, 94, 0, 0, 0, 122, 128, 0, - 0, 0, 190, 191, 192, 194, 193, 242, 126, 0, + 0, 0, 191, 192, 193, 242, 126, 0, 190, 194, 227, 188, 0, 120, 0, 181, 0, 182, 0, 14, 16, 28, 89, 16, 16, 33, 0, 0, 77, 0, 0, 79, 81, 0, 0, 231, 0, 16, 75, 80, @@ -401,82 +401,82 @@ static const yytype_int16 yydefgoto[] = -1, 7, 8, 9, 10, 11, 12, 13, 94, 361, 15, 439, 459, 102, 471, 220, 100, 101, 362, 363, 295, 445, 493, 442, 434, 486, 496, 96, 462, 210, - 436, 379, 367, 314, 370, 381, 373, 292, 197, 123, - 194, 143, 230, 327, 243, 325, 390, 453, 97, 58, - 59, 323, 279, 60, 61, 62, 63, 64, 65, 119, - 66, 146, 133, 67, 388, 374, 302, 303, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 112 + 436, 379, 367, 314, 370, 381, 373, 292, 197, 121, + 194, 141, 230, 327, 243, 325, 390, 453, 97, 58, + 59, 323, 279, 60, 61, 62, 63, 64, 65, 117, + 66, 144, 131, 67, 388, 374, 302, 303, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 157 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -419 +#define YYPACT_NINF -412 static const yytype_int16 yypact[] = { - 680, -419, -419, -419, -419, -419, -419, 28, -419, 2667, - 32, 1460, 1367, -419, -419, -419, 1927, 2667, 2667, 35, - 35, 35, 35, 35, -419, 35, 35, -419, -419, 38, - -18, -419, 2667, -419, -419, -419, 2667, -419, -8, 10, - 18, 1834, 1741, 35, 1834, 2018, 71, 2667, 2, 2667, - 2667, 2667, 2667, 2667, 2667, 2667, 2109, 3, 8, -419, - 1, -419, -419, -419, -419, 2735, -419, -419, 21, 48, - 124, 127, -419, 89, 138, 156, 105, -419, -419, -419, - -419, -419, -419, 71, 83, -419, 25, 36, 50, 54, - -10, 61, 65, 32, 104, -419, 151, 2293, 1367, -419, - -419, -419, 611, 706, -419, 97, 276, 276, -419, -419, - -419, -419, -419, -419, -419, -419, -419, 2667, 73, 76, - 2667, 86, 2094, 32, -13, 2735, 93, 2202, 1741, -419, - 2094, 512, 8, -419, 421, 2667, -419, -419, 2094, 186, - 53, -419, -419, 2667, 2094, 2295, 133, -419, -419, -419, - 2094, 8, 276, 276, 276, 380, 380, 195, -24, 2667, - 2667, 2667, 2667, 2667, 2667, 2388, 2667, 2667, 2667, 2667, - 2667, 2667, 2667, 2667, 2667, 2667, 2667, 2667, 2667, 2667, - 2667, -419, -419, -419, 101, 2481, 2667, 2667, 2667, 2667, - 2667, 2667, 2667, -419, 191, -419, 192, -419, -419, -419, - -419, -419, -419, 391, -419, 117, -419, -419, -419, 32, - -419, -419, 2667, 2667, 2667, 2667, 2667, 2667, -419, -419, - -419, -419, -419, 2667, 2667, 114, -419, -419, -419, 121, - 153, -419, -419, 281, 135, 2667, 8, -419, 228, -419, - -419, 340, 203, -419, 2667, 229, 163, 163, -419, 2735, - 173, 122, -419, 348, 1541, 2003, 1819, 439, 357, 2735, - 2690, 482, 482, 1631, 1726, 1912, 2187, 276, 276, 2667, - 2667, 420, 226, 234, 236, 237, -419, 238, 2574, 159, - -419, -419, 411, 182, 150, 250, 157, 278, 205, 289, - 801, -419, 242, 164, 57, 245, 2667, 2667, 2667, 2667, - 256, -419, -419, 187, -419, -419, -419, -419, 1553, -419, - 2667, 2667, -419, 3, -419, 3, 3, 3, 3, 3, - 197, -37, -419, 2667, -419, 153, 263, 32, -419, -419, - 418, -419, -419, -419, 209, 2667, 301, -419, -419, 2667, - 303, 219, -419, -419, -419, -419, -419, -419, -419, 450, - 2667, -419, 302, -419, 304, -419, 309, -419, 310, -419, - -419, -419, 299, -419, -419, -419, 306, 230, 3, 233, - 235, 3, -419, 239, 241, -419, 231, -419, -419, -419, - 240, 313, 273, 2667, 246, 251, -419, 2667, 260, -419, - 261, 329, -419, -419, -419, -419, 224, -419, 2780, 330, - -419, -419, 262, -419, -419, -419, -419, 332, 153, 121, - -419, 2667, -419, -419, 359, 359, 2667, -419, 2667, 359, - -419, 267, 359, 359, 3, -419, -419, -419, -419, -419, - -419, 311, 67, 153, -419, 366, 359, 359, -419, 55, - 55, 307, 320, 335, 104, 2667, 359, -419, -419, 896, - -419, -419, -419, -419, 425, 991, -419, 104, 104, -419, - 359, 342, -419, -419, 359, 2667, 359, -419, 426, 104, - -419, 11, -419, -419, -419, -419, 1086, -419, 2667, 104, - 354, 104, -419, -419, 437, 389, -419, 1181, -419, 365, - -419, 359, -419, -419, -419, -419, -419, -419, 359, 104, - 1646, 1274, 55, -419, 369, -419, -419, 359, -419 + 742, -412, -412, -412, -412, -412, -412, 9, -412, 2743, + 32, 1530, 1435, -412, -412, -412, 1999, 2743, 2743, 45, + 45, 45, -412, 45, 45, -412, -412, 15, -46, -412, + 2743, -412, -412, -412, 2743, -412, -43, -23, 39, 1906, + 1811, 45, 1906, 2092, 101, 2743, 0, 2743, 2743, 2743, + 2743, 2743, 2743, 2743, 2185, 45, 45, 69, -16, -412, + 8, -412, -412, -412, -412, 2814, -412, -412, 40, 65, + 85, 103, -412, 109, 185, 206, 137, -412, -412, -412, + -412, -412, -412, 101, 84, -412, 61, 64, 70, 76, + 231, 99, 113, 32, 90, -412, 148, 2090, 1435, -412, + -412, -412, 675, 770, -412, 41, 504, 504, -412, -412, + -412, -412, -412, -412, -412, 2743, 121, 125, 2743, 131, + 518, 32, 7, 2814, 132, 2278, 1811, -412, 518, 578, + -16, -412, 489, 2743, -412, -412, 518, 166, 130, -412, + -412, 2743, 518, 2371, 163, -412, -412, -412, 518, -16, + 504, 504, 504, 96, 96, 224, 272, -412, -412, 2743, + 2743, 2743, 2743, 2743, 2743, 2464, 2743, 2743, 2743, 2743, + 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743, + 2743, -412, -412, -412, 66, 2557, 2743, 2743, 2743, 2743, + 2743, 2743, 2743, -412, 215, -412, 217, -412, -412, -412, + -412, -412, -412, 35, -412, 147, -412, -412, -412, 32, + -412, -412, 2743, 2743, 2743, 2743, 2743, 2743, -412, -412, + -412, -412, -412, 2743, 2743, 57, -412, -412, -412, 152, + 176, -412, -412, 275, 155, 2743, -16, -412, 250, -412, + -412, 316, 239, -412, 2743, 257, 197, 197, -412, 2814, + 222, 75, -412, 349, 1611, 409, 1796, 459, 422, 2814, + 2769, 391, 391, 548, 1701, 1891, 1944, 504, 504, 2743, + 2743, 172, 183, 184, -412, 186, 2650, 21, 187, 194, + -412, -412, 354, 236, 98, 241, 123, 244, 127, 249, + 865, -412, 281, 200, 52, 286, 2743, 2743, 2743, 2743, + 211, -412, -412, 201, -412, -412, -412, -412, 1623, -412, + 2743, 2743, -412, 69, -412, 69, 69, 69, 69, 69, + 208, -56, -412, 2743, -412, 176, 290, 32, -412, -412, + 372, -412, -412, -412, 145, 2743, 319, -412, -412, 2743, + 252, 149, -412, -412, -412, -412, -412, 419, -412, -412, + 2743, -412, 325, -412, 329, -412, 330, -412, 333, -412, + -412, -412, 328, -412, -412, -412, 332, 254, 69, 263, + 268, 69, -412, 269, 256, -412, 17, -412, -412, -412, + 270, 353, 209, 2743, 273, 274, -412, 2743, 277, -412, + 280, 375, -412, -412, -412, -412, 167, -412, 2859, 371, + -412, -412, 287, -412, -412, -412, -412, 368, 176, 152, + -412, 2743, -412, -412, 379, 379, 2743, -412, 2743, 379, + -412, 309, 379, 379, 69, -412, -412, -412, -412, -412, + -412, 342, 86, 176, -412, 397, 379, 379, -412, 108, + 108, 318, 326, 331, 90, 2743, 379, -412, -412, 960, + -412, -412, -412, -412, 423, 1055, -412, 90, 90, -412, + 379, 334, -412, -412, 379, 2743, 379, -412, 416, 90, + -412, 55, -412, -412, -412, -412, 1150, -412, 2743, 90, + 337, 90, -412, -412, 418, 370, -412, 1245, -412, 339, + -412, 379, -412, -412, -412, -412, -412, -412, 379, 90, + 1716, 1340, 108, -412, 355, -412, -412, 379, -412 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -419, -419, -419, -419, -419, -419, -419, -419, 4, -419, - -56, -76, -419, -15, -419, 456, 376, 9, -419, -419, - -419, -419, -419, -419, -419, -419, -419, -306, -418, -30, - -404, -419, 34, -96, -246, -14, -419, -419, 295, 457, - -419, 408, 131, -322, -419, 91, -419, -419, -5, -35, - -419, -419, -419, -419, -419, -419, -419, -419, 225, -419, - -419, -419, -101, -127, -419, -419, 139, -419, 318, 13, - -42, -40, -419, -419, -419, -419, -419, 49 + -412, -412, -412, -412, -412, -412, -412, -412, 4, -412, + 160, -81, -412, -15, -412, 430, 358, -9, -412, -412, + -412, -412, -412, -412, -412, -412, -412, -307, -411, -36, + -401, -412, 13, -70, -290, -41, -412, -412, 267, 431, + -412, 382, 104, -322, -412, 58, -412, -412, -5, -35, + -412, -412, -412, -412, -412, -412, -412, -412, 227, -412, + -412, -412, -107, -116, -412, -412, 105, -412, 271, 44, + -40, -39, -412, -412, -412, -412, -412, 16 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -486,588 +486,602 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -249 static const yytype_int16 yytable[] = { - 103, 234, 378, 391, 57, 19, 148, 132, 149, 437, - 163, 105, 164, 228, 78, 151, 222, 19, 20, 21, - 95, 193, 463, 110, 110, 110, 110, 110, 14, 110, - 110, 484, 111, 111, 111, 111, 111, 485, 111, 111, - 140, 77, 239, 162, 77, 129, 110, 110, 137, 120, - 19, 158, 159, 160, 161, 134, 111, 186, 108, 187, - 202, 147, 380, 109, 384, 385, 364, 387, 229, 113, - 114, 115, 116, 238, 117, 118, 77, 365, 245, 159, - 160, 161, 132, 203, 506, 121, 432, 451, 162, 500, - -16, 135, 136, 204, 141, 126, 320, 208, -248, 142, - 236, 460, 461, 205, 165, 145, 196, 219, 132, 221, - 269, 454, 270, 127, 192, 225, 271, 272, 273, 274, - 275, 128, 233, 57, 185, 276, 322, 227, 198, 159, - 160, 161, 110, -244, 337, -244, -246, 421, -246, 199, - 241, 134, 296, 297, 298, 299, 300, 188, 308, 189, - 310, 311, 209, 200, 246, 247, 248, 201, 250, 251, - 253, 306, 353, 307, 206, 190, 277, 191, 207, 355, - 441, 211, 443, 159, 160, 161, 223, 235, 290, 224, - 282, 283, 284, 285, 286, 287, 288, 289, 226, 321, - 159, 160, 161, 336, 378, 231, 237, 280, 159, 160, - 161, 369, 352, 372, 278, 242, 244, 313, 315, 316, - 317, 318, 319, 312, 291, 294, 305, 357, 57, 480, - 309, 395, 389, 402, 324, 326, 159, 160, 161, 333, - 330, 400, 489, 159, 160, 161, 428, 329, 331, 334, - 335, 161, 106, 107, 343, 376, 19, 20, 21, 159, - 160, 161, 344, 383, 345, 346, 347, 122, 159, 160, - 161, 125, 350, 360, 340, 341, 130, -31, 366, 138, - 354, 19, 144, 349, 150, 110, 152, 153, 154, 155, - 156, 159, 160, 161, 111, 159, 160, 161, 132, 392, - 377, 368, 315, 371, 315, 159, 160, 161, 356, 386, - 159, 160, 161, 382, 407, 371, 371, 409, 410, 358, - 435, 397, 403, 375, 404, 212, 213, 214, 215, 405, - 406, 418, 216, 399, 217, 228, 159, 160, 161, 411, - 396, 393, 412, 420, 306, 413, 307, 414, 427, 440, - 429, 415, 419, 444, 416, 57, 447, 448, 422, 159, - 160, 161, 431, 423, 159, 160, 161, 159, 160, 161, - 457, 458, 425, 426, 430, 159, 160, 161, 438, 446, - 469, 180, 181, 182, 183, -79, 132, 184, 371, 159, - 160, 161, 424, 328, 477, 450, 456, 249, 479, 305, - 481, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 19, 20, 21, 464, - 23, 371, 449, 371, 467, 499, 159, 160, 161, 455, - 169, -175, 502, 465, 159, 160, 161, 474, 475, 77, - 186, 508, 187, -175, 472, 19, 452, 466, 342, 483, - 368, -175, 332, 108, 476, 478, 482, 179, 109, 490, - 338, 492, 180, 181, 182, 183, 491, 487, 184, 494, - 371, 301, 495, -175, -175, -175, -175, 498, 99, 503, - -175, 507, -175, 371, 218, -175, -249, -249, -249, 468, - 501, 184, -175, -175, -175, -175, 504, 159, 160, 161, - 293, 195, 124, 408, 159, 160, 161, -175, -175, -175, - 433, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -214, 351, 0, 417, -175, -175, -175, -175, - 394, 304, -175, -175, -214, -175, 159, 160, 161, 179, - 0, 0, -214, 0, 180, 181, 182, 183, 0, 0, - 184, 0, 0, 167, 168, 169, 170, 0, 0, 0, - 0, 0, 401, 0, -214, -214, -214, -214, 0, 0, - 0, -214, 0, -214, 398, 0, -214, 0, 175, 176, - 177, 178, 179, -214, -214, -214, -214, 180, 181, 182, - 183, 0, 0, 184, 0, 0, 0, 0, -214, -214, - -214, 0, -214, -214, -214, -214, -214, -214, -214, -214, - -214, -214, -214, 0, 0, 0, 0, -214, -214, -214, - -214, -13, 79, -214, -214, 0, -214, 0, 0, 0, - 77, 0, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 80, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 81, 98, 82, 83, - 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, - 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 49, 1, 2, 3, 4, 5, 6, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 0, -3, 79, 0, 0, - 54, 55, 0, 0, 56, 77, 0, 16, 0, 17, - 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 81, 98, 82, 83, 35, 84, 85, 86, 87, - 88, 89, 0, 0, 0, 90, 91, 92, 93, 36, - 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, - 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 79, 0, 0, 54, 55, 0, 0, 56, - 77, 359, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 80, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 81, 98, 82, 83, - 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, - 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 0, 0, 79, 0, 0, - 54, 55, 0, 0, 56, 77, 470, 16, 0, 17, - 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 81, 98, 82, 83, 35, 84, 85, 86, 87, - 88, 89, 0, 0, 0, 90, 91, 92, 93, 36, - 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, - 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 79, 0, 0, 54, 55, 0, 0, 56, - 77, 473, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 80, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 81, 98, 82, 83, - 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, - 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 0, 0, 79, 0, 0, - 54, 55, 0, 0, 56, 77, 488, 16, 0, 17, - 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 81, 98, 82, 83, 35, 84, 85, 86, 87, - 88, 89, 0, 0, 0, 90, 91, 92, 93, 36, - 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, - 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 79, 0, 0, 54, 55, 0, 0, 56, - 77, 497, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 80, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 81, 98, 82, 83, - 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, - 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 79, 0, 0, 0, 0, - 54, 55, 0, 77, 56, 16, 0, 17, 18, 19, - 20, 21, 22, 23, 80, 0, 0, 24, 25, 26, - 27, 28, 0, 29, 30, 31, 32, 33, 34, 81, - 98, 82, 83, 35, 84, 85, 86, 87, 88, 89, - 0, 0, 0, 90, 91, 92, 93, 36, 0, 37, - 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, - 44, 45, 46, 47, 48, 49, 0, 0, 505, 0, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 53, 79, 0, - 0, 0, 0, 54, 55, 0, 77, 56, 16, 0, - 17, 18, 19, 20, 21, 22, 23, 80, 0, 0, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 81, 98, 82, 83, 35, 84, 85, 86, - 87, 88, 89, 0, 0, 0, 90, 91, 92, 93, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 79, 0, 0, 0, 0, 54, 55, 0, 77, - 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, - 80, 0, 0, 24, 25, 26, 27, 28, 0, 29, - 30, 31, 32, 33, 34, 81, 0, 82, 83, 35, - 84, 85, 86, 87, 88, 89, 0, 0, 0, 90, - 91, 92, 93, 36, 0, 37, 38, 39, 40, 41, - 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, - 48, 49, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 52, 53, 79, 0, 0, 0, 0, 54, - 55, 0, 0, 56, 16, 0, 17, 18, 19, 20, - 21, 22, 23, -74, 0, 0, 24, 25, 26, 27, - 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, - 0, 0, 35, 0, 0, -249, 0, 0, 0, 0, - 0, 0, 167, 168, 169, 170, 36, 0, 37, 38, - 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, - 45, 46, 47, 48, 49, 173, 174, 175, 176, 177, - 178, 179, 50, 0, 0, 0, 180, 181, 182, 183, - 0, 0, 184, 0, 51, 52, 53, 79, 0, 0, - 0, 0, 54, 55, 0, 0, 56, 16, 0, 17, - 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, - 0, 0, 167, 168, 169, 170, 0, 0, 0, 36, - 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, - 0, 43, 44, 45, 46, 47, 48, 49, 176, 177, - 178, 179, 0, 0, 0, 50, 180, 181, 182, 183, - 0, 0, 184, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 54, 55, 0, -74, 56, - 77, 0, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 0, 0, 0, 131, 25, 26, 27, 28, 109, - 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 0, 167, 168, 169, - 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 49, 0, 177, 178, 179, 0, 0, 0, - 50, 180, 181, 182, 183, 0, 0, 184, 0, 0, - 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, - 54, 55, 0, 77, 56, 16, 0, 17, 18, 19, - 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, - 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, - 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, - 167, -249, 169, 170, 0, 0, 0, 36, 0, 37, - 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, - 44, 45, 46, 47, 48, 49, 0, 0, 178, 179, - 0, 0, 0, 50, 180, 181, 182, 183, 0, 0, - 184, 0, 0, 0, 0, 51, 52, 53, 0, 0, - 0, 0, 0, 54, 55, 0, 0, 56, 16, 104, - 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, - 0, 178, 179, 0, 0, 0, 50, 180, 181, 182, - 183, 0, 0, 184, 0, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 54, 55, 0, 16, - 56, 17, 18, 19, 20, 21, 22, 23, 139, 0, - 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, - 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, - 0, 0, 0, 0, -249, 0, 169, 170, 0, 0, - 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, - 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, - 0, 0, 178, 179, 0, 0, 0, 50, 180, 181, - 182, 183, 0, 0, 184, 0, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 0, 54, 55, 0, - 16, 56, 17, 18, 19, 20, 21, 22, 23, 0, - 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, - 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, - 0, 0, 0, 0, 0, 0, 0, 169, 170, 0, - 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, - 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, - 49, 0, 0, 178, 179, 0, 0, 0, 50, 180, + 103, 378, 95, 391, 57, 130, 146, 147, 222, 14, + 234, 105, 437, 149, 78, 19, 20, 163, 380, 164, + 384, 385, 162, 110, 110, 110, 118, 110, 110, 463, + 77, 228, 19, 20, 239, 112, 113, 114, 138, 115, + 116, 77, 108, 127, 110, 110, 135, 109, 387, 156, + 19, 20, 21, 221, 77, 119, 133, 134, 124, 110, + 110, 364, 162, 111, 111, 111, 108, 111, 111, 322, + 365, 109, 158, 484, 186, 269, 187, 270, 125, 485, + 130, 271, 272, 273, 132, 111, 432, 337, 274, 219, + 145, 506, 500, 421, -244, 77, -244, 208, 236, 111, + 111, 143, 55, 301, 451, 196, 130, 320, -16, 165, + 353, 454, -246, 225, -246, 159, 160, 161, -248, 55, + 233, 57, 139, 55, 348, 227, 441, 140, 443, 275, + 110, 159, 160, 161, 205, 355, 209, 55, 241, 357, + 126, 185, 235, 159, 160, 161, 192, 55, 238, 159, + 160, 161, 460, 461, 246, 247, 248, 395, 250, 251, + 253, 400, 198, 306, 307, 199, 211, 276, 277, 278, + 132, 200, 159, 160, 161, 480, 237, 201, 290, 428, + 282, 283, 284, 285, 286, 287, 288, 289, 489, 321, + -249, -249, -249, 378, 188, 184, 189, 159, 160, 161, + 206, 159, 160, 161, 159, 160, 161, 313, 315, 316, + 317, 318, 319, 312, 207, 190, 389, 191, 57, 159, + 160, 161, 223, 159, 160, 161, 224, 369, 280, 372, + 330, 226, 231, 242, 402, 244, 291, 193, 294, 334, + 336, 159, 160, 161, 106, 107, 326, 305, 309, 212, + 213, 214, 215, 324, 352, 329, 216, 120, 217, 354, + 331, 123, 356, 333, 340, 341, 128, 358, 335, 136, + 399, 347, 142, 161, 148, 342, 150, 151, 152, 153, + 154, 110, 229, 159, 160, 161, 343, 344, 130, 345, + 349, 368, 315, 371, 315, 350, 159, 160, 161, 202, + 360, -31, 377, 382, 435, 371, 371, 366, 386, -79, + 159, 160, 161, 55, 392, 159, 160, 161, 159, 160, + 161, 111, 203, 159, 160, 161, 159, 160, 161, 397, + 396, 393, 204, 55, 440, 403, 306, 307, 444, 404, + 405, 447, 448, 406, 375, 57, 159, 160, 161, 159, + 160, 161, 228, 411, 412, 457, 458, 416, 296, 297, + 298, 299, 300, 413, 308, 469, 310, 311, 414, 415, + 419, 420, 245, 422, 423, 328, 130, 425, 371, 477, + 426, 429, 424, 479, 427, 481, 431, 430, 438, 249, + 159, 160, 161, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 467, 446, + 499, 371, 449, 371, 450, 456, 332, 502, 464, 455, + 305, 474, 475, 159, 160, 161, 508, 465, 159, 160, + 161, 466, 472, 483, 482, 478, 452, 491, 494, 498, + 368, 495, 99, 490, 476, 492, 159, 160, 161, 338, + 167, 168, 169, 170, 351, 507, 218, 487, 468, 504, + 371, 376, 293, 503, 122, 195, 408, 433, -249, 383, + 169, 170, 394, 371, 304, 175, 176, 177, 178, 179, + 501, 417, 0, 169, 180, 181, 182, 183, 0, -175, + 184, 0, 0, 159, 160, 161, 178, 179, 186, 0, + 187, -175, 180, 181, 182, 183, 0, -175, 184, 0, + 179, 0, 0, 0, 0, 180, 181, 182, 183, 401, + 407, 184, 0, 409, 410, 0, 0, 0, 0, -175, + -175, -175, -175, 0, 0, 0, -175, 418, -175, 0, + 0, -175, 0, 0, 0, 0, 0, 179, -175, -175, + -175, -175, 180, 181, 182, 183, 0, 0, 184, 0, + 0, 0, 0, -175, -175, -175, 398, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -214, 169, + 170, 0, -175, -175, -175, -175, 0, 0, -175, -175, + -214, 0, 0, -175, 0, 0, -214, 180, 181, 182, + 183, 0, 0, 184, 0, 178, 179, 167, 168, 169, + 170, 180, 181, 182, 183, 0, 0, 184, -214, -214, + -214, -214, 0, 0, 0, -214, 0, -214, 0, 0, + -214, 0, 0, 176, 177, 178, 179, -214, -214, -214, + -214, 180, 181, 182, 183, 0, 0, 184, 0, 0, + 0, 0, -214, -214, -214, 0, -214, -214, -214, -214, + -214, -214, -214, -214, -214, -214, -214, 0, 0, 0, + 0, -214, -214, -214, -214, -13, 79, -214, -214, 0, + 0, 0, -214, 0, 77, 0, 16, 0, 17, 18, + 19, 20, 21, 80, 0, 0, 22, 23, 24, 25, + 26, 0, 27, 28, 29, 30, 31, 32, 81, 98, + 82, 83, 33, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 34, 0, 35, 36, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 1, 2, 3, 4, 5, + 6, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, + -3, 79, 52, 53, 0, 0, 54, 55, 56, 77, + 0, 16, 0, 17, 18, 19, 20, 21, 80, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 81, 98, 82, 83, 33, 84, 85, + 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, + 93, 34, 0, 35, 36, 37, 38, 39, 40, 0, + 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 50, 51, 0, 0, 0, 0, 79, 52, 53, 0, + 0, 54, 55, 56, 77, 359, 16, 0, 17, 18, + 19, 20, 21, 80, 0, 0, 22, 23, 24, 25, + 26, 0, 27, 28, 29, 30, 31, 32, 81, 98, + 82, 83, 33, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 34, 0, 35, 36, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, + 0, 79, 52, 53, 0, 0, 54, 55, 56, 77, + 470, 16, 0, 17, 18, 19, 20, 21, 80, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 81, 98, 82, 83, 33, 84, 85, + 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, + 93, 34, 0, 35, 36, 37, 38, 39, 40, 0, + 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 50, 51, 0, 0, 0, 0, 79, 52, 53, 0, + 0, 54, 55, 56, 77, 473, 16, 0, 17, 18, + 19, 20, 21, 80, 0, 0, 22, 23, 24, 25, + 26, 0, 27, 28, 29, 30, 31, 32, 81, 98, + 82, 83, 33, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 34, 0, 35, 36, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, + 0, 79, 52, 53, 0, 0, 54, 55, 56, 77, + 488, 16, 0, 17, 18, 19, 20, 21, 80, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 81, 98, 82, 83, 33, 84, 85, + 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, + 93, 34, 0, 35, 36, 37, 38, 39, 40, 0, + 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 50, 51, 0, 0, 0, 0, 79, 52, 53, 0, + 0, 54, 55, 56, 77, 497, 16, 0, 17, 18, + 19, 20, 21, 80, 0, 0, 22, 23, 24, 25, + 26, 0, 27, 28, 29, 30, 31, 32, 81, 98, + 82, 83, 33, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 34, 0, 35, 36, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, + 0, 79, 52, 53, 0, 0, 54, 55, 56, 77, + 0, 16, 0, 17, 18, 19, 20, 21, 80, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 81, 98, 82, 83, 33, 84, 85, + 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, + 93, 34, 0, 35, 36, 37, 38, 39, 40, 0, + 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, + 0, 0, 505, 0, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 50, 51, 0, 0, 0, 0, 79, 52, 53, 0, + 0, 54, 55, 56, 77, 0, 16, 0, 17, 18, + 19, 20, 21, 80, 0, 0, 22, 23, 24, 25, + 26, 0, 27, 28, 29, 30, 31, 32, 81, 98, + 82, 83, 33, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 34, 0, 35, 36, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, + 0, 79, 52, 53, 0, 0, 54, 55, 56, 77, + 0, 16, 0, 17, 18, 19, 20, 21, 80, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 81, 0, 82, 83, 33, 84, 85, + 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, + 93, 34, 0, 35, 36, 37, 38, 39, 40, 0, + 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 50, 51, 0, 0, 79, 0, 0, 52, 53, 0, + 0, 54, 55, 56, 16, 0, 17, 18, 19, 20, + 21, -74, 0, 0, 22, 23, 24, 25, 26, 0, + 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, + 33, 0, 0, -249, 0, 0, 0, 0, 0, 0, + 167, 168, 169, 170, 34, 0, 35, 36, 37, 38, + 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, + 45, 46, 47, 173, 174, 175, 176, 177, 178, 179, + 48, 0, 0, 0, 180, 181, 182, 183, 0, 0, + 184, 0, 49, 50, 51, 0, 0, 79, 0, 0, + 52, 53, 0, 0, 54, 55, 56, 16, 0, 17, + 18, 19, 20, 21, 0, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 167, 168, 169, 170, 0, 0, 0, 34, 0, 35, + 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, + 42, 43, 44, 45, 46, 47, 0, 177, 178, 179, + 0, 0, 0, 48, 180, 181, 182, 183, 0, 0, + 184, 0, 0, 0, 0, 49, 50, 51, 0, 0, + 0, 0, 0, 52, 53, 0, -74, 54, 55, 56, + 77, 0, 16, 0, 17, 18, 19, 20, 21, 0, + 0, 0, 129, 23, 24, 25, 26, 109, 27, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 167, -249, 169, 170, 0, + 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, + 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, + 47, 0, 0, 178, 179, 0, 0, 0, 48, 180, 181, 182, 183, 0, 0, 184, 0, 0, 0, 0, - 51, 52, 53, 0, 0, 0, 0, 0, 54, 55, - 0, 157, 56, 16, 0, 17, 18, 19, 20, 21, - 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, - 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, - 169, 170, 0, 0, 0, 36, 0, 37, 38, 39, - 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, - 46, 47, 48, 49, 0, 0, 0, 179, 0, 0, - 0, 50, 180, 181, 182, 183, 0, 0, 184, 0, - 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, - 0, 54, 55, 0, 232, 56, 16, 0, 17, 18, - 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, - 0, 0, 0, 0, 35, 212, 213, 214, 215, 0, - 0, 0, 216, 0, 217, 0, 0, 0, 36, 0, - 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, - 43, 44, 45, 46, 47, 48, 49, 0, 0, 159, - 160, 161, 0, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, - 0, 0, 0, 0, 54, 55, 0, 240, 56, 16, - 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, - 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, - 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, + 49, 50, 51, 0, 0, 0, 0, 0, 52, 53, + 0, 0, 54, 55, 56, 77, 0, 16, 0, 17, + 18, 19, 20, 21, 0, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 167, 168, 169, 170, 0, 0, 0, 34, 0, 35, + 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, + 42, 43, 44, 45, 46, 47, 0, 0, 178, 179, + 0, 0, 0, 48, 180, 181, 182, 183, 0, 0, + 184, 0, 0, 0, 0, 49, 50, 51, 0, 0, + 0, 0, 0, 52, 53, 169, 170, 54, 55, 56, + 16, 104, 17, 18, 19, 20, 21, 0, 0, 0, + 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, + 31, 32, 179, 0, 0, 0, 33, 180, 181, 182, + 183, 0, 0, 184, 0, 0, 0, 0, 0, 0, + 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, + 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, + 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, + 51, 0, 0, 0, 0, 0, 52, 53, 0, 0, + 54, 55, 56, 16, 0, 17, 18, 19, 20, 21, + 137, 0, 0, 22, 23, 24, 25, 26, 0, 27, + 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, + 212, 213, 214, 215, 0, 0, 0, 216, 0, 217, + 0, 0, 0, 34, 0, 35, 36, 37, 38, 39, + 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, + 46, 47, 0, 0, 159, 160, 161, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, - 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 0, 54, 55, 0, - 252, 56, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, - 54, 55, 0, 281, 56, 16, 0, 17, 18, 19, - 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, - 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, - 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, - 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, - 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, - 0, 0, 0, 54, 55, 0, 348, 56, 16, 0, - 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, + 0, 49, 50, 51, 0, 0, 0, 0, 0, 52, + 53, 0, 0, 54, 55, 56, 16, 0, 17, 18, + 19, 20, 21, 0, 0, 0, 22, 23, 24, 25, + 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 35, 36, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, + 0, 0, 52, 53, 0, 155, 54, 55, 56, 16, + 0, 17, 18, 19, 20, 21, 0, 0, 0, 22, + 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, + 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, + 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, + 0, 0, 0, 0, 0, 52, 53, 0, 232, 54, + 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, + 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, - 0, 0, 0, 0, 166, 0, 50, 0, 0, 0, - 0, 167, 168, 169, 170, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 54, 55, 0, 0, - 56, 171, 172, 339, 173, 174, 175, 176, 177, 178, - 179, 0, 0, 0, 0, 180, 181, 182, 183, 166, - 0, 184, 0, 0, 0, 0, 167, 168, 169, 170, + 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, + 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 179, 0, 0, 0, 0, - 180, 181, 182, 183, 166, 0, 184, 0, 0, 0, - 0, 167, 168, 169, 170, 0, 0, 0, 0, 0, + 49, 50, 51, 0, 0, 0, 0, 0, 52, 53, + 0, 240, 54, 55, 56, 16, 0, 17, 18, 19, + 20, 21, 0, 0, 0, 22, 23, 24, 25, 26, + 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 0, 35, 36, 37, + 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, + 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 50, 51, 0, 0, 0, 0, + 0, 52, 53, 0, 252, 54, 55, 56, 16, 0, + 17, 18, 19, 20, 21, 0, 0, 0, 22, 23, + 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, + 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 50, 51, 0, + 0, 0, 0, 0, 52, 53, 0, 281, 54, 55, + 56, 16, 0, 17, 18, 19, 20, 21, 0, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, + 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 50, 51, 0, 0, 0, 0, 0, 52, 53, 0, + 346, 54, 55, 56, 16, 0, 17, 18, 19, 20, + 21, 0, 0, 0, 22, 23, 24, 25, 26, 0, + 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 35, 36, 37, 38, + 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, + 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 48, 166, 0, 0, 0, 0, 0, 0, 167, 168, + 169, 170, 49, 50, 51, 0, 0, 0, 0, 0, + 52, 53, 0, 0, 54, 55, 56, 0, 171, 172, + 339, 173, 174, 175, 176, 177, 178, 179, 0, 0, + 0, 0, 180, 181, 182, 183, 166, 0, 184, 0, + 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 0, 173, 174, 175, 176, 177, 178, - 179, 0, 0, 0, 0, 180, 181, 182, 183, 0, - 0, 184 + 0, 0, 0, 171, 172, 0, 173, 174, 175, 176, + 177, 178, 179, 0, 0, 0, 0, 180, 181, 182, + 183, 166, 0, 184, 0, 0, 0, 0, 167, 168, + 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 0, 173, 174, 175, 176, 177, 178, 179, 0, 0, + 0, 0, 180, 181, 182, 183, 0, 0, 184 }; static const yytype_int16 yycheck[] = { - 15, 128, 308, 325, 9, 15, 48, 42, 48, 413, - 9, 16, 11, 26, 10, 50, 117, 15, 16, 17, - 11, 77, 440, 19, 20, 21, 22, 23, 0, 25, - 26, 20, 19, 20, 21, 22, 23, 26, 25, 26, - 45, 9, 143, 80, 9, 41, 42, 43, 44, 11, - 15, 56, 76, 77, 78, 42, 43, 9, 23, 11, - 70, 48, 308, 28, 310, 311, 9, 104, 124, 20, - 21, 22, 23, 20, 25, 26, 9, 20, 102, 76, - 77, 78, 117, 93, 502, 103, 408, 20, 80, 493, - 103, 42, 43, 103, 23, 103, 223, 93, 9, 28, - 135, 46, 47, 90, 103, 103, 23, 98, 143, 12, - 9, 433, 11, 103, 9, 120, 15, 16, 17, 18, - 19, 103, 127, 128, 103, 24, 12, 123, 103, 76, - 77, 78, 128, 9, 12, 11, 9, 383, 11, 103, - 145, 128, 198, 199, 200, 201, 202, 9, 204, 11, - 206, 207, 48, 103, 159, 160, 161, 103, 163, 164, - 165, 203, 12, 203, 103, 9, 65, 11, 103, 12, - 416, 20, 418, 76, 77, 78, 103, 128, 193, 103, - 185, 186, 187, 188, 189, 190, 191, 192, 102, 224, - 76, 77, 78, 20, 500, 102, 10, 184, 76, 77, - 78, 297, 20, 299, 103, 72, 11, 212, 213, 214, - 215, 216, 217, 209, 23, 23, 203, 12, 223, 465, - 103, 12, 323, 350, 103, 72, 76, 77, 78, 26, - 235, 12, 478, 76, 77, 78, 12, 102, 10, 244, - 11, 78, 17, 18, 18, 301, 15, 16, 17, 76, - 77, 78, 18, 309, 18, 18, 18, 32, 76, 77, - 78, 36, 103, 21, 269, 270, 41, 103, 23, 44, - 20, 15, 47, 278, 49, 271, 51, 52, 53, 54, - 55, 76, 77, 78, 271, 76, 77, 78, 323, 26, - 103, 296, 297, 298, 299, 76, 77, 78, 20, 102, - 76, 77, 78, 308, 360, 310, 311, 363, 364, 20, - 411, 10, 10, 300, 10, 42, 43, 44, 45, 10, - 10, 377, 49, 20, 51, 26, 76, 77, 78, 23, - 335, 327, 102, 20, 376, 102, 376, 102, 9, 415, - 10, 102, 102, 419, 103, 350, 422, 423, 102, 76, - 77, 78, 20, 102, 76, 77, 78, 76, 77, 78, - 436, 437, 102, 102, 102, 76, 77, 78, 9, 102, - 446, 95, 96, 97, 98, 102, 411, 101, 383, 76, - 77, 78, 387, 102, 460, 74, 20, 162, 464, 376, - 466, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 15, 16, 17, 102, - 19, 416, 427, 418, 444, 491, 76, 77, 78, 434, - 63, 0, 498, 103, 76, 77, 78, 457, 458, 9, - 9, 507, 11, 12, 9, 15, 432, 102, 18, 469, - 445, 20, 102, 23, 459, 103, 20, 90, 28, 479, - 102, 481, 95, 96, 97, 98, 102, 472, 101, 22, - 465, 70, 73, 42, 43, 44, 45, 102, 12, 499, - 49, 102, 51, 478, 98, 54, 96, 97, 98, 445, - 495, 101, 61, 62, 63, 64, 500, 76, 77, 78, - 195, 83, 35, 362, 76, 77, 78, 76, 77, 78, - 409, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 0, 102, -1, 376, 95, 96, 97, 98, - 102, 203, 101, 102, 12, 104, 76, 77, 78, 90, - -1, -1, 20, -1, 95, 96, 97, 98, -1, -1, - 101, -1, -1, 61, 62, 63, 64, -1, -1, -1, - -1, -1, 102, -1, 42, 43, 44, 45, -1, -1, - -1, 49, -1, 51, 339, -1, 54, -1, 86, 87, - 88, 89, 90, 61, 62, 63, 64, 95, 96, 97, - 98, -1, -1, 101, -1, -1, -1, -1, 76, 77, - 78, -1, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, -1, -1, -1, -1, 95, 96, 97, - 98, 0, 1, 101, 102, -1, 104, -1, -1, -1, - 9, -1, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, 3, 4, 5, 6, 7, 8, -1, - 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, -1, 0, 1, -1, -1, - 99, 100, -1, -1, 103, 9, -1, 11, -1, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, - 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, - -1, -1, 1, -1, -1, 99, 100, -1, -1, 103, - 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, -1, -1, 1, -1, -1, - 99, 100, -1, -1, 103, 9, 10, 11, -1, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, - 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, - -1, -1, 1, -1, -1, 99, 100, -1, -1, 103, - 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, -1, -1, 1, -1, -1, - 99, 100, -1, -1, 103, 9, 10, 11, -1, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, - 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, - -1, -1, 1, -1, -1, 99, 100, -1, -1, 103, - 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, 1, -1, -1, -1, -1, - 99, 100, -1, 9, 103, 11, -1, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, - 26, 27, -1, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - -1, -1, -1, 49, 50, 51, 52, 53, -1, 55, - 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, -1, -1, 74, -1, - -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 92, 93, 1, -1, - -1, -1, -1, 99, 100, -1, 9, 103, 11, -1, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, - -1, -1, -1, -1, -1, -1, 79, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - 93, 1, -1, -1, -1, -1, 99, 100, -1, 9, - 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, - 30, 31, 32, 33, 34, 35, -1, 37, 38, 39, - 40, 41, 42, 43, 44, 45, -1, -1, -1, 49, - 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, - 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, 79, + 15, 308, 11, 325, 9, 40, 46, 46, 115, 0, + 126, 16, 413, 48, 10, 15, 16, 9, 308, 11, + 310, 311, 78, 19, 20, 21, 11, 23, 24, 440, + 9, 24, 15, 16, 141, 19, 20, 21, 43, 23, + 24, 9, 21, 39, 40, 41, 42, 26, 104, 54, + 15, 16, 17, 12, 9, 101, 40, 41, 101, 55, + 56, 9, 78, 19, 20, 21, 21, 23, 24, 12, + 18, 26, 56, 18, 9, 9, 11, 11, 101, 24, + 115, 15, 16, 17, 40, 41, 408, 12, 22, 98, + 46, 502, 493, 383, 9, 9, 11, 93, 133, 55, + 56, 101, 102, 68, 18, 21, 141, 223, 101, 101, + 12, 433, 9, 118, 11, 74, 75, 76, 9, 102, + 125, 126, 21, 102, 103, 121, 416, 26, 418, 63, + 126, 74, 75, 76, 90, 12, 46, 102, 143, 12, + 101, 101, 126, 74, 75, 76, 9, 102, 18, 74, + 75, 76, 44, 45, 159, 160, 161, 12, 163, 164, + 165, 12, 101, 203, 203, 101, 18, 101, 102, 103, + 126, 101, 74, 75, 76, 465, 10, 101, 193, 12, + 185, 186, 187, 188, 189, 190, 191, 192, 478, 224, + 94, 95, 96, 500, 9, 99, 11, 74, 75, 76, + 101, 74, 75, 76, 74, 75, 76, 212, 213, 214, + 215, 216, 217, 209, 101, 9, 323, 11, 223, 74, + 75, 76, 101, 74, 75, 76, 101, 297, 184, 299, + 235, 100, 100, 70, 350, 11, 21, 77, 21, 244, + 18, 74, 75, 76, 17, 18, 70, 203, 101, 40, + 41, 42, 43, 101, 18, 100, 47, 30, 49, 18, + 10, 34, 18, 24, 269, 270, 39, 18, 11, 42, + 18, 276, 45, 76, 47, 103, 49, 50, 51, 52, + 53, 277, 122, 74, 75, 76, 103, 103, 323, 103, + 103, 296, 297, 298, 299, 101, 74, 75, 76, 68, + 19, 101, 101, 308, 411, 310, 311, 21, 100, 100, + 74, 75, 76, 102, 24, 74, 75, 76, 74, 75, + 76, 277, 91, 74, 75, 76, 74, 75, 76, 10, + 335, 327, 101, 102, 415, 10, 376, 376, 419, 10, + 10, 422, 423, 10, 300, 350, 74, 75, 76, 74, + 75, 76, 24, 21, 100, 436, 437, 101, 198, 199, + 200, 201, 202, 100, 204, 446, 206, 207, 100, 100, + 100, 18, 100, 100, 100, 100, 411, 100, 383, 460, + 100, 10, 387, 464, 9, 466, 18, 100, 9, 162, + 74, 75, 76, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 444, 100, + 491, 416, 427, 418, 72, 18, 100, 498, 100, 434, + 376, 457, 458, 74, 75, 76, 507, 101, 74, 75, + 76, 100, 9, 469, 18, 101, 432, 100, 20, 100, + 445, 71, 12, 479, 459, 481, 74, 75, 76, 100, + 59, 60, 61, 62, 100, 100, 98, 472, 445, 500, + 465, 301, 195, 499, 33, 83, 362, 409, 59, 309, + 61, 62, 100, 478, 203, 84, 85, 86, 87, 88, + 495, 376, -1, 61, 93, 94, 95, 96, -1, 0, + 99, -1, -1, 74, 75, 76, 87, 88, 9, -1, + 11, 12, 93, 94, 95, 96, -1, 18, 99, -1, + 88, -1, -1, -1, -1, 93, 94, 95, 96, 100, + 360, 99, -1, 363, 364, -1, -1, -1, -1, 40, + 41, 42, 43, -1, -1, -1, 47, 377, 49, -1, + -1, 52, -1, -1, -1, -1, -1, 88, 59, 60, + 61, 62, 93, 94, 95, 96, -1, -1, 99, -1, + -1, -1, -1, 74, 75, 76, 339, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 0, 61, + 62, -1, 93, 94, 95, 96, -1, -1, 99, 100, + 12, -1, -1, 104, -1, -1, 18, 93, 94, 95, + 96, -1, -1, 99, -1, 87, 88, 59, 60, 61, + 62, 93, 94, 95, 96, -1, -1, 99, 40, 41, + 42, 43, -1, -1, -1, 47, -1, 49, -1, -1, + 52, -1, -1, 85, 86, 87, 88, 59, 60, 61, + 62, 93, 94, 95, 96, -1, -1, 99, -1, -1, + -1, -1, 74, 75, 76, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, + -1, 93, 94, 95, 96, 0, 1, 99, 100, -1, + -1, -1, 104, -1, 9, -1, 11, -1, 13, 14, + 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, + -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, 69, 3, 4, 5, 6, 7, + 8, -1, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + 0, 1, 97, 98, -1, -1, 101, 102, 103, 9, + -1, 11, -1, 13, 14, 15, 16, 17, 18, -1, + -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, -1, -1, -1, 47, 48, 49, + 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, + -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, + -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, -1, -1, -1, -1, 1, 97, 98, -1, + -1, 101, 102, 103, 9, 10, 11, -1, 13, 14, + 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, + -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, -1, -1, + -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + -1, 1, 97, 98, -1, -1, 101, 102, 103, 9, + 10, 11, -1, 13, 14, 15, 16, 17, 18, -1, + -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, -1, -1, -1, 47, 48, 49, + 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, + -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, + -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, -1, -1, -1, -1, 1, 97, 98, -1, + -1, 101, 102, 103, 9, 10, 11, -1, 13, 14, + 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, + -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, -1, -1, + -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + -1, 1, 97, 98, -1, -1, 101, 102, 103, 9, + 10, 11, -1, 13, 14, 15, 16, 17, 18, -1, + -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, -1, -1, -1, 47, 48, 49, + 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, + -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, + -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, -1, -1, -1, -1, 1, 97, 98, -1, + -1, 101, 102, 103, 9, 10, 11, -1, 13, 14, + 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, + -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, -1, -1, + -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + -1, 1, 97, 98, -1, -1, 101, 102, 103, 9, + -1, 11, -1, 13, 14, 15, 16, 17, 18, -1, + -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, -1, -1, -1, 47, 48, 49, + 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, + -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, + -1, -1, 72, -1, -1, -1, -1, 77, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, -1, -1, -1, -1, 1, 97, 98, -1, + -1, 101, 102, 103, 9, -1, 11, -1, 13, 14, + 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, + -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, -1, -1, + -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + -1, 1, 97, 98, -1, -1, 101, 102, 103, 9, + -1, 11, -1, 13, 14, 15, 16, 17, 18, -1, + -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, 31, 32, 33, -1, 35, 36, 37, 38, 39, + 40, 41, 42, 43, -1, -1, -1, 47, 48, 49, + 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, + -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, + -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, -1, -1, 1, -1, -1, 97, 98, -1, + -1, 101, 102, 103, 11, -1, 13, 14, 15, 16, + 17, 18, -1, -1, 21, 22, 23, 24, 25, -1, + 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, 52, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, 51, -1, 53, 54, 55, 56, + 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, + 67, 68, 69, 82, 83, 84, 85, 86, 87, 88, + 77, -1, -1, -1, 93, 94, 95, 96, -1, -1, + 99, -1, 89, 90, 91, -1, -1, 1, -1, -1, + 97, 98, -1, -1, 101, 102, 103, 11, -1, 13, + 14, 15, 16, 17, -1, -1, -1, 21, 22, 23, + 24, 25, -1, 27, 28, 29, 30, 31, 32, -1, + -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, 51, -1, 53, + 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, 69, -1, 86, 87, 88, + -1, -1, -1, 77, 93, 94, 95, 96, -1, -1, + 99, -1, -1, -1, -1, 89, 90, 91, -1, -1, + -1, -1, -1, 97, 98, -1, 100, 101, 102, 103, + 9, -1, 11, -1, 13, 14, 15, 16, 17, -1, + -1, -1, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, -1, -1, -1, -1, 37, -1, + -1, -1, -1, -1, -1, 59, 60, 61, 62, -1, + -1, -1, 51, -1, 53, 54, 55, 56, 57, 58, + -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + 69, -1, -1, 87, 88, -1, -1, -1, 77, 93, + 94, 95, 96, -1, -1, 99, -1, -1, -1, -1, + 89, 90, 91, -1, -1, -1, -1, -1, 97, 98, + -1, -1, 101, 102, 103, 9, -1, 11, -1, 13, + 14, 15, 16, 17, -1, -1, -1, 21, 22, 23, + 24, 25, -1, 27, 28, 29, 30, 31, 32, -1, + -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, + 59, 60, 61, 62, -1, -1, -1, 51, -1, 53, + 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, 69, -1, -1, 87, 88, + -1, -1, -1, 77, 93, 94, 95, 96, -1, -1, + 99, -1, -1, -1, -1, 89, 90, 91, -1, -1, + -1, -1, -1, 97, 98, 61, 62, 101, 102, 103, + 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, + 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, + 31, 32, 88, -1, -1, -1, 37, 93, 94, 95, + 96, -1, -1, 99, -1, -1, -1, -1, -1, -1, + 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, + -1, -1, 63, 64, 65, 66, 67, 68, 69, -1, + -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, + 91, -1, -1, -1, -1, -1, 97, 98, -1, -1, + 101, 102, 103, 11, -1, 13, 14, 15, 16, 17, + 18, -1, -1, 21, 22, 23, 24, 25, -1, 27, + 28, 29, 30, 31, 32, -1, -1, -1, -1, 37, + 40, 41, 42, 43, -1, -1, -1, 47, -1, 49, + -1, -1, -1, 51, -1, 53, 54, 55, 56, 57, + 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, + 68, 69, -1, -1, 74, 75, 76, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 92, 93, 1, -1, -1, -1, -1, 99, - 100, -1, -1, 103, 11, -1, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, - 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, 39, -1, -1, 54, -1, -1, -1, -1, - -1, -1, 61, 62, 63, 64, 53, -1, 55, 56, - 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, - 67, 68, 69, 70, 71, 84, 85, 86, 87, 88, - 89, 90, 79, -1, -1, -1, 95, 96, 97, 98, - -1, -1, 101, -1, 91, 92, 93, 1, -1, -1, - -1, -1, 99, 100, -1, -1, 103, 11, -1, 13, - 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, - 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, - -1, -1, 61, 62, 63, 64, -1, -1, -1, 53, - -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 87, 88, - 89, 90, -1, -1, -1, 79, 95, 96, 97, 98, - -1, -1, 101, -1, -1, -1, -1, 91, 92, 93, - -1, -1, -1, -1, -1, 99, 100, -1, 102, 103, - 9, -1, 11, -1, 13, 14, 15, 16, 17, 18, - 19, -1, -1, -1, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - 39, -1, -1, -1, -1, -1, -1, 61, 62, 63, - 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, -1, 88, 89, 90, -1, -1, -1, - 79, 95, 96, 97, 98, -1, -1, 101, -1, -1, - -1, -1, 91, 92, 93, -1, -1, -1, -1, -1, - 99, 100, -1, 9, 103, 11, -1, 13, 14, 15, - 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, - 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - 61, 62, 63, 64, -1, -1, -1, 53, -1, 55, - 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, -1, -1, 89, 90, - -1, -1, -1, 79, 95, 96, 97, 98, -1, -1, - 101, -1, -1, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, 99, 100, -1, -1, 103, 11, 12, - 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, - -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, - -1, 89, 90, -1, -1, -1, 79, 95, 96, 97, - 98, -1, -1, 101, -1, -1, -1, -1, 91, 92, - 93, -1, -1, -1, -1, -1, 99, 100, -1, 11, - 103, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, - -1, -1, -1, -1, 61, -1, 63, 64, -1, -1, - -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, - -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, - -1, -1, 89, 90, -1, -1, -1, 79, 95, 96, - 97, 98, -1, -1, 101, -1, -1, -1, -1, 91, - 92, 93, -1, -1, -1, -1, -1, 99, 100, -1, - 11, 103, 13, 14, 15, 16, 17, 18, 19, -1, - -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, - -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, - -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, -1, -1, 89, 90, -1, -1, -1, 79, 95, - 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, - 91, 92, 93, -1, -1, -1, -1, -1, 99, 100, - -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, - 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, - 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, -1, -1, -1, 90, -1, -1, - -1, 79, 95, 96, 97, 98, -1, -1, 101, -1, - -1, -1, -1, 91, 92, 93, -1, -1, -1, -1, - -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, - 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, - 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, 39, 42, 43, 44, 45, -1, - -1, -1, 49, -1, 51, -1, -1, -1, 53, -1, - 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, - 65, 66, 67, 68, 69, 70, 71, -1, -1, 76, - 77, 78, -1, -1, 79, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, -1, - -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, - -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, - -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, + -1, 89, 90, 91, -1, -1, -1, -1, -1, 97, + 98, -1, -1, 101, 102, 103, 11, -1, 13, 14, + 15, 16, 17, -1, -1, -1, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, 31, 32, -1, -1, + -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 51, -1, 53, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, 69, -1, -1, -1, -1, -1, + -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + -1, -1, 97, 98, -1, 100, 101, 102, 103, 11, + -1, 13, 14, 15, 16, 17, -1, -1, -1, 21, + 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, + 32, -1, -1, -1, -1, 37, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 51, + -1, 53, 54, 55, 56, 57, 58, -1, -1, -1, + -1, 63, 64, 65, 66, 67, 68, 69, -1, -1, + -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, + -1, -1, -1, -1, -1, 97, 98, -1, 100, 101, + 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, + -1, -1, 21, 22, 23, 24, 25, -1, 27, 28, + 29, 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, - -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - 92, 93, -1, -1, -1, -1, -1, 99, 100, -1, - 102, 103, 11, -1, 13, 14, 15, 16, 17, 18, - 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, -1, -1, -1, -1, -1, - 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, - 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, - 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 53, -1, 55, - 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, 99, 100, -1, 102, 103, 11, -1, - 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, + -1, -1, 51, -1, 53, 54, 55, 56, 57, 58, + -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + 69, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, - -1, -1, -1, -1, 54, -1, 79, -1, -1, -1, - -1, 61, 62, 63, 64, -1, -1, -1, 91, 92, - 93, -1, -1, -1, -1, -1, 99, 100, -1, -1, - 103, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, -1, -1, -1, -1, 95, 96, 97, 98, 54, - -1, 101, -1, -1, -1, -1, 61, 62, 63, 64, + 89, 90, 91, -1, -1, -1, -1, -1, 97, 98, + -1, 100, 101, 102, 103, 11, -1, 13, 14, 15, + 16, 17, -1, -1, -1, 21, 22, 23, 24, 25, + -1, 27, 28, 29, 30, 31, 32, -1, -1, -1, + -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 51, -1, 53, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, 69, -1, -1, -1, -1, -1, -1, + -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 89, 90, 91, -1, -1, -1, -1, + -1, 97, 98, -1, 100, 101, 102, 103, 11, -1, + 13, 14, 15, 16, 17, -1, -1, -1, 21, 22, + 23, 24, 25, -1, 27, 28, 29, 30, 31, 32, + -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 51, -1, + 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, + -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 89, 90, 91, -1, + -1, -1, -1, -1, 97, 98, -1, 100, 101, 102, + 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, + -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, + 30, 31, 32, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 81, 82, -1, 84, - 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, - 95, 96, 97, 98, 54, -1, 101, -1, -1, -1, - -1, 61, 62, 63, 64, -1, -1, -1, -1, -1, + -1, 51, -1, 53, 54, 55, 56, 57, 58, -1, + -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, + -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, -1, -1, -1, -1, -1, 97, 98, -1, + 100, 101, 102, 103, 11, -1, 13, 14, 15, 16, + 17, -1, -1, -1, 21, 22, 23, 24, 25, -1, + 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, + 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 51, -1, 53, 54, 55, 56, + 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, + 67, 68, 69, -1, -1, -1, -1, -1, -1, -1, + 77, 52, -1, -1, -1, -1, -1, -1, 59, 60, + 61, 62, 89, 90, 91, -1, -1, -1, -1, -1, + 97, 98, -1, -1, 101, 102, 103, -1, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, + -1, -1, 93, 94, 95, 96, 52, -1, 99, -1, + -1, -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 82, -1, 84, 85, 86, 87, 88, 89, - 90, -1, -1, -1, -1, 95, 96, 97, 98, -1, - -1, 101 + -1, -1, -1, 79, 80, -1, 82, 83, 84, 85, + 86, 87, 88, -1, -1, -1, -1, 93, 94, 95, + 96, 52, -1, 99, -1, -1, -1, -1, 59, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, + -1, 82, 83, 84, 85, 86, 87, 88, -1, -1, + -1, -1, 93, 94, 95, 96, -1, -1, 99 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1076,55 +1090,55 @@ static const yytype_uint8 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 106, 107, 108, 109, 110, 111, 112, 0, 115, 11, 13, 14, 15, - 16, 17, 18, 19, 23, 24, 25, 26, 27, 29, - 30, 31, 32, 33, 34, 39, 53, 55, 56, 57, - 58, 59, 60, 65, 66, 67, 68, 69, 70, 71, - 79, 91, 92, 93, 99, 100, 103, 153, 154, 155, + 16, 17, 21, 22, 23, 24, 25, 27, 28, 29, + 30, 31, 32, 37, 51, 53, 54, 55, 56, 57, + 58, 63, 64, 65, 66, 67, 68, 69, 77, 89, + 90, 91, 97, 98, 101, 102, 103, 153, 154, 155, 158, 159, 160, 161, 162, 163, 165, 168, 173, 174, 175, 176, 177, 178, 179, 180, 181, 9, 113, 1, - 20, 35, 37, 38, 40, 41, 42, 43, 44, 45, - 49, 50, 51, 52, 113, 122, 132, 153, 36, 120, - 121, 122, 118, 118, 12, 153, 163, 163, 23, 28, - 113, 174, 182, 182, 182, 182, 182, 182, 182, 164, - 11, 103, 163, 144, 144, 163, 103, 103, 103, 113, - 163, 23, 154, 167, 174, 182, 182, 113, 163, 20, - 153, 23, 28, 146, 163, 103, 166, 174, 175, 176, - 163, 154, 163, 163, 163, 163, 163, 102, 153, 76, - 77, 78, 80, 9, 11, 103, 54, 61, 62, 63, - 64, 81, 82, 84, 85, 86, 87, 88, 89, 90, - 95, 96, 97, 98, 101, 103, 9, 11, 9, 11, - 9, 11, 9, 115, 145, 146, 23, 143, 103, 103, - 103, 103, 70, 93, 103, 174, 103, 103, 113, 48, - 134, 20, 42, 43, 44, 45, 49, 51, 121, 122, - 120, 12, 167, 103, 103, 153, 102, 113, 26, 115, - 147, 102, 102, 153, 168, 182, 154, 10, 20, 167, - 102, 153, 72, 149, 11, 102, 153, 153, 153, 163, - 153, 153, 102, 153, 163, 163, 163, 163, 163, 163, + 18, 33, 35, 36, 38, 39, 40, 41, 42, 43, + 47, 48, 49, 50, 113, 122, 132, 153, 34, 120, + 121, 122, 118, 118, 12, 153, 163, 163, 21, 26, + 113, 174, 182, 182, 182, 182, 182, 164, 11, 101, + 163, 144, 144, 163, 101, 101, 101, 113, 163, 21, + 154, 167, 174, 182, 182, 113, 163, 18, 153, 21, + 26, 146, 163, 101, 166, 174, 175, 176, 163, 154, + 163, 163, 163, 163, 163, 100, 153, 182, 182, 74, + 75, 76, 78, 9, 11, 101, 52, 59, 60, 61, + 62, 79, 80, 82, 83, 84, 85, 86, 87, 88, + 93, 94, 95, 96, 99, 101, 9, 11, 9, 11, + 9, 11, 9, 115, 145, 146, 21, 143, 101, 101, + 101, 101, 68, 91, 101, 174, 101, 101, 113, 46, + 134, 18, 40, 41, 42, 43, 47, 49, 121, 122, + 120, 12, 167, 101, 101, 153, 100, 113, 24, 115, + 147, 100, 100, 153, 168, 182, 154, 10, 18, 167, + 100, 153, 70, 149, 11, 100, 153, 153, 153, 163, + 153, 153, 100, 153, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 9, - 11, 15, 16, 17, 18, 19, 24, 65, 103, 157, - 174, 102, 153, 153, 153, 153, 153, 153, 153, 153, - 118, 23, 142, 143, 23, 125, 115, 115, 115, 115, - 115, 70, 171, 172, 173, 174, 175, 176, 115, 103, + 11, 15, 16, 17, 22, 63, 101, 102, 103, 157, + 174, 100, 153, 153, 153, 153, 153, 153, 153, 153, + 118, 21, 142, 143, 21, 125, 115, 115, 115, 115, + 115, 68, 171, 172, 173, 174, 175, 176, 115, 101, 115, 115, 113, 153, 138, 153, 153, 153, 153, 153, - 168, 154, 12, 156, 103, 150, 72, 148, 102, 102, - 153, 10, 102, 26, 153, 11, 20, 12, 102, 83, - 153, 153, 18, 18, 18, 18, 18, 18, 102, 153, - 103, 102, 20, 12, 20, 12, 20, 12, 20, 10, - 21, 114, 123, 124, 9, 20, 23, 137, 153, 138, - 139, 153, 138, 141, 170, 174, 115, 103, 132, 136, - 139, 140, 153, 115, 139, 139, 102, 104, 169, 167, - 151, 148, 26, 113, 102, 12, 153, 10, 163, 20, - 12, 102, 168, 10, 10, 10, 10, 115, 147, 115, - 115, 23, 102, 102, 102, 102, 103, 171, 115, 102, - 20, 139, 102, 102, 153, 102, 102, 9, 12, 10, - 102, 20, 148, 150, 129, 167, 135, 135, 9, 116, - 116, 139, 128, 139, 116, 126, 102, 116, 116, 118, - 74, 20, 113, 152, 148, 118, 20, 116, 116, 117, - 46, 47, 133, 133, 102, 103, 102, 134, 137, 116, - 10, 119, 9, 10, 134, 134, 118, 116, 103, 116, - 139, 116, 20, 134, 20, 26, 130, 118, 10, 139, - 134, 102, 134, 127, 22, 73, 131, 10, 102, 116, - 135, 118, 116, 134, 140, 74, 133, 102, 116 + 168, 154, 12, 156, 101, 150, 70, 148, 100, 100, + 153, 10, 100, 24, 153, 11, 18, 12, 100, 81, + 153, 153, 103, 103, 103, 103, 100, 153, 103, 103, + 101, 100, 18, 12, 18, 12, 18, 12, 18, 10, + 19, 114, 123, 124, 9, 18, 21, 137, 153, 138, + 139, 153, 138, 141, 170, 174, 115, 101, 132, 136, + 139, 140, 153, 115, 139, 139, 100, 104, 169, 167, + 151, 148, 24, 113, 100, 12, 153, 10, 163, 18, + 12, 100, 168, 10, 10, 10, 10, 115, 147, 115, + 115, 21, 100, 100, 100, 100, 101, 171, 115, 100, + 18, 139, 100, 100, 153, 100, 100, 9, 12, 10, + 100, 18, 148, 150, 129, 167, 135, 135, 9, 116, + 116, 139, 128, 139, 116, 126, 100, 116, 116, 118, + 72, 18, 113, 152, 148, 118, 18, 116, 116, 117, + 44, 45, 133, 133, 100, 101, 100, 134, 137, 116, + 10, 119, 9, 10, 134, 134, 118, 116, 101, 116, + 139, 116, 18, 134, 18, 24, 130, 118, 10, 139, + 134, 100, 134, 127, 20, 71, 131, 10, 100, 116, + 135, 118, 116, 134, 140, 72, 133, 100, 116 }; typedef enum { @@ -1136,20 +1150,20 @@ static const toketypes yy_type_tab[] = { toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_pval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_pval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival, toketype_opval, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, @@ -1163,6 +1177,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 0d7275f3d26eba5194cb04d866bf174da7b0efd786c93da356327709423460ee perly.y + * d13846722b7ef2ae2bdfc0104c811b8114e262c5775f9ee344f9e51db09c48ad perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index 9f10b8b..be7a91d 100644 --- a/perly.y +++ b/perly.y @@ -45,7 +45,7 @@ %token <ival> GRAMPROG GRAMEXPR GRAMBLOCK GRAMBARESTMT GRAMFULLSTMT GRAMSTMTSEQ -%token <ival> '{' '}' '[' ']' '-' '+' '$' '@' '%' '*' '&' ';' '=' '.' +%token <ival> '{' '}' '[' ']' '-' '+' '@' '%' '&' ';' '=' '.' %token <opval> WORD METHOD FUNCMETH THING PMFUNC PRIVATEREF QWLIST %token <opval> FUNC0OP FUNC0SUB UNIOPSUB LSTOPSUB diff --git a/t/op/lex.t b/t/op/lex.t index 07cdcca..762d888 100644 --- a/t/op/lex.t +++ b/t/op/lex.t @@ -7,7 +7,7 @@ use warnings; BEGIN { chdir 't' if -d 't'; require './test.pl'; } -plan(tests => 16); +plan(tests => 17); { no warnings 'deprecated'; @@ -129,7 +129,7 @@ fresh_perl_is( '* <null> ident' ); SKIP: { - skip "Different output on EBCDIC (presumably)", 1 if ord("A") != 65; + skip "Different output on EBCDIC (presumably)", 2 if ord("A") != 65; fresh_perl_is( qq'"ab}"ax;&\0z\x8Ao}\x82x;', <<gibberish, Bareword found where operator expected at - line 1, near ""ab}"ax" @@ -140,4 +140,14 @@ gibberish { stderr => 1 }, 'gibberish containing &\0z - used to crash [perl #123753]' ); + fresh_perl_is( + qq'"ab}"ax;&{+z}\x8Ao}\x82x;', <<gibberish, +Bareword found where operator expected at - line 1, near ""ab}"ax" + (Missing operator before ax?) +syntax error at - line 1, near ""ab}"ax" +Unrecognized character \\x8A; marked by <-- HERE after }"ax;&{+z}<-- HERE near column 14 at - line 1. +gibberish + { stderr => 1 }, + 'gibberish containing &{+z} - used to crash [perl #123753]' + ); } diff --git a/toke.c b/toke.c index 0929b68..388b272 100644 --- a/toke.c +++ b/toke.c @@ -5752,13 +5752,12 @@ Perl_yylex(pTHX) PL_tokenbuf[0] = '&'; s = scan_ident(s - 1, PL_tokenbuf + 1, sizeof PL_tokenbuf - 1, TRUE); + pl_yylval.ival = (OPpENTERSUB_AMPER<<8); if (PL_tokenbuf[1]) { - PL_expect = XOPERATOR; force_ident_maybe_lex('&'); } else PREREF('&'); - pl_yylval.ival = (OPpENTERSUB_AMPER<<8); TERM('&'); case '|': -- Perl5 Master Repository
