diff options
author | Lev Walkin <vlm@lionet.info> | 2006-09-05 16:18:34 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2006-09-05 16:18:34 +0000 |
commit | adf863fc8fb984e1d7e6bbe1a9744fab3fbb7050 (patch) | |
tree | c53d6b1253d4414883a671178bbdac4b1d466460 /libasn1parser/asn1p_l.c | |
parent | 3cf7c3a1e7f8fa127ea26c782808aaff2c3c0d3f (diff) |
support parsing realnumber tokens in constraints
Diffstat (limited to 'libasn1parser/asn1p_l.c')
-rw-r--r-- | libasn1parser/asn1p_l.c | 3345 |
1 files changed, 1701 insertions, 1644 deletions
diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c index d4f152ff..b57fd7e5 100644 --- a/libasn1parser/asn1p_l.c +++ b/libasn1parser/asn1p_l.c @@ -21,8 +21,15 @@ /* Scanner skeleton version: * $Header$ + * $FreeBSD: src/usr.bin/lex/flex.skl,v 1.8 2004/01/06 19:03:44 nectar Exp $ */ +#if defined(__FreeBSD__) +#include <sys/cdefs.h> +#else +#define __unused +#endif + #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 @@ -259,7 +266,7 @@ YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); static void *yy_flex_alloc YY_PROTO(( yy_size_t )); -static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); +static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) __unused; static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer @@ -312,233 +319,235 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 137 -#define YY_END_OF_BUFFER 138 -static yyconst short int yy_acclist[1258] = +#define YY_NUM_RULES 138 +#define YY_END_OF_BUFFER 139 +static yyconst short int yy_acclist[1264] = { 0, - 138, 136, 137, 131, 136, 137, 131, 137, 134, 136, - 137, 19, 136, 137, 134, 136, 137, 136, 137, 134, - 136, 137, 136, 137, 134, 136, 137, 136, 137, 33, - 136, 137, 32, 136, 137, 134, 136, 137, 136, 137, - 119, 120, 136, 137, 119, 120, 136, 137, 119, 120, - 136, 137, 119, 120, 136, 137, 119, 120, 136, 137, - 119, 120, 136, 137, 119, 120, 136, 137, 119, 120, - 136, 137, 119, 120, 136, 137, 119, 120, 136, 137, - 119, 120, 136, 137, 119, 120, 136, 137, 119, 120, - 136, 137, 119, 120, 136, 137, 119, 120, 136, 137, - - 119, 120, 136, 137, 119, 120, 136, 137, 119, 120, - 136, 137, 119, 120, 136, 137, 118, 136, 137, 134, - 136, 137, 9, 136, 137, 6, 137, 6, 136, 137, - 8, 136, 137, 8, 136, 137, 11, 13, 136, 137, - 11, 137, 13, 136, 137, 13, 136, 137, 13, 136, - 137, 21, 136, 137, 21, 137, 22, 136, 137, 16, - 136, 137, 16, 137, 18, 136, 137, 18, 136, 137, - 14, 136, 137, 15, 136, 137, 25, 27, 136, 137, - 27, 136, 137, 28, 137, 25, 26, 27, 136, 137, - 25, 26, 27, 136, 137, 129, 136, 137, 129, 137, - - 136, 137, 125, 136, 137, 136, 137, 136, 137, 124, - 136, 137, 127, 136, 137, 128, 136, 137, 126, 136, - 137, 130, 136, 137, 131, 19, 19, 116, 117, 5, - 31, 123, 10, 32, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 43, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 120, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 120, 119, 120, 119, 120, 88, - - 119, 120, 119, 120, 120, 119, 120, 119, 120, 119, - 120, 119, 120, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 120, 119, 120, 119, 120, 120, 120, 119, 120, 118, - 9, 7, 7, 12, 21, 20, 16, 25, 25, 26, - 25, 26, 129, 5, 124, 135, 116, 117, 31, 122, - 121, 119, 120, 120, 119, 120, 35, 119, 120, 36, - 119, 120, 119, 120, 119, 120, 119, 120, 40, 119, - 120, 119, 120, 119, 120, 119, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 119, 120, 119, 120, 119, - - 120, 57, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 120, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 80, 119, 120, 81, 119, 120, 119, 120, - 120, 119, 120, 119, 120, 119, 120, 120, 119, 120, - 91, 119, 120, 119, 120, 119, 120, 119, 120, 120, - 119, 120, 119, 120, 119, 120, 99, 119, 120, 119, - 120, 119, 120, 119, 120, 119, 120, 119, 120, 119, - 120, 120, 119, 120, 119, 120, 119, 120, 120, 120, - 120, 119, 120, 118, 3, 17, 25, 26, 24, 25, - - 26, 124, 116, 117, 30, 29, 2, 1, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 65, 119, 120, 120, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 119, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 83, 119, 120, 120, 119, - 120, 119, 120, 119, 120, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 120, 96, 119, 120, 119, 120, - - 119, 120, 100, 119, 120, 119, 120, 119, 120, 119, - 120, 104, 119, 120, 106, 119, 120, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 120, 120, - 120, 115, 119, 120, 3, 25, 26, 119, 120, 119, - 120, 119, 120, 39, 119, 120, 120, 119, 120, 119, - 120, 119, 120, 46, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 64, 119, 120, 120, 120, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 119, 120, 119, 120, - - 119, 120, 119, 120, 119, 120, 119, 120, 120, 119, - 120, 87, 119, 120, 119, 120, 120, 119, 120, 119, - 120, 119, 120, 120, 119, 120, 119, 120, 119, 120, - 119, 120, 120, 120, 107, 119, 120, 119, 120, 119, - 120, 120, 119, 120, 120, 120, 120, 132, 25, 26, - 34, 119, 120, 119, 120, 119, 120, 120, 119, 120, - 119, 120, 45, 119, 120, 119, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 119, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 59, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 120, 120, 120, 119, - - 120, 119, 120, 119, 120, 119, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 119, 120, 119, 120, 120, - 85, 119, 120, 119, 120, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 120, 119, 120, 119, 120, 101, - 119, 120, 102, 119, 120, 120, 120, 108, 119, 120, - 119, 120, 120, 120, 120, 120, 120, 25, 26, 119, - 120, 119, 120, 120, 42, 119, 120, 119, 120, 119, - 120, 119, 120, 119, 120, 51, 119, 120, 52, 119, - 120, 119, 120, 119, 120, 55, 119, 120, 119, 120, - 119, 120, 119, 120, 61, 119, 120, 119, 120, 119, - - 120, 120, 120, 120, 119, 120, 119, 120, 72, 119, - 120, 73, 119, 120, 119, 120, 119, 120, 119, 120, - 77, 119, 120, 119, 120, 119, 120, 119, 120, 120, - 119, 120, 120, 90, 119, 120, 119, 120, 93, 119, - 120, 95, 119, 120, 120, 119, 120, 119, 120, 120, - 120, 119, 120, 111, 120, 120, 120, 120, 120, 25, - 26, 119, 120, 119, 120, 120, 119, 120, 119, 120, - 119, 120, 119, 120, 119, 120, 54, 119, 120, 119, - 120, 119, 120, 60, 119, 120, 119, 120, 63, 119, - 120, 120, 120, 120, 120, 119, 120, 71, 119, 120, - - 74, 119, 120, 75, 119, 120, 119, 120, 119, 120, - 120, 119, 120, 120, 89, 119, 120, 120, 119, 120, - 120, 119, 120, 98, 119, 120, 120, 120, 119, 120, - 120, 120, 120, 120, 25, 26, 119, 120, 38, 119, - 120, 41, 120, 44, 119, 120, 47, 119, 120, 119, - 120, 119, 120, 119, 120, 119, 120, 119, 120, 120, - 120, 120, 69, 120, 119, 120, 119, 120, 119, 120, - 120, 119, 120, 120, 120, 119, 120, 120, 103, 120, - 120, 109, 119, 120, 120, 120, 120, 120, 133, 25, - 119, 120, 48, 119, 120, 119, 120, 50, 119, 120, - - 119, 120, 119, 120, 58, 119, 120, 119, 120, 120, - 120, 120, 70, 119, 120, 119, 120, 119, 120, 120, - 119, 120, 120, 120, 119, 120, 120, 119, 120, 120, - 112, 120, 120, 120, 120, 25, 37, 119, 120, 49, - 119, 120, 53, 119, 120, 119, 120, 119, 120, 120, - 120, 120, 119, 120, 119, 120, 120, 119, 120, 120, - 120, 119, 120, 120, 119, 120, 120, 120, 120, 120, - 25, 119, 120, 119, 120, 120, 120, 120, 76, 119, - 120, 78, 119, 120, 79, 120, 119, 120, 120, 120, - 119, 120, 120, 97, 119, 120, 120, 120, 120, 120, - - 25, 119, 120, 62, 119, 120, 67, 120, 120, 68, - 120, 119, 120, 84, 120, 120, 92, 119, 120, 120, - 105, 120, 120, 120, 114, 120, 25, 119, 120, 120, - 82, 119, 120, 120, 120, 120, 113, 120, 25, 119, - 120, 66, 120, 120, 94, 120, 110, 120, 25, 56, - 119, 120, 86, 120, 23, 25, 4 + 139, 137, 138, 132, 137, 138, 132, 138, 135, 137, + 138, 19, 137, 138, 135, 137, 138, 137, 138, 135, + 137, 138, 137, 138, 137, 138, 135, 137, 138, 137, + 138, 33, 137, 138, 32, 137, 138, 135, 137, 138, + 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, + 120, 121, 137, 138, 120, 121, 137, 138, 120, 121, + 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, + 120, 121, 137, 138, 120, 121, 137, 138, 120, 121, + 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, + 120, 121, 137, 138, 120, 121, 137, 138, 120, 121, + + 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, + 120, 121, 137, 138, 120, 121, 137, 138, 119, 137, + 138, 135, 137, 138, 9, 137, 138, 6, 138, 6, + 137, 138, 8, 137, 138, 8, 137, 138, 11, 13, + 137, 138, 11, 138, 13, 137, 138, 13, 137, 138, + 13, 137, 138, 21, 137, 138, 21, 138, 22, 137, + 138, 16, 137, 138, 16, 138, 18, 137, 138, 18, + 137, 138, 14, 137, 138, 15, 137, 138, 25, 27, + 137, 138, 27, 137, 138, 28, 138, 25, 26, 27, + 137, 138, 25, 26, 27, 137, 138, 130, 137, 138, + + 130, 138, 137, 138, 126, 137, 138, 137, 138, 137, + 138, 125, 137, 138, 128, 137, 138, 129, 137, 138, + 127, 137, 138, 131, 137, 138, 132, 19, 19, 117, + 118, 5, 31, 124, 10, 34, 32, 34, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 44, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 121, 120, + + 121, 120, 121, 89, 120, 121, 120, 121, 121, 120, + 121, 120, 121, 120, 121, 120, 121, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 121, 120, 121, 120, 121, 121, + 121, 120, 121, 119, 9, 7, 7, 12, 21, 20, + 16, 25, 25, 26, 25, 26, 130, 5, 125, 136, + 117, 118, 31, 34, 123, 34, 122, 120, 121, 121, + 120, 121, 36, 120, 121, 37, 120, 121, 120, 121, + 120, 121, 120, 121, 41, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + + 121, 120, 121, 120, 121, 120, 121, 58, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 121, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 81, 120, + 121, 82, 120, 121, 120, 121, 121, 120, 121, 120, + 121, 120, 121, 121, 120, 121, 92, 120, 121, 120, + 121, 120, 121, 120, 121, 121, 120, 121, 120, 121, + 120, 121, 100, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 120, 121, 121, 120, 121, + 120, 121, 120, 121, 121, 121, 121, 120, 121, 119, + + 3, 17, 25, 26, 24, 25, 26, 125, 117, 118, + 30, 29, 2, 1, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 66, 120, + 121, 121, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 84, 120, 121, 121, 120, 121, 120, 121, 120, + 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, + + 121, 97, 120, 121, 120, 121, 120, 121, 101, 120, + 121, 120, 121, 120, 121, 120, 121, 105, 120, 121, + 107, 120, 121, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 121, 121, 121, 116, 120, 121, + 3, 25, 26, 120, 121, 120, 121, 120, 121, 40, + 120, 121, 121, 120, 121, 120, 121, 120, 121, 47, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 65, 120, + 121, 121, 121, 121, 120, 121, 120, 121, 120, 121, + + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 121, 120, 121, 88, 120, 121, + 120, 121, 121, 120, 121, 120, 121, 120, 121, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 121, 121, + 108, 120, 121, 120, 121, 120, 121, 121, 120, 121, + 121, 121, 121, 133, 25, 26, 35, 120, 121, 120, + 121, 120, 121, 121, 120, 121, 120, 121, 46, 120, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 60, 120, 121, 120, 121, 120, 121, 120, 121, + + 120, 121, 121, 121, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 121, 86, 120, 121, 120, + 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 121, 120, 121, 120, 121, 102, 120, 121, 103, 120, + 121, 121, 121, 109, 120, 121, 120, 121, 121, 121, + 121, 121, 121, 25, 26, 120, 121, 120, 121, 121, + 43, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 52, 120, 121, 53, 120, 121, 120, 121, 120, + 121, 56, 120, 121, 120, 121, 120, 121, 120, 121, + + 62, 120, 121, 120, 121, 120, 121, 121, 121, 121, + 120, 121, 120, 121, 73, 120, 121, 74, 120, 121, + 120, 121, 120, 121, 120, 121, 78, 120, 121, 120, + 121, 120, 121, 120, 121, 121, 120, 121, 121, 91, + 120, 121, 120, 121, 94, 120, 121, 96, 120, 121, + 121, 120, 121, 120, 121, 121, 121, 120, 121, 112, + 121, 121, 121, 121, 121, 25, 26, 120, 121, 120, + 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 55, 120, 121, 120, 121, 120, 121, 61, + 120, 121, 120, 121, 64, 120, 121, 121, 121, 121, + + 121, 120, 121, 72, 120, 121, 75, 120, 121, 76, + 120, 121, 120, 121, 120, 121, 121, 120, 121, 121, + 90, 120, 121, 121, 120, 121, 121, 120, 121, 99, + 120, 121, 121, 121, 120, 121, 121, 121, 121, 121, + 25, 26, 120, 121, 39, 120, 121, 42, 121, 45, + 120, 121, 48, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 121, 121, 121, 70, 121, + 120, 121, 120, 121, 120, 121, 121, 120, 121, 121, + 121, 120, 121, 121, 104, 121, 121, 110, 120, 121, + 121, 121, 121, 121, 134, 25, 120, 121, 49, 120, + + 121, 120, 121, 51, 120, 121, 120, 121, 120, 121, + 59, 120, 121, 120, 121, 121, 121, 121, 71, 120, + 121, 120, 121, 120, 121, 121, 120, 121, 121, 121, + 120, 121, 121, 120, 121, 121, 113, 121, 121, 121, + 121, 25, 38, 120, 121, 50, 120, 121, 54, 120, + 121, 120, 121, 120, 121, 121, 121, 121, 120, 121, + 120, 121, 121, 120, 121, 121, 121, 120, 121, 121, + 120, 121, 121, 121, 121, 121, 25, 120, 121, 120, + 121, 121, 121, 121, 77, 120, 121, 79, 120, 121, + 80, 121, 120, 121, 121, 121, 120, 121, 121, 98, + + 120, 121, 121, 121, 121, 121, 25, 120, 121, 63, + 120, 121, 68, 121, 121, 69, 121, 120, 121, 85, + 121, 121, 93, 120, 121, 121, 106, 121, 121, 121, + 115, 121, 25, 120, 121, 121, 83, 120, 121, 121, + 121, 121, 114, 121, 25, 120, 121, 67, 121, 121, + 95, 121, 111, 121, 25, 57, 120, 121, 87, 121, + 23, 25, 4 } ; -static yyconst short int yy_accept[736] = +static yyconst short int yy_accept[743] = { 0, 1, 1, 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, 126, 128, 131, 134, 137, 141, - 143, 146, 149, 152, 155, 157, 160, 163, 165, 168, - 171, 174, 177, 181, 184, 186, 191, 196, 199, 201, - 203, 206, 208, 210, 213, 216, 219, 222, 225, 225, - 226, 227, 228, 228, 229, 229, 230, 230, 230, 231, - - 232, 233, 234, 235, 235, 235, 237, 239, 241, 243, - 245, 247, 248, 250, 252, 254, 256, 259, 261, 263, - 265, 267, 269, 271, 273, 275, 277, 278, 279, 281, - 283, 285, 287, 289, 291, 293, 295, 296, 298, 300, - 303, 305, 306, 308, 310, 312, 314, 315, 317, 319, - 321, 323, 325, 327, 329, 331, 332, 334, 336, 337, - 338, 340, 340, 341, 341, 341, 341, 342, 343, 344, - 345, 346, 347, 348, 348, 349, 351, 353, 354, 355, - 355, 356, 357, 357, 357, 358, 358, 359, 359, 359, - 359, 359, 360, 361, 362, 364, 365, 367, 370, 373, - - 375, 377, 377, 379, 382, 384, 386, 388, 390, 392, - 394, 396, 398, 400, 402, 405, 407, 409, 411, 413, - 415, 417, 418, 419, 421, 423, 425, 427, 429, 431, - 433, 436, 439, 441, 442, 444, 446, 448, 449, 451, - 454, 456, 458, 460, 461, 463, 465, 467, 470, 472, - 474, 476, 478, 480, 482, 483, 485, 487, 489, 490, - 491, 492, 494, 495, 495, 495, 496, 497, 499, 502, - 503, 503, 504, 505, 506, 507, 508, 509, 509, 509, - 509, 511, 513, 515, 517, 519, 521, 523, 525, 527, - 529, 531, 533, 535, 537, 539, 541, 543, 545, 547, - - 549, 551, 553, 556, 557, 558, 560, 562, 564, 566, - 568, 570, 572, 574, 576, 579, 580, 582, 584, 586, - 587, 589, 591, 593, 595, 596, 599, 601, 603, 606, - 608, 610, 612, 615, 618, 619, 621, 623, 625, 627, - 629, 630, 631, 632, 635, 635, 635, 635, 635, 636, - 638, 638, 640, 642, 644, 647, 648, 650, 652, 654, - 657, 659, 661, 663, 665, 667, 669, 671, 673, 675, - 677, 679, 681, 683, 686, 687, 688, 689, 691, 693, - 695, 697, 699, 701, 703, 705, 707, 709, 710, 712, - 715, 717, 718, 720, 720, 722, 724, 725, 727, 729, - - 731, 733, 734, 735, 738, 740, 742, 743, 745, 746, - 747, 748, 748, 748, 749, 751, 751, 754, 756, 758, - 759, 761, 763, 766, 768, 770, 772, 774, 776, 778, - 780, 782, 784, 786, 789, 791, 793, 795, 797, 798, - 799, 800, 802, 804, 806, 808, 810, 812, 814, 816, - 818, 820, 820, 821, 824, 826, 827, 829, 831, 833, - 835, 836, 838, 840, 843, 846, 847, 848, 851, 853, - 854, 855, 856, 857, 858, 858, 858, 860, 860, 862, - 864, 865, 868, 870, 872, 874, 876, 879, 882, 884, - 886, 889, 891, 893, 895, 898, 900, 902, 903, 904, - - 905, 907, 909, 912, 915, 917, 919, 921, 924, 926, - 928, 930, 931, 933, 934, 937, 939, 942, 945, 946, - 948, 950, 951, 952, 954, 956, 957, 958, 959, 960, - 960, 962, 962, 964, 966, 967, 969, 971, 973, 975, - 977, 980, 982, 984, 987, 989, 992, 993, 994, 995, - 996, 998, 1001, 1004, 1007, 1009, 1011, 1012, 1014, 1015, - 1018, 1019, 1021, 1022, 1024, 1027, 1028, 1029, 1031, 1032, - 1033, 1034, 1035, 1035, 1035, 1037, 1037, 1039, 1042, 1044, - 1047, 1050, 1052, 1054, 1056, 1056, 1058, 1060, 1061, 1062, - 1063, 1065, 1067, 1069, 1071, 1072, 1074, 1075, 1076, 1078, - - 1079, 1079, 1081, 1082, 1085, 1086, 1087, 1088, 1089, 1089, - 1090, 1091, 1091, 1093, 1096, 1098, 1101, 1103, 1105, 1108, - 1110, 1111, 1112, 1113, 1116, 1118, 1120, 1121, 1123, 1124, - 1125, 1127, 1128, 1130, 1131, 1133, 1134, 1135, 1136, 1137, - 1137, 1140, 1143, 1146, 1148, 1150, 1151, 1152, 1153, 1155, - 1157, 1158, 1160, 1161, 1162, 1164, 1165, 1167, 1168, 1169, - 1170, 1171, 1172, 1172, 1174, 1176, 1177, 1178, 1179, 1182, - 1185, 1187, 1189, 1190, 1191, 1193, 1194, 1197, 1198, 1199, - 1200, 1201, 1202, 1202, 1204, 1207, 1209, 1210, 1212, 1214, - 1216, 1217, 1220, 1221, 1223, 1224, 1225, 1227, 1228, 1228, - - 1230, 1231, 1234, 1235, 1236, 1237, 1239, 1240, 1240, 1242, - 1244, 1245, 1247, 1249, 1250, 1250, 1253, 1255, 1257, 1257, - 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, - 1257, 1257, 1257, 1258, 1258 + 9, 12, 15, 18, 20, 23, 25, 27, 30, 32, + 35, 38, 41, 43, 47, 51, 55, 59, 63, 67, + 71, 75, 79, 83, 87, 91, 95, 99, 103, 107, + 111, 115, 119, 122, 125, 128, 130, 133, 136, 139, + 143, 145, 148, 151, 154, 157, 159, 162, 165, 167, + 170, 173, 176, 179, 183, 186, 188, 193, 198, 201, + 203, 205, 208, 210, 212, 215, 218, 221, 224, 227, + 227, 228, 229, 230, 230, 231, 231, 232, 232, 232, + + 232, 233, 234, 235, 236, 236, 237, 237, 239, 239, + 239, 241, 243, 245, 247, 249, 251, 252, 254, 256, + 258, 260, 263, 265, 267, 269, 271, 273, 275, 277, + 279, 281, 282, 283, 285, 287, 289, 291, 293, 295, + 297, 299, 300, 302, 304, 307, 309, 310, 312, 314, + 316, 318, 319, 321, 323, 325, 327, 329, 331, 333, + 335, 336, 338, 340, 341, 342, 344, 344, 345, 345, + 345, 345, 346, 347, 348, 349, 350, 351, 352, 352, + 353, 355, 357, 358, 359, 359, 360, 361, 361, 361, + 362, 362, 363, 363, 363, 363, 363, 365, 366, 367, + + 367, 368, 370, 371, 373, 376, 379, 381, 383, 383, + 385, 388, 390, 392, 394, 396, 398, 400, 402, 404, + 406, 408, 411, 413, 415, 417, 419, 421, 423, 424, + 425, 427, 429, 431, 433, 435, 437, 439, 442, 445, + 447, 448, 450, 452, 454, 455, 457, 460, 462, 464, + 466, 467, 469, 471, 473, 476, 478, 480, 482, 484, + 486, 488, 489, 491, 493, 495, 496, 497, 498, 500, + 501, 501, 501, 502, 503, 505, 508, 509, 509, 510, + 511, 512, 513, 514, 515, 515, 515, 515, 517, 519, + 521, 523, 525, 527, 529, 531, 533, 535, 537, 539, + + 541, 543, 545, 547, 549, 551, 553, 555, 557, 559, + 562, 563, 564, 566, 568, 570, 572, 574, 576, 578, + 580, 582, 585, 586, 588, 590, 592, 593, 595, 597, + 599, 601, 602, 605, 607, 609, 612, 614, 616, 618, + 621, 624, 625, 627, 629, 631, 633, 635, 636, 637, + 638, 641, 641, 641, 641, 641, 642, 644, 644, 646, + 648, 650, 653, 654, 656, 658, 660, 663, 665, 667, + 669, 671, 673, 675, 677, 679, 681, 683, 685, 687, + 689, 692, 693, 694, 695, 697, 699, 701, 703, 705, + 707, 709, 711, 713, 715, 716, 718, 721, 723, 724, + + 726, 726, 728, 730, 731, 733, 735, 737, 739, 740, + 741, 744, 746, 748, 749, 751, 752, 753, 754, 754, + 754, 755, 757, 757, 760, 762, 764, 765, 767, 769, + 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, + 792, 795, 797, 799, 801, 803, 804, 805, 806, 808, + 810, 812, 814, 816, 818, 820, 822, 824, 826, 826, + 827, 830, 832, 833, 835, 837, 839, 841, 842, 844, + 846, 849, 852, 853, 854, 857, 859, 860, 861, 862, + 863, 864, 864, 864, 866, 866, 868, 870, 871, 874, + 876, 878, 880, 882, 885, 888, 890, 892, 895, 897, + + 899, 901, 904, 906, 908, 909, 910, 911, 913, 915, + 918, 921, 923, 925, 927, 930, 932, 934, 936, 937, + 939, 940, 943, 945, 948, 951, 952, 954, 956, 957, + 958, 960, 962, 963, 964, 965, 966, 966, 968, 968, + 970, 972, 973, 975, 977, 979, 981, 983, 986, 988, + 990, 993, 995, 998, 999, 1000, 1001, 1002, 1004, 1007, + 1010, 1013, 1015, 1017, 1018, 1020, 1021, 1024, 1025, 1027, + 1028, 1030, 1033, 1034, 1035, 1037, 1038, 1039, 1040, 1041, + 1041, 1041, 1043, 1043, 1045, 1048, 1050, 1053, 1056, 1058, + 1060, 1062, 1062, 1064, 1066, 1067, 1068, 1069, 1071, 1073, + + 1075, 1077, 1078, 1080, 1081, 1082, 1084, 1085, 1085, 1087, + 1088, 1091, 1092, 1093, 1094, 1095, 1095, 1096, 1097, 1097, + 1099, 1102, 1104, 1107, 1109, 1111, 1114, 1116, 1117, 1118, + 1119, 1122, 1124, 1126, 1127, 1129, 1130, 1131, 1133, 1134, + 1136, 1137, 1139, 1140, 1141, 1142, 1143, 1143, 1146, 1149, + 1152, 1154, 1156, 1157, 1158, 1159, 1161, 1163, 1164, 1166, + 1167, 1168, 1170, 1171, 1173, 1174, 1175, 1176, 1177, 1178, + 1178, 1180, 1182, 1183, 1184, 1185, 1188, 1191, 1193, 1195, + 1196, 1197, 1199, 1200, 1203, 1204, 1205, 1206, 1207, 1208, + 1208, 1210, 1213, 1215, 1216, 1218, 1220, 1222, 1223, 1226, + + 1227, 1229, 1230, 1231, 1233, 1234, 1234, 1236, 1237, 1240, + 1241, 1242, 1243, 1245, 1246, 1246, 1248, 1250, 1251, 1253, + 1255, 1256, 1256, 1259, 1261, 1263, 1263, 1263, 1263, 1263, + 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, + 1264, 1264 } ; static yyconst int yy_ec[256] = @@ -547,16 +556,16 @@ static yyconst int yy_ec[256] = 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 6, 7, 1, 1, 1, 8, 9, 10, - 10, 11, 1, 12, 13, 14, 15, 16, 17, 18, - 18, 19, 20, 21, 18, 22, 23, 24, 25, 26, - 27, 28, 1, 10, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 1, 56, 57, 1, 1, 58, 59, 60, 61, - - 62, 63, 64, 65, 66, 67, 63, 68, 69, 70, - 71, 72, 63, 73, 74, 75, 76, 77, 63, 78, - 63, 79, 80, 81, 82, 1, 1, 1, 1, 1, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 19, 20, 21, 22, 19, 23, 24, 25, 26, 27, + 28, 29, 1, 10, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 1, 57, 58, 1, 1, 59, 60, 61, 62, + + 63, 64, 65, 66, 67, 68, 64, 69, 70, 71, + 72, 73, 64, 74, 75, 76, 77, 78, 64, 79, + 64, 80, 81, 82, 83, 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, @@ -573,693 +582,704 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[83] = +static yyconst int yy_meta[84] = { 0, 1, 2, 3, 4, 4, 1, 5, 1, 6, 1, - 1, 1, 7, 1, 1, 8, 8, 8, 8, 8, - 8, 8, 8, 9, 1, 1, 9, 1, 10, 10, - 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, + 1, 1, 1, 7, 1, 1, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 1, 1, 9, 1, 10, + 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 1, 1, 1, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 1, 1, 1, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, - 1, 13 + 12, 1, 13 } ; -static yyconst short int yy_base[761] = +static yyconst short int yy_base[768] = { 0, - 0, 0, 80, 83, 86, 97, 92, 94, 91, 101, - 89, 103, 185, 267, 349, 0, 1572, 1561, 119, 129, - 1557, 1555, 423, 137, 4413, 138, 1548, 103, 4413, 156, - 1537, 4413, 490, 184, 208, 190, 257, 285, 540, 205, - 546, 567, 561, 277, 585, 600, 606, 631, 634, 623, - 654, 1547, 697, 0, 4413, 4413, 1546, 1540, 4413, 4413, - 1536, 1538, 4413, 0, 0, 1541, 0, 0, 1522, 4413, - 4413, 4413, 0, 4413, 4413, 720, 801, 160, 199, 110, - 4413, 1529, 1529, 1526, 4413, 4413, 4413, 4413, 1531, 203, - 0, 1530, 1525, 1514, 86, 1510, 433, 1512, 123, 321, - - 1506, 4413, 689, 1487, 825, 709, 710, 725, 738, 741, - 756, 1499, 800, 806, 821, 829, 875, 878, 896, 893, - 909, 917, 932, 938, 935, 953, 112, 157, 968, 971, - 979, 994, 1005, 1016, 1022, 1033, 153, 1046, 1049, 1062, - 1070, 113, 1073, 1086, 1097, 1110, 102, 1126, 1132, 1143, - 1149, 1160, 1171, 1177, 1188, 116, 1194, 1210, 218, 242, - 1209, 0, 1493, 1258, 1270, 1282, 0, 4413, 1491, 4413, - 0, 4413, 0, 1476, 0, 1455, 254, 256, 4413, 0, - 1480, 4413, 1478, 0, 1477, 0, 1476, 114, 1451, 299, - 214, 801, 4413, 4413, 1293, 1471, 1277, 1278, 1293, 1294, - - 1343, 1470, 1351, 1354, 1367, 1375, 1383, 1391, 1404, 1412, - 1415, 1436, 1437, 1452, 1458, 1469, 1475, 1486, 1492, 1503, - 1514, 243, 216, 1527, 1535, 1538, 1553, 1556, 1559, 1585, - 1577, 1588, 1601, 251, 1609, 1622, 1630, 270, 1633, 1646, - 1654, 1662, 1670, 240, 1683, 1686, 1694, 1707, 1715, 1723, - 1731, 1744, 1752, 1765, 532, 1773, 1789, 1790, 104, 558, - 223, 1805, 1462, 1848, 1856, 1461, 4413, 220, 1430, 1458, - 1413, 1455, 1447, 4413, 4413, 4413, 4413, 315, 217, 1411, - 1850, 1851, 1866, 1872, 1883, 1889, 1905, 1906, 1921, 1929, - 1937, 1953, 1950, 1961, 1974, 1977, 1992, 1998, 2009, 2015, - - 2026, 2041, 2047, 431, 533, 2058, 2064, 2079, 2080, 2095, - 2101, 2116, 2119, 2127, 2140, 432, 2148, 2151, 2164, 559, - 2172, 2185, 2193, 2201, 502, 2209, 2217, 2230, 2238, 2241, - 2259, 2256, 2262, 2277, 504, 2280, 2283, 2300, 2306, 2317, - 560, 503, 420, 2333, 2376, 2398, 2420, 2432, 1437, 303, - 1407, 2416, 2432, 2448, 2417, 568, 2454, 2469, 2472, 2480, - 2493, 2501, 2509, 2522, 2530, 2543, 2551, 2559, 2567, 2582, - 2588, 2599, 2605, 2620, 534, 572, 593, 2621, 2641, 2638, - 2659, 2658, 2674, 2680, 2691, 2704, 2715, 613, 2712, 2728, - 2736, 570, 2744, 586, 2752, 2765, 599, 2778, 2781, 2789, - - 2802, 595, 608, 2813, 2819, 2830, 277, 2841, 615, 587, - 619, 759, 2884, 4413, 397, 1430, 2868, 2884, 2881, 656, - 2892, 2905, 2908, 2925, 2931, 2942, 2948, 2963, 2969, 2986, - 2992, 3003, 3009, 3020, 3026, 3037, 3043, 3059, 622, 682, - 672, 3060, 3075, 3081, 3092, 3098, 3113, 3119, 3130, 3145, - 3151, 723, 710, 3162, 3178, 711, 3175, 1401, 3186, 3199, - 638, 3207, 3222, 3225, 3228, 728, 753, 3243, 3246, 771, - 724, 760, 775, 776, 3294, 3306, 1399, 1408, 3290, 3303, - 611, 3306, 3321, 3327, 3338, 3344, 3355, 3361, 3372, 3383, - 3389, 3400, 3406, 3417, 3428, 3434, 3445, 862, 759, 782, - - 3451, 3462, 3473, 3479, 3490, 3496, 3511, 3512, 3527, 3533, - 1396, 819, 3544, 849, 3550, 1403, 3561, 3567, 779, 3582, - 3588, 790, 832, 3604, 1423, 840, 634, 786, 863, 3638, - 110, 0, 3632, 3633, 867, 3648, 3656, 3659, 3672, 3680, - 3688, 3696, 3709, 3717, 3725, 3733, 854, 928, 855, 868, - 3746, 3754, 3757, 3770, 3778, 3781, 766, 1396, 931, 3794, - 899, 1389, 937, 3815, 3802, 903, 939, 3818, 900, 935, - 942, 941, 3866, 1027, 943, 1376, 3850, 3861, 1407, 3867, - 3878, 3884, 3899, 3900, 987, 3915, 3916, 977, 978, 1014, - 1405, 3931, 3939, 3954, 1042, 1375, 1026, 1009, 1368, 947, - - 643, 1395, 1059, 3955, 1061, 958, 1048, 1065, 1243, 4413, - 1375, 1342, 3970, 3971, 3986, 3987, 4002, 1359, 4003, 4018, - 1054, 1020, 1067, 4024, 4035, 4046, 1013, 1357, 1083, 1072, - 1352, 1088, 1343, 1092, 1366, 1094, 1111, 1116, 1335, 1305, - 4052, 4063, 4069, 1334, 4080, 1024, 430, 1129, 4091, 4097, - 1144, 1338, 1135, 1140, 1326, 1121, 1315, 1152, 1154, 1148, - 1165, 1304, 1272, 1296, 4112, 1203, 1190, 1220, 4113, 4128, - 1328, 1292, 1251, 979, 1261, 1229, 0, 1252, 1283, 1242, - 1284, 1265, 1249, 1263, 4129, 1260, 1197, 1256, 1215, 1212, - 1210, 0, 1258, 1183, 1259, 1318, 1151, 1105, 1070, 1088, - - 1270, 0, 1158, 1326, 1337, 1046, 1014, 991, 906, 901, - 1257, 864, 861, 753, 686, 0, 712, 0, 543, 489, - 440, 407, 376, 380, 371, 365, 271, 257, 1042, 1158, - 135, 124, 4413, 4413, 4178, 4191, 4204, 4217, 4230, 4243, - 4255, 4259, 4270, 4283, 4296, 4307, 4318, 4323, 4328, 4333, - 4337, 4342, 4346, 4350, 4354, 4358, 4369, 4376, 4387, 4399 + 0, 0, 81, 84, 87, 99, 94, 96, 93, 108, + 91, 103, 186, 269, 352, 0, 1657, 1646, 130, 138, + 1645, 1643, 427, 146, 4507, 158, 207, 1633, 109, 230, + 493, 1621, 4507, 543, 268, 115, 274, 289, 488, 593, + 191, 599, 509, 215, 491, 621, 406, 638, 655, 658, + 678, 689, 1631, 733, 0, 4507, 4507, 1630, 1629, 4507, + 4507, 1621, 1622, 4507, 0, 0, 1622, 0, 0, 1602, + 4507, 4507, 4507, 0, 4507, 4507, 757, 839, 122, 166, + 127, 4507, 1612, 1609, 1604, 4507, 4507, 4507, 4507, 1605, + 201, 0, 1603, 1603, 1589, 96, 1585, 656, 1588, 772, + + 103, 807, 1580, 4507, 839, 857, 886, 907, 1565, 912, + 681, 757, 892, 903, 909, 962, 1578, 963, 978, 979, + 994, 1000, 1016, 1022, 1033, 1046, 1049, 1069, 1066, 1077, + 1090, 95, 79, 1105, 1108, 1116, 1131, 1142, 1153, 1159, + 1170, 147, 1183, 1186, 1199, 1207, 94, 1210, 1223, 1234, + 1247, 143, 1263, 1269, 1280, 1286, 1297, 1308, 1314, 1325, + 169, 1331, 1347, 194, 225, 1346, 0, 1572, 757, 943, + 1381, 0, 4507, 1570, 4507, 0, 4507, 0, 1554, 0, + 1536, 258, 333, 4507, 0, 1561, 4507, 1554, 0, 1552, + 0, 1550, 226, 1526, 204, 143, 1391, 4507, 866, 894, + + 4507, 1441, 1548, 1385, 1386, 1401, 1402, 1417, 1547, 1425, + 1428, 1441, 1449, 1491, 1492, 1508, 1509, 1524, 1540, 1546, + 1557, 1563, 1574, 1580, 1591, 1597, 1608, 1619, 223, 241, + 1632, 1640, 1643, 1658, 1661, 1664, 1690, 1682, 1693, 1706, + 226, 1714, 1727, 1735, 495, 1738, 1751, 1759, 1767, 1775, + 245, 1788, 1791, 1799, 1812, 1820, 1828, 1836, 1849, 1857, + 1870, 506, 1878, 1894, 1895, 470, 507, 221, 1910, 1546, + 1954, 1962, 1543, 4507, 285, 1505, 1533, 1489, 1531, 1530, + 4507, 4507, 4507, 4507, 436, 319, 1495, 1956, 1957, 1972, + 1978, 1989, 1995, 2011, 2012, 2027, 2035, 2043, 2059, 2056, + + 2067, 2080, 2083, 2098, 2104, 2115, 2121, 2132, 2147, 2153, + 469, 535, 2164, 2170, 2185, 2186, 2201, 2207, 2222, 2225, + 2233, 2246, 554, 2254, 2257, 2270, 205, 2278, 2291, 2299, + 2307, 523, 2315, 2323, 2336, 2344, 2347, 2365, 2362, 2368, + 2383, 557, 2386, 2389, 2406, 2412, 2423, 612, 528, 631, + 2439, 2473, 2496, 2519, 2531, 1517, 190, 1486, 2515, 2530, + 2546, 2543, 623, 2564, 2567, 2570, 2585, 2588, 2596, 2609, + 2617, 2630, 2641, 2647, 2658, 2669, 2684, 2690, 2701, 2707, + 2722, 248, 558, 632, 2723, 2743, 2740, 2761, 2760, 2776, + 2782, 2793, 2806, 2817, 613, 2814, 2830, 2838, 617, 2846, + + 309, 2854, 2867, 625, 2880, 2883, 2891, 2904, 636, 641, + 2915, 2921, 2932, 643, 2943, 668, 639, 621, 441, 2987, + 4507, 302, 1508, 2971, 2987, 2984, 649, 2995, 3008, 3011, + 3028, 3034, 3045, 3051, 3066, 3072, 3089, 3095, 3106, 3112, + 3123, 3129, 3140, 3146, 3162, 656, 680, 730, 3163, 3178, + 3184, 3195, 3201, 3216, 3222, 3233, 3248, 3254, 785, 878, + 3265, 3281, 511, 3278, 1482, 3289, 3302, 885, 3310, 3325, + 3328, 3331, 734, 664, 3346, 3349, 806, 735, 733, 830, + 880, 3398, 3410, 1481, 1461, 3364, 3404, 732, 3405, 3422, + 3421, 3437, 3438, 3453, 3454, 3469, 3475, 3486, 3492, 3503, + + 3514, 3525, 3531, 3542, 982, 790, 887, 3548, 3559, 3570, + 3576, 3587, 3593, 3608, 3609, 3624, 3630, 1445, 823, 3641, + 905, 3647, 1448, 3658, 3664, 933, 3679, 3685, 924, 984, + 3701, 1467, 987, 941, 918, 1000, 3735, 101, 0, 3729, + 3730, 1003, 3745, 3753, 3756, 3769, 3777, 3785, 3793, 3806, + 3814, 3822, 3830, 1012, 634, 1019, 1004, 3843, 3851, 3854, + 3867, 3875, 3878, 1056, 1444, 1028, 3891, 1042, 1427, 1022, + 3912, 3899, 1041, 1037, 3915, 1002, 1068, 1057, 1048, 3964, + 1381, 290, 1410, 3930, 3948, 1436, 3959, 3965, 3980, 3981, + 3996, 514, 4002, 4013, 1070, 1065, 1115, 1435, 4019, 4030, + + 4041, 1026, 1403, 1131, 1109, 1397, 1127, 798, 1425, 1138, + 4047, 1089, 1129, 1142, 1151, 1493, 4507, 1392, 1358, 4058, + 4064, 4079, 4080, 4095, 1374, 4096, 4111, 1111, 1146, 1124, + 4117, 4128, 4139, 1150, 1322, 1179, 1193, 1299, 1185, 1296, + 1196, 1318, 1220, 1202, 1205, 1254, 1218, 4145, 4156, 4162, + 1227, 4173, 1168, 1118, 1174, 4184, 4190, 1218, 1224, 1209, + 1255, 1148, 1229, 1138, 1272, 1233, 1257, 1273, 1126, 1012, + 1009, 4205, 1244, 1281, 1287, 4206, 4221, 1020, 966, 1302, + 1268, 915, 1306, 0, 1357, 1340, 1275, 1409, 902, 886, + 889, 4222, 822, 1291, 820, 779, 818, 1223, 0, 1349, + + 807, 1366, 1420, 805, 771, 742, 767, 1424, 0, 1288, + 1462, 1463, 796, 696, 670, 676, 697, 1379, 541, 539, + 504, 459, 0, 441, 0, 378, 422, 373, 397, 366, + 281, 275, 268, 280, 267, 814, 1166, 115, 100, 4507, + 4507, 4272, 4285, 4298, 4311, 4324, 4337, 4349, 4353, 4364, + 4377, 4390, 4401, 4412, 4417, 4422, 4427, 4431, 4436, 4440, + 4444, 4448, 4452, 4463, 4470, 4481, 4493 } ; -static yyconst short int yy_def[761] = +static yyconst short int yy_def[768] = { 0, - 734, 1, 735, 735, 735, 735, 736, 736, 737, 737, - 738, 738, 739, 739, 734, 15, 734, 734, 734, 734, - 734, 740, 734, 741, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 742, 734, 743, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 744, 744, 734, 745, 745, 734, 734, - 734, 734, 746, 734, 734, 747, 747, 734, 734, 23, - 734, 734, 734, 748, 734, 734, 734, 734, 734, 734, - 740, 740, 734, 749, 734, 750, 741, 741, 734, 734, - - 734, 734, 734, 734, 751, 33, 33, 33, 33, 33, - 33, 752, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 752, 752, 33, 33, - 33, 33, 33, 33, 33, 33, 752, 33, 33, 33, - 33, 752, 33, 33, 33, 33, 752, 33, 33, 33, - 33, 33, 33, 33, 33, 752, 33, 33, 752, 752, - 33, 753, 742, 734, 734, 734, 743, 734, 734, 734, - 744, 734, 745, 734, 746, 77, 77, 734, 734, 754, - 748, 734, 734, 755, 749, 756, 750, 734, 734, 757, - 734, 734, 734, 734, 751, 758, 33, 33, 33, 33, - - 33, 758, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 752, 752, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 752, 33, 33, 33, 752, 33, 33, - 33, 33, 33, 752, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 752, 33, 33, 33, 752, 752, - 752, 33, 753, 734, 734, 734, 734, 77, 77, 754, - 734, 755, 756, 734, 734, 734, 734, 757, 734, 734, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - - 33, 33, 33, 752, 752, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 752, 33, 33, 33, 752, - 33, 33, 33, 33, 752, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 752, 33, 33, 33, 33, 33, - 752, 752, 752, 33, 734, 734, 734, 734, 734, 77, - 734, 33, 33, 33, 33, 752, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 752, 752, 752, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 752, 33, 33, - 33, 752, 33, 195, 33, 33, 752, 33, 33, 33, - - 33, 752, 752, 33, 33, 33, 752, 33, 752, 752, - 752, 734, 734, 734, 77, 734, 33, 33, 33, 752, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 752, 752, - 752, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 195, 752, 33, 33, 752, 33, 195, 33, 33, - 752, 33, 33, 33, 33, 752, 752, 33, 33, 752, - 752, 752, 752, 752, 734, 734, 77, 734, 33, 33, - 752, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 752, 752, 752, - - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 195, 752, 33, 752, 33, 195, 33, 33, 752, 33, - 33, 752, 752, 33, 752, 752, 752, 752, 752, 734, - 77, 759, 33, 33, 752, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 752, 752, 752, 752, - 33, 33, 33, 33, 33, 33, 752, 195, 752, 33, - 752, 195, 752, 33, 33, 752, 752, 33, 752, 752, - 752, 752, 734, 760, 77, 734, 33, 33, 752, 33, - 33, 33, 33, 33, 195, 33, 33, 752, 752, 752, - 752, 33, 33, 33, 752, 195, 752, 752, 195, 752, - - 195, 752, 752, 33, 752, 752, 752, 752, 734, 734, - 746, 734, 33, 33, 33, 33, 33, 195, 33, 33, - 752, 752, 752, 33, 33, 33, 752, 195, 752, 752, - 195, 752, 195, 752, 752, 752, 752, 752, 746, 734, - 33, 33, 33, 195, 33, 752, 752, 752, 33, 33, - 752, 195, 752, 752, 195, 752, 195, 752, 752, 752, - 752, 746, 734, 195, 33, 752, 752, 752, 33, 33, - 752, 195, 752, 752, 195, 752, 195, 752, 752, 752, - 752, 746, 734, 195, 33, 752, 752, 752, 195, 752, - 752, 195, 752, 752, 752, 752, 752, 746, 734, 195, - - 752, 195, 752, 752, 752, 752, 746, 734, 195, 752, - 752, 752, 752, 746, 734, 195, 752, 746, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 0, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734 + 741, 1, 742, 742, 742, 742, 743, 743, 744, 744, + 745, 745, 746, 746, 741, 15, 741, 741, 741, 741, + 741, 747, 741, 748, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 749, 741, 750, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 751, 751, 741, 752, 752, 741, + 741, 741, 741, 753, 741, 741, 754, 754, 741, 741, + 23, 741, 741, 741, 755, 741, 741, 741, 741, 741, + 741, 747, 747, 741, 756, 741, 757, 748, 748, 741, + + 741, 741, 741, 741, 741, 741, 741, 741, 741, 758, + 34, 34, 34, 34, 34, 34, 759, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 759, 759, 34, 34, 34, 34, 34, 34, 34, + 34, 759, 34, 34, 34, 34, 759, 34, 34, 34, + 34, 759, 34, 34, 34, 34, 34, 34, 34, 34, + 759, 34, 34, 759, 759, 34, 760, 749, 741, 741, + 741, 750, 741, 741, 741, 751, 741, 752, 741, 753, + 78, 78, 741, 741, 761, 755, 741, 741, 762, 756, + 763, 757, 741, 741, 764, 741, 741, 741, 741, 741, + + 741, 758, 765, 34, 34, 34, 34, 34, 765, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 759, 759, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 759, 34, 34, 34, 759, 34, 34, 34, 34, 34, + 759, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 759, 34, 34, 34, 759, 759, 759, 34, 760, + 741, 741, 741, 741, 78, 78, 761, 741, 762, 763, + 741, 741, 741, 741, 764, 741, 741, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 759, 759, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 759, 34, 34, 34, 759, 34, 34, 34, + 34, 759, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 759, 34, 34, 34, 34, 34, 759, 759, 759, + 34, 741, 741, 741, 741, 741, 78, 741, 34, 34, + 34, 34, 759, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 759, 759, 759, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 759, 34, 34, 34, 759, 34, + + 202, 34, 34, 759, 34, 34, 34, 34, 759, 759, + 34, 34, 34, 759, 34, 759, 759, 759, 741, 741, + 741, 78, 741, 34, 34, 34, 759, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 759, 759, 759, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 202, 759, + 34, 34, 759, 34, 202, 34, 34, 759, 34, 34, + 34, 34, 759, 759, 34, 34, 759, 759, 759, 759, + 759, 741, 741, 78, 741, 34, 34, 759, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + + 34, 34, 34, 34, 759, 759, 759, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 202, 759, 34, + 759, 34, 202, 34, 34, 759, 34, 34, 759, 759, + 34, 759, 759, 759, 759, 759, 741, 78, 766, 34, + 34, 759, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 759, 759, 759, 759, 34, 34, 34, + 34, 34, 34, 759, 202, 759, 34, 759, 202, 759, + 34, 34, 759, 759, 34, 759, 759, 759, 759, 741, + 767, 78, 741, 34, 34, 759, 34, 34, 34, 34, + 34, 202, 34, 34, 759, 759, 759, 759, 34, 34, + + 34, 759, 202, 759, 759, 202, 759, 202, 759, 759, + 34, 759, 759, 759, 759, 741, 741, 753, 741, 34, + 34, 34, 34, 34, 202, 34, 34, 759, 759, 759, + 34, 34, 34, 759, 202, 759, 759, 202, 759, 202, + 759, 759, 759, 759, 759, 753, 741, 34, 34, 34, + 202, 34, 759, 759, 759, 34, 34, 759, 202, 759, + 759, 202, 759, 202, 759, 759, 759, 759, 753, 741, + 202, 34, 759, 759, 759, 34, 34, 759, 202, 759, + 759, 202, 759, 202, 759, 759, 759, 759, 753, 741, + 202, 34, 759, 759, 759, 202, 759, 759, 202, 759, + + 759, 759, 759, 759, 753, 741, 202, 759, 202, 759, + 759, 759, 759, 753, 741, 202, 759, 759, 759, 759, + 753, 741, 202, 759, 753, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 0, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741 } ; -static yyconst short int yy_nxt[4496] = +static yyconst short int yy_nxt[4591] = { 0, 18, 19, 20, 19, 19, 21, 22, 23, 24, 25, - 18, 25, 26, 27, 28, 29, 30, 30, 30, 30, - 30, 30, 30, 31, 21, 32, 32, 18, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 40, 40, 40, - 42, 43, 44, 45, 40, 46, 47, 48, 49, 50, - 51, 40, 40, 40, 25, 21, 21, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, - 21, 25, 55, 56, 56, 55, 56, 56, 55, 56, - 56, 68, 57, 65, 60, 57, 60, 66, 58, 55, - - 56, 56, 61, 65, 61, 68, 62, 66, 62, 58, - 93, 89, 69, 102, 202, 70, 202, 63, 734, 63, - 90, 90, 90, 90, 202, 202, 69, 89, 202, 70, - 90, 90, 90, 90, 734, 190, 733, 89, 97, 97, - 97, 97, 95, 274, 575, 89, 89, 732, 191, 275, - 99, 176, 97, 97, 100, 100, 100, 100, 100, 100, - 100, 178, 178, 178, 178, 202, 734, 244, 71, 202, - 72, 103, 103, 103, 103, 103, 103, 103, 103, 238, - 341, 222, 71, 255, 72, 73, 74, 75, 74, 74, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - - 178, 178, 178, 178, 90, 90, 90, 90, 73, 73, - 73, 73, 73, 106, 223, 279, 113, 77, 279, 106, - 114, 234, 121, 106, 115, 106, 116, 106, 202, 106, - 202, 106, 106, 106, 106, 202, 117, 106, 106, 73, - 73, 73, 280, 118, 106, 280, 106, 119, 106, 106, - 120, 106, 202, 106, 202, 202, 106, 178, 178, 178, - 178, 176, 350, 202, 74, 73, 74, 73, 74, 75, - 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 202, 259, 268, 269, 106, 305, 343, 202, - 73, 73, 73, 73, 73, 176, 106, 122, 123, 77, - - 106, 277, 260, 277, 304, 106, 138, 139, 124, 325, - 140, 278, 316, 125, 106, 261, 106, 277, 106, 277, - 141, 73, 73, 73, 106, 106, 106, 278, 106, 729, - 126, 320, 728, 106, 415, 142, 192, 192, 192, 192, - 192, 192, 192, 192, 176, 470, 74, 73, 74, 32, - 78, 79, 78, 78, 32, 32, 80, 32, 32, 32, - 81, 82, 32, 83, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 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, 85, 86, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 87, 32, - 88, 89, 202, 477, 97, 97, 97, 97, 176, 727, - 726, 188, 202, 202, 202, 725, 724, 93, 97, 97, - 723, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 667, 411, 95, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - - 96, 96, 105, 375, 388, 106, 106, 106, 106, 106, - 106, 106, 106, 722, 202, 202, 202, 721, 106, 107, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 108, - 106, 109, 106, 110, 106, 106, 106, 106, 111, 106, - 106, 106, 106, 106, 202, 202, 202, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 106, - 202, 202, 202, 410, 129, 106, 397, 130, 403, 106, - 202, 106, 202, 106, 202, 106, 131, 132, 106, 106, - 106, 439, 133, 335, 106, 134, 106, 376, 734, 202, - - 106, 127, 106, 135, 106, 202, 106, 202, 106, 136, - 106, 202, 128, 143, 106, 106, 144, 720, 392, 342, - 202, 409, 458, 202, 145, 202, 106, 202, 106, 106, - 146, 202, 148, 106, 202, 106, 137, 440, 149, 106, - 420, 106, 150, 106, 456, 106, 202, 106, 106, 106, - 202, 153, 106, 151, 106, 734, 461, 147, 152, 154, - 106, 473, 106, 106, 106, 441, 106, 466, 202, 467, - 106, 106, 106, 106, 106, 157, 155, 106, 453, 106, - 535, 158, 106, 106, 202, 633, 474, 472, 160, 498, - 161, 570, 156, 106, 202, 106, 519, 106, 164, 164, - - 164, 164, 106, 159, 103, 103, 103, 103, 103, 103, - 103, 103, 165, 165, 165, 165, 165, 165, 166, 166, - 175, 481, 202, 202, 202, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 734, 202, 500, 106, 106, - 202, 499, 514, 175, 175, 175, 175, 175, 106, 106, - 106, 106, 106, 106, 106, 719, 197, 106, 106, 511, - 412, 412, 412, 412, 198, 202, 106, 106, 106, 512, - 106, 202, 202, 106, 175, 175, 175, 106, 202, 106, - 106, 106, 106, 202, 200, 106, 106, 202, 202, 106, - 199, 202, 718, 522, 202, 106, 526, 106, 202, 106, - - 175, 175, 202, 201, 106, 549, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 192, 192, 192, 192, - 192, 192, 192, 192, 175, 175, 175, 175, 175, 106, - 523, 202, 525, 527, 203, 106, 528, 529, 595, 106, - 414, 106, 177, 106, 202, 106, 563, 106, 106, 106, - 106, 550, 202, 204, 106, 175, 175, 175, 106, 566, - 106, 202, 106, 571, 205, 559, 202, 202, 106, 106, - 106, 206, 106, 202, 202, 202, 202, 106, 567, 202, - 202, 175, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - - 196, 196, 196, 196, 106, 569, 207, 106, 547, 572, - 561, 202, 202, 202, 106, 202, 106, 106, 106, 106, - 208, 106, 106, 106, 209, 106, 106, 548, 588, 590, - 579, 591, 106, 210, 211, 106, 106, 106, 106, 106, - 202, 106, 212, 202, 106, 716, 213, 202, 106, 202, - 106, 202, 106, 202, 202, 611, 106, 106, 106, 202, - 106, 106, 214, 215, 106, 106, 602, 106, 217, 605, - 202, 106, 598, 106, 220, 106, 106, 106, 106, 106, - 216, 218, 106, 106, 176, 219, 106, 224, 607, 202, - 202, 202, 106, 632, 106, 221, 106, 106, 600, 734, - - 106, 106, 606, 225, 636, 597, 589, 106, 106, 106, - 106, 106, 106, 603, 106, 608, 106, 618, 106, 106, - 106, 202, 226, 106, 227, 202, 202, 106, 609, 609, - 609, 609, 202, 106, 106, 106, 202, 106, 202, 622, - 228, 229, 106, 730, 106, 106, 106, 230, 106, 621, - 691, 106, 715, 106, 202, 106, 714, 106, 202, 106, - 202, 106, 106, 232, 106, 106, 202, 231, 630, 731, - 106, 202, 233, 202, 106, 106, 106, 202, 106, 202, - 647, 106, 651, 235, 202, 106, 623, 106, 106, 106, - 106, 106, 106, 666, 106, 202, 236, 106, 629, 106, - - 202, 106, 106, 106, 202, 106, 202, 627, 610, 106, - 106, 106, 106, 106, 106, 106, 106, 237, 106, 646, - 239, 106, 637, 202, 635, 106, 106, 106, 202, 106, - 709, 634, 648, 202, 106, 240, 106, 638, 106, 106, - 106, 202, 242, 708, 654, 241, 243, 202, 653, 106, - 707, 106, 202, 106, 245, 106, 202, 658, 106, 730, - 202, 106, 656, 202, 202, 246, 202, 106, 659, 106, - 202, 106, 106, 106, 106, 106, 247, 202, 106, 248, - 106, 661, 106, 660, 106, 731, 106, 252, 106, 106, - 106, 106, 106, 676, 250, 202, 249, 106, 668, 106, - - 106, 251, 202, 106, 673, 674, 106, 671, 106, 202, - 106, 253, 106, 680, 106, 202, 106, 106, 106, 106, - 106, 678, 202, 106, 202, 106, 679, 106, 711, 106, - 256, 106, 202, 106, 681, 106, 254, 106, 106, 106, - 257, 202, 106, 258, 609, 609, 609, 609, 106, 106, - 106, 106, 106, 106, 202, 687, 262, 106, 106, 164, - 164, 164, 164, 202, 202, 701, 686, 702, 202, 202, - 202, 202, 202, 165, 165, 165, 165, 165, 165, 166, - 166, 264, 202, 688, 703, 166, 166, 166, 166, 166, - 166, 166, 166, 265, 693, 202, 202, 166, 166, 166, - - 166, 166, 166, 166, 166, 105, 106, 106, 700, 281, - 699, 696, 698, 692, 690, 694, 106, 106, 106, 106, - 106, 106, 106, 106, 610, 106, 106, 704, 705, 717, - 202, 710, 106, 282, 106, 106, 106, 106, 202, 689, - 202, 106, 106, 684, 683, 682, 677, 697, 695, 202, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 106, 675, 672, 664, 663, 662, 202, 657, - 106, 706, 106, 106, 106, 283, 106, 284, 655, 712, - 106, 106, 106, 106, 106, 106, 106, 106, 652, 106, - - 713, 644, 106, 640, 106, 639, 106, 202, 106, 631, - 106, 628, 106, 285, 286, 106, 106, 202, 106, 202, - 106, 612, 106, 106, 106, 599, 106, 288, 287, 596, - 106, 106, 106, 106, 106, 202, 562, 558, 532, 106, - 531, 106, 516, 106, 106, 106, 478, 106, 416, 349, - 289, 106, 106, 106, 106, 290, 106, 351, 106, 186, - 106, 291, 292, 106, 293, 106, 106, 184, 182, 295, - 180, 176, 294, 349, 162, 106, 106, 106, 106, 106, - 106, 106, 734, 202, 106, 106, 275, 106, 186, 184, - 271, 106, 180, 106, 296, 106, 176, 106, 106, 106, - - 106, 106, 267, 266, 106, 162, 106, 298, 106, 297, - 106, 202, 106, 194, 106, 106, 106, 106, 106, 193, - 189, 106, 186, 106, 301, 299, 184, 106, 300, 106, - 183, 106, 106, 106, 106, 106, 182, 182, 180, 102, - 106, 179, 106, 106, 106, 174, 106, 172, 102, 302, - 170, 106, 169, 106, 303, 106, 106, 106, 168, 162, - 104, 101, 106, 92, 106, 89, 106, 106, 106, 89, - 106, 734, 734, 306, 106, 106, 307, 308, 106, 106, - 309, 106, 106, 106, 734, 106, 106, 734, 106, 734, - 734, 312, 310, 734, 106, 106, 106, 106, 106, 106, - - 106, 106, 106, 311, 106, 313, 106, 106, 734, 734, - 734, 734, 734, 734, 106, 734, 106, 106, 106, 734, - 106, 734, 734, 734, 106, 106, 106, 106, 106, 106, - 106, 106, 734, 106, 734, 734, 314, 734, 106, 734, - 315, 317, 106, 734, 106, 734, 734, 734, 106, 106, - 106, 106, 106, 734, 318, 734, 734, 106, 734, 106, - 734, 106, 106, 106, 734, 106, 319, 734, 734, 106, - 106, 106, 106, 106, 106, 106, 106, 734, 106, 734, - 321, 106, 734, 106, 734, 106, 734, 106, 734, 106, - 734, 106, 734, 106, 106, 106, 734, 106, 734, 106, - - 322, 106, 106, 106, 734, 106, 734, 734, 323, 106, - 106, 106, 106, 106, 327, 106, 734, 734, 106, 324, - 734, 734, 326, 106, 106, 106, 106, 106, 734, 106, - 734, 106, 734, 106, 106, 106, 106, 106, 734, 734, - 734, 734, 328, 734, 106, 734, 106, 329, 106, 734, - 106, 734, 106, 734, 106, 106, 106, 734, 106, 330, - 106, 734, 106, 106, 106, 734, 106, 734, 734, 734, - 106, 106, 106, 106, 106, 734, 734, 734, 331, 106, - 734, 106, 734, 106, 734, 106, 734, 106, 734, 734, - 332, 106, 106, 106, 106, 106, 734, 334, 333, 734, - - 106, 734, 106, 734, 106, 734, 106, 734, 106, 734, - 734, 340, 106, 106, 106, 336, 106, 337, 106, 106, - 734, 106, 338, 734, 734, 734, 734, 734, 106, 106, - 106, 106, 106, 106, 106, 734, 339, 106, 106, 734, - 344, 734, 734, 734, 106, 734, 106, 734, 106, 345, - 345, 345, 345, 106, 734, 734, 734, 347, 347, 347, - 347, 734, 734, 346, 346, 346, 346, 346, 346, 346, - 346, 348, 348, 348, 348, 348, 348, 348, 348, 106, - 106, 734, 734, 734, 734, 734, 734, 353, 734, 106, - 106, 352, 106, 106, 106, 106, 734, 734, 106, 106, - - 734, 106, 734, 734, 734, 106, 354, 106, 734, 106, - 734, 106, 106, 355, 106, 106, 734, 734, 106, 734, - 106, 357, 106, 734, 106, 734, 106, 734, 106, 734, - 106, 106, 106, 358, 106, 106, 359, 106, 734, 734, - 734, 734, 734, 734, 106, 106, 106, 106, 106, 106, - 106, 734, 734, 106, 106, 734, 734, 356, 106, 734, - 106, 734, 106, 734, 106, 734, 106, 360, 106, 106, - 106, 361, 106, 734, 734, 734, 106, 106, 106, 106, - 106, 363, 106, 734, 362, 106, 734, 734, 734, 106, - 106, 106, 106, 106, 106, 734, 106, 734, 364, 734, - - 106, 106, 365, 106, 106, 366, 106, 734, 367, 106, - 734, 734, 734, 106, 734, 106, 106, 106, 106, 734, - 106, 106, 106, 734, 368, 106, 734, 106, 734, 734, - 734, 106, 734, 106, 734, 106, 734, 106, 106, 106, - 106, 369, 734, 734, 106, 370, 106, 734, 106, 734, - 106, 734, 106, 734, 106, 106, 106, 106, 106, 734, - 371, 734, 734, 106, 734, 106, 734, 372, 734, 106, - 106, 373, 734, 374, 106, 734, 106, 734, 734, 734, - 106, 734, 106, 734, 106, 734, 106, 106, 106, 106, - 106, 734, 734, 106, 734, 106, 734, 106, 734, 106, - - 734, 106, 734, 106, 734, 106, 106, 106, 106, 106, - 734, 378, 106, 734, 734, 379, 734, 734, 106, 106, - 106, 106, 106, 106, 106, 380, 734, 106, 106, 382, - 106, 734, 377, 734, 106, 734, 106, 386, 106, 734, - 106, 734, 106, 381, 106, 106, 383, 734, 106, 106, - 384, 734, 734, 734, 734, 106, 106, 106, 106, 106, - 106, 385, 106, 734, 106, 734, 106, 106, 106, 106, - 106, 734, 734, 387, 734, 106, 734, 106, 389, 106, - 106, 106, 734, 106, 734, 734, 734, 106, 106, 106, - 106, 106, 106, 106, 106, 734, 106, 394, 390, 106, - - 734, 106, 734, 106, 393, 106, 391, 106, 734, 734, - 734, 106, 106, 106, 106, 106, 734, 734, 734, 734, - 106, 734, 106, 734, 106, 395, 106, 734, 106, 396, - 106, 734, 106, 106, 106, 734, 106, 734, 106, 734, - 106, 106, 106, 734, 106, 734, 106, 734, 106, 106, - 106, 734, 106, 734, 734, 734, 106, 106, 106, 106, - 106, 734, 399, 734, 398, 106, 734, 106, 734, 106, - 106, 106, 734, 106, 734, 734, 734, 106, 106, 106, - 106, 106, 400, 734, 106, 106, 106, 401, 106, 106, - 734, 106, 734, 734, 734, 106, 734, 106, 106, 106, - - 106, 106, 106, 106, 106, 106, 106, 106, 734, 106, - 106, 734, 106, 734, 734, 734, 106, 734, 106, 106, - 106, 404, 106, 106, 106, 106, 106, 734, 106, 106, - 402, 405, 406, 734, 734, 106, 734, 734, 734, 106, - 734, 106, 734, 106, 734, 106, 106, 106, 106, 106, - 734, 734, 734, 734, 106, 734, 106, 734, 106, 734, - 106, 734, 106, 408, 734, 106, 734, 734, 734, 734, - 734, 407, 106, 734, 106, 734, 106, 345, 345, 345, - 345, 106, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 346, 346, 346, 346, 346, 346, 346, 346, 412, - - 412, 412, 412, 734, 734, 734, 734, 734, 734, 413, - 734, 734, 734, 346, 346, 346, 346, 346, 346, 346, - 346, 347, 347, 347, 347, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 348, 348, 348, 348, 348, - 348, 348, 348, 413, 734, 106, 106, 348, 348, 348, - 348, 348, 348, 348, 348, 106, 106, 106, 106, 106, - 106, 106, 418, 417, 106, 106, 734, 734, 734, 734, - 734, 106, 734, 106, 734, 106, 419, 106, 734, 414, - 106, 734, 421, 106, 734, 734, 734, 106, 734, 106, - 734, 106, 734, 106, 734, 106, 106, 106, 106, 422, - - 734, 106, 106, 734, 423, 734, 734, 734, 106, 106, - 106, 106, 106, 106, 734, 106, 734, 106, 734, 106, - 106, 106, 106, 106, 734, 734, 734, 734, 106, 734, - 106, 734, 106, 734, 424, 734, 106, 734, 106, 734, - 106, 106, 106, 734, 106, 426, 425, 734, 106, 106, - 106, 106, 106, 734, 734, 734, 734, 106, 734, 106, - 734, 427, 428, 106, 734, 106, 429, 734, 734, 106, - 106, 106, 106, 106, 430, 734, 734, 734, 106, 734, - 106, 734, 106, 431, 106, 734, 106, 432, 106, 734, - 106, 106, 106, 734, 106, 734, 106, 734, 106, 106, - - 106, 734, 106, 734, 433, 734, 106, 106, 106, 734, - 106, 106, 435, 734, 434, 106, 734, 106, 734, 734, - 734, 106, 734, 106, 734, 106, 734, 106, 106, 106, - 106, 106, 734, 734, 106, 436, 106, 734, 106, 734, - 106, 734, 106, 734, 106, 437, 438, 106, 106, 106, - 106, 734, 734, 106, 734, 734, 734, 442, 734, 106, - 106, 106, 106, 106, 106, 734, 734, 106, 106, 106, - 106, 443, 734, 444, 734, 734, 734, 106, 734, 106, - 106, 106, 106, 734, 106, 445, 106, 106, 106, 106, - 446, 734, 734, 734, 734, 734, 734, 106, 106, 447, - - 106, 106, 106, 106, 734, 734, 106, 106, 734, 106, - 734, 734, 449, 106, 734, 106, 734, 106, 734, 106, - 106, 106, 448, 106, 451, 734, 734, 452, 106, 734, - 106, 734, 106, 106, 106, 734, 734, 450, 734, 106, - 734, 106, 734, 106, 106, 106, 734, 106, 734, 734, - 734, 106, 106, 106, 106, 106, 106, 106, 106, 454, - 106, 734, 734, 106, 734, 106, 734, 106, 734, 106, - 734, 106, 734, 106, 734, 106, 106, 455, 734, 106, - 734, 106, 734, 106, 106, 106, 734, 106, 734, 457, - 734, 106, 106, 459, 106, 106, 734, 734, 734, 734, - - 106, 734, 734, 734, 106, 734, 106, 106, 106, 734, - 106, 734, 460, 106, 462, 734, 734, 106, 106, 106, - 106, 106, 463, 464, 106, 734, 106, 734, 106, 106, - 106, 106, 106, 734, 734, 734, 734, 106, 734, 734, - 734, 106, 106, 106, 734, 106, 734, 734, 106, 734, - 106, 468, 106, 465, 106, 734, 106, 734, 106, 106, - 106, 106, 106, 734, 734, 734, 734, 106, 734, 106, - 106, 106, 734, 106, 734, 469, 734, 734, 106, 734, - 106, 734, 106, 734, 106, 475, 475, 475, 475, 106, - 734, 734, 734, 734, 734, 734, 734, 106, 734, 476, - - 476, 476, 476, 476, 476, 476, 476, 106, 734, 106, - 106, 106, 479, 106, 734, 471, 106, 734, 734, 734, - 106, 106, 106, 106, 106, 106, 734, 106, 480, 106, - 734, 106, 106, 482, 106, 106, 734, 106, 734, 734, - 106, 734, 734, 734, 106, 734, 106, 106, 106, 106, - 734, 106, 483, 106, 106, 734, 106, 484, 734, 485, - 106, 734, 734, 734, 106, 734, 106, 734, 106, 734, - 106, 106, 106, 106, 106, 734, 734, 106, 734, 106, - 734, 106, 734, 486, 734, 106, 734, 106, 734, 106, - 106, 106, 106, 734, 488, 487, 106, 734, 106, 734, - - 734, 734, 106, 734, 106, 734, 106, 734, 106, 734, - 106, 106, 106, 734, 734, 106, 489, 106, 490, 734, - 734, 106, 734, 491, 734, 106, 734, 106, 734, 106, - 734, 106, 106, 106, 106, 106, 734, 493, 106, 734, - 106, 734, 106, 734, 492, 734, 106, 734, 106, 106, - 106, 106, 106, 734, 734, 106, 734, 106, 734, 106, - 734, 106, 494, 106, 734, 106, 106, 106, 106, 106, - 734, 734, 106, 734, 106, 734, 106, 734, 106, 496, - 106, 734, 106, 495, 106, 106, 106, 497, 106, 106, - 734, 106, 734, 501, 734, 734, 734, 734, 106, 106, - - 106, 106, 106, 106, 106, 734, 734, 106, 106, 734, - 106, 502, 503, 734, 106, 734, 106, 734, 106, 734, - 106, 106, 106, 106, 106, 734, 734, 106, 734, 106, - 505, 106, 734, 106, 734, 106, 734, 106, 504, 106, - 106, 106, 106, 506, 734, 734, 106, 734, 106, 507, - 734, 734, 106, 734, 106, 734, 106, 734, 106, 106, - 106, 106, 106, 734, 734, 734, 734, 106, 734, 106, - 734, 106, 734, 106, 106, 508, 734, 509, 106, 734, - 106, 734, 734, 734, 106, 734, 106, 734, 106, 734, - 106, 106, 106, 106, 106, 734, 734, 510, 734, 106, - - 734, 106, 734, 106, 106, 106, 513, 106, 734, 734, - 106, 734, 734, 734, 106, 106, 515, 106, 106, 106, - 734, 106, 734, 106, 734, 106, 106, 106, 106, 106, - 734, 518, 734, 517, 106, 734, 106, 734, 106, 734, - 106, 734, 106, 734, 734, 734, 106, 106, 106, 734, - 106, 106, 521, 734, 106, 106, 520, 106, 734, 734, - 734, 106, 734, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 734, 106, 106, 734, 734, 734, - 734, 734, 106, 734, 106, 106, 106, 106, 734, 106, - 734, 106, 524, 734, 106, 475, 475, 475, 475, 734, - - 734, 734, 734, 734, 734, 734, 734, 734, 734, 476, - 476, 476, 476, 476, 476, 476, 476, 530, 734, 106, - 734, 476, 476, 476, 476, 476, 476, 476, 476, 106, - 734, 106, 106, 106, 734, 106, 734, 533, 106, 534, - 734, 734, 106, 734, 106, 106, 106, 106, 734, 106, - 106, 106, 734, 536, 106, 734, 106, 734, 734, 734, - 106, 734, 106, 734, 106, 734, 106, 106, 537, 106, - 106, 734, 734, 106, 538, 106, 734, 106, 734, 106, - 539, 106, 734, 106, 106, 106, 106, 106, 734, 734, - 106, 734, 106, 734, 106, 734, 106, 734, 106, 734, - - 106, 106, 106, 106, 106, 734, 734, 734, 540, 106, - 734, 106, 106, 106, 541, 106, 734, 734, 106, 734, - 106, 734, 106, 734, 106, 734, 106, 734, 106, 106, - 106, 106, 106, 734, 542, 106, 734, 106, 734, 106, - 734, 106, 734, 106, 734, 106, 106, 106, 106, 106, - 734, 734, 734, 543, 106, 734, 106, 106, 106, 734, - 106, 734, 734, 545, 544, 106, 734, 106, 734, 106, - 734, 106, 734, 106, 106, 106, 106, 106, 734, 734, - 106, 734, 106, 734, 546, 734, 106, 551, 106, 734, - 106, 106, 106, 106, 106, 734, 734, 734, 734, 106, - - 734, 106, 106, 106, 734, 106, 734, 734, 106, 552, - 106, 734, 106, 734, 106, 734, 106, 734, 106, 106, - 106, 106, 106, 734, 734, 106, 734, 106, 554, 106, - 734, 106, 734, 106, 734, 106, 553, 106, 106, 106, - 106, 106, 734, 734, 106, 734, 734, 734, 734, 734, - 106, 106, 106, 106, 106, 106, 106, 556, 555, 106, - 106, 734, 106, 734, 734, 734, 106, 734, 106, 734, - 106, 734, 106, 106, 106, 106, 106, 734, 734, 106, - 734, 106, 734, 560, 734, 106, 734, 106, 734, 106, - 106, 106, 106, 106, 734, 734, 106, 734, 106, 734, - - 106, 734, 106, 734, 106, 734, 106, 557, 106, 106, - 106, 106, 734, 734, 564, 106, 734, 106, 734, 734, - 565, 106, 734, 106, 734, 106, 734, 106, 734, 106, - 106, 106, 568, 106, 734, 734, 106, 734, 734, 573, - 573, 573, 573, 106, 734, 106, 734, 106, 734, 734, - 734, 734, 106, 574, 574, 574, 574, 574, 574, 574, - 574, 106, 106, 578, 734, 734, 734, 734, 577, 734, - 734, 106, 106, 106, 106, 106, 106, 106, 734, 734, - 106, 106, 734, 734, 734, 106, 734, 106, 106, 106, - 734, 106, 734, 580, 734, 106, 106, 106, 106, 106, - - 582, 106, 106, 581, 106, 734, 734, 106, 585, 106, - 734, 106, 734, 583, 734, 106, 734, 106, 734, 106, - 106, 106, 584, 106, 734, 106, 734, 106, 106, 106, - 734, 106, 734, 734, 734, 106, 106, 106, 106, 106, - 734, 586, 734, 734, 106, 734, 106, 734, 106, 734, - 106, 734, 106, 734, 106, 734, 106, 106, 106, 734, - 106, 587, 106, 734, 106, 106, 106, 734, 106, 734, - 734, 734, 106, 106, 106, 106, 106, 734, 592, 734, - 734, 106, 734, 106, 734, 106, 106, 106, 734, 106, - 734, 734, 734, 106, 106, 106, 106, 106, 106, 106, - - 106, 734, 106, 734, 734, 106, 734, 106, 734, 106, - 106, 106, 734, 106, 593, 734, 734, 106, 106, 106, - 106, 106, 106, 106, 106, 734, 106, 601, 594, 106, - 734, 106, 734, 106, 734, 106, 734, 106, 734, 734, - 734, 106, 106, 106, 106, 106, 734, 106, 734, 734, - 106, 734, 734, 734, 106, 734, 106, 604, 106, 106, - 734, 106, 734, 106, 734, 734, 106, 573, 573, 573, - 573, 734, 734, 734, 734, 734, 734, 734, 734, 106, - 734, 574, 574, 574, 574, 574, 574, 574, 574, 106, - 106, 106, 613, 106, 734, 734, 106, 734, 106, 734, - - 106, 734, 106, 734, 106, 734, 106, 106, 106, 106, - 106, 734, 734, 106, 734, 106, 615, 106, 734, 106, - 734, 106, 734, 106, 614, 106, 106, 106, 106, 106, - 734, 734, 106, 616, 734, 734, 734, 734, 106, 106, - 106, 617, 106, 106, 106, 106, 619, 106, 106, 734, - 734, 734, 734, 734, 106, 620, 106, 106, 106, 106, - 106, 734, 734, 106, 106, 734, 734, 734, 106, 734, - 106, 734, 106, 734, 106, 734, 624, 734, 106, 106, - 106, 625, 106, 106, 106, 734, 734, 106, 734, 734, - 626, 734, 734, 106, 106, 106, 106, 106, 106, 106, - - 106, 734, 106, 106, 734, 734, 734, 734, 734, 106, - 106, 641, 106, 106, 106, 106, 106, 642, 106, 106, - 734, 734, 734, 734, 734, 106, 106, 106, 106, 106, - 106, 106, 106, 734, 106, 106, 734, 734, 734, 734, - 734, 106, 106, 106, 106, 106, 106, 106, 643, 734, - 106, 106, 734, 106, 645, 734, 734, 106, 734, 106, - 734, 106, 734, 106, 106, 106, 106, 106, 734, 734, - 734, 734, 106, 734, 106, 106, 649, 734, 106, 734, - 734, 106, 734, 106, 734, 106, 734, 106, 650, 106, - 734, 106, 106, 106, 106, 106, 734, 734, 106, 734, - - 106, 734, 106, 734, 106, 734, 106, 734, 106, 106, - 106, 106, 106, 734, 734, 734, 734, 106, 734, 106, - 106, 106, 734, 106, 734, 734, 106, 665, 106, 734, - 106, 734, 106, 734, 106, 734, 106, 669, 670, 106, - 106, 106, 106, 734, 734, 106, 734, 734, 734, 734, - 734, 106, 106, 106, 106, 106, 106, 106, 106, 734, - 106, 106, 734, 734, 685, 734, 734, 106, 106, 106, - 106, 106, 106, 734, 734, 734, 106, 106, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 59, 59, 59, 59, 59, 59, 59, 59, 59, - - 59, 59, 59, 59, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 91, 91, 91, 91, 734, 91, 91, - 91, 91, 91, 91, 91, 91, 98, 98, 98, 734, - 98, 734, 98, 734, 98, 163, 163, 734, 163, 163, - 167, 167, 734, 734, 167, 167, 734, 167, 167, 167, - 167, 167, 167, 171, 171, 171, 171, 734, 171, 171, - 171, 171, 171, 171, 171, 171, 173, 173, 173, 173, - - 173, 173, 173, 173, 734, 173, 173, 175, 734, 734, - 734, 175, 175, 175, 175, 175, 175, 175, 176, 734, - 734, 734, 176, 176, 176, 176, 176, 176, 176, 181, - 181, 734, 181, 181, 185, 185, 734, 185, 185, 187, - 187, 734, 187, 187, 195, 734, 195, 195, 112, 112, - 734, 112, 112, 263, 734, 263, 263, 270, 734, 270, - 270, 272, 734, 272, 272, 273, 734, 273, 273, 276, - 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 196, 196, 734, 196, 196, 576, 576, 734, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - - 574, 574, 574, 734, 734, 734, 574, 734, 734, 734, - 734, 574, 17, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734 + 18, 26, 25, 27, 28, 29, 30, 31, 31, 31, + 31, 31, 31, 31, 32, 21, 33, 33, 18, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 41, 41, + 41, 43, 44, 45, 46, 41, 47, 48, 49, 50, + 51, 52, 41, 41, 41, 25, 21, 21, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 54, 21, 25, 56, 57, 57, 56, 57, 57, 56, + 57, 57, 209, 69, 58, 66, 61, 58, 61, 67, + + 59, 56, 57, 57, 62, 69, 62, 209, 209, 63, + 66, 63, 59, 740, 67, 70, 195, 90, 71, 104, + 64, 94, 64, 183, 183, 183, 183, 70, 739, 196, + 71, 91, 91, 91, 91, 741, 582, 230, 90, 91, + 91, 91, 91, 181, 286, 111, 90, 98, 98, 98, + 98, 123, 741, 96, 90, 124, 209, 111, 125, 111, + 209, 245, 98, 98, 111, 229, 90, 183, 183, 183, + 183, 72, 287, 73, 100, 100, 100, 100, 100, 100, + 100, 100, 209, 72, 741, 73, 74, 75, 76, 75, + 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, + + 74, 74, 91, 91, 91, 91, 284, 209, 284, 251, + 74, 74, 74, 74, 74, 90, 241, 285, 209, 78, + 101, 111, 422, 100, 102, 102, 102, 102, 102, 102, + 102, 111, 181, 111, 209, 111, 209, 262, 209, 209, + 111, 74, 74, 74, 105, 111, 106, 106, 106, 106, + 106, 106, 106, 106, 209, 111, 281, 111, 209, 111, + 266, 209, 282, 107, 141, 399, 75, 74, 75, 74, + 75, 76, 75, 75, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 311, 267, 350, 323, 275, + 276, 142, 107, 74, 74, 74, 74, 74, 111, 268, + + 181, 118, 78, 618, 111, 119, 446, 126, 111, 120, + 111, 121, 111, 312, 111, 332, 111, 111, 111, 111, + 286, 122, 741, 111, 74, 74, 74, 181, 357, 111, + 127, 128, 181, 111, 183, 183, 183, 183, 111, 484, + 736, 129, 735, 734, 181, 733, 465, 732, 287, 75, + 74, 75, 33, 79, 80, 79, 79, 33, 33, 81, + 33, 33, 33, 33, 82, 83, 33, 84, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 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, 86, 87, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 88, 33, 89, 90, 111, 731, 284, 153, + 284, 730, 419, 419, 419, 419, 111, 729, 111, 285, + 111, 728, 94, 727, 209, 111, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 209, 209, 96, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + + 97, 97, 97, 97, 97, 97, 97, 105, 209, 108, + 108, 108, 108, 108, 108, 108, 108, 130, 111, 209, + 209, 143, 144, 421, 209, 145, 107, 741, 111, 726, + 111, 111, 111, 111, 131, 146, 209, 111, 139, 111, + 111, 209, 382, 521, 725, 625, 140, 348, 209, 111, + 147, 111, 209, 111, 209, 107, 110, 327, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 209, 342, 349, + 209, 209, 111, 112, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 113, 111, 114, 111, 115, 111, 111, + 111, 111, 116, 111, 111, 111, 111, 111, 404, 417, + + 383, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 111, 447, 209, 209, 395, 134, 111, + 209, 135, 410, 111, 209, 111, 209, 111, 209, 111, + 136, 137, 111, 111, 209, 209, 138, 209, 111, 209, + 148, 111, 209, 149, 209, 132, 209, 98, 98, 98, + 98, 150, 209, 111, 193, 111, 133, 151, 111, 209, + 111, 154, 98, 98, 416, 155, 158, 209, 111, 460, + 111, 209, 111, 468, 159, 111, 156, 111, 111, 481, + 418, 157, 463, 209, 152, 111, 427, 111, 111, 111, + + 162, 160, 111, 474, 111, 448, 163, 111, 111, 473, + 209, 111, 477, 596, 480, 488, 723, 161, 111, 111, + 111, 111, 111, 111, 505, 111, 166, 111, 164, 111, + 111, 111, 722, 111, 169, 169, 169, 169, 111, 721, + 506, 479, 530, 209, 165, 209, 209, 209, 209, 170, + 170, 170, 170, 170, 170, 171, 171, 180, 169, 169, + 169, 169, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 170, 170, 170, 170, 170, 170, 171, + 171, 180, 180, 180, 180, 180, 105, 111, 106, 106, + 106, 106, 106, 106, 106, 106, 507, 111, 741, 111, + + 529, 111, 542, 209, 204, 107, 111, 534, 533, 209, + 716, 741, 180, 180, 180, 737, 715, 714, 209, 209, + 209, 105, 518, 197, 197, 197, 197, 197, 197, 197, + 197, 209, 709, 209, 107, 209, 209, 556, 180, 180, + 107, 640, 738, 209, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 199, 199, 199, 199, 199, + 199, 199, 199, 180, 180, 180, 180, 180, 532, 107, + 566, 105, 107, 106, 106, 106, 106, 106, 106, 106, + 106, 182, 199, 199, 199, 199, 199, 199, 199, 199, + 107, 209, 535, 209, 180, 180, 180, 200, 209, 200, + + 209, 107, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 209, 107, + 180, 105, 111, 108, 108, 108, 108, 108, 108, 108, + 108, 209, 205, 111, 111, 707, 111, 209, 519, 111, + 107, 111, 536, 111, 526, 111, 209, 111, 706, 111, + 705, 111, 111, 207, 209, 271, 206, 557, 111, 171, + 171, 171, 171, 171, 171, 171, 171, 568, 699, 107, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 111, 111, 573, 209, 578, 209, 210, 577, + + 209, 570, 111, 111, 111, 111, 111, 111, 111, 111, + 208, 111, 111, 209, 696, 209, 209, 209, 111, 111, + 111, 111, 111, 212, 111, 209, 211, 111, 111, 554, + 111, 574, 209, 209, 111, 209, 111, 213, 111, 209, + 111, 209, 111, 111, 111, 214, 111, 579, 555, 111, + 209, 216, 111, 576, 209, 209, 111, 691, 111, 215, + 111, 209, 111, 111, 111, 111, 111, 586, 598, 209, + 209, 111, 612, 111, 217, 218, 111, 111, 209, 220, + 219, 209, 111, 209, 607, 690, 111, 595, 111, 111, + 111, 111, 634, 111, 597, 111, 111, 224, 111, 111, + + 221, 222, 209, 604, 614, 609, 111, 111, 111, 111, + 225, 111, 610, 111, 226, 111, 605, 227, 223, 111, + 111, 111, 209, 615, 209, 231, 111, 629, 209, 602, + 111, 209, 111, 228, 111, 111, 613, 209, 111, 111, + 209, 232, 209, 628, 209, 111, 111, 111, 111, 111, + 111, 209, 111, 642, 111, 209, 111, 111, 111, 209, + 233, 111, 234, 209, 209, 111, 674, 737, 689, 637, + 684, 111, 111, 111, 639, 111, 643, 653, 235, 236, + 111, 209, 111, 111, 111, 237, 111, 209, 630, 111, + 655, 111, 209, 111, 738, 111, 682, 111, 209, 111, + + 111, 239, 111, 111, 636, 238, 209, 654, 111, 209, + 240, 641, 111, 111, 111, 209, 111, 644, 209, 111, + 658, 242, 209, 111, 645, 111, 111, 111, 111, 111, + 111, 209, 111, 209, 243, 111, 209, 111, 673, 111, + 111, 111, 209, 111, 675, 660, 209, 111, 111, 111, + 111, 111, 111, 111, 111, 244, 111, 209, 246, 111, + 663, 679, 665, 111, 111, 111, 661, 111, 209, 671, + 209, 668, 111, 247, 111, 667, 111, 111, 111, 680, + 249, 209, 678, 248, 250, 209, 209, 111, 209, 111, + 670, 111, 252, 111, 209, 666, 111, 669, 710, 111, + + 209, 209, 683, 253, 209, 111, 686, 111, 693, 111, + 111, 111, 111, 111, 254, 209, 111, 255, 111, 209, + 111, 681, 111, 687, 111, 259, 111, 111, 111, 111, + 111, 209, 257, 664, 256, 111, 662, 111, 111, 258, + 698, 111, 685, 688, 111, 703, 111, 694, 111, 260, + 111, 695, 111, 209, 111, 111, 111, 111, 111, 718, + 708, 111, 209, 111, 659, 111, 697, 111, 263, 111, + 209, 111, 700, 111, 261, 111, 111, 111, 264, 209, + 111, 265, 616, 616, 616, 616, 111, 111, 111, 111, + 111, 111, 209, 272, 269, 111, 111, 171, 171, 171, + + 171, 171, 171, 171, 171, 105, 702, 197, 197, 197, + 197, 197, 197, 197, 197, 111, 111, 651, 288, 711, + 647, 701, 209, 646, 107, 111, 111, 111, 111, 111, + 111, 111, 111, 209, 111, 111, 712, 209, 209, 638, + 635, 111, 289, 111, 111, 111, 111, 111, 209, 209, + 111, 111, 724, 107, 110, 111, 619, 111, 111, 111, + 290, 111, 291, 617, 606, 111, 111, 111, 111, 111, + 111, 111, 111, 704, 111, 209, 209, 111, 603, 111, + 209, 111, 569, 111, 713, 111, 717, 565, 292, 293, + 111, 111, 539, 111, 616, 616, 616, 616, 111, 203, + + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 111, 111, 538, 523, 485, 719, 720, 423, 295, + 356, 111, 111, 111, 111, 111, 111, 294, 111, 111, + 111, 111, 358, 191, 189, 187, 185, 181, 111, 111, + 111, 111, 111, 297, 111, 296, 356, 111, 111, 167, + 741, 209, 282, 191, 111, 189, 111, 278, 111, 300, + 111, 298, 299, 111, 185, 617, 111, 301, 181, 302, + 111, 274, 111, 273, 111, 167, 111, 111, 111, 111, + 111, 209, 201, 111, 198, 111, 194, 111, 191, 111, + + 303, 111, 189, 111, 111, 111, 111, 111, 188, 187, + 111, 187, 111, 305, 111, 304, 111, 185, 111, 104, + 111, 111, 111, 111, 111, 184, 179, 111, 177, 111, + 308, 306, 104, 111, 307, 111, 175, 111, 111, 111, + 111, 111, 174, 173, 167, 109, 111, 103, 111, 111, + 111, 93, 111, 90, 90, 309, 741, 111, 741, 111, + 310, 111, 111, 111, 741, 741, 741, 741, 111, 741, + 111, 741, 111, 111, 111, 741, 111, 741, 741, 313, + 111, 111, 314, 315, 111, 111, 316, 111, 111, 111, + 741, 111, 111, 741, 111, 741, 741, 319, 317, 741, + + 111, 111, 111, 111, 111, 111, 111, 111, 111, 318, + 111, 320, 111, 111, 741, 741, 741, 741, 741, 741, + 111, 741, 111, 111, 111, 741, 111, 741, 741, 741, + 111, 111, 111, 111, 111, 111, 111, 111, 741, 111, + 741, 741, 321, 741, 111, 741, 322, 324, 111, 741, + 111, 741, 741, 741, 111, 111, 111, 111, 111, 741, + 325, 741, 741, 111, 741, 111, 741, 111, 111, 111, + 741, 111, 326, 741, 741, 111, 111, 111, 111, 111, + 111, 111, 111, 741, 111, 741, 328, 111, 741, 111, + 741, 111, 741, 111, 741, 111, 741, 111, 741, 111, + + 111, 111, 741, 111, 741, 111, 329, 111, 111, 111, + 741, 111, 741, 741, 330, 111, 111, 111, 111, 111, + 334, 111, 741, 741, 111, 331, 741, 741, 333, 111, + 111, 111, 111, 111, 741, 111, 741, 111, 741, 111, + 111, 111, 111, 111, 741, 741, 741, 741, 335, 741, + 111, 741, 111, 336, 111, 741, 111, 741, 111, 741, + 111, 111, 111, 741, 111, 337, 111, 741, 111, 111, + 111, 741, 111, 741, 741, 741, 111, 111, 111, 111, + 111, 741, 741, 741, 338, 111, 741, 111, 741, 111, + 741, 111, 741, 111, 741, 741, 339, 111, 111, 111, + + 111, 111, 741, 341, 340, 741, 111, 741, 111, 741, + 111, 741, 111, 741, 111, 741, 741, 347, 111, 111, + 111, 343, 111, 344, 111, 111, 741, 111, 345, 741, + 741, 741, 741, 741, 111, 111, 111, 111, 111, 111, + 111, 741, 346, 111, 111, 741, 351, 741, 741, 741, + 111, 741, 111, 741, 111, 352, 352, 352, 352, 111, + 741, 741, 741, 354, 354, 354, 354, 741, 741, 741, + 353, 353, 353, 353, 353, 353, 353, 353, 355, 355, + 355, 355, 355, 355, 355, 355, 111, 111, 741, 741, + 741, 741, 741, 741, 360, 741, 111, 111, 359, 111, + + 111, 111, 111, 741, 741, 111, 111, 741, 111, 741, + 741, 741, 111, 361, 111, 741, 111, 741, 111, 111, + 362, 111, 111, 741, 741, 111, 741, 111, 364, 111, + 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, + 365, 111, 111, 366, 111, 741, 741, 741, 741, 741, + 741, 111, 111, 111, 111, 111, 111, 111, 741, 741, + 111, 111, 741, 741, 363, 111, 741, 111, 741, 111, + 741, 111, 741, 111, 367, 111, 111, 111, 368, 111, + 741, 741, 741, 111, 111, 111, 111, 111, 370, 111, + 741, 369, 111, 741, 741, 741, 111, 111, 111, 111, + + 111, 111, 741, 111, 741, 371, 741, 111, 111, 372, + 111, 111, 373, 111, 741, 374, 111, 741, 741, 741, + 111, 741, 111, 111, 111, 111, 741, 111, 111, 111, + 741, 375, 111, 741, 111, 741, 741, 741, 111, 741, + 111, 741, 111, 741, 111, 111, 111, 111, 376, 741, + 741, 111, 377, 111, 741, 111, 741, 111, 741, 111, + 741, 111, 111, 111, 111, 111, 741, 378, 741, 741, + 111, 741, 111, 741, 379, 741, 111, 111, 380, 741, + 381, 111, 741, 111, 741, 741, 741, 111, 741, 111, + 741, 111, 741, 111, 111, 111, 111, 111, 741, 741, + + 111, 741, 111, 741, 111, 741, 111, 741, 111, 741, + 111, 741, 111, 111, 111, 111, 111, 741, 385, 111, + 741, 741, 386, 741, 741, 111, 111, 111, 111, 111, + 111, 111, 387, 741, 111, 111, 389, 111, 741, 384, + 741, 111, 741, 111, 393, 111, 741, 111, 741, 111, + 388, 111, 111, 390, 741, 111, 111, 391, 741, 741, + 741, 741, 111, 111, 111, 111, 111, 111, 392, 111, + 741, 111, 741, 111, 111, 111, 111, 111, 741, 741, + 394, 741, 111, 741, 111, 396, 111, 111, 111, 741, + 111, 741, 741, 741, 111, 111, 111, 111, 111, 111, + + 111, 111, 741, 111, 401, 397, 111, 741, 111, 741, + 111, 400, 111, 398, 111, 741, 741, 741, 111, 111, + 111, 111, 111, 741, 741, 741, 741, 111, 741, 111, + 741, 111, 402, 111, 741, 111, 403, 111, 741, 111, + 111, 111, 741, 111, 741, 111, 741, 111, 111, 111, + 741, 111, 741, 111, 741, 111, 111, 111, 741, 111, + 741, 741, 741, 111, 111, 111, 111, 111, 741, 406, + 741, 405, 111, 741, 111, 741, 111, 111, 111, 741, + 111, 741, 741, 741, 111, 111, 111, 111, 111, 407, + 741, 111, 111, 111, 408, 111, 111, 741, 111, 741, + + 741, 741, 111, 741, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 741, 111, 111, 741, 111, + 741, 741, 741, 111, 741, 111, 111, 111, 411, 111, + 111, 111, 111, 111, 741, 111, 111, 409, 412, 413, + 741, 741, 111, 741, 741, 741, 111, 741, 111, 741, + 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, + 741, 111, 741, 111, 741, 111, 741, 111, 741, 111, + 415, 741, 111, 741, 352, 352, 352, 352, 414, 111, + 741, 111, 741, 111, 741, 741, 741, 741, 111, 353, + 353, 353, 353, 353, 353, 353, 353, 419, 419, 419, + + 419, 741, 741, 741, 741, 741, 741, 741, 420, 741, + 741, 741, 353, 353, 353, 353, 353, 353, 353, 353, + 354, 354, 354, 354, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 355, 355, 355, 355, 355, + 355, 355, 355, 420, 741, 111, 741, 355, 355, 355, + 355, 355, 355, 355, 355, 111, 741, 111, 741, 111, + 111, 425, 741, 424, 111, 741, 741, 741, 741, 741, + 111, 741, 111, 111, 111, 426, 111, 741, 421, 111, + 741, 741, 741, 111, 741, 111, 111, 111, 111, 741, + 111, 741, 111, 428, 111, 111, 741, 111, 429, 741, + + 111, 741, 741, 430, 111, 741, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 741, 111, 111, + 741, 741, 741, 741, 741, 111, 111, 111, 111, 111, + 431, 741, 111, 741, 111, 741, 111, 111, 111, 111, + 111, 741, 432, 741, 741, 111, 433, 111, 741, 111, + 741, 111, 741, 111, 741, 741, 741, 434, 111, 111, + 111, 111, 741, 435, 741, 741, 111, 436, 741, 741, + 111, 111, 111, 437, 111, 741, 741, 111, 741, 111, + 438, 111, 741, 111, 439, 111, 741, 111, 111, 111, + 111, 111, 741, 741, 741, 741, 111, 741, 111, 111, + + 111, 741, 111, 741, 440, 741, 741, 111, 741, 111, + 741, 111, 741, 111, 111, 442, 741, 441, 111, 741, + 111, 741, 741, 741, 111, 741, 111, 741, 111, 741, + 111, 111, 111, 111, 111, 741, 741, 111, 443, 111, + 741, 111, 741, 111, 741, 111, 741, 111, 444, 445, + 111, 111, 111, 111, 741, 741, 111, 741, 741, 741, + 449, 741, 111, 111, 111, 111, 111, 111, 741, 741, + 111, 111, 111, 111, 450, 741, 451, 741, 741, 741, + 111, 741, 111, 111, 111, 111, 741, 111, 452, 111, + 111, 111, 111, 453, 741, 741, 741, 741, 741, 741, + + 111, 111, 454, 111, 111, 111, 111, 741, 741, 111, + 111, 741, 111, 741, 741, 456, 111, 741, 111, 741, + 111, 741, 111, 111, 111, 455, 111, 458, 741, 741, + 459, 111, 741, 111, 741, 111, 111, 111, 741, 741, + 457, 741, 111, 741, 111, 741, 111, 111, 111, 741, + 111, 741, 741, 741, 111, 111, 111, 111, 111, 111, + 111, 111, 461, 111, 741, 741, 111, 741, 111, 741, + 111, 741, 111, 741, 111, 741, 111, 741, 111, 111, + 462, 741, 111, 741, 111, 741, 111, 111, 111, 741, + 111, 741, 464, 741, 111, 111, 466, 111, 111, 741, + + 741, 741, 741, 111, 741, 741, 741, 111, 741, 111, + 111, 111, 741, 111, 741, 467, 111, 469, 741, 741, + 111, 111, 111, 111, 111, 470, 471, 111, 741, 111, + 741, 111, 111, 111, 111, 111, 741, 741, 741, 741, + 111, 741, 741, 741, 111, 111, 111, 741, 111, 741, + 741, 111, 741, 111, 475, 111, 472, 111, 741, 111, + 741, 111, 111, 111, 111, 111, 741, 741, 741, 741, + 111, 741, 111, 111, 111, 741, 111, 741, 476, 741, + 741, 111, 741, 111, 741, 111, 741, 111, 482, 482, + 482, 482, 111, 741, 741, 741, 741, 741, 741, 741, + + 741, 111, 741, 483, 483, 483, 483, 483, 483, 483, + 483, 111, 741, 111, 111, 111, 486, 111, 478, 741, + 111, 741, 741, 741, 111, 111, 111, 111, 111, 111, + 741, 111, 487, 111, 741, 111, 111, 489, 111, 111, + 741, 111, 741, 741, 111, 741, 741, 741, 111, 741, + 111, 111, 111, 111, 741, 111, 490, 111, 111, 741, + 111, 491, 741, 492, 111, 741, 741, 741, 111, 741, + 111, 741, 111, 741, 111, 111, 111, 111, 111, 741, + 741, 111, 741, 111, 741, 111, 741, 493, 741, 111, + 741, 111, 741, 111, 111, 111, 111, 741, 495, 494, + + 111, 741, 111, 741, 741, 741, 111, 741, 111, 741, + 111, 741, 111, 741, 111, 111, 111, 741, 741, 111, + 496, 111, 497, 741, 741, 111, 741, 498, 741, 111, + 741, 111, 741, 111, 741, 111, 111, 111, 111, 111, + 741, 500, 111, 741, 111, 741, 111, 741, 499, 741, + 111, 741, 111, 111, 111, 111, 111, 741, 741, 111, + 741, 111, 741, 111, 741, 111, 501, 111, 741, 111, + 111, 111, 111, 111, 741, 741, 111, 741, 111, 741, + 111, 741, 111, 503, 111, 741, 111, 502, 111, 111, + 111, 504, 111, 111, 741, 111, 741, 508, 741, 741, + + 741, 741, 111, 111, 111, 111, 111, 111, 111, 741, + 741, 111, 111, 741, 111, 509, 510, 741, 111, 741, + 111, 741, 111, 741, 111, 111, 111, 111, 111, 741, + 741, 111, 741, 111, 512, 111, 741, 111, 741, 111, + 741, 111, 511, 111, 111, 111, 111, 513, 741, 741, + 111, 741, 111, 514, 741, 741, 111, 741, 111, 741, + 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, + 741, 111, 741, 111, 741, 111, 741, 111, 111, 515, + 741, 516, 111, 741, 111, 741, 741, 741, 111, 741, + 111, 741, 111, 741, 111, 111, 111, 111, 111, 741, + + 741, 517, 741, 111, 741, 111, 741, 111, 111, 111, + 520, 111, 741, 741, 111, 741, 741, 741, 111, 111, + 522, 111, 111, 111, 741, 111, 741, 111, 741, 111, + 111, 111, 111, 111, 741, 525, 741, 524, 111, 741, + 111, 741, 111, 741, 111, 741, 111, 741, 741, 741, + 111, 111, 111, 741, 111, 111, 528, 741, 111, 111, + 527, 111, 741, 741, 741, 111, 741, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 741, 111, + 111, 741, 741, 741, 741, 741, 111, 741, 111, 111, + 111, 111, 741, 111, 111, 111, 531, 741, 111, 482, + + 482, 482, 482, 741, 111, 741, 111, 741, 111, 741, + 741, 741, 540, 111, 483, 483, 483, 483, 483, 483, + 483, 483, 537, 741, 741, 741, 483, 483, 483, 483, + 483, 483, 483, 483, 111, 111, 741, 741, 741, 741, + 741, 541, 741, 741, 111, 111, 111, 111, 111, 111, + 741, 111, 111, 111, 111, 543, 741, 741, 741, 741, + 741, 111, 111, 544, 111, 111, 111, 111, 111, 741, + 111, 111, 741, 741, 545, 546, 741, 111, 111, 111, + 111, 111, 111, 111, 111, 741, 111, 111, 741, 741, + 741, 741, 741, 111, 111, 111, 111, 111, 111, 111, + + 741, 741, 111, 111, 741, 111, 547, 548, 741, 111, + 741, 111, 741, 111, 741, 111, 111, 111, 111, 111, + 741, 741, 111, 741, 111, 741, 111, 549, 111, 741, + 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, + 741, 111, 741, 111, 111, 111, 741, 111, 741, 741, + 741, 550, 111, 741, 111, 111, 111, 741, 111, 741, + 741, 552, 551, 111, 741, 111, 741, 111, 741, 111, + 741, 111, 111, 111, 111, 111, 741, 741, 111, 741, + 111, 741, 553, 741, 111, 558, 111, 741, 111, 111, + 111, 111, 111, 741, 741, 741, 741, 111, 741, 111, + + 111, 111, 741, 111, 741, 741, 111, 559, 111, 741, + 111, 741, 111, 741, 111, 741, 111, 111, 111, 111, + 111, 741, 741, 111, 741, 111, 561, 111, 741, 111, + 741, 111, 741, 111, 560, 111, 111, 111, 111, 111, + 741, 741, 111, 741, 741, 741, 741, 741, 111, 111, + 111, 111, 111, 111, 111, 563, 562, 111, 111, 741, + 111, 741, 741, 741, 111, 741, 111, 741, 111, 741, + 111, 111, 111, 111, 111, 741, 741, 111, 741, 111, + 741, 567, 741, 111, 741, 111, 741, 111, 111, 111, + 111, 111, 741, 741, 111, 741, 111, 741, 111, 741, + + 111, 741, 111, 741, 111, 564, 111, 111, 111, 111, + 741, 741, 571, 111, 741, 111, 741, 741, 572, 111, + 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, + 575, 111, 741, 741, 111, 741, 580, 580, 580, 580, + 741, 111, 741, 111, 741, 111, 741, 741, 741, 741, + 111, 581, 581, 581, 581, 581, 581, 581, 581, 111, + 111, 585, 741, 741, 741, 741, 584, 741, 741, 111, + 111, 111, 111, 111, 111, 111, 741, 741, 111, 111, + 741, 741, 741, 111, 741, 111, 111, 111, 741, 111, + 741, 587, 741, 111, 111, 111, 111, 111, 589, 111, + + 111, 588, 111, 741, 741, 111, 592, 111, 741, 111, + 741, 590, 741, 111, 741, 111, 741, 111, 111, 111, + 591, 111, 741, 111, 741, 111, 111, 111, 741, 111, + 741, 741, 741, 111, 111, 111, 111, 111, 741, 593, + 741, 741, 111, 741, 111, 741, 111, 741, 111, 741, + 111, 741, 111, 741, 111, 111, 111, 741, 111, 594, + 111, 741, 111, 111, 111, 741, 111, 741, 741, 741, + 111, 111, 111, 111, 111, 741, 599, 741, 741, 111, + 741, 111, 741, 111, 111, 111, 741, 111, 741, 741, + 741, 111, 111, 111, 111, 111, 111, 111, 111, 741, + + 111, 741, 741, 111, 741, 111, 741, 111, 111, 111, + 741, 111, 600, 741, 741, 111, 111, 111, 111, 111, + 111, 111, 111, 741, 111, 608, 601, 111, 741, 111, + 741, 111, 741, 111, 741, 111, 741, 741, 741, 111, + 111, 111, 111, 111, 741, 111, 741, 741, 111, 741, + 741, 741, 111, 741, 111, 611, 111, 111, 741, 111, + 111, 111, 741, 741, 111, 580, 580, 580, 580, 741, + 111, 741, 111, 620, 111, 741, 741, 741, 111, 111, + 581, 581, 581, 581, 581, 581, 581, 581, 111, 111, + 111, 741, 111, 741, 741, 111, 741, 111, 741, 111, + + 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, + 111, 111, 621, 622, 111, 741, 623, 741, 741, 741, + 111, 111, 111, 111, 111, 111, 111, 741, 741, 111, + 111, 741, 111, 741, 626, 741, 111, 741, 624, 741, + 111, 741, 111, 111, 111, 111, 111, 741, 741, 111, + 741, 111, 741, 627, 741, 111, 741, 111, 741, 111, + 111, 111, 111, 111, 741, 631, 741, 741, 111, 741, + 111, 111, 111, 632, 111, 741, 741, 111, 633, 111, + 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, + 111, 111, 741, 741, 111, 741, 111, 741, 111, 741, + + 648, 741, 111, 741, 111, 741, 111, 111, 111, 111, + 111, 649, 741, 111, 741, 741, 741, 741, 741, 111, + 111, 111, 111, 111, 111, 111, 111, 741, 111, 111, + 741, 741, 741, 741, 741, 111, 111, 111, 111, 111, + 111, 111, 650, 741, 111, 111, 741, 111, 652, 741, + 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, + 111, 111, 741, 741, 741, 741, 111, 741, 111, 111, + 656, 741, 111, 741, 741, 111, 741, 111, 741, 111, + 741, 111, 657, 111, 741, 111, 111, 111, 111, 111, + 741, 741, 111, 741, 111, 741, 111, 741, 111, 741, + + 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, + 741, 111, 741, 111, 111, 111, 741, 111, 741, 741, + 111, 672, 111, 741, 111, 741, 111, 741, 111, 741, + 111, 676, 677, 111, 111, 111, 111, 741, 741, 111, + 741, 741, 741, 741, 741, 111, 111, 111, 111, 111, + 111, 111, 111, 741, 111, 111, 741, 741, 692, 741, + 741, 111, 111, 111, 111, 111, 111, 741, 741, 741, + 111, 111, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 65, 65, + + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 92, 92, 92, + 92, 741, 92, 92, 92, 92, 92, 92, 92, 92, + 99, 99, 99, 741, 99, 741, 99, 741, 99, 168, + 168, 741, 168, 168, 172, 172, 741, 741, 172, 172, + 741, 172, 172, 172, 172, 172, 172, 176, 176, 176, + 176, 741, 176, 176, 176, 176, 176, 176, 176, 176, + 178, 178, 178, 178, 178, 178, 178, 178, 741, 178, + + 178, 180, 741, 741, 741, 180, 180, 180, 180, 180, + 180, 180, 181, 741, 741, 741, 181, 181, 181, 181, + 181, 181, 181, 186, 186, 741, 186, 186, 190, 190, + 741, 190, 190, 192, 192, 741, 192, 192, 202, 741, + 202, 202, 117, 117, 741, 117, 117, 270, 741, 270, + 270, 277, 741, 277, 277, 279, 741, 279, 279, 280, + 741, 280, 280, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 203, 203, 741, 203, + 203, 583, 583, 741, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 581, 581, 581, 741, 741, 741, + + 581, 741, 741, 741, 741, 581, 17, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741 } ; -static yyconst short int yy_chk[4496] = +static yyconst short int yy_chk[4591] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1269,37 +1289,37 @@ static yyconst short int yy_chk[4496] = 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, 3, 4, 4, 4, 5, 5, - 5, 11, 3, 9, 7, 4, 8, 9, 5, 6, - - 6, 6, 7, 10, 8, 12, 7, 10, 8, 6, - 95, 28, 11, 28, 147, 11, 259, 7, 80, 8, - 19, 19, 19, 19, 127, 142, 12, 19, 156, 12, - 20, 20, 20, 20, 80, 99, 732, 20, 24, 24, - 24, 24, 95, 188, 531, 24, 26, 731, 99, 188, - 26, 531, 24, 24, 26, 26, 26, 26, 26, 26, - 26, 78, 78, 78, 78, 137, 80, 147, 11, 128, - 11, 30, 30, 30, 30, 30, 30, 30, 30, 142, - 259, 127, 12, 156, 12, 13, 13, 13, 13, 13, + 1, 1, 1, 3, 3, 3, 4, 4, 4, 5, + 5, 5, 133, 11, 3, 9, 7, 4, 8, 9, + + 5, 6, 6, 6, 7, 12, 8, 147, 132, 7, + 10, 8, 6, 739, 10, 11, 101, 29, 11, 29, + 7, 96, 8, 79, 79, 79, 79, 12, 738, 101, + 12, 19, 19, 19, 19, 81, 538, 133, 19, 20, + 20, 20, 20, 538, 196, 36, 20, 24, 24, 24, + 24, 36, 81, 96, 24, 36, 152, 36, 36, 36, + 142, 147, 24, 24, 36, 132, 26, 80, 80, 80, + 80, 11, 196, 11, 26, 26, 26, 26, 26, 26, + 26, 26, 161, 12, 81, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 79, 79, 79, 79, 90, 90, 90, 90, 13, 13, - 13, 13, 13, 34, 128, 191, 34, 13, 279, 36, - 34, 137, 36, 34, 34, 34, 34, 34, 223, 36, - 159, 36, 34, 36, 40, 261, 34, 35, 36, 13, - 13, 13, 191, 35, 40, 279, 40, 35, 40, 35, - 35, 35, 244, 40, 160, 222, 35, 178, 178, 178, - 178, 268, 268, 234, 13, 13, 13, 14, 14, 14, + 13, 13, 91, 91, 91, 91, 195, 164, 195, 152, + 13, 13, 13, 13, 13, 27, 142, 195, 327, 13, + 27, 41, 357, 27, 27, 27, 27, 27, 27, 27, + 27, 41, 357, 41, 268, 41, 229, 161, 165, 241, + 41, 13, 13, 13, 30, 44, 30, 30, 30, 30, + 30, 30, 30, 30, 230, 44, 193, 44, 251, 44, + 164, 382, 193, 30, 44, 327, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 238, 159, 177, 177, 37, 223, 261, 407, - 14, 14, 14, 14, 14, 177, 37, 37, 37, 14, - - 37, 190, 160, 190, 222, 37, 44, 44, 37, 244, - 44, 190, 234, 38, 38, 160, 44, 278, 44, 278, - 44, 14, 14, 14, 38, 44, 38, 278, 38, 728, - 38, 238, 727, 38, 350, 44, 100, 100, 100, 100, - 100, 100, 100, 100, 350, 407, 14, 14, 14, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 14, 14, 14, 14, 14, 229, 165, 268, 241, 182, + 182, 44, 30, 14, 14, 14, 14, 14, 35, 165, + + 182, 35, 14, 582, 37, 35, 382, 37, 35, 35, + 35, 35, 35, 230, 37, 251, 37, 35, 37, 38, + 286, 35, 401, 37, 14, 14, 14, 275, 275, 38, + 38, 38, 582, 38, 183, 183, 183, 183, 38, 422, + 735, 38, 734, 733, 422, 732, 401, 731, 286, 14, + 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1308,476 +1328,485 @@ static yyconst short int yy_chk[4496] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 23, 343, 415, 97, 97, 97, 97, 415, 726, - 725, 97, 647, 304, 316, 724, 723, 23, 97, 97, - 722, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 15, 15, 15, 15, 15, 23, 47, 730, 285, 47, + 285, 729, 419, 419, 419, 419, 47, 728, 47, 285, + 47, 727, 23, 726, 724, 47, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 647, 343, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 311, 266, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 33, 304, 316, 33, 33, 33, 33, 33, - 33, 33, 33, 721, 325, 342, 335, 720, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 255, 305, 375, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 39, - 260, 320, 341, 342, 41, 41, 325, 41, 335, 39, - 356, 39, 392, 39, 376, 41, 41, 41, 39, 41, - 43, 375, 41, 255, 41, 42, 42, 305, 394, 410, - - 43, 39, 43, 42, 43, 377, 42, 402, 42, 43, - 42, 397, 39, 45, 45, 42, 45, 719, 320, 260, - 403, 341, 394, 481, 45, 388, 45, 409, 45, 46, - 45, 411, 46, 45, 439, 47, 43, 376, 47, 46, - 356, 46, 47, 46, 392, 47, 527, 47, 46, 47, - 461, 48, 50, 47, 47, 601, 397, 45, 47, 48, - 48, 410, 50, 49, 50, 377, 50, 402, 420, 403, - 48, 50, 48, 49, 48, 49, 48, 49, 388, 48, - 481, 49, 49, 51, 441, 601, 411, 409, 50, 439, - 51, 527, 48, 51, 440, 51, 461, 51, 53, 53, - - 53, 53, 51, 49, 103, 103, 103, 103, 103, 103, - 103, 103, 53, 53, 53, 53, 53, 53, 53, 53, - 76, 420, 453, 456, 717, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 452, 471, 441, 106, 107, - 466, 440, 456, 76, 76, 76, 76, 76, 106, 107, - 106, 107, 106, 107, 108, 715, 107, 106, 107, 452, - 412, 412, 412, 412, 108, 467, 108, 109, 108, 453, - 110, 499, 472, 108, 76, 76, 76, 109, 557, 109, - 110, 109, 110, 470, 110, 111, 109, 473, 474, 110, - 109, 519, 714, 466, 500, 111, 471, 111, 528, 111, - - 76, 77, 522, 111, 111, 499, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 192, 192, 192, 192, - 192, 192, 192, 192, 77, 77, 77, 77, 77, 113, - 467, 512, 470, 472, 113, 114, 473, 474, 557, 113, - 412, 113, 77, 113, 523, 114, 519, 114, 113, 114, - 115, 500, 526, 114, 114, 77, 77, 77, 116, 522, - 115, 514, 115, 528, 115, 512, 547, 549, 116, 115, - 116, 116, 116, 713, 498, 529, 712, 116, 523, 535, - 550, 77, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - - 105, 105, 105, 105, 117, 526, 118, 118, 498, 529, - 514, 561, 569, 710, 117, 566, 117, 118, 117, 118, - 118, 118, 120, 117, 119, 119, 118, 498, 547, 549, - 535, 550, 120, 120, 120, 119, 120, 119, 121, 119, - 548, 120, 121, 559, 119, 709, 122, 570, 121, 563, - 121, 567, 121, 572, 571, 575, 122, 121, 122, 600, - 122, 123, 123, 123, 125, 122, 566, 124, 124, 569, - 606, 123, 561, 123, 125, 123, 125, 124, 125, 124, - 123, 124, 126, 125, 575, 124, 124, 129, 571, 588, - 589, 674, 126, 600, 126, 126, 126, 129, 563, 585, - - 130, 126, 570, 130, 606, 559, 548, 129, 131, 129, - 130, 129, 130, 567, 130, 572, 129, 585, 131, 130, - 131, 598, 131, 132, 132, 627, 590, 131, 574, 574, - 574, 574, 622, 132, 133, 132, 646, 132, 597, 589, - 132, 132, 132, 729, 133, 134, 133, 133, 133, 588, - 674, 135, 708, 133, 595, 134, 707, 134, 706, 134, - 607, 135, 136, 135, 134, 135, 621, 134, 598, 729, - 135, 603, 136, 605, 136, 138, 136, 608, 139, 623, - 622, 136, 627, 138, 630, 138, 590, 138, 139, 138, - 139, 140, 139, 646, 138, 629, 139, 139, 597, 141, - - 632, 140, 143, 140, 634, 140, 636, 595, 574, 141, - 140, 141, 143, 141, 143, 144, 143, 141, 141, 621, - 143, 143, 607, 637, 605, 144, 145, 144, 638, 144, - 700, 603, 623, 656, 144, 144, 145, 608, 145, 146, - 145, 648, 146, 699, 630, 145, 146, 653, 629, 146, - 698, 146, 654, 146, 148, 148, 651, 634, 146, 730, - 660, 149, 632, 697, 658, 148, 659, 148, 636, 148, - 703, 149, 150, 149, 148, 149, 149, 661, 151, 149, - 149, 638, 150, 637, 150, 730, 150, 153, 151, 152, - 151, 150, 151, 656, 151, 694, 150, 151, 648, 152, - - 153, 152, 667, 152, 653, 654, 154, 651, 152, 687, - 153, 154, 153, 660, 153, 666, 154, 155, 154, 153, - 154, 658, 691, 157, 690, 154, 659, 155, 703, 155, - 157, 155, 668, 157, 661, 157, 155, 157, 161, 158, - 158, 676, 157, 158, 609, 609, 609, 609, 161, 158, - 161, 158, 161, 158, 680, 667, 161, 161, 158, 164, - 164, 164, 164, 673, 678, 687, 666, 689, 688, 711, - 693, 695, 686, 164, 164, 164, 164, 164, 164, 164, - 164, 165, 701, 668, 691, 165, 165, 165, 165, 165, - 165, 165, 165, 166, 676, 679, 681, 166, 166, 166, - - 166, 166, 166, 166, 166, 195, 197, 198, 684, 197, - 683, 680, 682, 675, 673, 678, 197, 198, 197, 198, - 197, 198, 199, 200, 609, 197, 198, 693, 695, 711, - 696, 701, 199, 200, 199, 200, 199, 200, 704, 672, - 671, 199, 200, 664, 663, 662, 657, 681, 679, 705, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 201, 655, 652, 644, 640, 639, 635, 633, - 203, 696, 201, 204, 201, 201, 201, 203, 631, 704, - 203, 201, 203, 204, 203, 204, 205, 204, 628, 203, - - 705, 618, 204, 612, 206, 611, 205, 602, 205, 599, - 205, 596, 207, 205, 206, 205, 206, 591, 206, 579, - 208, 576, 207, 206, 207, 562, 207, 208, 207, 558, - 208, 207, 208, 209, 208, 525, 516, 511, 478, 208, - 477, 210, 458, 209, 211, 209, 416, 209, 351, 349, - 209, 210, 209, 210, 211, 210, 211, 280, 211, 273, - 210, 211, 211, 211, 212, 212, 213, 272, 271, 213, - 270, 269, 212, 266, 263, 212, 213, 212, 213, 212, - 213, 214, 202, 196, 212, 213, 189, 215, 187, 185, - 183, 214, 181, 214, 214, 214, 176, 215, 216, 215, - - 214, 215, 174, 169, 217, 163, 215, 217, 216, 216, - 216, 112, 216, 104, 217, 218, 217, 216, 217, 101, - 98, 219, 96, 217, 219, 218, 94, 218, 218, 218, - 93, 219, 220, 219, 218, 219, 92, 89, 84, 83, - 219, 82, 220, 221, 220, 69, 220, 66, 62, 220, - 61, 220, 58, 221, 221, 221, 224, 221, 57, 52, - 31, 27, 221, 22, 225, 21, 224, 226, 224, 18, - 224, 17, 0, 224, 225, 224, 225, 226, 225, 226, - 226, 226, 227, 225, 0, 228, 226, 0, 229, 0, - 0, 229, 227, 0, 227, 228, 227, 228, 229, 228, - - 229, 227, 229, 228, 228, 230, 231, 229, 0, 0, - 0, 0, 0, 0, 230, 0, 231, 232, 231, 0, - 231, 0, 0, 0, 230, 231, 230, 232, 230, 232, - 233, 232, 0, 230, 0, 0, 232, 0, 235, 0, - 233, 235, 233, 0, 233, 0, 0, 0, 235, 233, - 235, 236, 235, 0, 236, 0, 0, 235, 0, 237, - 0, 236, 239, 236, 0, 236, 237, 0, 0, 237, - 236, 237, 239, 237, 239, 240, 239, 0, 237, 0, - 239, 239, 0, 241, 0, 240, 0, 240, 0, 240, - 0, 242, 0, 241, 240, 241, 0, 241, 0, 243, - - 241, 242, 241, 242, 0, 242, 0, 0, 242, 243, - 242, 243, 245, 243, 246, 246, 0, 0, 243, 243, - 0, 0, 245, 247, 245, 246, 245, 246, 0, 246, - 0, 245, 0, 247, 246, 247, 248, 247, 0, 0, - 0, 0, 247, 0, 249, 0, 248, 249, 248, 0, - 248, 0, 250, 0, 249, 248, 249, 0, 249, 250, - 251, 0, 250, 249, 250, 0, 250, 0, 0, 0, - 251, 250, 251, 252, 251, 0, 0, 0, 251, 251, - 0, 253, 0, 252, 0, 252, 0, 252, 0, 0, - 252, 253, 252, 253, 254, 253, 0, 254, 253, 0, - - 253, 0, 256, 0, 254, 0, 254, 0, 254, 0, - 0, 258, 256, 254, 256, 256, 256, 256, 257, 258, - 0, 256, 256, 0, 0, 0, 0, 0, 257, 258, - 257, 258, 257, 258, 262, 0, 257, 257, 258, 0, - 262, 0, 0, 0, 262, 0, 262, 0, 262, 264, - 264, 264, 264, 262, 0, 0, 0, 265, 265, 265, - 265, 0, 0, 264, 264, 264, 264, 264, 264, 264, - 264, 265, 265, 265, 265, 265, 265, 265, 265, 281, - 282, 0, 0, 0, 0, 0, 0, 282, 0, 281, - 282, 281, 282, 281, 282, 283, 0, 0, 281, 282, - - 0, 284, 0, 0, 0, 283, 283, 283, 0, 283, - 0, 284, 285, 284, 283, 284, 0, 0, 286, 0, - 284, 286, 285, 0, 285, 0, 285, 0, 286, 0, - 286, 285, 286, 287, 287, 288, 288, 286, 0, 0, - 0, 0, 0, 0, 287, 288, 287, 288, 287, 288, - 289, 0, 0, 287, 288, 0, 0, 285, 290, 0, - 289, 0, 289, 0, 289, 0, 291, 289, 290, 289, - 290, 290, 290, 0, 0, 0, 291, 290, 291, 293, - 291, 292, 292, 0, 291, 291, 0, 0, 0, 293, - 294, 293, 292, 293, 292, 0, 292, 0, 293, 0, - - 294, 292, 294, 295, 294, 295, 296, 0, 296, 294, - 0, 0, 0, 295, 0, 295, 296, 295, 296, 0, - 296, 297, 295, 0, 297, 296, 0, 298, 0, 0, - 0, 297, 0, 297, 0, 297, 0, 298, 299, 298, - 297, 298, 0, 0, 300, 299, 298, 0, 299, 0, - 299, 0, 299, 0, 300, 301, 300, 299, 300, 0, - 300, 0, 0, 300, 0, 301, 0, 301, 0, 301, - 302, 301, 0, 302, 301, 0, 303, 0, 0, 0, - 302, 0, 302, 0, 302, 0, 303, 306, 303, 302, - 303, 0, 0, 307, 0, 303, 0, 306, 0, 306, - - 0, 306, 0, 307, 0, 307, 306, 307, 308, 309, - 0, 307, 307, 0, 0, 308, 0, 0, 308, 309, - 308, 309, 308, 309, 310, 309, 0, 308, 309, 311, - 311, 0, 306, 0, 310, 0, 310, 313, 310, 0, - 311, 0, 311, 310, 311, 312, 311, 0, 313, 311, - 312, 0, 0, 0, 0, 312, 314, 312, 313, 312, - 313, 312, 313, 0, 312, 0, 314, 313, 314, 315, - 314, 0, 0, 314, 0, 314, 0, 317, 317, 315, - 318, 315, 0, 315, 0, 0, 0, 317, 315, 317, - 318, 317, 318, 319, 318, 0, 317, 322, 318, 318, - - 0, 321, 0, 319, 321, 319, 319, 319, 0, 0, - 0, 321, 319, 321, 322, 321, 0, 0, 0, 0, - 321, 0, 323, 0, 322, 323, 322, 0, 322, 324, - 324, 0, 323, 322, 323, 0, 323, 0, 326, 0, - 324, 323, 324, 0, 324, 0, 327, 0, 326, 324, - 326, 0, 326, 0, 0, 0, 327, 326, 327, 328, - 327, 0, 328, 0, 327, 327, 0, 329, 0, 328, - 330, 328, 0, 328, 0, 0, 0, 329, 328, 329, - 330, 329, 330, 0, 330, 332, 329, 331, 331, 330, - 0, 333, 0, 0, 0, 332, 0, 332, 331, 332, - - 331, 333, 331, 333, 332, 333, 334, 331, 0, 336, - 333, 0, 337, 0, 0, 0, 334, 0, 334, 336, - 334, 336, 337, 336, 337, 334, 337, 0, 336, 338, - 332, 337, 338, 0, 0, 339, 0, 0, 0, 338, - 0, 338, 0, 338, 0, 339, 340, 339, 338, 339, - 0, 0, 0, 0, 339, 0, 340, 0, 340, 0, - 340, 0, 344, 340, 0, 340, 0, 0, 0, 0, - 0, 339, 344, 0, 344, 0, 344, 345, 345, 345, - 345, 344, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 345, 345, 345, 345, 345, 345, 345, 345, 346, - - 346, 346, 346, 0, 0, 0, 0, 0, 0, 346, - 0, 0, 0, 346, 346, 346, 346, 346, 346, 346, - 346, 347, 347, 347, 347, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 347, 347, 347, 347, 347, - 347, 347, 347, 348, 0, 352, 355, 348, 348, 348, - 348, 348, 348, 348, 348, 352, 355, 352, 355, 352, - 355, 353, 353, 352, 352, 355, 0, 0, 0, 0, - 0, 353, 0, 353, 0, 353, 354, 354, 0, 346, - 353, 0, 357, 357, 0, 0, 0, 354, 0, 354, - 0, 354, 0, 357, 0, 357, 354, 357, 358, 358, - - 0, 359, 357, 0, 359, 0, 0, 0, 358, 360, - 358, 359, 358, 359, 0, 359, 0, 358, 0, 360, - 359, 360, 361, 360, 0, 0, 0, 0, 360, 0, - 362, 0, 361, 0, 361, 0, 361, 0, 363, 0, - 362, 361, 362, 0, 362, 363, 362, 0, 363, 362, - 363, 364, 363, 0, 0, 0, 0, 363, 0, 365, - 0, 364, 365, 364, 0, 364, 365, 0, 0, 365, - 364, 365, 366, 365, 366, 0, 0, 0, 365, 0, - 367, 0, 366, 367, 366, 0, 366, 367, 368, 0, - 367, 366, 367, 0, 367, 0, 369, 0, 368, 367, - - 368, 0, 368, 0, 368, 0, 369, 368, 369, 0, - 369, 370, 370, 0, 369, 369, 0, 371, 0, 0, - 0, 370, 0, 370, 0, 370, 0, 371, 372, 371, - 370, 371, 0, 0, 373, 371, 371, 0, 372, 0, - 372, 0, 372, 0, 373, 372, 373, 372, 373, 374, - 378, 0, 0, 373, 0, 0, 0, 378, 0, 374, - 378, 374, 378, 374, 378, 0, 0, 380, 374, 378, - 379, 379, 0, 379, 0, 0, 0, 380, 0, 380, - 379, 380, 379, 0, 379, 380, 380, 382, 381, 379, - 381, 0, 0, 0, 0, 0, 0, 382, 381, 382, - - 381, 382, 381, 383, 0, 0, 382, 381, 0, 384, - 0, 0, 384, 383, 0, 383, 0, 383, 0, 384, - 385, 384, 383, 384, 386, 0, 0, 387, 384, 0, - 385, 0, 385, 386, 385, 0, 0, 385, 0, 385, - 0, 389, 0, 386, 387, 386, 0, 386, 0, 0, - 0, 389, 386, 389, 387, 389, 387, 390, 387, 389, - 389, 0, 0, 387, 0, 391, 0, 390, 0, 390, - 0, 390, 0, 393, 0, 391, 390, 391, 0, 391, - 0, 395, 0, 393, 391, 393, 0, 393, 0, 393, - 0, 395, 393, 395, 396, 395, 0, 0, 0, 0, - - 395, 0, 0, 0, 396, 0, 396, 398, 396, 0, - 399, 0, 396, 396, 398, 0, 0, 398, 400, 398, - 399, 398, 399, 400, 399, 0, 398, 0, 400, 399, - 400, 401, 400, 0, 0, 0, 0, 400, 0, 0, - 0, 401, 404, 401, 0, 401, 0, 0, 405, 0, - 401, 405, 404, 401, 404, 0, 404, 0, 405, 406, - 405, 404, 405, 0, 0, 0, 0, 405, 0, 406, - 408, 406, 0, 406, 0, 406, 0, 0, 406, 0, - 408, 0, 408, 0, 408, 413, 413, 413, 413, 408, - 0, 0, 0, 0, 0, 0, 0, 417, 0, 413, - - 413, 413, 413, 413, 413, 413, 413, 417, 0, 417, - 419, 417, 418, 418, 0, 408, 417, 0, 0, 0, - 419, 421, 419, 418, 419, 418, 0, 418, 419, 419, - 0, 421, 418, 421, 422, 421, 0, 423, 0, 0, - 421, 0, 0, 0, 422, 0, 422, 423, 422, 423, - 0, 423, 422, 422, 424, 0, 423, 424, 0, 425, - 425, 0, 0, 0, 424, 0, 424, 0, 424, 0, - 425, 426, 425, 424, 425, 0, 0, 427, 0, 425, - 0, 426, 0, 426, 0, 426, 0, 427, 0, 427, - 426, 427, 428, 0, 428, 427, 427, 0, 429, 0, - - 0, 0, 428, 0, 428, 0, 428, 0, 429, 0, - 429, 428, 429, 0, 0, 430, 429, 429, 430, 0, - 0, 431, 0, 431, 0, 430, 0, 430, 0, 430, - 0, 431, 432, 431, 430, 431, 0, 433, 433, 0, - 431, 0, 432, 0, 432, 0, 432, 0, 433, 434, - 433, 432, 433, 0, 0, 435, 0, 433, 0, 434, - 0, 434, 435, 434, 0, 435, 436, 435, 434, 435, - 0, 0, 437, 0, 435, 0, 436, 0, 436, 437, - 436, 0, 437, 436, 437, 436, 437, 438, 438, 442, - 0, 437, 0, 442, 0, 0, 0, 0, 438, 442, - - 438, 442, 438, 442, 443, 0, 0, 438, 442, 0, - 444, 443, 444, 0, 443, 0, 443, 0, 443, 0, - 444, 445, 444, 443, 444, 0, 0, 446, 0, 444, - 446, 445, 0, 445, 0, 445, 0, 446, 445, 446, - 445, 446, 447, 447, 0, 0, 446, 0, 448, 448, - 0, 0, 447, 0, 447, 0, 447, 0, 448, 449, - 448, 447, 448, 0, 0, 0, 0, 448, 0, 449, - 0, 449, 0, 449, 450, 449, 0, 450, 449, 0, - 451, 0, 0, 0, 450, 0, 450, 0, 450, 0, - 451, 454, 451, 450, 451, 0, 0, 451, 0, 451, - - 0, 454, 0, 454, 457, 454, 455, 455, 0, 0, - 454, 0, 0, 0, 457, 459, 457, 455, 457, 455, - 0, 455, 0, 457, 0, 459, 455, 459, 460, 459, - 0, 460, 0, 459, 459, 0, 462, 0, 460, 0, - 460, 0, 460, 0, 0, 0, 462, 460, 462, 0, - 462, 463, 463, 0, 464, 462, 462, 465, 0, 0, - 0, 463, 0, 463, 464, 463, 464, 465, 464, 465, - 463, 465, 468, 464, 0, 469, 465, 0, 0, 0, - 0, 0, 468, 0, 468, 469, 468, 469, 0, 469, - 0, 468, 469, 0, 469, 475, 475, 475, 475, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 475, - 475, 475, 475, 475, 475, 475, 475, 476, 0, 479, - 0, 476, 476, 476, 476, 476, 476, 476, 476, 479, - 0, 479, 480, 479, 0, 482, 0, 479, 479, 480, - 0, 0, 480, 0, 480, 482, 480, 482, 0, 482, - 483, 480, 0, 483, 482, 0, 484, 0, 0, 0, - 483, 0, 483, 0, 483, 0, 484, 485, 484, 483, - 484, 0, 0, 486, 485, 484, 0, 485, 0, 485, - 486, 485, 0, 486, 487, 486, 485, 486, 0, 0, - 488, 0, 486, 0, 487, 0, 487, 0, 487, 0, - - 488, 489, 488, 487, 488, 0, 0, 0, 489, 488, - 0, 489, 490, 489, 490, 489, 0, 0, 491, 0, - 489, 0, 490, 0, 490, 0, 490, 0, 491, 492, - 491, 490, 491, 0, 492, 493, 0, 491, 0, 492, - 0, 492, 0, 492, 0, 493, 494, 493, 492, 493, - 0, 0, 0, 493, 493, 0, 494, 495, 494, 0, - 494, 0, 0, 496, 494, 494, 0, 495, 0, 495, - 0, 495, 0, 496, 497, 496, 495, 496, 0, 0, - 501, 0, 496, 0, 497, 0, 497, 501, 497, 0, - 501, 502, 501, 497, 501, 0, 0, 0, 0, 501, - - 0, 502, 503, 502, 0, 502, 0, 0, 504, 502, - 502, 0, 503, 0, 503, 0, 503, 0, 504, 505, - 504, 503, 504, 0, 0, 506, 0, 504, 506, 505, - 0, 505, 0, 505, 0, 506, 505, 506, 505, 506, - 507, 508, 0, 0, 506, 0, 0, 0, 0, 0, - 507, 508, 507, 508, 507, 508, 509, 509, 507, 507, - 508, 0, 510, 0, 0, 0, 509, 0, 509, 0, - 509, 0, 510, 513, 510, 509, 510, 0, 0, 515, - 0, 510, 0, 513, 0, 513, 0, 513, 0, 515, - 517, 515, 513, 515, 0, 0, 518, 0, 515, 0, - - 517, 0, 517, 0, 517, 0, 518, 510, 518, 517, - 518, 520, 0, 0, 520, 518, 0, 521, 0, 0, - 521, 520, 0, 520, 0, 520, 0, 521, 0, 521, - 520, 521, 524, 524, 0, 0, 521, 0, 0, 530, - 530, 530, 530, 524, 0, 524, 0, 524, 0, 0, - 0, 0, 524, 530, 530, 530, 530, 530, 530, 530, - 530, 533, 534, 534, 0, 0, 0, 0, 533, 0, - 0, 533, 534, 533, 534, 533, 534, 536, 0, 0, - 533, 534, 0, 0, 0, 537, 0, 536, 538, 536, - 0, 536, 0, 536, 0, 537, 536, 537, 538, 537, - - 538, 539, 538, 537, 537, 0, 0, 538, 542, 540, - 0, 539, 0, 539, 0, 539, 0, 541, 0, 540, - 539, 540, 540, 540, 0, 542, 0, 541, 540, 541, - 0, 541, 0, 0, 0, 542, 541, 542, 543, 542, - 0, 543, 0, 0, 542, 0, 544, 0, 543, 0, - 543, 0, 543, 0, 545, 0, 544, 543, 544, 0, - 544, 545, 546, 0, 545, 544, 545, 0, 545, 0, - 0, 0, 546, 545, 546, 551, 546, 0, 551, 0, - 0, 546, 0, 552, 0, 551, 553, 551, 0, 551, - 0, 0, 0, 552, 551, 552, 553, 552, 553, 554, - - 553, 0, 552, 0, 0, 553, 0, 555, 0, 554, - 556, 554, 0, 554, 555, 0, 0, 555, 554, 555, - 556, 555, 556, 560, 556, 0, 555, 564, 556, 556, - 0, 565, 0, 560, 0, 560, 0, 560, 0, 0, - 0, 565, 560, 565, 564, 565, 0, 568, 0, 0, - 565, 0, 0, 0, 564, 0, 564, 568, 564, 568, - 0, 568, 0, 564, 0, 0, 568, 573, 573, 573, - 573, 0, 0, 0, 0, 0, 0, 0, 0, 577, - 0, 573, 573, 573, 573, 573, 573, 573, 573, 577, - 578, 577, 577, 577, 0, 0, 580, 0, 577, 0, - - 578, 0, 578, 0, 578, 0, 580, 581, 580, 578, - 580, 0, 0, 582, 0, 580, 582, 581, 0, 581, - 0, 581, 0, 582, 581, 582, 581, 582, 583, 584, - 0, 0, 582, 583, 0, 0, 0, 0, 583, 584, - 583, 584, 583, 584, 586, 587, 586, 583, 584, 0, - 0, 0, 0, 0, 586, 587, 586, 587, 586, 587, - 592, 0, 0, 586, 587, 0, 0, 0, 593, 0, - 592, 0, 592, 0, 592, 0, 592, 0, 593, 592, - 593, 593, 593, 594, 604, 0, 0, 593, 0, 0, - 594, 0, 0, 594, 604, 594, 604, 594, 604, 613, - - 614, 0, 594, 604, 0, 0, 0, 0, 0, 613, - 614, 613, 614, 613, 614, 615, 616, 615, 613, 614, - 0, 0, 0, 0, 0, 615, 616, 615, 616, 615, - 616, 617, 619, 0, 615, 616, 0, 0, 0, 0, - 0, 617, 619, 617, 619, 617, 619, 620, 617, 0, - 617, 619, 0, 624, 620, 0, 0, 620, 0, 620, - 0, 620, 0, 624, 625, 624, 620, 624, 0, 0, - 0, 0, 624, 0, 625, 626, 625, 0, 625, 0, - 0, 641, 0, 625, 0, 626, 0, 626, 626, 626, - 0, 641, 642, 641, 626, 641, 0, 0, 643, 0, - - 641, 0, 642, 0, 642, 0, 642, 0, 643, 645, - 643, 642, 643, 0, 0, 0, 0, 643, 0, 645, - 649, 645, 0, 645, 0, 0, 650, 645, 645, 0, - 649, 0, 649, 0, 649, 0, 650, 649, 650, 649, - 650, 665, 669, 0, 0, 650, 0, 0, 0, 0, - 0, 665, 669, 665, 669, 665, 669, 670, 685, 0, - 665, 669, 0, 0, 665, 0, 0, 670, 685, 670, - 685, 670, 685, 0, 0, 0, 670, 685, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 736, 736, 736, 736, 736, 736, 736, 736, 736, - - 736, 736, 736, 736, 737, 737, 737, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 737, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 740, 740, 740, 740, 0, 740, 740, - 740, 740, 740, 740, 740, 740, 741, 741, 741, 0, - 741, 0, 741, 0, 741, 742, 742, 0, 742, 742, - 743, 743, 0, 0, 743, 743, 0, 743, 743, 743, - 743, 743, 743, 744, 744, 744, 744, 0, 744, 744, - 744, 744, 744, 744, 744, 744, 745, 745, 745, 745, - - 745, 745, 745, 745, 0, 745, 745, 746, 0, 0, - 0, 746, 746, 746, 746, 746, 746, 746, 747, 0, - 0, 0, 747, 747, 747, 747, 747, 747, 747, 748, - 748, 0, 748, 748, 749, 749, 0, 749, 749, 750, - 750, 0, 750, 750, 751, 0, 751, 751, 752, 752, - 0, 752, 752, 753, 0, 753, 753, 754, 0, 754, - 754, 755, 0, 755, 755, 756, 0, 756, 756, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 758, 758, 0, 758, 758, 759, 759, 0, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - - 760, 760, 760, 0, 0, 0, 760, 0, 0, 0, - 0, 760, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734 - + 23, 23, 23, 23, 23, 23, 23, 31, 245, 31, + 31, 31, 31, 31, 31, 31, 31, 39, 39, 262, + 267, 45, 45, 419, 463, 45, 31, 592, 39, 722, + 39, 45, 39, 45, 39, 45, 332, 39, 43, 43, + 45, 349, 311, 463, 721, 592, 43, 266, 312, 43, + 45, 43, 720, 43, 719, 31, 34, 245, 43, 34, + 34, 34, 34, 34, 34, 34, 34, 323, 262, 267, + 342, 383, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 332, 349, + + 312, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 40, 383, 348, 395, 323, 42, 42, + 399, 42, 342, 40, 418, 40, 363, 40, 404, 42, + 42, 42, 40, 42, 350, 384, 42, 555, 42, 409, + 46, 46, 417, 46, 410, 40, 414, 98, 98, 98, + 98, 46, 427, 46, 98, 46, 40, 46, 48, 446, + 46, 48, 98, 98, 348, 48, 49, 474, 48, 395, + 48, 416, 48, 404, 49, 49, 48, 48, 50, 418, + 350, 48, 399, 447, 46, 49, 363, 49, 50, 49, + + 50, 49, 50, 410, 49, 384, 50, 50, 51, 409, + 717, 111, 414, 555, 417, 427, 716, 49, 51, 52, + 51, 111, 51, 111, 446, 111, 52, 51, 50, 52, + 111, 52, 715, 52, 54, 54, 54, 54, 52, 714, + 447, 416, 474, 448, 51, 488, 479, 473, 478, 54, + 54, 54, 54, 54, 54, 54, 54, 77, 169, 169, + 169, 169, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 169, 169, 169, 169, 169, 169, 169, + 169, 77, 77, 77, 77, 77, 100, 112, 100, 100, + 100, 100, 100, 100, 100, 100, 448, 112, 459, 112, + + 473, 112, 488, 506, 112, 100, 112, 479, 478, 713, + 707, 608, 77, 77, 77, 736, 706, 705, 704, 477, + 701, 102, 459, 102, 102, 102, 102, 102, 102, 102, + 102, 697, 696, 695, 100, 693, 519, 506, 77, 78, + 102, 608, 736, 480, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 105, 105, 105, 105, 105, + 105, 105, 105, 78, 78, 78, 78, 78, 477, 102, + 519, 106, 105, 106, 106, 106, 106, 106, 106, 106, + 106, 78, 199, 199, 199, 199, 199, 199, 199, 199, + 106, 460, 480, 481, 78, 78, 78, 107, 468, 107, + + 507, 105, 107, 107, 107, 107, 107, 107, 107, 107, + 200, 200, 200, 200, 200, 200, 200, 200, 521, 106, + 78, 108, 113, 108, 108, 108, 108, 108, 108, 108, + 108, 535, 113, 114, 113, 691, 113, 529, 460, 115, + 108, 113, 481, 114, 468, 114, 526, 114, 690, 115, + 689, 115, 114, 115, 534, 170, 114, 507, 115, 170, + 170, 170, 170, 170, 170, 170, 170, 521, 682, 108, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 116, 118, 529, 505, 535, 530, 118, 534, + + 533, 526, 116, 118, 116, 118, 116, 118, 119, 120, + 116, 116, 118, 536, 679, 576, 542, 557, 119, 120, + 119, 120, 119, 120, 121, 554, 119, 119, 120, 505, + 122, 530, 556, 678, 121, 570, 121, 121, 121, 602, + 122, 566, 122, 121, 122, 123, 123, 536, 505, 122, + 574, 124, 124, 533, 573, 568, 123, 671, 123, 123, + 123, 579, 124, 125, 124, 123, 124, 542, 557, 564, + 578, 124, 576, 125, 125, 125, 126, 125, 596, 127, + 126, 577, 125, 595, 570, 670, 126, 554, 126, 127, + 126, 127, 602, 127, 556, 126, 129, 129, 127, 128, + + 128, 128, 612, 566, 578, 573, 129, 130, 129, 128, + 129, 128, 574, 128, 129, 129, 568, 130, 128, 130, + 131, 130, 605, 579, 628, 134, 130, 596, 597, 564, + 131, 654, 131, 131, 131, 134, 577, 630, 135, 131, + 607, 135, 613, 595, 604, 134, 136, 134, 135, 134, + 135, 610, 135, 612, 134, 614, 136, 135, 136, 629, + 136, 137, 137, 634, 615, 136, 654, 737, 669, 605, + 664, 137, 138, 137, 607, 137, 613, 628, 137, 137, + 137, 653, 138, 139, 138, 138, 138, 655, 597, 140, + 630, 138, 636, 139, 737, 139, 662, 139, 639, 140, + + 141, 140, 139, 140, 604, 139, 637, 629, 140, 641, + 141, 610, 141, 143, 141, 644, 144, 614, 645, 141, + 634, 143, 660, 143, 615, 143, 144, 143, 144, 145, + 144, 658, 143, 643, 144, 144, 698, 146, 653, 145, + 148, 145, 663, 145, 655, 636, 666, 146, 145, 146, + 148, 146, 148, 149, 148, 146, 146, 673, 148, 148, + 639, 659, 641, 149, 150, 149, 637, 149, 661, 651, + 667, 645, 149, 149, 150, 644, 150, 151, 150, 660, + 151, 681, 658, 150, 151, 665, 668, 151, 687, 151, + 647, 151, 153, 153, 674, 643, 151, 646, 698, 154, + + 675, 710, 663, 153, 694, 153, 666, 153, 673, 154, + 155, 154, 153, 154, 154, 680, 156, 154, 154, 683, + 155, 661, 155, 667, 155, 158, 156, 157, 156, 155, + 156, 642, 156, 640, 155, 156, 638, 157, 158, 157, + 681, 157, 665, 668, 159, 687, 157, 674, 158, 159, + 158, 675, 158, 686, 159, 160, 159, 158, 159, 710, + 694, 162, 700, 159, 635, 160, 680, 160, 162, 160, + 685, 162, 683, 162, 160, 162, 166, 163, 163, 702, + 162, 163, 581, 581, 581, 581, 166, 163, 166, 163, + 166, 163, 718, 171, 166, 166, 163, 171, 171, 171, + + 171, 171, 171, 171, 171, 197, 686, 197, 197, 197, + 197, 197, 197, 197, 197, 204, 205, 625, 204, 700, + 619, 685, 688, 618, 197, 204, 205, 204, 205, 204, + 205, 206, 207, 703, 204, 205, 702, 708, 609, 606, + 603, 206, 207, 206, 207, 206, 207, 208, 598, 586, + 206, 207, 718, 197, 202, 210, 583, 208, 211, 208, + 208, 208, 210, 581, 569, 210, 208, 210, 211, 210, + 211, 212, 211, 688, 210, 711, 712, 211, 565, 213, + 532, 212, 523, 212, 703, 212, 708, 518, 212, 213, + 212, 213, 485, 213, 616, 616, 616, 616, 213, 202, + + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 214, 215, 484, 465, 423, 711, 712, 358, 215, + 356, 214, 215, 214, 215, 214, 215, 214, 216, 217, + 214, 215, 287, 280, 279, 278, 277, 276, 216, 217, + 216, 217, 216, 217, 218, 216, 273, 216, 217, 270, + 209, 203, 194, 192, 218, 190, 218, 188, 218, 219, + 219, 218, 218, 218, 186, 616, 220, 219, 181, 220, + 219, 179, 219, 174, 219, 168, 220, 221, 220, 219, + 220, 117, 109, 222, 103, 220, 99, 221, 97, 221, + + 221, 221, 95, 222, 223, 222, 221, 222, 94, 93, + 224, 90, 222, 224, 223, 223, 223, 85, 223, 84, + 224, 225, 224, 223, 224, 83, 70, 226, 67, 224, + 226, 225, 63, 225, 225, 225, 62, 226, 227, 226, + 225, 226, 59, 58, 53, 32, 226, 28, 227, 228, + 227, 22, 227, 21, 18, 227, 17, 227, 0, 228, + 228, 228, 231, 228, 0, 0, 0, 0, 228, 0, + 232, 0, 231, 233, 231, 0, 231, 0, 0, 231, + 232, 231, 232, 233, 232, 233, 233, 233, 234, 232, + 0, 235, 233, 0, 236, 0, 0, 236, 234, 0, + + 234, 235, 234, 235, 236, 235, 236, 234, 236, 235, + 235, 237, 238, 236, 0, 0, 0, 0, 0, 0, + 237, 0, 238, 239, 238, 0, 238, 0, 0, 0, + 237, 238, 237, 239, 237, 239, 240, 239, 0, 237, + 0, 0, 239, 0, 242, 0, 240, 242, 240, 0, + 240, 0, 0, 0, 242, 240, 242, 243, 242, 0, + 243, 0, 0, 242, 0, 244, 0, 243, 246, 243, + 0, 243, 244, 0, 0, 244, 243, 244, 246, 244, + 246, 247, 246, 0, 244, 0, 246, 246, 0, 248, + 0, 247, 0, 247, 0, 247, 0, 249, 0, 248, + + 247, 248, 0, 248, 0, 250, 248, 249, 248, 249, + 0, 249, 0, 0, 249, 250, 249, 250, 252, 250, + 253, 253, 0, 0, 250, 250, 0, 0, 252, 254, + 252, 253, 252, 253, 0, 253, 0, 252, 0, 254, + 253, 254, 255, 254, 0, 0, 0, 0, 254, 0, + 256, 0, 255, 256, 255, 0, 255, 0, 257, 0, + 256, 255, 256, 0, 256, 257, 258, 0, 257, 256, + 257, 0, 257, 0, 0, 0, 258, 257, 258, 259, + 258, 0, 0, 0, 258, 258, 0, 260, 0, 259, + 0, 259, 0, 259, 0, 0, 259, 260, 259, 260, + + 261, 260, 0, 261, 260, 0, 260, 0, 263, 0, + 261, 0, 261, 0, 261, 0, 0, 265, 263, 261, + 263, 263, 263, 263, 264, 265, 0, 263, 263, 0, + 0, 0, 0, 0, 264, 265, 264, 265, 264, 265, + 269, 0, 264, 264, 265, 0, 269, 0, 0, 0, + 269, 0, 269, 0, 269, 271, 271, 271, 271, 269, + 0, 0, 0, 272, 272, 272, 272, 0, 0, 0, + 271, 271, 271, 271, 271, 271, 271, 271, 272, 272, + 272, 272, 272, 272, 272, 272, 288, 289, 0, 0, + 0, 0, 0, 0, 289, 0, 288, 289, 288, 289, + + 288, 289, 290, 0, 0, 288, 289, 0, 291, 0, + 0, 0, 290, 290, 290, 0, 290, 0, 291, 292, + 291, 290, 291, 0, 0, 293, 0, 291, 293, 292, + 0, 292, 0, 292, 0, 293, 0, 293, 292, 293, + 294, 294, 295, 295, 293, 0, 0, 0, 0, 0, + 0, 294, 295, 294, 295, 294, 295, 296, 0, 0, + 294, 295, 0, 0, 292, 297, 0, 296, 0, 296, + 0, 296, 0, 298, 296, 297, 296, 297, 297, 297, + 0, 0, 0, 298, 297, 298, 300, 298, 299, 299, + 0, 298, 298, 0, 0, 0, 300, 301, 300, 299, + + 300, 299, 0, 299, 0, 300, 0, 301, 299, 301, + 302, 301, 302, 303, 0, 303, 301, 0, 0, 0, + 302, 0, 302, 303, 302, 303, 0, 303, 304, 302, + 0, 304, 303, 0, 305, 0, 0, 0, 304, 0, + 304, 0, 304, 0, 305, 306, 305, 304, 305, 0, + 0, 307, 306, 305, 0, 306, 0, 306, 0, 306, + 0, 307, 308, 307, 306, 307, 0, 307, 0, 0, + 307, 0, 308, 0, 308, 0, 308, 309, 308, 0, + 309, 308, 0, 310, 0, 0, 0, 309, 0, 309, + 0, 309, 0, 310, 313, 310, 309, 310, 0, 0, + + 314, 0, 310, 0, 313, 0, 313, 0, 313, 0, + 314, 0, 314, 313, 314, 315, 316, 0, 314, 314, + 0, 0, 315, 0, 0, 315, 316, 315, 316, 315, + 316, 317, 316, 0, 315, 316, 318, 318, 0, 313, + 0, 317, 0, 317, 320, 317, 0, 318, 0, 318, + 317, 318, 319, 318, 0, 320, 318, 319, 0, 0, + 0, 0, 319, 321, 319, 320, 319, 320, 319, 320, + 0, 319, 0, 321, 320, 321, 322, 321, 0, 0, + 321, 0, 321, 0, 324, 324, 322, 325, 322, 0, + 322, 0, 0, 0, 324, 322, 324, 325, 324, 325, + + 326, 325, 0, 324, 329, 325, 325, 0, 328, 0, + 326, 328, 326, 326, 326, 0, 0, 0, 328, 326, + 328, 329, 328, 0, 0, 0, 0, 328, 0, 330, + 0, 329, 330, 329, 0, 329, 331, 331, 0, 330, + 329, 330, 0, 330, 0, 333, 0, 331, 330, 331, + 0, 331, 0, 334, 0, 333, 331, 333, 0, 333, + 0, 0, 0, 334, 333, 334, 335, 334, 0, 335, + 0, 334, 334, 0, 336, 0, 335, 337, 335, 0, + 335, 0, 0, 0, 336, 335, 336, 337, 336, 337, + 0, 337, 339, 336, 338, 338, 337, 0, 340, 0, + + 0, 0, 339, 0, 339, 338, 339, 338, 340, 338, + 340, 339, 340, 341, 338, 0, 343, 340, 0, 344, + 0, 0, 0, 341, 0, 341, 343, 341, 343, 344, + 343, 344, 341, 344, 0, 343, 345, 339, 344, 345, + 0, 0, 346, 0, 0, 0, 345, 0, 345, 0, + 345, 0, 346, 347, 346, 345, 346, 0, 0, 0, + 0, 346, 0, 347, 0, 347, 0, 347, 0, 351, + 347, 0, 347, 0, 352, 352, 352, 352, 346, 351, + 0, 351, 0, 351, 0, 0, 0, 0, 351, 352, + 352, 352, 352, 352, 352, 352, 352, 353, 353, 353, + + 353, 0, 0, 0, 0, 0, 0, 0, 353, 0, + 0, 0, 353, 353, 353, 353, 353, 353, 353, 353, + 354, 354, 354, 354, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 354, 354, 354, 354, 354, + 354, 354, 354, 355, 0, 359, 0, 355, 355, 355, + 355, 355, 355, 355, 355, 359, 0, 359, 0, 359, + 360, 360, 0, 359, 359, 0, 0, 0, 0, 0, + 360, 0, 360, 362, 360, 361, 361, 0, 353, 360, + 0, 0, 0, 362, 0, 362, 361, 362, 361, 0, + 361, 0, 362, 364, 364, 361, 0, 365, 365, 0, + + 366, 0, 0, 366, 364, 0, 364, 365, 364, 365, + 366, 365, 366, 364, 366, 367, 365, 0, 368, 366, + 0, 0, 0, 0, 0, 367, 369, 367, 368, 367, + 368, 0, 368, 0, 367, 0, 369, 368, 369, 370, + 369, 0, 369, 0, 0, 369, 370, 371, 0, 370, + 0, 370, 0, 370, 0, 0, 0, 371, 370, 371, + 372, 371, 0, 372, 0, 0, 371, 372, 0, 0, + 372, 373, 372, 373, 372, 0, 0, 374, 0, 372, + 374, 373, 0, 373, 374, 373, 0, 374, 375, 374, + 373, 374, 0, 0, 0, 0, 374, 0, 375, 376, + + 375, 0, 375, 0, 375, 0, 0, 375, 0, 376, + 0, 376, 0, 376, 377, 377, 0, 376, 376, 0, + 378, 0, 0, 0, 377, 0, 377, 0, 377, 0, + 378, 379, 378, 377, 378, 0, 0, 380, 378, 378, + 0, 379, 0, 379, 0, 379, 0, 380, 379, 380, + 379, 380, 381, 385, 0, 0, 380, 0, 0, 0, + 385, 0, 381, 385, 381, 385, 381, 385, 0, 0, + 387, 381, 385, 386, 386, 0, 386, 0, 0, 0, + 387, 0, 387, 386, 387, 386, 0, 386, 387, 387, + 389, 388, 386, 388, 0, 0, 0, 0, 0, 0, + + 389, 388, 389, 388, 389, 388, 390, 0, 0, 389, + 388, 0, 391, 0, 0, 391, 390, 0, 390, 0, + 390, 0, 391, 392, 391, 390, 391, 393, 0, 0, + 394, 391, 0, 392, 0, 392, 393, 392, 0, 0, + 392, 0, 392, 0, 396, 0, 393, 394, 393, 0, + 393, 0, 0, 0, 396, 393, 396, 394, 396, 394, + 397, 394, 396, 396, 0, 0, 394, 0, 398, 0, + 397, 0, 397, 0, 397, 0, 400, 0, 398, 397, + 398, 0, 398, 0, 402, 0, 400, 398, 400, 0, + 400, 0, 400, 0, 402, 400, 402, 403, 402, 0, + + 0, 0, 0, 402, 0, 0, 0, 403, 0, 403, + 405, 403, 0, 406, 0, 403, 403, 405, 0, 0, + 405, 407, 405, 406, 405, 406, 407, 406, 0, 405, + 0, 407, 406, 407, 408, 407, 0, 0, 0, 0, + 407, 0, 0, 0, 408, 411, 408, 0, 408, 0, + 0, 412, 0, 408, 412, 411, 408, 411, 0, 411, + 0, 412, 413, 412, 411, 412, 0, 0, 0, 0, + 412, 0, 413, 415, 413, 0, 413, 0, 413, 0, + 0, 413, 0, 415, 0, 415, 0, 415, 420, 420, + 420, 420, 415, 0, 0, 0, 0, 0, 0, 0, + + 0, 424, 0, 420, 420, 420, 420, 420, 420, 420, + 420, 424, 0, 424, 426, 424, 425, 425, 415, 0, + 424, 0, 0, 0, 426, 428, 426, 425, 426, 425, + 0, 425, 426, 426, 0, 428, 425, 428, 429, 428, + 0, 430, 0, 0, 428, 0, 0, 0, 429, 0, + 429, 430, 429, 430, 0, 430, 429, 429, 431, 0, + 430, 431, 0, 432, 432, 0, 0, 0, 431, 0, + 431, 0, 431, 0, 432, 433, 432, 431, 432, 0, + 0, 434, 0, 432, 0, 433, 0, 433, 0, 433, + 0, 434, 0, 434, 433, 434, 435, 0, 435, 434, + + 434, 0, 436, 0, 0, 0, 435, 0, 435, 0, + 435, 0, 436, 0, 436, 435, 436, 0, 0, 437, + 436, 436, 437, 0, 0, 438, 0, 438, 0, 437, + 0, 437, 0, 437, 0, 438, 439, 438, 437, 438, + 0, 440, 440, 0, 438, 0, 439, 0, 439, 0, + 439, 0, 440, 441, 440, 439, 440, 0, 0, 442, + 0, 440, 0, 441, 0, 441, 442, 441, 0, 442, + 443, 442, 441, 442, 0, 0, 444, 0, 442, 0, + 443, 0, 443, 444, 443, 0, 444, 443, 444, 443, + 444, 445, 445, 449, 0, 444, 0, 449, 0, 0, + + 0, 0, 445, 449, 445, 449, 445, 449, 450, 0, + 0, 445, 449, 0, 451, 450, 451, 0, 450, 0, + 450, 0, 450, 0, 451, 452, 451, 450, 451, 0, + 0, 453, 0, 451, 453, 452, 0, 452, 0, 452, + 0, 453, 452, 453, 452, 453, 454, 454, 0, 0, + 453, 0, 455, 455, 0, 0, 454, 0, 454, 0, + 454, 0, 455, 456, 455, 454, 455, 0, 0, 0, + 0, 455, 0, 456, 0, 456, 0, 456, 457, 456, + 0, 457, 456, 0, 458, 0, 0, 0, 457, 0, + 457, 0, 457, 0, 458, 461, 458, 457, 458, 0, + + 0, 458, 0, 458, 0, 461, 0, 461, 464, 461, + 462, 462, 0, 0, 461, 0, 0, 0, 464, 466, + 464, 462, 464, 462, 0, 462, 0, 464, 0, 466, + 462, 466, 467, 466, 0, 467, 0, 466, 466, 0, + 469, 0, 467, 0, 467, 0, 467, 0, 0, 0, + 469, 467, 469, 0, 469, 470, 470, 0, 471, 469, + 469, 472, 0, 0, 0, 470, 0, 470, 471, 470, + 471, 472, 471, 472, 470, 472, 475, 471, 0, 476, + 472, 0, 0, 0, 0, 0, 475, 0, 475, 476, + 475, 476, 0, 476, 486, 475, 476, 0, 476, 482, + + 482, 482, 482, 0, 486, 0, 486, 0, 486, 0, + 0, 0, 486, 486, 482, 482, 482, 482, 482, 482, + 482, 482, 483, 0, 0, 0, 483, 483, 483, 483, + 483, 483, 483, 483, 487, 489, 0, 0, 0, 0, + 0, 487, 0, 0, 487, 489, 487, 489, 487, 489, + 0, 491, 490, 487, 489, 490, 0, 0, 0, 0, + 0, 491, 490, 491, 490, 491, 490, 492, 493, 0, + 491, 490, 0, 0, 492, 493, 0, 492, 493, 492, + 493, 492, 493, 494, 495, 0, 492, 493, 0, 0, + 0, 0, 0, 494, 495, 494, 495, 494, 495, 496, + + 0, 0, 494, 495, 0, 497, 496, 497, 0, 496, + 0, 496, 0, 496, 0, 497, 498, 497, 496, 497, + 0, 0, 499, 0, 497, 0, 498, 499, 498, 0, + 498, 0, 499, 500, 499, 498, 499, 0, 0, 0, + 0, 499, 0, 500, 501, 500, 0, 500, 0, 0, + 0, 500, 500, 0, 501, 502, 501, 0, 501, 0, + 0, 503, 501, 501, 0, 502, 0, 502, 0, 502, + 0, 503, 504, 503, 502, 503, 0, 0, 508, 0, + 503, 0, 504, 0, 504, 508, 504, 0, 508, 509, + 508, 504, 508, 0, 0, 0, 0, 508, 0, 509, + + 510, 509, 0, 509, 0, 0, 511, 509, 509, 0, + 510, 0, 510, 0, 510, 0, 511, 512, 511, 510, + 511, 0, 0, 513, 0, 511, 513, 512, 0, 512, + 0, 512, 0, 513, 512, 513, 512, 513, 514, 515, + 0, 0, 513, 0, 0, 0, 0, 0, 514, 515, + 514, 515, 514, 515, 516, 516, 514, 514, 515, 0, + 517, 0, 0, 0, 516, 0, 516, 0, 516, 0, + 517, 520, 517, 516, 517, 0, 0, 522, 0, 517, + 0, 520, 0, 520, 0, 520, 0, 522, 524, 522, + 520, 522, 0, 0, 525, 0, 522, 0, 524, 0, + + 524, 0, 524, 0, 525, 517, 525, 524, 525, 527, + 0, 0, 527, 525, 0, 528, 0, 0, 528, 527, + 0, 527, 0, 527, 0, 528, 0, 528, 527, 528, + 531, 531, 0, 0, 528, 0, 537, 537, 537, 537, + 0, 531, 0, 531, 0, 531, 0, 0, 0, 0, + 531, 537, 537, 537, 537, 537, 537, 537, 537, 540, + 541, 541, 0, 0, 0, 0, 540, 0, 0, 540, + 541, 540, 541, 540, 541, 543, 0, 0, 540, 541, + 0, 0, 0, 544, 0, 543, 545, 543, 0, 543, + 0, 543, 0, 544, 543, 544, 545, 544, 545, 546, + + 545, 544, 544, 0, 0, 545, 549, 547, 0, 546, + 0, 546, 0, 546, 0, 548, 0, 547, 546, 547, + 547, 547, 0, 549, 0, 548, 547, 548, 0, 548, + 0, 0, 0, 549, 548, 549, 550, 549, 0, 550, + 0, 0, 549, 0, 551, 0, 550, 0, 550, 0, + 550, 0, 552, 0, 551, 550, 551, 0, 551, 552, + 553, 0, 552, 551, 552, 0, 552, 0, 0, 0, + 553, 552, 553, 558, 553, 0, 558, 0, 0, 553, + 0, 559, 0, 558, 560, 558, 0, 558, 0, 0, + 0, 559, 558, 559, 560, 559, 560, 561, 560, 0, + + 559, 0, 0, 560, 0, 562, 0, 561, 563, 561, + 0, 561, 562, 0, 0, 562, 561, 562, 563, 562, + 563, 567, 563, 0, 562, 571, 563, 563, 0, 572, + 0, 567, 0, 567, 0, 567, 0, 0, 0, 572, + 567, 572, 571, 572, 0, 575, 0, 0, 572, 0, + 0, 0, 571, 0, 571, 575, 571, 575, 0, 575, + 584, 571, 0, 0, 575, 580, 580, 580, 580, 0, + 584, 0, 584, 584, 584, 0, 0, 0, 585, 584, + 580, 580, 580, 580, 580, 580, 580, 580, 585, 587, + 585, 0, 585, 0, 0, 588, 0, 585, 0, 587, + + 0, 587, 0, 587, 0, 588, 0, 588, 587, 588, + 589, 590, 588, 589, 588, 0, 590, 0, 0, 0, + 589, 590, 589, 590, 589, 590, 591, 0, 0, 589, + 590, 0, 593, 0, 593, 0, 591, 0, 591, 0, + 591, 0, 593, 594, 593, 591, 593, 0, 0, 599, + 0, 593, 0, 594, 0, 594, 0, 594, 0, 599, + 600, 599, 594, 599, 0, 599, 0, 0, 599, 0, + 600, 601, 600, 600, 600, 0, 0, 611, 601, 600, + 0, 601, 0, 601, 0, 601, 0, 611, 620, 611, + 601, 611, 0, 0, 621, 0, 611, 0, 620, 0, + + 620, 0, 620, 0, 621, 0, 621, 620, 621, 622, + 623, 622, 0, 621, 0, 0, 0, 0, 0, 622, + 623, 622, 623, 622, 623, 624, 626, 0, 622, 623, + 0, 0, 0, 0, 0, 624, 626, 624, 626, 624, + 626, 627, 624, 0, 624, 626, 0, 631, 627, 0, + 0, 627, 0, 627, 0, 627, 0, 631, 632, 631, + 627, 631, 0, 0, 0, 0, 631, 0, 632, 633, + 632, 0, 632, 0, 0, 648, 0, 632, 0, 633, + 0, 633, 633, 633, 0, 648, 649, 648, 633, 648, + 0, 0, 650, 0, 648, 0, 649, 0, 649, 0, + + 649, 0, 650, 652, 650, 649, 650, 0, 0, 0, + 0, 650, 0, 652, 656, 652, 0, 652, 0, 0, + 657, 652, 652, 0, 656, 0, 656, 0, 656, 0, + 657, 656, 657, 656, 657, 672, 676, 0, 0, 657, + 0, 0, 0, 0, 0, 672, 676, 672, 676, 672, + 676, 677, 692, 0, 672, 676, 0, 0, 672, 0, + 0, 677, 692, 677, 692, 677, 692, 0, 0, 0, + 677, 692, 742, 742, 742, 742, 742, 742, 742, 742, + 742, 742, 742, 742, 742, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 743, 744, 744, + + 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, + 744, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 746, 746, 746, 746, 746, 746, + 746, 746, 746, 746, 746, 746, 746, 747, 747, 747, + 747, 0, 747, 747, 747, 747, 747, 747, 747, 747, + 748, 748, 748, 0, 748, 0, 748, 0, 748, 749, + 749, 0, 749, 749, 750, 750, 0, 0, 750, 750, + 0, 750, 750, 750, 750, 750, 750, 751, 751, 751, + 751, 0, 751, 751, 751, 751, 751, 751, 751, 751, + 752, 752, 752, 752, 752, 752, 752, 752, 0, 752, + + 752, 753, 0, 0, 0, 753, 753, 753, 753, 753, + 753, 753, 754, 0, 0, 0, 754, 754, 754, 754, + 754, 754, 754, 755, 755, 0, 755, 755, 756, 756, + 0, 756, 756, 757, 757, 0, 757, 757, 758, 0, + 758, 758, 759, 759, 0, 759, 759, 760, 0, 760, + 760, 761, 0, 761, 761, 762, 0, 762, 762, 763, + 0, 763, 763, 764, 764, 764, 764, 764, 764, 764, + 764, 764, 764, 764, 764, 764, 765, 765, 0, 765, + 765, 766, 766, 0, 766, 766, 766, 766, 766, 766, + 766, 766, 766, 766, 767, 767, 767, 0, 0, 0, + + 767, 0, 0, 0, 0, 767, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 741, 741, 741, 741, 741 } ; extern int yy_flex_debug; int yy_flex_debug = 1; -static yyconst short int yy_rule_linenum[137] = +static yyconst short int yy_rule_linenum[138] = { 0, - 95, 96, 98, 101, 103, 106, 108, 109, 110, 113, - 115, 116, 117, 129, 136, 143, 149, 158, 166, 174, - 175, 177, 196, 202, 203, 204, 205, 206, 209, 215, - 222, 229, 236, 243, 244, 245, 253, 254, 255, 256, - 257, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 343, 344, 349, 350, 351, 354, 359, 365, 373, 383, - 388, 390, 391, 395, 400, 405, 411, 412, 414, 420, - 433, 436, 461, 505, 507, 518 + 96, 97, 99, 102, 104, 107, 109, 110, 111, 114, + 116, 117, 118, 130, 137, 144, 150, 159, 167, 175, + 176, 178, 197, 203, 204, 205, 206, 207, 210, 216, + 223, 230, 237, 244, 251, 252, 253, 261, 262, 263, + 264, 265, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 351, 352, 357, 358, 359, 362, 367, 373, 381, + 391, 396, 398, 399, 403, 408, 413, 419, 420, 422, + 428, 441, 444, 469, 513, 515, 526 } ; static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; @@ -1825,6 +1854,7 @@ int asn1p_lexer_constructs_year = 0; int asn1p_as_pointer; static asn1c_integer_t _lex_atoi(const char *ptr); +static double _lex_atod(const char *ptr); /* * Check that the type is defined in the year of the standard choosen. @@ -1884,7 +1914,7 @@ static asn1c_integer_t _lex_atoi(const char *ptr); /* Newline */ /* White-space */ -#line 1888 "asn1p_l.c" +#line 1918 "asn1p_l.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -2035,10 +2065,10 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 93 "asn1p_l.l" +#line 94 "asn1p_l.l" -#line 2042 "asn1p_l.c" +#line 2072 "asn1p_l.c" if ( yy_init ) { @@ -2086,18 +2116,19 @@ 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 >= 735 ) + if ( yy_current_state >= 742 ) 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] != 4413 ); + while ( yy_base[yy_current_state] != 4507 ); yy_find_action: yy_current_state = *--yy_state_ptr; yy_lp = yy_accept[yy_current_state]; +goto find_rule; /* avoid `defined but not used' warning */ find_rule: /* we branch to this label when backing up */ for ( ; ; ) /* until we find what rule we matched */ { @@ -2130,13 +2161,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 < 137 ) + else if ( yy_act < 138 ) fprintf( stderr, "--accepting rule at line %d (\"%s\")\n", yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 137 ) + else if ( yy_act == 138 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 138 ) + else if ( yy_act == 139 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2149,7 +2180,7 @@ case 1: yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 95 "asn1p_l.l" +#line 96 "asn1p_l.l" /* Immediately terminated long comment */ YY_BREAK case 2: @@ -2157,67 +2188,67 @@ case 2: yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 96 "asn1p_l.l" +#line 97 "asn1p_l.l" yy_push_state(idash_comment); /* Incorrect, but acceptable */ YY_BREAK case 3: YY_RULE_SETUP -#line 98 "asn1p_l.l" +#line 99 "asn1p_l.l" yy_pop_state(); /* Acceptable end of comment */ YY_BREAK case 4: YY_RULE_SETUP -#line 101 "asn1p_l.l" +#line 102 "asn1p_l.l" asn1p_as_pointer = 1; YY_BREAK case 5: YY_RULE_SETUP -#line 103 "asn1p_l.l" +#line 104 "asn1p_l.l" yy_push_state(dash_comment); YY_BREAK case 6: YY_RULE_SETUP -#line 106 "asn1p_l.l" +#line 107 "asn1p_l.l" yy_pop_state(); YY_BREAK case 7: YY_RULE_SETUP -#line 108 "asn1p_l.l" +#line 109 "asn1p_l.l" yy_pop_state(); /* End of comment */ YY_BREAK case 8: YY_RULE_SETUP -#line 109 "asn1p_l.l" +#line 110 "asn1p_l.l" /* Eat single dash */ YY_BREAK case 9: YY_RULE_SETUP -#line 110 "asn1p_l.l" +#line 111 "asn1p_l.l" /* Eat */ YY_BREAK case 10: YY_RULE_SETUP -#line 113 "asn1p_l.l" +#line 114 "asn1p_l.l" yy_push_state(cpp_comment); YY_BREAK case 11: YY_RULE_SETUP -#line 115 "asn1p_l.l" +#line 116 "asn1p_l.l" /* Eat */ YY_BREAK case 12: YY_RULE_SETUP -#line 116 "asn1p_l.l" +#line 117 "asn1p_l.l" yy_pop_state(); YY_BREAK case 13: YY_RULE_SETUP -#line 117 "asn1p_l.l" +#line 118 "asn1p_l.l" /* Eat */ YY_BREAK @@ -2230,7 +2261,7 @@ YY_RULE_SETUP case 14: YY_RULE_SETUP -#line 129 "asn1p_l.l" +#line 130 "asn1p_l.l" { yy_push_state(opaque); asn1p_lval.tv_opaque.buf = strdup(yytext); @@ -2240,7 +2271,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 136 "asn1p_l.l" +#line 137 "asn1p_l.l" { yy_pop_state(); asn1p_lval.tv_opaque.buf = strdup(yytext); @@ -2250,7 +2281,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 143 "asn1p_l.l" +#line 144 "asn1p_l.l" { asn1p_lval.tv_opaque.buf = strdup(yytext); asn1p_lval.tv_opaque.len = yyleng; @@ -2259,7 +2290,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 149 "asn1p_l.l" +#line 150 "asn1p_l.l" { fprintf(stderr, "ASN.1 Parser syncronization failure: " @@ -2271,7 +2302,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 158 "asn1p_l.l" +#line 159 "asn1p_l.l" { asn1p_lval.tv_opaque.buf = strdup(yytext); asn1p_lval.tv_opaque.len = yyleng; @@ -2281,7 +2312,7 @@ YY_RULE_SETUP case 19: YY_RULE_SETUP -#line 166 "asn1p_l.l" +#line 167 "asn1p_l.l" { asn1p_lval.tv_opaque.buf = 0; asn1p_lval.tv_opaque.len = 0; @@ -2292,17 +2323,17 @@ YY_RULE_SETUP case 20: YY_RULE_SETUP -#line 174 "asn1p_l.l" +#line 175 "asn1p_l.l" { QAPPEND(yytext, yyleng-1); } /* Add a single quote */ YY_BREAK case 21: YY_RULE_SETUP -#line 175 "asn1p_l.l" +#line 176 "asn1p_l.l" { QAPPEND(yytext, yyleng); } YY_BREAK case 22: YY_RULE_SETUP -#line 177 "asn1p_l.l" +#line 178 "asn1p_l.l" { yy_pop_state(); /* Do not append last quote: @@ -2323,7 +2354,7 @@ YY_RULE_SETUP case 23: YY_RULE_SETUP -#line 196 "asn1p_l.l" +#line 197 "asn1p_l.l" { const char *s = "ENCODING-CONTROL"; const char *p = s + sizeof("ENCODING-CONTROL") - 2; @@ -2333,33 +2364,33 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 202 "asn1p_l.l" +#line 203 "asn1p_l.l" unput('D'); unput('N'); unput('E'); yy_pop_state(); YY_BREAK case 25: YY_RULE_SETUP -#line 203 "asn1p_l.l" +#line 204 "asn1p_l.l" YY_BREAK case 26: YY_RULE_SETUP -#line 204 "asn1p_l.l" +#line 205 "asn1p_l.l" YY_BREAK case 27: YY_RULE_SETUP -#line 205 "asn1p_l.l" +#line 206 "asn1p_l.l" /* Eat everything else */ YY_BREAK case 28: YY_RULE_SETUP -#line 206 "asn1p_l.l" +#line 207 "asn1p_l.l" YY_BREAK case 29: YY_RULE_SETUP -#line 209 "asn1p_l.l" +#line 210 "asn1p_l.l" { /* " \t\r\n" weren't allowed in ASN.1:1990. */ asn1p_lval.tv_str = yytext; @@ -2368,7 +2399,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 215 "asn1p_l.l" +#line 216 "asn1p_l.l" { /* " \t\r\n" weren't allowed in ASN.1:1990. */ asn1p_lval.tv_str = strdup(yytext); @@ -2377,7 +2408,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 222 "asn1p_l.l" +#line 223 "asn1p_l.l" { asn1p_lval.a_int = _lex_atoi(yytext); if(errno == ERANGE) @@ -2387,7 +2418,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 229 "asn1p_l.l" +#line 230 "asn1p_l.l" { asn1p_lval.a_int = _lex_atoi(yytext); if(errno == ERANGE) @@ -2397,7 +2428,7 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 236 "asn1p_l.l" +#line 237 "asn1p_l.l" { asn1p_lval.a_int = _lex_atoi(yytext); if(errno == ERANGE) @@ -2407,17 +2438,27 @@ YY_RULE_SETUP YY_BREAK case 34: YY_RULE_SETUP -#line 243 "asn1p_l.l" -return TOK_ABSENT; +#line 244 "asn1p_l.l" +{ + asn1p_lval.a_dbl = _lex_atod(yytext); + if(errno == ERANGE) + return -1; + return TOK_realnumber; + } YY_BREAK case 35: YY_RULE_SETUP -#line 244 "asn1p_l.l" -return TOK_ALL; +#line 251 "asn1p_l.l" +return TOK_ABSENT; YY_BREAK case 36: YY_RULE_SETUP -#line 245 "asn1p_l.l" +#line 252 "asn1p_l.l" +return TOK_ALL; + YY_BREAK +case 37: +YY_RULE_SETUP +#line 253 "asn1p_l.l" { /* Appeared in 1990, removed in 1997 */ if(TYPE_LIFETIME(1990, 1997)) @@ -2427,88 +2468,88 @@ YY_RULE_SETUP REJECT; } YY_BREAK -case 37: +case 38: YY_RULE_SETUP -#line 253 "asn1p_l.l" +#line 261 "asn1p_l.l" return TOK_APPLICATION; YY_BREAK -case 38: +case 39: YY_RULE_SETUP -#line 254 "asn1p_l.l" +#line 262 "asn1p_l.l" return TOK_AUTOMATIC; YY_BREAK -case 39: +case 40: YY_RULE_SETUP -#line 255 "asn1p_l.l" +#line 263 "asn1p_l.l" return TOK_BEGIN; YY_BREAK -case 40: +case 41: YY_RULE_SETUP -#line 256 "asn1p_l.l" +#line 264 "asn1p_l.l" return TOK_BIT; YY_BREAK -case 41: +case 42: YY_RULE_SETUP -#line 257 "asn1p_l.l" +#line 265 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_BMPString; REJECT; } YY_BREAK -case 42: +case 43: YY_RULE_SETUP -#line 262 "asn1p_l.l" +#line 270 "asn1p_l.l" return TOK_BOOLEAN; YY_BREAK -case 43: +case 44: YY_RULE_SETUP -#line 263 "asn1p_l.l" +#line 271 "asn1p_l.l" return TOK_BY; YY_BREAK -case 44: +case 45: YY_RULE_SETUP -#line 264 "asn1p_l.l" +#line 272 "asn1p_l.l" return TOK_CHARACTER; YY_BREAK -case 45: +case 46: YY_RULE_SETUP -#line 265 "asn1p_l.l" +#line 273 "asn1p_l.l" return TOK_CHOICE; YY_BREAK -case 46: +case 47: YY_RULE_SETUP -#line 266 "asn1p_l.l" +#line 274 "asn1p_l.l" return TOK_CLASS; YY_BREAK -case 47: +case 48: YY_RULE_SETUP -#line 267 "asn1p_l.l" +#line 275 "asn1p_l.l" return TOK_COMPONENT; YY_BREAK -case 48: +case 49: YY_RULE_SETUP -#line 268 "asn1p_l.l" +#line 276 "asn1p_l.l" return TOK_COMPONENTS; YY_BREAK -case 49: +case 50: YY_RULE_SETUP -#line 269 "asn1p_l.l" +#line 277 "asn1p_l.l" return TOK_CONSTRAINED; YY_BREAK -case 50: +case 51: YY_RULE_SETUP -#line 270 "asn1p_l.l" +#line 278 "asn1p_l.l" return TOK_CONTAINING; YY_BREAK -case 51: +case 52: YY_RULE_SETUP -#line 271 "asn1p_l.l" +#line 279 "asn1p_l.l" return TOK_DEFAULT; YY_BREAK -case 52: +case 53: YY_RULE_SETUP -#line 272 "asn1p_l.l" +#line 280 "asn1p_l.l" { /* Appeared in 1990, removed in 1997 */ if(TYPE_LIFETIME(1990, 1997)) @@ -2519,348 +2560,348 @@ YY_RULE_SETUP REJECT; } YY_BREAK -case 53: +case 54: YY_RULE_SETUP -#line 281 "asn1p_l.l" +#line 289 "asn1p_l.l" return TOK_DEFINITIONS; YY_BREAK -case 54: +case 55: YY_RULE_SETUP -#line 282 "asn1p_l.l" +#line 290 "asn1p_l.l" return TOK_EMBEDDED; YY_BREAK -case 55: +case 56: YY_RULE_SETUP -#line 283 "asn1p_l.l" +#line 291 "asn1p_l.l" return TOK_ENCODED; YY_BREAK -case 56: +case 57: YY_RULE_SETUP -#line 284 "asn1p_l.l" +#line 292 "asn1p_l.l" return TOK_ENCODING_CONTROL; YY_BREAK -case 57: +case 58: YY_RULE_SETUP -#line 285 "asn1p_l.l" +#line 293 "asn1p_l.l" return TOK_END; YY_BREAK -case 58: +case 59: YY_RULE_SETUP -#line 286 "asn1p_l.l" +#line 294 "asn1p_l.l" return TOK_ENUMERATED; YY_BREAK -case 59: +case 60: YY_RULE_SETUP -#line 287 "asn1p_l.l" +#line 295 "asn1p_l.l" return TOK_EXCEPT; YY_BREAK -case 60: +case 61: YY_RULE_SETUP -#line 288 "asn1p_l.l" +#line 296 "asn1p_l.l" return TOK_EXPLICIT; YY_BREAK -case 61: +case 62: YY_RULE_SETUP -#line 289 "asn1p_l.l" +#line 297 "asn1p_l.l" return TOK_EXPORTS; YY_BREAK -case 62: +case 63: YY_RULE_SETUP -#line 290 "asn1p_l.l" +#line 298 "asn1p_l.l" return TOK_EXTENSIBILITY; YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 291 "asn1p_l.l" +#line 299 "asn1p_l.l" return TOK_EXTERNAL; YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 292 "asn1p_l.l" +#line 300 "asn1p_l.l" return TOK_FALSE; YY_BREAK -case 65: +case 66: YY_RULE_SETUP -#line 293 "asn1p_l.l" +#line 301 "asn1p_l.l" return TOK_FROM; YY_BREAK -case 66: +case 67: YY_RULE_SETUP -#line 294 "asn1p_l.l" +#line 302 "asn1p_l.l" return TOK_GeneralizedTime; YY_BREAK -case 67: +case 68: YY_RULE_SETUP -#line 295 "asn1p_l.l" +#line 303 "asn1p_l.l" return TOK_GeneralString; YY_BREAK -case 68: +case 69: YY_RULE_SETUP -#line 296 "asn1p_l.l" +#line 304 "asn1p_l.l" return TOK_GraphicString; YY_BREAK -case 69: +case 70: YY_RULE_SETUP -#line 297 "asn1p_l.l" +#line 305 "asn1p_l.l" return TOK_IA5String; YY_BREAK -case 70: +case 71: YY_RULE_SETUP -#line 298 "asn1p_l.l" +#line 306 "asn1p_l.l" return TOK_IDENTIFIER; YY_BREAK -case 71: +case 72: YY_RULE_SETUP -#line 299 "asn1p_l.l" +#line 307 "asn1p_l.l" return TOK_IMPLICIT; YY_BREAK -case 72: +case 73: YY_RULE_SETUP -#line 300 "asn1p_l.l" +#line 308 "asn1p_l.l" return TOK_IMPLIED; YY_BREAK -case 73: +case 74: YY_RULE_SETUP -#line 301 "asn1p_l.l" +#line 309 "asn1p_l.l" return TOK_IMPORTS; YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 302 "asn1p_l.l" +#line 310 "asn1p_l.l" return TOK_INCLUDES; YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 303 "asn1p_l.l" +#line 311 "asn1p_l.l" return TOK_INSTANCE; YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 304 "asn1p_l.l" +#line 312 "asn1p_l.l" return TOK_INSTRUCTIONS; YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 305 "asn1p_l.l" +#line 313 "asn1p_l.l" return TOK_INTEGER; YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 306 "asn1p_l.l" +#line 314 "asn1p_l.l" return TOK_INTERSECTION; YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 307 "asn1p_l.l" +#line 315 "asn1p_l.l" return TOK_ISO646String; YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 308 "asn1p_l.l" +#line 316 "asn1p_l.l" return TOK_MAX; YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 309 "asn1p_l.l" +#line 317 "asn1p_l.l" return TOK_MIN; YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 310 "asn1p_l.l" +#line 318 "asn1p_l.l" return TOK_MINUS_INFINITY; YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 311 "asn1p_l.l" +#line 319 "asn1p_l.l" return TOK_NULL; YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 312 "asn1p_l.l" +#line 320 "asn1p_l.l" return TOK_NumericString; YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 313 "asn1p_l.l" +#line 321 "asn1p_l.l" return TOK_OBJECT; YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 314 "asn1p_l.l" +#line 322 "asn1p_l.l" return TOK_ObjectDescriptor; YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 315 "asn1p_l.l" +#line 323 "asn1p_l.l" return TOK_OCTET; YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 316 "asn1p_l.l" +#line 324 "asn1p_l.l" return TOK_OF; YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 317 "asn1p_l.l" +#line 325 "asn1p_l.l" return TOK_OPTIONAL; YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 318 "asn1p_l.l" +#line 326 "asn1p_l.l" return TOK_PATTERN; YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 319 "asn1p_l.l" +#line 327 "asn1p_l.l" return TOK_PDV; YY_BREAK -case 92: +case 93: YY_RULE_SETUP -#line 320 "asn1p_l.l" +#line 328 "asn1p_l.l" return TOK_PLUS_INFINITY; YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 321 "asn1p_l.l" +#line 329 "asn1p_l.l" return TOK_PRESENT; YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 322 "asn1p_l.l" +#line 330 "asn1p_l.l" return TOK_PrintableString; YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 323 "asn1p_l.l" +#line 331 "asn1p_l.l" return TOK_PRIVATE; YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 324 "asn1p_l.l" +#line 332 "asn1p_l.l" return TOK_REAL; YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 325 "asn1p_l.l" +#line 333 "asn1p_l.l" return TOK_RELATIVE_OID; YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 326 "asn1p_l.l" +#line 334 "asn1p_l.l" return TOK_SEQUENCE; YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 327 "asn1p_l.l" +#line 335 "asn1p_l.l" return TOK_SET; YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 328 "asn1p_l.l" +#line 336 "asn1p_l.l" return TOK_SIZE; YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 329 "asn1p_l.l" +#line 337 "asn1p_l.l" return TOK_STRING; YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 330 "asn1p_l.l" +#line 338 "asn1p_l.l" return TOK_SYNTAX; YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 331 "asn1p_l.l" +#line 339 "asn1p_l.l" return TOK_T61String; YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 332 "asn1p_l.l" +#line 340 "asn1p_l.l" return TOK_TAGS; YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 333 "asn1p_l.l" +#line 341 "asn1p_l.l" return TOK_TeletexString; YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 334 "asn1p_l.l" +#line 342 "asn1p_l.l" return TOK_TRUE; YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 335 "asn1p_l.l" +#line 343 "asn1p_l.l" return TOK_UNION; YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 336 "asn1p_l.l" +#line 344 "asn1p_l.l" return TOK_UNIQUE; YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 337 "asn1p_l.l" +#line 345 "asn1p_l.l" return TOK_UNIVERSAL; YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 338 "asn1p_l.l" +#line 346 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_UniversalString; REJECT; } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 343 "asn1p_l.l" +#line 351 "asn1p_l.l" return TOK_UTCTime; YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 344 "asn1p_l.l" +#line 352 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_UTF8String; REJECT; } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 349 "asn1p_l.l" +#line 357 "asn1p_l.l" return TOK_VideotexString; YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 350 "asn1p_l.l" +#line 358 "asn1p_l.l" return TOK_VisibleString; YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 351 "asn1p_l.l" +#line 359 "asn1p_l.l" return TOK_WITH; YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 354 "asn1p_l.l" +#line 362 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_typefieldreference; } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 359 "asn1p_l.l" +#line 367 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_valuefieldreference; } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 365 "asn1p_l.l" +#line 373 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_identifier; @@ -2869,9 +2910,9 @@ YY_RULE_SETUP /* * objectclassreference */ -case 119: +case 120: YY_RULE_SETUP -#line 373 "asn1p_l.l" +#line 381 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_capitalreference; @@ -2882,77 +2923,77 @@ YY_RULE_SETUP * NOTE: TOK_objectclassreference must be combined * with this token to produce true typereference. */ -case 120: +case 121: YY_RULE_SETUP -#line 383 "asn1p_l.l" +#line 391 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_typereference; } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 388 "asn1p_l.l" +#line 396 "asn1p_l.l" return TOK_PPEQ; YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 390 "asn1p_l.l" +#line 398 "asn1p_l.l" return TOK_ThreeDots; YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 391 "asn1p_l.l" +#line 399 "asn1p_l.l" return TOK_TwoDots; YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 395 "asn1p_l.l" +#line 403 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_Literal; } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 400 "asn1p_l.l" +#line 408 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_Literal; } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 405 "asn1p_l.l" +#line 413 "asn1p_l.l" { yy_push_state(with_syntax); asn1p_lval.tv_str = strdup(yytext); return TOK_Literal; } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 411 "asn1p_l.l" +#line 419 "asn1p_l.l" return '['; YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 412 "asn1p_l.l" +#line 420 "asn1p_l.l" return ']'; YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 414 "asn1p_l.l" +#line 422 "asn1p_l.l" { asn1p_lval.tv_opaque.buf = strdup(yytext); asn1p_lval.tv_opaque.len = yyleng; return TOK_whitespace; } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 420 "asn1p_l.l" +#line 428 "asn1p_l.l" { yy_pop_state(); if(YYSTATE == with_syntax) { @@ -2964,14 +3005,14 @@ YY_RULE_SETUP } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 433 "asn1p_l.l" +#line 441 "asn1p_l.l" /* Ignore whitespace */ YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 436 "asn1p_l.l" +#line 444 "asn1p_l.l" { asn1c_integer_t v1 = -1, v2 = -1; char *p; @@ -2997,9 +3038,9 @@ YY_RULE_SETUP return TOK_tuple; } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 461 "asn1p_l.l" +#line 469 "asn1p_l.l" { asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1; char *p; @@ -3043,14 +3084,14 @@ YY_RULE_SETUP return TOK_quadruple; } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 505 "asn1p_l.l" +#line 513 "asn1p_l.l" return yytext[0]; YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 507 "asn1p_l.l" +#line 515 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) fprintf(stderr, "ERROR: "); @@ -3062,9 +3103,9 @@ YY_RULE_SETUP return -1; } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 518 "asn1p_l.l" +#line 526 "asn1p_l.l" { fprintf(stderr, "Unexpected token at line %d: \"%s\"\n", @@ -3086,19 +3127,19 @@ case YY_STATE_EOF(quoted): case YY_STATE_EOF(opaque): case YY_STATE_EOF(encoding_control): case YY_STATE_EOF(with_syntax): -#line 531 "asn1p_l.l" +#line 539 "asn1p_l.l" { while(YYSTATE != INITIAL) yy_pop_state(); yyterminate(); } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 538 "asn1p_l.l" +#line 546 "asn1p_l.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 3102 "asn1p_l.c" +#line 3143 "asn1p_l.c" case YY_END_OF_BUFFER: { @@ -3385,7 +3426,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 >= 735 ) + if ( yy_current_state >= 742 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3415,11 +3456,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 >= 735 ) + if ( yy_current_state >= 742 ) 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 == 734); + yy_is_jam = (yy_current_state == 741); if ( ! yy_is_jam ) *yy_state_ptr++ = yy_current_state; @@ -3980,7 +4021,7 @@ int main() return 0; } #endif -#line 538 "asn1p_l.l" +#line 546 "asn1p_l.l" /* @@ -4010,3 +4051,19 @@ _lex_atoi(const char *ptr) { } return value; } + +static double +_lex_atod(const char *ptr) { + double value; + errno = 0; + value = strtod(ptr, 0); + if(errno) { + fprintf(stderr, + "Value \"%s\" at line %d is outside of `double` range " + "in this compiler! Please contact the asn1c author.\n", + ptr, yylineno); + errno = ERANGE; + } + return value; +} + |