From d9574aeedb43df3b17458f4586eb6c13eb0c9e9c Mon Sep 17 00:00:00 2001 From: Lev Walkin <vlm@lionet.info> Date: Thu, 24 Mar 2005 16:22:35 +0000 Subject: [PATCH] reverting to a much more simplistic parsing --- asn1c/asn1c.c | 2 +- libasn1parser/asn1p_l.c | 2822 ++++++++++++++++++++------------------- libasn1parser/asn1p_l.l | 101 +- libasn1parser/asn1p_y.c | 1664 ++++++++++++----------- libasn1parser/asn1p_y.h | 184 +-- libasn1parser/asn1p_y.y | 16 +- 6 files changed, 2501 insertions(+), 2288 deletions(-) diff --git a/asn1c/asn1c.c b/asn1c/asn1c.c index cf951af1..9340c701 100644 --- a/asn1c/asn1c.c +++ b/asn1c/asn1c.c @@ -282,7 +282,7 @@ main(int ac, char **av) { exit(EX_SOFTWARE); } - return 0; + return 2; } /* diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c index 9e33d8f1..858ee6aa 100644 --- a/libasn1parser/asn1p_l.c +++ b/libasn1parser/asn1p_l.c @@ -312,226 +312,227 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 129 -#define YY_END_OF_BUFFER 130 -static yyconst short int yy_acclist[1261] = +#define YY_NUM_RULES 130 +#define YY_END_OF_BUFFER 131 +static yyconst short int yy_acclist[1259] = { 0, - 130, 128, 129, 121, 128, 129, 121, 129, 122, 128, - 129, 15, 128, 129, 122, 128, 129, 128, 129, 122, - 128, 129, 128, 129, 122, 128, 129, 128, 129, 29, - 128, 129, 28, 128, 129, 122, 128, 129, 128, 129, - 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, - 128, 129, 116, 117, 128, 129, 116, 117, 128, 129, - 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, - 128, 129, 116, 117, 128, 129, 116, 117, 128, 129, - 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, - 128, 129, 116, 117, 128, 129, 116, 117, 128, 129, - - 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, - 128, 129, 116, 117, 128, 129, 127, 128, 129, 115, - 128, 129, 122, 127, 128, 129, 5, 128, 129, 2, - 129, 2, 128, 129, 4, 128, 129, 7, 9, 128, - 129, 7, 129, 9, 128, 129, 9, 128, 129, 17, - 128, 129, 17, 129, 18, 128, 129, 12, 128, 129, - 12, 129, 14, 128, 129, 14, 128, 129, 10, 128, - 129, 11, 128, 129, 21, 23, 128, 129, 23, 128, - 129, 24, 129, 21, 22, 23, 128, 129, 21, 22, - 23, 128, 129, 124, 128, 129, 125, 128, 129, 125, - - 129, 128, 129, 126, 128, 129, 121, 15, 15, 113, - 114, 1, 27, 120, 6, 28, 116, 117, 116, 117, - 116, 117, 116, 117, 116, 117, 116, 117, 117, 116, - 117, 116, 117, 116, 117, 116, 117, 39, 116, 117, + 131, 129, 130, 124, 129, 130, 124, 130, 127, 129, + 130, 15, 129, 130, 127, 129, 130, 129, 130, 127, + 129, 130, 129, 130, 127, 129, 130, 129, 130, 29, + 129, 130, 28, 129, 130, 127, 129, 130, 129, 130, + 116, 117, 129, 130, 116, 117, 129, 130, 116, 117, + 129, 130, 116, 117, 129, 130, 116, 117, 129, 130, + 116, 117, 129, 130, 116, 117, 129, 130, 116, 117, + 129, 130, 116, 117, 129, 130, 116, 117, 129, 130, + 116, 117, 129, 130, 116, 117, 129, 130, 116, 117, + 129, 130, 116, 117, 129, 130, 116, 117, 129, 130, + + 116, 117, 129, 130, 116, 117, 129, 130, 116, 117, + 129, 130, 116, 117, 129, 130, 115, 129, 130, 127, + 129, 130, 5, 129, 130, 2, 130, 2, 129, 130, + 4, 129, 130, 7, 9, 129, 130, 7, 130, 9, + 129, 130, 9, 129, 130, 17, 129, 130, 17, 130, + 18, 129, 130, 12, 129, 130, 12, 130, 14, 129, + 130, 14, 129, 130, 10, 129, 130, 11, 129, 130, + 21, 23, 129, 130, 23, 129, 130, 24, 130, 21, + 22, 23, 129, 130, 21, 22, 23, 129, 130, 121, + 129, 130, 122, 129, 130, 122, 130, 129, 130, 123, + + 129, 130, 124, 15, 15, 113, 114, 1, 27, 120, + 6, 28, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 39, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 116, 117, 116, 117, 116, 117, 116, 117, 117, 117, + 116, 117, 116, 117, 117, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 116, 117, 116, 117, 116, 117, 117, 116, 117, 116, - 117, 84, 116, 117, 116, 117, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 117, 116, 117, 116, 117, + 116, 117, 117, 116, 117, 116, 117, 84, 116, 117, + 116, 117, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 116, 117, 116, 117, 117, 116, 117, 116, 117, 117, - 117, 116, 117, 115, 5, 3, 8, 17, 16, 12, - 21, 21, 22, 21, 22, 124, 125, 123, 113, 114, - 27, 119, 118, 116, 117, 31, 116, 117, 32, 116, - 117, 116, 117, 116, 117, 116, 117, 36, 116, 117, + 117, 116, 117, 116, 117, 117, 117, 116, 117, 115, + 5, 3, 8, 17, 16, 12, 21, 21, 22, 21, + 22, 121, 122, 128, 113, 114, 27, 119, 118, 116, + 117, 31, 116, 117, 32, 116, 117, 116, 117, 116, + 117, 116, 117, 36, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 53, 116, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 117, 117, 116, 117, 116, - + 116, 117, 116, 117, 116, 117, 53, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 76, 116, 117, 77, 116, 117, 116, 117, 117, - 116, 117, 116, 117, 116, 117, 117, 116, 117, 87, + 117, 117, 117, 116, 117, 116, 117, 116, 117, 116, + + 117, 116, 117, 116, 117, 116, 117, 76, 116, 117, + 77, 116, 117, 116, 117, 117, 116, 117, 116, 117, + 116, 117, 117, 116, 117, 87, 116, 117, 116, 117, + 116, 117, 116, 117, 117, 116, 117, 116, 117, 116, + 117, 95, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 117, 116, - 117, 116, 117, 116, 117, 95, 116, 117, 116, 117, + 117, 116, 117, 116, 117, 117, 117, 117, 116, 117, + 13, 21, 22, 20, 21, 22, 26, 25, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 116, 117, 117, 116, 117, 116, 117, 116, 117, 117, - 117, 117, 116, 117, 13, 21, 22, 20, 21, 22, - 26, 25, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 116, 117, 116, 117, 116, 117, 61, 116, 117, 117, - 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 116, 117, 116, 117, 79, - 116, 117, 117, 116, 117, 116, 117, 116, 117, 117, - 116, 117, 116, 117, 116, 117, 116, 117, 117, 92, - 116, 117, 116, 117, 116, 117, 96, 116, 117, 116, - 117, 116, 117, 116, 117, 100, 116, 117, 102, 116, - 117, 116, 117, 117, 116, 117, 116, 117, 116, 117, - - 116, 117, 116, 117, 117, 117, 117, 112, 116, 117, - 21, 22, 116, 117, 116, 117, 116, 117, 35, 116, - 117, 117, 116, 117, 116, 117, 116, 117, 42, 116, + 116, 117, 61, 116, 117, 117, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 116, 117, 60, 116, 117, - 117, 117, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 117, 116, 117, 83, 116, 117, 116, - 117, 117, 116, 117, 116, 117, 116, 117, 116, 117, - - 117, 116, 117, 116, 117, 116, 117, 116, 117, 117, - 116, 117, 117, 104, 116, 117, 116, 117, 116, 117, - 117, 116, 117, 117, 117, 117, 21, 22, 30, 116, + 117, 116, 117, 116, 117, 79, 116, 117, 117, 116, 117, 116, 117, 116, 117, 117, 116, 117, 116, 117, - 41, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 116, 117, 116, 117, 117, 92, 116, 117, 116, 117, + 116, 117, 96, 116, 117, 116, 117, 116, 117, 116, + 117, 100, 116, 117, 102, 116, 117, 116, 117, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + + 117, 117, 117, 112, 116, 117, 21, 22, 116, 117, + 116, 117, 116, 117, 35, 116, 117, 117, 116, 117, + 116, 117, 116, 117, 42, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 55, 116, 117, 116, 117, 116, 117, - 116, 117, 116, 117, 117, 117, 117, 116, 117, 116, + 117, 116, 117, 60, 116, 117, 117, 117, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 117, + 116, 117, 83, 116, 117, 116, 117, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 117, 116, 117, 116, - 81, 116, 117, 116, 117, 117, 116, 117, 116, 117, - 116, 117, 116, 117, 117, 116, 117, 116, 117, 97, - 116, 117, 98, 116, 117, 117, 116, 117, 117, 105, - 116, 117, 116, 117, 117, 117, 117, 117, 117, 21, - 22, 116, 117, 116, 117, 117, 38, 116, 117, 116, - 117, 116, 117, 116, 117, 116, 117, 47, 116, 117, - 48, 116, 117, 116, 117, 116, 117, 51, 116, 117, - 116, 117, 116, 117, 116, 117, 57, 116, 117, 116, - 117, 116, 117, 117, 117, 117, 116, 117, 116, 117, - 68, 116, 117, 69, 116, 117, 116, 117, 116, 117, - - 116, 117, 73, 116, 117, 116, 117, 116, 117, 116, - 117, 117, 116, 117, 117, 86, 116, 117, 116, 117, - 89, 116, 117, 91, 116, 117, 117, 116, 117, 116, - 117, 117, 116, 117, 117, 116, 117, 108, 117, 117, - 117, 117, 117, 21, 22, 116, 117, 116, 117, 117, + 117, 116, 117, 116, 117, 117, 116, 117, 117, 104, + 116, 117, 116, 117, 116, 117, 117, 116, 117, 117, + 117, 117, 125, 21, 22, 30, 116, 117, 116, 117, + 116, 117, 117, 116, 117, 116, 117, 41, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 55, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 117, 117, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 50, 116, 117, 116, 117, 116, 117, 56, 116, 117, - 116, 117, 59, 116, 117, 117, 117, 117, 117, 116, - 117, 67, 116, 117, 70, 116, 117, 71, 116, 117, - 116, 117, 116, 117, 117, 116, 117, 117, 85, 116, - - 117, 117, 116, 117, 117, 116, 117, 94, 116, 117, - 117, 116, 117, 117, 116, 117, 117, 117, 117, 117, - 21, 22, 116, 117, 34, 116, 117, 37, 117, 40, - 116, 117, 43, 116, 117, 116, 117, 116, 117, 116, - 117, 116, 117, 116, 117, 116, 117, 117, 117, 117, - 65, 117, 116, 117, 116, 117, 116, 117, 117, 116, - 117, 117, 117, 116, 117, 117, 116, 117, 99, 117, - 116, 117, 117, 106, 116, 117, 117, 117, 117, 117, - 21, 116, 117, 44, 116, 117, 116, 117, 46, 116, - 117, 116, 117, 116, 117, 54, 116, 117, 116, 117, - - 117, 117, 117, 66, 116, 117, 116, 117, 116, 117, - 117, 116, 117, 117, 117, 116, 117, 117, 116, 117, - 116, 117, 117, 109, 117, 117, 117, 117, 21, 33, - 116, 117, 45, 116, 117, 49, 116, 117, 116, 117, - 116, 117, 117, 117, 117, 116, 117, 116, 117, 117, - 116, 117, 117, 117, 116, 117, 117, 116, 117, 116, - 117, 117, 117, 117, 117, 21, 116, 117, 116, 117, - 117, 117, 117, 72, 116, 117, 74, 116, 117, 75, - 117, 116, 117, 117, 117, 116, 117, 117, 93, 116, - 117, 116, 117, 117, 117, 117, 117, 21, 116, 117, - - 58, 116, 117, 63, 117, 117, 64, 117, 116, 117, - 80, 117, 117, 88, 116, 117, 117, 116, 117, 101, - 117, 117, 117, 111, 117, 21, 116, 117, 117, 78, - 116, 117, 117, 117, 116, 117, 117, 110, 117, 21, - 116, 117, 62, 117, 117, 90, 117, 103, 116, 117, - 107, 117, 21, 52, 116, 117, 82, 117, 19, 21 + 116, 117, 116, 117, 116, 117, 117, 81, 116, 117, + + 116, 117, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 117, 116, 117, 116, 117, 97, 116, 117, 98, + 116, 117, 117, 116, 117, 117, 105, 116, 117, 116, + 117, 117, 117, 117, 117, 117, 21, 22, 116, 117, + 116, 117, 117, 38, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 47, 116, 117, 48, 116, 117, + 116, 117, 116, 117, 51, 116, 117, 116, 117, 116, + 117, 116, 117, 57, 116, 117, 116, 117, 116, 117, + 117, 117, 117, 116, 117, 116, 117, 68, 116, 117, + 69, 116, 117, 116, 117, 116, 117, 116, 117, 73, + + 116, 117, 116, 117, 116, 117, 116, 117, 117, 116, + 117, 117, 86, 116, 117, 116, 117, 89, 116, 117, + 91, 116, 117, 117, 116, 117, 116, 117, 117, 116, + 117, 117, 116, 117, 108, 117, 117, 117, 117, 117, + 21, 22, 116, 117, 116, 117, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 50, 116, 117, + 116, 117, 116, 117, 56, 116, 117, 116, 117, 59, + 116, 117, 117, 117, 117, 117, 116, 117, 67, 116, + 117, 70, 116, 117, 71, 116, 117, 116, 117, 116, + 117, 117, 116, 117, 117, 85, 116, 117, 117, 116, + + 117, 117, 116, 117, 94, 116, 117, 117, 116, 117, + 117, 116, 117, 117, 117, 117, 117, 21, 22, 116, + 117, 34, 116, 117, 37, 117, 40, 116, 117, 43, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 117, 117, 117, 65, 117, 116, + 117, 116, 117, 116, 117, 117, 116, 117, 117, 117, + 116, 117, 117, 116, 117, 99, 117, 116, 117, 117, + 106, 116, 117, 117, 117, 117, 117, 126, 21, 116, + 117, 44, 116, 117, 116, 117, 46, 116, 117, 116, + 117, 116, 117, 54, 116, 117, 116, 117, 117, 117, + + 117, 66, 116, 117, 116, 117, 116, 117, 117, 116, + 117, 117, 117, 116, 117, 117, 116, 117, 116, 117, + 117, 109, 117, 117, 117, 117, 21, 33, 116, 117, + 45, 116, 117, 49, 116, 117, 116, 117, 116, 117, + 117, 117, 117, 116, 117, 116, 117, 117, 116, 117, + 117, 117, 116, 117, 117, 116, 117, 116, 117, 117, + 117, 117, 117, 21, 116, 117, 116, 117, 117, 117, + 117, 72, 116, 117, 74, 116, 117, 75, 117, 116, + 117, 117, 117, 116, 117, 117, 93, 116, 117, 116, + 117, 117, 117, 117, 117, 21, 116, 117, 58, 116, + + 117, 63, 117, 117, 64, 117, 116, 117, 80, 117, + 117, 88, 116, 117, 117, 116, 117, 101, 117, 117, + 117, 111, 117, 21, 116, 117, 117, 78, 116, 117, + 117, 117, 116, 117, 117, 110, 117, 21, 116, 117, + 62, 117, 117, 90, 117, 103, 116, 117, 107, 117, + 21, 52, 116, 117, 82, 117, 19, 21 } ; -static yyconst short int yy_accept[672] = +static yyconst short int yy_accept[690] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 7, 9, 12, 15, 18, 20, 23, 25, 28, 30, 33, 36, 39, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, - 120, 123, 127, 130, 132, 135, 138, 142, 144, 147, - 150, 153, 155, 158, 161, 163, 166, 169, 172, 175, - 179, 182, 184, 189, 194, 197, 200, 202, 204, 207, - 207, 208, 209, 210, 210, 211, 211, 212, 212, 212, - 213, 214, 215, 216, 217, 217, 219, 221, 223, 225, - - 227, 229, 230, 232, 234, 236, 238, 241, 243, 245, - 247, 249, 251, 253, 255, 257, 259, 260, 261, 263, - 265, 267, 269, 271, 273, 275, 277, 278, 280, 282, - 285, 287, 288, 290, 292, 294, 296, 297, 299, 301, - 303, 305, 307, 309, 311, 313, 315, 316, 318, 320, - 321, 322, 324, 325, 326, 327, 328, 329, 330, 331, - 331, 332, 334, 336, 337, 338, 339, 339, 340, 341, - 341, 341, 342, 343, 344, 346, 349, 352, 354, 356, - 358, 361, 363, 365, 367, 369, 371, 373, 375, 377, - 379, 381, 384, 386, 388, 390, 392, 394, 396, 397, - - 398, 400, 402, 404, 406, 408, 410, 412, 415, 418, - 420, 421, 423, 425, 427, 428, 430, 433, 435, 437, - 439, 440, 442, 444, 446, 449, 451, 453, 455, 457, - 459, 461, 463, 464, 466, 468, 470, 471, 472, 473, - 475, 476, 478, 481, 481, 482, 483, 485, 487, 489, - 491, 493, 495, 497, 499, 501, 503, 505, 507, 509, - 511, 513, 515, 517, 519, 521, 523, 525, 527, 530, - 531, 532, 534, 536, 538, 540, 542, 544, 546, 548, - 550, 553, 554, 556, 558, 560, 561, 563, 565, 567, - 569, 570, 573, 575, 577, 580, 582, 584, 586, 589, - - 592, 594, 595, 597, 599, 601, 603, 605, 606, 607, - 608, 611, 613, 615, 617, 619, 622, 623, 625, 627, - 629, 632, 634, 636, 638, 640, 642, 644, 646, 648, - 650, 652, 654, 656, 658, 661, 662, 663, 664, 666, - 668, 670, 672, 674, 676, 678, 680, 682, 684, 685, - 687, 690, 692, 693, 695, 697, 699, 701, 702, 704, - 706, 708, 710, 711, 713, 714, 717, 719, 721, 722, - 724, 725, 726, 727, 729, 732, 734, 736, 737, 739, - 741, 744, 746, 748, 750, 752, 754, 756, 758, 760, - 762, 764, 767, 769, 771, 773, 775, 776, 777, 778, - - 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, - 800, 801, 804, 806, 807, 809, 811, 813, 815, 816, - 818, 820, 823, 826, 827, 829, 830, 833, 835, 836, - 837, 838, 839, 840, 842, 844, 846, 847, 850, 852, - 854, 856, 858, 861, 864, 866, 868, 871, 873, 875, - 877, 880, 882, 884, 885, 886, 887, 889, 891, 894, - 897, 899, 901, 903, 906, 908, 910, 912, 913, 915, - 916, 919, 921, 924, 927, 928, 930, 932, 933, 935, - 936, 938, 940, 941, 942, 943, 944, 946, 948, 950, - 951, 953, 955, 957, 959, 961, 964, 966, 968, 971, - - 973, 976, 977, 978, 979, 980, 982, 985, 988, 991, - 993, 995, 996, 998, 999, 1002, 1003, 1005, 1006, 1008, - 1011, 1012, 1014, 1015, 1017, 1018, 1019, 1020, 1021, 1023, - 1025, 1028, 1030, 1033, 1036, 1038, 1040, 1042, 1044, 1046, - 1048, 1049, 1050, 1051, 1053, 1055, 1057, 1059, 1060, 1062, - 1063, 1064, 1066, 1067, 1069, 1071, 1073, 1074, 1077, 1078, - 1079, 1080, 1081, 1082, 1084, 1087, 1089, 1092, 1094, 1096, - 1099, 1101, 1102, 1103, 1104, 1107, 1109, 1111, 1112, 1114, - 1115, 1116, 1118, 1119, 1121, 1123, 1124, 1126, 1127, 1128, - 1129, 1130, 1133, 1136, 1139, 1141, 1143, 1144, 1145, 1146, - - 1148, 1150, 1151, 1153, 1154, 1155, 1157, 1158, 1160, 1162, - 1163, 1164, 1165, 1166, 1167, 1169, 1171, 1172, 1173, 1174, - 1177, 1180, 1182, 1184, 1185, 1186, 1188, 1189, 1192, 1194, - 1195, 1196, 1197, 1198, 1199, 1201, 1204, 1206, 1207, 1209, - 1211, 1213, 1214, 1217, 1218, 1220, 1222, 1223, 1224, 1226, - 1227, 1229, 1230, 1233, 1234, 1235, 1237, 1238, 1240, 1241, - 1243, 1245, 1246, 1248, 1251, 1253, 1254, 1257, 1259, 1261, - 1261 + 120, 123, 126, 128, 131, 134, 138, 140, 143, 146, + 149, 151, 154, 157, 159, 162, 165, 168, 171, 175, + 178, 180, 185, 190, 193, 196, 198, 200, 203, 203, + 204, 205, 206, 206, 207, 207, 208, 208, 208, 209, + 210, 211, 212, 213, 213, 215, 217, 219, 221, 223, + + 225, 226, 228, 230, 232, 234, 237, 239, 241, 243, + 245, 247, 249, 251, 253, 255, 256, 257, 259, 261, + 263, 265, 267, 269, 271, 273, 274, 276, 278, 281, + 283, 284, 286, 288, 290, 292, 293, 295, 297, 299, + 301, 303, 305, 307, 309, 311, 312, 314, 316, 317, + 318, 320, 321, 321, 321, 321, 322, 323, 324, 325, + 326, 327, 327, 328, 330, 332, 333, 334, 335, 335, + 336, 337, 337, 337, 338, 339, 340, 342, 345, 348, + 350, 352, 354, 357, 359, 361, 363, 365, 367, 369, + 371, 373, 375, 377, 380, 382, 384, 386, 388, 390, + + 392, 393, 394, 396, 398, 400, 402, 404, 406, 408, + 411, 414, 416, 417, 419, 421, 423, 424, 426, 429, + 431, 433, 435, 436, 438, 440, 442, 445, 447, 449, + 451, 453, 455, 457, 459, 460, 462, 464, 466, 467, + 468, 469, 471, 471, 471, 472, 474, 477, 477, 478, + 479, 481, 483, 485, 487, 489, 491, 493, 495, 497, + 499, 501, 503, 505, 507, 509, 511, 513, 515, 517, + 519, 521, 523, 526, 527, 528, 530, 532, 534, 536, + 538, 540, 542, 544, 546, 549, 550, 552, 554, 556, + 557, 559, 561, 563, 565, 566, 569, 571, 573, 576, + + 578, 580, 582, 585, 588, 590, 591, 593, 595, 597, + 599, 601, 602, 603, 604, 607, 607, 607, 607, 607, + 609, 611, 613, 615, 618, 619, 621, 623, 625, 628, + 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, + 650, 652, 654, 657, 658, 659, 660, 662, 664, 666, + 668, 670, 672, 674, 676, 678, 680, 681, 683, 686, + 688, 689, 691, 693, 695, 697, 698, 700, 702, 704, + 706, 707, 709, 710, 713, 715, 717, 718, 720, 721, + 722, 723, 723, 723, 724, 726, 729, 731, 733, 734, + 736, 738, 741, 743, 745, 747, 749, 751, 753, 755, + + 757, 759, 761, 764, 766, 768, 770, 772, 773, 774, + 775, 777, 779, 781, 783, 785, 787, 789, 791, 793, + 795, 797, 798, 801, 803, 804, 806, 808, 810, 812, + 813, 815, 817, 820, 823, 824, 826, 827, 830, 832, + 833, 834, 835, 836, 837, 837, 837, 839, 841, 843, + 844, 847, 849, 851, 853, 855, 858, 861, 863, 865, + 868, 870, 872, 874, 877, 879, 881, 882, 883, 884, + 886, 888, 891, 894, 896, 898, 900, 903, 905, 907, + 909, 910, 912, 913, 916, 918, 921, 924, 925, 927, + 929, 930, 932, 933, 935, 937, 938, 939, 940, 941, + + 941, 943, 945, 947, 948, 950, 952, 954, 956, 958, + 961, 963, 965, 968, 970, 973, 974, 975, 976, 977, + 979, 982, 985, 988, 990, 992, 993, 995, 996, 999, + 1000, 1002, 1003, 1005, 1008, 1009, 1011, 1012, 1014, 1015, + 1016, 1017, 1018, 1018, 1018, 1020, 1022, 1025, 1027, 1030, + 1033, 1035, 1037, 1039, 1041, 1043, 1045, 1046, 1047, 1048, + 1050, 1052, 1054, 1056, 1057, 1059, 1060, 1061, 1063, 1064, + 1066, 1068, 1070, 1071, 1074, 1075, 1076, 1077, 1078, 1078, + 1079, 1080, 1082, 1085, 1087, 1090, 1092, 1094, 1097, 1099, + 1100, 1101, 1102, 1105, 1107, 1109, 1110, 1112, 1113, 1114, + + 1116, 1117, 1119, 1121, 1122, 1124, 1125, 1126, 1127, 1128, + 1131, 1134, 1137, 1139, 1141, 1142, 1143, 1144, 1146, 1148, + 1149, 1151, 1152, 1153, 1155, 1156, 1158, 1160, 1161, 1162, + 1163, 1164, 1165, 1167, 1169, 1170, 1171, 1172, 1175, 1178, + 1180, 1182, 1183, 1184, 1186, 1187, 1190, 1192, 1193, 1194, + 1195, 1196, 1197, 1199, 1202, 1204, 1205, 1207, 1209, 1211, + 1212, 1215, 1216, 1218, 1220, 1221, 1222, 1224, 1225, 1227, + 1228, 1231, 1232, 1233, 1235, 1236, 1238, 1239, 1241, 1243, + 1244, 1246, 1249, 1251, 1252, 1255, 1257, 1259, 1259 } ; static yyconst int yy_ec[256] = @@ -540,16 +541,16 @@ static yyconst int yy_ec[256] = 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 6, 1, 1, 1, 7, 8, 9, - 9, 10, 1, 9, 11, 12, 13, 14, 15, 16, - 16, 17, 18, 19, 16, 20, 16, 21, 22, 23, - 24, 1, 1, 9, 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, - 9, 1, 51, 52, 1, 1, 53, 54, 55, 56, - - 57, 58, 59, 60, 61, 62, 58, 63, 64, 65, - 66, 67, 58, 68, 69, 70, 71, 72, 58, 73, - 58, 74, 75, 76, 77, 1, 1, 1, 1, 1, + 9, 10, 1, 11, 12, 13, 14, 15, 16, 17, + 17, 18, 19, 20, 17, 21, 22, 23, 24, 25, + 26, 1, 1, 9, 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, + 9, 1, 53, 54, 1, 1, 55, 56, 57, 58, + + 59, 60, 61, 62, 63, 64, 60, 65, 66, 67, + 68, 69, 60, 70, 71, 72, 73, 74, 60, 75, + 60, 76, 77, 78, 79, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -566,659 +567,696 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[78] = +static yyconst int yy_meta[80] = { 0, 1, 2, 3, 3, 1, 4, 5, 6, 1, 1, - 7, 1, 1, 8, 8, 8, 8, 8, 8, 8, - 9, 1, 1, 9, 8, 8, 8, 8, 8, 8, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 1, 1, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 11, 1, 11 + 7, 8, 1, 1, 9, 9, 9, 9, 9, 9, + 9, 9, 10, 1, 1, 10, 11, 11, 11, 11, + 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 1, 1, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 13, 1, 14 } ; -static yyconst short int yy_base[689] = +static yyconst short int yy_base[709] = { 0, - 0, 0, 75, 77, 79, 80, 81, 88, 82, 92, - 169, 246, 108, 119, 797, 777, 94, 97, 775, 774, - 316, 116, 4266, 117, 767, 99, 4266, 124, 751, 4266, - 380, 173, 191, 120, 236, 254, 269, 188, 275, 430, - 431, 447, 453, 468, 474, 490, 498, 514, 515, 762, - 0, 760, 0, 4266, 4266, 756, 4266, 4266, 753, 754, - 0, 0, 757, 0, 0, 740, 4266, 4266, 4266, 0, - 4266, 4266, 575, 651, 0, 148, 151, 256, 4266, 746, - 159, 0, 745, 743, 0, 95, 0, 325, 739, 4266, - 223, 733, 4266, 550, 715, 564, 565, 580, 593, 596, - - 609, 0, 640, 643, 656, 669, 680, 696, 704, 717, - 720, 733, 748, 754, 751, 769, 673, 684, 784, 787, - 795, 810, 821, 832, 838, 849, 669, 862, 865, 878, - 886, 669, 889, 902, 913, 926, 667, 942, 948, 959, - 965, 976, 991, 992, 1007, 1008, 663, 1023, 1024, 663, - 58, 1039, 0, 0, 4266, 4266, 0, 4266, 0, 699, - 0, 681, 159, 0, 201, 4266, 706, 0, 0, 163, - 683, 1071, 4266, 4266, 1066, 1067, 1082, 1083, 1098, 1106, - 1109, 1122, 1130, 1138, 1146, 1159, 1167, 1170, 1191, 1192, - 1207, 1213, 1224, 1230, 1241, 1247, 1258, 1269, 656, 645, - - 1282, 1290, 1293, 1308, 1311, 1314, 1338, 1332, 1335, 1353, - 654, 1356, 1371, 1377, 653, 1388, 1399, 1405, 1416, 1427, - 639, 1438, 1444, 1455, 1461, 1476, 1477, 1492, 1503, 1509, - 1524, 1530, 643, 1541, 1552, 1563, 627, 641, 636, 1574, - 4266, 162, 655, 640, 4266, 4266, 1585, 1591, 1602, 1608, - 1619, 1625, 1641, 1642, 1657, 1665, 1673, 1689, 1686, 1697, - 1710, 1713, 1728, 1734, 1745, 1751, 1762, 1777, 1783, 622, - 626, 1794, 1800, 1815, 1816, 1831, 1837, 1852, 1855, 1863, - 1876, 616, 1884, 1887, 1900, 622, 1908, 1924, 1923, 1940, - 600, 1941, 1956, 1969, 1977, 1980, 1998, 1995, 2001, 2016, - - 2019, 598, 2022, 2037, 2040, 2048, 2061, 610, 599, 601, - 2072, 187, 2085, 2088, 2106, 2109, 582, 2112, 2129, 2132, - 2140, 2153, 2161, 2169, 2182, 2190, 2203, 2211, 2219, 2227, - 2242, 2248, 2259, 2265, 2280, 595, 585, 576, 2281, 2301, - 2298, 2319, 2318, 2334, 2340, 2351, 2362, 2373, 582, 2379, - 2390, 2396, 570, 2407, 2418, 2424, 2435, 586, 2448, 2451, - 2459, 2472, 569, 2483, 573, 2489, 2504, 2505, 564, 2520, - 556, 553, 558, 227, 2526, 2542, 2548, 556, 2559, 2565, - 2576, 2582, 2598, 2599, 2614, 2625, 2631, 2648, 2654, 2665, - 2671, 2682, 2688, 2699, 2705, 2721, 552, 559, 552, 2722, - - 2737, 2743, 2754, 2760, 2775, 2781, 2792, 2807, 2813, 2824, - 557, 2835, 2841, 583, 2852, 2858, 2869, 2882, 553, 2890, - 2905, 2908, 2911, 534, 2926, 521, 2929, 2932, 536, 524, - 520, 522, 521, 539, 2947, 2960, 509, 2963, 2978, 2984, - 2995, 3001, 3012, 3018, 3029, 3040, 3046, 3057, 3063, 3074, - 3085, 3091, 3102, 105, 530, 507, 3108, 3119, 3130, 3136, - 3147, 3153, 3168, 3169, 3184, 3190, 3201, 528, 3207, 505, - 3218, 3229, 3235, 3246, 498, 3252, 3267, 493, 3273, 514, - 3289, 0, 495, 496, 473, 502, 251, 3290, 3305, 485, - 3311, 3322, 3333, 3339, 3350, 3356, 3372, 3371, 3387, 3388, - - 3403, 467, 459, 461, 470, 3409, 3420, 3426, 3437, 3443, - 3454, 459, 3465, 455, 3471, 453, 3482, 463, 3493, 3499, - 458, 3510, 441, 3516, 440, 436, 453, 420, 196, 3527, - 3533, 0, 3544, 3550, 3565, 3566, 3581, 3582, 3597, 3598, - 420, 429, 416, 0, 3613, 3621, 3636, 421, 3637, 412, - 417, 3652, 422, 3660, 0, 3668, 396, 3681, 403, 418, - 390, 391, 431, 3684, 3692, 3705, 3708, 3716, 3729, 3737, - 3745, 371, 375, 343, 3753, 3761, 3769, 338, 3777, 341, - 333, 3785, 323, 3793, 3801, 331, 0, 297, 268, 274, - 295, 3809, 3817, 3825, 3833, 3841, 267, 287, 265, 3854, - - 3862, 266, 3870, 254, 256, 3878, 248, 3891, 3894, 245, - 238, 243, 237, 255, 3902, 3915, 232, 227, 228, 3918, - 3931, 0, 3939, 227, 218, 3942, 222, 3959, 3960, 218, - 210, 201, 204, 217, 3975, 3976, 0, 171, 0, 3992, - 0, 162, 3993, 154, 4010, 0, 151, 149, 0, 146, - 4018, 127, 4026, 102, 105, 4034, 86, 0, 90, 4042, - 0, 40, 0, 4055, 0, 68, 4058, 0, 0, 4266, - 4103, 4114, 4125, 4136, 4147, 4158, 4169, 4179, 4181, 4191, - 4202, 4213, 4223, 4233, 4243, 4247, 4251, 4255 + 0, 0, 77, 79, 82, 83, 81, 92, 85, 91, + 170, 249, 120, 126, 852, 843, 97, 117, 837, 835, + 321, 132, 4544, 133, 828, 94, 4544, 170, 814, 4544, + 386, 178, 193, 239, 250, 266, 277, 118, 293, 436, + 437, 453, 459, 474, 480, 497, 500, 515, 523, 0, + 569, 0, 4544, 4544, 822, 4544, 4544, 811, 814, 0, + 0, 803, 0, 0, 784, 4544, 4544, 4544, 0, 4544, + 4544, 591, 669, 0, 135, 140, 107, 4544, 800, 208, + 0, 797, 791, 0, 174, 0, 604, 784, 4544, 606, + 778, 4544, 614, 764, 609, 610, 625, 659, 626, 658, + + 0, 674, 687, 690, 698, 713, 716, 734, 731, 747, + 755, 770, 776, 773, 791, 721, 731, 802, 808, 819, + 825, 836, 847, 853, 864, 718, 877, 880, 893, 901, + 718, 904, 917, 928, 941, 717, 957, 963, 974, 980, + 991, 997, 1008, 1014, 1025, 712, 1031, 1047, 705, 32, + 1046, 0, 1093, 1105, 1117, 0, 4544, 4544, 0, 4544, + 0, 741, 0, 726, 236, 0, 234, 4544, 753, 0, + 0, 78, 730, 1083, 4544, 4544, 1112, 1113, 1128, 1129, + 1144, 1152, 1155, 1168, 1176, 1184, 1192, 1205, 1213, 1216, + 1237, 1238, 1253, 1259, 1270, 1276, 1287, 1293, 1304, 1315, + + 693, 681, 1328, 1336, 1339, 1354, 1357, 1360, 1385, 1382, + 1388, 1403, 690, 1406, 1421, 1427, 689, 1438, 1449, 1455, + 1466, 1477, 679, 1488, 1494, 1505, 1511, 1526, 1527, 1542, + 1553, 1559, 1574, 1580, 683, 1591, 1602, 1615, 661, 672, + 661, 1618, 1664, 1672, 4544, 69, 680, 666, 4544, 4544, + 1631, 1667, 1673, 1688, 1689, 1706, 1705, 1722, 1728, 1739, + 1750, 1766, 1763, 1774, 1787, 1790, 1805, 1811, 1822, 1828, + 1839, 1854, 1860, 647, 651, 1871, 1877, 1892, 1893, 1908, + 1914, 1929, 1942, 1950, 1958, 641, 1973, 1976, 1989, 651, + 1997, 2012, 2015, 2033, 631, 2030, 2036, 2053, 2059, 2070, + + 2076, 2087, 2093, 2104, 2110, 619, 2125, 2126, 2143, 2142, + 2159, 631, 621, 632, 2160, 2206, 824, 2214, 2226, 86, + 2211, 2226, 2232, 2243, 615, 2249, 2264, 2267, 2275, 2288, + 2296, 2304, 2317, 2325, 2338, 2346, 2354, 2362, 2377, 2383, + 2394, 2400, 2415, 629, 608, 592, 2416, 2436, 2433, 2454, + 2453, 2469, 2475, 2486, 2492, 2507, 598, 2510, 2513, 2530, + 588, 2531, 2546, 2552, 2563, 604, 2576, 2579, 2587, 2600, + 588, 2611, 587, 2617, 2632, 2633, 577, 2648, 572, 569, + 575, 239, 2681, 4544, 78, 2666, 2683, 2686, 576, 2689, + 2706, 2707, 2727, 2733, 2744, 2750, 2765, 2771, 2788, 2794, + + 2805, 2811, 2822, 2828, 2839, 2845, 2861, 553, 556, 548, + 2862, 2877, 2883, 2894, 2900, 2915, 2921, 2932, 2947, 2953, + 2964, 553, 2975, 2981, 565, 2992, 2998, 3009, 3022, 538, + 3030, 3045, 3048, 3051, 530, 3066, 508, 3069, 3072, 523, + 511, 509, 520, 518, 3118, 3130, 536, 3115, 3128, 508, + 3131, 3146, 3152, 3163, 3169, 3180, 3186, 3197, 3208, 3214, + 3225, 3231, 3242, 3253, 3259, 3270, 159, 529, 502, 3276, + 3287, 3298, 3304, 3315, 3321, 3336, 3337, 3352, 3358, 3369, + 523, 3375, 507, 3386, 3397, 3403, 3414, 499, 3420, 3435, + 493, 3441, 514, 3457, 0, 491, 497, 475, 504, 3490, + + 126, 3485, 3486, 475, 3501, 3509, 3512, 3525, 3533, 3541, + 3554, 3562, 3570, 3578, 3586, 458, 447, 447, 452, 3599, + 3607, 3610, 3623, 3631, 3634, 437, 3647, 432, 3655, 427, + 3663, 437, 3676, 3679, 433, 3687, 420, 3700, 423, 423, + 435, 401, 3733, 466, 190, 3718, 3729, 0, 3735, 3746, + 3752, 3767, 3768, 3783, 3789, 3800, 402, 408, 396, 0, + 3806, 3817, 3828, 377, 3834, 369, 355, 3845, 366, 3856, + 0, 3862, 340, 3873, 348, 355, 327, 304, 530, 4544, + 317, 3879, 3890, 3901, 3907, 3918, 3929, 3940, 3946, 281, + 285, 279, 3957, 3963, 3974, 274, 3980, 276, 267, 3991, + + 262, 3997, 4008, 267, 0, 253, 252, 253, 273, 4014, + 4025, 4031, 4042, 4048, 245, 265, 242, 4059, 4065, 246, + 4080, 234, 236, 4083, 228, 4086, 4103, 229, 225, 228, + 220, 245, 4106, 4109, 223, 220, 221, 4126, 4127, 0, + 4142, 210, 200, 4143, 205, 4158, 4164, 203, 183, 178, + 183, 193, 4175, 4186, 0, 166, 0, 4192, 0, 154, + 4207, 148, 4210, 0, 147, 147, 0, 163, 4218, 141, + 4233, 101, 106, 4234, 102, 0, 116, 4249, 0, 62, + 0, 4255, 0, 69, 4266, 0, 0, 4544, 4313, 4327, + 4341, 4355, 4369, 4383, 4397, 4410, 4414, 4426, 4440, 4454, + + 4466, 4478, 4490, 4495, 4500, 4505, 4516, 4529 } ; -static yyconst short int yy_def[689] = +static yyconst short int yy_def[709] = { 0, - 670, 1, 671, 671, 672, 672, 673, 673, 674, 674, - 675, 675, 676, 676, 670, 670, 670, 670, 670, 677, - 670, 678, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 670, - 679, 670, 680, 670, 670, 670, 670, 670, 670, 670, - 681, 681, 670, 682, 682, 670, 670, 670, 670, 683, - 670, 670, 684, 684, 685, 670, 670, 21, 670, 670, - 670, 677, 677, 670, 686, 670, 687, 678, 678, 670, - 670, 670, 670, 670, 670, 31, 31, 31, 31, 31, - - 31, 688, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 688, 688, 31, 31, - 31, 31, 31, 31, 31, 31, 688, 31, 31, 31, - 31, 688, 31, 31, 31, 31, 688, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 688, 31, 31, 688, - 688, 31, 679, 680, 670, 670, 681, 670, 682, 670, - 683, 74, 74, 685, 670, 670, 670, 686, 687, 670, - 670, 670, 670, 670, 31, 31, 31, 31, 31, 31, + 688, 1, 689, 689, 690, 690, 691, 691, 692, 692, + 693, 693, 694, 694, 688, 688, 688, 688, 688, 695, + 688, 696, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 697, + 688, 698, 688, 688, 688, 688, 688, 688, 688, 699, + 699, 688, 700, 700, 688, 688, 688, 688, 701, 688, + 688, 702, 702, 703, 688, 688, 21, 688, 688, 688, + 695, 695, 688, 704, 688, 705, 696, 696, 688, 688, + 688, 688, 688, 688, 31, 31, 31, 31, 31, 31, + + 706, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 706, 706, 31, 31, 31, + 31, 31, 31, 31, 31, 706, 31, 31, 31, 31, + 706, 31, 31, 31, 31, 706, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 706, 31, 31, 706, 706, + 31, 697, 688, 688, 688, 698, 688, 688, 699, 688, + 700, 688, 701, 73, 73, 703, 688, 688, 688, 704, + 705, 688, 688, 688, 688, 688, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 688, 688, + 706, 706, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 706, 31, 31, 31, 706, 31, 31, 31, + 31, 31, 706, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 706, 31, 31, 31, 706, 706, + 706, 31, 688, 688, 688, 73, 73, 688, 688, 688, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 688, 31, 31, 31, 688, 31, 31, 31, 31, 31, - 688, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 688, 31, 31, 31, 688, 688, 688, 31, - 670, 74, 74, 670, 670, 670, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 688, - 688, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 688, 31, 31, 31, 688, 31, 31, 31, 31, - 688, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 706, 706, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 706, 31, 31, 31, 706, + 31, 31, 31, 31, 706, 31, 31, 31, 31, 31, - 31, 688, 31, 31, 31, 31, 31, 688, 688, 688, - 31, 74, 31, 31, 31, 31, 688, 31, 31, 31, + 31, 31, 31, 31, 31, 706, 31, 31, 31, 31, + 31, 706, 706, 706, 31, 688, 707, 688, 688, 73, + 31, 31, 31, 31, 706, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 688, 688, 688, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 688, 31, - 31, 31, 688, 31, 31, 31, 31, 688, 31, 31, - 31, 31, 688, 31, 688, 31, 31, 31, 688, 31, - 688, 688, 688, 74, 31, 31, 31, 688, 31, 31, + 31, 31, 31, 706, 706, 706, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 706, 31, 31, 31, + 706, 31, 31, 31, 31, 706, 31, 31, 31, 31, + 706, 31, 706, 31, 31, 31, 706, 31, 706, 706, + 706, 688, 688, 688, 73, 31, 31, 31, 706, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 688, 688, 688, 31, + 31, 31, 31, 31, 31, 31, 31, 706, 706, 706, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 688, 31, 31, 688, 31, 31, 31, 31, 688, 31, - 31, 31, 31, 688, 31, 688, 31, 31, 688, 688, - 688, 688, 688, 74, 31, 31, 688, 31, 31, 31, + 31, 706, 31, 31, 706, 31, 31, 31, 31, 706, + 31, 31, 31, 31, 706, 31, 706, 31, 31, 706, + 706, 706, 706, 706, 688, 688, 73, 31, 31, 706, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 688, 688, 688, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 688, 31, 688, - 31, 31, 31, 31, 688, 31, 31, 688, 31, 688, - 31, 688, 688, 688, 688, 688, 74, 31, 31, 688, + 31, 31, 31, 31, 31, 31, 706, 706, 706, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - - 31, 688, 688, 688, 688, 31, 31, 31, 31, 31, - 31, 688, 31, 688, 31, 688, 31, 688, 31, 31, - 688, 31, 688, 31, 688, 688, 688, 688, 74, 31, - 31, 688, 31, 31, 31, 31, 31, 31, 31, 31, - 688, 688, 688, 688, 31, 31, 31, 688, 31, 688, - 688, 31, 688, 31, 688, 31, 688, 31, 688, 688, - 688, 688, 683, 31, 31, 31, 31, 31, 31, 31, - 31, 688, 688, 688, 31, 31, 31, 688, 31, 688, - 688, 31, 688, 31, 31, 688, 688, 688, 688, 688, - 683, 31, 31, 31, 31, 31, 688, 688, 688, 31, - - 31, 688, 31, 688, 688, 31, 688, 31, 31, 688, - 688, 688, 688, 683, 31, 31, 688, 688, 688, 31, - 31, 688, 31, 688, 688, 31, 688, 31, 31, 688, - 688, 688, 688, 683, 31, 31, 688, 688, 688, 31, - 688, 688, 31, 688, 31, 688, 688, 688, 688, 683, - 31, 688, 31, 688, 688, 31, 688, 688, 683, 31, - 688, 688, 688, 31, 688, 683, 31, 688, 683, 0, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670 + 706, 31, 706, 31, 31, 31, 31, 706, 31, 31, + 706, 31, 706, 31, 706, 706, 706, 706, 706, 688, + + 73, 31, 31, 706, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 706, 706, 706, 706, 31, + 31, 31, 31, 31, 31, 706, 31, 706, 31, 706, + 31, 706, 31, 31, 706, 31, 706, 31, 706, 706, + 706, 706, 688, 708, 73, 31, 31, 706, 31, 31, + 31, 31, 31, 31, 31, 31, 706, 706, 706, 706, + 31, 31, 31, 706, 31, 706, 706, 31, 706, 31, + 706, 31, 706, 31, 706, 706, 706, 706, 688, 688, + 701, 31, 31, 31, 31, 31, 31, 31, 31, 706, + 706, 706, 31, 31, 31, 706, 31, 706, 706, 31, + + 706, 31, 31, 706, 706, 706, 706, 706, 701, 31, + 31, 31, 31, 31, 706, 706, 706, 31, 31, 706, + 31, 706, 706, 31, 706, 31, 31, 706, 706, 706, + 706, 701, 31, 31, 706, 706, 706, 31, 31, 706, + 31, 706, 706, 31, 706, 31, 31, 706, 706, 706, + 706, 701, 31, 31, 706, 706, 706, 31, 706, 706, + 31, 706, 31, 706, 706, 706, 706, 701, 31, 706, + 31, 706, 706, 31, 706, 706, 701, 31, 706, 706, + 706, 31, 706, 701, 31, 706, 701, 0, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + + 688, 688, 688, 688, 688, 688, 688, 688 } ; -static yyconst short int yy_nxt[4344] = +static yyconst short int yy_nxt[4624] = { 0, 16, 17, 18, 17, 19, 20, 21, 22, 23, 16, - 24, 25, 26, 27, 28, 28, 28, 28, 28, 28, - 29, 19, 30, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 38, 38, 38, 40, 41, 42, 43, - 38, 44, 45, 46, 47, 48, 49, 38, 38, 38, - 19, 50, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 23, 52, 23, 54, 55, 54, - 55, 58, 58, 62, 65, 56, 63, 56, 59, 59, - 62, 60, 60, 63, 65, 81, 81, 81, 81, 81, - - 81, 80, 66, 669, 80, 67, 80, 668, 93, 76, - 77, 76, 66, 238, 78, 67, 84, 88, 88, 88, - 76, 77, 76, 80, 80, 78, 239, 90, 666, 88, - 88, 91, 91, 91, 91, 91, 91, 94, 94, 94, - 94, 94, 94, 94, 665, 96, 86, 502, 111, 165, - 165, 165, 165, 165, 165, 96, 68, 96, 69, 96, - 81, 81, 81, 663, 96, 503, 68, 662, 69, 70, - 71, 72, 71, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 30, 661, 79, 242, 243, 659, 245, 70, - 70, 70, 70, 30, 246, 79, 162, 74, 96, 162, - - 312, 103, 165, 165, 165, 104, 563, 658, 96, 105, - 96, 106, 96, 96, 374, 657, 96, 96, 655, 70, - 70, 107, 108, 96, 162, 96, 109, 96, 96, 110, - 96, 654, 96, 162, 652, 96, 172, 172, 172, 172, - 172, 172, 172, 71, 70, 71, 70, 71, 72, 71, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 434, - 650, 96, 649, 670, 162, 648, 70, 70, 70, 70, - 647, 96, 112, 113, 74, 96, 646, 670, 115, 96, - 96, 529, 644, 114, 642, 641, 639, 638, 162, 96, - 637, 96, 634, 96, 96, 116, 70, 70, 96, 119, - - 96, 633, 120, 632, 96, 631, 96, 670, 96, 630, - 96, 121, 122, 96, 96, 627, 625, 123, 624, 96, - 71, 70, 71, 80, 622, 117, 88, 88, 88, 619, - 618, 617, 170, 614, 613, 612, 118, 84, 88, 88, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 611, 86, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 96, 610, 607, 96, 96, 96, 96, 96, 96, 96, - - 605, 604, 602, 599, 96, 97, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 98, 96, 99, 96, 100, - 96, 96, 96, 96, 101, 96, 96, 96, 96, 96, - 598, 597, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 124, 96, 96, 591, 590, 589, - 588, 587, 125, 586, 583, 96, 96, 96, 96, 96, - 96, 581, 128, 129, 96, 126, 130, 133, 96, 580, - 134, 578, 96, 574, 96, 573, 131, 572, 135, 562, - 96, 96, 96, 96, 136, 561, 138, 96, 560, 96, - - 132, 127, 139, 96, 559, 96, 140, 96, 143, 96, - 557, 96, 96, 96, 144, 96, 555, 141, 96, 553, - 137, 551, 142, 96, 550, 96, 548, 96, 544, 96, - 543, 145, 542, 96, 96, 148, 541, 96, 146, 96, - 96, 149, 96, 532, 528, 527, 147, 152, 526, 96, - 96, 96, 96, 96, 96, 525, 523, 521, 96, 96, - 518, 516, 150, 94, 94, 94, 94, 94, 94, 94, - 514, 505, 504, 490, 151, 161, 487, 486, 485, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 484, 96, - 96, 483, 482, 480, 478, 161, 161, 161, 161, 96, - - 96, 96, 96, 96, 96, 96, 475, 175, 96, 96, - 470, 468, 456, 455, 454, 176, 437, 96, 96, 96, - 433, 96, 432, 431, 96, 161, 161, 429, 96, 426, - 96, 96, 96, 96, 96, 178, 424, 96, 419, 414, - 96, 177, 411, 399, 96, 398, 96, 397, 96, 378, - 161, 161, 179, 96, 373, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 372, 96, 371, 365, 96, 358, - 180, 161, 161, 161, 161, 96, 353, 96, 96, 96, - 96, 96, 96, 349, 96, 337, 181, 96, 163, 336, - 166, 96, 162, 96, 96, 182, 310, 309, 308, 302, - - 96, 161, 161, 291, 96, 96, 96, 183, 96, 286, - 282, 271, 270, 96, 246, 96, 244, 96, 162, 96, - 184, 96, 241, 237, 96, 233, 161, 221, 186, 96, - 215, 96, 211, 96, 185, 96, 200, 199, 174, 96, - 96, 96, 96, 96, 173, 96, 171, 167, 96, 189, - 166, 166, 96, 187, 188, 96, 96, 96, 190, 96, - 160, 96, 158, 93, 96, 156, 155, 80, 96, 80, - 96, 95, 96, 96, 191, 192, 96, 96, 92, 96, - 194, 83, 80, 96, 80, 96, 197, 96, 96, 96, - 96, 96, 193, 195, 96, 96, 670, 196, 96, 670, - - 670, 201, 670, 670, 96, 670, 96, 198, 96, 96, - 670, 670, 96, 96, 670, 202, 670, 670, 670, 96, - 96, 96, 96, 96, 96, 670, 96, 670, 96, 670, - 96, 96, 96, 670, 203, 96, 204, 670, 670, 96, - 670, 670, 670, 670, 670, 96, 96, 96, 670, 96, - 670, 670, 205, 206, 96, 670, 96, 96, 96, 207, - 96, 670, 670, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 96, 209, 96, 96, 670, 208, - 670, 670, 96, 670, 210, 670, 96, 96, 96, 670, - 96, 670, 670, 96, 670, 212, 670, 96, 670, 96, - - 96, 96, 96, 96, 96, 670, 96, 670, 213, 96, - 670, 96, 670, 96, 96, 96, 670, 96, 670, 670, - 670, 96, 96, 96, 96, 96, 96, 96, 96, 214, - 96, 670, 216, 96, 670, 670, 670, 96, 96, 96, - 670, 96, 670, 670, 670, 670, 96, 217, 96, 670, - 96, 96, 96, 670, 219, 670, 670, 218, 220, 670, - 670, 96, 670, 96, 670, 96, 222, 96, 670, 670, - 96, 670, 670, 96, 670, 670, 670, 223, 670, 96, - 670, 96, 670, 96, 96, 96, 96, 96, 224, 670, - 96, 225, 96, 670, 96, 670, 96, 670, 96, 670, - - 96, 96, 96, 96, 96, 229, 227, 670, 226, 96, - 670, 96, 670, 228, 670, 96, 96, 96, 670, 670, - 96, 670, 230, 670, 670, 670, 96, 96, 96, 96, - 96, 96, 96, 96, 670, 96, 96, 670, 670, 670, - 670, 670, 96, 96, 96, 96, 96, 232, 96, 96, - 235, 231, 96, 236, 670, 234, 670, 670, 96, 96, - 96, 96, 96, 96, 96, 670, 670, 96, 96, 670, - 670, 670, 670, 670, 96, 670, 96, 670, 96, 670, - 670, 670, 240, 96, 172, 172, 172, 172, 172, 172, - 172, 96, 96, 670, 247, 670, 670, 670, 670, 670, - - 670, 96, 96, 96, 96, 96, 96, 96, 96, 670, - 96, 96, 670, 670, 670, 670, 670, 96, 248, 96, - 96, 96, 96, 96, 670, 670, 96, 96, 670, 670, - 670, 96, 670, 96, 96, 96, 249, 96, 250, 670, - 670, 96, 96, 96, 96, 96, 96, 96, 96, 670, - 96, 670, 670, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 251, 252, 96, 96, 670, 96, - 670, 96, 670, 96, 96, 96, 670, 96, 254, 253, - 670, 96, 96, 96, 96, 96, 670, 670, 670, 670, - 96, 670, 96, 670, 96, 96, 96, 670, 96, 670, - - 670, 255, 96, 96, 96, 96, 256, 96, 670, 96, - 670, 96, 257, 258, 96, 259, 96, 96, 670, 670, - 261, 670, 670, 260, 670, 670, 96, 96, 96, 96, - 96, 96, 96, 670, 670, 96, 96, 670, 96, 670, - 670, 670, 96, 670, 96, 262, 96, 670, 96, 96, - 96, 96, 96, 670, 670, 96, 670, 96, 264, 96, - 263, 96, 670, 96, 670, 96, 96, 96, 96, 96, - 670, 670, 96, 670, 96, 267, 265, 670, 96, 266, - 96, 670, 96, 96, 96, 96, 96, 670, 670, 670, - 670, 96, 670, 96, 96, 96, 670, 96, 670, 670, - - 268, 670, 96, 670, 96, 269, 96, 96, 96, 670, - 670, 670, 670, 96, 670, 96, 670, 96, 96, 96, - 670, 96, 670, 670, 272, 96, 96, 273, 274, 96, - 96, 275, 96, 96, 96, 670, 96, 96, 670, 96, - 670, 670, 278, 276, 670, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 277, 96, 279, 96, 96, 670, - 96, 670, 670, 96, 670, 670, 670, 96, 670, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 280, - 670, 96, 96, 670, 283, 670, 670, 670, 281, 670, - 96, 96, 96, 96, 670, 96, 96, 96, 670, 284, - - 96, 670, 96, 670, 670, 670, 96, 670, 96, 285, - 96, 670, 96, 96, 96, 96, 96, 670, 670, 670, - 670, 96, 670, 96, 96, 96, 670, 96, 670, 670, - 96, 287, 96, 670, 96, 670, 96, 670, 96, 670, - 96, 96, 96, 96, 96, 670, 670, 288, 670, 96, - 670, 96, 96, 96, 670, 96, 670, 670, 289, 670, - 96, 670, 96, 96, 96, 670, 96, 670, 293, 96, - 670, 96, 290, 292, 670, 96, 670, 96, 670, 96, - 96, 96, 96, 96, 670, 670, 96, 670, 96, 670, - 96, 670, 96, 670, 96, 670, 96, 670, 96, 294, - - 96, 96, 96, 670, 295, 96, 670, 670, 670, 296, - 670, 96, 96, 96, 96, 96, 96, 96, 670, 670, - 96, 96, 670, 670, 670, 670, 670, 96, 96, 96, - 670, 96, 670, 670, 96, 297, 96, 670, 96, 670, - 96, 670, 96, 670, 96, 298, 96, 96, 96, 96, - 670, 299, 300, 96, 670, 96, 670, 670, 301, 96, - 670, 96, 670, 96, 670, 96, 96, 96, 96, 96, - 670, 670, 670, 670, 96, 670, 96, 96, 96, 303, - 96, 304, 307, 670, 670, 96, 305, 96, 96, 96, - 670, 96, 670, 670, 670, 306, 96, 670, 96, 96, - - 96, 670, 96, 670, 670, 311, 670, 96, 670, 96, - 96, 96, 670, 96, 670, 670, 96, 670, 96, 670, - 96, 670, 313, 314, 96, 670, 96, 96, 96, 96, - 96, 670, 670, 96, 670, 96, 670, 96, 315, 96, - 670, 96, 670, 96, 96, 316, 96, 96, 670, 670, - 96, 670, 96, 318, 96, 670, 96, 670, 96, 670, - 96, 670, 96, 96, 96, 319, 96, 96, 320, 96, - 670, 670, 670, 670, 670, 670, 96, 96, 96, 96, - 96, 96, 96, 670, 670, 96, 96, 670, 317, 670, - 96, 670, 96, 670, 96, 670, 96, 670, 96, 321, - - 96, 96, 96, 322, 96, 670, 670, 670, 96, 96, - 96, 96, 96, 324, 96, 670, 323, 96, 670, 670, - 670, 96, 96, 96, 96, 96, 96, 670, 96, 670, - 325, 670, 96, 96, 326, 96, 96, 327, 96, 670, - 328, 96, 670, 670, 670, 96, 670, 96, 96, 96, - 96, 670, 96, 96, 96, 670, 329, 96, 670, 96, - 670, 670, 670, 96, 670, 96, 670, 96, 670, 96, - 96, 96, 96, 330, 670, 670, 96, 331, 96, 670, - 96, 670, 96, 670, 96, 670, 96, 96, 96, 96, - 96, 670, 332, 670, 670, 96, 670, 96, 670, 333, - - 670, 96, 96, 334, 670, 335, 96, 670, 96, 670, - 670, 670, 96, 670, 96, 670, 96, 670, 96, 96, - 96, 96, 96, 670, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 670, 96, 670, 96, 96, 96, - 96, 96, 670, 339, 96, 670, 670, 340, 670, 670, - 96, 96, 96, 96, 96, 96, 96, 341, 670, 96, - 96, 343, 96, 338, 670, 670, 96, 670, 96, 670, - 96, 347, 96, 670, 96, 342, 96, 96, 344, 670, - 96, 96, 345, 670, 670, 670, 670, 96, 96, 96, - 96, 96, 96, 346, 96, 670, 96, 670, 96, 96, - - 96, 96, 96, 670, 670, 348, 670, 96, 670, 96, - 350, 96, 96, 96, 670, 96, 670, 670, 670, 96, - 96, 96, 96, 96, 96, 96, 96, 670, 96, 670, - 351, 96, 670, 96, 355, 96, 354, 96, 352, 96, - 670, 670, 670, 96, 96, 96, 670, 96, 96, 96, - 670, 356, 96, 670, 670, 670, 670, 670, 96, 96, - 96, 96, 96, 96, 357, 96, 96, 96, 96, 670, - 670, 670, 670, 670, 670, 96, 96, 96, 96, 96, - 96, 96, 670, 670, 96, 96, 670, 670, 670, 670, - 670, 96, 670, 96, 96, 96, 670, 360, 670, 359, - - 96, 670, 96, 670, 96, 96, 96, 670, 96, 670, - 670, 670, 96, 96, 96, 96, 96, 361, 670, 96, - 96, 96, 362, 96, 96, 670, 96, 670, 670, 364, - 96, 670, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 670, 96, 96, 670, 96, 670, 670, - 670, 96, 670, 96, 96, 96, 96, 96, 96, 366, - 96, 96, 96, 96, 363, 96, 96, 670, 368, 670, - 670, 670, 96, 96, 96, 96, 96, 96, 670, 96, - 670, 367, 670, 96, 96, 96, 96, 96, 670, 670, - 670, 670, 96, 670, 670, 670, 96, 96, 96, 670, - - 96, 670, 670, 370, 670, 96, 670, 96, 369, 96, - 96, 96, 670, 96, 376, 670, 96, 670, 670, 670, - 96, 670, 96, 96, 96, 96, 670, 96, 375, 96, - 377, 96, 96, 670, 96, 670, 379, 96, 670, 670, - 670, 96, 670, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 670, 96, 96, 380, 96, 96, 670, 670, - 381, 670, 670, 670, 96, 96, 96, 96, 96, 96, - 670, 96, 670, 96, 670, 96, 96, 96, 96, 96, - 670, 670, 670, 670, 96, 670, 96, 670, 96, 670, - 382, 670, 96, 670, 96, 670, 96, 96, 96, 670, - - 96, 384, 383, 670, 96, 96, 96, 96, 96, 670, - 670, 670, 670, 96, 670, 96, 670, 385, 386, 96, - 670, 96, 387, 670, 670, 96, 96, 96, 96, 96, - 388, 670, 670, 670, 96, 670, 96, 670, 96, 389, - 96, 670, 96, 390, 96, 670, 96, 96, 96, 670, - 96, 670, 96, 670, 96, 96, 96, 670, 96, 670, - 391, 670, 96, 96, 96, 670, 96, 96, 393, 670, - 392, 96, 670, 96, 670, 670, 670, 96, 670, 96, - 670, 96, 670, 96, 96, 96, 96, 96, 670, 670, - 96, 394, 96, 670, 96, 670, 96, 670, 96, 670, - - 96, 395, 396, 96, 96, 96, 96, 670, 670, 96, - 670, 670, 670, 400, 670, 96, 96, 96, 96, 96, - 96, 670, 670, 96, 96, 96, 96, 401, 670, 402, - 670, 670, 670, 96, 670, 96, 96, 96, 96, 670, - 96, 403, 96, 96, 96, 96, 404, 670, 670, 670, - 670, 670, 670, 96, 96, 405, 96, 96, 96, 96, - 670, 670, 96, 96, 670, 96, 670, 670, 407, 96, - 670, 96, 670, 96, 670, 96, 96, 96, 406, 96, - 409, 670, 670, 410, 96, 670, 96, 96, 96, 670, - 96, 670, 670, 408, 670, 96, 670, 96, 96, 96, - - 670, 96, 670, 670, 96, 670, 96, 670, 96, 670, - 96, 670, 96, 670, 96, 96, 96, 96, 96, 670, - 670, 96, 412, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 96, 413, 96, 96, 670, 670, 670, 670, - 96, 670, 96, 96, 96, 670, 96, 670, 415, 96, - 416, 96, 670, 96, 670, 96, 670, 96, 670, 96, - 96, 417, 96, 96, 670, 670, 670, 670, 96, 670, - 96, 670, 96, 96, 96, 670, 96, 670, 418, 96, - 420, 670, 670, 96, 96, 96, 96, 96, 421, 422, - 96, 670, 96, 670, 96, 96, 96, 96, 96, 670, - - 670, 670, 670, 96, 670, 670, 670, 96, 96, 96, - 670, 96, 670, 670, 96, 425, 96, 670, 96, 423, - 96, 670, 96, 670, 96, 670, 96, 96, 96, 96, - 96, 670, 427, 96, 670, 670, 670, 670, 670, 96, - 96, 96, 96, 96, 96, 96, 428, 670, 96, 96, - 670, 96, 670, 670, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 96, 96, 435, 96, 670, 670, - 96, 670, 670, 96, 670, 670, 670, 96, 670, 96, - 670, 96, 670, 96, 96, 96, 96, 96, 670, 430, - 96, 436, 96, 670, 96, 670, 438, 670, 96, 670, - - 96, 96, 96, 96, 96, 670, 670, 96, 439, 96, - 440, 96, 670, 96, 670, 96, 670, 96, 670, 96, - 96, 96, 441, 96, 96, 670, 96, 670, 670, 670, - 670, 670, 670, 96, 96, 96, 442, 96, 96, 96, - 670, 670, 96, 96, 670, 670, 670, 670, 670, 96, - 96, 96, 444, 96, 670, 670, 96, 443, 96, 670, - 96, 670, 96, 670, 96, 670, 96, 670, 96, 96, - 96, 670, 670, 96, 445, 96, 446, 670, 670, 96, - 670, 447, 670, 96, 670, 96, 670, 96, 670, 96, - 96, 96, 96, 96, 670, 449, 96, 670, 96, 670, - - 96, 670, 448, 670, 96, 670, 96, 96, 96, 96, - 96, 670, 670, 96, 670, 96, 670, 96, 670, 96, - 450, 96, 670, 96, 96, 96, 96, 96, 670, 670, - 96, 670, 96, 670, 96, 670, 96, 452, 96, 670, - 96, 451, 96, 96, 96, 453, 96, 96, 670, 96, - 670, 457, 670, 670, 670, 670, 96, 96, 96, 96, - 96, 96, 96, 670, 670, 96, 96, 670, 96, 458, - 459, 670, 96, 670, 96, 670, 96, 670, 96, 96, - 96, 96, 96, 670, 670, 96, 670, 96, 461, 96, - 670, 96, 670, 96, 670, 96, 460, 96, 96, 96, - - 96, 462, 670, 670, 96, 670, 96, 463, 670, 670, - 96, 670, 96, 670, 96, 670, 96, 96, 96, 96, - 96, 670, 670, 670, 670, 96, 670, 96, 670, 96, - 670, 96, 96, 464, 670, 465, 96, 670, 96, 670, - 670, 670, 96, 670, 96, 670, 96, 670, 96, 96, - 96, 96, 96, 670, 670, 466, 467, 96, 670, 96, - 96, 96, 670, 96, 670, 469, 96, 670, 96, 670, - 96, 670, 96, 670, 96, 670, 96, 96, 96, 96, - 96, 670, 670, 96, 670, 96, 670, 96, 670, 471, - 670, 96, 670, 96, 96, 472, 96, 96, 670, 670, - - 670, 670, 96, 670, 96, 670, 96, 96, 96, 670, - 474, 670, 473, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 670, 670, 96, 96, 96, 670, 96, - 96, 477, 670, 96, 96, 476, 96, 670, 670, 670, - 96, 670, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 479, 96, 96, 670, 96, 670, 670, - 670, 96, 670, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 481, 670, 96, 670, 670, 670, - 670, 670, 96, 670, 96, 96, 96, 670, 96, 670, - 488, 96, 489, 670, 670, 96, 670, 96, 96, 96, - - 96, 670, 96, 96, 96, 670, 491, 96, 670, 96, - 670, 670, 670, 96, 670, 96, 670, 96, 670, 96, - 96, 492, 96, 96, 670, 670, 96, 493, 96, 670, - 96, 670, 96, 494, 96, 670, 96, 96, 96, 96, - 96, 670, 670, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 96, 96, 96, 96, 670, 670, - 670, 495, 96, 670, 96, 96, 96, 496, 96, 670, - 670, 96, 670, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 96, 96, 96, 96, 670, 497, 96, 670, - 96, 670, 96, 670, 96, 670, 96, 670, 96, 96, - - 96, 96, 96, 670, 670, 670, 498, 96, 670, 96, - 96, 96, 670, 96, 670, 670, 500, 499, 96, 670, - 96, 670, 96, 670, 96, 670, 96, 96, 96, 96, - 96, 670, 670, 96, 670, 96, 670, 501, 670, 96, - 506, 96, 670, 96, 96, 96, 96, 96, 670, 670, - 670, 670, 96, 670, 96, 96, 96, 670, 96, 670, - 670, 96, 507, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 96, 96, 96, 96, 670, 670, 96, 670, - 96, 509, 96, 670, 96, 670, 96, 670, 96, 508, - 96, 96, 96, 96, 96, 670, 670, 96, 670, 670, - - 670, 670, 670, 96, 96, 96, 96, 96, 96, 96, - 511, 510, 96, 96, 670, 96, 670, 670, 670, 96, - 670, 96, 670, 96, 670, 96, 96, 96, 96, 96, - 670, 670, 96, 670, 96, 670, 96, 670, 513, 670, - 96, 670, 515, 96, 96, 96, 96, 670, 670, 670, - 670, 96, 670, 96, 96, 96, 670, 96, 517, 512, - 96, 670, 96, 670, 96, 670, 96, 670, 96, 670, - 96, 96, 96, 96, 96, 670, 670, 96, 670, 96, - 519, 96, 670, 96, 670, 96, 670, 96, 670, 96, - 96, 96, 96, 670, 670, 520, 96, 670, 96, 670, - - 670, 522, 96, 670, 96, 670, 96, 670, 96, 670, - 96, 96, 96, 524, 96, 96, 670, 96, 670, 670, - 670, 670, 530, 670, 96, 96, 96, 96, 96, 96, - 96, 531, 670, 96, 96, 670, 96, 670, 670, 670, - 96, 670, 96, 670, 96, 670, 96, 96, 96, 96, - 96, 670, 533, 670, 670, 96, 670, 96, 96, 96, - 670, 96, 670, 670, 96, 534, 96, 670, 96, 670, - 535, 670, 96, 670, 96, 96, 536, 96, 96, 670, - 670, 96, 538, 96, 670, 96, 670, 96, 537, 96, - 670, 96, 670, 96, 96, 96, 96, 96, 670, 539, - - 96, 670, 670, 670, 670, 670, 96, 96, 96, 96, - 96, 96, 96, 96, 670, 96, 96, 670, 670, 670, - 540, 670, 96, 96, 96, 96, 96, 96, 96, 670, - 670, 96, 96, 670, 96, 670, 670, 545, 96, 670, - 96, 670, 96, 670, 96, 96, 96, 96, 96, 670, - 670, 96, 670, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 96, 96, 96, 96, 670, 670, 96, 670, - 96, 670, 96, 670, 96, 546, 96, 670, 96, 96, - 96, 96, 96, 670, 670, 670, 670, 96, 670, 96, - 96, 96, 670, 96, 549, 670, 96, 547, 96, 670, - - 96, 670, 96, 554, 96, 670, 96, 96, 96, 96, - 96, 670, 670, 670, 552, 96, 670, 96, 96, 96, - 670, 96, 670, 670, 96, 670, 96, 670, 96, 670, - 96, 670, 96, 670, 96, 96, 96, 96, 96, 670, - 670, 96, 670, 96, 670, 96, 670, 556, 670, 96, - 670, 558, 96, 96, 96, 96, 670, 670, 96, 670, - 96, 670, 96, 670, 96, 564, 96, 670, 96, 96, - 96, 96, 96, 670, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 670, 96, 670, 96, 96, 96, - 96, 96, 565, 566, 96, 670, 567, 670, 670, 670, - - 96, 96, 96, 96, 96, 96, 96, 96, 569, 96, - 96, 670, 670, 670, 670, 670, 96, 96, 568, 96, - 96, 96, 96, 96, 570, 96, 96, 670, 670, 670, - 670, 670, 96, 571, 96, 96, 96, 96, 96, 670, - 670, 96, 96, 670, 670, 670, 96, 670, 96, 670, - 96, 670, 96, 670, 575, 670, 96, 96, 96, 576, - 96, 96, 96, 670, 670, 96, 670, 670, 577, 579, - 670, 96, 96, 96, 96, 96, 96, 96, 670, 670, - 96, 96, 670, 670, 670, 96, 670, 96, 670, 582, - 670, 96, 670, 96, 670, 96, 96, 96, 584, 96, - - 670, 670, 670, 96, 96, 96, 96, 96, 670, 96, - 670, 585, 96, 670, 670, 670, 96, 96, 96, 96, - 96, 592, 670, 96, 670, 96, 670, 96, 96, 96, - 96, 96, 593, 96, 670, 670, 96, 670, 670, 670, - 96, 96, 96, 96, 96, 96, 670, 96, 670, 96, - 670, 96, 96, 96, 96, 96, 670, 670, 594, 670, - 96, 670, 96, 670, 96, 670, 96, 595, 96, 670, - 96, 670, 96, 96, 96, 670, 96, 596, 96, 670, - 96, 96, 96, 670, 96, 670, 96, 670, 96, 96, - 96, 670, 96, 670, 96, 670, 96, 96, 600, 670, - - 96, 670, 96, 670, 96, 96, 96, 601, 96, 670, - 96, 670, 96, 96, 603, 670, 96, 606, 96, 670, - 96, 96, 96, 670, 96, 608, 96, 670, 96, 96, - 96, 670, 96, 609, 96, 670, 96, 96, 96, 670, - 96, 670, 96, 670, 96, 96, 96, 670, 96, 670, - 96, 670, 96, 96, 96, 670, 96, 670, 96, 670, - 96, 96, 96, 670, 96, 670, 96, 670, 96, 96, - 615, 670, 96, 670, 670, 670, 96, 96, 96, 96, - 96, 670, 670, 670, 616, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 670, 96, 620, 96, 96, 621, - - 670, 96, 623, 96, 670, 96, 96, 96, 670, 96, - 670, 670, 670, 96, 96, 96, 96, 96, 628, 96, - 670, 626, 96, 629, 670, 670, 96, 96, 96, 96, - 96, 96, 670, 96, 670, 96, 670, 96, 96, 96, - 96, 96, 670, 96, 670, 635, 96, 670, 670, 670, - 96, 670, 96, 96, 96, 96, 96, 96, 670, 96, - 670, 670, 96, 636, 96, 670, 96, 96, 96, 670, - 96, 670, 670, 670, 96, 96, 96, 96, 96, 96, - 670, 96, 640, 96, 96, 96, 96, 670, 670, 670, - 643, 670, 645, 670, 96, 96, 96, 96, 96, 96, - - 96, 96, 670, 96, 96, 670, 670, 670, 670, 670, - 96, 96, 96, 96, 96, 96, 651, 96, 96, 96, - 96, 670, 670, 670, 670, 670, 670, 96, 96, 96, - 96, 96, 96, 670, 670, 96, 96, 96, 656, 670, - 653, 670, 670, 96, 670, 96, 670, 96, 670, 96, - 670, 96, 670, 96, 96, 96, 660, 96, 670, 96, - 670, 96, 96, 96, 670, 96, 670, 96, 670, 96, - 96, 96, 670, 96, 670, 664, 670, 667, 96, 96, - 96, 96, 670, 96, 670, 670, 96, 670, 670, 670, - 96, 670, 96, 96, 96, 96, 670, 96, 670, 96, - - 670, 670, 96, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 82, - 82, 82, 670, 82, 82, 82, 82, 82, 82, 82, - 89, 89, 670, 670, 89, 670, 89, 153, 153, 670, - 153, 154, 154, 670, 154, 154, 154, 670, 154, 154, - - 154, 154, 157, 157, 157, 670, 157, 157, 157, 157, - 157, 157, 157, 159, 159, 159, 159, 159, 159, 159, - 159, 670, 159, 161, 670, 670, 161, 161, 161, 161, - 161, 161, 161, 162, 670, 670, 162, 162, 162, 162, - 162, 162, 162, 164, 670, 670, 164, 670, 164, 164, - 164, 164, 164, 168, 168, 670, 168, 169, 169, 670, - 169, 102, 102, 670, 102, 15, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670 + 23, 24, 25, 26, 27, 28, 28, 28, 28, 28, + 28, 28, 29, 19, 30, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 38, 38, 38, 40, 41, + 42, 43, 38, 44, 45, 46, 47, 48, 49, 38, + 38, 38, 19, 19, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 51, 19, 23, 53, + 54, 53, 54, 61, 57, 57, 62, 64, 55, 240, + 55, 58, 58, 64, 61, 59, 59, 62, 80, 80, + + 80, 79, 241, 92, 79, 249, 687, 65, 164, 320, + 66, 250, 447, 65, 688, 385, 66, 164, 80, 80, + 80, 75, 76, 75, 79, 164, 77, 75, 76, 75, + 688, 686, 77, 87, 87, 87, 167, 167, 167, 79, + 79, 167, 167, 167, 89, 95, 87, 87, 90, 90, + 90, 90, 90, 90, 90, 95, 684, 95, 545, 95, + 688, 67, 683, 68, 95, 164, 681, 67, 680, 68, + 69, 70, 71, 70, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 93, 93, 93, 93, 93, 93, + 93, 93, 69, 69, 69, 69, 30, 83, 78, 679, + + 73, 581, 30, 516, 78, 95, 677, 676, 102, 80, + 80, 80, 103, 675, 673, 95, 104, 95, 105, 95, + 95, 517, 69, 69, 95, 672, 107, 85, 106, 164, + 108, 670, 95, 109, 95, 167, 167, 167, 668, 95, + 382, 382, 382, 667, 666, 665, 70, 69, 70, 69, + 70, 71, 70, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 664, 246, 247, 95, 662, 660, 110, + 659, 69, 69, 69, 69, 164, 95, 95, 95, 73, + 95, 657, 656, 655, 652, 95, 651, 95, 111, 112, + 650, 95, 114, 95, 649, 648, 95, 645, 643, 113, + + 642, 69, 69, 95, 95, 95, 640, 95, 637, 115, + 636, 635, 95, 632, 95, 631, 95, 384, 95, 118, + 95, 630, 119, 95, 629, 70, 69, 70, 79, 628, + 95, 120, 121, 625, 95, 116, 623, 122, 622, 95, + 620, 617, 616, 615, 83, 609, 117, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 608, 85, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 95, 607, 606, + + 95, 95, 95, 95, 95, 95, 95, 95, 605, 604, + 601, 599, 95, 96, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 97, 95, 98, 95, 99, 95, 95, + 95, 95, 100, 95, 95, 95, 95, 95, 598, 596, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 123, 95, 95, 592, 591, 579, 579, 579, + 124, 590, 578, 95, 95, 95, 95, 95, 95, 577, + 127, 128, 95, 125, 129, 132, 95, 576, 133, 575, + 95, 573, 95, 571, 130, 569, 134, 567, 95, 95, + + 95, 95, 135, 566, 137, 95, 564, 95, 131, 126, + 138, 95, 560, 95, 139, 95, 142, 95, 559, 95, + 95, 95, 558, 143, 95, 140, 95, 95, 136, 557, + 141, 579, 579, 579, 95, 548, 95, 95, 95, 147, + 144, 95, 95, 95, 580, 148, 95, 145, 542, 541, + 95, 540, 95, 539, 95, 146, 95, 151, 537, 535, + 95, 95, 95, 532, 95, 530, 149, 528, 519, 95, + 153, 153, 153, 518, 504, 501, 499, 150, 498, 497, + 496, 495, 493, 154, 154, 154, 154, 154, 154, 155, + 155, 163, 491, 488, 483, 163, 163, 163, 163, 163, + + 163, 163, 163, 163, 163, 87, 87, 87, 580, 481, + 469, 172, 468, 163, 163, 163, 163, 467, 87, 87, + 174, 174, 174, 174, 174, 174, 174, 174, 93, 93, + 93, 93, 93, 93, 93, 93, 95, 95, 450, 444, + 443, 442, 440, 163, 163, 437, 95, 95, 95, 95, + 95, 95, 95, 95, 177, 95, 95, 435, 430, 425, + 422, 410, 178, 95, 95, 95, 95, 180, 163, 163, + 409, 95, 95, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 408, 389, 95, 95, 381, 380, 379, + 373, 163, 163, 163, 163, 95, 95, 95, 95, 95, + + 95, 95, 366, 181, 95, 95, 182, 361, 165, 179, + 357, 95, 345, 95, 95, 95, 344, 95, 168, 164, + 95, 163, 163, 314, 95, 95, 95, 95, 95, 95, + 313, 184, 183, 95, 312, 95, 95, 95, 185, 95, + 95, 306, 186, 95, 95, 295, 163, 290, 286, 275, + 95, 274, 95, 95, 95, 95, 187, 95, 95, 95, + 188, 95, 95, 250, 248, 164, 245, 239, 95, 189, + 190, 95, 95, 95, 95, 95, 235, 95, 191, 223, + 95, 217, 192, 213, 95, 202, 95, 201, 95, 176, + 175, 173, 95, 95, 95, 169, 95, 95, 193, 194, + + 95, 95, 168, 95, 196, 168, 162, 95, 160, 95, + 199, 95, 95, 95, 95, 95, 195, 197, 95, 95, + 203, 198, 95, 92, 158, 382, 382, 382, 95, 95, + 95, 200, 95, 157, 383, 95, 94, 95, 204, 95, + 91, 95, 82, 95, 79, 95, 95, 95, 95, 95, + 79, 688, 95, 206, 95, 688, 95, 688, 95, 688, + 205, 688, 95, 95, 95, 95, 95, 688, 688, 207, + 208, 95, 688, 95, 95, 95, 209, 95, 688, 688, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 211, 95, 95, 688, 210, 688, 688, 95, + + 688, 212, 384, 95, 95, 95, 688, 95, 688, 688, + 95, 688, 214, 688, 95, 688, 95, 95, 95, 95, + 95, 95, 688, 95, 688, 215, 95, 688, 95, 688, + 95, 95, 95, 688, 95, 688, 688, 688, 95, 95, + 95, 95, 95, 95, 95, 95, 216, 95, 688, 218, + 95, 688, 688, 688, 95, 95, 95, 688, 95, 688, + 688, 688, 688, 95, 219, 95, 688, 95, 95, 95, + 688, 221, 688, 688, 220, 222, 688, 688, 95, 688, + 95, 688, 95, 224, 95, 688, 688, 95, 688, 688, + 95, 688, 688, 688, 225, 688, 95, 688, 95, 688, + + 95, 95, 95, 95, 95, 226, 688, 95, 227, 95, + 688, 95, 231, 95, 688, 95, 688, 95, 95, 95, + 95, 95, 688, 229, 95, 228, 95, 688, 95, 688, + 230, 688, 95, 688, 95, 95, 95, 95, 95, 688, + 232, 95, 688, 95, 688, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 95, 95, 688, 688, 95, 688, + 233, 688, 95, 688, 95, 236, 234, 688, 95, 688, + 95, 95, 95, 95, 95, 237, 688, 95, 238, 688, + 688, 688, 688, 95, 95, 95, 95, 95, 95, 688, + 688, 242, 95, 95, 153, 153, 153, 174, 174, 174, + + 174, 174, 174, 174, 174, 688, 688, 154, 154, 154, + 154, 154, 154, 155, 155, 243, 688, 688, 688, 155, + 155, 155, 155, 155, 155, 155, 155, 244, 688, 688, + 688, 155, 155, 155, 155, 155, 155, 155, 155, 95, + 95, 688, 251, 688, 688, 688, 688, 688, 688, 95, + 95, 95, 95, 95, 95, 95, 95, 688, 95, 95, + 688, 688, 688, 688, 688, 95, 252, 95, 95, 95, + 95, 95, 688, 688, 95, 95, 688, 688, 688, 95, + 688, 95, 95, 95, 253, 95, 254, 688, 688, 95, + 95, 95, 95, 95, 95, 95, 95, 688, 95, 688, + + 688, 95, 688, 95, 688, 95, 688, 95, 688, 95, + 688, 95, 255, 256, 95, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 688, 95, 258, 257, 688, 95, + 95, 95, 95, 95, 688, 688, 688, 688, 95, 688, + 95, 688, 95, 95, 95, 688, 95, 688, 688, 259, + 95, 95, 95, 95, 260, 95, 688, 95, 688, 95, + 261, 262, 95, 263, 95, 95, 688, 688, 265, 688, + 688, 264, 688, 688, 95, 95, 95, 95, 95, 95, + 95, 688, 688, 95, 95, 688, 95, 688, 688, 688, + 95, 688, 95, 266, 95, 688, 95, 95, 95, 95, + + 95, 688, 688, 95, 688, 95, 268, 95, 267, 95, + 688, 95, 688, 95, 95, 95, 95, 95, 688, 688, + 95, 688, 95, 271, 269, 688, 95, 270, 95, 688, + 95, 95, 95, 95, 95, 688, 688, 688, 688, 95, + 688, 95, 95, 95, 688, 95, 688, 688, 272, 688, + 95, 688, 95, 273, 95, 95, 95, 688, 688, 688, + 688, 95, 688, 95, 688, 95, 95, 95, 688, 95, + 688, 688, 276, 95, 95, 277, 278, 95, 95, 279, + 95, 95, 95, 688, 95, 95, 688, 95, 688, 688, + 282, 280, 688, 95, 95, 95, 95, 95, 95, 95, + + 95, 95, 281, 95, 283, 688, 95, 688, 688, 95, + 688, 688, 95, 688, 688, 95, 688, 688, 688, 95, + 688, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 688, 95, 284, 688, 287, 688, 688, 688, + 285, 688, 95, 95, 95, 95, 688, 95, 95, 95, + 688, 288, 95, 688, 95, 688, 688, 688, 95, 688, + 95, 289, 95, 688, 95, 95, 95, 95, 95, 688, + 688, 688, 688, 95, 688, 95, 95, 95, 688, 95, + 688, 688, 95, 291, 95, 688, 95, 688, 95, 688, + 95, 688, 95, 95, 95, 95, 95, 688, 688, 292, + + 688, 95, 688, 95, 95, 95, 688, 95, 688, 688, + 293, 688, 95, 688, 95, 95, 95, 688, 95, 688, + 297, 95, 688, 95, 294, 296, 688, 95, 688, 95, + 688, 95, 95, 95, 95, 95, 688, 688, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 688, + 95, 298, 95, 95, 95, 688, 299, 95, 688, 688, + 688, 300, 688, 95, 95, 95, 95, 95, 95, 95, + 688, 688, 95, 95, 688, 688, 688, 688, 688, 95, + 95, 95, 688, 95, 688, 688, 95, 301, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 302, 95, 95, + + 95, 95, 688, 303, 304, 95, 688, 95, 688, 688, + 305, 95, 688, 95, 688, 95, 688, 95, 95, 95, + 95, 95, 688, 688, 688, 688, 95, 688, 95, 95, + 95, 307, 95, 308, 688, 311, 688, 95, 309, 95, + 688, 95, 95, 95, 688, 95, 688, 310, 95, 688, + 688, 315, 95, 688, 95, 95, 95, 95, 95, 95, + 688, 95, 688, 688, 95, 316, 316, 316, 95, 688, + 321, 688, 95, 318, 318, 318, 688, 95, 317, 317, + 317, 317, 317, 317, 317, 317, 319, 319, 319, 319, + 319, 319, 319, 319, 95, 688, 688, 688, 688, 688, + + 95, 322, 688, 688, 95, 688, 95, 688, 95, 688, + 95, 323, 95, 95, 95, 95, 95, 688, 688, 95, + 688, 688, 688, 688, 688, 95, 95, 324, 95, 95, + 95, 327, 95, 95, 95, 95, 326, 688, 688, 688, + 688, 688, 95, 95, 95, 95, 95, 95, 688, 95, + 328, 95, 95, 688, 688, 95, 688, 688, 688, 95, + 325, 95, 688, 95, 688, 95, 95, 95, 95, 95, + 688, 688, 329, 688, 95, 688, 95, 95, 95, 330, + 95, 688, 688, 688, 688, 95, 688, 95, 688, 95, + 95, 95, 332, 95, 688, 331, 95, 688, 688, 688, + + 95, 95, 95, 95, 95, 95, 688, 95, 688, 333, + 688, 95, 95, 334, 95, 95, 335, 95, 688, 336, + 95, 688, 688, 688, 95, 688, 95, 95, 95, 95, + 688, 95, 95, 95, 688, 337, 95, 688, 95, 688, + 688, 688, 95, 688, 95, 688, 95, 688, 95, 95, + 95, 95, 338, 688, 688, 95, 339, 95, 688, 95, + 688, 95, 688, 95, 688, 95, 95, 95, 95, 95, + 688, 340, 688, 688, 95, 688, 95, 688, 341, 688, + 95, 95, 342, 688, 343, 95, 688, 95, 688, 688, + 688, 95, 688, 95, 688, 95, 688, 95, 95, 95, + + 95, 95, 688, 688, 95, 688, 95, 688, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 95, 95, 95, + 95, 688, 347, 95, 688, 688, 348, 688, 688, 95, + 95, 95, 95, 95, 95, 95, 349, 688, 95, 95, + 351, 95, 346, 688, 688, 95, 688, 95, 688, 95, + 688, 95, 688, 95, 350, 95, 95, 352, 688, 355, + 95, 353, 688, 688, 688, 688, 95, 688, 95, 95, + 95, 688, 354, 688, 688, 95, 688, 95, 688, 95, + 688, 95, 688, 95, 688, 95, 688, 95, 95, 95, + 688, 95, 688, 688, 356, 95, 95, 95, 688, 95, + + 95, 358, 688, 95, 95, 688, 688, 688, 688, 688, + 95, 688, 95, 95, 95, 95, 95, 95, 688, 95, + 688, 359, 95, 363, 95, 688, 95, 362, 95, 360, + 95, 688, 688, 688, 95, 95, 95, 688, 95, 95, + 688, 688, 95, 95, 688, 364, 688, 688, 688, 95, + 688, 95, 95, 95, 95, 688, 95, 95, 95, 365, + 95, 95, 688, 95, 688, 688, 688, 95, 688, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 688, 95, + 95, 367, 95, 368, 688, 688, 95, 688, 688, 688, + 95, 688, 95, 688, 95, 688, 95, 95, 95, 95, + + 95, 688, 370, 95, 688, 95, 688, 95, 688, 369, + 688, 95, 688, 95, 95, 95, 95, 95, 688, 688, + 95, 372, 95, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 95, 95, 688, 688, 95, 688, 95, + 688, 95, 688, 95, 688, 95, 688, 95, 688, 95, + 95, 95, 95, 95, 688, 688, 95, 688, 371, 688, + 688, 688, 95, 95, 374, 95, 95, 95, 688, 95, + 95, 95, 375, 376, 688, 688, 688, 688, 688, 95, + 95, 95, 95, 95, 95, 688, 95, 95, 95, 95, + 688, 688, 688, 688, 688, 688, 95, 95, 95, 95, + + 95, 95, 688, 378, 377, 95, 95, 316, 316, 316, + 688, 688, 688, 688, 688, 318, 318, 318, 688, 688, + 317, 317, 317, 317, 317, 317, 317, 317, 319, 319, + 319, 319, 319, 319, 319, 319, 383, 688, 95, 688, + 319, 319, 319, 319, 319, 319, 319, 319, 95, 688, + 95, 688, 95, 95, 387, 688, 386, 95, 388, 95, + 688, 688, 688, 95, 688, 95, 688, 95, 688, 95, + 95, 95, 95, 95, 688, 390, 95, 688, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 95, + 95, 95, 391, 688, 95, 95, 688, 392, 688, 688, + + 688, 95, 95, 95, 95, 95, 95, 688, 95, 688, + 95, 688, 95, 95, 95, 95, 95, 688, 688, 688, + 688, 95, 688, 95, 688, 95, 688, 393, 688, 95, + 688, 95, 688, 95, 95, 95, 688, 95, 395, 394, + 688, 95, 95, 95, 95, 95, 688, 688, 688, 688, + 95, 688, 95, 688, 396, 397, 95, 688, 95, 398, + 688, 688, 95, 95, 95, 95, 95, 399, 688, 688, + 688, 95, 688, 95, 688, 95, 400, 95, 688, 95, + 401, 95, 688, 95, 95, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 688, 95, 688, 402, 688, 95, + + 95, 95, 688, 95, 95, 404, 688, 403, 95, 688, + 95, 688, 688, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 95, 95, 688, 688, 95, 405, 95, + 688, 95, 688, 95, 688, 95, 688, 95, 406, 407, + 95, 95, 95, 95, 688, 688, 95, 688, 688, 688, + 411, 688, 95, 95, 95, 95, 95, 95, 688, 688, + 95, 95, 95, 95, 412, 688, 413, 688, 688, 688, + 95, 688, 95, 95, 95, 95, 688, 95, 414, 95, + 95, 95, 95, 415, 688, 688, 688, 688, 688, 688, + 95, 95, 416, 95, 95, 95, 95, 688, 688, 95, + + 95, 688, 95, 688, 688, 418, 95, 688, 95, 688, + 95, 420, 95, 95, 95, 417, 95, 688, 421, 95, + 688, 95, 688, 95, 688, 95, 688, 95, 688, 95, + 419, 95, 95, 95, 95, 688, 688, 95, 95, 688, + 95, 688, 688, 688, 95, 688, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 423, 95, 95, 95, 95, + 688, 688, 688, 688, 688, 688, 688, 95, 95, 424, + 95, 95, 95, 95, 426, 688, 95, 95, 688, 95, + 427, 688, 688, 95, 688, 95, 688, 95, 688, 95, + 95, 428, 95, 95, 688, 688, 688, 688, 95, 688, + + 95, 688, 95, 95, 95, 688, 95, 688, 429, 95, + 431, 688, 688, 95, 95, 95, 95, 95, 432, 433, + 95, 688, 95, 688, 95, 95, 95, 95, 95, 688, + 688, 688, 688, 95, 688, 688, 688, 95, 95, 95, + 688, 95, 688, 688, 95, 436, 95, 688, 95, 434, + 95, 688, 95, 688, 95, 688, 95, 95, 95, 95, + 95, 688, 438, 95, 688, 688, 688, 688, 688, 95, + 95, 95, 95, 95, 95, 95, 439, 688, 95, 95, + 688, 688, 445, 445, 445, 95, 688, 95, 688, 95, + 688, 688, 688, 95, 95, 446, 446, 446, 446, 446, + + 446, 446, 446, 95, 688, 95, 688, 95, 688, 448, + 95, 688, 95, 95, 688, 688, 95, 688, 688, 441, + 95, 688, 95, 95, 95, 95, 95, 95, 451, 95, + 95, 449, 95, 95, 95, 95, 688, 688, 688, 688, + 688, 688, 688, 95, 95, 95, 95, 95, 95, 688, + 688, 452, 95, 95, 95, 688, 688, 453, 688, 454, + 95, 688, 688, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 95, 95, 688, 688, 95, 688, 95, + 688, 95, 688, 455, 688, 95, 688, 95, 688, 95, + 95, 95, 95, 688, 457, 456, 95, 688, 95, 688, + + 688, 688, 95, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 688, 688, 95, 458, 95, 459, 688, + 688, 95, 688, 460, 688, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 95, 95, 688, 462, 95, 688, + 95, 688, 95, 688, 461, 688, 95, 688, 95, 95, + 95, 95, 95, 688, 688, 95, 688, 95, 688, 95, + 688, 95, 463, 95, 688, 95, 95, 95, 95, 95, + 688, 688, 95, 688, 95, 688, 95, 688, 95, 465, + 95, 688, 95, 464, 95, 95, 95, 466, 95, 95, + 688, 95, 688, 470, 688, 688, 688, 688, 95, 95, + + 95, 95, 95, 95, 95, 688, 688, 95, 95, 688, + 95, 471, 472, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 95, 95, 688, 688, 95, 688, 95, + 474, 95, 688, 95, 688, 95, 688, 95, 473, 95, + 95, 95, 95, 475, 688, 688, 95, 688, 95, 476, + 688, 688, 95, 688, 95, 688, 95, 688, 95, 95, + 95, 95, 95, 688, 688, 688, 688, 95, 688, 95, + 688, 95, 688, 95, 95, 477, 688, 478, 95, 688, + 95, 688, 688, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 95, 95, 688, 688, 479, 480, 95, + + 688, 95, 95, 95, 688, 95, 688, 482, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 95, + 95, 95, 95, 688, 688, 95, 688, 95, 688, 95, + 688, 484, 688, 95, 688, 95, 95, 485, 95, 95, + 688, 688, 688, 688, 95, 688, 95, 688, 95, 95, + 95, 688, 487, 688, 486, 95, 688, 95, 688, 95, + 688, 95, 688, 95, 688, 688, 688, 95, 95, 95, + 688, 95, 95, 490, 688, 95, 95, 489, 95, 688, + 688, 688, 95, 688, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 492, 95, 95, 688, 95, + + 688, 688, 688, 95, 688, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 688, 95, 494, 688, 95, 445, + 445, 445, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 446, 446, 446, 446, 446, 446, 446, 446, + 500, 688, 95, 688, 446, 446, 446, 446, 446, 446, + 446, 446, 95, 688, 95, 95, 95, 688, 95, 688, + 502, 95, 503, 688, 688, 95, 688, 95, 95, 95, + 95, 688, 95, 95, 95, 688, 505, 95, 688, 95, + 688, 688, 688, 95, 688, 95, 688, 95, 688, 95, + 95, 506, 95, 95, 688, 688, 95, 507, 95, 688, + + 95, 688, 95, 508, 95, 688, 95, 95, 95, 95, + 95, 688, 688, 95, 688, 95, 688, 95, 688, 95, + 688, 95, 688, 95, 95, 95, 95, 95, 688, 688, + 688, 509, 95, 688, 95, 95, 95, 510, 95, 688, + 688, 95, 688, 95, 688, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 95, 95, 688, 511, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 95, + 95, 95, 95, 688, 688, 688, 512, 95, 688, 95, + 95, 95, 688, 95, 688, 688, 514, 513, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 95, 95, 95, + + 95, 688, 688, 95, 688, 95, 688, 515, 688, 95, + 520, 95, 688, 95, 95, 95, 95, 95, 688, 688, + 688, 688, 95, 688, 95, 95, 95, 688, 95, 688, + 688, 95, 521, 95, 688, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 95, 95, 688, 688, 95, 688, + 95, 523, 95, 688, 95, 688, 95, 688, 95, 522, + 95, 95, 95, 95, 95, 688, 688, 95, 688, 688, + 688, 688, 688, 95, 95, 95, 95, 95, 95, 95, + 525, 524, 95, 95, 688, 95, 688, 688, 688, 95, + 688, 95, 688, 95, 688, 95, 95, 95, 95, 95, + + 688, 688, 95, 688, 95, 688, 95, 688, 527, 688, + 95, 688, 529, 95, 95, 95, 95, 688, 688, 688, + 688, 95, 688, 95, 95, 95, 688, 95, 531, 526, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 95, 95, 688, 688, 95, 688, 95, + 533, 95, 688, 95, 688, 95, 688, 95, 688, 95, + 95, 95, 95, 688, 688, 534, 95, 688, 95, 688, + 688, 536, 95, 688, 95, 688, 95, 688, 95, 688, + 95, 95, 95, 538, 95, 688, 688, 95, 688, 688, + 688, 543, 543, 543, 95, 688, 95, 688, 95, 688, + + 688, 688, 688, 95, 544, 544, 544, 544, 544, 544, + 544, 544, 95, 95, 547, 688, 688, 688, 688, 546, + 688, 688, 95, 95, 95, 95, 95, 95, 95, 688, + 688, 95, 95, 688, 688, 688, 95, 688, 95, 95, + 95, 688, 95, 688, 549, 688, 95, 95, 95, 95, + 95, 551, 95, 95, 550, 95, 688, 688, 95, 688, + 95, 688, 95, 688, 552, 554, 95, 688, 95, 688, + 95, 95, 95, 553, 95, 688, 688, 688, 95, 95, + 95, 95, 95, 688, 688, 688, 688, 95, 688, 95, + 688, 95, 555, 95, 688, 95, 688, 95, 688, 95, + + 95, 95, 688, 95, 688, 95, 688, 95, 95, 95, + 688, 95, 556, 95, 688, 95, 95, 95, 688, 95, + 688, 688, 688, 95, 95, 95, 95, 95, 688, 561, + 688, 688, 95, 688, 95, 688, 95, 95, 95, 688, + 95, 688, 688, 688, 95, 95, 95, 95, 95, 95, + 95, 95, 688, 95, 688, 688, 95, 688, 95, 688, + 95, 95, 95, 688, 95, 562, 688, 688, 95, 95, + 95, 95, 95, 95, 95, 95, 688, 95, 565, 563, + 95, 688, 95, 688, 95, 688, 95, 570, 95, 688, + 95, 688, 95, 95, 95, 688, 95, 568, 688, 688, + + 95, 95, 95, 95, 95, 688, 95, 688, 688, 95, + 688, 688, 688, 95, 95, 95, 95, 95, 95, 688, + 95, 688, 95, 688, 95, 95, 572, 95, 95, 688, + 688, 688, 688, 95, 543, 543, 543, 574, 688, 95, + 688, 95, 688, 688, 688, 95, 95, 544, 544, 544, + 544, 544, 544, 544, 544, 95, 95, 95, 582, 95, + 688, 688, 95, 688, 95, 688, 95, 688, 95, 688, + 95, 688, 95, 95, 95, 95, 95, 688, 688, 95, + 688, 95, 584, 95, 688, 95, 688, 95, 688, 95, + 583, 95, 95, 95, 95, 95, 688, 688, 95, 585, + + 688, 688, 688, 688, 95, 95, 95, 586, 95, 95, + 95, 587, 688, 95, 95, 688, 95, 688, 588, 688, + 95, 688, 95, 688, 95, 688, 95, 95, 95, 95, + 95, 688, 688, 95, 688, 95, 688, 589, 688, 95, + 688, 95, 688, 95, 95, 95, 95, 95, 688, 593, + 688, 688, 95, 688, 95, 95, 95, 594, 95, 688, + 688, 95, 595, 95, 688, 95, 688, 95, 597, 95, + 688, 95, 95, 95, 95, 95, 688, 688, 688, 688, + 95, 688, 95, 95, 600, 688, 95, 688, 688, 95, + 688, 95, 688, 95, 688, 95, 602, 95, 688, 95, + + 95, 95, 95, 95, 688, 688, 95, 603, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 95, 610, 95, + 95, 688, 688, 688, 688, 95, 688, 95, 95, 95, + 611, 95, 688, 688, 95, 688, 95, 688, 95, 688, + 95, 688, 95, 688, 95, 95, 95, 95, 95, 688, + 688, 688, 688, 95, 688, 95, 95, 95, 688, 95, + 688, 688, 612, 688, 95, 688, 95, 95, 95, 613, + 95, 688, 688, 95, 688, 95, 688, 95, 688, 95, + 614, 95, 688, 95, 95, 95, 95, 95, 688, 688, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 688, + + 95, 95, 618, 95, 95, 688, 688, 95, 688, 95, + 688, 95, 688, 95, 619, 95, 688, 95, 95, 621, + 95, 95, 688, 688, 95, 624, 95, 688, 95, 688, + 95, 626, 95, 688, 95, 95, 95, 95, 95, 688, + 688, 95, 627, 95, 688, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 95, 95, 688, 688, 95, 688, + 95, 688, 95, 688, 95, 688, 95, 688, 95, 95, + 95, 95, 95, 688, 688, 95, 688, 95, 688, 95, + 688, 633, 688, 95, 688, 95, 95, 95, 95, 95, + 688, 688, 95, 634, 95, 688, 95, 688, 95, 688, + + 95, 688, 95, 638, 639, 95, 95, 95, 688, 688, + 95, 95, 688, 95, 641, 646, 688, 95, 688, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 644, 95, + 95, 688, 95, 95, 647, 688, 95, 688, 688, 688, + 95, 688, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 653, 95, 95, 95, 95, 688, 688, 688, 654, + 688, 688, 688, 95, 95, 95, 95, 95, 95, 95, + 95, 688, 95, 95, 688, 688, 688, 688, 688, 95, + 95, 95, 95, 95, 95, 95, 688, 658, 95, 95, + 688, 95, 688, 661, 688, 95, 688, 95, 663, 95, + + 688, 95, 95, 95, 95, 95, 688, 688, 688, 688, + 95, 688, 95, 95, 95, 688, 95, 688, 669, 95, + 688, 95, 688, 95, 688, 95, 688, 95, 688, 95, + 688, 95, 95, 95, 95, 688, 688, 95, 95, 688, + 674, 688, 671, 688, 95, 95, 95, 95, 95, 95, + 688, 95, 688, 95, 688, 95, 95, 95, 678, 95, + 95, 95, 688, 688, 95, 688, 688, 688, 688, 688, + 95, 95, 95, 95, 95, 95, 95, 682, 688, 95, + 95, 688, 95, 688, 688, 688, 685, 688, 95, 688, + 95, 688, 95, 95, 95, 95, 95, 688, 688, 688, + + 688, 95, 688, 95, 688, 95, 688, 95, 688, 688, + 688, 688, 95, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 81, 81, 81, + + 688, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 88, 88, 688, 688, 88, 688, 688, 88, 688, + 88, 152, 152, 688, 152, 152, 156, 156, 688, 156, + 156, 156, 156, 688, 156, 156, 156, 156, 156, 156, + 159, 159, 159, 688, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 688, 161, 161, 163, 688, 688, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 164, 688, + 688, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 166, 688, 688, 166, 688, 166, 166, 166, 166, 166, + + 166, 166, 170, 170, 688, 170, 170, 171, 171, 688, + 171, 171, 101, 101, 688, 101, 101, 317, 317, 688, + 688, 688, 317, 688, 317, 688, 688, 688, 688, 317, + 544, 544, 688, 688, 688, 688, 688, 544, 688, 688, + 688, 688, 544, 15, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688 } ; -static yyconst short int yy_chk[4344] = +static yyconst short int yy_chk[4624] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1227,483 +1265,514 @@ static yyconst short int yy_chk[4344] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, - 4, 5, 6, 7, 9, 3, 7, 4, 5, 6, - 8, 5, 6, 8, 10, 17, 17, 17, 18, 18, - - 18, 17, 9, 666, 18, 9, 26, 662, 26, 13, - 13, 13, 10, 151, 13, 10, 86, 22, 22, 22, - 14, 14, 14, 22, 24, 14, 151, 24, 659, 22, - 22, 24, 24, 24, 24, 24, 24, 28, 28, 28, - 28, 28, 28, 28, 657, 34, 86, 454, 34, 76, - 76, 76, 77, 77, 77, 34, 9, 34, 9, 34, - 81, 81, 81, 655, 34, 454, 10, 654, 10, 11, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 4, 4, 7, 5, 6, 7, 9, 3, 150, + 4, 5, 6, 10, 8, 5, 6, 8, 17, 17, + + 17, 26, 150, 26, 17, 172, 684, 9, 246, 246, + 9, 172, 385, 10, 77, 320, 10, 385, 18, 18, + 18, 13, 13, 13, 18, 320, 13, 14, 14, 14, + 77, 680, 14, 22, 22, 22, 75, 75, 75, 22, + 24, 76, 76, 76, 24, 38, 22, 22, 24, 24, + 24, 24, 24, 24, 24, 38, 677, 38, 501, 38, + 77, 9, 675, 9, 38, 501, 673, 10, 672, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 13, 652, 13, 163, 163, 650, 170, 11, - 11, 11, 11, 14, 170, 14, 163, 11, 32, 242, - - 242, 32, 165, 165, 165, 32, 529, 648, 32, 32, - 32, 32, 32, 38, 312, 647, 33, 32, 644, 11, - 11, 32, 33, 38, 312, 38, 33, 38, 33, 33, - 33, 642, 38, 529, 638, 33, 91, 91, 91, 91, - 91, 91, 91, 11, 11, 11, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 374, - 634, 35, 633, 78, 374, 632, 12, 12, 12, 12, - 631, 35, 35, 35, 12, 35, 630, 78, 36, 36, - 35, 487, 627, 35, 625, 624, 619, 618, 487, 36, - 617, 36, 614, 36, 37, 36, 12, 12, 36, 39, - - 39, 613, 39, 612, 37, 611, 37, 78, 37, 610, - 39, 39, 39, 37, 39, 607, 605, 39, 604, 39, - 12, 12, 12, 21, 602, 37, 88, 88, 88, 599, - 598, 597, 88, 591, 590, 589, 37, 21, 88, 88, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 11, 11, 11, 11, 28, 28, 28, 28, 28, 28, + 28, 28, 11, 11, 11, 11, 13, 85, 13, 670, + + 11, 545, 14, 467, 14, 32, 668, 666, 32, 80, + 80, 80, 32, 665, 662, 32, 32, 32, 32, 32, + 33, 467, 11, 11, 32, 660, 33, 85, 32, 545, + 33, 656, 33, 33, 33, 167, 167, 167, 652, 33, + 382, 382, 382, 651, 650, 649, 11, 11, 11, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 648, 165, 165, 34, 645, 643, 34, + 642, 12, 12, 12, 12, 165, 34, 35, 34, 12, + 34, 637, 636, 635, 632, 34, 631, 35, 35, 35, + 630, 35, 36, 36, 629, 628, 35, 625, 623, 35, + + 622, 12, 12, 36, 37, 36, 620, 36, 617, 36, + 616, 615, 36, 609, 37, 608, 37, 382, 37, 39, + 39, 607, 39, 37, 606, 12, 12, 12, 21, 604, + 39, 39, 39, 601, 39, 37, 599, 39, 598, 39, + 596, 592, 591, 590, 21, 581, 37, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 588, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 578, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 31, 586, 583, 31, 31, 31, 31, 31, 31, 31, + 21, 21, 21, 21, 21, 21, 21, 31, 577, 576, - 581, 580, 578, 574, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 575, 573, + 569, 567, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 566, 564, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 573, 572, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 40, 40, 41, 563, 562, 561, - 560, 559, 40, 557, 553, 40, 41, 40, 41, 40, - 41, 551, 42, 42, 40, 41, 42, 43, 43, 550, - 43, 548, 42, 543, 42, 542, 42, 541, 43, 528, - 43, 42, 43, 44, 43, 527, 44, 43, 526, 45, - - 42, 41, 45, 44, 525, 44, 45, 44, 46, 45, - 523, 45, 44, 45, 46, 46, 521, 45, 45, 518, - 43, 516, 45, 47, 514, 46, 512, 46, 505, 46, - 504, 46, 503, 47, 46, 47, 502, 47, 46, 48, - 49, 47, 47, 490, 486, 485, 46, 49, 484, 48, - 49, 48, 49, 48, 49, 483, 480, 478, 48, 49, - 475, 470, 47, 94, 94, 94, 94, 94, 94, 94, - 468, 456, 455, 437, 48, 73, 434, 433, 432, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 431, 96, - 97, 430, 429, 426, 424, 73, 73, 73, 73, 96, - - 97, 96, 97, 96, 97, 98, 419, 97, 96, 97, - 414, 411, 399, 398, 397, 98, 378, 98, 99, 98, - 373, 100, 372, 371, 98, 73, 73, 369, 99, 365, - 99, 100, 99, 100, 101, 100, 363, 99, 358, 353, - 100, 99, 349, 338, 101, 337, 101, 336, 101, 317, - 73, 74, 101, 101, 310, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 309, 103, 308, 302, 104, 291, - 103, 74, 74, 74, 74, 103, 286, 103, 104, 103, - 104, 105, 104, 282, 103, 271, 104, 104, 74, 270, - 244, 105, 243, 105, 106, 105, 239, 238, 237, 233, - - 105, 74, 74, 221, 106, 107, 106, 106, 106, 215, - 211, 200, 199, 106, 171, 107, 167, 107, 162, 107, - 108, 108, 160, 150, 107, 147, 74, 137, 109, 109, - 132, 108, 127, 108, 108, 108, 118, 117, 95, 109, - 108, 109, 110, 109, 92, 111, 89, 84, 109, 111, - 83, 80, 110, 110, 110, 111, 110, 111, 112, 111, - 66, 110, 63, 60, 111, 59, 56, 52, 112, 50, - 112, 29, 112, 113, 113, 113, 115, 112, 25, 114, - 114, 20, 19, 113, 16, 113, 115, 113, 115, 114, - 115, 114, 113, 114, 116, 115, 15, 114, 114, 0, - - 0, 119, 0, 0, 116, 0, 116, 116, 116, 119, - 0, 0, 120, 116, 0, 120, 0, 0, 0, 119, - 121, 119, 120, 119, 120, 0, 120, 0, 119, 0, - 121, 120, 121, 0, 121, 122, 122, 0, 0, 121, - 0, 0, 0, 0, 0, 122, 123, 122, 0, 122, - 0, 0, 122, 122, 122, 0, 123, 124, 123, 123, - 123, 0, 0, 125, 0, 123, 0, 124, 0, 124, - 0, 124, 0, 125, 126, 125, 124, 125, 0, 124, - 0, 0, 125, 0, 126, 0, 126, 128, 126, 0, - 129, 0, 0, 126, 0, 128, 0, 128, 0, 128, - - 129, 128, 129, 130, 129, 0, 128, 0, 129, 129, - 0, 131, 0, 130, 133, 130, 0, 130, 0, 0, - 0, 131, 130, 131, 133, 131, 133, 134, 133, 131, - 131, 0, 133, 133, 0, 0, 0, 134, 135, 134, - 0, 134, 0, 0, 0, 0, 134, 134, 135, 0, - 135, 136, 135, 0, 136, 0, 0, 135, 136, 0, - 0, 136, 0, 136, 0, 136, 138, 138, 0, 0, - 136, 0, 0, 139, 0, 0, 0, 138, 0, 138, - 0, 138, 0, 139, 140, 139, 138, 139, 139, 0, - 141, 139, 139, 0, 140, 0, 140, 0, 140, 0, - - 141, 142, 141, 140, 141, 143, 141, 0, 140, 141, - 0, 142, 0, 142, 0, 142, 143, 144, 0, 0, - 142, 0, 144, 0, 0, 0, 143, 144, 143, 144, - 143, 144, 145, 146, 0, 143, 144, 0, 0, 0, - 0, 0, 145, 146, 145, 146, 145, 146, 148, 149, - 149, 145, 146, 149, 0, 148, 0, 0, 148, 149, - 148, 149, 148, 149, 152, 0, 0, 148, 149, 0, - 0, 0, 0, 0, 152, 0, 152, 0, 152, 0, - 0, 0, 152, 152, 172, 172, 172, 172, 172, 172, - 172, 175, 176, 0, 175, 0, 0, 0, 0, 0, - - 0, 175, 176, 175, 176, 175, 176, 177, 178, 0, - 175, 176, 0, 0, 0, 0, 0, 177, 178, 177, - 178, 177, 178, 179, 0, 0, 177, 178, 0, 0, - 0, 180, 0, 179, 181, 179, 179, 179, 180, 0, - 0, 180, 179, 180, 181, 180, 181, 182, 181, 0, - 180, 0, 0, 181, 0, 183, 0, 182, 0, 182, - 0, 182, 0, 184, 182, 183, 182, 183, 0, 183, - 0, 185, 0, 184, 183, 184, 0, 184, 185, 184, - 0, 185, 184, 185, 186, 185, 0, 0, 0, 0, - 185, 0, 187, 0, 186, 188, 186, 0, 186, 0, - - 0, 186, 187, 186, 187, 188, 187, 188, 0, 188, - 0, 187, 188, 188, 188, 189, 189, 190, 0, 0, - 190, 0, 0, 189, 0, 0, 189, 190, 189, 190, - 189, 190, 191, 0, 0, 189, 190, 0, 192, 0, - 0, 0, 191, 0, 191, 191, 191, 0, 192, 193, - 192, 191, 192, 0, 0, 194, 0, 192, 194, 193, - 193, 193, 0, 193, 0, 194, 195, 194, 193, 194, - 0, 0, 196, 0, 194, 196, 195, 0, 195, 195, - 195, 0, 196, 197, 196, 195, 196, 0, 0, 0, - 0, 196, 0, 197, 198, 197, 0, 197, 0, 0, - - 197, 0, 197, 0, 198, 198, 198, 201, 198, 0, - 0, 0, 0, 198, 0, 202, 0, 201, 203, 201, - 0, 201, 0, 0, 201, 202, 201, 202, 203, 202, - 203, 203, 203, 204, 202, 0, 205, 203, 0, 206, - 0, 0, 206, 204, 0, 204, 205, 204, 205, 206, - 205, 206, 204, 206, 205, 205, 207, 208, 206, 0, - 209, 0, 0, 207, 0, 0, 0, 208, 0, 208, - 209, 208, 209, 207, 209, 207, 208, 207, 210, 209, - 0, 212, 207, 0, 212, 0, 0, 0, 210, 0, - 210, 212, 210, 212, 0, 212, 213, 210, 0, 213, - - 212, 0, 214, 0, 0, 0, 213, 0, 213, 214, - 213, 0, 214, 216, 214, 213, 214, 0, 0, 0, - 0, 214, 0, 216, 217, 216, 0, 216, 0, 0, - 218, 216, 216, 0, 217, 0, 217, 0, 217, 0, - 218, 219, 218, 217, 218, 0, 0, 218, 0, 218, - 0, 219, 220, 219, 0, 219, 0, 0, 219, 0, - 219, 0, 220, 222, 220, 0, 220, 0, 223, 223, - 0, 220, 220, 222, 0, 222, 0, 222, 0, 223, - 224, 223, 222, 223, 0, 0, 225, 0, 223, 0, - 224, 0, 224, 0, 224, 0, 225, 0, 225, 224, - - 225, 226, 227, 0, 226, 225, 0, 0, 0, 227, - 0, 226, 227, 226, 227, 226, 227, 228, 0, 0, - 226, 227, 0, 0, 0, 0, 0, 228, 229, 228, - 0, 228, 0, 0, 230, 228, 228, 0, 229, 0, - 229, 0, 229, 0, 230, 229, 230, 229, 230, 231, - 0, 230, 231, 230, 0, 232, 0, 0, 232, 231, - 0, 231, 0, 231, 0, 232, 234, 232, 231, 232, - 0, 0, 0, 0, 232, 0, 234, 235, 234, 234, - 234, 234, 236, 0, 0, 234, 234, 235, 236, 235, - 0, 235, 0, 0, 0, 235, 235, 0, 236, 240, - - 236, 0, 236, 0, 0, 240, 0, 236, 0, 240, - 247, 240, 0, 240, 0, 0, 248, 0, 240, 0, - 247, 0, 247, 248, 247, 0, 248, 249, 248, 247, - 248, 0, 0, 250, 0, 248, 0, 249, 249, 249, - 0, 249, 0, 250, 251, 250, 249, 250, 0, 0, - 252, 0, 250, 252, 251, 0, 251, 0, 251, 0, - 252, 0, 252, 251, 252, 253, 253, 254, 254, 252, - 0, 0, 0, 0, 0, 0, 253, 254, 253, 254, - 253, 254, 255, 0, 0, 253, 254, 0, 251, 0, - 256, 0, 255, 0, 255, 0, 255, 0, 257, 255, - - 256, 255, 256, 256, 256, 0, 0, 0, 257, 256, - 257, 259, 257, 258, 258, 0, 257, 257, 0, 0, - 0, 259, 260, 259, 258, 259, 258, 0, 258, 0, - 259, 0, 260, 258, 260, 261, 260, 261, 262, 0, - 262, 260, 0, 0, 0, 261, 0, 261, 262, 261, - 262, 0, 262, 263, 261, 0, 263, 262, 0, 264, - 0, 0, 0, 263, 0, 263, 0, 263, 0, 264, - 265, 264, 263, 264, 0, 0, 266, 265, 264, 0, - 265, 0, 265, 0, 265, 0, 266, 267, 266, 265, - 266, 0, 266, 0, 0, 266, 0, 267, 0, 267, - - 0, 267, 268, 267, 0, 268, 267, 0, 269, 0, - 0, 0, 268, 0, 268, 0, 268, 0, 269, 272, - 269, 268, 269, 0, 0, 273, 0, 269, 0, 272, - 0, 272, 0, 272, 0, 273, 0, 273, 272, 273, - 274, 275, 0, 273, 273, 0, 0, 274, 0, 0, - 274, 275, 274, 275, 274, 275, 276, 275, 0, 274, - 275, 277, 277, 272, 0, 0, 276, 0, 276, 0, - 276, 279, 277, 0, 277, 276, 277, 278, 277, 0, - 279, 277, 278, 0, 0, 0, 0, 278, 280, 278, - 279, 278, 279, 278, 279, 0, 278, 0, 280, 279, - - 280, 281, 280, 0, 0, 280, 0, 280, 0, 283, - 283, 281, 284, 281, 0, 281, 0, 0, 0, 283, - 281, 283, 284, 283, 284, 285, 284, 0, 283, 0, - 284, 284, 0, 287, 288, 285, 287, 285, 285, 285, - 0, 0, 0, 287, 285, 287, 0, 287, 289, 288, - 0, 289, 287, 0, 0, 0, 0, 0, 289, 288, - 289, 288, 289, 288, 290, 290, 292, 289, 288, 0, - 0, 0, 0, 0, 0, 290, 292, 290, 292, 290, - 292, 293, 0, 0, 290, 292, 0, 0, 0, 0, - 0, 293, 0, 293, 294, 293, 0, 294, 0, 293, - - 293, 0, 295, 0, 294, 296, 294, 0, 294, 0, - 0, 0, 295, 294, 295, 296, 295, 296, 0, 296, - 298, 295, 297, 297, 296, 0, 299, 0, 0, 301, - 298, 0, 298, 297, 298, 297, 299, 297, 299, 298, - 299, 300, 297, 0, 301, 299, 0, 303, 0, 0, - 0, 300, 0, 300, 301, 300, 301, 303, 301, 303, - 300, 303, 304, 301, 298, 305, 303, 0, 305, 0, - 0, 0, 304, 306, 304, 305, 304, 305, 0, 305, - 0, 304, 0, 306, 305, 306, 307, 306, 0, 0, - 0, 0, 306, 0, 0, 0, 307, 311, 307, 0, - - 307, 0, 0, 307, 0, 307, 0, 311, 306, 311, - 313, 311, 0, 314, 314, 0, 311, 0, 0, 0, - 313, 0, 313, 314, 313, 314, 0, 314, 313, 313, - 315, 315, 314, 0, 316, 0, 318, 318, 0, 0, - 0, 315, 0, 315, 316, 315, 316, 318, 316, 318, - 315, 318, 0, 316, 319, 319, 318, 320, 0, 0, - 320, 0, 0, 0, 319, 321, 319, 320, 319, 320, - 0, 320, 0, 319, 0, 321, 320, 321, 322, 321, - 0, 0, 0, 0, 321, 0, 323, 0, 322, 0, - 322, 0, 322, 0, 324, 0, 323, 322, 323, 0, - - 323, 324, 323, 0, 324, 323, 324, 325, 324, 0, - 0, 0, 0, 324, 0, 326, 0, 325, 326, 325, - 0, 325, 326, 0, 0, 326, 325, 326, 327, 326, - 327, 0, 0, 0, 326, 0, 328, 0, 327, 328, - 327, 0, 327, 328, 329, 0, 328, 327, 328, 0, - 328, 0, 330, 0, 329, 328, 329, 0, 329, 0, - 329, 0, 330, 329, 330, 0, 330, 331, 331, 0, - 330, 330, 0, 332, 0, 0, 0, 331, 0, 331, - 0, 331, 0, 332, 333, 332, 331, 332, 0, 0, - 334, 332, 332, 0, 333, 0, 333, 0, 333, 0, - - 334, 333, 334, 333, 334, 335, 339, 0, 0, 334, - 0, 0, 0, 339, 0, 335, 339, 335, 339, 335, - 339, 0, 0, 341, 335, 339, 340, 340, 0, 340, - 0, 0, 0, 341, 0, 341, 340, 341, 340, 0, - 340, 341, 341, 343, 342, 340, 342, 0, 0, 0, - 0, 0, 0, 343, 342, 343, 342, 343, 342, 344, - 0, 0, 343, 342, 0, 345, 0, 0, 345, 344, - 0, 344, 0, 344, 0, 345, 346, 345, 344, 345, - 347, 0, 0, 348, 345, 0, 346, 347, 346, 0, - 346, 0, 0, 346, 0, 346, 0, 347, 348, 347, - - 0, 347, 0, 0, 350, 0, 347, 0, 348, 0, - 348, 0, 348, 0, 350, 351, 350, 348, 350, 0, - 0, 352, 350, 350, 0, 351, 0, 351, 0, 351, - 0, 352, 354, 352, 351, 352, 0, 0, 0, 0, - 352, 0, 354, 355, 354, 0, 354, 0, 354, 356, - 355, 354, 0, 355, 0, 355, 0, 355, 0, 356, - 357, 356, 355, 356, 0, 0, 0, 0, 356, 0, - 357, 0, 357, 359, 357, 0, 360, 0, 357, 357, - 359, 0, 0, 359, 361, 359, 360, 359, 360, 361, - 360, 0, 359, 0, 361, 360, 361, 362, 361, 0, - - 0, 0, 0, 361, 0, 0, 0, 362, 364, 362, - 0, 362, 0, 0, 366, 364, 362, 0, 364, 362, - 364, 0, 364, 0, 366, 0, 366, 364, 366, 367, - 368, 0, 367, 366, 0, 0, 0, 0, 0, 367, - 368, 367, 368, 367, 368, 370, 368, 0, 367, 368, - 0, 375, 0, 0, 0, 370, 0, 370, 0, 370, - 0, 375, 0, 375, 370, 375, 376, 376, 0, 0, - 375, 0, 0, 377, 0, 0, 0, 376, 0, 376, - 0, 376, 0, 377, 379, 377, 376, 377, 0, 370, - 380, 377, 377, 0, 379, 0, 379, 0, 379, 0, - - 380, 381, 380, 379, 380, 0, 0, 382, 380, 380, - 382, 381, 0, 381, 0, 381, 0, 382, 0, 382, - 381, 382, 383, 383, 384, 0, 382, 0, 0, 0, - 0, 0, 0, 383, 384, 383, 384, 383, 384, 385, - 0, 0, 383, 384, 0, 0, 0, 0, 0, 385, - 386, 385, 386, 385, 0, 0, 387, 385, 385, 0, - 386, 0, 386, 0, 386, 0, 387, 0, 387, 386, - 387, 0, 0, 388, 387, 387, 388, 0, 0, 389, - 0, 389, 0, 388, 0, 388, 0, 388, 0, 389, - 390, 389, 388, 389, 0, 391, 391, 0, 389, 0, - - 390, 0, 390, 0, 390, 0, 391, 392, 391, 390, - 391, 0, 0, 393, 0, 391, 0, 392, 0, 392, - 393, 392, 0, 393, 394, 393, 392, 393, 0, 0, - 395, 0, 393, 0, 394, 0, 394, 395, 394, 0, - 395, 394, 395, 394, 395, 396, 396, 400, 0, 395, - 0, 400, 0, 0, 0, 0, 396, 400, 396, 400, - 396, 400, 401, 0, 0, 396, 400, 0, 402, 401, - 402, 0, 401, 0, 401, 0, 401, 0, 402, 403, - 402, 401, 402, 0, 0, 404, 0, 402, 404, 403, - 0, 403, 0, 403, 0, 404, 403, 404, 403, 404, - - 405, 405, 0, 0, 404, 0, 406, 406, 0, 0, - 405, 0, 405, 0, 405, 0, 406, 407, 406, 405, - 406, 0, 0, 0, 0, 406, 0, 407, 0, 407, - 0, 407, 408, 407, 0, 408, 407, 0, 409, 0, - 0, 0, 408, 0, 408, 0, 408, 0, 409, 410, - 409, 408, 409, 0, 0, 409, 410, 409, 0, 410, - 412, 410, 0, 410, 0, 413, 413, 0, 410, 0, - 412, 0, 412, 0, 412, 0, 413, 415, 413, 412, - 413, 0, 0, 416, 0, 413, 0, 415, 0, 415, - 0, 415, 0, 416, 417, 416, 415, 416, 0, 0, - - 0, 0, 416, 0, 417, 0, 417, 418, 417, 0, - 418, 0, 417, 417, 0, 420, 0, 418, 0, 418, - 0, 418, 0, 0, 0, 420, 418, 420, 0, 420, - 421, 421, 0, 422, 420, 420, 423, 0, 0, 0, - 421, 0, 421, 422, 421, 422, 423, 422, 423, 421, - 423, 425, 422, 425, 427, 423, 0, 428, 0, 0, - 0, 425, 0, 425, 427, 425, 427, 428, 427, 428, - 425, 428, 435, 427, 428, 0, 428, 0, 0, 0, - 0, 0, 435, 0, 435, 436, 435, 0, 438, 0, - 435, 435, 436, 0, 0, 436, 0, 436, 438, 436, - - 438, 0, 438, 439, 436, 0, 439, 438, 0, 440, - 0, 0, 0, 439, 0, 439, 0, 439, 0, 440, - 441, 440, 439, 440, 0, 0, 442, 441, 440, 0, - 441, 0, 441, 442, 441, 0, 442, 443, 442, 441, - 442, 0, 0, 444, 0, 442, 0, 443, 0, 443, - 0, 443, 0, 444, 445, 444, 443, 444, 0, 0, - 0, 445, 444, 0, 445, 446, 445, 446, 445, 0, - 0, 447, 0, 445, 0, 446, 0, 446, 0, 446, - 0, 447, 448, 447, 446, 447, 0, 448, 449, 0, - 447, 0, 448, 0, 448, 0, 448, 0, 449, 450, - - 449, 448, 449, 0, 0, 0, 449, 449, 0, 450, - 451, 450, 0, 450, 0, 0, 452, 450, 450, 0, - 451, 0, 451, 0, 451, 0, 452, 453, 452, 451, - 452, 0, 0, 457, 0, 452, 0, 453, 0, 453, - 457, 453, 0, 457, 458, 457, 453, 457, 0, 0, - 0, 0, 457, 0, 458, 459, 458, 0, 458, 0, - 0, 460, 458, 458, 0, 459, 0, 459, 0, 459, - 0, 460, 461, 460, 459, 460, 0, 0, 462, 0, - 460, 462, 461, 0, 461, 0, 461, 0, 462, 461, - 462, 461, 462, 463, 464, 0, 0, 462, 0, 0, - - 0, 0, 0, 463, 464, 463, 464, 463, 464, 465, - 465, 463, 463, 464, 0, 466, 0, 0, 0, 465, - 0, 465, 0, 465, 0, 466, 467, 466, 465, 466, - 0, 0, 469, 0, 466, 0, 467, 0, 467, 0, - 467, 0, 469, 471, 469, 467, 469, 0, 0, 0, - 0, 469, 0, 471, 472, 471, 0, 471, 472, 466, - 473, 0, 471, 0, 472, 0, 472, 0, 472, 0, - 473, 474, 473, 472, 473, 0, 0, 476, 0, 473, - 476, 474, 0, 474, 0, 474, 0, 476, 0, 476, - 474, 476, 477, 0, 0, 477, 476, 0, 479, 0, - - 0, 479, 477, 0, 477, 0, 477, 0, 479, 0, - 479, 477, 479, 481, 481, 488, 0, 479, 0, 0, - 0, 0, 488, 0, 481, 488, 481, 488, 481, 488, - 489, 489, 0, 481, 488, 0, 491, 0, 0, 0, - 489, 0, 489, 0, 489, 0, 491, 492, 491, 489, - 491, 0, 491, 0, 0, 491, 0, 492, 493, 492, - 0, 492, 0, 0, 494, 492, 492, 0, 493, 0, - 493, 0, 493, 0, 494, 495, 494, 493, 494, 0, - 0, 496, 497, 494, 0, 495, 0, 495, 495, 495, - 0, 496, 0, 496, 495, 496, 498, 497, 0, 498, - - 496, 0, 0, 0, 0, 0, 498, 497, 498, 497, - 498, 497, 499, 500, 0, 498, 497, 0, 0, 0, - 500, 0, 499, 500, 499, 500, 499, 500, 501, 0, - 0, 499, 500, 0, 506, 0, 0, 506, 501, 0, - 501, 0, 501, 0, 506, 507, 506, 501, 506, 0, - 0, 508, 0, 506, 0, 507, 0, 507, 0, 507, - 0, 508, 509, 508, 507, 508, 0, 0, 510, 0, - 508, 0, 509, 0, 509, 510, 509, 0, 510, 511, - 510, 509, 510, 0, 0, 0, 0, 510, 0, 511, - 513, 511, 0, 511, 513, 0, 515, 511, 511, 0, - - 513, 0, 513, 519, 513, 0, 515, 517, 515, 513, - 515, 0, 0, 0, 517, 515, 0, 517, 519, 517, - 0, 517, 0, 0, 520, 0, 517, 0, 519, 0, - 519, 0, 519, 0, 520, 522, 520, 519, 520, 0, - 0, 524, 0, 520, 0, 522, 0, 522, 0, 522, - 0, 524, 530, 524, 522, 524, 0, 0, 531, 0, - 524, 0, 530, 0, 530, 530, 530, 0, 531, 533, - 531, 530, 531, 0, 0, 534, 0, 531, 0, 533, - 0, 533, 0, 533, 0, 534, 0, 534, 533, 534, - 535, 536, 534, 535, 534, 0, 536, 0, 0, 0, - - 535, 536, 535, 536, 535, 536, 537, 538, 538, 535, - 536, 0, 0, 0, 0, 0, 537, 538, 537, 538, - 537, 538, 539, 540, 539, 537, 538, 0, 0, 0, - 0, 0, 539, 540, 539, 540, 539, 540, 545, 0, - 0, 539, 540, 0, 0, 0, 546, 0, 545, 0, - 545, 0, 545, 0, 545, 0, 546, 545, 546, 546, - 546, 547, 549, 0, 0, 546, 0, 0, 547, 549, - 0, 547, 549, 547, 549, 547, 549, 552, 0, 0, - 547, 549, 0, 0, 0, 554, 0, 552, 0, 552, - 0, 552, 0, 556, 0, 554, 552, 554, 554, 554, - - 0, 0, 0, 556, 554, 556, 558, 556, 0, 564, - 0, 556, 556, 0, 0, 0, 558, 565, 558, 564, - 558, 564, 0, 564, 0, 558, 0, 565, 564, 565, - 566, 565, 566, 567, 0, 0, 565, 0, 0, 0, - 566, 568, 566, 567, 566, 567, 0, 567, 0, 566, - 0, 568, 567, 568, 569, 568, 0, 0, 568, 0, - 568, 0, 570, 0, 569, 0, 569, 569, 569, 0, - 571, 0, 570, 569, 570, 0, 570, 571, 575, 0, - 571, 570, 571, 0, 571, 0, 576, 0, 575, 571, - 575, 0, 575, 0, 577, 0, 576, 575, 576, 0, - - 576, 0, 579, 0, 577, 576, 577, 577, 577, 0, - 582, 0, 579, 577, 579, 0, 579, 582, 584, 0, - 582, 579, 582, 0, 582, 584, 585, 0, 584, 582, - 584, 0, 584, 585, 592, 0, 585, 584, 585, 0, - 585, 0, 593, 0, 592, 585, 592, 0, 592, 0, - 594, 0, 593, 592, 593, 0, 593, 0, 595, 0, - 594, 593, 594, 0, 594, 0, 596, 0, 595, 594, - 595, 0, 595, 0, 0, 0, 596, 595, 596, 600, - 596, 0, 0, 0, 596, 596, 0, 601, 0, 600, - 0, 600, 0, 600, 0, 603, 600, 601, 600, 601, - - 0, 601, 603, 606, 0, 603, 601, 603, 0, 603, - 0, 0, 0, 606, 603, 606, 608, 606, 608, 609, - 0, 606, 606, 609, 0, 0, 608, 615, 608, 609, - 608, 609, 0, 609, 0, 608, 0, 615, 609, 615, - 616, 615, 0, 620, 0, 615, 615, 0, 0, 0, - 616, 0, 616, 620, 616, 620, 621, 620, 0, 616, - 0, 0, 620, 616, 623, 0, 621, 626, 621, 0, - 621, 0, 0, 0, 623, 621, 623, 626, 623, 626, - 0, 626, 623, 623, 628, 629, 626, 0, 0, 0, - 626, 0, 629, 0, 628, 629, 628, 629, 628, 629, - - 635, 636, 0, 628, 629, 0, 0, 0, 0, 0, - 635, 636, 635, 636, 635, 636, 635, 640, 643, 635, - 636, 0, 0, 0, 0, 0, 0, 640, 643, 640, - 643, 640, 643, 0, 0, 645, 640, 643, 645, 0, - 640, 0, 0, 651, 0, 645, 0, 645, 0, 645, - 0, 653, 0, 651, 645, 651, 651, 651, 0, 656, - 0, 653, 651, 653, 0, 653, 0, 660, 0, 656, - 653, 656, 0, 656, 0, 656, 0, 660, 656, 660, - 664, 660, 0, 667, 0, 0, 660, 0, 0, 0, - 664, 0, 664, 667, 664, 667, 0, 667, 0, 664, - - 0, 0, 667, 671, 671, 671, 671, 671, 671, 671, - 671, 671, 671, 671, 672, 672, 672, 672, 672, 672, - 672, 672, 672, 672, 672, 673, 673, 673, 673, 673, - 673, 673, 673, 673, 673, 673, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 675, 675, 675, - 675, 675, 675, 675, 675, 675, 675, 675, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 677, - 677, 677, 0, 677, 677, 677, 677, 677, 677, 677, - 678, 678, 0, 0, 678, 0, 678, 679, 679, 0, - 679, 680, 680, 0, 680, 680, 680, 0, 680, 680, - - 680, 680, 681, 681, 681, 0, 681, 681, 681, 681, - 681, 681, 681, 682, 682, 682, 682, 682, 682, 682, - 682, 0, 682, 683, 0, 0, 683, 683, 683, 683, - 683, 683, 683, 684, 0, 0, 684, 684, 684, 684, - 684, 684, 684, 685, 0, 0, 685, 0, 685, 685, - 685, 685, 685, 686, 686, 0, 686, 687, 687, 0, - 687, 688, 688, 0, 688, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, - 670, 670, 670 + 31, 31, 40, 40, 41, 559, 558, 544, 544, 544, + 40, 557, 542, 40, 41, 40, 41, 40, 41, 541, + 42, 42, 40, 41, 42, 43, 43, 540, 43, 539, + 42, 537, 42, 535, 42, 532, 43, 530, 43, 42, + + 43, 44, 43, 528, 44, 43, 526, 45, 42, 41, + 45, 44, 519, 44, 45, 44, 46, 45, 518, 45, + 44, 45, 517, 46, 46, 45, 45, 47, 43, 516, + 45, 579, 579, 579, 46, 504, 46, 47, 46, 47, + 46, 47, 48, 46, 544, 47, 47, 46, 499, 498, + 49, 497, 48, 496, 48, 46, 48, 49, 493, 491, + 49, 48, 49, 488, 49, 483, 47, 481, 469, 49, + 51, 51, 51, 468, 450, 447, 444, 48, 443, 442, + 441, 440, 437, 51, 51, 51, 51, 51, 51, 51, + 51, 72, 435, 430, 425, 72, 72, 72, 72, 72, + + 72, 72, 72, 72, 72, 87, 87, 87, 579, 422, + 410, 87, 409, 72, 72, 72, 72, 408, 87, 87, + 90, 90, 90, 90, 90, 90, 90, 90, 93, 93, + 93, 93, 93, 93, 93, 93, 95, 96, 389, 381, + 380, 379, 377, 72, 72, 373, 95, 96, 95, 96, + 95, 96, 97, 99, 96, 95, 96, 371, 366, 361, + 357, 346, 97, 99, 97, 99, 97, 99, 72, 73, + 345, 97, 99, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 344, 325, 100, 98, 314, 313, 312, + 306, 73, 73, 73, 73, 100, 98, 100, 98, 100, + + 98, 102, 295, 100, 100, 98, 102, 290, 73, 98, + 286, 102, 275, 102, 103, 102, 274, 104, 248, 247, + 102, 73, 73, 241, 103, 105, 103, 104, 103, 104, + 240, 104, 103, 103, 239, 105, 104, 105, 105, 105, + 106, 235, 107, 107, 105, 223, 73, 217, 213, 202, + 106, 201, 106, 107, 106, 107, 107, 107, 109, 106, + 108, 108, 107, 173, 169, 164, 162, 149, 109, 109, + 109, 108, 109, 108, 110, 108, 146, 109, 110, 136, + 108, 131, 111, 126, 110, 117, 110, 116, 110, 94, + 91, 88, 111, 110, 111, 83, 111, 112, 112, 112, + + 114, 111, 82, 113, 113, 79, 65, 112, 62, 112, + 114, 112, 114, 113, 114, 113, 112, 113, 115, 114, + 118, 113, 113, 59, 58, 317, 317, 317, 115, 118, + 115, 115, 115, 55, 317, 119, 29, 115, 119, 118, + 25, 118, 20, 118, 19, 119, 120, 119, 118, 119, + 16, 15, 121, 121, 119, 0, 120, 0, 120, 0, + 120, 0, 121, 122, 121, 120, 121, 0, 0, 121, + 121, 121, 0, 122, 123, 122, 122, 122, 0, 0, + 124, 0, 122, 0, 123, 0, 123, 0, 123, 0, + 124, 125, 124, 123, 124, 0, 123, 0, 0, 124, + + 0, 125, 317, 125, 127, 125, 0, 128, 0, 0, + 125, 0, 127, 0, 127, 0, 127, 128, 127, 128, + 129, 128, 0, 127, 0, 128, 128, 0, 130, 0, + 129, 132, 129, 0, 129, 0, 0, 0, 130, 129, + 130, 132, 130, 132, 133, 132, 130, 130, 0, 132, + 132, 0, 0, 0, 133, 134, 133, 0, 133, 0, + 0, 0, 0, 133, 133, 134, 0, 134, 135, 134, + 0, 135, 0, 0, 134, 135, 0, 0, 135, 0, + 135, 0, 135, 137, 137, 0, 0, 135, 0, 0, + 138, 0, 0, 0, 137, 0, 137, 0, 137, 0, + + 138, 139, 138, 137, 138, 138, 0, 140, 138, 138, + 0, 139, 142, 139, 0, 139, 0, 140, 141, 140, + 139, 140, 0, 140, 142, 139, 140, 0, 141, 0, + 141, 0, 141, 0, 142, 143, 142, 141, 142, 0, + 143, 144, 0, 142, 0, 143, 0, 143, 0, 143, + 0, 144, 145, 144, 143, 144, 0, 0, 147, 0, + 144, 0, 145, 0, 145, 147, 145, 0, 147, 0, + 147, 145, 147, 151, 148, 148, 0, 147, 148, 0, + 0, 0, 0, 151, 148, 151, 148, 151, 148, 0, + 0, 151, 151, 148, 153, 153, 153, 174, 174, 174, + + 174, 174, 174, 174, 174, 0, 0, 153, 153, 153, + 153, 153, 153, 153, 153, 154, 0, 0, 0, 154, + 154, 154, 154, 154, 154, 154, 154, 155, 0, 0, + 0, 155, 155, 155, 155, 155, 155, 155, 155, 177, + 178, 0, 177, 0, 0, 0, 0, 0, 0, 177, + 178, 177, 178, 177, 178, 179, 180, 0, 177, 178, + 0, 0, 0, 0, 0, 179, 180, 179, 180, 179, + 180, 181, 0, 0, 179, 180, 0, 0, 0, 182, + 0, 181, 183, 181, 181, 181, 182, 0, 0, 182, + 181, 182, 183, 182, 183, 184, 183, 0, 182, 0, + + 0, 183, 0, 185, 0, 184, 0, 184, 0, 184, + 0, 186, 184, 185, 184, 185, 0, 185, 0, 187, + 0, 186, 185, 186, 0, 186, 187, 186, 0, 187, + 186, 187, 188, 187, 0, 0, 0, 0, 187, 0, + 189, 0, 188, 190, 188, 0, 188, 0, 0, 188, + 189, 188, 189, 190, 189, 190, 0, 190, 0, 189, + 190, 190, 190, 191, 191, 192, 0, 0, 192, 0, + 0, 191, 0, 0, 191, 192, 191, 192, 191, 192, + 193, 0, 0, 191, 192, 0, 194, 0, 0, 0, + 193, 0, 193, 193, 193, 0, 194, 195, 194, 193, + + 194, 0, 0, 196, 0, 194, 196, 195, 195, 195, + 0, 195, 0, 196, 197, 196, 195, 196, 0, 0, + 198, 0, 196, 198, 197, 0, 197, 197, 197, 0, + 198, 199, 198, 197, 198, 0, 0, 0, 0, 198, + 0, 199, 200, 199, 0, 199, 0, 0, 199, 0, + 199, 0, 200, 200, 200, 203, 200, 0, 0, 0, + 0, 200, 0, 204, 0, 203, 205, 203, 0, 203, + 0, 0, 203, 204, 203, 204, 205, 204, 205, 205, + 205, 206, 204, 0, 207, 205, 0, 208, 0, 0, + 208, 206, 0, 206, 207, 206, 207, 208, 207, 208, + + 206, 208, 207, 207, 209, 0, 208, 0, 0, 210, + 0, 0, 209, 0, 0, 211, 0, 0, 0, 210, + 0, 210, 209, 210, 209, 211, 209, 211, 210, 211, + 212, 209, 0, 214, 211, 0, 214, 0, 0, 0, + 212, 0, 212, 214, 212, 214, 0, 214, 215, 212, + 0, 215, 214, 0, 216, 0, 0, 0, 215, 0, + 215, 216, 215, 0, 216, 218, 216, 215, 216, 0, + 0, 0, 0, 216, 0, 218, 219, 218, 0, 218, + 0, 0, 220, 218, 218, 0, 219, 0, 219, 0, + 219, 0, 220, 221, 220, 219, 220, 0, 0, 220, + + 0, 220, 0, 221, 222, 221, 0, 221, 0, 0, + 221, 0, 221, 0, 222, 224, 222, 0, 222, 0, + 225, 225, 0, 222, 222, 224, 0, 224, 0, 224, + 0, 225, 226, 225, 224, 225, 0, 0, 227, 0, + 225, 0, 226, 0, 226, 0, 226, 0, 227, 0, + 227, 226, 227, 228, 229, 0, 228, 227, 0, 0, + 0, 229, 0, 228, 229, 228, 229, 228, 229, 230, + 0, 0, 228, 229, 0, 0, 0, 0, 0, 230, + 231, 230, 0, 230, 0, 0, 232, 230, 230, 0, + 231, 0, 231, 0, 231, 0, 232, 231, 232, 231, + + 232, 233, 0, 232, 233, 232, 0, 234, 0, 0, + 234, 233, 0, 233, 0, 233, 0, 234, 236, 234, + 233, 234, 0, 0, 0, 0, 234, 0, 236, 237, + 236, 236, 236, 236, 0, 238, 0, 236, 236, 237, + 0, 237, 238, 237, 0, 242, 0, 237, 237, 0, + 0, 242, 238, 0, 238, 242, 238, 242, 251, 242, + 0, 238, 0, 0, 242, 243, 243, 243, 251, 0, + 251, 0, 251, 244, 244, 244, 0, 251, 243, 243, + 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, + 244, 244, 244, 244, 252, 0, 0, 0, 0, 0, + + 253, 252, 0, 0, 252, 0, 252, 0, 252, 0, + 253, 253, 253, 252, 253, 254, 255, 0, 0, 253, + 0, 0, 0, 0, 0, 254, 255, 254, 255, 254, + 255, 257, 257, 256, 254, 255, 256, 0, 0, 0, + 0, 0, 257, 256, 257, 256, 257, 256, 0, 258, + 258, 257, 256, 0, 0, 259, 0, 0, 0, 258, + 255, 258, 0, 258, 0, 259, 260, 259, 258, 259, + 0, 0, 259, 0, 259, 0, 260, 261, 260, 260, + 260, 0, 0, 0, 0, 260, 0, 261, 0, 261, + 263, 261, 262, 262, 0, 261, 261, 0, 0, 0, + + 263, 264, 263, 262, 263, 262, 0, 262, 0, 263, + 0, 264, 262, 264, 265, 264, 265, 266, 0, 266, + 264, 0, 0, 0, 265, 0, 265, 266, 265, 266, + 0, 266, 267, 265, 0, 267, 266, 0, 268, 0, + 0, 0, 267, 0, 267, 0, 267, 0, 268, 269, + 268, 267, 268, 0, 0, 270, 269, 268, 0, 269, + 0, 269, 0, 269, 0, 270, 271, 270, 269, 270, + 0, 270, 0, 0, 270, 0, 271, 0, 271, 0, + 271, 272, 271, 0, 272, 271, 0, 273, 0, 0, + 0, 272, 0, 272, 0, 272, 0, 273, 276, 273, + + 272, 273, 0, 0, 277, 0, 273, 0, 276, 0, + 276, 0, 276, 0, 277, 0, 277, 276, 277, 278, + 279, 0, 277, 277, 0, 0, 278, 0, 0, 278, + 279, 278, 279, 278, 279, 280, 279, 0, 278, 279, + 281, 281, 276, 0, 0, 280, 0, 280, 0, 280, + 0, 281, 0, 281, 280, 281, 282, 281, 0, 283, + 281, 282, 0, 0, 0, 0, 282, 0, 282, 283, + 282, 0, 282, 0, 0, 282, 0, 284, 0, 283, + 0, 283, 0, 283, 0, 285, 0, 284, 283, 284, + 0, 284, 0, 0, 284, 285, 284, 285, 0, 285, + + 287, 287, 0, 288, 285, 0, 0, 0, 0, 0, + 287, 0, 287, 288, 287, 288, 289, 288, 0, 287, + 0, 288, 288, 292, 291, 0, 289, 291, 289, 289, + 289, 0, 0, 0, 291, 289, 291, 0, 291, 292, + 0, 0, 293, 291, 0, 293, 0, 0, 0, 292, + 0, 292, 293, 292, 293, 0, 293, 296, 292, 294, + 294, 293, 0, 297, 0, 0, 0, 296, 0, 296, + 294, 296, 294, 297, 294, 297, 296, 297, 0, 294, + 298, 297, 297, 298, 0, 0, 299, 0, 0, 0, + 298, 0, 298, 0, 298, 0, 299, 300, 299, 298, + + 299, 0, 301, 301, 0, 299, 0, 300, 0, 300, + 0, 300, 0, 301, 302, 301, 300, 301, 0, 0, + 303, 305, 301, 0, 302, 0, 302, 0, 302, 0, + 303, 304, 303, 302, 303, 0, 0, 305, 0, 303, + 0, 304, 0, 304, 0, 304, 0, 305, 0, 305, + 304, 305, 307, 308, 0, 0, 305, 0, 302, 0, + 0, 0, 307, 308, 307, 308, 307, 308, 0, 310, + 309, 307, 308, 309, 0, 0, 0, 0, 0, 310, + 309, 310, 309, 310, 309, 0, 311, 315, 310, 309, + 0, 0, 0, 0, 0, 0, 311, 315, 311, 315, + + 311, 315, 0, 311, 310, 311, 315, 316, 316, 316, + 0, 0, 0, 0, 0, 318, 318, 318, 0, 0, + 316, 316, 316, 316, 316, 316, 316, 316, 318, 318, + 318, 318, 318, 318, 318, 318, 319, 0, 321, 0, + 319, 319, 319, 319, 319, 319, 319, 319, 321, 0, + 321, 0, 321, 322, 322, 0, 321, 321, 323, 323, + 0, 0, 0, 322, 0, 322, 0, 322, 0, 323, + 324, 323, 322, 323, 0, 326, 326, 0, 323, 0, + 324, 0, 324, 0, 324, 0, 326, 0, 326, 324, + 326, 327, 327, 0, 328, 326, 0, 328, 0, 0, + + 0, 327, 329, 327, 328, 327, 328, 0, 328, 0, + 327, 0, 329, 328, 329, 330, 329, 0, 0, 0, + 0, 329, 0, 331, 0, 330, 0, 330, 0, 330, + 0, 332, 0, 331, 330, 331, 0, 331, 332, 331, + 0, 332, 331, 332, 333, 332, 0, 0, 0, 0, + 332, 0, 334, 0, 333, 334, 333, 0, 333, 334, + 0, 0, 334, 333, 334, 335, 334, 335, 0, 0, + 0, 334, 0, 336, 0, 335, 336, 335, 0, 335, + 336, 337, 0, 336, 335, 336, 0, 336, 0, 338, + 0, 337, 336, 337, 0, 337, 0, 337, 0, 338, + + 337, 338, 0, 338, 339, 339, 0, 338, 338, 0, + 340, 0, 0, 0, 339, 0, 339, 0, 339, 0, + 340, 341, 340, 339, 340, 0, 0, 342, 340, 340, + 0, 341, 0, 341, 0, 341, 0, 342, 341, 342, + 341, 342, 343, 347, 0, 0, 342, 0, 0, 0, + 347, 0, 343, 347, 343, 347, 343, 347, 0, 0, + 349, 343, 347, 348, 348, 0, 348, 0, 0, 0, + 349, 0, 349, 348, 349, 348, 0, 348, 349, 349, + 351, 350, 348, 350, 0, 0, 0, 0, 0, 0, + 351, 350, 351, 350, 351, 350, 352, 0, 0, 351, + + 350, 0, 353, 0, 0, 353, 352, 0, 352, 0, + 352, 355, 353, 354, 353, 352, 353, 0, 356, 355, + 0, 353, 0, 354, 0, 354, 0, 354, 0, 355, + 354, 355, 354, 355, 356, 0, 0, 358, 355, 0, + 359, 0, 0, 0, 356, 0, 356, 358, 356, 358, + 359, 358, 359, 356, 359, 358, 358, 360, 362, 359, + 0, 0, 0, 0, 0, 0, 0, 360, 362, 360, + 362, 360, 362, 363, 362, 0, 360, 362, 0, 364, + 363, 0, 0, 363, 0, 363, 0, 363, 0, 364, + 365, 364, 363, 364, 0, 0, 0, 0, 364, 0, + + 365, 0, 365, 367, 365, 0, 368, 0, 365, 365, + 367, 0, 0, 367, 369, 367, 368, 367, 368, 369, + 368, 0, 367, 0, 369, 368, 369, 370, 369, 0, + 0, 0, 0, 369, 0, 0, 0, 370, 372, 370, + 0, 370, 0, 0, 374, 372, 370, 0, 372, 370, + 372, 0, 372, 0, 374, 0, 374, 372, 374, 375, + 376, 0, 375, 374, 0, 0, 0, 0, 0, 375, + 376, 375, 376, 375, 376, 378, 376, 0, 375, 376, + 0, 0, 383, 383, 383, 378, 0, 378, 0, 378, + 0, 0, 0, 386, 378, 383, 383, 383, 383, 383, + + 383, 383, 383, 386, 0, 386, 0, 386, 0, 387, + 387, 0, 386, 388, 0, 0, 390, 0, 0, 378, + 387, 0, 387, 388, 387, 388, 390, 388, 390, 387, + 390, 388, 388, 391, 392, 390, 0, 0, 0, 0, + 0, 0, 0, 391, 392, 391, 392, 391, 392, 0, + 0, 391, 391, 392, 393, 0, 0, 393, 0, 394, + 394, 0, 0, 0, 393, 0, 393, 0, 393, 0, + 394, 395, 394, 393, 394, 0, 0, 396, 0, 394, + 0, 395, 0, 395, 0, 395, 0, 396, 0, 396, + 395, 396, 397, 0, 397, 396, 396, 0, 398, 0, + + 0, 0, 397, 0, 397, 0, 397, 0, 398, 0, + 398, 397, 398, 0, 0, 399, 398, 398, 399, 0, + 0, 400, 0, 400, 0, 399, 0, 399, 0, 399, + 0, 400, 401, 400, 399, 400, 0, 402, 402, 0, + 400, 0, 401, 0, 401, 0, 401, 0, 402, 403, + 402, 401, 402, 0, 0, 404, 0, 402, 0, 403, + 0, 403, 404, 403, 0, 404, 405, 404, 403, 404, + 0, 0, 406, 0, 404, 0, 405, 0, 405, 406, + 405, 0, 406, 405, 406, 405, 406, 407, 407, 411, + 0, 406, 0, 411, 0, 0, 0, 0, 407, 411, + + 407, 411, 407, 411, 412, 0, 0, 407, 411, 0, + 413, 412, 413, 0, 412, 0, 412, 0, 412, 0, + 413, 414, 413, 412, 413, 0, 0, 415, 0, 413, + 415, 414, 0, 414, 0, 414, 0, 415, 414, 415, + 414, 415, 416, 416, 0, 0, 415, 0, 417, 417, + 0, 0, 416, 0, 416, 0, 416, 0, 417, 418, + 417, 416, 417, 0, 0, 0, 0, 417, 0, 418, + 0, 418, 0, 418, 419, 418, 0, 419, 418, 0, + 420, 0, 0, 0, 419, 0, 419, 0, 419, 0, + 420, 421, 420, 419, 420, 0, 0, 420, 421, 420, + + 0, 421, 423, 421, 0, 421, 0, 424, 424, 0, + 421, 0, 423, 0, 423, 0, 423, 0, 424, 426, + 424, 423, 424, 0, 0, 427, 0, 424, 0, 426, + 0, 426, 0, 426, 0, 427, 428, 427, 426, 427, + 0, 0, 0, 0, 427, 0, 428, 0, 428, 429, + 428, 0, 429, 0, 428, 428, 0, 431, 0, 429, + 0, 429, 0, 429, 0, 0, 0, 431, 429, 431, + 0, 431, 432, 432, 0, 433, 431, 431, 434, 0, + 0, 0, 432, 0, 432, 433, 432, 433, 434, 433, + 434, 432, 434, 436, 433, 436, 438, 434, 0, 439, + + 0, 0, 0, 436, 0, 436, 438, 436, 438, 439, + 438, 439, 436, 439, 0, 438, 439, 0, 439, 445, + 445, 445, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 445, 445, 445, 445, 445, 445, 445, 445, + 446, 0, 448, 0, 446, 446, 446, 446, 446, 446, + 446, 446, 448, 0, 448, 449, 448, 0, 451, 0, + 448, 448, 449, 0, 0, 449, 0, 449, 451, 449, + 451, 0, 451, 452, 449, 0, 452, 451, 0, 453, + 0, 0, 0, 452, 0, 452, 0, 452, 0, 453, + 454, 453, 452, 453, 0, 0, 455, 454, 453, 0, + + 454, 0, 454, 455, 454, 0, 455, 456, 455, 454, + 455, 0, 0, 457, 0, 455, 0, 456, 0, 456, + 0, 456, 0, 457, 458, 457, 456, 457, 0, 0, + 0, 458, 457, 0, 458, 459, 458, 459, 458, 0, + 0, 460, 0, 458, 0, 459, 0, 459, 0, 459, + 0, 460, 461, 460, 459, 460, 0, 461, 462, 0, + 460, 0, 461, 0, 461, 0, 461, 0, 462, 463, + 462, 461, 462, 0, 0, 0, 462, 462, 0, 463, + 464, 463, 0, 463, 0, 0, 465, 463, 463, 0, + 464, 0, 464, 0, 464, 0, 465, 466, 465, 464, + + 465, 0, 0, 470, 0, 465, 0, 466, 0, 466, + 470, 466, 0, 470, 471, 470, 466, 470, 0, 0, + 0, 0, 470, 0, 471, 472, 471, 0, 471, 0, + 0, 473, 471, 471, 0, 472, 0, 472, 0, 472, + 0, 473, 474, 473, 472, 473, 0, 0, 475, 0, + 473, 475, 474, 0, 474, 0, 474, 0, 475, 474, + 475, 474, 475, 476, 477, 0, 0, 475, 0, 0, + 0, 0, 0, 476, 477, 476, 477, 476, 477, 478, + 478, 476, 476, 477, 0, 479, 0, 0, 0, 478, + 0, 478, 0, 478, 0, 479, 480, 479, 478, 479, + + 0, 0, 482, 0, 479, 0, 480, 0, 480, 0, + 480, 0, 482, 484, 482, 480, 482, 0, 0, 0, + 0, 482, 0, 484, 485, 484, 0, 484, 485, 479, + 486, 0, 484, 0, 485, 0, 485, 0, 485, 0, + 486, 487, 486, 485, 486, 0, 0, 489, 0, 486, + 489, 487, 0, 487, 0, 487, 0, 489, 0, 489, + 487, 489, 490, 0, 0, 490, 489, 0, 492, 0, + 0, 492, 490, 0, 490, 0, 490, 0, 492, 0, + 492, 490, 492, 494, 494, 0, 0, 492, 0, 0, + 0, 500, 500, 500, 494, 0, 494, 0, 494, 0, + + 0, 0, 0, 494, 500, 500, 500, 500, 500, 500, + 500, 500, 502, 503, 503, 0, 0, 0, 0, 502, + 0, 0, 502, 503, 502, 503, 502, 503, 505, 0, + 0, 502, 503, 0, 0, 0, 506, 0, 505, 507, + 505, 0, 505, 0, 505, 0, 506, 505, 506, 507, + 506, 507, 508, 507, 506, 506, 0, 0, 507, 0, + 509, 0, 508, 0, 508, 511, 508, 0, 510, 0, + 509, 508, 509, 509, 509, 0, 0, 0, 510, 509, + 510, 511, 510, 0, 0, 0, 0, 510, 0, 512, + 0, 511, 512, 511, 0, 511, 0, 513, 0, 512, + + 511, 512, 0, 512, 0, 514, 0, 513, 512, 513, + 0, 513, 514, 515, 0, 514, 513, 514, 0, 514, + 0, 0, 0, 515, 514, 515, 520, 515, 0, 520, + 0, 0, 515, 0, 521, 0, 520, 522, 520, 0, + 520, 0, 0, 0, 521, 520, 521, 522, 521, 522, + 523, 522, 0, 521, 0, 0, 522, 0, 524, 0, + 523, 525, 523, 0, 523, 524, 0, 0, 524, 523, + 524, 525, 524, 525, 527, 525, 0, 524, 527, 525, + 525, 0, 529, 0, 527, 0, 527, 533, 527, 0, + 531, 0, 529, 527, 529, 0, 529, 531, 0, 0, + + 531, 529, 531, 533, 531, 0, 534, 0, 0, 531, + 0, 0, 0, 533, 536, 533, 534, 533, 534, 0, + 534, 0, 533, 0, 536, 534, 536, 538, 536, 0, + 0, 0, 0, 536, 543, 543, 543, 538, 0, 538, + 0, 538, 0, 0, 0, 546, 538, 543, 543, 543, + 543, 543, 543, 543, 543, 546, 547, 546, 546, 546, + 0, 0, 549, 0, 546, 0, 547, 0, 547, 0, + 547, 0, 549, 550, 549, 547, 549, 0, 0, 551, + 0, 549, 551, 550, 0, 550, 0, 550, 0, 551, + 550, 551, 550, 551, 552, 553, 0, 0, 551, 552, + + 0, 0, 0, 0, 552, 553, 552, 553, 552, 553, + 554, 554, 0, 552, 553, 0, 555, 0, 555, 0, + 554, 0, 554, 0, 554, 0, 555, 556, 555, 554, + 555, 0, 0, 561, 0, 555, 0, 556, 0, 556, + 0, 556, 0, 561, 562, 561, 556, 561, 0, 561, + 0, 0, 561, 0, 562, 563, 562, 562, 562, 0, + 0, 565, 563, 562, 0, 563, 0, 563, 565, 563, + 0, 565, 568, 565, 563, 565, 0, 0, 0, 0, + 565, 0, 568, 570, 568, 0, 568, 0, 0, 572, + 0, 568, 0, 570, 0, 570, 570, 570, 0, 572, + + 574, 572, 570, 572, 0, 0, 582, 572, 572, 0, + 574, 0, 574, 0, 574, 0, 582, 583, 582, 574, + 582, 0, 0, 0, 0, 582, 0, 583, 584, 583, + 584, 583, 0, 0, 585, 0, 583, 0, 584, 0, + 584, 0, 584, 0, 585, 586, 585, 584, 585, 0, + 0, 0, 0, 585, 0, 586, 587, 586, 0, 586, + 0, 0, 586, 0, 586, 0, 587, 588, 587, 587, + 587, 0, 0, 589, 0, 587, 0, 588, 0, 588, + 589, 588, 0, 589, 593, 589, 588, 589, 0, 0, + 594, 0, 589, 0, 593, 0, 593, 0, 593, 0, + + 594, 595, 594, 593, 594, 0, 0, 597, 0, 594, + 0, 595, 0, 595, 595, 595, 0, 597, 600, 597, + 595, 597, 0, 0, 602, 600, 597, 0, 600, 0, + 600, 602, 600, 0, 602, 603, 602, 600, 602, 0, + 0, 610, 603, 602, 0, 603, 0, 603, 0, 603, + 0, 610, 611, 610, 603, 610, 0, 0, 612, 0, + 610, 0, 611, 0, 611, 0, 611, 0, 612, 613, + 612, 611, 612, 0, 0, 614, 0, 612, 0, 613, + 0, 613, 0, 613, 0, 614, 618, 614, 613, 614, + 0, 0, 619, 614, 614, 0, 618, 0, 618, 0, + + 618, 0, 619, 618, 619, 618, 619, 621, 0, 0, + 624, 619, 0, 626, 621, 626, 0, 621, 0, 621, + 624, 621, 624, 626, 624, 626, 621, 626, 624, 624, + 627, 0, 626, 633, 627, 0, 634, 0, 0, 0, + 627, 0, 627, 633, 627, 633, 634, 633, 634, 627, + 634, 633, 633, 638, 639, 634, 0, 0, 0, 634, + 0, 0, 0, 638, 639, 638, 639, 638, 639, 641, + 644, 0, 638, 639, 0, 0, 0, 0, 0, 641, + 644, 641, 644, 641, 644, 646, 0, 641, 641, 644, + 0, 647, 0, 644, 0, 646, 0, 646, 647, 646, + + 0, 647, 653, 647, 646, 647, 0, 0, 0, 0, + 647, 0, 653, 654, 653, 0, 653, 0, 653, 658, + 0, 653, 0, 654, 0, 654, 0, 654, 0, 658, + 0, 658, 654, 658, 661, 0, 0, 663, 658, 0, + 663, 0, 658, 0, 661, 669, 661, 663, 661, 663, + 0, 663, 0, 661, 0, 669, 663, 669, 669, 669, + 671, 674, 0, 0, 669, 0, 0, 0, 0, 0, + 671, 674, 671, 674, 671, 674, 678, 674, 0, 671, + 674, 0, 682, 0, 0, 0, 678, 0, 678, 0, + 678, 0, 682, 685, 682, 678, 682, 0, 0, 0, + + 0, 682, 0, 685, 0, 685, 0, 685, 0, 0, + 0, 0, 685, 689, 689, 689, 689, 689, 689, 689, + 689, 689, 689, 689, 689, 689, 689, 690, 690, 690, + 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, + 690, 691, 691, 691, 691, 691, 691, 691, 691, 691, + 691, 691, 691, 691, 691, 692, 692, 692, 692, 692, + 692, 692, 692, 692, 692, 692, 692, 692, 692, 693, + 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, + 693, 693, 693, 694, 694, 694, 694, 694, 694, 694, + 694, 694, 694, 694, 694, 694, 694, 695, 695, 695, + + 0, 695, 695, 695, 695, 695, 695, 695, 695, 695, + 695, 696, 696, 0, 0, 696, 0, 0, 696, 0, + 696, 697, 697, 0, 697, 697, 698, 698, 0, 698, + 698, 698, 698, 0, 698, 698, 698, 698, 698, 698, + 699, 699, 699, 0, 699, 699, 699, 699, 699, 699, + 699, 699, 699, 699, 700, 700, 700, 700, 700, 700, + 700, 700, 700, 0, 700, 700, 701, 0, 0, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 702, 0, + 0, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 703, 0, 0, 703, 0, 703, 703, 703, 703, 703, + + 703, 703, 704, 704, 0, 704, 704, 705, 705, 0, + 705, 705, 706, 706, 0, 706, 706, 707, 707, 0, + 0, 0, 707, 0, 707, 0, 0, 0, 0, 707, + 708, 708, 0, 0, 0, 0, 0, 708, 0, 0, + 0, 0, 708, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688 } ; extern int yy_flex_debug; int yy_flex_debug = 1; -static yyconst short int yy_rule_linenum[129] = +static yyconst short int yy_rule_linenum[130] = { 0, 103, 106, 108, 109, 110, 113, 115, 116, 117, 129, 136, 143, 149, 158, 166, 174, 175, 177, 196, 202, @@ -1718,7 +1787,7 @@ static yyconst short int yy_rule_linenum[129] = 336, 337, 338, 339, 340, 341, 342, 347, 348, 353, 354, 355, 358, 364, 371, 380, 391, 397, 399, 400, - 402, 404, 406, 419, 425, 431, 438, 440 + 404, 410, 416, 424, 427, 452, 496, 498, 509 } ; static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; @@ -1832,7 +1901,7 @@ static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */ /* Newline */ /* White-space */ -#line 1836 "asn1p_l.c" +#line 1905 "asn1p_l.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1986,7 +2055,7 @@ YY_DECL #line 101 "asn1p_l.l" -#line 1990 "asn1p_l.c" +#line 2059 "asn1p_l.c" if ( yy_init ) { @@ -2034,14 +2103,14 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 671 ) + if ( yy_current_state >= 689 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *yy_state_ptr++ = yy_current_state; ++yy_cp; } - while ( yy_base[yy_current_state] != 4266 ); + while ( yy_base[yy_current_state] != 4544 ); yy_find_action: yy_current_state = *--yy_state_ptr; @@ -2078,13 +2147,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 129 ) + else if ( yy_act < 130 ) fprintf( stderr, "--accepting rule at line %d (\"%s\")\n", yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 129 ) + else if ( yy_act == 130 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 130 ) + else if ( yy_act == 131 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2838,66 +2907,135 @@ YY_RULE_SETUP #line 400 "asn1p_l.l" return TOK_TwoDots; YY_BREAK + case 121: YY_RULE_SETUP -#line 402 "asn1p_l.l" -/* Ignore whitespace */ - YY_BREAK -case 122: -YY_RULE_SETUP #line 404 "asn1p_l.l" -return yytext[0]; - YY_BREAK -case 123: -YY_RULE_SETUP -#line 406 "asn1p_l.l" -{ - if(TYPE_LIFETIME(1994, 0)) - fprintf(stderr, "ERROR: "); - fprintf(stderr, - "Symbol '%c' at line %d is prohibited " - "by ASN.1:1994 and ASN.1:1997\n", - yytext[0], yylineno); - if(TYPE_LIFETIME(1994, 0)) - return -1; - } - YY_BREAK - -case 124: -YY_RULE_SETUP -#line 419 "asn1p_l.l" { asn1p_lval.tv_opaque.buf = strdup(yytext); asn1p_lval.tv_opaque.len = yyleng; return TOK_opaque; } YY_BREAK -case 125: +case 122: YY_RULE_SETUP -#line 425 "asn1p_l.l" +#line 410 "asn1p_l.l" { asn1p_lval.tv_opaque.buf = strdup(yytext); asn1p_lval.tv_opaque.len = yyleng; return TOK_opaque; } YY_BREAK -case 126: +case 123: YY_RULE_SETUP -#line 431 "asn1p_l.l" +#line 416 "asn1p_l.l" { yy_pop_state(); return '}'; } YY_BREAK +case 124: +YY_RULE_SETUP +#line 424 "asn1p_l.l" +/* Ignore whitespace */ + YY_BREAK +case 125: +YY_RULE_SETUP +#line 427 "asn1p_l.l" +{ + asn1c_integer_t v1 = -1, v2 = -1; + char *p; + for(p = yytext; *p; p++) + if(*p >= '0' && *p <= '9') + { v1 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; /* Skip digits */ + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v2 = asn1p_atoi(p); break; } + if(v1 < 0 || v1 > 7) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.14 " + "mandates 0..7 range for Tuple's TableColumn\n", + yytext, yylineno); + return -1; + } + if(v2 < 0 || v2 > 15) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.14 " + "mandates 0..15 range for Tuple's TableRow\n", + yytext, yylineno); + return -1; + } + asn1p_lval.a_int = (v1 << 4) + v2; + return TOK_tuple; + } + YY_BREAK +case 126: +YY_RULE_SETUP +#line 452 "asn1p_l.l" +{ + asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1; + char *p; + for(p = yytext; *p; p++) + if(*p >= '0' && *p <= '9') + { v1 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; /* Skip digits */ + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v2 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v3 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v4 = asn1p_atoi(p); break; } + if(v1 < 0 || v1 > 127) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..127 range for Quadruple's Group\n", + yytext, yylineno); + return -1; + } + if(v2 < 0 || v2 > 255) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..255 range for Quadruple's Plane\n", + yytext, yylineno); + return -1; + } + if(v3 < 0 || v3 > 255) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..255 range for Quadruple's Row\n", + yytext, yylineno); + return -1; + } + if(v4 < 0 || v4 > 255) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..255 range for Quadruple's Cell\n", + yytext, yylineno); + return -1; + } + asn1p_lval.a_int = (v1 << 24) | (v2 << 16) | (v3 << 8) | v4; + return TOK_quadruple; + } + YY_BREAK case 127: YY_RULE_SETUP -#line 438 "asn1p_l.l" -return yytext[0]; /* Union, Intersection */ +#line 496 "asn1p_l.l" +return yytext[0]; YY_BREAK case 128: YY_RULE_SETUP -#line 440 "asn1p_l.l" +#line 498 "asn1p_l.l" +{ + if(TYPE_LIFETIME(1994, 0)) + fprintf(stderr, "ERROR: "); + fprintf(stderr, + "Symbol '%c' at line %d is prohibited " + "by ASN.1:1994 and ASN.1:1997\n", + yytext[0], yylineno); + if(TYPE_LIFETIME(1994, 0)) + return -1; + } + YY_BREAK +case 129: +YY_RULE_SETUP +#line 509 "asn1p_l.l" { fprintf(stderr, "Unexpected token at line %d: \"%s\"\n", @@ -2918,19 +3056,19 @@ case YY_STATE_EOF(quoted): case YY_STATE_EOF(opaque): case YY_STATE_EOF(encoding_control): case YY_STATE_EOF(with_syntax): -#line 453 "asn1p_l.l" +#line 522 "asn1p_l.l" { while(YYSTATE != INITIAL) yy_pop_state(); yyterminate(); } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 460 "asn1p_l.l" +#line 529 "asn1p_l.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 2934 "asn1p_l.c" +#line 3072 "asn1p_l.c" case YY_END_OF_BUFFER: { @@ -3217,7 +3355,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 671 ) + if ( yy_current_state >= 689 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3247,11 +3385,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 671 ) + if ( yy_current_state >= 689 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 670); + yy_is_jam = (yy_current_state == 688); if ( ! yy_is_jam ) *yy_state_ptr++ = yy_current_state; @@ -3812,7 +3950,7 @@ int main() return 0; } #endif -#line 460 "asn1p_l.l" +#line 529 "asn1p_l.l" /* diff --git a/libasn1parser/asn1p_l.l b/libasn1parser/asn1p_l.l index 50a786c9..458d6654 100644 --- a/libasn1parser/asn1p_l.l +++ b/libasn1parser/asn1p_l.l @@ -399,21 +399,6 @@ WITH return TOK_WITH; "..." return TOK_ThreeDots; ".." return TOK_TwoDots; -{WSP}+ /* Ignore whitespace */ - -[(){},;:|!.&@\[\]] return yytext[0]; - -[^A-Za-z0-9:=,{}<.@()[]'\"|&^*;!-] { - if(TYPE_LIFETIME(1994, 0)) - fprintf(stderr, "ERROR: "); - fprintf(stderr, - "Symbol '%c' at line %d is prohibited " - "by ASN.1:1994 and ASN.1:1997\n", - yytext[0], yylineno); - if(TYPE_LIFETIME(1994, 0)) - return -1; - } - <with_syntax>{ [^&{} \t\r\v\f\n]+ { @@ -435,7 +420,91 @@ WITH return TOK_WITH; } -[|^] return yytext[0]; /* Union, Intersection */ + +{WSP}+ /* Ignore whitespace */ + + +[{][\t\r\v\f\n ]*[0-7][,][\t\r\v\f\n ]*[0-9]+[\t\r\v\f\n ]*[}] { + asn1c_integer_t v1 = -1, v2 = -1; + char *p; + for(p = yytext; *p; p++) + if(*p >= '0' && *p <= '9') + { v1 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; /* Skip digits */ + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v2 = asn1p_atoi(p); break; } + if(v1 < 0 || v1 > 7) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.14 " + "mandates 0..7 range for Tuple's TableColumn\n", + yytext, yylineno); + return -1; + } + if(v2 < 0 || v2 > 15) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.14 " + "mandates 0..15 range for Tuple's TableRow\n", + yytext, yylineno); + return -1; + } + asn1p_lval.a_int = (v1 << 4) + v2; + return TOK_tuple; + } + +[{][\t\r\v\f\n ]*[0-9]+[,][\t\r\v\f\n ]*[0-9]+[,][\t\r\v\f\n ]*[0-9]+[,][\t\r\v\f\n ]*[0-9]+[\t\r\v\f\n ]*[}] { + asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1; + char *p; + for(p = yytext; *p; p++) + if(*p >= '0' && *p <= '9') + { v1 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; /* Skip digits */ + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v2 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v3 = asn1p_atoi(p); break; } + while(*p >= '0' && *p <= '9') p++; + for(; *p; p++) if(*p >= '0' && *p <= '9') + { v4 = asn1p_atoi(p); break; } + if(v1 < 0 || v1 > 127) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..127 range for Quadruple's Group\n", + yytext, yylineno); + return -1; + } + if(v2 < 0 || v2 > 255) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..255 range for Quadruple's Plane\n", + yytext, yylineno); + return -1; + } + if(v3 < 0 || v3 > 255) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..255 range for Quadruple's Row\n", + yytext, yylineno); + return -1; + } + if(v4 < 0 || v4 > 255) { + fprintf(stderr, "%s at line %d: X.680:2003, #37.12 " + "mandates 0..255 range for Quadruple's Cell\n", + yytext, yylineno); + return -1; + } + asn1p_lval.a_int = (v1 << 24) | (v2 << 16) | (v3 << 8) | v4; + return TOK_quadruple; + } + + +[(){},;:|!.&@\[\]^] return yytext[0]; + +[^A-Za-z0-9:=,{}<.@()[]'\"|&^*;!-] { + if(TYPE_LIFETIME(1994, 0)) + fprintf(stderr, "ERROR: "); + fprintf(stderr, + "Symbol '%c' at line %d is prohibited " + "by ASN.1:1994 and ASN.1:1997\n", + yytext[0], yylineno); + if(TYPE_LIFETIME(1994, 0)) + return -1; + } <*>. { fprintf(stderr, diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c index 353c4fa4..1f90ec35 100644 --- a/libasn1parser/asn1p_y.c +++ b/libasn1parser/asn1p_y.c @@ -18,97 +18,99 @@ #define TOK_hstring 261 #define TOK_identifier 262 #define TOK_number 263 -#define TOK_number_negative 264 -#define TOK_typereference 265 -#define TOK_capitalreference 266 -#define TOK_typefieldreference 267 -#define TOK_valuefieldreference 268 -#define TOK_ABSENT 269 -#define TOK_ABSTRACT_SYNTAX 270 -#define TOK_ALL 271 -#define TOK_ANY 272 -#define TOK_APPLICATION 273 -#define TOK_AUTOMATIC 274 -#define TOK_BEGIN 275 -#define TOK_BIT 276 -#define TOK_BMPString 277 -#define TOK_BOOLEAN 278 -#define TOK_BY 279 -#define TOK_CHARACTER 280 -#define TOK_CHOICE 281 -#define TOK_CLASS 282 -#define TOK_COMPONENT 283 -#define TOK_COMPONENTS 284 -#define TOK_CONSTRAINED 285 -#define TOK_CONTAINING 286 -#define TOK_DEFAULT 287 -#define TOK_DEFINITIONS 288 -#define TOK_DEFINED 289 -#define TOK_EMBEDDED 290 -#define TOK_ENCODED 291 -#define TOK_ENCODING_CONTROL 292 -#define TOK_END 293 -#define TOK_ENUMERATED 294 -#define TOK_EXPLICIT 295 -#define TOK_EXPORTS 296 -#define TOK_EXTENSIBILITY 297 -#define TOK_EXTERNAL 298 -#define TOK_FALSE 299 -#define TOK_FROM 300 -#define TOK_GeneralizedTime 301 -#define TOK_GeneralString 302 -#define TOK_GraphicString 303 -#define TOK_IA5String 304 -#define TOK_IDENTIFIER 305 -#define TOK_IMPLICIT 306 -#define TOK_IMPLIED 307 -#define TOK_IMPORTS 308 -#define TOK_INCLUDES 309 -#define TOK_INSTANCE 310 -#define TOK_INSTRUCTIONS 311 -#define TOK_INTEGER 312 -#define TOK_ISO646String 313 -#define TOK_MAX 314 -#define TOK_MIN 315 -#define TOK_MINUS_INFINITY 316 -#define TOK_NULL 317 -#define TOK_NumericString 318 -#define TOK_OBJECT 319 -#define TOK_ObjectDescriptor 320 -#define TOK_OCTET 321 -#define TOK_OF 322 -#define TOK_OPTIONAL 323 -#define TOK_PATTERN 324 -#define TOK_PDV 325 -#define TOK_PLUS_INFINITY 326 -#define TOK_PRESENT 327 -#define TOK_PrintableString 328 -#define TOK_PRIVATE 329 -#define TOK_REAL 330 -#define TOK_RELATIVE_OID 331 -#define TOK_SEQUENCE 332 -#define TOK_SET 333 -#define TOK_SIZE 334 -#define TOK_STRING 335 -#define TOK_SYNTAX 336 -#define TOK_T61String 337 -#define TOK_TAGS 338 -#define TOK_TeletexString 339 -#define TOK_TRUE 340 -#define TOK_TYPE_IDENTIFIER 341 -#define TOK_UNIQUE 342 -#define TOK_UNIVERSAL 343 -#define TOK_UniversalString 344 -#define TOK_UTCTime 345 -#define TOK_UTF8String 346 -#define TOK_VideotexString 347 -#define TOK_VisibleString 348 -#define TOK_WITH 349 -#define TOK_EXCEPT 350 -#define TOK_INTERSECTION 351 -#define TOK_UNION 352 -#define TOK_TwoDots 353 -#define TOK_ThreeDots 354 +#define TOK_tuple 264 +#define TOK_quadruple 265 +#define TOK_number_negative 266 +#define TOK_typereference 267 +#define TOK_capitalreference 268 +#define TOK_typefieldreference 269 +#define TOK_valuefieldreference 270 +#define TOK_ABSENT 271 +#define TOK_ABSTRACT_SYNTAX 272 +#define TOK_ALL 273 +#define TOK_ANY 274 +#define TOK_APPLICATION 275 +#define TOK_AUTOMATIC 276 +#define TOK_BEGIN 277 +#define TOK_BIT 278 +#define TOK_BMPString 279 +#define TOK_BOOLEAN 280 +#define TOK_BY 281 +#define TOK_CHARACTER 282 +#define TOK_CHOICE 283 +#define TOK_CLASS 284 +#define TOK_COMPONENT 285 +#define TOK_COMPONENTS 286 +#define TOK_CONSTRAINED 287 +#define TOK_CONTAINING 288 +#define TOK_DEFAULT 289 +#define TOK_DEFINITIONS 290 +#define TOK_DEFINED 291 +#define TOK_EMBEDDED 292 +#define TOK_ENCODED 293 +#define TOK_ENCODING_CONTROL 294 +#define TOK_END 295 +#define TOK_ENUMERATED 296 +#define TOK_EXPLICIT 297 +#define TOK_EXPORTS 298 +#define TOK_EXTENSIBILITY 299 +#define TOK_EXTERNAL 300 +#define TOK_FALSE 301 +#define TOK_FROM 302 +#define TOK_GeneralizedTime 303 +#define TOK_GeneralString 304 +#define TOK_GraphicString 305 +#define TOK_IA5String 306 +#define TOK_IDENTIFIER 307 +#define TOK_IMPLICIT 308 +#define TOK_IMPLIED 309 +#define TOK_IMPORTS 310 +#define TOK_INCLUDES 311 +#define TOK_INSTANCE 312 +#define TOK_INSTRUCTIONS 313 +#define TOK_INTEGER 314 +#define TOK_ISO646String 315 +#define TOK_MAX 316 +#define TOK_MIN 317 +#define TOK_MINUS_INFINITY 318 +#define TOK_NULL 319 +#define TOK_NumericString 320 +#define TOK_OBJECT 321 +#define TOK_ObjectDescriptor 322 +#define TOK_OCTET 323 +#define TOK_OF 324 +#define TOK_OPTIONAL 325 +#define TOK_PATTERN 326 +#define TOK_PDV 327 +#define TOK_PLUS_INFINITY 328 +#define TOK_PRESENT 329 +#define TOK_PrintableString 330 +#define TOK_PRIVATE 331 +#define TOK_REAL 332 +#define TOK_RELATIVE_OID 333 +#define TOK_SEQUENCE 334 +#define TOK_SET 335 +#define TOK_SIZE 336 +#define TOK_STRING 337 +#define TOK_SYNTAX 338 +#define TOK_T61String 339 +#define TOK_TAGS 340 +#define TOK_TeletexString 341 +#define TOK_TRUE 342 +#define TOK_TYPE_IDENTIFIER 343 +#define TOK_UNIQUE 344 +#define TOK_UNIVERSAL 345 +#define TOK_UniversalString 346 +#define TOK_UTCTime 347 +#define TOK_UTF8String 348 +#define TOK_VideotexString 349 +#define TOK_VisibleString 350 +#define TOK_WITH 351 +#define TOK_EXCEPT 352 +#define TOK_INTERSECTION 353 +#define TOK_UNION 354 +#define TOK_TwoDots 355 +#define TOK_ThreeDots 356 #line 1 "asn1p_y.y" @@ -204,26 +206,26 @@ typedef union { -#define YYFINAL 437 +#define YYFINAL 429 #define YYFLAG -32768 -#define YYNTBASE 116 +#define YYNTBASE 118 -#define YYTRANSLATE(x) ((unsigned)(x) <= 354 ? yytranslate[x] : 220) +#define YYTRANSLATE(x) ((unsigned)(x) <= 356 ? yytranslate[x] : 222) static const char 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, 110, 2, 2, 2, 2, 2, 2, 105, - 106, 2, 2, 108, 2, 111, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 109, 107, 112, - 2, 2, 2, 113, 2, 2, 2, 2, 2, 2, + 2, 2, 112, 2, 2, 2, 2, 2, 2, 107, + 108, 2, 2, 110, 2, 113, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 111, 109, 114, + 2, 2, 2, 115, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 114, 2, 115, 97, 2, 2, 2, 2, 2, 2, + 116, 2, 117, 99, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 103, 99, 104, 2, 2, 2, 2, 2, + 2, 2, 105, 101, 106, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -246,7 +248,7 @@ static const char yytranslate[] = { 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 98, 100, 101, 102 + 97, 98, 100, 102, 103, 104 }; #if YYDEBUG != 0 @@ -265,136 +267,134 @@ static const short yyprhs[] = { 0, 327, 334, 341, 343, 348, 353, 355, 359, 361, 365, 369, 373, 375, 379, 381, 385, 387, 389, 391, 393, 398, 402, 403, 407, 409, 411, 413, 415, 417, 419, - 421, 423, 425, 429, 431, 437, 447, 449, 452, 454, - 456, 458, 460, 463, 466, 468, 470, 473, 476, 478, - 480, 482, 484, 486, 489, 491, 494, 496, 498, 500, - 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, - 522, 524, 526, 528, 530, 532, 533, 535, 537, 542, - 546, 551, 553, 557, 563, 565, 569, 573, 577, 581, - 586, 590, 592, 594, 598, 602, 606, 610, 612, 614, - 615, 621, 623, 626, 629, 633, 635, 637, 639, 641, - 643, 645, 647, 649, 655, 657, 661, 663, 667, 668, - 670, 672, 674, 676, 678, 680, 684, 689, 691, 695, - 698, 702, 704, 708, 709, 711, 713, 716, 719, 723, - 725, 729, 731, 736, 741, 743, 745, 747, 749, 750, - 752, 755, 760, 761, 763, 765, 767, 768, 770, 772, - 774, 776, 778, 779, 781 + 421, 423, 425, 429, 431, 433, 435, 437, 440, 442, + 444, 446, 448, 451, 454, 456, 458, 461, 464, 466, + 468, 470, 472, 474, 477, 479, 482, 484, 486, 488, + 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, + 510, 512, 514, 516, 518, 520, 521, 523, 525, 530, + 534, 539, 541, 545, 551, 553, 557, 561, 565, 569, + 574, 578, 580, 582, 586, 590, 594, 598, 600, 602, + 603, 609, 611, 614, 617, 621, 623, 625, 627, 629, + 631, 633, 635, 637, 643, 645, 649, 651, 655, 656, + 658, 660, 662, 664, 666, 668, 672, 677, 679, 683, + 686, 690, 692, 696, 697, 699, 701, 704, 707, 711, + 713, 717, 719, 724, 729, 731, 733, 735, 737, 738, + 740, 743, 748, 749, 751, 753, 755, 756, 758, 760, + 762, 764, 766, 767, 769 }; -static const short yyrhs[] = { 117, - 0, 118, 0, 117, 118, 0, 216, 119, 34, 123, - 3, 21, 126, 39, 0, 0, 120, 0, 103, 121, - 104, 0, 103, 104, 0, 122, 0, 121, 122, 0, - 219, 0, 219, 105, 9, 106, 0, 9, 0, 0, - 124, 0, 125, 0, 124, 125, 0, 41, 84, 0, - 52, 84, 0, 20, 84, 0, 43, 53, 0, 12, - 57, 0, 0, 127, 0, 128, 0, 127, 128, 0, - 130, 0, 135, 0, 143, 0, 170, 0, 138, 0, - 0, 38, 12, 129, 0, 179, 0, 54, 131, 107, - 0, 54, 46, 0, 132, 0, 131, 132, 0, 133, - 46, 216, 119, 0, 134, 0, 133, 108, 134, 0, - 216, 0, 216, 103, 104, 0, 219, 0, 42, 136, - 107, 0, 42, 17, 107, 0, 42, 107, 0, 137, - 0, 136, 108, 137, 0, 216, 0, 216, 103, 104, - 0, 219, 0, 216, 139, 3, 103, 140, 104, 0, - 165, 0, 176, 0, 0, 141, 0, 142, 0, 141, - 108, 142, 0, 102, 0, 187, 0, 216, 3, 211, - 87, 0, 216, 3, 163, 0, 216, 3, 153, 0, - 216, 103, 144, 104, 3, 163, 0, 145, 0, 144, - 108, 145, 0, 216, 0, 216, 109, 219, 0, 216, - 109, 216, 0, 176, 109, 219, 0, 147, 0, 146, - 108, 147, 0, 163, 0, 219, 0, 0, 149, 0, - 150, 0, 149, 108, 150, 0, 219, 163, 205, 0, - 30, 68, 163, 0, 162, 0, 152, 0, 151, 108, - 152, 0, 219, 163, 0, 162, 0, 28, 103, 155, - 104, 157, 0, 0, 88, 0, 156, 0, 155, 108, - 156, 0, 168, 205, 0, 168, 163, 154, 205, 0, - 168, 168, 154, 205, 0, 0, 158, 0, 0, 95, - 82, 103, 159, 160, 104, 0, 161, 0, 160, 161, - 0, 4, 0, 168, 0, 102, 0, 102, 110, 173, - 0, 102, 110, 210, 0, 211, 164, 183, 0, 178, - 0, 27, 103, 151, 104, 0, 78, 103, 148, 104, - 0, 79, 103, 148, 104, 0, 78, 183, 68, 218, - 211, 164, 0, 79, 183, 68, 218, 211, 164, 0, - 18, 0, 18, 35, 25, 219, 0, 216, 103, 146, - 104, 0, 165, 0, 56, 68, 165, 0, 11, 0, - 11, 111, 216, 0, 217, 111, 216, 0, 11, 111, - 219, 0, 217, 0, 217, 111, 166, 0, 167, 0, - 166, 111, 167, 0, 169, 0, 169, 0, 13, 0, - 14, 0, 219, 139, 3, 171, 0, 219, 109, 171, - 0, 0, 103, 172, 175, 0, 63, 0, 45, 0, - 86, 0, 5, 0, 7, 0, 174, 0, 210, 0, - 173, 0, 219, 0, 216, 111, 219, 0, 6, 0, - 103, 9, 108, 9, 104, 0, 103, 9, 108, 9, - 108, 9, 108, 9, 104, 0, 4, 0, 175, 4, - 0, 24, 0, 63, 0, 76, 0, 177, 0, 67, - 81, 0, 65, 51, 0, 77, 0, 44, 0, 36, - 71, 0, 26, 81, 0, 91, 0, 47, 0, 179, - 0, 58, 0, 40, 0, 22, 81, 0, 176, 0, - 177, 207, 0, 23, 0, 48, 0, 49, 0, 50, - 0, 59, 0, 64, 0, 74, 0, 83, 0, 85, - 0, 90, 0, 92, 0, 93, 0, 94, 0, 66, - 0, 99, 0, 100, 0, 97, 0, 98, 0, 96, - 0, 0, 184, 0, 185, 0, 80, 105, 186, 106, - 0, 105, 186, 106, 0, 185, 105, 186, 106, 0, - 187, 0, 187, 108, 102, 0, 187, 108, 102, 108, - 187, 0, 188, 0, 17, 96, 188, 0, 187, 180, - 188, 0, 187, 181, 188, 0, 188, 182, 188, 0, - 191, 105, 186, 106, 0, 105, 186, 106, 0, 192, - 0, 193, 0, 192, 190, 192, 0, 61, 190, 192, - 0, 192, 190, 60, 0, 61, 190, 60, 0, 199, - 0, 194, 0, 0, 31, 25, 103, 189, 175, 0, - 101, 0, 101, 112, 0, 112, 101, 0, 112, 101, - 112, 0, 80, 0, 46, 0, 45, 0, 86, 0, - 210, 0, 174, 0, 219, 0, 216, 0, 95, 30, - 103, 195, 104, 0, 196, 0, 195, 108, 196, 0, - 102, 0, 219, 183, 197, 0, 0, 198, 0, 73, - 0, 15, 0, 69, 0, 200, 0, 201, 0, 103, - 216, 104, 0, 200, 103, 202, 104, 0, 203, 0, - 202, 108, 203, 0, 113, 204, 0, 113, 111, 204, - 0, 219, 0, 204, 111, 219, 0, 0, 206, 0, - 69, 0, 33, 171, 0, 103, 104, 0, 103, 208, - 104, 0, 209, 0, 208, 108, 209, 0, 219, 0, - 219, 105, 210, 106, 0, 219, 105, 173, 106, 0, - 210, 0, 102, 0, 9, 0, 10, 0, 0, 212, - 0, 213, 215, 0, 114, 214, 9, 115, 0, 0, - 89, 0, 19, 0, 75, 0, 0, 52, 0, 41, - 0, 11, 0, 12, 0, 12, 0, 0, 219, 0, - 8, 0 +static const short yyrhs[] = { 119, + 0, 120, 0, 119, 120, 0, 218, 121, 36, 125, + 3, 23, 128, 41, 0, 0, 122, 0, 105, 123, + 106, 0, 105, 106, 0, 124, 0, 123, 124, 0, + 221, 0, 221, 107, 9, 108, 0, 9, 0, 0, + 126, 0, 127, 0, 126, 127, 0, 43, 86, 0, + 54, 86, 0, 22, 86, 0, 45, 55, 0, 14, + 59, 0, 0, 129, 0, 130, 0, 129, 130, 0, + 132, 0, 137, 0, 145, 0, 172, 0, 140, 0, + 0, 40, 14, 131, 0, 181, 0, 56, 133, 109, + 0, 56, 48, 0, 134, 0, 133, 134, 0, 135, + 48, 218, 121, 0, 136, 0, 135, 110, 136, 0, + 218, 0, 218, 105, 106, 0, 221, 0, 44, 138, + 109, 0, 44, 19, 109, 0, 44, 109, 0, 139, + 0, 138, 110, 139, 0, 218, 0, 218, 105, 106, + 0, 221, 0, 218, 141, 3, 105, 142, 106, 0, + 167, 0, 178, 0, 0, 143, 0, 144, 0, 143, + 110, 144, 0, 104, 0, 189, 0, 218, 3, 213, + 89, 0, 218, 3, 165, 0, 218, 3, 155, 0, + 218, 105, 146, 106, 3, 165, 0, 147, 0, 146, + 110, 147, 0, 218, 0, 218, 111, 221, 0, 218, + 111, 218, 0, 178, 111, 221, 0, 149, 0, 148, + 110, 149, 0, 165, 0, 221, 0, 0, 151, 0, + 152, 0, 151, 110, 152, 0, 221, 165, 207, 0, + 32, 70, 165, 0, 164, 0, 154, 0, 153, 110, + 154, 0, 221, 165, 0, 164, 0, 30, 105, 157, + 106, 159, 0, 0, 90, 0, 158, 0, 157, 110, + 158, 0, 170, 207, 0, 170, 165, 156, 207, 0, + 170, 170, 156, 207, 0, 0, 160, 0, 0, 97, + 84, 105, 161, 162, 106, 0, 163, 0, 162, 163, + 0, 4, 0, 170, 0, 104, 0, 104, 112, 175, + 0, 104, 112, 212, 0, 213, 166, 185, 0, 180, + 0, 29, 105, 153, 106, 0, 80, 105, 150, 106, + 0, 81, 105, 150, 106, 0, 80, 185, 70, 220, + 213, 166, 0, 81, 185, 70, 220, 213, 166, 0, + 20, 0, 20, 37, 27, 221, 0, 218, 105, 148, + 106, 0, 167, 0, 58, 70, 167, 0, 13, 0, + 13, 113, 218, 0, 219, 113, 218, 0, 13, 113, + 221, 0, 219, 0, 219, 113, 168, 0, 169, 0, + 168, 113, 169, 0, 171, 0, 171, 0, 15, 0, + 16, 0, 221, 141, 3, 173, 0, 221, 111, 173, + 0, 0, 105, 174, 177, 0, 65, 0, 47, 0, + 88, 0, 5, 0, 7, 0, 176, 0, 212, 0, + 175, 0, 221, 0, 218, 113, 221, 0, 6, 0, + 10, 0, 11, 0, 4, 0, 177, 4, 0, 26, + 0, 65, 0, 78, 0, 179, 0, 69, 83, 0, + 67, 53, 0, 79, 0, 46, 0, 38, 73, 0, + 28, 83, 0, 93, 0, 49, 0, 181, 0, 60, + 0, 42, 0, 24, 83, 0, 178, 0, 179, 209, + 0, 25, 0, 50, 0, 51, 0, 52, 0, 61, + 0, 66, 0, 76, 0, 85, 0, 87, 0, 92, + 0, 94, 0, 95, 0, 96, 0, 68, 0, 101, + 0, 102, 0, 99, 0, 100, 0, 98, 0, 0, + 186, 0, 187, 0, 82, 107, 188, 108, 0, 107, + 188, 108, 0, 187, 107, 188, 108, 0, 189, 0, + 189, 110, 104, 0, 189, 110, 104, 110, 189, 0, + 190, 0, 19, 98, 190, 0, 189, 182, 190, 0, + 189, 183, 190, 0, 190, 184, 190, 0, 193, 107, + 188, 108, 0, 107, 188, 108, 0, 194, 0, 195, + 0, 194, 192, 194, 0, 63, 192, 194, 0, 194, + 192, 62, 0, 63, 192, 62, 0, 201, 0, 196, + 0, 0, 33, 27, 105, 191, 177, 0, 103, 0, + 103, 114, 0, 114, 103, 0, 114, 103, 114, 0, + 82, 0, 48, 0, 47, 0, 88, 0, 212, 0, + 176, 0, 221, 0, 218, 0, 97, 32, 105, 197, + 106, 0, 198, 0, 197, 110, 198, 0, 104, 0, + 221, 185, 199, 0, 0, 200, 0, 75, 0, 17, + 0, 71, 0, 202, 0, 203, 0, 105, 218, 106, + 0, 202, 105, 204, 106, 0, 205, 0, 204, 110, + 205, 0, 115, 206, 0, 115, 113, 206, 0, 221, + 0, 206, 113, 221, 0, 0, 208, 0, 71, 0, + 35, 173, 0, 105, 106, 0, 105, 210, 106, 0, + 211, 0, 210, 110, 211, 0, 221, 0, 221, 107, + 212, 108, 0, 221, 107, 175, 108, 0, 212, 0, + 104, 0, 9, 0, 12, 0, 0, 214, 0, 215, + 217, 0, 116, 216, 9, 117, 0, 0, 91, 0, + 21, 0, 77, 0, 0, 54, 0, 43, 0, 13, + 0, 14, 0, 14, 0, 0, 221, 0, 8, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 303, 309, 315, 331, 356, 358, 361, 365, 370, 377, - 385, 390, 394, 403, 405, 413, 417, 425, 429, 432, - 435, 439, 459, 461, 469, 473, 505, 509, 518, 525, - 538, 545, 547, 559, 572, 579, 584, 590, 596, 605, - 611, 617, 624, 630, 638, 642, 645, 652, 658, 664, - 671, 677, 686, 696, 704, 712, 714, 724, 727, 731, - 734, 746, 758, 764, 780, 789, 799, 809, 814, 821, - 828, 838, 844, 850, 854, 877, 879, 881, 887, 893, - 900, 907, 912, 918, 924, 930, 935, 945, 947, 950, - 958, 964, 973, 979, 996, 998, 1003, 1007, 1012, 1017, - 1023, 1027, 1038, 1047, 1056, 1067, 1089, 1093, 1099, 1105, - 1111, 1121, 1131, 1137, 1151, 1175, 1182, 1196, 1205, 1215, - 1225, 1235, 1243, 1264, 1273, 1282, 1283, 1285, 1292, 1304, - 1314, 1322, 1322, 1327, 1332, 1337, 1342, 1346, 1350, 1353, - 1356, 1361, 1373, 1390, 1395, 1405, 1421, 1431, 1445, 1447, - 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, - 1458, 1464, 1466, 1467, 1470, 1477, 1489, 1491, 1495, 1499, - 1500, 1501, 1502, 1503, 1507, 1508, 1509, 1510, 1514, 1515, - 1522, 1522, 1523, 1523, 1524, 1526, 1528, 1533, 1537, 1546, - 1550, 1555, 1559, 1565, 1575, 1579, 1582, 1585, 1588, 1593, - 1602, 1610, 1616, 1622, 1629, 1637, 1645, 1654, 1657, 1660, - 1661, 1671, 1673, 1674, 1675, 1678, 1682, 1687, 1693, 1698, - 1701, 1704, 1717, 1731, 1737, 1741, 1746, 1752, 1764, 1766, - 1769, 1773, 1776, 1781, 1785, 1793, 1808, 1814, 1821, 1834, - 1846, 1861, 1865, 1882, 1887, 1890, 1895, 1917, 1922, 1927, - 1933, 1939, 1947, 1955, 1963, 1970, 1980, 1985, 2015, 2017, - 2020, 2027, 2033, 2035, 2036, 2037, 2040, 2042, 2043, 2046, - 2051, 2058, 2065, 2067, 2071 + 305, 311, 317, 333, 358, 360, 363, 367, 372, 379, + 387, 392, 396, 405, 407, 415, 419, 427, 431, 434, + 437, 441, 461, 463, 471, 475, 507, 511, 520, 527, + 540, 547, 549, 561, 574, 581, 586, 592, 598, 607, + 613, 619, 626, 632, 640, 644, 647, 654, 660, 666, + 673, 679, 688, 698, 706, 714, 716, 726, 729, 733, + 736, 748, 760, 766, 782, 791, 801, 811, 816, 823, + 830, 840, 846, 852, 856, 879, 881, 883, 889, 895, + 902, 909, 914, 920, 926, 932, 937, 947, 949, 952, + 960, 966, 975, 981, 998, 1000, 1005, 1009, 1014, 1019, + 1025, 1029, 1040, 1049, 1058, 1069, 1091, 1095, 1101, 1107, + 1113, 1123, 1133, 1139, 1153, 1177, 1184, 1198, 1207, 1217, + 1227, 1237, 1245, 1266, 1275, 1284, 1285, 1287, 1294, 1306, + 1316, 1324, 1324, 1329, 1334, 1339, 1344, 1348, 1352, 1355, + 1358, 1363, 1375, 1392, 1397, 1402, 1435, 1445, 1459, 1461, + 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, + 1472, 1478, 1480, 1481, 1484, 1491, 1503, 1505, 1509, 1513, + 1514, 1515, 1516, 1517, 1521, 1522, 1523, 1524, 1528, 1529, + 1536, 1536, 1537, 1537, 1538, 1540, 1542, 1547, 1551, 1560, + 1564, 1569, 1573, 1579, 1589, 1593, 1596, 1599, 1602, 1607, + 1616, 1624, 1630, 1636, 1643, 1651, 1659, 1668, 1671, 1674, + 1675, 1685, 1687, 1688, 1689, 1692, 1696, 1701, 1707, 1712, + 1715, 1718, 1731, 1745, 1751, 1755, 1760, 1766, 1778, 1780, + 1783, 1787, 1790, 1795, 1799, 1807, 1822, 1828, 1835, 1848, + 1860, 1875, 1879, 1896, 1901, 1904, 1909, 1931, 1936, 1941, + 1947, 1953, 1961, 1969, 1977, 1984, 1994, 1999, 2029, 2031, + 2034, 2041, 2047, 2049, 2050, 2051, 2054, 2056, 2057, 2060, + 2065, 2072, 2079, 2081, 2085 }; #endif @@ -403,36 +403,36 @@ static const short yyrline[] = { 0, static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ", "TOK_opaque","TOK_bstring","TOK_cstring","TOK_hstring","TOK_identifier","TOK_number", -"TOK_number_negative","TOK_typereference","TOK_capitalreference","TOK_typefieldreference", -"TOK_valuefieldreference","TOK_ABSENT","TOK_ABSTRACT_SYNTAX","TOK_ALL","TOK_ANY", -"TOK_APPLICATION","TOK_AUTOMATIC","TOK_BEGIN","TOK_BIT","TOK_BMPString","TOK_BOOLEAN", -"TOK_BY","TOK_CHARACTER","TOK_CHOICE","TOK_CLASS","TOK_COMPONENT","TOK_COMPONENTS", -"TOK_CONSTRAINED","TOK_CONTAINING","TOK_DEFAULT","TOK_DEFINITIONS","TOK_DEFINED", -"TOK_EMBEDDED","TOK_ENCODED","TOK_ENCODING_CONTROL","TOK_END","TOK_ENUMERATED", -"TOK_EXPLICIT","TOK_EXPORTS","TOK_EXTENSIBILITY","TOK_EXTERNAL","TOK_FALSE", -"TOK_FROM","TOK_GeneralizedTime","TOK_GeneralString","TOK_GraphicString","TOK_IA5String", -"TOK_IDENTIFIER","TOK_IMPLICIT","TOK_IMPLIED","TOK_IMPORTS","TOK_INCLUDES","TOK_INSTANCE", -"TOK_INSTRUCTIONS","TOK_INTEGER","TOK_ISO646String","TOK_MAX","TOK_MIN","TOK_MINUS_INFINITY", -"TOK_NULL","TOK_NumericString","TOK_OBJECT","TOK_ObjectDescriptor","TOK_OCTET", -"TOK_OF","TOK_OPTIONAL","TOK_PATTERN","TOK_PDV","TOK_PLUS_INFINITY","TOK_PRESENT", -"TOK_PrintableString","TOK_PRIVATE","TOK_REAL","TOK_RELATIVE_OID","TOK_SEQUENCE", -"TOK_SET","TOK_SIZE","TOK_STRING","TOK_SYNTAX","TOK_T61String","TOK_TAGS","TOK_TeletexString", -"TOK_TRUE","TOK_TYPE_IDENTIFIER","TOK_UNIQUE","TOK_UNIVERSAL","TOK_UniversalString", -"TOK_UTCTime","TOK_UTF8String","TOK_VideotexString","TOK_VisibleString","TOK_WITH", -"TOK_EXCEPT","'^'","TOK_INTERSECTION","'|'","TOK_UNION","TOK_TwoDots","TOK_ThreeDots", -"'{'","'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'","'['","']'", -"ParsedGrammar","ModuleList","ModuleSpecification","optObjectIdentifier","ObjectIdentifier", -"ObjectIdentifierBody","ObjectIdentifierElement","optModuleSpecificationFlags", -"ModuleSpecificationFlags","ModuleSpecificationFlag","optModuleSpecificationBody", -"ModuleSpecificationBody","ModuleSpecificationElement","@1","ImportsDefinition", -"ImportsBundleSet","ImportsBundle","ImportsList","ImportsElement","ExportsDefinition", -"ExportsBody","ExportsElement","ValueSetDefinition","DefinedTypeRef","optValueSetBody", -"ValueSetBody","ValueSetElement","DataTypeReference","ParameterArgumentList", -"ParameterArgumentName","ActualParameterList","ActualParameter","optComponentTypeLists", -"ComponentTypeLists","ComponentType","AlternativeTypeLists","AlternativeType", -"ClassDeclaration","optUnique","ClassFieldList","ClassField","optWithSyntax", -"WithSyntax","@2","WithSyntaxFormat","WithSyntaxFormatToken","ExtensionAndException", -"Type","TypeDeclaration","ComplexTypeReference","ComplexTypeReferenceAmpList", +"TOK_tuple","TOK_quadruple","TOK_number_negative","TOK_typereference","TOK_capitalreference", +"TOK_typefieldreference","TOK_valuefieldreference","TOK_ABSENT","TOK_ABSTRACT_SYNTAX", +"TOK_ALL","TOK_ANY","TOK_APPLICATION","TOK_AUTOMATIC","TOK_BEGIN","TOK_BIT", +"TOK_BMPString","TOK_BOOLEAN","TOK_BY","TOK_CHARACTER","TOK_CHOICE","TOK_CLASS", +"TOK_COMPONENT","TOK_COMPONENTS","TOK_CONSTRAINED","TOK_CONTAINING","TOK_DEFAULT", +"TOK_DEFINITIONS","TOK_DEFINED","TOK_EMBEDDED","TOK_ENCODED","TOK_ENCODING_CONTROL", +"TOK_END","TOK_ENUMERATED","TOK_EXPLICIT","TOK_EXPORTS","TOK_EXTENSIBILITY", +"TOK_EXTERNAL","TOK_FALSE","TOK_FROM","TOK_GeneralizedTime","TOK_GeneralString", +"TOK_GraphicString","TOK_IA5String","TOK_IDENTIFIER","TOK_IMPLICIT","TOK_IMPLIED", +"TOK_IMPORTS","TOK_INCLUDES","TOK_INSTANCE","TOK_INSTRUCTIONS","TOK_INTEGER", +"TOK_ISO646String","TOK_MAX","TOK_MIN","TOK_MINUS_INFINITY","TOK_NULL","TOK_NumericString", +"TOK_OBJECT","TOK_ObjectDescriptor","TOK_OCTET","TOK_OF","TOK_OPTIONAL","TOK_PATTERN", +"TOK_PDV","TOK_PLUS_INFINITY","TOK_PRESENT","TOK_PrintableString","TOK_PRIVATE", +"TOK_REAL","TOK_RELATIVE_OID","TOK_SEQUENCE","TOK_SET","TOK_SIZE","TOK_STRING", +"TOK_SYNTAX","TOK_T61String","TOK_TAGS","TOK_TeletexString","TOK_TRUE","TOK_TYPE_IDENTIFIER", +"TOK_UNIQUE","TOK_UNIVERSAL","TOK_UniversalString","TOK_UTCTime","TOK_UTF8String", +"TOK_VideotexString","TOK_VisibleString","TOK_WITH","TOK_EXCEPT","'^'","TOK_INTERSECTION", +"'|'","TOK_UNION","TOK_TwoDots","TOK_ThreeDots","'{'","'}'","'('","')'","';'", +"','","':'","'!'","'.'","'<'","'@'","'['","']'","ParsedGrammar","ModuleList", +"ModuleSpecification","optObjectIdentifier","ObjectIdentifier","ObjectIdentifierBody", +"ObjectIdentifierElement","optModuleSpecificationFlags","ModuleSpecificationFlags", +"ModuleSpecificationFlag","optModuleSpecificationBody","ModuleSpecificationBody", +"ModuleSpecificationElement","@1","ImportsDefinition","ImportsBundleSet","ImportsBundle", +"ImportsList","ImportsElement","ExportsDefinition","ExportsBody","ExportsElement", +"ValueSetDefinition","DefinedTypeRef","optValueSetBody","ValueSetBody","ValueSetElement", +"DataTypeReference","ParameterArgumentList","ParameterArgumentName","ActualParameterList", +"ActualParameter","optComponentTypeLists","ComponentTypeLists","ComponentType", +"AlternativeTypeLists","AlternativeType","ClassDeclaration","optUnique","ClassFieldList", +"ClassField","optWithSyntax","WithSyntax","@2","WithSyntaxFormat","WithSyntaxFormatToken", +"ExtensionAndException","Type","TypeDeclaration","ComplexTypeReference","ComplexTypeReferenceAmpList", "ComplexTypeReferenceElement","ClassFieldIdentifier","ClassFieldName","ValueDefinition", "Value","@3","DefinedValue","RestrictedCharacterStringValue","Opaque","BasicTypeId", "BasicTypeId_UniverationCompatible","BasicType","BasicString","Union","Intersection", @@ -448,34 +448,34 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ", #endif static const short yyr1[] = { 0, - 116, 117, 117, 118, 119, 119, 120, 120, 121, 121, - 122, 122, 122, 123, 123, 124, 124, 125, 125, 125, - 125, 125, 126, 126, 127, 127, 128, 128, 128, 128, - 128, 129, 128, 128, 130, 130, 131, 131, 132, 133, - 133, 134, 134, 134, 135, 135, 135, 136, 136, 137, - 137, 137, 138, 139, 139, 140, 140, 141, 141, 142, - 142, 143, 143, 143, 143, 144, 144, 145, 145, 145, - 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, - 150, 150, 151, 151, 152, 152, 153, 154, 154, 155, - 155, 156, 156, 156, 157, 157, 159, 158, 160, 160, - 161, 161, 162, 162, 162, 163, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 165, 165, 165, - 165, 165, 165, 166, 166, 167, 168, 169, 169, 170, - 171, 172, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 173, 173, 174, 174, 174, 175, 175, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 177, 177, 177, 178, 178, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 180, 180, 181, 181, 182, 183, 183, 184, 184, 185, - 185, 186, 186, 186, 187, 187, 187, 187, 187, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 189, - 188, 190, 190, 190, 190, 191, 191, 192, 192, 192, - 192, 192, 193, 194, 195, 195, 196, 196, 197, 197, - 198, 198, 198, 199, 199, 200, 201, 202, 202, 203, - 203, 204, 204, 205, 205, 206, 206, 207, 207, 208, - 208, 209, 209, 209, 209, 209, 210, 210, 211, 211, - 212, 213, 214, 214, 214, 214, 215, 215, 215, 216, - 216, 217, 218, 218, 219 + 118, 119, 119, 120, 121, 121, 122, 122, 123, 123, + 124, 124, 124, 125, 125, 126, 126, 127, 127, 127, + 127, 127, 128, 128, 129, 129, 130, 130, 130, 130, + 130, 131, 130, 130, 132, 132, 133, 133, 134, 135, + 135, 136, 136, 136, 137, 137, 137, 138, 138, 139, + 139, 139, 140, 141, 141, 142, 142, 143, 143, 144, + 144, 145, 145, 145, 145, 146, 146, 147, 147, 147, + 147, 148, 148, 149, 149, 150, 150, 151, 151, 152, + 152, 152, 153, 153, 154, 154, 155, 156, 156, 157, + 157, 158, 158, 158, 159, 159, 161, 160, 162, 162, + 163, 163, 164, 164, 164, 165, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 167, 167, 167, + 167, 167, 167, 168, 168, 169, 170, 171, 171, 172, + 173, 174, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 175, 175, 176, 176, 176, 177, 177, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 179, 179, 179, 180, 180, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 182, 182, 183, 183, 184, 185, 185, 186, 186, 187, + 187, 188, 188, 188, 189, 189, 189, 189, 189, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 191, + 190, 192, 192, 192, 192, 193, 193, 194, 194, 194, + 194, 194, 195, 196, 197, 197, 198, 198, 199, 199, + 200, 200, 200, 201, 201, 202, 203, 204, 204, 205, + 205, 206, 206, 207, 207, 208, 208, 209, 209, 210, + 210, 211, 211, 211, 211, 211, 212, 212, 213, 213, + 214, 215, 216, 216, 216, 216, 217, 217, 217, 218, + 218, 219, 220, 220, 221 }; static const short yyr2[] = { 0, @@ -493,7 +493,7 @@ static const short yyr2[] = { 0, 6, 6, 1, 4, 4, 1, 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 4, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 1, 5, 9, 1, 2, 1, 1, + 1, 1, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -528,295 +528,299 @@ static const short yydefact[] = { 0, 0, 186, 186, 62, 186, 116, 165, 152, 107, 0, 269, 268, 261, 119, 121, 0, 0, 0, 0, 56, 128, 129, 123, 124, 126, 120, 137, 144, 138, 257, - 258, 135, 134, 136, 132, 130, 141, 139, 140, 0, - 142, 39, 0, 90, 259, 127, 0, 0, 0, 0, - 0, 76, 0, 0, 187, 188, 76, 0, 106, 0, - 166, 259, 259, 67, 71, 70, 69, 0, 0, 218, - 217, 0, 216, 219, 0, 60, 0, 0, 0, 57, - 58, 221, 61, 195, 0, 202, 203, 209, 208, 234, - 235, 220, 223, 222, 0, 0, 0, 0, 0, 95, - 0, 0, 246, 88, 88, 92, 245, 0, 262, 0, - 103, 0, 83, 86, 259, 117, 0, 0, 0, 77, - 78, 82, 259, 0, 192, 273, 0, 0, 273, 256, - 248, 0, 250, 255, 252, 0, 72, 74, 75, 65, - 0, 0, 212, 0, 0, 0, 0, 0, 53, 0, - 183, 184, 181, 182, 0, 0, 185, 0, 0, 0, - 0, 125, 0, 147, 133, 143, 131, 0, 87, 96, + 145, 146, 258, 135, 134, 136, 132, 130, 141, 139, + 140, 0, 142, 39, 0, 90, 259, 127, 0, 0, + 0, 0, 0, 76, 0, 0, 187, 188, 76, 0, + 106, 0, 166, 259, 259, 67, 71, 70, 69, 0, + 0, 218, 217, 0, 216, 219, 0, 60, 0, 0, + 0, 57, 58, 221, 61, 195, 0, 202, 203, 209, + 208, 234, 235, 220, 223, 222, 0, 0, 0, 0, + 95, 0, 0, 246, 88, 88, 92, 245, 0, 262, + 0, 103, 0, 83, 86, 259, 117, 0, 0, 0, + 77, 78, 82, 259, 0, 192, 273, 0, 0, 273, + 256, 248, 0, 250, 255, 252, 0, 72, 74, 75, + 65, 0, 0, 212, 0, 0, 0, 0, 0, 53, + 0, 183, 184, 181, 182, 0, 0, 185, 0, 0, + 0, 0, 125, 147, 133, 143, 131, 0, 87, 96, 91, 247, 89, 244, 244, 114, 0, 108, 0, 85, 0, 259, 109, 0, 244, 190, 0, 259, 274, 0, 110, 259, 249, 0, 0, 115, 259, 196, 210, 213, - 214, 207, 0, 205, 0, 236, 201, 59, 197, 198, - 199, 0, 206, 204, 0, 0, 238, 0, 148, 0, - 93, 94, 104, 105, 142, 84, 189, 81, 79, 80, - 193, 0, 191, 0, 251, 0, 0, 73, 0, 215, - 227, 0, 225, 186, 200, 0, 240, 242, 237, 0, - 145, 0, 97, 0, 111, 112, 254, 253, 211, 224, - 0, 229, 241, 0, 239, 0, 0, 194, 226, 232, - 233, 231, 228, 230, 243, 0, 101, 0, 99, 102, - 0, 98, 100, 146, 0, 0, 0 + 214, 207, 205, 0, 236, 201, 59, 197, 198, 199, + 0, 206, 204, 0, 0, 238, 148, 0, 93, 94, + 104, 105, 142, 84, 189, 81, 79, 80, 193, 0, + 191, 0, 251, 0, 0, 73, 0, 215, 227, 0, + 225, 186, 200, 0, 240, 242, 237, 0, 97, 0, + 111, 112, 254, 253, 211, 224, 0, 229, 241, 0, + 239, 0, 194, 226, 232, 233, 231, 228, 230, 243, + 101, 0, 99, 102, 98, 100, 0, 0, 0 }; -static const short yydefgoto[] = { 435, +static const short yydefgoto[] = { 427, 3, 4, 8, 9, 13, 14, 25, 26, 27, 55, 56, 57, 107, 58, 74, 75, 76, 77, 59, 69, - 70, 60, 100, 229, 230, 231, 61, 130, 131, 286, - 287, 269, 270, 271, 262, 263, 119, 324, 193, 194, - 319, 320, 417, 428, 429, 272, 288, 155, 156, 173, - 174, 195, 196, 62, 186, 247, 187, 232, 315, 157, - 103, 159, 104, 305, 306, 308, 204, 205, 206, 274, - 275, 234, 389, 295, 235, 236, 237, 238, 392, 393, - 423, 424, 239, 240, 241, 366, 367, 397, 256, 257, - 211, 282, 283, 242, 258, 122, 123, 146, 163, 243, - 105, 338, 244 + 70, 60, 100, 231, 232, 233, 61, 130, 131, 287, + 288, 270, 271, 272, 263, 264, 119, 324, 195, 196, + 319, 320, 412, 422, 423, 273, 289, 155, 156, 173, + 174, 197, 198, 62, 188, 248, 189, 234, 315, 157, + 103, 159, 104, 306, 307, 309, 206, 207, 208, 275, + 276, 236, 387, 296, 237, 238, 239, 240, 390, 391, + 418, 419, 241, 242, 243, 365, 366, 395, 257, 258, + 213, 283, 284, 244, 259, 122, 123, 146, 163, 245, + 105, 338, 246 }; -static const short yypact[] = { 203, --32768,-32768, 203,-32768, -62,-32768, 39, 24,-32768,-32768, --32768,-32768, 43,-32768, -31, 138,-32768,-32768, 75, 50, - 30, 38, 112, 87, 170, 138,-32768, 76,-32768,-32768, --32768,-32768,-32768, 187,-32768,-32768, 490,-32768, 213, 9, --32768,-32768,-32768, 155,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 172, 490,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 361, 719,-32768, 121,-32768, 149,-32768, - 143,-32768,-32768, 27,-32768, -22,-32768, 148,-32768,-32768, --32768, -10, 123,-32768, 173,-32768, 177, 202,-32768,-32768, --32768,-32768,-32768, 229, 200,-32768,-32768,-32768, 794, 284, --32768,-32768,-32768,-32768, 179, 285,-32768,-32768,-32768, 186, - 198,-32768,-32768, 203, 186, 201, 205, 10,-32768,-32768, - 567,-32768, 54, 186,-32768,-32768,-32768,-32768,-32768, -21, --32768, 194, 195, 206, 272, 460,-32768,-32768, -62,-32768, --32768, 247,-32768,-32768,-32768, 297, 8, 207, 276, 210, - 244, 104, 107,-32768, -40,-32768,-32768, 212,-32768, 214, --32768,-32768,-32768,-32768,-32768, 315, 794, 311, 186, 221, --32768,-32768, 219,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 312,-32768,-32768,-32768,-32768, 220, - 216,-32768, -15,-32768, 31,-32768, 217, 308, 7, 259, - 230, 58, 283, 266,-32768, 231, 58, 271,-32768, 53, --32768, 6, 227,-32768,-32768,-32768,-32768, 246, 320,-32768, --32768, 68,-32768,-32768, 316,-32768, 238, 283, 243, 241, --32768,-32768, 199, 254, 248, 68,-32768,-32768,-32768, 249, --32768,-32768,-32768,-32768, 247, 251, 347, 311, 460, 260, - 247, 460,-32768, 268, 268,-32768,-32768, 644,-32768, 311, - 250, -3,-32768,-32768, 227,-32768, 283, 286, 253, 257, --32768,-32768, 227, 256, 78, 311, 283, 262, 311,-32768, --32768, 85,-32768,-32768, 263, 98,-32768,-32768,-32768,-32768, - 450, 264, 258, 270, 67, 273, 275, 269,-32768, 221, --32768,-32768,-32768,-32768, 450, 450,-32768, 450, 283, 88, - 261,-32768, 368,-32768, 376,-32768,-32768, 299,-32768,-32768, --32768,-32768,-32768, 1, 1,-32768, 267,-32768, 7,-32768, - 287, 227,-32768, 58, 1,-32768, 280, 227,-32768, 288, --32768, 227,-32768, 70, 267,-32768, 6,-32768,-32768,-32768, - 278,-32768, 312,-32768, 47,-32768,-32768,-32768,-32768,-32768, --32768, 289,-32768,-32768, 17, 116,-32768, 131,-32768, 293, +static const short yypact[] = { 131, +-32768,-32768, 131,-32768, -60,-32768, 15, 25,-32768,-32768, +-32768,-32768, 27,-32768, -1, 141,-32768,-32768, 88, 79, + 62, 71, 65, 89, 188, 141,-32768, 101,-32768,-32768, +-32768,-32768,-32768, 200,-32768,-32768, 517,-32768, 215, 38, +-32768,-32768,-32768, 61,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 190, 517,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 355, 746,-32768, 146,-32768, 72,-32768, + 152,-32768,-32768, 34,-32768, -10,-32768, 156,-32768,-32768, +-32768, -3, 158,-32768, 182,-32768, 189, 216,-32768,-32768, +-32768,-32768,-32768, 242, 213,-32768,-32768,-32768, 821, 294, +-32768,-32768,-32768,-32768, 185, 296,-32768,-32768,-32768, 145, + 194,-32768,-32768, 131, 145, 196, 198, 5,-32768,-32768, + 594,-32768, 64, 145,-32768,-32768,-32768,-32768,-32768, -66, +-32768, 193, 195, 202, 235, 159,-32768,-32768, -60,-32768, +-32768, 237,-32768,-32768,-32768, 299, -11, 204, 273, 206, + 243, -27, -12,-32768, -6,-32768,-32768, 207,-32768, 209, +-32768,-32768,-32768,-32768,-32768, 302, 821, 309, 145, 268, +-32768,-32768, 205,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 291, 644,-32768, 644,-32768, 296, 300,-32768, 347,-32768, --32768, 136,-32768, -40,-32768, 311, 281,-32768,-32768, 261, --32768, 382,-32768, 283,-32768,-32768,-32768,-32768, 376,-32768, - 47, 95, 281, 311,-32768, 295, 209, 199,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 403,-32768, 55,-32768,-32768, - 309,-32768,-32768,-32768, 414, 415,-32768 +-32768, 208, 212,-32768, -19,-32768, 6,-32768, 211, 292, + 42, 254, 217, 7, 453, 255,-32768, 219, 7, 260, +-32768, 50,-32768, 12, 218,-32768,-32768,-32768,-32768, 234, + 306,-32768,-32768, -4,-32768,-32768, 303,-32768, 131, 453, + 230, 229,-32768,-32768, 184, 244, 238, -4,-32768,-32768, +-32768, 236,-32768,-32768,-32768,-32768, 237, 342, 309, 159, + 251, 237, 159,-32768, 259, 259,-32768,-32768, 671,-32768, + 309, 239, 83,-32768,-32768, 218,-32768, 453, 283, 246, + 245,-32768,-32768, 218, 252, 126, 309, 453, 248, 309, +-32768,-32768, 102,-32768,-32768, 256, 110,-32768,-32768,-32768, +-32768, 465, 257, 250, 263, 168, 262, 253, 266,-32768, + 268,-32768,-32768,-32768,-32768, 465, 465,-32768, 465, 453, + 282, 261,-32768,-32768, 367,-32768,-32768, 293,-32768,-32768, +-32768,-32768,-32768, 8, 8,-32768, 225,-32768, 42,-32768, + 270, 218,-32768, 7, 8,-32768, 278, 218,-32768, 276, +-32768, 218,-32768, 56, 225,-32768, 12,-32768,-32768,-32768, + 271,-32768,-32768, 46,-32768,-32768,-32768,-32768,-32768,-32768, + 280,-32768,-32768, 1, 111,-32768,-32768, 281,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 279, 671, +-32768, 671,-32768, 284, 286,-32768, 342,-32768,-32768, 134, +-32768, -6,-32768, 309, 277,-32768,-32768, 261,-32768, 453, +-32768,-32768,-32768,-32768, 367,-32768, 46, 17, 277, 309, +-32768, 183, 184,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 13,-32768,-32768,-32768,-32768, 391, 395,-32768 }; static const short yypgoto[] = {-32768, --32768, 413, 279,-32768,-32768, 404,-32768,-32768, 395,-32768, --32768, 366,-32768,-32768,-32768, 349,-32768, 314,-32768,-32768, - 321,-32768, 365,-32768,-32768, 132,-32768,-32768, 274,-32768, - 86, 232,-32768, 100,-32768, 111,-32768, 181,-32768, 191, --32768,-32768,-32768,-32768, 15, -187, -77, -228, -54,-32768, - 204, -191, -122,-32768, -206,-32768, -291, -108, 56, -42, - -120,-32768, -6,-32768,-32768,-32768, -146,-32768,-32768, -196, - -168, -87,-32768, 211,-32768, -268,-32768,-32768,-32768, 37, --32768,-32768,-32768,-32768,-32768,-32768, 57, 77, -233,-32768, --32768,-32768, 106, -128, -79,-32768,-32768,-32768,-32768, 16, --32768, 184, -7 +-32768, 396, 269,-32768,-32768, 389,-32768,-32768, 383,-32768, +-32768, 354,-32768,-32768,-32768, 337,-32768, 297,-32768,-32768, + 304,-32768, 348,-32768,-32768, 116,-32768,-32768, 258,-32768, + 80, 210,-32768, 84,-32768, 97,-32768, 172,-32768, 177, +-32768,-32768,-32768,-32768, 10, -187, -74, -192, -53,-32768, + 191, -190, -122,-32768, -169,-32768, -256, -118, 43, -33, + -120,-32768, 48,-32768,-32768,-32768, -151,-32768,-32768, -205, + -165, -96,-32768, 197,-32768, -213,-32768,-32768,-32768, 29, +-32768,-32768,-32768,-32768,-32768,-32768, 39, 45, -121,-32768, +-32768,-32768, 99, -126, -79,-32768,-32768,-32768,-32768, 16, +-32768, 161, -7 }; -#define YYLAST 888 +#define YYLAST 917 static const short yytable[] = { 15, - 158, 233, 121, 255, 120, 15, 208, 189, 209, 101, - 101, 264, 175, 10, 10, 5, 10, 117, 5, 1, - 2, 102, 102, 114, 10, 67, 354, 188, 143, 65, - 63, 298, 72, 252, 10, 373, 79, 1, 2, 201, - 7, 364, 317, 171, 172, 322, 10, 11, 65, 63, - 10, 11, 64, 386, 10, 71, 132, 16, 427, 78, - 10, 180, 181, 252, 203, 10, 79, 171, 172, 253, - 331, 64, 178, 19, 10, 180, 181, 10, 180, 181, - 340, 284, 166, 28, 144, 115, 167, 268, 250, 78, - 371, 372, 251, 178, 161, 10, 180, 181, 145, 253, - 328, 380, 72, 118, 329, 162, 29, 79, 261, 420, - -270, 220, 362, 30, 133, 68, 165, 254, 124, 118, - 189, 31, 175, 189, 132, 71, 352, 396, 191, 139, - 78, 233, 220, 112, -244, 290, 160, 158, -244, 164, - 188, 264, 12, 188, 118, 266, 17, 363, 391, 20, - 176, 190, 224, 405, 280, 406, 281, 21, 432, 261, - 215, 217, 10, 421, 32, 1, 2, 422, 293, 353, - 33, 280, 34, 224, 301, 302, 303, 304, 22, 294, - 23, 36, 133, 201, 216, 337, 201, 330, 343, 24, - 353, 265, 344, 10, 273, 335, 1, 2, 374, 273, - 73, 346, 285, 348, 289, 347, 202, 37, 203, 207, - 80, 203, 427, 1, 2, 284, 387, 359, 360, 399, - 361, 171, 172, 400, 66, 430, 178, 108, 10, 180, - 181, 1, 2, 124, 401, 418, 430, 218, 402, 410, - 316, 191, 297, 411, 191, 111, 246, 412, 1, 2, - 116, 219, 326, 125, 378, 109, 110, 126, 382, 171, - 172, 158, 384, 158, 190, 220, 221, 190, 339, 83, - 84, 339, 127, 160, 10, 180, 181, 1, 2, 128, - 129, 222, 1, 2, 171, 172, 134, 136, 178, 135, - 10, 180, 181, 1, 2, 301, 302, 303, 304, 218, - 223, 138, 168, 169, 141, 197, 224, 142, 170, -271, - 198, 200, 199, 219, 210, 225, 212, 213, 10, 375, - 246, 265, 226, 227, 249, 228, 273, 220, 221, 245, - 248, 259, 260, 276, 267, 277, 285, 375, 279, 289, - 118, 291, 190, 222, 292, 296, 299, 394, 300, 307, - 314, 311, 309, 332, 318, 323, 333, 398, 313, 327, - 190, 336, 223, 82, 334, 341, 349, 345, 224, 350, - 351, 83, 84, 365, 357, 355, 368, 225, 356, 369, - 370, 381, 85, 38, 86, 227, 87, 228, 398, 390, - 416, 414, 377, 383, 395, 403, 88, 160, 404, 160, - 89, 407, 426, 394, 90, 408, 425, 91, 41, 42, - 43, 431, 434, 436, 437, 6, 18, 192, 92, 45, - 35, 81, 113, 93, 46, 94, 47, 95, 140, 106, - 137, 358, 388, 379, 48, 325, 96, 97, 278, 376, - 214, 321, 433, 49, 409, 50, 310, 419, 312, 385, - 51, 98, 52, 53, 54, 178, 415, 10, 180, 181, - 1, 2, 342, 99, 177, 178, 179, 10, 180, 181, - 1, 2, 413, 0, 0, 0, 0, 0, 0, 0, - 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 220, 221, 0, 10, 0, 0, - 1, 2, 0, 0, 182, 0, 0, 0, 0, 0, - 222, 0, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 183, 0, 0, 0, 0, 39, 0, 223, - 0, 40, 0, 0, 0, 224, 0, 41, 42, 43, - 0, 0, 0, 44, 225, 184, 0, 0, 45, 0, - 0, 0, 227, 46, 228, 47, 0, 0, 0, 0, - 0, 0, 185, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 0, 50, 0, 0, 147, 148, 51, - 0, 52, 53, 54, 149, 0, 0, 0, 85, 38, - 86, 0, 87, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, - 90, 0, 0, 91, 41, 42, 43, 0, 0, 0, - 0, 0, 151, 0, 92, 45, 0, 0, 0, 93, - 46, 94, 47, 95, 0, 0, 0, 0, 0, 0, - 48, 0, 96, 97, 152, 153, 0, 0, 0, 49, - 0, 50, 0, 154, 147, 148, 51, 98, 52, 53, - 54, 149, 0, 0, 0, 85, 38, 86, 0, 87, - 150, 0, 0, 0, 0, 0, 0, 0, 0, 88, - 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, - 91, 41, 42, 43, 0, 0, 0, 0, 0, 151, - 0, 92, 45, 0, 0, 0, 93, 46, 94, 47, - 95, 0, 0, 0, 0, 0, 0, 48, 0, 96, - 97, 152, 153, 0, 0, 0, 49, 0, 50, 83, - 84, 0, 0, 51, 98, 52, 53, 54, 0, 0, - 85, 38, 86, 0, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 0, 0, 0, 89, 0, - 0, 0, 90, 0, 0, 91, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 0, 92, 45, 0, 0, - 0, 93, 46, 94, 47, 95, 0, 0, 0, 0, - 0, 0, 48, 0, 96, 97, 0, 0, 0, 0, - 0, 49, 0, 50, 1, 2, 0, 0, 51, 98, - 52, 53, 54, 0, 0, 85, 38, 86, 0, 87, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, - 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, - 91, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 92, 45, 0, 0, 0, 93, 46, 94, 47, - 95, 0, 0, 0, 0, 0, 0, 48, 0, 96, - 97, 0, 0, 0, 0, 0, 49, 0, 50, 0, - 0, 0, 0, 51, 98, 52, 53, 54 + 158, 210, 121, 211, 235, 15, 256, 120, 10, 191, + 101, 101, 175, 265, 10, 5, 421, 190, 5, 10, + 171, 172, 10, 11, 299, 143, 117, 171, 172, 65, + 102, 102, 72, 415, 10, 11, 79, 114, 269, 166, + 253, 10, 253, 167, 7, 10, 1, 2, 65, 10, + 1, 2, 64, 10, 203, 71, 67, 10, 180, 78, + 16, 183, 331, 10, 180, 132, 79, 183, 10, 203, + 371, 64, 340, 1, 2, 203, 254, 204, 254, 205, + 317, 144, 353, 322, 63, 285, 251, 416, 384, 78, + 252, 417, 209, -270, 205, 145, 28, 363, 294, 115, + 205, 124, 72, 63, 361, 19, 161, 79, 73, 295, + 262, -244, 118, 394, 133, -244, 165, 162, 425, 32, + 12, 118, 255, 191, 175, 71, 191, 118, 193, 139, + 78, 190, 17, 132, 190, 235, 160, 29, 158, 164, + 291, 265, 112, 1, 2, 262, 68, 30, 267, 389, + 176, 192, 10, 281, 20, 282, 31, 1, 2, 281, + 217, 219, 21, 177, 178, 179, 10, 180, 181, 182, + 183, 1, 2, 178, 33, 10, 180, 181, 182, 183, + 109, 110, 133, 22, 218, 23, 421, 401, 328, 402, + 34, 330, 329, 266, 24, 348, 274, 171, 172, 335, + 372, 274, 369, 370, 286, 184, 290, 343, 36, 358, + 359, 344, 360, 378, 222, 346, 397, 285, 385, 347, + 398, 424, 37, 185, 302, 303, 304, 305, 66, 352, + 80, 424, 10, 180, 413, 337, 183, 1, 2, 406, + 408, 316, 193, 407, 298, 193, 186, 1, 2, 171, + 172, 171, 172, 326, 108, 226, 111, 376, 380, 158, + 116, 158, 382, 187, 125, 192, 83, 84, 192, 339, + 124, 126, 339, 178, 160, 10, 180, 181, 182, 183, + 1, 2, 302, 303, 304, 305, 220, 178, 127, 10, + 180, 181, 182, 183, 128, 129, 134, 135, 136, 138, + 221, 141, 142, 168, 215, 169, 170, 199, -271, 200, + 201, 212, 202, 214, 222, 223, 10, 247, 261, 373, + 249, 266, 250, 268, 277, 278, 274, 260, 222, 280, + 224, 292, 293, 118, 297, 300, 286, 373, 301, 290, + 312, 308, 192, 362, 310, 314, 392, 318, 323, 225, + 327, 333, 332, 341, 334, 226, 396, 82, 355, 336, + 192, 349, 345, 350, 227, 351, 354, 83, 84, 226, + 367, 228, 229, 356, 230, 364, 368, 375, 85, 38, + 86, 379, 87, 381, 388, 399, 396, 393, 400, 410, + 428, 403, 88, 404, 429, 160, 89, 160, 6, 392, + 90, 18, 420, 91, 41, 42, 43, 194, 35, 81, + 113, 140, 106, 137, 92, 45, 357, 377, 279, 93, + 46, 94, 47, 95, 216, 374, 386, 325, 321, 405, + 48, 426, 96, 97, 311, 414, 411, 313, 409, 49, + 342, 50, 383, 0, 0, 0, 51, 98, 52, 53, + 54, 0, 0, 0, 0, 0, 0, 0, 178, 99, + 10, 180, 181, 182, 183, 1, 2, 0, 0, 0, + 178, 220, 10, 180, 181, 182, 183, 1, 2, 0, + 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 221, 0, 222, + 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 222, 223, 0, 0, 224, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 224, 0, 1, + 2, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 226, 38, 0, 0, 0, 0, 225, 0, 0, 227, + 0, 0, 226, 0, 0, 0, 39, 229, 0, 230, + 40, 227, 0, 0, 0, 0, 41, 42, 43, 229, + 0, 230, 44, 0, 0, 0, 0, 45, 0, 0, + 0, 0, 46, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 0, 50, 0, 0, 147, 148, 51, 0, + 52, 53, 54, 149, 0, 0, 0, 85, 38, 86, + 0, 87, 150, 0, 0, 0, 0, 0, 0, 0, + 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, + 0, 0, 91, 41, 42, 43, 0, 0, 0, 0, + 0, 151, 0, 92, 45, 0, 0, 0, 93, 46, + 94, 47, 95, 0, 0, 0, 0, 0, 0, 48, + 0, 96, 97, 152, 153, 0, 0, 0, 49, 0, + 50, 0, 154, 147, 148, 51, 98, 52, 53, 54, + 149, 0, 0, 0, 85, 38, 86, 0, 87, 150, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, + 0, 0, 89, 0, 0, 0, 90, 0, 0, 91, + 41, 42, 43, 0, 0, 0, 0, 0, 151, 0, + 92, 45, 0, 0, 0, 93, 46, 94, 47, 95, + 0, 0, 0, 0, 0, 0, 48, 0, 96, 97, + 152, 153, 0, 0, 0, 49, 0, 50, 83, 84, + 0, 0, 51, 98, 52, 53, 54, 0, 0, 85, + 38, 86, 0, 87, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, + 0, 90, 0, 0, 91, 41, 42, 43, 0, 0, + 0, 0, 0, 0, 0, 92, 45, 0, 0, 0, + 93, 46, 94, 47, 95, 0, 0, 0, 0, 0, + 0, 48, 0, 96, 97, 0, 0, 0, 0, 0, + 49, 0, 50, 1, 2, 0, 0, 51, 98, 52, + 53, 54, 0, 0, 85, 38, 86, 0, 87, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, + 0, 0, 89, 0, 0, 0, 90, 0, 0, 91, + 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, + 92, 45, 0, 0, 0, 93, 46, 94, 47, 95, + 0, 0, 0, 0, 0, 0, 48, 0, 96, 97, + 0, 0, 0, 0, 0, 49, 0, 50, 0, 0, + 0, 0, 51, 98, 52, 53, 54 }; static const short yycheck[] = { 7, - 121, 170, 82, 195, 82, 13, 153, 136, 155, 64, - 65, 199, 135, 8, 8, 0, 8, 28, 3, 11, - 12, 64, 65, 46, 8, 17, 295, 136, 19, 37, - 37, 228, 40, 33, 8, 327, 44, 11, 12, 80, - 103, 310, 249, 13, 14, 252, 8, 9, 56, 56, - 8, 9, 37, 345, 8, 40, 99, 34, 4, 44, - 8, 9, 10, 33, 105, 8, 74, 13, 14, 69, - 267, 56, 6, 105, 8, 9, 10, 8, 9, 10, - 277, 210, 104, 9, 75, 108, 108, 30, 104, 74, - 324, 325, 108, 6, 41, 8, 9, 10, 89, 69, - 104, 335, 110, 114, 108, 52, 57, 115, 102, 15, - 103, 45, 309, 84, 99, 107, 124, 195, 111, 114, - 249, 84, 245, 252, 167, 110, 60, 111, 136, 114, - 115, 300, 45, 107, 104, 213, 121, 258, 108, 124, - 249, 329, 104, 252, 114, 200, 104, 60, 102, 12, - 135, 136, 86, 382, 102, 384, 104, 20, 104, 102, - 168, 169, 8, 69, 53, 11, 12, 73, 101, 103, - 84, 102, 3, 86, 97, 98, 99, 100, 41, 112, - 43, 106, 167, 80, 169, 108, 80, 265, 104, 52, - 103, 199, 108, 8, 202, 273, 11, 12, 327, 207, - 46, 104, 210, 291, 212, 108, 103, 21, 105, 103, - 39, 105, 4, 11, 12, 344, 345, 305, 306, 104, - 308, 13, 14, 108, 12, 417, 6, 107, 8, 9, - 10, 11, 12, 111, 104, 404, 428, 17, 108, 104, - 248, 249, 227, 108, 252, 103, 9, 394, 11, 12, - 103, 31, 260, 81, 332, 107, 108, 81, 338, 13, - 14, 382, 342, 384, 249, 45, 46, 252, 276, 11, - 12, 279, 71, 258, 8, 9, 10, 11, 12, 51, - 81, 61, 11, 12, 13, 14, 3, 3, 6, 111, - 8, 9, 10, 11, 12, 97, 98, 99, 100, 17, - 80, 104, 109, 109, 104, 9, 86, 103, 103, 103, - 35, 68, 103, 31, 103, 95, 103, 3, 8, 327, - 9, 329, 102, 103, 109, 105, 334, 45, 46, 111, - 111, 115, 25, 68, 105, 105, 344, 345, 68, 347, - 114, 96, 327, 61, 25, 30, 104, 355, 108, 96, - 4, 103, 105, 68, 95, 88, 104, 365, 108, 110, - 345, 106, 80, 3, 108, 104, 103, 105, 86, 112, - 101, 11, 12, 113, 106, 103, 9, 95, 104, 4, - 82, 102, 22, 23, 24, 103, 26, 105, 396, 112, - 9, 111, 106, 106, 106, 103, 36, 382, 108, 384, - 40, 106, 108, 411, 44, 106, 414, 47, 48, 49, - 50, 9, 104, 0, 0, 3, 13, 139, 58, 59, - 26, 56, 74, 63, 64, 65, 66, 67, 115, 65, - 110, 300, 347, 334, 74, 255, 76, 77, 207, 329, - 167, 251, 428, 83, 389, 85, 236, 411, 245, 344, - 90, 91, 92, 93, 94, 6, 400, 8, 9, 10, - 11, 12, 279, 103, 5, 6, 7, 8, 9, 10, - 11, 12, 396, -1, -1, -1, -1, -1, -1, -1, - 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, 46, -1, 8, -1, -1, - 11, 12, -1, -1, 45, -1, -1, -1, -1, -1, - 61, -1, 23, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 63, -1, -1, -1, -1, 38, -1, 80, - -1, 42, -1, -1, -1, 86, -1, 48, 49, 50, - -1, -1, -1, 54, 95, 86, -1, -1, 59, -1, - -1, -1, 103, 64, 105, 66, -1, -1, -1, -1, - -1, -1, 103, 74, -1, -1, -1, -1, -1, -1, - -1, -1, 83, -1, 85, -1, -1, 11, 12, 90, - -1, 92, 93, 94, 18, -1, -1, -1, 22, 23, - 24, -1, 26, 27, -1, -1, -1, -1, -1, -1, - -1, -1, 36, -1, -1, -1, 40, -1, -1, -1, - 44, -1, -1, 47, 48, 49, 50, -1, -1, -1, - -1, -1, 56, -1, 58, 59, -1, -1, -1, 63, - 64, 65, 66, 67, -1, -1, -1, -1, -1, -1, - 74, -1, 76, 77, 78, 79, -1, -1, -1, 83, - -1, 85, -1, 87, 11, 12, 90, 91, 92, 93, - 94, 18, -1, -1, -1, 22, 23, 24, -1, 26, - 27, -1, -1, -1, -1, -1, -1, -1, -1, 36, - -1, -1, -1, 40, -1, -1, -1, 44, -1, -1, - 47, 48, 49, 50, -1, -1, -1, -1, -1, 56, - -1, 58, 59, -1, -1, -1, 63, 64, 65, 66, - 67, -1, -1, -1, -1, -1, -1, 74, -1, 76, - 77, 78, 79, -1, -1, -1, 83, -1, 85, 11, - 12, -1, -1, 90, 91, 92, 93, 94, -1, -1, - 22, 23, 24, -1, 26, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 36, -1, -1, -1, 40, -1, - -1, -1, 44, -1, -1, 47, 48, 49, 50, -1, - -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, - -1, 63, 64, 65, 66, 67, -1, -1, -1, -1, - -1, -1, 74, -1, 76, 77, -1, -1, -1, -1, - -1, 83, -1, 85, 11, 12, -1, -1, 90, 91, - 92, 93, 94, -1, -1, 22, 23, 24, -1, 26, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, - -1, -1, -1, 40, -1, -1, -1, 44, -1, -1, - 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, - -1, 58, 59, -1, -1, -1, 63, 64, 65, 66, - 67, -1, -1, -1, -1, -1, -1, 74, -1, 76, - 77, -1, -1, -1, -1, -1, 83, -1, 85, -1, - -1, -1, -1, 90, 91, 92, 93, 94 + 121, 153, 82, 155, 170, 13, 197, 82, 8, 136, + 64, 65, 135, 201, 8, 0, 4, 136, 3, 8, + 15, 16, 8, 9, 230, 21, 30, 15, 16, 37, + 64, 65, 40, 17, 8, 9, 44, 48, 32, 106, + 35, 8, 35, 110, 105, 8, 13, 14, 56, 8, + 13, 14, 37, 8, 82, 40, 19, 8, 9, 44, + 36, 12, 268, 8, 9, 99, 74, 12, 8, 82, + 327, 56, 278, 13, 14, 82, 71, 105, 71, 107, + 250, 77, 296, 253, 37, 212, 106, 71, 345, 74, + 110, 75, 105, 105, 107, 91, 9, 311, 103, 110, + 107, 113, 110, 56, 310, 107, 43, 115, 48, 114, + 104, 106, 116, 113, 99, 110, 124, 54, 106, 55, + 106, 116, 197, 250, 247, 110, 253, 116, 136, 114, + 115, 250, 106, 167, 253, 301, 121, 59, 259, 124, + 215, 329, 109, 13, 14, 104, 109, 86, 202, 104, + 135, 136, 8, 104, 14, 106, 86, 13, 14, 104, + 168, 169, 22, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 6, 86, 8, 9, 10, 11, 12, + 109, 110, 167, 43, 169, 45, 4, 380, 106, 382, + 3, 266, 110, 201, 54, 292, 204, 15, 16, 274, + 327, 209, 324, 325, 212, 47, 214, 106, 108, 306, + 307, 110, 309, 335, 47, 106, 106, 344, 345, 110, + 110, 412, 23, 65, 99, 100, 101, 102, 14, 62, + 41, 422, 8, 9, 400, 110, 12, 13, 14, 106, + 392, 249, 250, 110, 229, 253, 88, 13, 14, 15, + 16, 15, 16, 261, 109, 88, 105, 332, 338, 380, + 105, 382, 342, 105, 83, 250, 13, 14, 253, 277, + 113, 83, 280, 6, 259, 8, 9, 10, 11, 12, + 13, 14, 99, 100, 101, 102, 19, 6, 73, 8, + 9, 10, 11, 12, 53, 83, 3, 113, 3, 106, + 33, 106, 105, 111, 3, 111, 105, 9, 105, 37, + 105, 105, 70, 105, 47, 48, 8, 113, 27, 327, + 113, 329, 111, 107, 70, 107, 334, 117, 47, 70, + 63, 98, 27, 116, 32, 106, 344, 345, 110, 347, + 105, 98, 327, 62, 107, 4, 354, 97, 90, 82, + 112, 106, 70, 106, 110, 88, 364, 3, 106, 108, + 345, 105, 107, 114, 97, 103, 105, 13, 14, 88, + 4, 104, 105, 108, 107, 115, 84, 108, 24, 25, + 26, 104, 28, 108, 114, 105, 394, 108, 110, 113, + 0, 108, 38, 108, 0, 380, 42, 382, 3, 407, + 46, 13, 410, 49, 50, 51, 52, 139, 26, 56, + 74, 115, 65, 110, 60, 61, 301, 334, 209, 65, + 66, 67, 68, 69, 167, 329, 347, 256, 252, 387, + 76, 422, 78, 79, 238, 407, 398, 247, 394, 85, + 280, 87, 344, -1, -1, -1, 92, 93, 94, 95, + 96, -1, -1, -1, -1, -1, -1, -1, 6, 105, + 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, + 6, 19, 8, 9, 10, 11, 12, 13, 14, -1, + -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, -1, 47, + 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 47, 48, -1, -1, 63, -1, -1, -1, -1, + -1, -1, -1, -1, 8, -1, -1, 63, -1, 13, + 14, -1, -1, -1, 82, -1, -1, -1, -1, -1, + 88, 25, -1, -1, -1, -1, 82, -1, -1, 97, + -1, -1, 88, -1, -1, -1, 40, 105, -1, 107, + 44, 97, -1, -1, -1, -1, 50, 51, 52, 105, + -1, 107, 56, -1, -1, -1, -1, 61, -1, -1, + -1, -1, 66, -1, 68, -1, -1, -1, -1, -1, + -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, + -1, 85, -1, 87, -1, -1, 13, 14, 92, -1, + 94, 95, 96, 20, -1, -1, -1, 24, 25, 26, + -1, 28, 29, -1, -1, -1, -1, -1, -1, -1, + -1, 38, -1, -1, -1, 42, -1, -1, -1, 46, + -1, -1, 49, 50, 51, 52, -1, -1, -1, -1, + -1, 58, -1, 60, 61, -1, -1, -1, 65, 66, + 67, 68, 69, -1, -1, -1, -1, -1, -1, 76, + -1, 78, 79, 80, 81, -1, -1, -1, 85, -1, + 87, -1, 89, 13, 14, 92, 93, 94, 95, 96, + 20, -1, -1, -1, 24, 25, 26, -1, 28, 29, + -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, + -1, -1, 42, -1, -1, -1, 46, -1, -1, 49, + 50, 51, 52, -1, -1, -1, -1, -1, 58, -1, + 60, 61, -1, -1, -1, 65, 66, 67, 68, 69, + -1, -1, -1, -1, -1, -1, 76, -1, 78, 79, + 80, 81, -1, -1, -1, 85, -1, 87, 13, 14, + -1, -1, 92, 93, 94, 95, 96, -1, -1, 24, + 25, 26, -1, 28, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 38, -1, -1, -1, 42, -1, -1, + -1, 46, -1, -1, 49, 50, 51, 52, -1, -1, + -1, -1, -1, -1, -1, 60, 61, -1, -1, -1, + 65, 66, 67, 68, 69, -1, -1, -1, -1, -1, + -1, 76, -1, 78, 79, -1, -1, -1, -1, -1, + 85, -1, 87, 13, 14, -1, -1, 92, 93, 94, + 95, 96, -1, -1, 24, 25, 26, -1, 28, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, + -1, -1, 42, -1, -1, -1, 46, -1, -1, 49, + 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, + 60, 61, -1, -1, -1, 65, 66, 67, 68, 69, + -1, -1, -1, -1, -1, -1, 76, -1, 78, 79, + -1, -1, -1, -1, -1, 85, -1, 87, -1, -1, + -1, -1, 92, 93, 94, 95, 96 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -1362,13 +1366,13 @@ yyreduce: switch (yyn) { case 1: -#line 304 "asn1p_y.y" +#line 306 "asn1p_y.y" { *(void **)param = yyvsp[0].a_grammar; ; break;} case 2: -#line 310 "asn1p_y.y" +#line 312 "asn1p_y.y" { yyval.a_grammar = asn1p_new(); checkmem(yyval.a_grammar); @@ -1376,14 +1380,14 @@ case 2: ; break;} case 3: -#line 315 "asn1p_y.y" +#line 317 "asn1p_y.y" { yyval.a_grammar = yyvsp[-1].a_grammar; TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next); ; break;} case 4: -#line 336 "asn1p_y.y" +#line 338 "asn1p_y.y" { if(yyvsp[-1].a_module) { @@ -1400,27 +1404,27 @@ case 4: ; break;} case 5: -#line 357 "asn1p_y.y" +#line 359 "asn1p_y.y" { yyval.a_oid = 0; ; break;} case 6: -#line 358 "asn1p_y.y" +#line 360 "asn1p_y.y" { yyval.a_oid = yyvsp[0].a_oid; ; break;} case 7: -#line 362 "asn1p_y.y" +#line 364 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; ; break;} case 8: -#line 365 "asn1p_y.y" +#line 367 "asn1p_y.y" { yyval.a_oid = 0; ; break;} case 9: -#line 371 "asn1p_y.y" +#line 373 "asn1p_y.y" { yyval.a_oid = asn1p_oid_new(); asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1429,7 +1433,7 @@ case 9: ; break;} case 10: -#line 377 "asn1p_y.y" +#line 379 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1438,74 +1442,74 @@ case 10: ; break;} case 11: -#line 386 "asn1p_y.y" +#line 388 "asn1p_y.y" { /* iso */ yyval.a_oid_arc.name = yyvsp[0].tv_str; yyval.a_oid_arc.number = -1; ; break;} case 12: -#line 390 "asn1p_y.y" +#line 392 "asn1p_y.y" { /* iso(1) */ yyval.a_oid_arc.name = yyvsp[-3].tv_str; yyval.a_oid_arc.number = yyvsp[-1].a_int; ; break;} case 13: -#line 394 "asn1p_y.y" +#line 396 "asn1p_y.y" { /* 1 */ yyval.a_oid_arc.name = 0; yyval.a_oid_arc.number = yyvsp[0].a_int; ; break;} case 14: -#line 404 "asn1p_y.y" +#line 406 "asn1p_y.y" { yyval.a_module_flags = MSF_NOFLAGS; ; break;} case 15: -#line 405 "asn1p_y.y" +#line 407 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; ; break;} case 16: -#line 414 "asn1p_y.y" +#line 416 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; ; break;} case 17: -#line 417 "asn1p_y.y" +#line 419 "asn1p_y.y" { yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags; ; break;} case 18: -#line 426 "asn1p_y.y" +#line 428 "asn1p_y.y" { yyval.a_module_flags = MSF_EXPLICIT_TAGS; ; break;} case 19: -#line 429 "asn1p_y.y" +#line 431 "asn1p_y.y" { yyval.a_module_flags = MSF_IMPLICIT_TAGS; ; break;} case 20: -#line 432 "asn1p_y.y" +#line 434 "asn1p_y.y" { yyval.a_module_flags = MSF_AUTOMATIC_TAGS; ; break;} case 21: -#line 435 "asn1p_y.y" +#line 437 "asn1p_y.y" { yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED; ; break;} case 22: -#line 439 "asn1p_y.y" +#line 441 "asn1p_y.y" { /* X.680Amd1 specifies TAG and XER */ if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) { @@ -1523,23 +1527,23 @@ case 22: ; break;} case 23: -#line 460 "asn1p_y.y" +#line 462 "asn1p_y.y" { yyval.a_module = 0; ; break;} case 24: -#line 461 "asn1p_y.y" +#line 463 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; ; break;} case 25: -#line 470 "asn1p_y.y" +#line 472 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; ; break;} case 26: -#line 473 "asn1p_y.y" +#line 475 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; @@ -1569,13 +1573,13 @@ case 26: ; break;} case 27: -#line 506 "asn1p_y.y" +#line 508 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; ; break;} case 28: -#line 509 "asn1p_y.y" +#line 511 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1587,7 +1591,7 @@ case 28: ; break;} case 29: -#line 518 "asn1p_y.y" +#line 520 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1597,7 +1601,7 @@ case 29: ; break;} case 30: -#line 525 "asn1p_y.y" +#line 527 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1607,7 +1611,7 @@ case 30: ; break;} case 31: -#line 538 "asn1p_y.y" +#line 540 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1617,11 +1621,11 @@ case 31: ; break;} case 32: -#line 546 "asn1p_y.y" +#line 548 "asn1p_y.y" { asn1p_lexer_hack_push_encoding_control(); ; break;} case 33: -#line 547 "asn1p_y.y" +#line 549 "asn1p_y.y" { fprintf(stderr, "WARNING: ENCODING-CONTROL %s " @@ -1632,7 +1636,7 @@ case 33: ; break;} case 34: -#line 559 "asn1p_y.y" +#line 561 "asn1p_y.y" { return yyerror( "Attempt to redefine a standard basic type, " @@ -1641,19 +1645,19 @@ case 34: ; break;} case 35: -#line 573 "asn1p_y.y" +#line 575 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; ; break;} case 36: -#line 579 "asn1p_y.y" +#line 581 "asn1p_y.y" { return yyerror("Empty IMPORTS list"); ; break;} case 37: -#line 585 "asn1p_y.y" +#line 587 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1661,14 +1665,14 @@ case 37: ; break;} case 38: -#line 590 "asn1p_y.y" +#line 592 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next); ; break;} case 39: -#line 597 "asn1p_y.y" +#line 599 "asn1p_y.y" { yyval.a_xports = yyvsp[-3].a_xports; yyval.a_xports->from = yyvsp[-1].tv_str; @@ -1677,7 +1681,7 @@ case 39: ; break;} case 40: -#line 606 "asn1p_y.y" +#line 608 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); checkmem(yyval.a_xports); @@ -1685,14 +1689,14 @@ case 40: ; break;} case 41: -#line 611 "asn1p_y.y" +#line 613 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); ; break;} case 42: -#line 618 "asn1p_y.y" +#line 620 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1701,7 +1705,7 @@ case 42: ; break;} case 43: -#line 624 "asn1p_y.y" +#line 626 "asn1p_y.y" { /* Completely equivalent to above */ yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1710,7 +1714,7 @@ case 43: ; break;} case 44: -#line 630 "asn1p_y.y" +#line 632 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1719,19 +1723,19 @@ case 44: ; break;} case 45: -#line 639 "asn1p_y.y" +#line 641 "asn1p_y.y" { yyval.a_xports = yyvsp[-1].a_xports; ; break;} case 46: -#line 642 "asn1p_y.y" +#line 644 "asn1p_y.y" { yyval.a_xports = 0; ; break;} case 47: -#line 645 "asn1p_y.y" +#line 647 "asn1p_y.y" { /* Empty EXPORTS clause effectively prohibits export. */ yyval.a_xports = asn1p_xports_new(); @@ -1739,7 +1743,7 @@ case 47: ; break;} case 48: -#line 653 "asn1p_y.y" +#line 655 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); assert(yyval.a_xports); @@ -1747,14 +1751,14 @@ case 48: ; break;} case 49: -#line 658 "asn1p_y.y" +#line 660 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); ; break;} case 50: -#line 665 "asn1p_y.y" +#line 667 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1763,7 +1767,7 @@ case 50: ; break;} case 51: -#line 671 "asn1p_y.y" +#line 673 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1772,7 +1776,7 @@ case 51: ; break;} case 52: -#line 677 "asn1p_y.y" +#line 679 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1781,7 +1785,7 @@ case 52: ; break;} case 53: -#line 687 "asn1p_y.y" +#line 689 "asn1p_y.y" { yyval.a_expr = yyvsp[-4].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -1791,7 +1795,7 @@ case 53: ; break;} case 54: -#line 697 "asn1p_y.y" +#line 699 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1801,7 +1805,7 @@ case 54: ; break;} case 55: -#line 704 "asn1p_y.y" +#line 706 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1810,36 +1814,36 @@ case 55: ; break;} case 56: -#line 713 "asn1p_y.y" +#line 715 "asn1p_y.y" { ; break;} case 57: -#line 714 "asn1p_y.y" +#line 716 "asn1p_y.y" { ; break;} case 58: -#line 725 "asn1p_y.y" +#line 727 "asn1p_y.y" { ; break;} case 59: -#line 727 "asn1p_y.y" +#line 729 "asn1p_y.y" { ; break;} case 60: -#line 732 "asn1p_y.y" +#line 734 "asn1p_y.y" { ; break;} case 61: -#line 734 "asn1p_y.y" +#line 736 "asn1p_y.y" { ; break;} case 62: -#line 750 "asn1p_y.y" +#line 752 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1850,7 +1854,7 @@ case 62: ; break;} case 63: -#line 758 "asn1p_y.y" +#line 760 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -1859,7 +1863,7 @@ case 63: ; break;} case 64: -#line 764 "asn1p_y.y" +#line 766 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -1868,7 +1872,7 @@ case 64: ; break;} case 65: -#line 780 "asn1p_y.y" +#line 782 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -1878,7 +1882,7 @@ case 65: ; break;} case 66: -#line 790 "asn1p_y.y" +#line 792 "asn1p_y.y" { int ret; yyval.a_plist = asn1p_paramlist_new(yylineno); @@ -1890,7 +1894,7 @@ case 66: ; break;} case 67: -#line 799 "asn1p_y.y" +#line 801 "asn1p_y.y" { int ret; yyval.a_plist = yyvsp[-2].a_plist; @@ -1901,14 +1905,14 @@ case 67: ; break;} case 68: -#line 810 "asn1p_y.y" +#line 812 "asn1p_y.y" { yyval.a_parg.governor = NULL; yyval.a_parg.argument = yyvsp[0].tv_str; ; break;} case 69: -#line 814 "asn1p_y.y" +#line 816 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -1918,7 +1922,7 @@ case 69: ; break;} case 70: -#line 821 "asn1p_y.y" +#line 823 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -1928,7 +1932,7 @@ case 70: ; break;} case 71: -#line 828 "asn1p_y.y" +#line 830 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -1939,7 +1943,7 @@ case 71: ; break;} case 72: -#line 839 "asn1p_y.y" +#line 841 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1947,20 +1951,20 @@ case 72: ; break;} case 73: -#line 844 "asn1p_y.y" +#line 846 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 74: -#line 851 "asn1p_y.y" +#line 853 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 75: -#line 854 "asn1p_y.y" +#line 856 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1970,15 +1974,15 @@ case 75: ; break;} case 76: -#line 878 "asn1p_y.y" +#line 880 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); ; break;} case 77: -#line 879 "asn1p_y.y" +#line 881 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 78: -#line 882 "asn1p_y.y" +#line 884 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1986,14 +1990,14 @@ case 78: ; break;} case 79: -#line 887 "asn1p_y.y" +#line 889 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 80: -#line 894 "asn1p_y.y" +#line 896 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2002,7 +2006,7 @@ case 80: ; break;} case 81: -#line 900 "asn1p_y.y" +#line 902 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2012,13 +2016,13 @@ case 81: ; break;} case 82: -#line 907 "asn1p_y.y" +#line 909 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 83: -#line 913 "asn1p_y.y" +#line 915 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2026,14 +2030,14 @@ case 83: ; break;} case 84: -#line 918 "asn1p_y.y" +#line 920 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 85: -#line 925 "asn1p_y.y" +#line 927 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2041,13 +2045,13 @@ case 85: ; break;} case 86: -#line 930 "asn1p_y.y" +#line 932 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 87: -#line 936 "asn1p_y.y" +#line 938 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; checkmem(yyval.a_expr); @@ -2057,15 +2061,15 @@ case 87: ; break;} case 88: -#line 946 "asn1p_y.y" +#line 948 "asn1p_y.y" { yyval.a_int = 0; ; break;} case 89: -#line 947 "asn1p_y.y" +#line 949 "asn1p_y.y" { yyval.a_int = 1; ; break;} case 90: -#line 951 "asn1p_y.y" +#line 953 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2075,14 +2079,14 @@ case 90: ; break;} case 91: -#line 958 "asn1p_y.y" +#line 960 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 92: -#line 965 "asn1p_y.y" +#line 967 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2093,7 +2097,7 @@ case 92: ; break;} case 93: -#line 973 "asn1p_y.y" +#line 975 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr->Identifier = yyvsp[-3].a_refcomp.name; @@ -2102,7 +2106,7 @@ case 93: ; break;} case 94: -#line 979 "asn1p_y.y" +#line 981 "asn1p_y.y" { int ret; yyval.a_expr = asn1p_expr_new(yylineno); @@ -2120,47 +2124,47 @@ case 94: ; break;} case 95: -#line 997 "asn1p_y.y" +#line 999 "asn1p_y.y" { yyval.a_wsynt = 0; ; break;} case 96: -#line 998 "asn1p_y.y" +#line 1000 "asn1p_y.y" { yyval.a_wsynt = yyvsp[0].a_wsynt; ; break;} case 97: -#line 1005 "asn1p_y.y" +#line 1007 "asn1p_y.y" { asn1p_lexer_hack_enable_with_syntax(); ; break;} case 98: -#line 1007 "asn1p_y.y" +#line 1009 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; ; break;} case 99: -#line 1013 "asn1p_y.y" +#line 1015 "asn1p_y.y" { yyval.a_wsynt = asn1p_wsyntx_new(); TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); ; break;} case 100: -#line 1017 "asn1p_y.y" +#line 1019 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); ; break;} case 101: -#line 1024 "asn1p_y.y" +#line 1026 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); ; break;} case 102: -#line 1027 "asn1p_y.y" +#line 1029 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -2172,7 +2176,7 @@ case 102: ; break;} case 103: -#line 1039 "asn1p_y.y" +#line 1041 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2183,7 +2187,7 @@ case 103: ; break;} case 104: -#line 1047 "asn1p_y.y" +#line 1049 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2195,7 +2199,7 @@ case 104: ; break;} case 105: -#line 1056 "asn1p_y.y" +#line 1058 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2207,7 +2211,7 @@ case 105: ; break;} case 106: -#line 1068 "asn1p_y.y" +#line 1070 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr->tag = yyvsp[-2].a_tag; @@ -2229,13 +2233,13 @@ case 106: ; break;} case 107: -#line 1090 "asn1p_y.y" +#line 1092 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 108: -#line 1093 "asn1p_y.y" +#line 1095 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2244,7 +2248,7 @@ case 108: ; break;} case 109: -#line 1099 "asn1p_y.y" +#line 1101 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2253,7 +2257,7 @@ case 109: ; break;} case 110: -#line 1105 "asn1p_y.y" +#line 1107 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2262,7 +2266,7 @@ case 110: ; break;} case 111: -#line 1111 "asn1p_y.y" +#line 1113 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2275,7 +2279,7 @@ case 111: ; break;} case 112: -#line 1121 "asn1p_y.y" +#line 1123 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2288,7 +2292,7 @@ case 112: ; break;} case 113: -#line 1131 "asn1p_y.y" +#line 1133 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2297,7 +2301,7 @@ case 113: ; break;} case 114: -#line 1137 "asn1p_y.y" +#line 1139 "asn1p_y.y" { int ret; yyval.a_expr = asn1p_expr_new(yylineno); @@ -2311,7 +2315,7 @@ case 114: ; break;} case 115: -#line 1151 "asn1p_y.y" +#line 1153 "asn1p_y.y" { int ret; yyval.a_expr = yyvsp[-1].a_expr; @@ -2328,7 +2332,7 @@ case 115: ; break;} case 116: -#line 1175 "asn1p_y.y" +#line 1177 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2338,7 +2342,7 @@ case 116: ; break;} case 117: -#line 1182 "asn1p_y.y" +#line 1184 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2348,7 +2352,7 @@ case 117: ; break;} case 118: -#line 1197 "asn1p_y.y" +#line 1199 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2359,7 +2363,7 @@ case 118: ; break;} case 119: -#line 1205 "asn1p_y.y" +#line 1207 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2372,7 +2376,7 @@ case 119: ; break;} case 120: -#line 1215 "asn1p_y.y" +#line 1217 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2385,7 +2389,7 @@ case 120: ; break;} case 121: -#line 1225 "asn1p_y.y" +#line 1227 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2398,7 +2402,7 @@ case 121: ; break;} case 122: -#line 1235 "asn1p_y.y" +#line 1237 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2409,7 +2413,7 @@ case 122: ; break;} case 123: -#line 1243 "asn1p_y.y" +#line 1245 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[0].a_ref; @@ -2431,7 +2435,7 @@ case 123: ; break;} case 124: -#line 1265 "asn1p_y.y" +#line 1267 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2442,7 +2446,7 @@ case 124: ; break;} case 125: -#line 1273 "asn1p_y.y" +#line 1275 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[-2].a_ref; @@ -2452,21 +2456,21 @@ case 125: ; break;} case 128: -#line 1287 "asn1p_y.y" +#line 1289 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_AmpUppercase; yyval.a_refcomp.name = yyvsp[0].tv_str; ; break;} case 129: -#line 1292 "asn1p_y.y" +#line 1294 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_Amplowercase; yyval.a_refcomp.name = yyvsp[0].tv_str; ; break;} case 130: -#line 1305 "asn1p_y.y" +#line 1307 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == NULL); @@ -2476,7 +2480,7 @@ case 130: ; break;} case 131: -#line 1315 "asn1p_y.y" +#line 1317 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2486,11 +2490,11 @@ case 131: ; break;} case 132: -#line 1322 "asn1p_y.y" -{ asn1p_lexer_hack_push_opaque_state(); ; +#line 1324 "asn1p_y.y" +{ printf("push\n"); asn1p_lexer_hack_push_opaque_state(); ; break;} case 133: -#line 1322 "asn1p_y.y" +#line 1324 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); @@ -2498,7 +2502,7 @@ case 133: ; break;} case 134: -#line 1327 "asn1p_y.y" +#line 1329 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2506,7 +2510,7 @@ case 134: ; break;} case 135: -#line 1332 "asn1p_y.y" +#line 1334 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2514,7 +2518,7 @@ case 135: ; break;} case 136: -#line 1337 "asn1p_y.y" +#line 1339 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2522,39 +2526,39 @@ case 136: ; break;} case 137: -#line 1342 "asn1p_y.y" +#line 1344 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); checkmem(yyval.a_value); ; break;} case 138: -#line 1346 "asn1p_y.y" +#line 1348 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); checkmem(yyval.a_value); ; break;} case 139: -#line 1350 "asn1p_y.y" +#line 1352 "asn1p_y.y" { yyval.a_value = yyval.a_value; ; break;} case 140: -#line 1353 "asn1p_y.y" +#line 1355 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 141: -#line 1356 "asn1p_y.y" +#line 1358 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 142: -#line 1362 "asn1p_y.y" +#line 1364 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -2568,7 +2572,7 @@ case 142: ; break;} case 143: -#line 1373 "asn1p_y.y" +#line 1375 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -2585,44 +2589,30 @@ case 143: ; break;} case 144: -#line 1391 "asn1p_y.y" +#line 1393 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); ; break;} case 145: -#line 1395 "asn1p_y.y" -{ - asn1c_integer_t v = (yyvsp[-3].a_int << 4) + yyvsp[-1].a_int; - if(yyvsp[-3].a_int > 7) return yyerror("X.680:2003, #37.14 " - "mandates 0..7 range for Tuple's TableColumn"); - if(yyvsp[-1].a_int > 15) return yyerror("X.680:2003, #37.14 " - "mandates 0..15 range for Tuple's TableRow"); - yyval.a_value = asn1p_value_fromint(v); +#line 1397 "asn1p_y.y" +{ + yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); yyval.a_value->type = ATV_TUPLE; ; break;} case 146: -#line 1405 "asn1p_y.y" -{ - asn1c_integer_t v = (yyvsp[-7].a_int << 24) | (yyvsp[-5].a_int << 16) | (yyvsp[-3].a_int << 8) | yyvsp[-1].a_int; - if(yyvsp[-7].a_int > 127) return yyerror("X.680:2003, #37.12 " - "mandates 0..127 range for Quadruple's Group"); - if(yyvsp[-5].a_int > 255) return yyerror("X.680:2003, #37.12 " - "mandates 0..255 range for Quadruple's Plane"); - if(yyvsp[-3].a_int > 255) return yyerror("X.680:2003, #37.12 " - "mandates 0..255 range for Quadruple's Row"); - if(yyvsp[-1].a_int > 255) return yyerror("X.680:2003, #37.12 " - "mandates 0..255 range for Quadruple's Cell"); - yyval.a_value = asn1p_value_fromint(v); +#line 1402 "asn1p_y.y" +{ + yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); yyval.a_value->type = ATV_QUADRUPLE; ; break;} case 147: -#line 1422 "asn1p_y.y" +#line 1436 "asn1p_y.y" { yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1; yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1); @@ -2634,7 +2624,7 @@ case 147: ; break;} case 148: -#line 1431 "asn1p_y.y" +#line 1445 "asn1p_y.y" { int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len; char *p = malloc(newsize + 1); @@ -2649,71 +2639,71 @@ case 148: ; break;} case 149: -#line 1446 "asn1p_y.y" +#line 1460 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BOOLEAN; ; break;} case 150: -#line 1447 "asn1p_y.y" +#line 1461 "asn1p_y.y" { yyval.a_type = ASN_BASIC_NULL; ; break;} case 151: -#line 1448 "asn1p_y.y" +#line 1462 "asn1p_y.y" { yyval.a_type = ASN_BASIC_REAL; ; break;} case 152: -#line 1449 "asn1p_y.y" +#line 1463 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; ; break;} case 153: -#line 1450 "asn1p_y.y" +#line 1464 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OCTET_STRING; ; break;} case 154: -#line 1451 "asn1p_y.y" +#line 1465 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ; break;} case 155: -#line 1452 "asn1p_y.y" +#line 1466 "asn1p_y.y" { yyval.a_type = ASN_BASIC_RELATIVE_OID; ; break;} case 156: -#line 1453 "asn1p_y.y" +#line 1467 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EXTERNAL; ; break;} case 157: -#line 1454 "asn1p_y.y" +#line 1468 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ; break;} case 158: -#line 1455 "asn1p_y.y" +#line 1469 "asn1p_y.y" { yyval.a_type = ASN_BASIC_CHARACTER_STRING; ; break;} case 159: -#line 1456 "asn1p_y.y" +#line 1470 "asn1p_y.y" { yyval.a_type = ASN_BASIC_UTCTime; ; break;} case 160: -#line 1457 "asn1p_y.y" +#line 1471 "asn1p_y.y" { yyval.a_type = ASN_BASIC_GeneralizedTime; ; break;} case 161: -#line 1458 "asn1p_y.y" +#line 1472 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; ; break;} case 162: -#line 1465 "asn1p_y.y" +#line 1479 "asn1p_y.y" { yyval.a_type = ASN_BASIC_INTEGER; ; break;} case 163: -#line 1466 "asn1p_y.y" +#line 1480 "asn1p_y.y" { yyval.a_type = ASN_BASIC_ENUMERATED; ; break;} case 164: -#line 1467 "asn1p_y.y" +#line 1481 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BIT_STRING; ; break;} case 165: -#line 1471 "asn1p_y.y" +#line 1485 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2722,7 +2712,7 @@ case 165: ; break;} case 166: -#line 1477 "asn1p_y.y" +#line 1491 "asn1p_y.y" { if(yyvsp[0].a_expr) { yyval.a_expr = yyvsp[0].a_expr; @@ -2735,91 +2725,91 @@ case 166: ; break;} case 167: -#line 1490 "asn1p_y.y" +#line 1504 "asn1p_y.y" { yyval.a_type = ASN_STRING_BMPString; ; break;} case 168: -#line 1491 "asn1p_y.y" +#line 1505 "asn1p_y.y" { yyval.a_type = ASN_STRING_GeneralString; fprintf(stderr, "WARNING: GeneralString is not fully supported\n"); ; break;} case 169: -#line 1495 "asn1p_y.y" +#line 1509 "asn1p_y.y" { yyval.a_type = ASN_STRING_GraphicString; fprintf(stderr, "WARNING: GraphicString is not fully supported\n"); ; break;} case 170: -#line 1499 "asn1p_y.y" +#line 1513 "asn1p_y.y" { yyval.a_type = ASN_STRING_IA5String; ; break;} case 171: -#line 1500 "asn1p_y.y" +#line 1514 "asn1p_y.y" { yyval.a_type = ASN_STRING_ISO646String; ; break;} case 172: -#line 1501 "asn1p_y.y" +#line 1515 "asn1p_y.y" { yyval.a_type = ASN_STRING_NumericString; ; break;} case 173: -#line 1502 "asn1p_y.y" +#line 1516 "asn1p_y.y" { yyval.a_type = ASN_STRING_PrintableString; ; break;} case 174: -#line 1503 "asn1p_y.y" +#line 1517 "asn1p_y.y" { yyval.a_type = ASN_STRING_T61String; fprintf(stderr, "WARNING: T61String is not fully supported\n"); ; break;} case 175: -#line 1507 "asn1p_y.y" +#line 1521 "asn1p_y.y" { yyval.a_type = ASN_STRING_TeletexString; ; break;} case 176: -#line 1508 "asn1p_y.y" +#line 1522 "asn1p_y.y" { yyval.a_type = ASN_STRING_UniversalString; ; break;} case 177: -#line 1509 "asn1p_y.y" +#line 1523 "asn1p_y.y" { yyval.a_type = ASN_STRING_UTF8String; ; break;} case 178: -#line 1510 "asn1p_y.y" +#line 1524 "asn1p_y.y" { yyval.a_type = ASN_STRING_VideotexString; fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); ; break;} case 179: -#line 1514 "asn1p_y.y" +#line 1528 "asn1p_y.y" { yyval.a_type = ASN_STRING_VisibleString; ; break;} case 180: -#line 1515 "asn1p_y.y" +#line 1529 "asn1p_y.y" { yyval.a_type = ASN_STRING_ObjectDescriptor; ; break;} case 186: -#line 1527 "asn1p_y.y" +#line 1541 "asn1p_y.y" { yyval.a_constr = 0; ; break;} case 187: -#line 1528 "asn1p_y.y" +#line 1542 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 188: -#line 1534 "asn1p_y.y" +#line 1548 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0); ; break;} case 189: -#line 1537 "asn1p_y.y" +#line 1551 "asn1p_y.y" { /* * This is a special case, for compatibility purposes. @@ -2829,25 +2819,25 @@ case 189: ; break;} case 190: -#line 1547 "asn1p_y.y" +#line 1561 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; ; break;} case 191: -#line 1550 "asn1p_y.y" +#line 1564 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr); ; break;} case 192: -#line 1556 "asn1p_y.y" +#line 1570 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 193: -#line 1559 "asn1p_y.y" +#line 1573 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -2856,7 +2846,7 @@ case 193: ; break;} case 194: -#line 1565 "asn1p_y.y" +#line 1579 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -2867,37 +2857,37 @@ case 194: ; break;} case 195: -#line 1576 "asn1p_y.y" +#line 1590 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 196: -#line 1579 "asn1p_y.y" +#line 1593 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0); ; break;} case 197: -#line 1582 "asn1p_y.y" +#line 1596 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 198: -#line 1585 "asn1p_y.y" +#line 1599 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 199: -#line 1588 "asn1p_y.y" +#line 1602 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 200: -#line 1594 "asn1p_y.y" +#line 1608 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -2908,7 +2898,7 @@ case 200: ; break;} case 201: -#line 1602 "asn1p_y.y" +#line 1616 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -2919,7 +2909,7 @@ case 201: ; break;} case 202: -#line 1610 "asn1p_y.y" +#line 1624 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -2928,7 +2918,7 @@ case 202: ; break;} case 203: -#line 1616 "asn1p_y.y" +#line 1630 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -2937,7 +2927,7 @@ case 203: ; break;} case 204: -#line 1622 "asn1p_y.y" +#line 1636 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -2947,7 +2937,7 @@ case 204: ; break;} case 205: -#line 1629 "asn1p_y.y" +#line 1643 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -2958,7 +2948,7 @@ case 205: ; break;} case 206: -#line 1637 "asn1p_y.y" +#line 1651 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -2969,7 +2959,7 @@ case 206: ; break;} case 207: -#line 1645 "asn1p_y.y" +#line 1659 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -2981,23 +2971,23 @@ case 207: ; break;} case 208: -#line 1654 "asn1p_y.y" +#line 1668 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 209: -#line 1657 "asn1p_y.y" +#line 1671 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 210: -#line 1661 "asn1p_y.y" +#line 1675 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); ; break;} case 211: -#line 1661 "asn1p_y.y" +#line 1675 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3008,35 +2998,35 @@ case 211: ; break;} case 212: -#line 1672 "asn1p_y.y" +#line 1686 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RANGE; ; break;} case 213: -#line 1673 "asn1p_y.y" +#line 1687 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RLRANGE; ; break;} case 214: -#line 1674 "asn1p_y.y" +#line 1688 "asn1p_y.y" { yyval.a_ctype = ACT_EL_LLRANGE; ; break;} case 215: -#line 1675 "asn1p_y.y" +#line 1689 "asn1p_y.y" { yyval.a_ctype = ACT_EL_ULRANGE; ; break;} case 216: -#line 1679 "asn1p_y.y" +#line 1693 "asn1p_y.y" { yyval.a_ctype = ACT_CT_SIZE; ; break;} case 217: -#line 1682 "asn1p_y.y" +#line 1696 "asn1p_y.y" { yyval.a_ctype = ACT_CT_FROM; ; break;} case 218: -#line 1688 "asn1p_y.y" +#line 1702 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3044,7 +3034,7 @@ case 218: ; break;} case 219: -#line 1693 "asn1p_y.y" +#line 1707 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(1); checkmem(yyval.a_value); @@ -3052,19 +3042,19 @@ case 219: ; break;} case 220: -#line 1698 "asn1p_y.y" +#line 1712 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 221: -#line 1701 "asn1p_y.y" +#line 1715 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 222: -#line 1704 "asn1p_y.y" +#line 1718 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3078,7 +3068,7 @@ case 222: ; break;} case 223: -#line 1718 "asn1p_y.y" +#line 1732 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3092,25 +3082,25 @@ case 223: ; break;} case 224: -#line 1732 "asn1p_y.y" +#line 1746 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0); ; break;} case 225: -#line 1738 "asn1p_y.y" +#line 1752 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 226: -#line 1741 "asn1p_y.y" +#line 1755 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 227: -#line 1747 "asn1p_y.y" +#line 1761 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3118,7 +3108,7 @@ case 227: ; break;} case 228: -#line 1752 "asn1p_y.y" +#line 1766 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3128,45 +3118,45 @@ case 228: ; break;} case 229: -#line 1765 "asn1p_y.y" +#line 1779 "asn1p_y.y" { yyval.a_pres = ACPRES_DEFAULT; ; break;} case 230: -#line 1766 "asn1p_y.y" +#line 1780 "asn1p_y.y" { yyval.a_pres = yyvsp[0].a_pres; ; break;} case 231: -#line 1770 "asn1p_y.y" +#line 1784 "asn1p_y.y" { yyval.a_pres = ACPRES_PRESENT; ; break;} case 232: -#line 1773 "asn1p_y.y" +#line 1787 "asn1p_y.y" { yyval.a_pres = ACPRES_ABSENT; ; break;} case 233: -#line 1776 "asn1p_y.y" +#line 1790 "asn1p_y.y" { yyval.a_pres = ACPRES_OPTIONAL; ; break;} case 234: -#line 1782 "asn1p_y.y" +#line 1796 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 235: -#line 1785 "asn1p_y.y" +#line 1799 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 236: -#line 1794 "asn1p_y.y" +#line 1808 "asn1p_y.y" { asn1p_ref_t *ref = asn1p_ref_new(yylineno); asn1p_constraint_t *ct; @@ -3181,13 +3171,13 @@ case 236: ; break;} case 237: -#line 1809 "asn1p_y.y" +#line 1823 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr); ; break;} case 238: -#line 1815 "asn1p_y.y" +#line 1829 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3196,7 +3186,7 @@ case 238: ; break;} case 239: -#line 1821 "asn1p_y.y" +#line 1835 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3207,7 +3197,7 @@ case 239: ; break;} case 240: -#line 1835 "asn1p_y.y" +#line 1849 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 2); int ret; @@ -3221,7 +3211,7 @@ case 240: ; break;} case 241: -#line 1846 "asn1p_y.y" +#line 1860 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 3); int ret; @@ -3236,13 +3226,13 @@ case 241: ; break;} case 242: -#line 1862 "asn1p_y.y" +#line 1876 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; ; break;} case 243: -#line 1865 "asn1p_y.y" +#line 1879 "asn1p_y.y" { int l1 = strlen(yyvsp[-2].tv_str); int l3 = strlen(yyvsp[0].tv_str); @@ -3254,45 +3244,45 @@ case 243: ; break;} case 244: -#line 1883 "asn1p_y.y" +#line 1897 "asn1p_y.y" { yyval.a_marker.flags = EM_NOMARK; yyval.a_marker.default_value = 0; ; break;} case 245: -#line 1887 "asn1p_y.y" +#line 1901 "asn1p_y.y" { yyval.a_marker = yyvsp[0].a_marker; ; break;} case 246: -#line 1891 "asn1p_y.y" +#line 1905 "asn1p_y.y" { yyval.a_marker.flags = EM_OPTIONAL; yyval.a_marker.default_value = 0; ; break;} case 247: -#line 1895 "asn1p_y.y" +#line 1909 "asn1p_y.y" { yyval.a_marker.flags = EM_DEFAULT; yyval.a_marker.default_value = yyvsp[0].a_value; ; break;} case 248: -#line 1918 "asn1p_y.y" +#line 1932 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); ; break;} case 249: -#line 1922 "asn1p_y.y" +#line 1936 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; ; break;} case 250: -#line 1928 "asn1p_y.y" +#line 1942 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3300,14 +3290,14 @@ case 250: ; break;} case 251: -#line 1933 "asn1p_y.y" +#line 1947 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 252: -#line 1940 "asn1p_y.y" +#line 1954 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3317,7 +3307,7 @@ case 252: ; break;} case 253: -#line 1947 "asn1p_y.y" +#line 1961 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3328,7 +3318,7 @@ case 253: ; break;} case 254: -#line 1955 "asn1p_y.y" +#line 1969 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3339,7 +3329,7 @@ case 254: ; break;} case 255: -#line 1963 "asn1p_y.y" +#line 1977 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3349,7 +3339,7 @@ case 255: ; break;} case 256: -#line 1970 "asn1p_y.y" +#line 1984 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3360,102 +3350,102 @@ case 256: ; break;} case 257: -#line 1981 "asn1p_y.y" +#line 1995 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); ; break;} case 258: -#line 1985 "asn1p_y.y" +#line 1999 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); ; break;} case 259: -#line 2016 "asn1p_y.y" +#line 2030 "asn1p_y.y" { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ; break;} case 260: -#line 2017 "asn1p_y.y" +#line 2031 "asn1p_y.y" { yyval.a_tag = yyvsp[0].a_tag; ; break;} case 261: -#line 2021 "asn1p_y.y" +#line 2035 "asn1p_y.y" { yyval.a_tag = yyvsp[-1].a_tag; yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; ; break;} case 262: -#line 2028 "asn1p_y.y" +#line 2042 "asn1p_y.y" { yyval.a_tag = yyvsp[-2].a_tag; yyval.a_tag.tag_value = yyvsp[-1].a_int; ; break;} case 263: -#line 2034 "asn1p_y.y" +#line 2048 "asn1p_y.y" { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ; break;} case 264: -#line 2035 "asn1p_y.y" +#line 2049 "asn1p_y.y" { yyval.a_tag.tag_class = TC_UNIVERSAL; ; break;} case 265: -#line 2036 "asn1p_y.y" +#line 2050 "asn1p_y.y" { yyval.a_tag.tag_class = TC_APPLICATION; ; break;} case 266: -#line 2037 "asn1p_y.y" +#line 2051 "asn1p_y.y" { yyval.a_tag.tag_class = TC_PRIVATE; ; break;} case 267: -#line 2041 "asn1p_y.y" +#line 2055 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_DEFAULT; ; break;} case 268: -#line 2042 "asn1p_y.y" +#line 2056 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_IMPLICIT; ; break;} case 269: -#line 2043 "asn1p_y.y" +#line 2057 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_EXPLICIT; ; break;} case 270: -#line 2047 "asn1p_y.y" +#line 2061 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; ; break;} case 271: -#line 2051 "asn1p_y.y" +#line 2065 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; ; break;} case 272: -#line 2059 "asn1p_y.y" +#line 2073 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; ; break;} case 273: -#line 2066 "asn1p_y.y" +#line 2080 "asn1p_y.y" { yyval.tv_str = 0; ; break;} case 274: -#line 2067 "asn1p_y.y" +#line 2081 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; ; break;} case 275: -#line 2072 "asn1p_y.y" +#line 2086 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -3683,7 +3673,7 @@ yyerrhandle: } return 1; } -#line 2078 "asn1p_y.y" +#line 2092 "asn1p_y.y" diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h index 3b8d86de..71417b36 100644 --- a/libasn1parser/asn1p_y.h +++ b/libasn1parser/asn1p_y.h @@ -37,97 +37,99 @@ typedef union { #define TOK_hstring 261 #define TOK_identifier 262 #define TOK_number 263 -#define TOK_number_negative 264 -#define TOK_typereference 265 -#define TOK_capitalreference 266 -#define TOK_typefieldreference 267 -#define TOK_valuefieldreference 268 -#define TOK_ABSENT 269 -#define TOK_ABSTRACT_SYNTAX 270 -#define TOK_ALL 271 -#define TOK_ANY 272 -#define TOK_APPLICATION 273 -#define TOK_AUTOMATIC 274 -#define TOK_BEGIN 275 -#define TOK_BIT 276 -#define TOK_BMPString 277 -#define TOK_BOOLEAN 278 -#define TOK_BY 279 -#define TOK_CHARACTER 280 -#define TOK_CHOICE 281 -#define TOK_CLASS 282 -#define TOK_COMPONENT 283 -#define TOK_COMPONENTS 284 -#define TOK_CONSTRAINED 285 -#define TOK_CONTAINING 286 -#define TOK_DEFAULT 287 -#define TOK_DEFINITIONS 288 -#define TOK_DEFINED 289 -#define TOK_EMBEDDED 290 -#define TOK_ENCODED 291 -#define TOK_ENCODING_CONTROL 292 -#define TOK_END 293 -#define TOK_ENUMERATED 294 -#define TOK_EXPLICIT 295 -#define TOK_EXPORTS 296 -#define TOK_EXTENSIBILITY 297 -#define TOK_EXTERNAL 298 -#define TOK_FALSE 299 -#define TOK_FROM 300 -#define TOK_GeneralizedTime 301 -#define TOK_GeneralString 302 -#define TOK_GraphicString 303 -#define TOK_IA5String 304 -#define TOK_IDENTIFIER 305 -#define TOK_IMPLICIT 306 -#define TOK_IMPLIED 307 -#define TOK_IMPORTS 308 -#define TOK_INCLUDES 309 -#define TOK_INSTANCE 310 -#define TOK_INSTRUCTIONS 311 -#define TOK_INTEGER 312 -#define TOK_ISO646String 313 -#define TOK_MAX 314 -#define TOK_MIN 315 -#define TOK_MINUS_INFINITY 316 -#define TOK_NULL 317 -#define TOK_NumericString 318 -#define TOK_OBJECT 319 -#define TOK_ObjectDescriptor 320 -#define TOK_OCTET 321 -#define TOK_OF 322 -#define TOK_OPTIONAL 323 -#define TOK_PATTERN 324 -#define TOK_PDV 325 -#define TOK_PLUS_INFINITY 326 -#define TOK_PRESENT 327 -#define TOK_PrintableString 328 -#define TOK_PRIVATE 329 -#define TOK_REAL 330 -#define TOK_RELATIVE_OID 331 -#define TOK_SEQUENCE 332 -#define TOK_SET 333 -#define TOK_SIZE 334 -#define TOK_STRING 335 -#define TOK_SYNTAX 336 -#define TOK_T61String 337 -#define TOK_TAGS 338 -#define TOK_TeletexString 339 -#define TOK_TRUE 340 -#define TOK_TYPE_IDENTIFIER 341 -#define TOK_UNIQUE 342 -#define TOK_UNIVERSAL 343 -#define TOK_UniversalString 344 -#define TOK_UTCTime 345 -#define TOK_UTF8String 346 -#define TOK_VideotexString 347 -#define TOK_VisibleString 348 -#define TOK_WITH 349 -#define TOK_EXCEPT 350 -#define TOK_INTERSECTION 351 -#define TOK_UNION 352 -#define TOK_TwoDots 353 -#define TOK_ThreeDots 354 +#define TOK_tuple 264 +#define TOK_quadruple 265 +#define TOK_number_negative 266 +#define TOK_typereference 267 +#define TOK_capitalreference 268 +#define TOK_typefieldreference 269 +#define TOK_valuefieldreference 270 +#define TOK_ABSENT 271 +#define TOK_ABSTRACT_SYNTAX 272 +#define TOK_ALL 273 +#define TOK_ANY 274 +#define TOK_APPLICATION 275 +#define TOK_AUTOMATIC 276 +#define TOK_BEGIN 277 +#define TOK_BIT 278 +#define TOK_BMPString 279 +#define TOK_BOOLEAN 280 +#define TOK_BY 281 +#define TOK_CHARACTER 282 +#define TOK_CHOICE 283 +#define TOK_CLASS 284 +#define TOK_COMPONENT 285 +#define TOK_COMPONENTS 286 +#define TOK_CONSTRAINED 287 +#define TOK_CONTAINING 288 +#define TOK_DEFAULT 289 +#define TOK_DEFINITIONS 290 +#define TOK_DEFINED 291 +#define TOK_EMBEDDED 292 +#define TOK_ENCODED 293 +#define TOK_ENCODING_CONTROL 294 +#define TOK_END 295 +#define TOK_ENUMERATED 296 +#define TOK_EXPLICIT 297 +#define TOK_EXPORTS 298 +#define TOK_EXTENSIBILITY 299 +#define TOK_EXTERNAL 300 +#define TOK_FALSE 301 +#define TOK_FROM 302 +#define TOK_GeneralizedTime 303 +#define TOK_GeneralString 304 +#define TOK_GraphicString 305 +#define TOK_IA5String 306 +#define TOK_IDENTIFIER 307 +#define TOK_IMPLICIT 308 +#define TOK_IMPLIED 309 +#define TOK_IMPORTS 310 +#define TOK_INCLUDES 311 +#define TOK_INSTANCE 312 +#define TOK_INSTRUCTIONS 313 +#define TOK_INTEGER 314 +#define TOK_ISO646String 315 +#define TOK_MAX 316 +#define TOK_MIN 317 +#define TOK_MINUS_INFINITY 318 +#define TOK_NULL 319 +#define TOK_NumericString 320 +#define TOK_OBJECT 321 +#define TOK_ObjectDescriptor 322 +#define TOK_OCTET 323 +#define TOK_OF 324 +#define TOK_OPTIONAL 325 +#define TOK_PATTERN 326 +#define TOK_PDV 327 +#define TOK_PLUS_INFINITY 328 +#define TOK_PRESENT 329 +#define TOK_PrintableString 330 +#define TOK_PRIVATE 331 +#define TOK_REAL 332 +#define TOK_RELATIVE_OID 333 +#define TOK_SEQUENCE 334 +#define TOK_SET 335 +#define TOK_SIZE 336 +#define TOK_STRING 337 +#define TOK_SYNTAX 338 +#define TOK_T61String 339 +#define TOK_TAGS 340 +#define TOK_TeletexString 341 +#define TOK_TRUE 342 +#define TOK_TYPE_IDENTIFIER 343 +#define TOK_UNIQUE 344 +#define TOK_UNIVERSAL 345 +#define TOK_UniversalString 346 +#define TOK_UTCTime 347 +#define TOK_UTF8String 348 +#define TOK_VideotexString 349 +#define TOK_VisibleString 350 +#define TOK_WITH 351 +#define TOK_EXCEPT 352 +#define TOK_INTERSECTION 353 +#define TOK_UNION 354 +#define TOK_TwoDots 355 +#define TOK_ThreeDots 356 extern YYSTYPE asn1p_lval; diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y index b6be6f6f..01e842fb 100644 --- a/libasn1parser/asn1p_y.y +++ b/libasn1parser/asn1p_y.y @@ -98,6 +98,8 @@ static asn1p_value_t * %token <tv_str> TOK_hstring %token <tv_str> TOK_identifier %token <a_int> TOK_number +%token <a_int> TOK_tuple +%token <a_int> TOK_quadruple %token <a_int> TOK_number_negative %token <tv_str> TOK_typereference %token <tv_str> TOK_capitalreference /* "CLASS1" */ @@ -1319,7 +1321,7 @@ Value: $$->value.choice_identifier.identifier = $1; $$->value.choice_identifier.value = $3; } - | '{' { asn1p_lexer_hack_push_opaque_state(); } Opaque /* '}' */ { + | '{' { printf("push\n"); asn1p_lexer_hack_push_opaque_state(); } Opaque /* '}' */ { $$ = asn1p_value_frombuf($3.buf, $3.len, 0); checkmem($$); $$->type = ATV_UNPARSED; @@ -1392,6 +1394,17 @@ RestrictedCharacterStringValue: $$ = asn1p_value_frombuf($1.buf, $1.len, 0); checkmem($$); } + | TOK_tuple { + $$ = asn1p_value_fromint($1); + checkmem($$); + $$->type = ATV_TUPLE; + } + | TOK_quadruple { + $$ = asn1p_value_fromint($1); + checkmem($$); + $$->type = ATV_QUADRUPLE; + } + /* | '{' TOK_number ',' TOK_number '}' { asn1c_integer_t v = ($2 << 4) + $4; if($2 > 7) return yyerror("X.680:2003, #37.14 " @@ -1416,6 +1429,7 @@ RestrictedCharacterStringValue: checkmem($$); $$->type = ATV_QUADRUPLE; } + */ ; Opaque: -- GitLab