diff --git a/libasn1fix/asn1fix_constraint_compat.c b/libasn1fix/asn1fix_constraint_compat.c index 844045f6..96bd0425 100644 --- a/libasn1fix/asn1fix_constraint_compat.c +++ b/libasn1fix/asn1fix_constraint_compat.c @@ -9,6 +9,9 @@ int asn1constraint_compatible(asn1p_expr_type_e expr_type, enum asn1p_constraint_type_e constr_type, int fbless_SIZE) { + if(expr_type == ASN_BASIC_REAL) + return -1; /* Not yet supported */ + /* * X.680-0207, Table 9. */ 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 +#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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, 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, 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, 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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 + 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, + 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, 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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 + 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, + 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, - 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, + 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, 1, 1, 1, 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, 12, - 1, 13 + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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 + 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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 + 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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 + 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, + 1, 1, 1, 3, 3, 3, 4, 4, 4, 5, + 5, 5, 133, 11, 3, 9, 7, 4, 8, 9, - 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, + 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, + 14, 14, 14, 14, 14, 229, 165, 268, 241, 182, + 182, 44, 30, 14, 14, 14, 14, 14, 35, 165, - 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, + 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, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 647, 343, 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, 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, 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, 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, + 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, - 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, + 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, 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, 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, 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, + 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, - 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, + 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, 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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, + 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, - 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 + 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, + 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, - 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 + 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: -YY_RULE_SETUP -#line 253 "asn1p_l.l" -return TOK_APPLICATION; - YY_BREAK case 38: YY_RULE_SETUP -#line 254 "asn1p_l.l" -return TOK_AUTOMATIC; +#line 261 "asn1p_l.l" +return TOK_APPLICATION; YY_BREAK case 39: YY_RULE_SETUP -#line 255 "asn1p_l.l" -return TOK_BEGIN; +#line 262 "asn1p_l.l" +return TOK_AUTOMATIC; YY_BREAK case 40: YY_RULE_SETUP -#line 256 "asn1p_l.l" -return TOK_BIT; +#line 263 "asn1p_l.l" +return TOK_BEGIN; YY_BREAK case 41: YY_RULE_SETUP -#line 257 "asn1p_l.l" +#line 264 "asn1p_l.l" +return TOK_BIT; + YY_BREAK +case 42: +YY_RULE_SETUP +#line 265 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_BMPString; REJECT; } YY_BREAK -case 42: -YY_RULE_SETUP -#line 262 "asn1p_l.l" -return TOK_BOOLEAN; - YY_BREAK case 43: YY_RULE_SETUP -#line 263 "asn1p_l.l" -return TOK_BY; +#line 270 "asn1p_l.l" +return TOK_BOOLEAN; YY_BREAK case 44: YY_RULE_SETUP -#line 264 "asn1p_l.l" -return TOK_CHARACTER; +#line 271 "asn1p_l.l" +return TOK_BY; YY_BREAK case 45: YY_RULE_SETUP -#line 265 "asn1p_l.l" -return TOK_CHOICE; +#line 272 "asn1p_l.l" +return TOK_CHARACTER; YY_BREAK case 46: YY_RULE_SETUP -#line 266 "asn1p_l.l" -return TOK_CLASS; +#line 273 "asn1p_l.l" +return TOK_CHOICE; YY_BREAK case 47: YY_RULE_SETUP -#line 267 "asn1p_l.l" -return TOK_COMPONENT; +#line 274 "asn1p_l.l" +return TOK_CLASS; YY_BREAK case 48: YY_RULE_SETUP -#line 268 "asn1p_l.l" -return TOK_COMPONENTS; +#line 275 "asn1p_l.l" +return TOK_COMPONENT; YY_BREAK case 49: YY_RULE_SETUP -#line 269 "asn1p_l.l" -return TOK_CONSTRAINED; +#line 276 "asn1p_l.l" +return TOK_COMPONENTS; YY_BREAK case 50: YY_RULE_SETUP -#line 270 "asn1p_l.l" -return TOK_CONTAINING; +#line 277 "asn1p_l.l" +return TOK_CONSTRAINED; YY_BREAK case 51: YY_RULE_SETUP -#line 271 "asn1p_l.l" -return TOK_DEFAULT; +#line 278 "asn1p_l.l" +return TOK_CONTAINING; YY_BREAK case 52: YY_RULE_SETUP -#line 272 "asn1p_l.l" +#line 279 "asn1p_l.l" +return TOK_DEFAULT; + YY_BREAK +case 53: +YY_RULE_SETUP +#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: -YY_RULE_SETUP -#line 281 "asn1p_l.l" -return TOK_DEFINITIONS; - YY_BREAK case 54: YY_RULE_SETUP -#line 282 "asn1p_l.l" -return TOK_EMBEDDED; +#line 289 "asn1p_l.l" +return TOK_DEFINITIONS; YY_BREAK case 55: YY_RULE_SETUP -#line 283 "asn1p_l.l" -return TOK_ENCODED; +#line 290 "asn1p_l.l" +return TOK_EMBEDDED; YY_BREAK case 56: YY_RULE_SETUP -#line 284 "asn1p_l.l" -return TOK_ENCODING_CONTROL; +#line 291 "asn1p_l.l" +return TOK_ENCODED; YY_BREAK case 57: YY_RULE_SETUP -#line 285 "asn1p_l.l" -return TOK_END; +#line 292 "asn1p_l.l" +return TOK_ENCODING_CONTROL; YY_BREAK case 58: YY_RULE_SETUP -#line 286 "asn1p_l.l" -return TOK_ENUMERATED; +#line 293 "asn1p_l.l" +return TOK_END; YY_BREAK case 59: YY_RULE_SETUP -#line 287 "asn1p_l.l" -return TOK_EXCEPT; +#line 294 "asn1p_l.l" +return TOK_ENUMERATED; YY_BREAK case 60: YY_RULE_SETUP -#line 288 "asn1p_l.l" -return TOK_EXPLICIT; +#line 295 "asn1p_l.l" +return TOK_EXCEPT; YY_BREAK case 61: YY_RULE_SETUP -#line 289 "asn1p_l.l" -return TOK_EXPORTS; +#line 296 "asn1p_l.l" +return TOK_EXPLICIT; YY_BREAK case 62: YY_RULE_SETUP -#line 290 "asn1p_l.l" -return TOK_EXTENSIBILITY; +#line 297 "asn1p_l.l" +return TOK_EXPORTS; YY_BREAK case 63: YY_RULE_SETUP -#line 291 "asn1p_l.l" -return TOK_EXTERNAL; +#line 298 "asn1p_l.l" +return TOK_EXTENSIBILITY; YY_BREAK case 64: YY_RULE_SETUP -#line 292 "asn1p_l.l" -return TOK_FALSE; +#line 299 "asn1p_l.l" +return TOK_EXTERNAL; YY_BREAK case 65: YY_RULE_SETUP -#line 293 "asn1p_l.l" -return TOK_FROM; +#line 300 "asn1p_l.l" +return TOK_FALSE; YY_BREAK case 66: YY_RULE_SETUP -#line 294 "asn1p_l.l" -return TOK_GeneralizedTime; +#line 301 "asn1p_l.l" +return TOK_FROM; YY_BREAK case 67: YY_RULE_SETUP -#line 295 "asn1p_l.l" -return TOK_GeneralString; +#line 302 "asn1p_l.l" +return TOK_GeneralizedTime; YY_BREAK case 68: YY_RULE_SETUP -#line 296 "asn1p_l.l" -return TOK_GraphicString; +#line 303 "asn1p_l.l" +return TOK_GeneralString; YY_BREAK case 69: YY_RULE_SETUP -#line 297 "asn1p_l.l" -return TOK_IA5String; +#line 304 "asn1p_l.l" +return TOK_GraphicString; YY_BREAK case 70: YY_RULE_SETUP -#line 298 "asn1p_l.l" -return TOK_IDENTIFIER; +#line 305 "asn1p_l.l" +return TOK_IA5String; YY_BREAK case 71: YY_RULE_SETUP -#line 299 "asn1p_l.l" -return TOK_IMPLICIT; +#line 306 "asn1p_l.l" +return TOK_IDENTIFIER; YY_BREAK case 72: YY_RULE_SETUP -#line 300 "asn1p_l.l" -return TOK_IMPLIED; +#line 307 "asn1p_l.l" +return TOK_IMPLICIT; YY_BREAK case 73: YY_RULE_SETUP -#line 301 "asn1p_l.l" -return TOK_IMPORTS; +#line 308 "asn1p_l.l" +return TOK_IMPLIED; YY_BREAK case 74: YY_RULE_SETUP -#line 302 "asn1p_l.l" -return TOK_INCLUDES; +#line 309 "asn1p_l.l" +return TOK_IMPORTS; YY_BREAK case 75: YY_RULE_SETUP -#line 303 "asn1p_l.l" -return TOK_INSTANCE; +#line 310 "asn1p_l.l" +return TOK_INCLUDES; YY_BREAK case 76: YY_RULE_SETUP -#line 304 "asn1p_l.l" -return TOK_INSTRUCTIONS; +#line 311 "asn1p_l.l" +return TOK_INSTANCE; YY_BREAK case 77: YY_RULE_SETUP -#line 305 "asn1p_l.l" -return TOK_INTEGER; +#line 312 "asn1p_l.l" +return TOK_INSTRUCTIONS; YY_BREAK case 78: YY_RULE_SETUP -#line 306 "asn1p_l.l" -return TOK_INTERSECTION; +#line 313 "asn1p_l.l" +return TOK_INTEGER; YY_BREAK case 79: YY_RULE_SETUP -#line 307 "asn1p_l.l" -return TOK_ISO646String; +#line 314 "asn1p_l.l" +return TOK_INTERSECTION; YY_BREAK case 80: YY_RULE_SETUP -#line 308 "asn1p_l.l" -return TOK_MAX; +#line 315 "asn1p_l.l" +return TOK_ISO646String; YY_BREAK case 81: YY_RULE_SETUP -#line 309 "asn1p_l.l" -return TOK_MIN; +#line 316 "asn1p_l.l" +return TOK_MAX; YY_BREAK case 82: YY_RULE_SETUP -#line 310 "asn1p_l.l" -return TOK_MINUS_INFINITY; +#line 317 "asn1p_l.l" +return TOK_MIN; YY_BREAK case 83: YY_RULE_SETUP -#line 311 "asn1p_l.l" -return TOK_NULL; +#line 318 "asn1p_l.l" +return TOK_MINUS_INFINITY; YY_BREAK case 84: YY_RULE_SETUP -#line 312 "asn1p_l.l" -return TOK_NumericString; +#line 319 "asn1p_l.l" +return TOK_NULL; YY_BREAK case 85: YY_RULE_SETUP -#line 313 "asn1p_l.l" -return TOK_OBJECT; +#line 320 "asn1p_l.l" +return TOK_NumericString; YY_BREAK case 86: YY_RULE_SETUP -#line 314 "asn1p_l.l" -return TOK_ObjectDescriptor; +#line 321 "asn1p_l.l" +return TOK_OBJECT; YY_BREAK case 87: YY_RULE_SETUP -#line 315 "asn1p_l.l" -return TOK_OCTET; +#line 322 "asn1p_l.l" +return TOK_ObjectDescriptor; YY_BREAK case 88: YY_RULE_SETUP -#line 316 "asn1p_l.l" -return TOK_OF; +#line 323 "asn1p_l.l" +return TOK_OCTET; YY_BREAK case 89: YY_RULE_SETUP -#line 317 "asn1p_l.l" -return TOK_OPTIONAL; +#line 324 "asn1p_l.l" +return TOK_OF; YY_BREAK case 90: YY_RULE_SETUP -#line 318 "asn1p_l.l" -return TOK_PATTERN; +#line 325 "asn1p_l.l" +return TOK_OPTIONAL; YY_BREAK case 91: YY_RULE_SETUP -#line 319 "asn1p_l.l" -return TOK_PDV; +#line 326 "asn1p_l.l" +return TOK_PATTERN; YY_BREAK case 92: YY_RULE_SETUP -#line 320 "asn1p_l.l" -return TOK_PLUS_INFINITY; +#line 327 "asn1p_l.l" +return TOK_PDV; YY_BREAK case 93: YY_RULE_SETUP -#line 321 "asn1p_l.l" -return TOK_PRESENT; +#line 328 "asn1p_l.l" +return TOK_PLUS_INFINITY; YY_BREAK case 94: YY_RULE_SETUP -#line 322 "asn1p_l.l" -return TOK_PrintableString; +#line 329 "asn1p_l.l" +return TOK_PRESENT; YY_BREAK case 95: YY_RULE_SETUP -#line 323 "asn1p_l.l" -return TOK_PRIVATE; +#line 330 "asn1p_l.l" +return TOK_PrintableString; YY_BREAK case 96: YY_RULE_SETUP -#line 324 "asn1p_l.l" -return TOK_REAL; +#line 331 "asn1p_l.l" +return TOK_PRIVATE; YY_BREAK case 97: YY_RULE_SETUP -#line 325 "asn1p_l.l" -return TOK_RELATIVE_OID; +#line 332 "asn1p_l.l" +return TOK_REAL; YY_BREAK case 98: YY_RULE_SETUP -#line 326 "asn1p_l.l" -return TOK_SEQUENCE; +#line 333 "asn1p_l.l" +return TOK_RELATIVE_OID; YY_BREAK case 99: YY_RULE_SETUP -#line 327 "asn1p_l.l" -return TOK_SET; +#line 334 "asn1p_l.l" +return TOK_SEQUENCE; YY_BREAK case 100: YY_RULE_SETUP -#line 328 "asn1p_l.l" -return TOK_SIZE; +#line 335 "asn1p_l.l" +return TOK_SET; YY_BREAK case 101: YY_RULE_SETUP -#line 329 "asn1p_l.l" -return TOK_STRING; +#line 336 "asn1p_l.l" +return TOK_SIZE; YY_BREAK case 102: YY_RULE_SETUP -#line 330 "asn1p_l.l" -return TOK_SYNTAX; +#line 337 "asn1p_l.l" +return TOK_STRING; YY_BREAK case 103: YY_RULE_SETUP -#line 331 "asn1p_l.l" -return TOK_T61String; +#line 338 "asn1p_l.l" +return TOK_SYNTAX; YY_BREAK case 104: YY_RULE_SETUP -#line 332 "asn1p_l.l" -return TOK_TAGS; +#line 339 "asn1p_l.l" +return TOK_T61String; YY_BREAK case 105: YY_RULE_SETUP -#line 333 "asn1p_l.l" -return TOK_TeletexString; +#line 340 "asn1p_l.l" +return TOK_TAGS; YY_BREAK case 106: YY_RULE_SETUP -#line 334 "asn1p_l.l" -return TOK_TRUE; +#line 341 "asn1p_l.l" +return TOK_TeletexString; YY_BREAK case 107: YY_RULE_SETUP -#line 335 "asn1p_l.l" -return TOK_UNION; +#line 342 "asn1p_l.l" +return TOK_TRUE; YY_BREAK case 108: YY_RULE_SETUP -#line 336 "asn1p_l.l" -return TOK_UNIQUE; +#line 343 "asn1p_l.l" +return TOK_UNION; YY_BREAK case 109: YY_RULE_SETUP -#line 337 "asn1p_l.l" -return TOK_UNIVERSAL; +#line 344 "asn1p_l.l" +return TOK_UNIQUE; YY_BREAK case 110: YY_RULE_SETUP -#line 338 "asn1p_l.l" +#line 345 "asn1p_l.l" +return TOK_UNIVERSAL; + YY_BREAK +case 111: +YY_RULE_SETUP +#line 346 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_UniversalString; REJECT; } YY_BREAK -case 111: -YY_RULE_SETUP -#line 343 "asn1p_l.l" -return TOK_UTCTime; - YY_BREAK case 112: YY_RULE_SETUP -#line 344 "asn1p_l.l" +#line 351 "asn1p_l.l" +return TOK_UTCTime; + YY_BREAK +case 113: +YY_RULE_SETUP +#line 352 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_UTF8String; REJECT; } YY_BREAK -case 113: -YY_RULE_SETUP -#line 349 "asn1p_l.l" -return TOK_VideotexString; - YY_BREAK case 114: YY_RULE_SETUP -#line 350 "asn1p_l.l" -return TOK_VisibleString; +#line 357 "asn1p_l.l" +return TOK_VideotexString; YY_BREAK case 115: YY_RULE_SETUP -#line 351 "asn1p_l.l" -return TOK_WITH; +#line 358 "asn1p_l.l" +return TOK_VisibleString; YY_BREAK case 116: YY_RULE_SETUP -#line 354 "asn1p_l.l" +#line 359 "asn1p_l.l" +return TOK_WITH; + YY_BREAK +case 117: +YY_RULE_SETUP +#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,41 +2923,33 @@ 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: -YY_RULE_SETUP -#line 388 "asn1p_l.l" -return TOK_PPEQ; - YY_BREAK case 122: YY_RULE_SETUP -#line 390 "asn1p_l.l" -return TOK_ThreeDots; +#line 396 "asn1p_l.l" +return TOK_PPEQ; YY_BREAK case 123: YY_RULE_SETUP -#line 391 "asn1p_l.l" +#line 398 "asn1p_l.l" +return TOK_ThreeDots; + YY_BREAK +case 124: +YY_RULE_SETUP +#line 399 "asn1p_l.l" return TOK_TwoDots; YY_BREAK -case 124: -YY_RULE_SETUP -#line 395 "asn1p_l.l" -{ - asn1p_lval.tv_str = strdup(yytext); - return TOK_Literal; - } - YY_BREAK case 125: YY_RULE_SETUP -#line 400 "asn1p_l.l" +#line 403 "asn1p_l.l" { asn1p_lval.tv_str = strdup(yytext); return TOK_Literal; @@ -2924,35 +2957,43 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP -#line 405 "asn1p_l.l" +#line 408 "asn1p_l.l" { - yy_push_state(with_syntax); asn1p_lval.tv_str = strdup(yytext); return TOK_Literal; } YY_BREAK case 127: YY_RULE_SETUP -#line 411 "asn1p_l.l" -return '['; +#line 413 "asn1p_l.l" +{ + yy_push_state(with_syntax); + asn1p_lval.tv_str = strdup(yytext); + return TOK_Literal; + } YY_BREAK case 128: YY_RULE_SETUP -#line 412 "asn1p_l.l" -return ']'; +#line 419 "asn1p_l.l" +return '['; YY_BREAK case 129: YY_RULE_SETUP -#line 414 "asn1p_l.l" +#line 420 "asn1p_l.l" +return ']'; + YY_BREAK +case 130: +YY_RULE_SETUP +#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: -YY_RULE_SETUP -#line 433 "asn1p_l.l" -/* Ignore whitespace */ - YY_BREAK case 132: YY_RULE_SETUP -#line 436 "asn1p_l.l" +#line 441 "asn1p_l.l" +/* Ignore whitespace */ + YY_BREAK +case 133: +YY_RULE_SETUP +#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: -YY_RULE_SETUP -#line 505 "asn1p_l.l" -return yytext[0]; - YY_BREAK case 135: YY_RULE_SETUP -#line 507 "asn1p_l.l" +#line 513 "asn1p_l.l" +return yytext[0]; + YY_BREAK +case 136: +YY_RULE_SETUP +#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; +} + diff --git a/libasn1parser/asn1p_l.l b/libasn1parser/asn1p_l.l index 2594b556..33d2a143 100644 --- a/libasn1parser/asn1p_l.l +++ b/libasn1parser/asn1p_l.l @@ -27,6 +27,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. @@ -240,6 +241,13 @@ WSP [\t\r\v\f\n ] return TOK_number; } +[-+]?[0-9]+[.]?([eE][-+]?)?[0-9]+ { + asn1p_lval.a_dbl = _lex_atod(yytext); + if(errno == ERANGE) + return -1; + return TOK_realnumber; + } + ABSENT return TOK_ABSENT; ALL return TOK_ALL; ANY { @@ -564,3 +572,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; +} + diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c index f99d215f..ba23ed2e 100644 --- a/libasn1parser/asn1p_y.c +++ b/libasn1parser/asn1p_y.c @@ -67,100 +67,101 @@ TOK_hstring = 263, TOK_identifier = 264, TOK_number = 265, - TOK_tuple = 266, - TOK_quadruple = 267, - TOK_number_negative = 268, - TOK_typereference = 269, - TOK_capitalreference = 270, - TOK_typefieldreference = 271, - TOK_valuefieldreference = 272, - TOK_Literal = 273, - TOK_ABSENT = 274, - TOK_ABSTRACT_SYNTAX = 275, - TOK_ALL = 276, - TOK_ANY = 277, - TOK_APPLICATION = 278, - TOK_AUTOMATIC = 279, - TOK_BEGIN = 280, - TOK_BIT = 281, - TOK_BMPString = 282, - TOK_BOOLEAN = 283, - TOK_BY = 284, - TOK_CHARACTER = 285, - TOK_CHOICE = 286, - TOK_CLASS = 287, - TOK_COMPONENT = 288, - TOK_COMPONENTS = 289, - TOK_CONSTRAINED = 290, - TOK_CONTAINING = 291, - TOK_DEFAULT = 292, - TOK_DEFINITIONS = 293, - TOK_DEFINED = 294, - TOK_EMBEDDED = 295, - TOK_ENCODED = 296, - TOK_ENCODING_CONTROL = 297, - TOK_END = 298, - TOK_ENUMERATED = 299, - TOK_EXPLICIT = 300, - TOK_EXPORTS = 301, - TOK_EXTENSIBILITY = 302, - TOK_EXTERNAL = 303, - TOK_FALSE = 304, - TOK_FROM = 305, - TOK_GeneralizedTime = 306, - TOK_GeneralString = 307, - TOK_GraphicString = 308, - TOK_IA5String = 309, - TOK_IDENTIFIER = 310, - TOK_IMPLICIT = 311, - TOK_IMPLIED = 312, - TOK_IMPORTS = 313, - TOK_INCLUDES = 314, - TOK_INSTANCE = 315, - TOK_INSTRUCTIONS = 316, - TOK_INTEGER = 317, - TOK_ISO646String = 318, - TOK_MAX = 319, - TOK_MIN = 320, - TOK_MINUS_INFINITY = 321, - TOK_NULL = 322, - TOK_NumericString = 323, - TOK_OBJECT = 324, - TOK_ObjectDescriptor = 325, - TOK_OCTET = 326, - TOK_OF = 327, - TOK_OPTIONAL = 328, - TOK_PATTERN = 329, - TOK_PDV = 330, - TOK_PLUS_INFINITY = 331, - TOK_PRESENT = 332, - TOK_PrintableString = 333, - TOK_PRIVATE = 334, - TOK_REAL = 335, - TOK_RELATIVE_OID = 336, - TOK_SEQUENCE = 337, - TOK_SET = 338, - TOK_SIZE = 339, - TOK_STRING = 340, - TOK_SYNTAX = 341, - TOK_T61String = 342, - TOK_TAGS = 343, - TOK_TeletexString = 344, - TOK_TRUE = 345, - TOK_TYPE_IDENTIFIER = 346, - TOK_UNIQUE = 347, - TOK_UNIVERSAL = 348, - TOK_UniversalString = 349, - TOK_UTCTime = 350, - TOK_UTF8String = 351, - TOK_VideotexString = 352, - TOK_VisibleString = 353, - TOK_WITH = 354, - TOK_EXCEPT = 355, - TOK_INTERSECTION = 356, - TOK_UNION = 357, - TOK_TwoDots = 358, - TOK_ThreeDots = 359 + TOK_number_negative = 266, + TOK_realnumber = 267, + TOK_tuple = 268, + TOK_quadruple = 269, + TOK_typereference = 270, + TOK_capitalreference = 271, + TOK_typefieldreference = 272, + TOK_valuefieldreference = 273, + TOK_Literal = 274, + TOK_ABSENT = 275, + TOK_ABSTRACT_SYNTAX = 276, + TOK_ALL = 277, + TOK_ANY = 278, + TOK_APPLICATION = 279, + TOK_AUTOMATIC = 280, + TOK_BEGIN = 281, + TOK_BIT = 282, + TOK_BMPString = 283, + TOK_BOOLEAN = 284, + TOK_BY = 285, + TOK_CHARACTER = 286, + TOK_CHOICE = 287, + TOK_CLASS = 288, + TOK_COMPONENT = 289, + TOK_COMPONENTS = 290, + TOK_CONSTRAINED = 291, + TOK_CONTAINING = 292, + TOK_DEFAULT = 293, + TOK_DEFINITIONS = 294, + TOK_DEFINED = 295, + TOK_EMBEDDED = 296, + TOK_ENCODED = 297, + TOK_ENCODING_CONTROL = 298, + TOK_END = 299, + TOK_ENUMERATED = 300, + TOK_EXPLICIT = 301, + TOK_EXPORTS = 302, + TOK_EXTENSIBILITY = 303, + TOK_EXTERNAL = 304, + TOK_FALSE = 305, + TOK_FROM = 306, + TOK_GeneralizedTime = 307, + TOK_GeneralString = 308, + TOK_GraphicString = 309, + TOK_IA5String = 310, + TOK_IDENTIFIER = 311, + TOK_IMPLICIT = 312, + TOK_IMPLIED = 313, + TOK_IMPORTS = 314, + TOK_INCLUDES = 315, + TOK_INSTANCE = 316, + TOK_INSTRUCTIONS = 317, + TOK_INTEGER = 318, + TOK_ISO646String = 319, + TOK_MAX = 320, + TOK_MIN = 321, + TOK_MINUS_INFINITY = 322, + TOK_NULL = 323, + TOK_NumericString = 324, + TOK_OBJECT = 325, + TOK_ObjectDescriptor = 326, + TOK_OCTET = 327, + TOK_OF = 328, + TOK_OPTIONAL = 329, + TOK_PATTERN = 330, + TOK_PDV = 331, + TOK_PLUS_INFINITY = 332, + TOK_PRESENT = 333, + TOK_PrintableString = 334, + TOK_PRIVATE = 335, + TOK_REAL = 336, + TOK_RELATIVE_OID = 337, + TOK_SEQUENCE = 338, + TOK_SET = 339, + TOK_SIZE = 340, + TOK_STRING = 341, + TOK_SYNTAX = 342, + TOK_T61String = 343, + TOK_TAGS = 344, + TOK_TeletexString = 345, + TOK_TRUE = 346, + TOK_TYPE_IDENTIFIER = 347, + TOK_UNIQUE = 348, + TOK_UNIVERSAL = 349, + TOK_UniversalString = 350, + TOK_UTCTime = 351, + TOK_UTF8String = 352, + TOK_VideotexString = 353, + TOK_VisibleString = 354, + TOK_WITH = 355, + TOK_EXCEPT = 356, + TOK_INTERSECTION = 357, + TOK_UNION = 358, + TOK_TwoDots = 359, + TOK_ThreeDots = 360 }; #endif #define TOK_PPEQ 258 @@ -171,100 +172,101 @@ #define TOK_hstring 263 #define TOK_identifier 264 #define TOK_number 265 -#define TOK_tuple 266 -#define TOK_quadruple 267 -#define TOK_number_negative 268 -#define TOK_typereference 269 -#define TOK_capitalreference 270 -#define TOK_typefieldreference 271 -#define TOK_valuefieldreference 272 -#define TOK_Literal 273 -#define TOK_ABSENT 274 -#define TOK_ABSTRACT_SYNTAX 275 -#define TOK_ALL 276 -#define TOK_ANY 277 -#define TOK_APPLICATION 278 -#define TOK_AUTOMATIC 279 -#define TOK_BEGIN 280 -#define TOK_BIT 281 -#define TOK_BMPString 282 -#define TOK_BOOLEAN 283 -#define TOK_BY 284 -#define TOK_CHARACTER 285 -#define TOK_CHOICE 286 -#define TOK_CLASS 287 -#define TOK_COMPONENT 288 -#define TOK_COMPONENTS 289 -#define TOK_CONSTRAINED 290 -#define TOK_CONTAINING 291 -#define TOK_DEFAULT 292 -#define TOK_DEFINITIONS 293 -#define TOK_DEFINED 294 -#define TOK_EMBEDDED 295 -#define TOK_ENCODED 296 -#define TOK_ENCODING_CONTROL 297 -#define TOK_END 298 -#define TOK_ENUMERATED 299 -#define TOK_EXPLICIT 300 -#define TOK_EXPORTS 301 -#define TOK_EXTENSIBILITY 302 -#define TOK_EXTERNAL 303 -#define TOK_FALSE 304 -#define TOK_FROM 305 -#define TOK_GeneralizedTime 306 -#define TOK_GeneralString 307 -#define TOK_GraphicString 308 -#define TOK_IA5String 309 -#define TOK_IDENTIFIER 310 -#define TOK_IMPLICIT 311 -#define TOK_IMPLIED 312 -#define TOK_IMPORTS 313 -#define TOK_INCLUDES 314 -#define TOK_INSTANCE 315 -#define TOK_INSTRUCTIONS 316 -#define TOK_INTEGER 317 -#define TOK_ISO646String 318 -#define TOK_MAX 319 -#define TOK_MIN 320 -#define TOK_MINUS_INFINITY 321 -#define TOK_NULL 322 -#define TOK_NumericString 323 -#define TOK_OBJECT 324 -#define TOK_ObjectDescriptor 325 -#define TOK_OCTET 326 -#define TOK_OF 327 -#define TOK_OPTIONAL 328 -#define TOK_PATTERN 329 -#define TOK_PDV 330 -#define TOK_PLUS_INFINITY 331 -#define TOK_PRESENT 332 -#define TOK_PrintableString 333 -#define TOK_PRIVATE 334 -#define TOK_REAL 335 -#define TOK_RELATIVE_OID 336 -#define TOK_SEQUENCE 337 -#define TOK_SET 338 -#define TOK_SIZE 339 -#define TOK_STRING 340 -#define TOK_SYNTAX 341 -#define TOK_T61String 342 -#define TOK_TAGS 343 -#define TOK_TeletexString 344 -#define TOK_TRUE 345 -#define TOK_TYPE_IDENTIFIER 346 -#define TOK_UNIQUE 347 -#define TOK_UNIVERSAL 348 -#define TOK_UniversalString 349 -#define TOK_UTCTime 350 -#define TOK_UTF8String 351 -#define TOK_VideotexString 352 -#define TOK_VisibleString 353 -#define TOK_WITH 354 -#define TOK_EXCEPT 355 -#define TOK_INTERSECTION 356 -#define TOK_UNION 357 -#define TOK_TwoDots 358 -#define TOK_ThreeDots 359 +#define TOK_number_negative 266 +#define TOK_realnumber 267 +#define TOK_tuple 268 +#define TOK_quadruple 269 +#define TOK_typereference 270 +#define TOK_capitalreference 271 +#define TOK_typefieldreference 272 +#define TOK_valuefieldreference 273 +#define TOK_Literal 274 +#define TOK_ABSENT 275 +#define TOK_ABSTRACT_SYNTAX 276 +#define TOK_ALL 277 +#define TOK_ANY 278 +#define TOK_APPLICATION 279 +#define TOK_AUTOMATIC 280 +#define TOK_BEGIN 281 +#define TOK_BIT 282 +#define TOK_BMPString 283 +#define TOK_BOOLEAN 284 +#define TOK_BY 285 +#define TOK_CHARACTER 286 +#define TOK_CHOICE 287 +#define TOK_CLASS 288 +#define TOK_COMPONENT 289 +#define TOK_COMPONENTS 290 +#define TOK_CONSTRAINED 291 +#define TOK_CONTAINING 292 +#define TOK_DEFAULT 293 +#define TOK_DEFINITIONS 294 +#define TOK_DEFINED 295 +#define TOK_EMBEDDED 296 +#define TOK_ENCODED 297 +#define TOK_ENCODING_CONTROL 298 +#define TOK_END 299 +#define TOK_ENUMERATED 300 +#define TOK_EXPLICIT 301 +#define TOK_EXPORTS 302 +#define TOK_EXTENSIBILITY 303 +#define TOK_EXTERNAL 304 +#define TOK_FALSE 305 +#define TOK_FROM 306 +#define TOK_GeneralizedTime 307 +#define TOK_GeneralString 308 +#define TOK_GraphicString 309 +#define TOK_IA5String 310 +#define TOK_IDENTIFIER 311 +#define TOK_IMPLICIT 312 +#define TOK_IMPLIED 313 +#define TOK_IMPORTS 314 +#define TOK_INCLUDES 315 +#define TOK_INSTANCE 316 +#define TOK_INSTRUCTIONS 317 +#define TOK_INTEGER 318 +#define TOK_ISO646String 319 +#define TOK_MAX 320 +#define TOK_MIN 321 +#define TOK_MINUS_INFINITY 322 +#define TOK_NULL 323 +#define TOK_NumericString 324 +#define TOK_OBJECT 325 +#define TOK_ObjectDescriptor 326 +#define TOK_OCTET 327 +#define TOK_OF 328 +#define TOK_OPTIONAL 329 +#define TOK_PATTERN 330 +#define TOK_PDV 331 +#define TOK_PLUS_INFINITY 332 +#define TOK_PRESENT 333 +#define TOK_PrintableString 334 +#define TOK_PRIVATE 335 +#define TOK_REAL 336 +#define TOK_RELATIVE_OID 337 +#define TOK_SEQUENCE 338 +#define TOK_SET 339 +#define TOK_SIZE 340 +#define TOK_STRING 341 +#define TOK_SYNTAX 342 +#define TOK_T61String 343 +#define TOK_TAGS 344 +#define TOK_TeletexString 345 +#define TOK_TRUE 346 +#define TOK_TYPE_IDENTIFIER 347 +#define TOK_UNIQUE 348 +#define TOK_UNIVERSAL 349 +#define TOK_UniversalString 350 +#define TOK_UTCTime 351 +#define TOK_UTF8String 352 +#define TOK_VideotexString 353 +#define TOK_VisibleString 354 +#define TOK_WITH 355 +#define TOK_EXCEPT 356 +#define TOK_INTERSECTION 357 +#define TOK_UNION 358 +#define TOK_TwoDots 359 +#define TOK_ThreeDots 360 @@ -374,6 +376,7 @@ typedef union { struct asn1p_expr_marker_s a_marker; /* OPTIONAL/DEFAULT */ enum asn1p_constr_pres_e a_pres; /* PRESENT/ABSENT/OPTIONAL */ asn1c_integer_t a_int; + double a_dbl; char *tv_str; struct { char *buf; @@ -385,7 +388,7 @@ typedef union { } tv_nametag; } yystype; /* Line 193 of /usr/local/share/bison/yacc.c. */ -#line 389 "asn1p_y.c" +#line 392 "asn1p_y.c" # define YYSTYPE yystype # define YYSTYPE_IS_TRIVIAL 1 #endif @@ -406,7 +409,7 @@ typedef struct yyltype /* Line 213 of /usr/local/share/bison/yacc.c. */ -#line 410 "asn1p_y.c" +#line 413 "asn1p_y.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -504,20 +507,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 7 -#define YYLAST 838 +#define YYLAST 803 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 120 +#define YYNTOKENS 121 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 108 +#define YYNNTS 109 /* YYNRULES -- Number of rules. */ -#define YYNRULES 291 +#define YYNRULES 293 /* YYNRULES -- Number of states. */ -#define YYNSTATES 448 +#define YYNSTATES 450 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 359 +#define YYMAXUTOK 360 #define YYTRANSLATE(X) \ ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK) @@ -528,16 +531,16 @@ static const unsigned char yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 116, 2, 2, 2, 2, 2, 2, - 109, 110, 2, 2, 112, 2, 117, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 113, 111, - 118, 2, 2, 2, 119, 2, 2, 2, 2, 2, + 2, 2, 2, 117, 2, 2, 2, 2, 2, 2, + 110, 111, 2, 2, 113, 2, 118, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 114, 112, + 119, 2, 2, 2, 120, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 114, 2, 115, 101, 2, 2, 2, 2, 2, + 2, 115, 2, 116, 102, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 107, 103, 108, 2, 2, 2, 2, + 2, 2, 2, 108, 104, 109, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -560,7 +563,8 @@ static const unsigned char yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 102, 104, 105, 106 + 95, 96, 97, 98, 99, 100, 101, 103, 105, 106, + 107 }; #if YYDEBUG @@ -595,132 +599,132 @@ static const unsigned short yyprhs[] = 688, 694, 696, 700, 702, 706, 707, 709, 711, 713, 715, 717, 719, 723, 728, 730, 734, 737, 741, 743, 747, 748, 750, 752, 755, 758, 762, 764, 768, 770, - 775, 780, 782, 784, 786, 788, 789, 791, 794, 799, - 800, 802, 804, 806, 807, 809, 811, 813, 815, 817, - 818, 820 + 775, 780, 782, 784, 786, 788, 790, 792, 793, 795, + 798, 803, 804, 806, 808, 810, 811, 813, 815, 817, + 819, 821, 822, 824 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short yyrhs[] = { - 121, 0, -1, 122, -1, 123, -1, 122, 123, -1, - 224, 124, 38, 128, 3, 25, 131, 43, -1, -1, - 125, -1, 107, 126, 108, -1, 107, 108, -1, 127, - -1, 126, 127, -1, 227, -1, 227, 109, 10, 110, - -1, 10, -1, -1, 129, -1, 130, -1, 129, 130, - -1, 45, 88, -1, 56, 88, -1, 24, 88, -1, - 47, 57, -1, 15, 61, -1, -1, 132, -1, 133, - -1, 132, 133, -1, 135, -1, 141, -1, 147, -1, - 177, -1, 145, -1, -1, 42, 15, 134, -1, 187, - -1, 58, 136, 111, -1, 58, 50, -1, 138, -1, - 136, 138, -1, -1, 125, -1, 139, 50, 224, 137, - -1, 140, -1, 139, 112, 140, -1, 224, -1, 224, - 107, 108, -1, 227, -1, 46, 142, 111, -1, 46, - 21, 111, -1, 46, 111, -1, 143, -1, 142, 112, - 143, -1, 224, -1, 224, 107, 108, -1, 227, -1, - 107, 194, 108, -1, 224, 146, 3, 144, -1, 186, - -1, 171, -1, 171, 107, 150, 108, -1, 224, 3, - 167, -1, 224, 3, 157, -1, 224, 107, 148, 108, - 3, 167, -1, 224, 107, 148, 108, 3, 157, -1, - 149, -1, 148, 112, 149, -1, 224, -1, 224, 113, - 227, -1, 224, 113, 224, -1, 184, 113, 227, -1, - 184, 113, 224, -1, 151, -1, 150, 112, 151, -1, - 167, -1, 180, -1, 227, -1, 144, -1, -1, 153, - -1, 154, -1, 153, 112, 154, -1, 227, 167, 213, - -1, 167, 213, -1, 34, 72, 167, -1, 166, -1, - 156, -1, 155, 112, 156, -1, 227, 167, -1, 166, - -1, 167, -1, 32, 107, 159, 108, 161, -1, -1, - 92, -1, 160, -1, 159, 112, 160, -1, 16, 213, - -1, 17, 167, 158, 213, -1, 17, 175, 213, -1, - 17, 176, 213, -1, 16, 175, 213, -1, 16, 167, - 213, -1, 16, 176, 213, -1, -1, 162, -1, -1, - 99, 86, 107, 163, 164, 108, -1, 165, -1, 164, - 165, -1, 4, -1, 18, -1, 174, -1, 114, 164, - 115, -1, 106, -1, 106, 116, 181, -1, 106, 116, - 218, -1, 219, 169, 191, -1, -1, 168, 170, -1, - 146, -1, 31, 107, 155, 108, -1, 82, 107, 152, - 108, -1, 83, 107, 152, 108, -1, 82, 191, 72, - 226, 219, 169, -1, 83, 191, 72, 226, 219, 169, - -1, 22, -1, 22, 39, 29, 227, -1, 60, 72, - 171, -1, 14, -1, 14, 117, 224, -1, 225, 117, - 224, -1, 14, 117, 227, -1, 225, -1, 225, 117, - 172, -1, 173, -1, 172, 117, 173, -1, 174, -1, - 16, -1, 17, -1, 16, -1, 175, 117, 16, -1, - 175, 117, 17, -1, 15, -1, 227, 146, 3, 178, - -1, 180, -1, 181, -1, 227, 113, 178, -1, -1, - 107, 179, 183, -1, 67, -1, 49, -1, 90, -1, - 6, -1, 8, -1, 182, -1, 218, -1, 227, -1, - 224, 117, 227, -1, 7, -1, 11, -1, 12, -1, - 5, -1, 183, 5, -1, 28, -1, 67, -1, 80, - -1, 185, -1, 71, 85, -1, 69, 55, -1, 81, - -1, 48, -1, 40, 75, -1, 30, 85, -1, 95, - -1, 51, -1, 187, -1, 62, -1, 44, -1, 26, - 85, -1, 184, -1, 185, 215, -1, 27, -1, 52, - -1, 53, -1, 54, -1, 63, -1, 68, -1, 78, - -1, 87, -1, 89, -1, 94, -1, 96, -1, 97, - -1, 98, -1, 70, -1, 103, -1, 104, -1, 101, - -1, 102, -1, 100, -1, -1, 192, -1, 193, -1, - 84, 109, 194, 110, -1, 109, 194, 110, -1, 193, - 109, 194, 110, -1, 106, -1, 195, -1, 195, 112, - 106, -1, 195, 112, 106, 112, 195, -1, 196, -1, - 21, 100, 196, -1, 195, 188, 196, -1, 195, 189, - 196, -1, 196, 190, 196, -1, 199, 109, 194, 110, - -1, 109, 194, 110, -1, 200, -1, 201, -1, 200, - 198, 200, -1, 65, 198, 200, -1, 200, 198, 64, - -1, 65, 198, 64, -1, 207, -1, 202, -1, -1, - 35, 29, 107, 197, 183, -1, 105, -1, 105, 118, - -1, 118, 105, -1, 118, 105, 118, -1, 84, -1, - 50, -1, 49, -1, 90, -1, 218, -1, 182, -1, - 227, -1, 224, -1, 99, 33, 193, -1, 99, 34, - 107, 203, 108, -1, 204, -1, 203, 112, 204, -1, - 106, -1, 227, 191, 205, -1, -1, 206, -1, 77, - -1, 19, -1, 73, -1, 208, -1, 209, -1, 107, - 224, 108, -1, 208, 107, 210, 108, -1, 211, -1, - 210, 112, 211, -1, 119, 212, -1, 119, 117, 212, - -1, 227, -1, 212, 117, 227, -1, -1, 214, -1, - 73, -1, 37, 178, -1, 107, 108, -1, 107, 216, - 108, -1, 217, -1, 216, 112, 217, -1, 227, -1, - 227, 109, 218, 110, -1, 227, 109, 181, 110, -1, - 218, -1, 106, -1, 10, -1, 13, -1, -1, 220, - -1, 221, 223, -1, 114, 222, 10, 115, -1, -1, - 93, -1, 23, -1, 79, -1, -1, 56, -1, 45, - -1, 14, -1, 15, -1, 15, -1, -1, 227, -1, - 9, -1 + 122, 0, -1, 123, -1, 124, -1, 123, 124, -1, + 226, 125, 39, 129, 3, 26, 132, 44, -1, -1, + 126, -1, 108, 127, 109, -1, 108, 109, -1, 128, + -1, 127, 128, -1, 229, -1, 229, 110, 10, 111, + -1, 10, -1, -1, 130, -1, 131, -1, 130, 131, + -1, 46, 89, -1, 57, 89, -1, 25, 89, -1, + 48, 58, -1, 16, 62, -1, -1, 133, -1, 134, + -1, 133, 134, -1, 136, -1, 142, -1, 148, -1, + 178, -1, 146, -1, -1, 43, 16, 135, -1, 188, + -1, 59, 137, 112, -1, 59, 51, -1, 139, -1, + 137, 139, -1, -1, 126, -1, 140, 51, 226, 138, + -1, 141, -1, 140, 113, 141, -1, 226, -1, 226, + 108, 109, -1, 229, -1, 47, 143, 112, -1, 47, + 22, 112, -1, 47, 112, -1, 144, -1, 143, 113, + 144, -1, 226, -1, 226, 108, 109, -1, 229, -1, + 108, 195, 109, -1, 226, 147, 3, 145, -1, 187, + -1, 172, -1, 172, 108, 151, 109, -1, 226, 3, + 168, -1, 226, 3, 158, -1, 226, 108, 149, 109, + 3, 168, -1, 226, 108, 149, 109, 3, 158, -1, + 150, -1, 149, 113, 150, -1, 226, -1, 226, 114, + 229, -1, 226, 114, 226, -1, 185, 114, 229, -1, + 185, 114, 226, -1, 152, -1, 151, 113, 152, -1, + 168, -1, 181, -1, 229, -1, 145, -1, -1, 154, + -1, 155, -1, 154, 113, 155, -1, 229, 168, 214, + -1, 168, 214, -1, 35, 73, 168, -1, 167, -1, + 157, -1, 156, 113, 157, -1, 229, 168, -1, 167, + -1, 168, -1, 33, 108, 160, 109, 162, -1, -1, + 93, -1, 161, -1, 160, 113, 161, -1, 17, 214, + -1, 18, 168, 159, 214, -1, 18, 176, 214, -1, + 18, 177, 214, -1, 17, 176, 214, -1, 17, 168, + 214, -1, 17, 177, 214, -1, -1, 163, -1, -1, + 100, 87, 108, 164, 165, 109, -1, 166, -1, 165, + 166, -1, 4, -1, 19, -1, 175, -1, 115, 165, + 116, -1, 107, -1, 107, 117, 182, -1, 107, 117, + 219, -1, 221, 170, 192, -1, -1, 169, 171, -1, + 147, -1, 32, 108, 156, 109, -1, 83, 108, 153, + 109, -1, 84, 108, 153, 109, -1, 83, 192, 73, + 228, 221, 170, -1, 84, 192, 73, 228, 221, 170, + -1, 23, -1, 23, 40, 30, 229, -1, 61, 73, + 172, -1, 15, -1, 15, 118, 226, -1, 227, 118, + 226, -1, 15, 118, 229, -1, 227, -1, 227, 118, + 173, -1, 174, -1, 173, 118, 174, -1, 175, -1, + 17, -1, 18, -1, 17, -1, 176, 118, 17, -1, + 176, 118, 18, -1, 16, -1, 229, 147, 3, 179, + -1, 181, -1, 182, -1, 229, 114, 179, -1, -1, + 108, 180, 184, -1, 68, -1, 50, -1, 91, -1, + 6, -1, 8, -1, 183, -1, 219, -1, 229, -1, + 226, 118, 229, -1, 7, -1, 13, -1, 14, -1, + 5, -1, 184, 5, -1, 29, -1, 68, -1, 81, + -1, 186, -1, 72, 86, -1, 70, 56, -1, 82, + -1, 49, -1, 41, 76, -1, 31, 86, -1, 96, + -1, 52, -1, 188, -1, 63, -1, 45, -1, 27, + 86, -1, 185, -1, 186, 216, -1, 28, -1, 53, + -1, 54, -1, 55, -1, 64, -1, 69, -1, 79, + -1, 88, -1, 90, -1, 95, -1, 97, -1, 98, + -1, 99, -1, 71, -1, 104, -1, 105, -1, 102, + -1, 103, -1, 101, -1, -1, 193, -1, 194, -1, + 85, 110, 195, 111, -1, 110, 195, 111, -1, 194, + 110, 195, 111, -1, 107, -1, 196, -1, 196, 113, + 107, -1, 196, 113, 107, 113, 196, -1, 197, -1, + 22, 101, 197, -1, 196, 189, 197, -1, 196, 190, + 197, -1, 197, 191, 197, -1, 200, 110, 195, 111, + -1, 110, 195, 111, -1, 201, -1, 202, -1, 201, + 199, 201, -1, 66, 199, 201, -1, 201, 199, 65, + -1, 66, 199, 65, -1, 208, -1, 203, -1, -1, + 36, 30, 108, 198, 184, -1, 106, -1, 106, 119, + -1, 119, 106, -1, 119, 106, 119, -1, 85, -1, + 51, -1, 50, -1, 91, -1, 220, -1, 183, -1, + 229, -1, 226, -1, 100, 34, 194, -1, 100, 35, + 108, 204, 109, -1, 205, -1, 204, 113, 205, -1, + 107, -1, 229, 192, 206, -1, -1, 207, -1, 78, + -1, 20, -1, 74, -1, 209, -1, 210, -1, 108, + 226, 109, -1, 209, 108, 211, 109, -1, 212, -1, + 211, 113, 212, -1, 120, 213, -1, 120, 118, 213, + -1, 229, -1, 213, 118, 229, -1, -1, 215, -1, + 74, -1, 38, 179, -1, 108, 109, -1, 108, 217, + 109, -1, 218, -1, 217, 113, 218, -1, 229, -1, + 229, 110, 219, 111, -1, 229, 110, 182, 111, -1, + 219, -1, 107, -1, 10, -1, 11, -1, 219, -1, + 12, -1, -1, 222, -1, 223, 225, -1, 115, 224, + 10, 116, -1, -1, 94, -1, 24, -1, 80, -1, + -1, 57, -1, 46, -1, 15, -1, 16, -1, 16, + -1, -1, 229, -1, 9, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { - 0, 323, 323, 329, 335, 351, 376, 378, 381, 385, - 390, 397, 405, 410, 414, 423, 425, 433, 437, 445, - 449, 452, 455, 459, 479, 481, 489, 493, 525, 529, - 538, 545, 558, 566, 565, 579, 591, 602, 607, 613, - 619, 621, 624, 635, 641, 647, 654, 660, 668, 672, - 675, 682, 688, 694, 701, 707, 716, 718, 728, 742, - 752, 768, 778, 794, 800, 807, 817, 827, 832, 839, - 846, 854, 864, 870, 876, 880, 888, 899, 921, 923, - 925, 931, 937, 945, 951, 958, 963, 969, 975, 981, - 984, 990, 1000, 1002, 1005, 1013, 1020, 1033, 1044, 1054, - 1065, 1075, 1086, 1097, 1099, 1106, 1104, 1113, 1118, 1124, - 1129, 1132, 1136, 1141, 1150, 1159, 1170, 1192, 1199, 1218, - 1222, 1228, 1234, 1240, 1250, 1260, 1266, 1277, 1291, 1300, - 1310, 1320, 1330, 1338, 1359, 1368, 1377, 1379, 1386, 1393, - 1399, 1403, 1409, 1429, 1439, 1441, 1442, 1449, 1449, 1454, - 1461, 1467, 1472, 1476, 1480, 1483, 1488, 1500, 1517, 1522, - 1527, 1560, 1570, 1584, 1586, 1587, 1588, 1589, 1590, 1591, - 1592, 1593, 1594, 1595, 1596, 1597, 1603, 1605, 1606, 1609, - 1616, 1628, 1630, 1634, 1638, 1639, 1640, 1641, 1642, 1646, - 1647, 1648, 1649, 1653, 1654, 1661, 1661, 1662, 1662, 1663, - 1665, 1667, 1672, 1676, 1685, 1689, 1694, 1699, 1702, 1708, - 1718, 1722, 1725, 1728, 1731, 1736, 1745, 1753, 1759, 1765, - 1772, 1780, 1788, 1797, 1800, 1804, 1803, 1814, 1816, 1817, - 1818, 1821, 1825, 1830, 1836, 1841, 1844, 1847, 1860, 1874, - 1878, 1883, 1887, 1892, 1899, 1912, 1914, 1917, 1921, 1924, - 1929, 1933, 1941, 1956, 1962, 1969, 1982, 1994, 2009, 2013, - 2030, 2035, 2038, 2043, 2065, 2070, 2075, 2081, 2087, 2095, - 2103, 2111, 2118, 2128, 2133, 2163, 2165, 2168, 2175, 2181, - 2183, 2184, 2185, 2188, 2190, 2191, 2194, 2199, 2206, 2213, - 2215, 2220 + 0, 326, 326, 332, 338, 354, 379, 381, 384, 388, + 393, 400, 408, 413, 417, 426, 428, 436, 440, 448, + 452, 455, 458, 462, 482, 484, 492, 496, 528, 532, + 541, 548, 561, 569, 568, 582, 594, 605, 610, 616, + 622, 624, 627, 638, 644, 650, 657, 663, 671, 675, + 678, 685, 691, 697, 704, 710, 719, 721, 731, 745, + 755, 771, 781, 797, 803, 810, 820, 830, 835, 842, + 849, 857, 867, 873, 879, 883, 891, 902, 924, 926, + 928, 934, 940, 948, 954, 961, 966, 972, 978, 984, + 987, 993, 1003, 1005, 1008, 1016, 1023, 1036, 1047, 1057, + 1068, 1078, 1089, 1100, 1102, 1109, 1107, 1116, 1121, 1127, + 1132, 1135, 1139, 1144, 1153, 1162, 1173, 1195, 1202, 1221, + 1225, 1231, 1237, 1243, 1253, 1263, 1269, 1280, 1294, 1303, + 1313, 1323, 1333, 1341, 1362, 1371, 1380, 1382, 1389, 1396, + 1402, 1406, 1412, 1432, 1442, 1444, 1445, 1452, 1452, 1457, + 1464, 1470, 1475, 1479, 1483, 1486, 1491, 1503, 1520, 1525, + 1530, 1563, 1573, 1587, 1589, 1590, 1591, 1592, 1593, 1594, + 1595, 1596, 1597, 1598, 1599, 1600, 1606, 1608, 1609, 1612, + 1619, 1631, 1633, 1637, 1641, 1642, 1643, 1644, 1645, 1649, + 1650, 1651, 1652, 1656, 1657, 1664, 1664, 1665, 1665, 1666, + 1668, 1670, 1675, 1679, 1688, 1692, 1697, 1702, 1705, 1711, + 1721, 1725, 1728, 1731, 1734, 1739, 1748, 1756, 1762, 1768, + 1775, 1783, 1791, 1800, 1803, 1807, 1806, 1817, 1819, 1820, + 1821, 1824, 1828, 1833, 1839, 1844, 1845, 1846, 1859, 1873, + 1877, 1882, 1886, 1891, 1898, 1911, 1913, 1916, 1920, 1923, + 1928, 1932, 1940, 1955, 1961, 1968, 1981, 1993, 2008, 2012, + 2029, 2034, 2037, 2042, 2064, 2069, 2074, 2080, 2086, 2094, + 2102, 2110, 2117, 2127, 2132, 2138, 2140, 2170, 2172, 2175, + 2182, 2188, 2190, 2191, 2192, 2195, 2197, 2198, 2201, 2206, + 2213, 2220, 2222, 2227 }; #endif @@ -731,46 +735,47 @@ static const char *const yytname[] = { "$end", "error", "$undefined", "TOK_PPEQ", "TOK_whitespace", "TOK_opaque", "TOK_bstring", "TOK_cstring", "TOK_hstring", "TOK_identifier", - "TOK_number", "TOK_tuple", "TOK_quadruple", "TOK_number_negative", - "TOK_typereference", "TOK_capitalreference", "TOK_typefieldreference", - "TOK_valuefieldreference", "TOK_Literal", "TOK_ABSENT", - "TOK_ABSTRACT_SYNTAX", "TOK_ALL", "TOK_ANY", "TOK_APPLICATION", - "TOK_AUTOMATIC", "TOK_BEGIN", "TOK_BIT", "TOK_BMPString", "TOK_BOOLEAN", - "TOK_BY", "TOK_CHARACTER", "TOK_CHOICE", "TOK_CLASS", "TOK_COMPONENT", - "TOK_COMPONENTS", "TOK_CONSTRAINED", "TOK_CONTAINING", "TOK_DEFAULT", - "TOK_DEFINITIONS", "TOK_DEFINED", "TOK_EMBEDDED", "TOK_ENCODED", - "TOK_ENCODING_CONTROL", "TOK_END", "TOK_ENUMERATED", "TOK_EXPLICIT", - "TOK_EXPORTS", "TOK_EXTENSIBILITY", "TOK_EXTERNAL", "TOK_FALSE", - "TOK_FROM", "TOK_GeneralizedTime", "TOK_GeneralString", - "TOK_GraphicString", "TOK_IA5String", "TOK_IDENTIFIER", "TOK_IMPLICIT", - "TOK_IMPLIED", "TOK_IMPORTS", "TOK_INCLUDES", "TOK_INSTANCE", - "TOK_INSTRUCTIONS", "TOK_INTEGER", "TOK_ISO646String", "TOK_MAX", - "TOK_MIN", "TOK_MINUS_INFINITY", "TOK_NULL", "TOK_NumericString", - "TOK_OBJECT", "TOK_ObjectDescriptor", "TOK_OCTET", "TOK_OF", - "TOK_OPTIONAL", "TOK_PATTERN", "TOK_PDV", "TOK_PLUS_INFINITY", - "TOK_PRESENT", "TOK_PrintableString", "TOK_PRIVATE", "TOK_REAL", - "TOK_RELATIVE_OID", "TOK_SEQUENCE", "TOK_SET", "TOK_SIZE", "TOK_STRING", - "TOK_SYNTAX", "TOK_T61String", "TOK_TAGS", "TOK_TeletexString", - "TOK_TRUE", "TOK_TYPE_IDENTIFIER", "TOK_UNIQUE", "TOK_UNIVERSAL", - "TOK_UniversalString", "TOK_UTCTime", "TOK_UTF8String", - "TOK_VideotexString", "TOK_VisibleString", "TOK_WITH", "TOK_EXCEPT", - "'^'", "TOK_INTERSECTION", "'|'", "TOK_UNION", "TOK_TwoDots", - "TOK_ThreeDots", "'{'", "'}'", "'('", "')'", "';'", "','", "':'", "'['", - "']'", "'!'", "'.'", "'<'", "'@'", "$accept", "ParsedGrammar", - "ModuleList", "ModuleSpecification", "optObjectIdentifier", - "ObjectIdentifier", "ObjectIdentifierBody", "ObjectIdentifierElement", - "optModuleSpecificationFlags", "ModuleSpecificationFlags", - "ModuleSpecificationFlag", "optModuleSpecificationBody", - "ModuleSpecificationBody", "ModuleSpecificationElement", "@1", - "ImportsDefinition", "ImportsBundleSet", "AssignedIdentifier", - "ImportsBundle", "ImportsList", "ImportsElement", "ExportsDefinition", - "ExportsBody", "ExportsElement", "ValueSet", "ValueSetTypeAssignment", - "DefinedType", "DataTypeReference", "ParameterArgumentList", - "ParameterArgumentName", "ActualParameterList", "ActualParameter", - "optComponentTypeLists", "ComponentTypeLists", "ComponentType", - "AlternativeTypeLists", "AlternativeType", "ObjectClass", "optUnique", - "FieldSpec", "ClassField", "optWithSyntax", "WithSyntax", "@2", - "WithSyntaxList", "WithSyntaxToken", "ExtensionAndException", "Type", + "TOK_number", "TOK_number_negative", "TOK_realnumber", "TOK_tuple", + "TOK_quadruple", "TOK_typereference", "TOK_capitalreference", + "TOK_typefieldreference", "TOK_valuefieldreference", "TOK_Literal", + "TOK_ABSENT", "TOK_ABSTRACT_SYNTAX", "TOK_ALL", "TOK_ANY", + "TOK_APPLICATION", "TOK_AUTOMATIC", "TOK_BEGIN", "TOK_BIT", + "TOK_BMPString", "TOK_BOOLEAN", "TOK_BY", "TOK_CHARACTER", "TOK_CHOICE", + "TOK_CLASS", "TOK_COMPONENT", "TOK_COMPONENTS", "TOK_CONSTRAINED", + "TOK_CONTAINING", "TOK_DEFAULT", "TOK_DEFINITIONS", "TOK_DEFINED", + "TOK_EMBEDDED", "TOK_ENCODED", "TOK_ENCODING_CONTROL", "TOK_END", + "TOK_ENUMERATED", "TOK_EXPLICIT", "TOK_EXPORTS", "TOK_EXTENSIBILITY", + "TOK_EXTERNAL", "TOK_FALSE", "TOK_FROM", "TOK_GeneralizedTime", + "TOK_GeneralString", "TOK_GraphicString", "TOK_IA5String", + "TOK_IDENTIFIER", "TOK_IMPLICIT", "TOK_IMPLIED", "TOK_IMPORTS", + "TOK_INCLUDES", "TOK_INSTANCE", "TOK_INSTRUCTIONS", "TOK_INTEGER", + "TOK_ISO646String", "TOK_MAX", "TOK_MIN", "TOK_MINUS_INFINITY", + "TOK_NULL", "TOK_NumericString", "TOK_OBJECT", "TOK_ObjectDescriptor", + "TOK_OCTET", "TOK_OF", "TOK_OPTIONAL", "TOK_PATTERN", "TOK_PDV", + "TOK_PLUS_INFINITY", "TOK_PRESENT", "TOK_PrintableString", + "TOK_PRIVATE", "TOK_REAL", "TOK_RELATIVE_OID", "TOK_SEQUENCE", + "TOK_SET", "TOK_SIZE", "TOK_STRING", "TOK_SYNTAX", "TOK_T61String", + "TOK_TAGS", "TOK_TeletexString", "TOK_TRUE", "TOK_TYPE_IDENTIFIER", + "TOK_UNIQUE", "TOK_UNIVERSAL", "TOK_UniversalString", "TOK_UTCTime", + "TOK_UTF8String", "TOK_VideotexString", "TOK_VisibleString", "TOK_WITH", + "TOK_EXCEPT", "'^'", "TOK_INTERSECTION", "'|'", "TOK_UNION", + "TOK_TwoDots", "TOK_ThreeDots", "'{'", "'}'", "'('", "')'", "';'", + "','", "':'", "'['", "']'", "'!'", "'.'", "'<'", "'@'", "$accept", + "ParsedGrammar", "ModuleList", "ModuleSpecification", + "optObjectIdentifier", "ObjectIdentifier", "ObjectIdentifierBody", + "ObjectIdentifierElement", "optModuleSpecificationFlags", + "ModuleSpecificationFlags", "ModuleSpecificationFlag", + "optModuleSpecificationBody", "ModuleSpecificationBody", + "ModuleSpecificationElement", "@1", "ImportsDefinition", + "ImportsBundleSet", "AssignedIdentifier", "ImportsBundle", + "ImportsList", "ImportsElement", "ExportsDefinition", "ExportsBody", + "ExportsElement", "ValueSet", "ValueSetTypeAssignment", "DefinedType", + "DataTypeReference", "ParameterArgumentList", "ParameterArgumentName", + "ActualParameterList", "ActualParameter", "optComponentTypeLists", + "ComponentTypeLists", "ComponentType", "AlternativeTypeLists", + "AlternativeType", "ObjectClass", "optUnique", "FieldSpec", + "ClassField", "optWithSyntax", "WithSyntax", "@2", "WithSyntaxList", + "WithSyntaxToken", "ExtensionAndException", "Type", "NSTD_IndirectMarker", "TypeDeclaration", "TypeDeclarationSet", "ComplexTypeReference", "ComplexTypeReferenceAmpList", "ComplexTypeReferenceElement", "PrimitiveFieldReference", "FieldName", @@ -786,9 +791,9 @@ static const char *const yytname[] = "SimpleTableConstraint", "ComponentRelationConstraint", "AtNotationList", "AtNotationElement", "ComponentIdList", "optMarker", "Marker", "UniverationDefinition", "UniverationList", - "UniverationElement", "SignedNumber", "optTag", "Tag", "TagTypeValue", - "TagClass", "TagPlicit", "TypeRefName", "ObjectClassReference", - "optIdentifier", "Identifier", 0 + "UniverationElement", "SignedNumber", "RealValue", "optTag", "Tag", + "TagTypeValue", "TagClass", "TagPlicit", "TypeRefName", + "ObjectClassReference", "optIdentifier", "Identifier", 0 }; #endif @@ -807,44 +812,45 @@ static const unsigned short yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 94, 356, 124, 357, 358, 359, 123, 125, 40, - 41, 59, 44, 58, 91, 93, 33, 46, 60, 64 + 355, 356, 94, 357, 124, 358, 359, 360, 123, 125, + 40, 41, 59, 44, 58, 91, 93, 33, 46, 60, + 64 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned char yyr1[] = { - 0, 120, 121, 122, 122, 123, 124, 124, 125, 125, - 126, 126, 127, 127, 127, 128, 128, 129, 129, 130, - 130, 130, 130, 130, 131, 131, 132, 132, 133, 133, - 133, 133, 133, 134, 133, 133, 135, 135, 136, 136, - 137, 137, 138, 139, 139, 140, 140, 140, 141, 141, - 141, 142, 142, 143, 143, 143, 144, 145, 146, 146, - 146, 147, 147, 147, 147, 148, 148, 149, 149, 149, - 149, 149, 150, 150, 151, 151, 151, 151, 152, 152, - 153, 153, 154, 154, 154, 154, 155, 155, 156, 156, - 156, 157, 158, 158, 159, 159, 160, 160, 160, 160, - 160, 160, 160, 161, 161, 163, 162, 164, 164, 165, - 165, 165, 165, 166, 166, 166, 167, 168, 169, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, - 171, 171, 171, 171, 172, 172, 173, 174, 174, 175, - 175, 175, 176, 177, 178, 178, 178, 179, 178, 178, - 180, 180, 180, 180, 180, 180, 181, 181, 182, 182, - 182, 183, 183, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 185, 185, 185, 186, - 186, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 188, 188, 189, 189, 190, - 191, 191, 192, 192, 193, 193, 194, 194, 194, 194, - 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 197, 196, 198, 198, 198, - 198, 199, 199, 200, 200, 200, 200, 200, 201, 202, - 202, 203, 203, 204, 204, 205, 205, 206, 206, 206, - 207, 207, 208, 209, 210, 210, 211, 211, 212, 212, - 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, - 217, 217, 217, 218, 218, 219, 219, 220, 221, 222, - 222, 222, 222, 223, 223, 223, 224, 224, 225, 226, - 226, 227 + 0, 121, 122, 123, 123, 124, 125, 125, 126, 126, + 127, 127, 128, 128, 128, 129, 129, 130, 130, 131, + 131, 131, 131, 131, 132, 132, 133, 133, 134, 134, + 134, 134, 134, 135, 134, 134, 136, 136, 137, 137, + 138, 138, 139, 140, 140, 141, 141, 141, 142, 142, + 142, 143, 143, 144, 144, 144, 145, 146, 147, 147, + 147, 148, 148, 148, 148, 149, 149, 150, 150, 150, + 150, 150, 151, 151, 152, 152, 152, 152, 153, 153, + 154, 154, 155, 155, 155, 155, 156, 156, 157, 157, + 157, 158, 159, 159, 160, 160, 161, 161, 161, 161, + 161, 161, 161, 162, 162, 164, 163, 165, 165, 166, + 166, 166, 166, 167, 167, 167, 168, 169, 170, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 172, 172, + 172, 172, 172, 172, 173, 173, 174, 175, 175, 176, + 176, 176, 177, 178, 179, 179, 179, 180, 179, 179, + 181, 181, 181, 181, 181, 181, 182, 182, 183, 183, + 183, 184, 184, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 186, 186, 186, 187, + 187, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 189, 189, 190, 190, 191, + 192, 192, 193, 193, 194, 194, 195, 195, 195, 195, + 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 198, 197, 199, 199, 199, + 199, 200, 200, 201, 201, 201, 201, 201, 202, 203, + 203, 204, 204, 205, 205, 206, 206, 207, 207, 207, + 208, 208, 209, 210, 211, 211, 212, 212, 213, 213, + 214, 214, 215, 215, 216, 216, 217, 217, 218, 218, + 218, 218, 218, 219, 219, 220, 220, 221, 221, 222, + 223, 224, 224, 224, 224, 225, 225, 225, 226, 226, + 227, 228, 228, 229 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -877,9 +883,9 @@ static const unsigned char yyr2[] = 5, 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, 1, 3, 4, 1, 3, 2, 3, 1, 3, 0, 1, 1, 2, 2, 3, 1, 3, 1, 4, - 4, 1, 1, 1, 1, 0, 1, 2, 4, 0, - 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, - 1, 1 + 4, 1, 1, 1, 1, 1, 1, 0, 1, 2, + 4, 0, 1, 1, 1, 0, 1, 1, 1, 1, + 1, 0, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -887,51 +893,51 @@ static const unsigned char yyr2[] = means the default is an error. */ static const unsigned short yydefact[] = { - 0, 286, 287, 0, 2, 3, 6, 1, 4, 0, - 0, 7, 291, 14, 9, 0, 10, 12, 15, 8, + 0, 288, 289, 0, 2, 3, 6, 1, 4, 0, + 0, 7, 293, 14, 9, 0, 10, 12, 15, 8, 11, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 23, 21, 19, 22, 20, 0, 18, 13, 24, 181, 0, 0, 182, 183, 184, 0, 185, 186, 194, 187, 188, 189, 190, 191, 192, 193, 0, 25, 26, 28, 29, 32, 30, 31, 35, 0, 0, 33, 0, 50, 0, 51, 53, 55, 37, 0, 38, 0, 43, - 45, 47, 5, 27, 275, 128, 288, 0, 163, 0, + 45, 47, 5, 27, 277, 128, 290, 0, 163, 0, 0, 177, 170, 174, 176, 164, 0, 0, 165, 169, 173, 0, 0, 59, 179, 166, 58, 175, 132, 0, 34, 49, 48, 0, 0, 36, 39, 0, 0, 0, - 0, 279, 62, 61, 117, 276, 283, 0, 178, 172, - 171, 168, 167, 0, 65, 0, 166, 67, 0, 275, + 0, 281, 62, 61, 117, 278, 285, 0, 178, 172, + 171, 168, 167, 0, 65, 0, 166, 67, 0, 277, 0, 180, 0, 0, 52, 54, 40, 44, 46, 0, - 281, 282, 280, 0, 0, 200, 285, 284, 277, 129, + 283, 284, 282, 0, 0, 200, 287, 286, 279, 129, 131, 0, 0, 0, 0, 0, 57, 152, 158, 153, - 273, 159, 160, 274, 150, 151, 77, 0, 72, 74, + 273, 274, 159, 160, 150, 151, 77, 0, 72, 74, 75, 154, 155, 76, 272, 264, 0, 266, 271, 268, 137, 138, 133, 134, 136, 130, 149, 147, 143, 144, - 145, 0, 156, 41, 42, 275, 275, 0, 94, 0, + 145, 0, 156, 41, 42, 277, 277, 0, 94, 0, 125, 0, 0, 200, 200, 119, 118, 0, 0, 116, - 201, 202, 275, 66, 71, 70, 69, 68, 0, 0, - 233, 232, 0, 231, 234, 0, 206, 0, 0, 236, - 0, 207, 210, 0, 217, 218, 224, 223, 250, 251, - 235, 238, 237, 60, 275, 265, 0, 0, 0, 0, - 0, 0, 142, 139, 0, 262, 260, 260, 260, 96, - 261, 92, 260, 260, 103, 0, 278, 0, 275, 0, - 275, 0, 275, 0, 0, 0, 0, 64, 63, 0, - 0, 227, 0, 0, 0, 0, 0, 0, 56, 197, - 198, 195, 196, 0, 0, 0, 199, 0, 0, 0, - 0, 73, 267, 0, 0, 156, 135, 161, 148, 157, - 146, 263, 101, 0, 100, 102, 93, 260, 98, 99, - 0, 91, 104, 95, 0, 113, 0, 86, 89, 90, - 275, 127, 0, 0, 79, 80, 85, 260, 275, 289, - 0, 289, 0, 204, 0, 211, 225, 228, 229, 222, - 220, 239, 0, 252, 216, 208, 212, 213, 214, 0, - 221, 219, 0, 0, 254, 270, 269, 162, 140, 141, - 97, 0, 126, 0, 120, 275, 88, 275, 121, 275, - 83, 260, 275, 290, 122, 275, 203, 205, 0, 230, - 243, 0, 241, 200, 0, 215, 0, 256, 258, 253, - 0, 105, 114, 115, 87, 84, 81, 82, 117, 117, - 226, 240, 0, 245, 209, 257, 0, 255, 0, 123, - 124, 242, 248, 249, 247, 244, 246, 259, 109, 110, - 0, 0, 107, 111, 0, 106, 108, 112 + 201, 202, 277, 66, 71, 70, 69, 68, 276, 0, + 0, 233, 232, 0, 231, 234, 0, 206, 0, 0, + 236, 0, 207, 210, 0, 217, 218, 224, 223, 250, + 251, 275, 235, 238, 237, 60, 277, 265, 0, 0, + 0, 0, 0, 0, 142, 139, 0, 262, 260, 260, + 260, 96, 261, 92, 260, 260, 103, 0, 280, 0, + 277, 0, 277, 0, 277, 0, 0, 0, 0, 64, + 63, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 56, 197, 198, 195, 196, 0, 0, 0, 199, 0, + 0, 0, 0, 73, 267, 0, 0, 156, 135, 161, + 148, 157, 146, 263, 101, 0, 100, 102, 93, 260, + 98, 99, 0, 91, 104, 95, 0, 113, 0, 86, + 89, 90, 277, 127, 0, 0, 79, 80, 85, 260, + 277, 291, 0, 291, 0, 204, 0, 211, 225, 228, + 229, 222, 220, 239, 0, 252, 216, 208, 212, 213, + 214, 0, 221, 219, 0, 0, 254, 270, 269, 162, + 140, 141, 97, 0, 126, 0, 120, 277, 88, 277, + 121, 277, 83, 260, 277, 292, 122, 277, 203, 205, + 0, 230, 243, 0, 241, 200, 0, 215, 0, 256, + 258, 253, 0, 105, 114, 115, 87, 84, 81, 82, + 117, 117, 226, 240, 0, 245, 209, 257, 0, 255, + 0, 123, 124, 242, 248, 249, 247, 244, 246, 259, + 109, 110, 0, 0, 107, 111, 0, 106, 108, 112 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -940,82 +946,82 @@ static const short yydefgoto[] = -1, 3, 4, 5, 10, 11, 15, 16, 27, 28, 29, 57, 58, 59, 110, 60, 76, 204, 77, 78, 79, 61, 71, 72, 176, 62, 102, 63, 133, 134, - 177, 178, 343, 344, 345, 336, 337, 122, 327, 207, - 208, 331, 332, 428, 441, 442, 346, 347, 154, 155, - 216, 103, 192, 193, 443, 267, 268, 64, 198, 259, - 199, 200, 239, 318, 104, 105, 106, 107, 304, 305, - 307, 219, 220, 221, 240, 241, 242, 398, 293, 243, - 244, 245, 246, 401, 402, 435, 436, 247, 248, 249, - 373, 374, 407, 269, 270, 141, 186, 187, 250, 124, - 125, 126, 153, 158, 251, 108, 392, 252 + 177, 178, 345, 346, 347, 338, 339, 122, 329, 207, + 208, 333, 334, 430, 443, 444, 348, 349, 154, 155, + 216, 103, 192, 193, 445, 269, 270, 64, 198, 261, + 199, 200, 240, 320, 104, 105, 106, 107, 306, 307, + 309, 219, 220, 221, 241, 242, 243, 400, 295, 244, + 245, 246, 247, 403, 404, 437, 438, 248, 249, 250, + 375, 376, 409, 271, 272, 141, 186, 187, 251, 252, + 124, 125, 126, 153, 158, 253, 108, 394, 254 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -403 +#define YYPACT_NINF -291 static const short yypact[] = { - 133, -403, -403, 18, 133, -403, -50, -403, -403, 50, - -14, -403, -403, -403, -403, 76, -403, -45, 165, -403, - -403, 62, 38, 69, 89, 81, 97, 184, 165, -403, - 116, -403, -403, -403, -403, -403, 172, -403, -403, 511, - -403, 216, 61, -403, -403, -403, 208, -403, -403, -403, - -403, -403, -403, -403, -403, -403, -403, 229, 511, -403, - -403, -403, -403, -403, -403, -403, 341, 664, -403, 132, - -403, 173, -403, 180, -403, -403, 32, -403, -25, -403, - 182, -403, -403, -403, -11, 174, -403, 222, -403, 232, - 248, -403, -403, -403, -403, -403, 271, 252, -403, -403, - -403, 740, 330, 234, -403, 236, -403, -403, 237, 336, - -403, -403, -403, 200, 241, -403, -403, 133, 200, 249, - 257, -1, -403, -403, -403, -403, 28, 200, -403, -403, - -403, -403, -403, 67, -403, 253, -403, 259, 263, 104, - 70, -403, 331, 192, -403, -403, -50, -403, -403, 289, - -403, -403, -403, 365, 588, -58, -403, -403, -403, -403, - -403, 376, 740, 200, 200, 225, -403, -403, -403, -403, - -403, -403, -403, -403, -403, -403, -403, 78, -403, -403, - -403, -403, -403, -403, -403, -403, 108, -403, -403, 273, - -403, -403, 266, -403, -403, -403, -403, -403, -403, -403, - -403, 267, 274, -403, -403, 154, 74, 141, -403, 275, - 347, 281, 324, 135, 179, -403, -403, 291, 225, -403, - -403, 292, -11, -403, -403, -403, -403, -403, 298, 377, - -403, -403, -24, -403, -403, 302, -403, 133, 225, -403, - 297, 226, 307, 305, -24, -403, -403, -403, 308, -403, - -403, -403, -403, -403, 104, -403, 87, 215, 335, 411, - 409, 192, -403, -403, 192, -403, 25, 91, 25, -403, - -403, 328, 91, 25, 325, 289, -403, 394, 60, 345, - 59, 353, 59, 354, 225, 317, 225, -403, -403, 453, - 322, 313, 327, 301, 332, 326, 334, 333, -403, -403, - -403, -403, -403, 338, 453, 453, -403, 453, 225, 309, - 315, -403, -403, 346, 348, -403, -403, -403, 435, -403, - -403, -403, -403, 361, -403, -403, -403, 25, -403, -403, - 359, -403, -403, -403, 409, 343, 186, -403, -403, -403, - 355, -403, 374, 349, 358, -403, -403, 25, 355, 409, - 363, 409, 362, -403, 364, -403, -403, -403, 360, -403, - -403, 292, 39, -403, -403, 367, -403, -403, -403, 366, - -403, -403, 23, 188, -403, -403, -403, -403, -403, -403, - -403, 370, -403, 215, -403, 60, -403, 355, -403, 54, - -403, 25, 355, -403, -403, 355, -403, -403, 411, -403, - -403, 189, -403, -58, 440, -403, 409, 356, -403, -403, - 315, -403, -403, -403, -403, -403, -403, -403, -403, -403, - 435, -403, 39, 177, 4, 356, 409, -403, 11, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - 11, 36, -403, -403, 27, -403, -403, -403 + 159, -291, -291, 40, 159, -291, -39, -291, -291, 5, + 47, -291, -291, -291, -291, 17, -291, -22, 252, -291, + -291, 85, 84, 51, 59, 109, 87, 190, 252, -291, + 94, -291, -291, -291, -291, -291, 194, -291, -291, 475, + -291, 256, 76, -291, -291, -291, 180, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, 230, 475, -291, + -291, -291, -291, -291, -291, -291, 332, 628, -291, 168, + -291, 132, -291, 174, -291, -291, 16, -291, -23, -291, + 182, -291, -291, -291, 1, 177, -291, 221, -291, 225, + 242, -291, -291, -291, -291, -291, 265, 237, -291, -291, + -291, 704, 340, 248, -291, 249, -291, -291, 240, 359, + -291, -291, -291, 155, 255, -291, -291, 159, 155, 257, + 259, 26, -291, -291, -291, -291, 8, 155, -291, -291, + -291, -291, -291, -6, -291, 254, -291, 258, 261, 193, + 71, -291, 323, 202, -291, -291, -39, -291, -291, 271, + -291, -291, -291, 360, 552, -50, -291, -291, -291, -291, + -291, 368, 704, 155, 155, 212, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, 78, -291, -291, + -291, -291, -291, -291, -291, -291, 133, -291, -291, 264, + -291, -291, 262, -291, -291, -291, -291, -291, -291, -291, + -291, 270, 269, -291, -291, 77, 27, 142, -291, 263, + 335, 281, 317, 156, 184, -291, -291, 282, 212, -291, + -291, 283, 1, -291, -291, -291, -291, -291, -291, 290, + 364, -291, -291, -49, -291, -291, 291, -291, 159, 212, + -291, 288, 211, 297, 296, -49, -291, -291, -291, 299, + -291, -291, -291, -291, -291, -291, 193, -291, 91, 321, + 311, 403, 400, 202, -291, -291, 202, -291, -27, 25, + -27, -291, -291, 319, 25, -27, 310, 271, -291, 386, + 37, 318, 70, 344, 70, 345, 212, 312, 212, -291, + -291, 450, 313, 305, 320, 226, 315, 324, 325, 322, + -291, -291, -291, -291, -291, 329, 450, 450, -291, 450, + 212, 460, 330, -291, -291, 326, 327, -291, -291, -291, + 430, -291, -291, -291, -291, 328, -291, -291, -291, -27, + -291, -291, 362, -291, -291, -291, 400, 334, 147, -291, + -291, -291, 337, -291, 380, 346, 343, -291, -291, -27, + 337, 400, 349, 400, 365, -291, 366, -291, -291, -291, + 356, -291, -291, 283, 10, -291, -291, 367, -291, -291, + -291, 370, -291, -291, -5, 152, -291, -291, -291, -291, + -291, -291, -291, 371, -291, 321, -291, 37, -291, 337, + -291, 4, -291, -27, 337, -291, -291, 337, -291, -291, + 403, -291, -291, 172, -291, -50, 432, -291, 400, 369, + -291, -291, 330, -291, -291, -291, -291, -291, -291, -291, + -291, -291, 430, -291, 10, 9, 247, 369, 400, -291, + 54, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, 54, 57, -291, -291, 34, -291, -291, -291 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -403, -403, -403, 476, -403, 337, -403, 466, -403, -403, - 454, -403, -403, 426, -403, -403, -403, -403, 410, -403, - 369, -403, -403, 372, 357, -403, -53, -403, -403, 329, - -403, 238, 211, -403, 105, -403, 111, 276, -403, -403, - 224, -403, -403, -403, 57, -402, -258, -83, -403, -57, - -403, 221, -403, 243, -137, 300, 303, -403, 0, -403, - -130, -250, -135, 106, -88, 1, -403, -3, -403, -403, - -403, -211, -403, 213, -5, 107, -12, -403, 264, -403, - -243, -403, -403, -403, 88, -403, -403, -403, -403, -403, - -403, 102, 109, -256, -403, -403, -403, 258, -105, -125, - -403, -403, -403, -403, 19, -403, 162, -9 + -291, -291, -291, 474, -291, 339, -291, 473, -291, -291, + 461, -291, -291, 434, -291, -291, -291, -291, 417, -291, + 376, -291, -291, 382, 358, -291, -46, -291, -291, 342, + -291, 241, 215, -291, 111, -291, 118, 284, -291, -291, + 231, -291, -291, -291, 65, -290, -275, -83, -291, -67, + -291, 228, -291, 251, -133, 306, 307, -291, 33, -291, + -132, -249, -131, 114, -33, -17, -291, -3, -291, -291, + -291, -211, -291, 219, -129, 113, -77, -291, 275, -291, + -247, -291, -291, -291, 97, -291, -291, -291, -291, -291, + -291, 112, 119, -252, -291, -291, -291, 268, -98, -291, + -92, -291, -291, -291, -291, 20, -291, 178, -9 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1025,229 +1031,223 @@ static const short yypgoto[] = #define YYTABLE_NINF -261 static const short yytable[] = { - 17, 123, 281, 283, 181, 194, 17, 313, 181, 180, - 322, 324, 325, 135, 109, 438, 328, 329, 7, 6, - 338, 120, 150, 6, 18, 117, 217, 190, 191, 439, - 67, 438, 12, 74, 182, 188, 65, 81, 182, 446, - 438, 12, 446, 190, 191, 439, 1, 2, 12, 67, - 360, 218, 190, 191, 439, 65, 179, 9, 66, 12, - 13, 73, 264, 12, 21, 80, 371, 81, 12, 12, - 12, 380, 30, 156, 135, 1, 2, 66, 151, 12, - 170, 291, 69, 173, 157, 12, 13, 118, 342, 262, - 263, 390, 152, 342, 292, 80, 12, 170, 265, 31, - 173, 215, 136, 121, 74, 299, 300, 301, 302, 81, - 167, 168, 169, 12, 170, 171, 172, 173, 160, 181, - 137, 194, 266, 271, 180, 440, 181, 338, 264, 181, - 183, 189, 73, 412, 202, 417, 146, 80, 34, 288, - 406, 440, 447, 115, 445, 400, 159, 1, 2, 182, - 440, 188, 314, 174, 225, 227, 182, 32, 14, 182, - 335, 195, 201, 136, 265, 335, 335, -78, 121, 262, - 263, 179, 70, 121, 121, 161, 184, 33, 185, 162, - 22, 137, 224, 226, 19, 35, 253, 36, 121, 23, - 254, 264, 423, 184, 175, 339, 432, 39, 167, 168, - 169, 12, 170, 171, 172, 173, 1, 2, 323, 12, - 24, 165, 25, 285, 1, 2, 255, 12, 121, 217, - 256, 26, 1, 2, 12, 170, 38, 265, 173, 1, - 2, 68, 168, 297, 12, 170, 171, 172, 173, 1, - 2, 174, 280, 111, 218, 183, 228, 189, 315, 274, - 433, 319, 202, 275, 434, 202, 296, 386, 75, 196, - 229, 320, -260, 217, 321, 391, -260, 418, 121, 340, - 419, 348, 82, 348, 230, 231, 201, 355, 413, 352, - 201, 354, 175, 201, 112, 113, 282, 114, 218, 119, - 232, 127, 366, 367, 384, 368, 409, 421, 385, 197, - 410, 422, 339, 369, 415, 205, 206, 128, 168, 233, - 12, 170, 171, 172, 173, 234, 168, 129, 12, 170, - 171, 172, 173, 130, 235, 382, 131, 299, 300, 301, - 302, 236, 237, 138, 238, 294, 295, 132, 303, 143, - 393, 139, 393, 140, 84, 1, 2, 190, 191, 145, - 230, 190, 191, 403, 142, 85, 86, 148, 230, 85, - 86, 429, 430, 408, 149, 359, 163, 87, 40, 88, - 165, 89, 164, 370, 315, 209, 340, 378, 379, 222, - 348, 90, 257, 258, 260, 91, 277, 261, 278, 92, - 276, 234, 93, 43, 44, 45, 279, 408, 289, 234, - 284, 286, 201, 94, 47, 298, 290, 306, 95, 48, - 96, 49, 97, 403, 308, 310, 317, 437, 12, 50, - 326, 98, 99, 334, 330, 349, 351, 353, 51, 356, - 52, 357, 358, 362, 372, 53, 100, 54, 55, 56, - 377, 218, 363, 364, 365, 381, 387, 168, 101, 12, - 170, 171, 172, 173, 1, 2, 375, 388, 376, 383, - 168, 228, 12, 170, 171, 172, 173, 1, 2, 121, - 389, 394, 396, 426, 397, 229, 405, 411, 399, 404, - 8, 20, 37, 203, 83, 144, 116, 147, 229, 230, - 231, 223, 311, 350, 416, 166, 414, 444, 287, 333, - 341, 316, 230, 231, 420, 232, 272, 361, 309, 273, - 431, 424, 427, 395, 312, 425, 0, 0, 232, 0, - 12, 0, 0, 0, 233, 1, 2, 0, 0, 0, - 234, 0, 0, 0, 0, 0, 0, 233, 40, 235, - 0, 0, 0, 234, 0, 0, 0, 237, 0, 238, - 0, 0, 235, 41, 0, 0, 0, 42, 0, 0, - 237, 0, 238, 43, 44, 45, 0, 0, 0, 46, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 48, - 0, 49, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, - 52, 0, 85, 86, 0, 53, 0, 54, 55, 56, - 210, 0, 0, 0, 87, 40, 88, 0, 89, 211, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, - 0, 0, 91, 0, 0, 0, 92, 0, 0, 93, - 43, 44, 45, 0, 0, 0, 0, 0, 212, 0, - 94, 47, 0, 0, 0, 95, 48, 96, 49, 97, - 0, 0, 0, 0, 0, 0, 50, 0, 98, 99, - 213, 214, 0, 0, 0, 51, 0, 52, 85, 86, - 0, 0, 53, 100, 54, 55, 56, 0, 0, 0, - 87, 40, 88, 0, 89, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 0, 0, 0, 91, 0, - 0, 0, 92, 0, 0, 93, 43, 44, 45, 0, - 0, 0, 0, 0, 0, 0, 94, 47, 0, 0, - 0, 95, 48, 96, 49, 97, 0, 0, 0, 0, - 0, 0, 50, 0, 98, 99, 0, 0, 0, 0, - 0, 51, 0, 52, 1, 2, 0, 0, 53, 100, - 54, 55, 56, 0, 0, 0, 87, 40, 88, 0, - 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, - 0, 93, 43, 44, 45, 0, 0, 0, 0, 0, - 0, 0, 94, 47, 0, 0, 0, 95, 48, 96, - 49, 97, 0, 0, 0, 0, 0, 0, 50, 0, - 98, 99, 0, 0, 0, 0, 0, 51, 0, 52, - 0, 0, 0, 0, 53, 100, 54, 55, 56 + 17, 123, 283, 285, 12, 340, 17, 180, 181, 194, + 315, 266, 181, 12, 12, 13, 324, 326, 327, 12, + 6, 109, 330, 331, 6, 12, 12, 13, 117, 434, + 67, 1, 2, 74, 120, 217, 65, 81, 440, 344, + 7, 182, 188, 264, 265, 182, 12, 267, 362, 67, + 150, 190, 191, 441, 156, 65, 179, 293, 440, 66, + 218, 440, 73, 266, 373, 157, 80, 81, 135, 9, + 294, 190, 191, 441, 190, 191, 441, 382, 66, 12, + 12, 170, 171, 435, 136, 12, 18, 436, 21, 287, + 118, 1, 2, 264, 265, 30, 80, 392, 69, 267, + 12, 170, 171, 161, 74, 344, 151, 162, 215, 81, + 299, 337, 340, 408, 14, 266, 121, 402, 160, 121, + 152, 137, 268, 273, 180, 181, 19, 194, 115, 135, + 183, 189, 181, 73, 202, 181, 414, 146, 80, 290, + 32, 419, 121, 325, 337, 136, 31, 159, 33, 442, + 449, 267, 121, 448, 225, 227, 448, 354, 182, 356, + 188, 316, 195, 201, 12, 182, 447, 34, 182, 442, + 1, 2, 442, 179, 1, 2, 35, 337, 184, -78, + 185, 371, 137, 224, 226, 121, -260, 255, 70, 12, + -260, 256, 121, 36, 425, 1, 2, 341, 184, 167, + 168, 169, 12, 170, 171, 38, 172, 173, 167, 168, + 169, 12, 170, 171, 357, 172, 173, 1, 2, 168, + 39, 12, 170, 171, 228, 172, 173, 1, 2, 368, + 369, 75, 370, 168, 229, 12, 170, 171, 228, 172, + 173, 217, 257, 174, 112, 113, 258, 183, 230, 189, + 317, 276, 174, 321, 202, 277, 386, 202, 298, 388, + 387, 411, 231, 232, 282, 412, 218, 393, 22, 217, + 196, 342, 68, 350, 82, 350, 231, 23, 233, 201, + 111, 423, 114, 201, 175, 424, 201, 415, 205, 206, + 119, 361, 284, 175, 218, 127, 322, 234, 24, 323, + 25, 165, 420, 235, 341, 421, 417, 128, 121, 26, + 197, 129, 236, 301, 302, 303, 304, 235, 130, 237, + 238, 131, 239, 132, 305, 296, 297, 384, 190, 191, + 12, 170, 171, 85, 86, 84, 1, 2, 1, 2, + 190, 191, 395, 138, 395, 380, 381, 85, 86, 301, + 302, 303, 304, 431, 432, 405, 139, 140, 142, 87, + 40, 88, 143, 89, 145, 410, 148, 149, 163, 165, + 209, 222, 164, 90, 259, 279, 317, 91, 342, 278, + 260, 92, 350, 263, 93, 43, 44, 45, 262, 280, + 281, 291, 286, 288, 292, 94, 47, 300, 308, 410, + 95, 48, 96, 49, 97, 201, 310, 312, 319, 12, + 332, 50, 328, 98, 99, 405, 336, 351, 353, 439, + 51, 358, 52, 355, 359, 218, 360, 53, 100, 54, + 55, 56, 364, 366, 365, 379, 367, 377, 378, 168, + 101, 12, 170, 171, 228, 172, 173, 1, 2, 383, + 374, 385, 121, 389, 229, 390, 391, 168, 396, 12, + 170, 171, 228, 172, 173, 1, 2, 168, 230, 12, + 170, 171, 228, 172, 173, 401, 398, 399, 8, 413, + 406, 407, 231, 232, 12, 203, 230, 428, 20, 37, + 1, 2, 83, 116, 147, 144, 166, 313, 233, 352, + 231, 232, 418, 40, 223, 416, 289, 446, 335, 343, + 231, 318, 274, 275, 422, 363, 233, 234, 41, 426, + 311, 433, 42, 235, 429, 372, 314, 427, 43, 44, + 45, 397, 236, 0, 46, 234, 0, 0, 0, 47, + 238, 235, 239, 0, 48, 0, 49, 0, 0, 0, + 236, 235, 0, 0, 50, 0, 0, 0, 238, 0, + 239, 0, 0, 51, 0, 52, 0, 85, 86, 0, + 53, 0, 54, 55, 56, 210, 0, 0, 0, 87, + 40, 88, 0, 89, 211, 0, 0, 0, 0, 0, + 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, + 0, 92, 0, 0, 93, 43, 44, 45, 0, 0, + 0, 0, 0, 212, 0, 94, 47, 0, 0, 0, + 95, 48, 96, 49, 97, 0, 0, 0, 0, 0, + 0, 50, 0, 98, 99, 213, 214, 0, 0, 0, + 51, 0, 52, 85, 86, 0, 0, 53, 100, 54, + 55, 56, 0, 0, 0, 87, 40, 88, 0, 89, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, + 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, + 93, 43, 44, 45, 0, 0, 0, 0, 0, 0, + 0, 94, 47, 0, 0, 0, 95, 48, 96, 49, + 97, 0, 0, 0, 0, 0, 0, 50, 0, 98, + 99, 0, 0, 0, 0, 0, 51, 0, 52, 1, + 2, 0, 0, 53, 100, 54, 55, 56, 0, 0, + 0, 87, 40, 88, 0, 89, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 90, 0, 0, 0, 91, + 0, 0, 0, 92, 0, 0, 93, 43, 44, 45, + 0, 0, 0, 0, 0, 0, 0, 94, 47, 0, + 0, 0, 95, 48, 96, 49, 97, 0, 0, 0, + 0, 0, 0, 50, 0, 98, 99, 0, 0, 0, + 0, 0, 51, 0, 52, 0, 0, 0, 0, 53, + 100, 54, 55, 56 }; static const short yycheck[] = { - 9, 84, 213, 214, 139, 142, 15, 257, 143, 139, - 266, 267, 268, 101, 67, 4, 272, 273, 0, 0, - 278, 32, 23, 4, 38, 50, 84, 16, 17, 18, - 39, 4, 9, 42, 139, 140, 39, 46, 143, 441, - 4, 9, 444, 16, 17, 18, 14, 15, 9, 58, - 293, 109, 16, 17, 18, 58, 139, 107, 39, 9, - 10, 42, 37, 9, 109, 46, 309, 76, 9, 9, - 9, 327, 10, 45, 162, 14, 15, 58, 79, 9, - 10, 105, 21, 13, 56, 9, 10, 112, 34, 15, - 16, 347, 93, 34, 118, 76, 9, 10, 73, 61, - 13, 154, 101, 114, 113, 101, 102, 103, 104, 118, - 6, 7, 8, 9, 10, 11, 12, 13, 127, 254, - 101, 258, 205, 206, 254, 114, 261, 385, 37, 264, - 139, 140, 113, 383, 143, 391, 117, 118, 57, 222, - 117, 114, 115, 111, 108, 106, 127, 14, 15, 254, - 114, 256, 257, 49, 163, 164, 261, 88, 108, 264, - 106, 142, 143, 162, 73, 106, 106, 108, 114, 15, - 16, 254, 111, 114, 114, 108, 106, 88, 108, 112, - 15, 162, 163, 164, 108, 88, 108, 3, 114, 24, - 112, 37, 403, 106, 90, 278, 19, 25, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 117, 9, - 45, 107, 47, 218, 14, 15, 108, 9, 114, 84, - 112, 56, 14, 15, 9, 10, 110, 73, 13, 14, - 15, 15, 7, 238, 9, 10, 11, 12, 13, 14, - 15, 49, 107, 111, 109, 254, 21, 256, 257, 108, - 73, 260, 261, 112, 77, 264, 237, 340, 50, 67, - 35, 261, 108, 84, 264, 348, 112, 392, 114, 278, - 395, 280, 43, 282, 49, 50, 257, 289, 383, 284, - 261, 286, 90, 264, 111, 112, 107, 107, 109, 107, - 65, 117, 304, 305, 108, 307, 108, 108, 112, 107, - 112, 112, 385, 308, 387, 16, 17, 85, 7, 84, - 9, 10, 11, 12, 13, 90, 7, 85, 9, 10, - 11, 12, 13, 75, 99, 334, 55, 101, 102, 103, - 104, 106, 107, 3, 109, 33, 34, 85, 112, 3, - 349, 107, 351, 107, 3, 14, 15, 16, 17, 108, - 49, 16, 17, 362, 117, 14, 15, 108, 49, 14, - 15, 418, 419, 372, 107, 64, 113, 26, 27, 28, - 107, 30, 113, 64, 383, 10, 385, 16, 17, 3, - 389, 40, 109, 117, 117, 44, 39, 113, 107, 48, - 115, 90, 51, 52, 53, 54, 72, 406, 100, 90, - 109, 109, 383, 62, 63, 108, 29, 100, 67, 68, - 69, 70, 71, 422, 109, 107, 5, 426, 9, 78, - 92, 80, 81, 29, 99, 72, 72, 110, 87, 107, - 89, 118, 105, 107, 119, 94, 95, 96, 97, 98, - 5, 109, 108, 110, 106, 86, 72, 7, 107, 9, - 10, 11, 12, 13, 14, 15, 110, 108, 110, 116, - 7, 21, 9, 10, 11, 12, 13, 14, 15, 114, - 112, 108, 110, 117, 110, 35, 110, 107, 118, 112, - 4, 15, 28, 146, 58, 113, 76, 118, 35, 49, - 50, 162, 254, 282, 389, 138, 385, 440, 222, 275, - 279, 258, 49, 50, 398, 65, 206, 294, 244, 206, - 422, 404, 410, 351, 256, 406, -1, -1, 65, -1, - 9, -1, -1, -1, 84, 14, 15, -1, -1, -1, - 90, -1, -1, -1, -1, -1, -1, 84, 27, 99, - -1, -1, -1, 90, -1, -1, -1, 107, -1, 109, - -1, -1, 99, 42, -1, -1, -1, 46, -1, -1, - 107, -1, 109, 52, 53, 54, -1, -1, -1, 58, - -1, -1, -1, -1, 63, -1, -1, -1, -1, 68, - -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, - -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, - 89, -1, 14, 15, -1, 94, -1, 96, 97, 98, - 22, -1, -1, -1, 26, 27, 28, -1, 30, 31, - -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, - -1, -1, 44, -1, -1, -1, 48, -1, -1, 51, - 52, 53, 54, -1, -1, -1, -1, -1, 60, -1, - 62, 63, -1, -1, -1, 67, 68, 69, 70, 71, - -1, -1, -1, -1, -1, -1, 78, -1, 80, 81, - 82, 83, -1, -1, -1, 87, -1, 89, 14, 15, - -1, -1, 94, 95, 96, 97, 98, -1, -1, -1, - 26, 27, 28, -1, 30, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 40, -1, -1, -1, 44, -1, - -1, -1, 48, -1, -1, 51, 52, 53, 54, -1, - -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, 67, 68, 69, 70, 71, -1, -1, -1, -1, - -1, -1, 78, -1, 80, 81, -1, -1, -1, -1, - -1, 87, -1, 89, 14, 15, -1, -1, 94, 95, - 96, 97, 98, -1, -1, -1, 26, 27, 28, -1, - 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 40, -1, -1, -1, 44, -1, -1, -1, 48, -1, - -1, 51, 52, 53, 54, -1, -1, -1, -1, -1, - -1, -1, 62, 63, -1, -1, -1, 67, 68, 69, - 70, 71, -1, -1, -1, -1, -1, -1, 78, -1, - 80, 81, -1, -1, -1, -1, -1, 87, -1, 89, - -1, -1, -1, -1, 94, 95, 96, 97, 98 + 9, 84, 213, 214, 9, 280, 15, 139, 139, 142, + 259, 38, 143, 9, 9, 10, 268, 269, 270, 9, + 0, 67, 274, 275, 4, 9, 9, 10, 51, 20, + 39, 15, 16, 42, 33, 85, 39, 46, 4, 35, + 0, 139, 140, 16, 17, 143, 9, 74, 295, 58, + 24, 17, 18, 19, 46, 58, 139, 106, 4, 39, + 110, 4, 42, 38, 311, 57, 46, 76, 101, 108, + 119, 17, 18, 19, 17, 18, 19, 329, 58, 9, + 9, 10, 11, 74, 101, 9, 39, 78, 110, 218, + 113, 15, 16, 16, 17, 10, 76, 349, 22, 74, + 9, 10, 11, 109, 113, 35, 80, 113, 154, 118, + 239, 107, 387, 118, 109, 38, 115, 107, 127, 115, + 94, 101, 205, 206, 256, 256, 109, 260, 112, 162, + 139, 140, 263, 113, 143, 266, 385, 117, 118, 222, + 89, 393, 115, 118, 107, 162, 62, 127, 89, 115, + 116, 74, 115, 443, 163, 164, 446, 286, 256, 288, + 258, 259, 142, 143, 9, 263, 109, 58, 266, 115, + 15, 16, 115, 256, 15, 16, 89, 107, 107, 109, + 109, 310, 162, 163, 164, 115, 109, 109, 112, 9, + 113, 113, 115, 3, 405, 15, 16, 280, 107, 6, + 7, 8, 9, 10, 11, 111, 13, 14, 6, 7, + 8, 9, 10, 11, 291, 13, 14, 15, 16, 7, + 26, 9, 10, 11, 12, 13, 14, 15, 16, 306, + 307, 51, 309, 7, 22, 9, 10, 11, 12, 13, + 14, 85, 109, 50, 112, 113, 113, 256, 36, 258, + 259, 109, 50, 262, 263, 113, 109, 266, 238, 342, + 113, 109, 50, 51, 108, 113, 110, 350, 16, 85, + 68, 280, 16, 282, 44, 284, 50, 25, 66, 259, + 112, 109, 108, 263, 91, 113, 266, 385, 17, 18, + 108, 65, 108, 91, 110, 118, 263, 85, 46, 266, + 48, 108, 394, 91, 387, 397, 389, 86, 115, 57, + 108, 86, 100, 102, 103, 104, 105, 91, 76, 107, + 108, 56, 110, 86, 113, 34, 35, 336, 17, 18, + 9, 10, 11, 15, 16, 3, 15, 16, 15, 16, + 17, 18, 351, 3, 353, 17, 18, 15, 16, 102, + 103, 104, 105, 420, 421, 364, 108, 108, 118, 27, + 28, 29, 3, 31, 109, 374, 109, 108, 114, 108, + 10, 3, 114, 41, 110, 40, 385, 45, 387, 116, + 118, 49, 391, 114, 52, 53, 54, 55, 118, 108, + 73, 101, 110, 110, 30, 63, 64, 109, 101, 408, + 68, 69, 70, 71, 72, 385, 110, 108, 5, 9, + 100, 79, 93, 81, 82, 424, 30, 73, 73, 428, + 88, 108, 90, 111, 119, 110, 106, 95, 96, 97, + 98, 99, 108, 111, 109, 5, 107, 111, 111, 7, + 108, 9, 10, 11, 12, 13, 14, 15, 16, 87, + 120, 117, 115, 73, 22, 109, 113, 7, 109, 9, + 10, 11, 12, 13, 14, 15, 16, 7, 36, 9, + 10, 11, 12, 13, 14, 119, 111, 111, 4, 108, + 113, 111, 50, 51, 9, 146, 36, 118, 15, 28, + 15, 16, 58, 76, 118, 113, 138, 256, 66, 284, + 50, 51, 391, 28, 162, 387, 222, 442, 277, 281, + 50, 260, 206, 206, 400, 296, 66, 85, 43, 406, + 245, 424, 47, 91, 412, 65, 258, 408, 53, 54, + 55, 353, 100, -1, 59, 85, -1, -1, -1, 64, + 108, 91, 110, -1, 69, -1, 71, -1, -1, -1, + 100, 91, -1, -1, 79, -1, -1, -1, 108, -1, + 110, -1, -1, 88, -1, 90, -1, 15, 16, -1, + 95, -1, 97, 98, 99, 23, -1, -1, -1, 27, + 28, 29, -1, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, 41, -1, -1, -1, 45, -1, -1, + -1, 49, -1, -1, 52, 53, 54, 55, -1, -1, + -1, -1, -1, 61, -1, 63, 64, -1, -1, -1, + 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, + -1, 79, -1, 81, 82, 83, 84, -1, -1, -1, + 88, -1, 90, 15, 16, -1, -1, 95, 96, 97, + 98, 99, -1, -1, -1, 27, 28, 29, -1, 31, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, + -1, -1, -1, 45, -1, -1, -1, 49, -1, -1, + 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, + -1, 63, 64, -1, -1, -1, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, -1, 79, -1, 81, + 82, -1, -1, -1, -1, -1, 88, -1, 90, 15, + 16, -1, -1, 95, 96, 97, 98, 99, -1, -1, + -1, 27, 28, 29, -1, 31, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 41, -1, -1, -1, 45, + -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, + -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, 68, 69, 70, 71, 72, -1, -1, -1, + -1, -1, -1, 79, -1, 81, 82, -1, -1, -1, + -1, -1, 88, -1, 90, -1, -1, -1, -1, 95, + 96, 97, 98, 99 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned char yystos[] = { - 0, 14, 15, 121, 122, 123, 224, 0, 123, 107, - 124, 125, 9, 10, 108, 126, 127, 227, 38, 108, - 127, 109, 15, 24, 45, 47, 56, 128, 129, 130, - 10, 61, 88, 88, 57, 88, 3, 130, 110, 25, - 27, 42, 46, 52, 53, 54, 58, 63, 68, 70, - 78, 87, 89, 94, 96, 97, 98, 131, 132, 133, - 135, 141, 145, 147, 177, 187, 224, 227, 15, 21, - 111, 142, 143, 224, 227, 50, 136, 138, 139, 140, - 224, 227, 43, 133, 3, 14, 15, 26, 28, 30, - 40, 44, 48, 51, 62, 67, 69, 71, 80, 81, - 95, 107, 146, 171, 184, 185, 186, 187, 225, 146, - 134, 111, 111, 112, 107, 111, 138, 50, 112, 107, - 32, 114, 157, 167, 219, 220, 221, 117, 85, 85, - 75, 55, 85, 148, 149, 184, 185, 224, 3, 107, - 107, 215, 117, 3, 143, 108, 224, 140, 108, 107, - 23, 79, 93, 222, 168, 169, 45, 56, 223, 224, - 227, 108, 112, 113, 113, 107, 144, 6, 7, 8, - 10, 11, 12, 13, 49, 90, 144, 150, 151, 167, - 180, 182, 218, 227, 106, 108, 216, 217, 218, 227, - 16, 17, 172, 173, 174, 224, 67, 107, 178, 180, - 181, 224, 227, 125, 137, 16, 17, 159, 160, 10, - 22, 31, 60, 82, 83, 146, 170, 84, 109, 191, - 192, 193, 3, 149, 224, 227, 224, 227, 21, 35, - 49, 50, 65, 84, 90, 99, 106, 107, 109, 182, - 194, 195, 196, 199, 200, 201, 202, 207, 208, 209, - 218, 224, 227, 108, 112, 108, 112, 109, 117, 179, - 117, 113, 15, 16, 37, 73, 167, 175, 176, 213, - 214, 167, 175, 176, 108, 112, 115, 39, 107, 72, - 107, 191, 107, 191, 109, 194, 109, 157, 167, 100, - 29, 105, 118, 198, 33, 34, 224, 194, 108, 101, - 102, 103, 104, 112, 188, 189, 100, 190, 109, 198, - 107, 151, 217, 181, 218, 227, 173, 5, 183, 227, - 178, 178, 213, 117, 213, 213, 92, 158, 213, 213, - 99, 161, 162, 160, 29, 106, 155, 156, 166, 167, - 227, 171, 34, 152, 153, 154, 166, 167, 227, 72, - 152, 72, 194, 110, 194, 196, 107, 118, 105, 64, - 200, 193, 107, 108, 110, 106, 196, 196, 196, 194, - 64, 200, 119, 210, 211, 110, 110, 5, 16, 17, - 213, 86, 227, 116, 108, 112, 167, 72, 108, 112, - 213, 167, 226, 227, 108, 226, 110, 110, 197, 118, - 106, 203, 204, 227, 112, 110, 117, 212, 227, 108, - 112, 107, 181, 218, 156, 167, 154, 213, 219, 219, - 183, 108, 112, 191, 195, 212, 117, 211, 163, 169, - 169, 204, 19, 73, 77, 205, 206, 227, 4, 18, - 114, 164, 165, 174, 164, 108, 165, 115 + 0, 15, 16, 122, 123, 124, 226, 0, 124, 108, + 125, 126, 9, 10, 109, 127, 128, 229, 39, 109, + 128, 110, 16, 25, 46, 48, 57, 129, 130, 131, + 10, 62, 89, 89, 58, 89, 3, 131, 111, 26, + 28, 43, 47, 53, 54, 55, 59, 64, 69, 71, + 79, 88, 90, 95, 97, 98, 99, 132, 133, 134, + 136, 142, 146, 148, 178, 188, 226, 229, 16, 22, + 112, 143, 144, 226, 229, 51, 137, 139, 140, 141, + 226, 229, 44, 134, 3, 15, 16, 27, 29, 31, + 41, 45, 49, 52, 63, 68, 70, 72, 81, 82, + 96, 108, 147, 172, 185, 186, 187, 188, 227, 147, + 135, 112, 112, 113, 108, 112, 139, 51, 113, 108, + 33, 115, 158, 168, 221, 222, 223, 118, 86, 86, + 76, 56, 86, 149, 150, 185, 186, 226, 3, 108, + 108, 216, 118, 3, 144, 109, 226, 141, 109, 108, + 24, 80, 94, 224, 169, 170, 46, 57, 225, 226, + 229, 109, 113, 114, 114, 108, 145, 6, 7, 8, + 10, 11, 13, 14, 50, 91, 145, 151, 152, 168, + 181, 183, 219, 229, 107, 109, 217, 218, 219, 229, + 17, 18, 173, 174, 175, 226, 68, 108, 179, 181, + 182, 226, 229, 126, 138, 17, 18, 160, 161, 10, + 23, 32, 61, 83, 84, 147, 171, 85, 110, 192, + 193, 194, 3, 150, 226, 229, 226, 229, 12, 22, + 36, 50, 51, 66, 85, 91, 100, 107, 108, 110, + 183, 195, 196, 197, 200, 201, 202, 203, 208, 209, + 210, 219, 220, 226, 229, 109, 113, 109, 113, 110, + 118, 180, 118, 114, 16, 17, 38, 74, 168, 176, + 177, 214, 215, 168, 176, 177, 109, 113, 116, 40, + 108, 73, 108, 192, 108, 192, 110, 195, 110, 158, + 168, 101, 30, 106, 119, 199, 34, 35, 226, 195, + 109, 102, 103, 104, 105, 113, 189, 190, 101, 191, + 110, 199, 108, 152, 218, 182, 219, 229, 174, 5, + 184, 229, 179, 179, 214, 118, 214, 214, 93, 159, + 214, 214, 100, 162, 163, 161, 30, 107, 156, 157, + 167, 168, 229, 172, 35, 153, 154, 155, 167, 168, + 229, 73, 153, 73, 195, 111, 195, 197, 108, 119, + 106, 65, 201, 194, 108, 109, 111, 107, 197, 197, + 197, 195, 65, 201, 120, 211, 212, 111, 111, 5, + 17, 18, 214, 87, 229, 117, 109, 113, 168, 73, + 109, 113, 214, 168, 228, 229, 109, 228, 111, 111, + 198, 119, 107, 204, 205, 229, 113, 111, 118, 213, + 229, 109, 113, 108, 182, 219, 157, 168, 155, 214, + 221, 221, 184, 109, 113, 192, 196, 213, 118, 212, + 164, 170, 170, 205, 20, 74, 78, 206, 207, 229, + 4, 19, 115, 165, 166, 175, 165, 109, 166, 116 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1798,14 +1798,14 @@ yyreduce: switch (yyn) { case 2: -#line 324 "asn1p_y.y" +#line 327 "asn1p_y.y" { *(void **)param = yyvsp[0].a_grammar; } break; case 3: -#line 330 "asn1p_y.y" +#line 333 "asn1p_y.y" { yyval.a_grammar = asn1p_new(); checkmem(yyval.a_grammar); @@ -1814,7 +1814,7 @@ yyreduce: break; case 4: -#line 335 "asn1p_y.y" +#line 338 "asn1p_y.y" { yyval.a_grammar = yyvsp[-1].a_grammar; TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next); @@ -1822,7 +1822,7 @@ yyreduce: break; case 5: -#line 356 "asn1p_y.y" +#line 359 "asn1p_y.y" { if(yyvsp[-1].a_module) { @@ -1840,31 +1840,31 @@ yyreduce: break; case 6: -#line 377 "asn1p_y.y" +#line 380 "asn1p_y.y" { yyval.a_oid = 0; } break; case 7: -#line 378 "asn1p_y.y" +#line 381 "asn1p_y.y" { yyval.a_oid = yyvsp[0].a_oid; } break; case 8: -#line 382 "asn1p_y.y" +#line 385 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; } break; case 9: -#line 385 "asn1p_y.y" +#line 388 "asn1p_y.y" { yyval.a_oid = 0; } break; case 10: -#line 391 "asn1p_y.y" +#line 394 "asn1p_y.y" { yyval.a_oid = asn1p_oid_new(); asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1874,7 +1874,7 @@ yyreduce: break; case 11: -#line 397 "asn1p_y.y" +#line 400 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1884,7 +1884,7 @@ yyreduce: break; case 12: -#line 406 "asn1p_y.y" +#line 409 "asn1p_y.y" { /* iso */ yyval.a_oid_arc.name = yyvsp[0].tv_str; yyval.a_oid_arc.number = -1; @@ -1892,7 +1892,7 @@ yyreduce: break; case 13: -#line 410 "asn1p_y.y" +#line 413 "asn1p_y.y" { /* iso(1) */ yyval.a_oid_arc.name = yyvsp[-3].tv_str; yyval.a_oid_arc.number = yyvsp[-1].a_int; @@ -1900,7 +1900,7 @@ yyreduce: break; case 14: -#line 414 "asn1p_y.y" +#line 417 "asn1p_y.y" { /* 1 */ yyval.a_oid_arc.name = 0; yyval.a_oid_arc.number = yyvsp[0].a_int; @@ -1908,61 +1908,61 @@ yyreduce: break; case 15: -#line 424 "asn1p_y.y" +#line 427 "asn1p_y.y" { yyval.a_module_flags = MSF_NOFLAGS; } break; case 16: -#line 425 "asn1p_y.y" +#line 428 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; } break; case 17: -#line 434 "asn1p_y.y" +#line 437 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; } break; case 18: -#line 437 "asn1p_y.y" +#line 440 "asn1p_y.y" { yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags; } break; case 19: -#line 446 "asn1p_y.y" +#line 449 "asn1p_y.y" { yyval.a_module_flags = MSF_EXPLICIT_TAGS; } break; case 20: -#line 449 "asn1p_y.y" +#line 452 "asn1p_y.y" { yyval.a_module_flags = MSF_IMPLICIT_TAGS; } break; case 21: -#line 452 "asn1p_y.y" +#line 455 "asn1p_y.y" { yyval.a_module_flags = MSF_AUTOMATIC_TAGS; } break; case 22: -#line 455 "asn1p_y.y" +#line 458 "asn1p_y.y" { yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED; } break; case 23: -#line 459 "asn1p_y.y" +#line 462 "asn1p_y.y" { /* X.680Amd1 specifies TAG and XER */ if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) { @@ -1981,26 +1981,26 @@ yyreduce: break; case 24: -#line 480 "asn1p_y.y" +#line 483 "asn1p_y.y" { yyval.a_module = 0; } break; case 25: -#line 481 "asn1p_y.y" +#line 484 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; } break; case 26: -#line 490 "asn1p_y.y" +#line 493 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; } break; case 27: -#line 493 "asn1p_y.y" +#line 496 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; @@ -2031,14 +2031,14 @@ yyreduce: break; case 28: -#line 526 "asn1p_y.y" +#line 529 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; } break; case 29: -#line 529 "asn1p_y.y" +#line 532 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2051,7 +2051,7 @@ yyreduce: break; case 30: -#line 538 "asn1p_y.y" +#line 541 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2062,7 +2062,7 @@ yyreduce: break; case 31: -#line 545 "asn1p_y.y" +#line 548 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2073,7 +2073,7 @@ yyreduce: break; case 32: -#line 558 "asn1p_y.y" +#line 561 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2084,12 +2084,12 @@ yyreduce: break; case 33: -#line 566 "asn1p_y.y" +#line 569 "asn1p_y.y" { asn1p_lexer_hack_push_encoding_control(); } break; case 34: -#line 567 "asn1p_y.y" +#line 570 "asn1p_y.y" { fprintf(stderr, "WARNING: ENCODING-CONTROL %s " @@ -2101,7 +2101,7 @@ yyreduce: break; case 35: -#line 579 "asn1p_y.y" +#line 582 "asn1p_y.y" { return yyerror( "Attempt to redefine a standard basic string type, " @@ -2110,7 +2110,7 @@ yyreduce: break; case 36: -#line 592 "asn1p_y.y" +#line 595 "asn1p_y.y" { if(!saved_aid && 0) return yyerror("Unterminated IMPORTS FROM, " @@ -2121,14 +2121,14 @@ yyreduce: break; case 37: -#line 602 "asn1p_y.y" +#line 605 "asn1p_y.y" { return yyerror("Empty IMPORTS list"); } break; case 38: -#line 608 "asn1p_y.y" +#line 611 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2137,7 +2137,7 @@ yyreduce: break; case 39: -#line 613 "asn1p_y.y" +#line 616 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next); @@ -2145,17 +2145,17 @@ yyreduce: break; case 40: -#line 620 "asn1p_y.y" +#line 623 "asn1p_y.y" { memset(&yyval.a_aid, 0, sizeof(yyval.a_aid)); } break; case 41: -#line 621 "asn1p_y.y" +#line 624 "asn1p_y.y" { yyval.a_aid.oid = yyvsp[0].a_oid; } break; case 42: -#line 625 "asn1p_y.y" +#line 628 "asn1p_y.y" { yyval.a_xports = yyvsp[-3].a_xports; yyval.a_xports->fromModuleName = yyvsp[-1].tv_str; @@ -2167,7 +2167,7 @@ yyreduce: break; case 43: -#line 636 "asn1p_y.y" +#line 639 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); checkmem(yyval.a_xports); @@ -2176,7 +2176,7 @@ yyreduce: break; case 44: -#line 641 "asn1p_y.y" +#line 644 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); @@ -2184,7 +2184,7 @@ yyreduce: break; case 45: -#line 648 "asn1p_y.y" +#line 651 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2194,7 +2194,7 @@ yyreduce: break; case 46: -#line 654 "asn1p_y.y" +#line 657 "asn1p_y.y" { /* Completely equivalent to above */ yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2204,7 +2204,7 @@ yyreduce: break; case 47: -#line 660 "asn1p_y.y" +#line 663 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2214,21 +2214,21 @@ yyreduce: break; case 48: -#line 669 "asn1p_y.y" +#line 672 "asn1p_y.y" { yyval.a_xports = yyvsp[-1].a_xports; } break; case 49: -#line 672 "asn1p_y.y" +#line 675 "asn1p_y.y" { yyval.a_xports = 0; } break; case 50: -#line 675 "asn1p_y.y" +#line 678 "asn1p_y.y" { /* Empty EXPORTS clause effectively prohibits export. */ yyval.a_xports = asn1p_xports_new(); @@ -2237,7 +2237,7 @@ yyreduce: break; case 51: -#line 683 "asn1p_y.y" +#line 686 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); assert(yyval.a_xports); @@ -2246,7 +2246,7 @@ yyreduce: break; case 52: -#line 688 "asn1p_y.y" +#line 691 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); @@ -2254,7 +2254,7 @@ yyreduce: break; case 53: -#line 695 "asn1p_y.y" +#line 698 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2264,7 +2264,7 @@ yyreduce: break; case 54: -#line 701 "asn1p_y.y" +#line 704 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2274,7 +2274,7 @@ yyreduce: break; case 55: -#line 707 "asn1p_y.y" +#line 710 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2284,12 +2284,12 @@ yyreduce: break; case 56: -#line 716 "asn1p_y.y" +#line 719 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; } break; case 57: -#line 719 "asn1p_y.y" +#line 722 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2300,14 +2300,14 @@ yyreduce: break; case 58: -#line 729 "asn1p_y.y" +#line 732 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 59: -#line 742 "asn1p_y.y" +#line 745 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2318,7 +2318,7 @@ yyreduce: break; case 60: -#line 752 "asn1p_y.y" +#line 755 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2330,7 +2330,7 @@ yyreduce: break; case 61: -#line 772 "asn1p_y.y" +#line 775 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2340,7 +2340,7 @@ yyreduce: break; case 62: -#line 778 "asn1p_y.y" +#line 781 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2350,7 +2350,7 @@ yyreduce: break; case 63: -#line 794 "asn1p_y.y" +#line 797 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-5].tv_str; @@ -2359,7 +2359,7 @@ yyreduce: break; case 64: -#line 800 "asn1p_y.y" +#line 803 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-5].tv_str; @@ -2368,7 +2368,7 @@ yyreduce: break; case 65: -#line 808 "asn1p_y.y" +#line 811 "asn1p_y.y" { int ret; yyval.a_plist = asn1p_paramlist_new(yylineno); @@ -2381,7 +2381,7 @@ yyreduce: break; case 66: -#line 817 "asn1p_y.y" +#line 820 "asn1p_y.y" { int ret; yyval.a_plist = yyvsp[-2].a_plist; @@ -2393,7 +2393,7 @@ yyreduce: break; case 67: -#line 828 "asn1p_y.y" +#line 831 "asn1p_y.y" { yyval.a_parg.governor = NULL; yyval.a_parg.argument = yyvsp[0].tv_str; @@ -2401,7 +2401,7 @@ yyreduce: break; case 68: -#line 832 "asn1p_y.y" +#line 835 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2412,7 +2412,7 @@ yyreduce: break; case 69: -#line 839 "asn1p_y.y" +#line 842 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2423,7 +2423,7 @@ yyreduce: break; case 70: -#line 846 "asn1p_y.y" +#line 849 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2435,7 +2435,7 @@ yyreduce: break; case 71: -#line 854 "asn1p_y.y" +#line 857 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2447,7 +2447,7 @@ yyreduce: break; case 72: -#line 865 "asn1p_y.y" +#line 868 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2456,7 +2456,7 @@ yyreduce: break; case 73: -#line 870 "asn1p_y.y" +#line 873 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2464,14 +2464,14 @@ yyreduce: break; case 74: -#line 877 "asn1p_y.y" +#line 880 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 75: -#line 880 "asn1p_y.y" +#line 883 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2483,7 +2483,7 @@ yyreduce: break; case 76: -#line 888 "asn1p_y.y" +#line 891 "asn1p_y.y" { asn1p_ref_t *ref; yyval.a_expr = asn1p_expr_new(yylineno); @@ -2498,7 +2498,7 @@ yyreduce: break; case 77: -#line 899 "asn1p_y.y" +#line 902 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr->expr_type = A1TC_VALUESET; @@ -2508,17 +2508,17 @@ yyreduce: break; case 78: -#line 922 "asn1p_y.y" +#line 925 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); } break; case 79: -#line 923 "asn1p_y.y" +#line 926 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 80: -#line 926 "asn1p_y.y" +#line 929 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2527,7 +2527,7 @@ yyreduce: break; case 81: -#line 931 "asn1p_y.y" +#line 934 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2535,7 +2535,7 @@ yyreduce: break; case 82: -#line 938 "asn1p_y.y" +#line 941 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2546,7 +2546,7 @@ yyreduce: break; case 83: -#line 945 "asn1p_y.y" +#line 948 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyvsp[0].a_marker.flags |= yyval.a_expr->marker.flags; @@ -2556,7 +2556,7 @@ yyreduce: break; case 84: -#line 951 "asn1p_y.y" +#line 954 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2567,14 +2567,14 @@ yyreduce: break; case 85: -#line 958 "asn1p_y.y" +#line 961 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 86: -#line 964 "asn1p_y.y" +#line 967 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2583,7 +2583,7 @@ yyreduce: break; case 87: -#line 969 "asn1p_y.y" +#line 972 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2591,7 +2591,7 @@ yyreduce: break; case 88: -#line 976 "asn1p_y.y" +#line 979 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2600,14 +2600,14 @@ yyreduce: break; case 89: -#line 981 "asn1p_y.y" +#line 984 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 90: -#line 984 "asn1p_y.y" +#line 987 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; _fixup_anonymous_identifier(yyval.a_expr); @@ -2615,7 +2615,7 @@ yyreduce: break; case 91: -#line 991 "asn1p_y.y" +#line 994 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; checkmem(yyval.a_expr); @@ -2626,17 +2626,17 @@ yyreduce: break; case 92: -#line 1001 "asn1p_y.y" +#line 1004 "asn1p_y.y" { yyval.a_int = 0; } break; case 93: -#line 1002 "asn1p_y.y" +#line 1005 "asn1p_y.y" { yyval.a_int = 1; } break; case 94: -#line 1006 "asn1p_y.y" +#line 1009 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2647,7 +2647,7 @@ yyreduce: break; case 95: -#line 1013 "asn1p_y.y" +#line 1016 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2655,7 +2655,7 @@ yyreduce: break; case 96: -#line 1023 "asn1p_y.y" +#line 1026 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2667,7 +2667,7 @@ yyreduce: break; case 97: -#line 1033 "asn1p_y.y" +#line 1036 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr->Identifier = yyvsp[-3].tv_str; @@ -2680,7 +2680,7 @@ yyreduce: break; case 98: -#line 1044 "asn1p_y.y" +#line 1047 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2692,7 +2692,7 @@ yyreduce: break; case 99: -#line 1054 "asn1p_y.y" +#line 1057 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2705,7 +2705,7 @@ yyreduce: break; case 100: -#line 1065 "asn1p_y.y" +#line 1068 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2717,7 +2717,7 @@ yyreduce: break; case 101: -#line 1075 "asn1p_y.y" +#line 1078 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2730,7 +2730,7 @@ yyreduce: break; case 102: -#line 1086 "asn1p_y.y" +#line 1089 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2743,31 +2743,31 @@ yyreduce: break; case 103: -#line 1098 "asn1p_y.y" +#line 1101 "asn1p_y.y" { yyval.a_wsynt = 0; } break; case 104: -#line 1099 "asn1p_y.y" +#line 1102 "asn1p_y.y" { yyval.a_wsynt = yyvsp[0].a_wsynt; } break; case 105: -#line 1106 "asn1p_y.y" +#line 1109 "asn1p_y.y" { asn1p_lexer_hack_enable_with_syntax(); } break; case 106: -#line 1108 "asn1p_y.y" +#line 1111 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; } break; case 107: -#line 1114 "asn1p_y.y" +#line 1117 "asn1p_y.y" { yyval.a_wsynt = asn1p_wsyntx_new(); TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); @@ -2775,7 +2775,7 @@ yyreduce: break; case 108: -#line 1118 "asn1p_y.y" +#line 1121 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); @@ -2783,7 +2783,7 @@ yyreduce: break; case 109: -#line 1125 "asn1p_y.y" +#line 1128 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_opaque.buf, 0); yyval.a_wchunk->type = WC_WHITESPACE; @@ -2791,14 +2791,14 @@ yyreduce: break; case 110: -#line 1129 "asn1p_y.y" +#line 1132 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_str, 0); } break; case 111: -#line 1132 "asn1p_y.y" +#line 1135 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].a_refcomp.name, 0); yyval.a_wchunk->type = WC_FIELD; @@ -2806,14 +2806,14 @@ yyreduce: break; case 112: -#line 1136 "asn1p_y.y" +#line 1139 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromsyntax(yyvsp[-1].a_wsynt); } break; case 113: -#line 1142 "asn1p_y.y" +#line 1145 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2825,7 +2825,7 @@ yyreduce: break; case 114: -#line 1150 "asn1p_y.y" +#line 1153 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2838,7 +2838,7 @@ yyreduce: break; case 115: -#line 1159 "asn1p_y.y" +#line 1162 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2851,7 +2851,7 @@ yyreduce: break; case 116: -#line 1171 "asn1p_y.y" +#line 1174 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr->tag = yyvsp[-2].a_tag; @@ -2874,7 +2874,7 @@ yyreduce: break; case 117: -#line 1193 "asn1p_y.y" +#line 1196 "asn1p_y.y" { yyval.a_int = asn1p_as_pointer ? EM_INDIRECT : 0; asn1p_as_pointer = 0; @@ -2882,7 +2882,7 @@ yyreduce: break; case 118: -#line 1200 "asn1p_y.y" +#line 1203 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->marker.flags |= yyvsp[-1].a_int; @@ -2902,14 +2902,14 @@ yyreduce: break; case 119: -#line 1219 "asn1p_y.y" +#line 1222 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 120: -#line 1222 "asn1p_y.y" +#line 1225 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2919,7 +2919,7 @@ yyreduce: break; case 121: -#line 1228 "asn1p_y.y" +#line 1231 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2929,7 +2929,7 @@ yyreduce: break; case 122: -#line 1234 "asn1p_y.y" +#line 1237 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2939,7 +2939,7 @@ yyreduce: break; case 123: -#line 1240 "asn1p_y.y" +#line 1243 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2953,7 +2953,7 @@ yyreduce: break; case 124: -#line 1250 "asn1p_y.y" +#line 1253 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2967,7 +2967,7 @@ yyreduce: break; case 125: -#line 1260 "asn1p_y.y" +#line 1263 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2977,7 +2977,7 @@ yyreduce: break; case 126: -#line 1266 "asn1p_y.y" +#line 1269 "asn1p_y.y" { int ret; yyval.a_expr = asn1p_expr_new(yylineno); @@ -2992,7 +2992,7 @@ yyreduce: break; case 127: -#line 1277 "asn1p_y.y" +#line 1280 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3003,7 +3003,7 @@ yyreduce: break; case 128: -#line 1292 "asn1p_y.y" +#line 1295 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3015,7 +3015,7 @@ yyreduce: break; case 129: -#line 1300 "asn1p_y.y" +#line 1303 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3029,7 +3029,7 @@ yyreduce: break; case 130: -#line 1310 "asn1p_y.y" +#line 1313 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3043,7 +3043,7 @@ yyreduce: break; case 131: -#line 1320 "asn1p_y.y" +#line 1323 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3057,7 +3057,7 @@ yyreduce: break; case 132: -#line 1330 "asn1p_y.y" +#line 1333 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3069,7 +3069,7 @@ yyreduce: break; case 133: -#line 1338 "asn1p_y.y" +#line 1341 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[0].a_ref; @@ -3092,7 +3092,7 @@ yyreduce: break; case 134: -#line 1360 "asn1p_y.y" +#line 1363 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3104,7 +3104,7 @@ yyreduce: break; case 135: -#line 1368 "asn1p_y.y" +#line 1371 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[-2].a_ref; @@ -3115,7 +3115,7 @@ yyreduce: break; case 137: -#line 1381 "asn1p_y.y" +#line 1384 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_AmpUppercase; yyval.a_refcomp.name = yyvsp[0].tv_str; @@ -3123,7 +3123,7 @@ yyreduce: break; case 138: -#line 1386 "asn1p_y.y" +#line 1389 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_Amplowercase; yyval.a_refcomp.name = yyvsp[0].tv_str; @@ -3131,7 +3131,7 @@ yyreduce: break; case 139: -#line 1395 "asn1p_y.y" +#line 1398 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); @@ -3139,7 +3139,7 @@ yyreduce: break; case 140: -#line 1399 "asn1p_y.y" +#line 1402 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); @@ -3147,7 +3147,7 @@ yyreduce: break; case 141: -#line 1403 "asn1p_y.y" +#line 1406 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_Amplowercase); @@ -3155,7 +3155,7 @@ yyreduce: break; case 142: -#line 1410 "asn1p_y.y" +#line 1413 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS); @@ -3163,7 +3163,7 @@ yyreduce: break; case 143: -#line 1430 "asn1p_y.y" +#line 1433 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == NULL); @@ -3174,7 +3174,7 @@ yyreduce: break; case 146: -#line 1442 "asn1p_y.y" +#line 1445 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3185,12 +3185,12 @@ yyreduce: break; case 147: -#line 1449 "asn1p_y.y" +#line 1452 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); } break; case 148: -#line 1449 "asn1p_y.y" +#line 1452 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); @@ -3199,7 +3199,7 @@ yyreduce: break; case 149: -#line 1454 "asn1p_y.y" +#line 1457 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3208,7 +3208,7 @@ yyreduce: break; case 150: -#line 1462 "asn1p_y.y" +#line 1465 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3217,7 +3217,7 @@ yyreduce: break; case 151: -#line 1467 "asn1p_y.y" +#line 1470 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3226,7 +3226,7 @@ yyreduce: break; case 152: -#line 1472 "asn1p_y.y" +#line 1475 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); checkmem(yyval.a_value); @@ -3234,7 +3234,7 @@ yyreduce: break; case 153: -#line 1476 "asn1p_y.y" +#line 1479 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); checkmem(yyval.a_value); @@ -3242,21 +3242,21 @@ yyreduce: break; case 154: -#line 1480 "asn1p_y.y" +#line 1483 "asn1p_y.y" { yyval.a_value = yyval.a_value; } break; case 155: -#line 1483 "asn1p_y.y" +#line 1486 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; } break; case 156: -#line 1489 "asn1p_y.y" +#line 1492 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3271,7 +3271,7 @@ yyreduce: break; case 157: -#line 1500 "asn1p_y.y" +#line 1503 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3289,7 +3289,7 @@ yyreduce: break; case 158: -#line 1518 "asn1p_y.y" +#line 1521 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); @@ -3297,7 +3297,7 @@ yyreduce: break; case 159: -#line 1522 "asn1p_y.y" +#line 1525 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -3306,7 +3306,7 @@ yyreduce: break; case 160: -#line 1527 "asn1p_y.y" +#line 1530 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -3315,7 +3315,7 @@ yyreduce: break; case 161: -#line 1561 "asn1p_y.y" +#line 1564 "asn1p_y.y" { yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1; yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1); @@ -3328,7 +3328,7 @@ yyreduce: break; case 162: -#line 1570 "asn1p_y.y" +#line 1573 "asn1p_y.y" { int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len; char *p = malloc(newsize + 1); @@ -3344,87 +3344,87 @@ yyreduce: break; case 163: -#line 1585 "asn1p_y.y" +#line 1588 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BOOLEAN; } break; case 164: -#line 1586 "asn1p_y.y" +#line 1589 "asn1p_y.y" { yyval.a_type = ASN_BASIC_NULL; } break; case 165: -#line 1587 "asn1p_y.y" +#line 1590 "asn1p_y.y" { yyval.a_type = ASN_BASIC_REAL; } break; case 166: -#line 1588 "asn1p_y.y" +#line 1591 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; } break; case 167: -#line 1589 "asn1p_y.y" +#line 1592 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OCTET_STRING; } break; case 168: -#line 1590 "asn1p_y.y" +#line 1593 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; } break; case 169: -#line 1591 "asn1p_y.y" +#line 1594 "asn1p_y.y" { yyval.a_type = ASN_BASIC_RELATIVE_OID; } break; case 170: -#line 1592 "asn1p_y.y" +#line 1595 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EXTERNAL; } break; case 171: -#line 1593 "asn1p_y.y" +#line 1596 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; } break; case 172: -#line 1594 "asn1p_y.y" +#line 1597 "asn1p_y.y" { yyval.a_type = ASN_BASIC_CHARACTER_STRING; } break; case 173: -#line 1595 "asn1p_y.y" +#line 1598 "asn1p_y.y" { yyval.a_type = ASN_BASIC_UTCTime; } break; case 174: -#line 1596 "asn1p_y.y" +#line 1599 "asn1p_y.y" { yyval.a_type = ASN_BASIC_GeneralizedTime; } break; case 175: -#line 1597 "asn1p_y.y" +#line 1600 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; } break; case 176: -#line 1604 "asn1p_y.y" +#line 1607 "asn1p_y.y" { yyval.a_type = ASN_BASIC_INTEGER; } break; case 177: -#line 1605 "asn1p_y.y" +#line 1608 "asn1p_y.y" { yyval.a_type = ASN_BASIC_ENUMERATED; } break; case 178: -#line 1606 "asn1p_y.y" +#line 1609 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BIT_STRING; } break; case 179: -#line 1610 "asn1p_y.y" +#line 1613 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3434,7 +3434,7 @@ yyreduce: break; case 180: -#line 1616 "asn1p_y.y" +#line 1619 "asn1p_y.y" { if(yyvsp[0].a_expr) { yyval.a_expr = yyvsp[0].a_expr; @@ -3448,12 +3448,12 @@ yyreduce: break; case 181: -#line 1629 "asn1p_y.y" +#line 1632 "asn1p_y.y" { yyval.a_type = ASN_STRING_BMPString; } break; case 182: -#line 1630 "asn1p_y.y" +#line 1633 "asn1p_y.y" { yyval.a_type = ASN_STRING_GeneralString; fprintf(stderr, "WARNING: GeneralString is not fully supported\n"); @@ -3461,7 +3461,7 @@ yyreduce: break; case 183: -#line 1634 "asn1p_y.y" +#line 1637 "asn1p_y.y" { yyval.a_type = ASN_STRING_GraphicString; fprintf(stderr, "WARNING: GraphicString is not fully supported\n"); @@ -3469,27 +3469,27 @@ yyreduce: break; case 184: -#line 1638 "asn1p_y.y" +#line 1641 "asn1p_y.y" { yyval.a_type = ASN_STRING_IA5String; } break; case 185: -#line 1639 "asn1p_y.y" +#line 1642 "asn1p_y.y" { yyval.a_type = ASN_STRING_ISO646String; } break; case 186: -#line 1640 "asn1p_y.y" +#line 1643 "asn1p_y.y" { yyval.a_type = ASN_STRING_NumericString; } break; case 187: -#line 1641 "asn1p_y.y" +#line 1644 "asn1p_y.y" { yyval.a_type = ASN_STRING_PrintableString; } break; case 188: -#line 1642 "asn1p_y.y" +#line 1645 "asn1p_y.y" { yyval.a_type = ASN_STRING_T61String; fprintf(stderr, "WARNING: T61String is not fully supported\n"); @@ -3497,22 +3497,22 @@ yyreduce: break; case 189: -#line 1646 "asn1p_y.y" +#line 1649 "asn1p_y.y" { yyval.a_type = ASN_STRING_TeletexString; } break; case 190: -#line 1647 "asn1p_y.y" +#line 1650 "asn1p_y.y" { yyval.a_type = ASN_STRING_UniversalString; } break; case 191: -#line 1648 "asn1p_y.y" +#line 1651 "asn1p_y.y" { yyval.a_type = ASN_STRING_UTF8String; } break; case 192: -#line 1649 "asn1p_y.y" +#line 1652 "asn1p_y.y" { yyval.a_type = ASN_STRING_VideotexString; fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); @@ -3520,36 +3520,36 @@ yyreduce: break; case 193: -#line 1653 "asn1p_y.y" +#line 1656 "asn1p_y.y" { yyval.a_type = ASN_STRING_VisibleString; } break; case 194: -#line 1654 "asn1p_y.y" +#line 1657 "asn1p_y.y" { yyval.a_type = ASN_STRING_ObjectDescriptor; } break; case 200: -#line 1666 "asn1p_y.y" +#line 1669 "asn1p_y.y" { yyval.a_constr = 0; } break; case 201: -#line 1667 "asn1p_y.y" +#line 1670 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; case 202: -#line 1673 "asn1p_y.y" +#line 1676 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0); } break; case 203: -#line 1676 "asn1p_y.y" +#line 1679 "asn1p_y.y" { /* * This is a special case, for compatibility purposes. @@ -3560,21 +3560,21 @@ yyreduce: break; case 204: -#line 1686 "asn1p_y.y" +#line 1689 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; } break; case 205: -#line 1689 "asn1p_y.y" +#line 1692 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr); } break; case 206: -#line 1695 "asn1p_y.y" +#line 1698 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr->type = ACT_EL_EXT; @@ -3582,14 +3582,14 @@ yyreduce: break; case 207: -#line 1699 "asn1p_y.y" +#line 1702 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; case 208: -#line 1702 "asn1p_y.y" +#line 1705 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3599,7 +3599,7 @@ yyreduce: break; case 209: -#line 1708 "asn1p_y.y" +#line 1711 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3611,42 +3611,42 @@ yyreduce: break; case 210: -#line 1719 "asn1p_y.y" +#line 1722 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; case 211: -#line 1722 "asn1p_y.y" +#line 1725 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0); } break; case 212: -#line 1725 "asn1p_y.y" +#line 1728 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; case 213: -#line 1728 "asn1p_y.y" +#line 1731 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; case 214: -#line 1731 "asn1p_y.y" +#line 1734 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; case 215: -#line 1737 "asn1p_y.y" +#line 1740 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -3658,7 +3658,7 @@ yyreduce: break; case 216: -#line 1745 "asn1p_y.y" +#line 1748 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -3670,7 +3670,7 @@ yyreduce: break; case 217: -#line 1753 "asn1p_y.y" +#line 1756 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3680,7 +3680,7 @@ yyreduce: break; case 218: -#line 1759 "asn1p_y.y" +#line 1762 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3690,7 +3690,7 @@ yyreduce: break; case 219: -#line 1765 "asn1p_y.y" +#line 1768 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3701,7 +3701,7 @@ yyreduce: break; case 220: -#line 1772 "asn1p_y.y" +#line 1775 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3713,7 +3713,7 @@ yyreduce: break; case 221: -#line 1780 "asn1p_y.y" +#line 1783 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3725,7 +3725,7 @@ yyreduce: break; case 222: -#line 1788 "asn1p_y.y" +#line 1791 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3738,26 +3738,26 @@ yyreduce: break; case 223: -#line 1797 "asn1p_y.y" - { - yyval.a_constr = yyvsp[0].a_constr; - } - break; - - case 224: #line 1800 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; + case 224: +#line 1803 "asn1p_y.y" + { + yyval.a_constr = yyvsp[0].a_constr; + } + break; + case 225: -#line 1804 "asn1p_y.y" +#line 1807 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); } break; case 226: -#line 1804 "asn1p_y.y" +#line 1807 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3769,41 +3769,41 @@ yyreduce: break; case 227: -#line 1815 "asn1p_y.y" +#line 1818 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RANGE; } break; case 228: -#line 1816 "asn1p_y.y" +#line 1819 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RLRANGE; } break; case 229: -#line 1817 "asn1p_y.y" +#line 1820 "asn1p_y.y" { yyval.a_ctype = ACT_EL_LLRANGE; } break; case 230: -#line 1818 "asn1p_y.y" +#line 1821 "asn1p_y.y" { yyval.a_ctype = ACT_EL_ULRANGE; } break; case 231: -#line 1822 "asn1p_y.y" +#line 1825 "asn1p_y.y" { yyval.a_ctype = ACT_CT_SIZE; } break; case 232: -#line 1825 "asn1p_y.y" +#line 1828 "asn1p_y.y" { yyval.a_ctype = ACT_CT_FROM; } break; case 233: -#line 1831 "asn1p_y.y" +#line 1834 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3812,7 +3812,7 @@ yyreduce: break; case 234: -#line 1836 "asn1p_y.y" +#line 1839 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(1); checkmem(yyval.a_value); @@ -3820,22 +3820,8 @@ yyreduce: } break; - case 235: -#line 1841 "asn1p_y.y" - { - yyval.a_value = yyvsp[0].a_value; - } - break; - - case 236: -#line 1844 "asn1p_y.y" - { - yyval.a_value = yyvsp[0].a_value; - } - break; - case 237: -#line 1847 "asn1p_y.y" +#line 1846 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3850,7 +3836,7 @@ yyreduce: break; case 238: -#line 1861 "asn1p_y.y" +#line 1860 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3865,35 +3851,35 @@ yyreduce: break; case 239: -#line 1875 "asn1p_y.y" +#line 1874 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0); } break; case 240: -#line 1878 "asn1p_y.y" +#line 1877 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0); } break; case 241: -#line 1884 "asn1p_y.y" +#line 1883 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; case 242: -#line 1887 "asn1p_y.y" +#line 1886 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; case 243: -#line 1893 "asn1p_y.y" +#line 1892 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3903,7 +3889,7 @@ yyreduce: break; case 244: -#line 1899 "asn1p_y.y" +#line 1898 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3915,52 +3901,52 @@ yyreduce: break; case 245: -#line 1913 "asn1p_y.y" +#line 1912 "asn1p_y.y" { yyval.a_pres = ACPRES_DEFAULT; } break; case 246: -#line 1914 "asn1p_y.y" +#line 1913 "asn1p_y.y" { yyval.a_pres = yyvsp[0].a_pres; } break; case 247: -#line 1918 "asn1p_y.y" +#line 1917 "asn1p_y.y" { yyval.a_pres = ACPRES_PRESENT; } break; case 248: -#line 1921 "asn1p_y.y" +#line 1920 "asn1p_y.y" { yyval.a_pres = ACPRES_ABSENT; } break; case 249: -#line 1924 "asn1p_y.y" +#line 1923 "asn1p_y.y" { yyval.a_pres = ACPRES_OPTIONAL; } break; case 250: -#line 1930 "asn1p_y.y" +#line 1929 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; case 251: -#line 1933 "asn1p_y.y" +#line 1932 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; case 252: -#line 1942 "asn1p_y.y" +#line 1941 "asn1p_y.y" { asn1p_ref_t *ref = asn1p_ref_new(yylineno); asn1p_constraint_t *ct; @@ -3976,14 +3962,14 @@ yyreduce: break; case 253: -#line 1957 "asn1p_y.y" +#line 1956 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr); } break; case 254: -#line 1963 "asn1p_y.y" +#line 1962 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3993,7 +3979,7 @@ yyreduce: break; case 255: -#line 1969 "asn1p_y.y" +#line 1968 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -4005,7 +3991,7 @@ yyreduce: break; case 256: -#line 1983 "asn1p_y.y" +#line 1982 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 2); int ret; @@ -4020,7 +4006,7 @@ yyreduce: break; case 257: -#line 1994 "asn1p_y.y" +#line 1993 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 3); int ret; @@ -4036,14 +4022,14 @@ yyreduce: break; case 258: -#line 2010 "asn1p_y.y" +#line 2009 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; } break; case 259: -#line 2013 "asn1p_y.y" +#line 2012 "asn1p_y.y" { int l1 = strlen(yyvsp[-2].tv_str); int l3 = strlen(yyvsp[0].tv_str); @@ -4056,7 +4042,7 @@ yyreduce: break; case 260: -#line 2031 "asn1p_y.y" +#line 2030 "asn1p_y.y" { yyval.a_marker.flags = EM_NOMARK; yyval.a_marker.default_value = 0; @@ -4064,12 +4050,12 @@ yyreduce: break; case 261: -#line 2035 "asn1p_y.y" +#line 2034 "asn1p_y.y" { yyval.a_marker = yyvsp[0].a_marker; } break; case 262: -#line 2039 "asn1p_y.y" +#line 2038 "asn1p_y.y" { yyval.a_marker.flags = EM_OPTIONAL | EM_INDIRECT; yyval.a_marker.default_value = 0; @@ -4077,7 +4063,7 @@ yyreduce: break; case 263: -#line 2043 "asn1p_y.y" +#line 2042 "asn1p_y.y" { yyval.a_marker.flags = EM_DEFAULT; yyval.a_marker.default_value = yyvsp[0].a_value; @@ -4085,7 +4071,7 @@ yyreduce: break; case 264: -#line 2066 "asn1p_y.y" +#line 2065 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -4093,14 +4079,14 @@ yyreduce: break; case 265: -#line 2070 "asn1p_y.y" +#line 2069 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; } break; case 266: -#line 2076 "asn1p_y.y" +#line 2075 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -4109,7 +4095,7 @@ yyreduce: break; case 267: -#line 2081 "asn1p_y.y" +#line 2080 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -4117,7 +4103,7 @@ yyreduce: break; case 268: -#line 2088 "asn1p_y.y" +#line 2087 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -4128,7 +4114,7 @@ yyreduce: break; case 269: -#line 2095 "asn1p_y.y" +#line 2094 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -4140,7 +4126,7 @@ yyreduce: break; case 270: -#line 2103 "asn1p_y.y" +#line 2102 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -4152,7 +4138,7 @@ yyreduce: break; case 271: -#line 2111 "asn1p_y.y" +#line 2110 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -4163,7 +4149,7 @@ yyreduce: break; case 272: -#line 2118 "asn1p_y.y" +#line 2117 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -4175,7 +4161,7 @@ yyreduce: break; case 273: -#line 2129 "asn1p_y.y" +#line 2128 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -4183,92 +4169,84 @@ yyreduce: break; case 274: -#line 2133 "asn1p_y.y" +#line 2132 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); } break; - case 275: -#line 2164 "asn1p_y.y" - { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); } - break; - case 276: -#line 2165 "asn1p_y.y" - { yyval.a_tag = yyvsp[0].a_tag; } +#line 2140 "asn1p_y.y" + { + yyval.a_value = asn1p_value_fromdouble(yyvsp[0].a_dbl); + checkmem(yyval.a_value); + } break; case 277: -#line 2169 "asn1p_y.y" +#line 2171 "asn1p_y.y" + { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); } + break; + + case 278: +#line 2172 "asn1p_y.y" + { yyval.a_tag = yyvsp[0].a_tag; } + break; + + case 279: +#line 2176 "asn1p_y.y" { yyval.a_tag = yyvsp[-1].a_tag; yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; } break; - case 278: -#line 2176 "asn1p_y.y" + case 280: +#line 2183 "asn1p_y.y" { yyval.a_tag = yyvsp[-2].a_tag; yyval.a_tag.tag_value = yyvsp[-1].a_int; } break; - case 279: -#line 2182 "asn1p_y.y" + case 281: +#line 2189 "asn1p_y.y" { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; } break; - case 280: -#line 2183 "asn1p_y.y" + case 282: +#line 2190 "asn1p_y.y" { yyval.a_tag.tag_class = TC_UNIVERSAL; } break; - case 281: -#line 2184 "asn1p_y.y" + case 283: +#line 2191 "asn1p_y.y" { yyval.a_tag.tag_class = TC_APPLICATION; } break; - case 282: -#line 2185 "asn1p_y.y" + case 284: +#line 2192 "asn1p_y.y" { yyval.a_tag.tag_class = TC_PRIVATE; } break; - case 283: -#line 2189 "asn1p_y.y" + case 285: +#line 2196 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_DEFAULT; } break; - case 284: -#line 2190 "asn1p_y.y" + case 286: +#line 2197 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_IMPLICIT; } break; - case 285: -#line 2191 "asn1p_y.y" + case 287: +#line 2198 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_EXPLICIT; } break; - case 286: -#line 2195 "asn1p_y.y" - { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - } - break; - - case 287: -#line 2199 "asn1p_y.y" - { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - } - break; - case 288: -#line 2207 "asn1p_y.y" +#line 2202 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -4276,19 +4254,35 @@ yyreduce: break; case 289: -#line 2214 "asn1p_y.y" - { yyval.tv_str = 0; } +#line 2206 "asn1p_y.y" + { + checkmem(yyvsp[0].tv_str); + yyval.tv_str = yyvsp[0].tv_str; + } break; case 290: -#line 2215 "asn1p_y.y" +#line 2214 "asn1p_y.y" { + checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; } break; case 291: #line 2221 "asn1p_y.y" + { yyval.tv_str = 0; } + break; + + case 292: +#line 2222 "asn1p_y.y" + { + yyval.tv_str = yyvsp[0].tv_str; + } + break; + + case 293: +#line 2228 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -4299,7 +4293,7 @@ yyreduce: } /* Line 1016 of /usr/local/share/bison/yacc.c. */ -#line 4303 "asn1p_y.c" +#line 4297 "asn1p_y.c" yyvsp -= yylen; yyssp -= yylen; @@ -4518,7 +4512,7 @@ yyreturn: } -#line 2227 "asn1p_y.y" +#line 2234 "asn1p_y.y" diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h index b7b7f1a1..3874ede4 100644 --- a/libasn1parser/asn1p_y.h +++ b/libasn1parser/asn1p_y.h @@ -40,100 +40,101 @@ TOK_hstring = 263, TOK_identifier = 264, TOK_number = 265, - TOK_tuple = 266, - TOK_quadruple = 267, - TOK_number_negative = 268, - TOK_typereference = 269, - TOK_capitalreference = 270, - TOK_typefieldreference = 271, - TOK_valuefieldreference = 272, - TOK_Literal = 273, - TOK_ABSENT = 274, - TOK_ABSTRACT_SYNTAX = 275, - TOK_ALL = 276, - TOK_ANY = 277, - TOK_APPLICATION = 278, - TOK_AUTOMATIC = 279, - TOK_BEGIN = 280, - TOK_BIT = 281, - TOK_BMPString = 282, - TOK_BOOLEAN = 283, - TOK_BY = 284, - TOK_CHARACTER = 285, - TOK_CHOICE = 286, - TOK_CLASS = 287, - TOK_COMPONENT = 288, - TOK_COMPONENTS = 289, - TOK_CONSTRAINED = 290, - TOK_CONTAINING = 291, - TOK_DEFAULT = 292, - TOK_DEFINITIONS = 293, - TOK_DEFINED = 294, - TOK_EMBEDDED = 295, - TOK_ENCODED = 296, - TOK_ENCODING_CONTROL = 297, - TOK_END = 298, - TOK_ENUMERATED = 299, - TOK_EXPLICIT = 300, - TOK_EXPORTS = 301, - TOK_EXTENSIBILITY = 302, - TOK_EXTERNAL = 303, - TOK_FALSE = 304, - TOK_FROM = 305, - TOK_GeneralizedTime = 306, - TOK_GeneralString = 307, - TOK_GraphicString = 308, - TOK_IA5String = 309, - TOK_IDENTIFIER = 310, - TOK_IMPLICIT = 311, - TOK_IMPLIED = 312, - TOK_IMPORTS = 313, - TOK_INCLUDES = 314, - TOK_INSTANCE = 315, - TOK_INSTRUCTIONS = 316, - TOK_INTEGER = 317, - TOK_ISO646String = 318, - TOK_MAX = 319, - TOK_MIN = 320, - TOK_MINUS_INFINITY = 321, - TOK_NULL = 322, - TOK_NumericString = 323, - TOK_OBJECT = 324, - TOK_ObjectDescriptor = 325, - TOK_OCTET = 326, - TOK_OF = 327, - TOK_OPTIONAL = 328, - TOK_PATTERN = 329, - TOK_PDV = 330, - TOK_PLUS_INFINITY = 331, - TOK_PRESENT = 332, - TOK_PrintableString = 333, - TOK_PRIVATE = 334, - TOK_REAL = 335, - TOK_RELATIVE_OID = 336, - TOK_SEQUENCE = 337, - TOK_SET = 338, - TOK_SIZE = 339, - TOK_STRING = 340, - TOK_SYNTAX = 341, - TOK_T61String = 342, - TOK_TAGS = 343, - TOK_TeletexString = 344, - TOK_TRUE = 345, - TOK_TYPE_IDENTIFIER = 346, - TOK_UNIQUE = 347, - TOK_UNIVERSAL = 348, - TOK_UniversalString = 349, - TOK_UTCTime = 350, - TOK_UTF8String = 351, - TOK_VideotexString = 352, - TOK_VisibleString = 353, - TOK_WITH = 354, - TOK_EXCEPT = 355, - TOK_INTERSECTION = 356, - TOK_UNION = 357, - TOK_TwoDots = 358, - TOK_ThreeDots = 359 + TOK_number_negative = 266, + TOK_realnumber = 267, + TOK_tuple = 268, + TOK_quadruple = 269, + TOK_typereference = 270, + TOK_capitalreference = 271, + TOK_typefieldreference = 272, + TOK_valuefieldreference = 273, + TOK_Literal = 274, + TOK_ABSENT = 275, + TOK_ABSTRACT_SYNTAX = 276, + TOK_ALL = 277, + TOK_ANY = 278, + TOK_APPLICATION = 279, + TOK_AUTOMATIC = 280, + TOK_BEGIN = 281, + TOK_BIT = 282, + TOK_BMPString = 283, + TOK_BOOLEAN = 284, + TOK_BY = 285, + TOK_CHARACTER = 286, + TOK_CHOICE = 287, + TOK_CLASS = 288, + TOK_COMPONENT = 289, + TOK_COMPONENTS = 290, + TOK_CONSTRAINED = 291, + TOK_CONTAINING = 292, + TOK_DEFAULT = 293, + TOK_DEFINITIONS = 294, + TOK_DEFINED = 295, + TOK_EMBEDDED = 296, + TOK_ENCODED = 297, + TOK_ENCODING_CONTROL = 298, + TOK_END = 299, + TOK_ENUMERATED = 300, + TOK_EXPLICIT = 301, + TOK_EXPORTS = 302, + TOK_EXTENSIBILITY = 303, + TOK_EXTERNAL = 304, + TOK_FALSE = 305, + TOK_FROM = 306, + TOK_GeneralizedTime = 307, + TOK_GeneralString = 308, + TOK_GraphicString = 309, + TOK_IA5String = 310, + TOK_IDENTIFIER = 311, + TOK_IMPLICIT = 312, + TOK_IMPLIED = 313, + TOK_IMPORTS = 314, + TOK_INCLUDES = 315, + TOK_INSTANCE = 316, + TOK_INSTRUCTIONS = 317, + TOK_INTEGER = 318, + TOK_ISO646String = 319, + TOK_MAX = 320, + TOK_MIN = 321, + TOK_MINUS_INFINITY = 322, + TOK_NULL = 323, + TOK_NumericString = 324, + TOK_OBJECT = 325, + TOK_ObjectDescriptor = 326, + TOK_OCTET = 327, + TOK_OF = 328, + TOK_OPTIONAL = 329, + TOK_PATTERN = 330, + TOK_PDV = 331, + TOK_PLUS_INFINITY = 332, + TOK_PRESENT = 333, + TOK_PrintableString = 334, + TOK_PRIVATE = 335, + TOK_REAL = 336, + TOK_RELATIVE_OID = 337, + TOK_SEQUENCE = 338, + TOK_SET = 339, + TOK_SIZE = 340, + TOK_STRING = 341, + TOK_SYNTAX = 342, + TOK_T61String = 343, + TOK_TAGS = 344, + TOK_TeletexString = 345, + TOK_TRUE = 346, + TOK_TYPE_IDENTIFIER = 347, + TOK_UNIQUE = 348, + TOK_UNIVERSAL = 349, + TOK_UniversalString = 350, + TOK_UTCTime = 351, + TOK_UTF8String = 352, + TOK_VideotexString = 353, + TOK_VisibleString = 354, + TOK_WITH = 355, + TOK_EXCEPT = 356, + TOK_INTERSECTION = 357, + TOK_UNION = 358, + TOK_TwoDots = 359, + TOK_ThreeDots = 360 }; #endif #define TOK_PPEQ 258 @@ -144,100 +145,101 @@ #define TOK_hstring 263 #define TOK_identifier 264 #define TOK_number 265 -#define TOK_tuple 266 -#define TOK_quadruple 267 -#define TOK_number_negative 268 -#define TOK_typereference 269 -#define TOK_capitalreference 270 -#define TOK_typefieldreference 271 -#define TOK_valuefieldreference 272 -#define TOK_Literal 273 -#define TOK_ABSENT 274 -#define TOK_ABSTRACT_SYNTAX 275 -#define TOK_ALL 276 -#define TOK_ANY 277 -#define TOK_APPLICATION 278 -#define TOK_AUTOMATIC 279 -#define TOK_BEGIN 280 -#define TOK_BIT 281 -#define TOK_BMPString 282 -#define TOK_BOOLEAN 283 -#define TOK_BY 284 -#define TOK_CHARACTER 285 -#define TOK_CHOICE 286 -#define TOK_CLASS 287 -#define TOK_COMPONENT 288 -#define TOK_COMPONENTS 289 -#define TOK_CONSTRAINED 290 -#define TOK_CONTAINING 291 -#define TOK_DEFAULT 292 -#define TOK_DEFINITIONS 293 -#define TOK_DEFINED 294 -#define TOK_EMBEDDED 295 -#define TOK_ENCODED 296 -#define TOK_ENCODING_CONTROL 297 -#define TOK_END 298 -#define TOK_ENUMERATED 299 -#define TOK_EXPLICIT 300 -#define TOK_EXPORTS 301 -#define TOK_EXTENSIBILITY 302 -#define TOK_EXTERNAL 303 -#define TOK_FALSE 304 -#define TOK_FROM 305 -#define TOK_GeneralizedTime 306 -#define TOK_GeneralString 307 -#define TOK_GraphicString 308 -#define TOK_IA5String 309 -#define TOK_IDENTIFIER 310 -#define TOK_IMPLICIT 311 -#define TOK_IMPLIED 312 -#define TOK_IMPORTS 313 -#define TOK_INCLUDES 314 -#define TOK_INSTANCE 315 -#define TOK_INSTRUCTIONS 316 -#define TOK_INTEGER 317 -#define TOK_ISO646String 318 -#define TOK_MAX 319 -#define TOK_MIN 320 -#define TOK_MINUS_INFINITY 321 -#define TOK_NULL 322 -#define TOK_NumericString 323 -#define TOK_OBJECT 324 -#define TOK_ObjectDescriptor 325 -#define TOK_OCTET 326 -#define TOK_OF 327 -#define TOK_OPTIONAL 328 -#define TOK_PATTERN 329 -#define TOK_PDV 330 -#define TOK_PLUS_INFINITY 331 -#define TOK_PRESENT 332 -#define TOK_PrintableString 333 -#define TOK_PRIVATE 334 -#define TOK_REAL 335 -#define TOK_RELATIVE_OID 336 -#define TOK_SEQUENCE 337 -#define TOK_SET 338 -#define TOK_SIZE 339 -#define TOK_STRING 340 -#define TOK_SYNTAX 341 -#define TOK_T61String 342 -#define TOK_TAGS 343 -#define TOK_TeletexString 344 -#define TOK_TRUE 345 -#define TOK_TYPE_IDENTIFIER 346 -#define TOK_UNIQUE 347 -#define TOK_UNIVERSAL 348 -#define TOK_UniversalString 349 -#define TOK_UTCTime 350 -#define TOK_UTF8String 351 -#define TOK_VideotexString 352 -#define TOK_VisibleString 353 -#define TOK_WITH 354 -#define TOK_EXCEPT 355 -#define TOK_INTERSECTION 356 -#define TOK_UNION 357 -#define TOK_TwoDots 358 -#define TOK_ThreeDots 359 +#define TOK_number_negative 266 +#define TOK_realnumber 267 +#define TOK_tuple 268 +#define TOK_quadruple 269 +#define TOK_typereference 270 +#define TOK_capitalreference 271 +#define TOK_typefieldreference 272 +#define TOK_valuefieldreference 273 +#define TOK_Literal 274 +#define TOK_ABSENT 275 +#define TOK_ABSTRACT_SYNTAX 276 +#define TOK_ALL 277 +#define TOK_ANY 278 +#define TOK_APPLICATION 279 +#define TOK_AUTOMATIC 280 +#define TOK_BEGIN 281 +#define TOK_BIT 282 +#define TOK_BMPString 283 +#define TOK_BOOLEAN 284 +#define TOK_BY 285 +#define TOK_CHARACTER 286 +#define TOK_CHOICE 287 +#define TOK_CLASS 288 +#define TOK_COMPONENT 289 +#define TOK_COMPONENTS 290 +#define TOK_CONSTRAINED 291 +#define TOK_CONTAINING 292 +#define TOK_DEFAULT 293 +#define TOK_DEFINITIONS 294 +#define TOK_DEFINED 295 +#define TOK_EMBEDDED 296 +#define TOK_ENCODED 297 +#define TOK_ENCODING_CONTROL 298 +#define TOK_END 299 +#define TOK_ENUMERATED 300 +#define TOK_EXPLICIT 301 +#define TOK_EXPORTS 302 +#define TOK_EXTENSIBILITY 303 +#define TOK_EXTERNAL 304 +#define TOK_FALSE 305 +#define TOK_FROM 306 +#define TOK_GeneralizedTime 307 +#define TOK_GeneralString 308 +#define TOK_GraphicString 309 +#define TOK_IA5String 310 +#define TOK_IDENTIFIER 311 +#define TOK_IMPLICIT 312 +#define TOK_IMPLIED 313 +#define TOK_IMPORTS 314 +#define TOK_INCLUDES 315 +#define TOK_INSTANCE 316 +#define TOK_INSTRUCTIONS 317 +#define TOK_INTEGER 318 +#define TOK_ISO646String 319 +#define TOK_MAX 320 +#define TOK_MIN 321 +#define TOK_MINUS_INFINITY 322 +#define TOK_NULL 323 +#define TOK_NumericString 324 +#define TOK_OBJECT 325 +#define TOK_ObjectDescriptor 326 +#define TOK_OCTET 327 +#define TOK_OF 328 +#define TOK_OPTIONAL 329 +#define TOK_PATTERN 330 +#define TOK_PDV 331 +#define TOK_PLUS_INFINITY 332 +#define TOK_PRESENT 333 +#define TOK_PrintableString 334 +#define TOK_PRIVATE 335 +#define TOK_REAL 336 +#define TOK_RELATIVE_OID 337 +#define TOK_SEQUENCE 338 +#define TOK_SET 339 +#define TOK_SIZE 340 +#define TOK_STRING 341 +#define TOK_SYNTAX 342 +#define TOK_T61String 343 +#define TOK_TAGS 344 +#define TOK_TeletexString 345 +#define TOK_TRUE 346 +#define TOK_TYPE_IDENTIFIER 347 +#define TOK_UNIQUE 348 +#define TOK_UNIVERSAL 349 +#define TOK_UniversalString 350 +#define TOK_UTCTime 351 +#define TOK_UTF8String 352 +#define TOK_VideotexString 353 +#define TOK_VisibleString 354 +#define TOK_WITH 355 +#define TOK_EXCEPT 356 +#define TOK_INTERSECTION 357 +#define TOK_UNION 358 +#define TOK_TwoDots 359 +#define TOK_ThreeDots 360 @@ -267,6 +269,7 @@ typedef union { struct asn1p_expr_marker_s a_marker; /* OPTIONAL/DEFAULT */ enum asn1p_constr_pres_e a_pres; /* PRESENT/ABSENT/OPTIONAL */ asn1c_integer_t a_int; + double a_dbl; char *tv_str; struct { char *buf; @@ -278,7 +281,7 @@ typedef union { } tv_nametag; } yystype; /* Line 1281 of /usr/local/share/bison/yacc.c. */ -#line 282 "asn1p_y.h" +#line 285 "asn1p_y.h" # define YYSTYPE yystype #endif diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y index 3589a8e3..eacab98b 100644 --- a/libasn1parser/asn1p_y.y +++ b/libasn1parser/asn1p_y.y @@ -92,6 +92,7 @@ static void _fixup_anonymous_identifier(asn1p_expr_t *expr); struct asn1p_expr_marker_s a_marker; /* OPTIONAL/DEFAULT */ enum asn1p_constr_pres_e a_pres; /* PRESENT/ABSENT/OPTIONAL */ asn1c_integer_t a_int; + double a_dbl; char *tv_str; struct { char *buf; @@ -114,9 +115,10 @@ static void _fixup_anonymous_identifier(asn1p_expr_t *expr); %token TOK_hstring %token TOK_identifier %token TOK_number +%token TOK_number_negative +%token TOK_realnumber %token TOK_tuple %token TOK_quadruple -%token TOK_number_negative %token TOK_typereference %token TOK_capitalreference /* "CLASS1" */ %token TOK_typefieldreference /* "&Pork" */ @@ -258,6 +260,7 @@ static void _fixup_anonymous_identifier(asn1p_expr_t *expr); %type SimpleValue %type DefinedValue %type SignedNumber +%type RealValue %type optComponentTypeLists %type ComponentTypeLists %type ComponentType @@ -1838,12 +1841,8 @@ SingleValue: checkmem($$); $$->type = ATV_TRUE; } - | SignedNumber { - $$ = $1; - } - | RestrictedCharacterStringValue { - $$ = $1; - } + | RealValue + | RestrictedCharacterStringValue | Identifier { asn1p_ref_t *ref; int ret; @@ -2136,6 +2135,14 @@ SignedNumber: } ; +RealValue: + SignedNumber + | TOK_realnumber { + $$ = asn1p_value_fromdouble($1); + checkmem($$); + } + ; + /* * SEQUENCE definition. * === EXAMPLE === diff --git a/skeletons/constr_SET.c b/skeletons/constr_SET.c index 6d2d6c15..b43f0a87 100644 --- a/skeletons/constr_SET.c +++ b/skeletons/constr_SET.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003, 2004, 2005 Lev Walkin . + * Copyright (c) 2003, 2004, 2005, 2006 Lev Walkin . * All rights reserved. * Redistribution and modifications are permitted subject to BSD license. */ @@ -121,7 +121,10 @@ SET_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, int edx; /* SET element's index */ ASN_DEBUG("Decoding %s as SET", td->name); - + + if(_ASN_STACK_OVERFLOW_CHECK(opt_codec_ctx)) + _ASN_DECODE_FAILED; + /* * Create the target structure if it is not present already. */ @@ -862,6 +865,144 @@ cb_failed: _ASN_ENCODE_FAILED; } +asn_dec_rval_t +SET_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_SET_specifics_t *specs = (asn_SET_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent = 0; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + int edx; + + (void)constraints; + + ASN_DEBUG("Decoding %s as SET", td->name); + + if(_ASN_STACK_OVERFLOW_CHECK(opt_codec_ctx)) + _ASN_DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) _ASN_DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); + + /* Handle extensions */ + if(specs->ext_before >= 0) { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) _ASN_DECODE_FAILED; + } + + /* Prepare a place and read-in the presence bitmap */ + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) _ASN_DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + _ASN_DECODE_FAILED; + } + opmd.buffer = opres; + opmd.nboff = 0; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + memset(&opmd, 0, sizeof opmd); + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; edx < ((specs->ext_before < 0) + ? td->elements_count : specs->ext_before + 1); edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value) { + /* Fill-in DEFAULT */ + if(elm->default_value(1, memb_ptr2)) { + FREEMEM(opres); + _ASN_DECODE_FAILED; + } + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member %s in %s", elm->name, td->name); + rv = elm->type->uper_decoder(opt_codec_ctx, elm->type, + elm->per_constraints, memb_ptr2, pd); + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* + * Deal with extensions. + */ + if(extpresent) { + ASN_DEBUG("Extensibility for %s: NOT IMPLEMENTED", td->name); + _ASN_DECODE_FAILED; + } else { + for(edx = specs->roms_count; edx < specs->roms_count + + specs->aoms_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + if(!elm->default_value) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Set default value */ + if(elm->default_value(1, memb_ptr2)) { + FREEMEM(opres); + _ASN_DECODE_FAILED; + } + } + } + + rv.consumed = 0; + rv.code = RC_OK; + FREEMEM(opres); + return rv; +} + int SET_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { diff --git a/skeletons/constr_SET.h b/skeletons/constr_SET.h index 3adfb336..0c78ed59 100644 --- a/skeletons/constr_SET.h +++ b/skeletons/constr_SET.h @@ -52,6 +52,8 @@ ber_type_decoder_f SET_decode_ber; der_type_encoder_f SET_encode_der; xer_type_decoder_f SET_decode_xer; xer_type_encoder_f SET_encode_xer; +per_type_decoder_f SET_decode_uper; +per_type_encoder_f SET_encode_uper; /*********************** * Some handy helpers. *