From ab1a68144dc8355059473c977a0e4edf2fe7f2b8 Mon Sep 17 00:00:00 2001 From: Mattias Wadman Date: Mon, 3 Jul 2023 18:24:37 +0200 Subject: Support .a.[] and .a.[]? each syntax Fixes #1699 --- src/parser.c | 1588 +++++++++++++++++++++++++++++---------------------------- src/parser.y | 6 + tests/jq.test | 5 + 3 files changed, 819 insertions(+), 780 deletions(-) diff --git a/src/parser.c b/src/parser.c index 66469b5c..8bcaebeb 100644 --- a/src/parser.c +++ b/src/parser.c @@ -893,16 +893,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 27 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2093 +#define YYLAST 2159 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 69 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 30 /* YYNRULES -- Number of rules. */ -#define YYNRULES 170 +#define YYNRULES 172 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 326 +#define YYNSTATES 328 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 302 @@ -966,14 +966,14 @@ static const yytype_int16 yyrline[] = 626, 631, 634, 637, 643, 646, 649, 657, 661, 664, 667, 670, 673, 676, 679, 682, 685, 689, 695, 698, 701, 704, 707, 710, 713, 716, 719, 722, 725, 728, - 731, 734, 737, 740, 743, 746, 749, 771, 775, 779, - 788, 800, 805, 806, 807, 808, 811, 814, 819, 824, - 827, 832, 835, 840, 844, 847, 852, 855, 860, 863, - 868, 871, 874, 877, 880, 883, 891, 897, 900, 903, + 731, 734, 737, 740, 743, 746, 749, 752, 755, 777, + 781, 785, 794, 806, 811, 812, 813, 814, 817, 820, + 825, 830, 833, 838, 841, 846, 850, 853, 858, 861, + 866, 869, 874, 877, 880, 883, 886, 889, 897, 903, 906, 909, 912, 915, 918, 921, 924, 927, 930, 933, - 936, 939, 942, 945, 948, 951, 956, 959, 960, 961, - 964, 967, 970, 973, 977, 981, 985, 989, 993, 997, - 1005 + 936, 939, 942, 945, 948, 951, 954, 957, 962, 965, + 966, 967, 970, 973, 976, 979, 983, 987, 991, 995, + 999, 1003, 1011 }; #endif @@ -1014,12 +1014,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-120) +#define YYPACT_NINF (-118) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-157) +#define YYTABLE_NINF (-159) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -1028,39 +1028,39 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 13, 775, 14, 49, -55, 11, -120, 7, -120, 32, - 775, 508, 508, 775, 19, 2, -120, 775, 525, 887, - 292, 458, 358, 1391, 775, -120, 6, -120, -3, -3, - 775, 49, 683, 775, -120, -120, 52, 1747, 8, 10, - 48, 79, -120, 106, -120, 66, 50, 1221, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, 61, -120, - -120, 124, 7, 68, 62, -120, 968, -22, 64, 775, - 2034, 69, 71, 63, 87, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, -120, - -120, 1915, 78, -20, 15, 169, 125, -120, -120, -120, - 1915, 775, -120, -120, 1442, 1915, -10, -120, -120, -2, - 775, 590, -20, -20, 655, 90, -120, 12, -120, -120, - 77, -120, -120, -120, -120, 415, 443, -120, 443, 1255, - 81, -120, 443, 443, -120, 415, 1949, 353, 353, 214, - 571, 1981, 1949, 1949, 1949, 1949, 1949, 1949, 353, 353, - 1915, 214, 1949, 353, 353, 66, 66, 82, 82, 82, - -120, 138, -20, 837, 105, 99, 113, 775, 96, 93, - 775, 103, 918, 20, -120, -120, 775, -120, 16, -120, - 2062, 18, -120, 1493, -120, 1697, 102, 104, -120, -120, - 775, -120, 775, -120, 159, -11, -120, 443, 119, 3, - 119, 108, 443, 119, 119, -120, -120, -120, -13, 109, - 115, 775, 163, 116, -38, -120, 118, -20, 775, 1018, - -120, -120, 1068, -120, 747, 110, -120, 165, -120, -120, - -120, -120, -2, 121, -120, 775, 775, -120, -120, 775, - 775, 1915, 1781, -120, -120, 443, 443, 119, -20, -120, - -20, -20, 1289, 122, -20, 837, -120, -20, 150, 1915, - 136, 139, 142, 1118, -120, -120, -120, 775, 1831, 1881, - 1544, 1595, -120, 119, 119, -120, -120, -120, 140, -20, - -120, -120, -120, -120, -120, -120, 143, 1646, -120, 775, - 775, 775, -20, -120, -120, -120, 1697, 1323, 1168, -120, - -120, -120, 775, -120, 1357, -120 + -10, 841, 14, 94, -8, -16, -118, 23, -118, 51, + 841, 510, 510, 841, 4, 1, -118, 841, 527, 953, + 294, 460, 360, 1457, 841, -118, 6, -118, -3, -3, + 841, 94, 685, 841, -118, -118, -24, 1813, 8, 10, + 31, 65, -118, 104, -118, 67, 56, 1287, -118, -118, + -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, + -118, -118, -118, -118, -118, -118, -118, -118, 50, -118, + -118, 123, 23, 68, 61, -118, 1034, -22, 69, 841, + 2100, 71, 72, 60, 83, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 841, 841, 841, 841, 841, 841, 841, -118, + -118, 1981, 78, -11, -4, 169, 124, -118, -118, -118, + 1981, 841, -118, -118, 1508, 1981, -14, -118, -118, 18, + 841, 592, -11, -11, 657, 91, -118, 15, -118, -118, + 77, -118, -118, -118, -118, 417, 445, -118, 445, 1321, + 79, -118, 445, 445, -118, 417, 2015, 355, 355, 214, + 573, 2047, 2015, 2015, 2015, 2015, 2015, 2015, 355, 355, + 1981, 214, 2015, 355, 355, 67, 67, 82, 82, 82, + -118, 140, -11, 903, 105, 99, 109, 749, 93, 87, + 841, 98, 984, 20, -118, -118, 841, -118, 34, -118, + 2128, 22, -118, 1559, -118, 1763, 97, 106, -118, -118, + 841, -118, 841, -118, 155, -20, -118, 445, 117, 3, + 117, 108, 445, 117, 117, -118, -118, -118, -13, 115, + 116, 841, 163, 118, -38, -118, 122, -11, 841, 110, + 1084, -118, -118, 1134, -118, 777, 111, -118, 168, -118, + -118, -118, -118, 18, 127, -118, 841, 841, -118, -118, + 841, 841, 1981, 1847, -118, -118, 445, 445, 117, -11, + -118, -11, -11, 1355, 130, -11, 903, -118, -11, 154, + 1981, -118, 142, 143, 144, 1184, -118, -118, -118, 841, + 1897, 1947, 1610, 1661, -118, 117, 117, -118, -118, -118, + 141, -11, -118, -118, -118, -118, -118, -118, 145, 1712, + -118, 841, 841, 841, -11, -118, -118, -118, 1763, 1389, + 1234, -118, -118, -118, 841, -118, 1423, -118 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1068,54 +1068,54 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 4, 0, 0, 6, 110, 83, 100, 102, 75, 0, + 4, 0, 0, 6, 112, 83, 102, 104, 75, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 0, 0, 101, 47, 1, 0, 0, + 0, 0, 0, 0, 0, 103, 47, 1, 0, 0, 8, 6, 0, 0, 79, 63, 0, 0, 0, 0, - 18, 0, 77, 0, 65, 32, 0, 0, 108, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 0, 109, - 86, 0, 0, 85, 0, 105, 0, 0, 167, 0, - 0, 163, 168, 0, 157, 0, 0, 0, 0, 0, + 18, 0, 77, 0, 65, 32, 0, 0, 110, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 0, 111, + 86, 0, 0, 85, 0, 107, 0, 0, 169, 0, + 0, 165, 170, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 5, 10, 82, 0, 0, 0, 0, 53, 52, 3, - 2, 8, 7, 48, 0, 118, 0, 116, 65, 0, - 0, 0, 0, 0, 0, 0, 76, 0, 112, 103, - 0, 87, 81, 113, 104, 0, 0, 115, 0, 0, - 165, 166, 0, 0, 106, 0, 40, 41, 42, 25, + 2, 8, 7, 48, 0, 120, 0, 118, 65, 0, + 0, 0, 0, 0, 0, 0, 76, 0, 114, 105, + 0, 87, 81, 115, 106, 0, 0, 117, 0, 0, + 167, 168, 0, 0, 108, 0, 40, 41, 42, 25, 24, 23, 27, 31, 34, 36, 39, 26, 45, 46, 28, 29, 22, 43, 44, 30, 33, 35, 37, 38, - 78, 0, 0, 0, 0, 0, 122, 0, 84, 0, - 0, 93, 0, 0, 9, 49, 0, 111, 0, 60, + 78, 0, 0, 0, 0, 0, 124, 0, 84, 0, + 0, 93, 0, 0, 9, 49, 0, 113, 0, 60, 0, 0, 56, 0, 16, 0, 0, 0, 19, 17, - 0, 66, 0, 62, 0, 0, 159, 0, 170, 73, - 160, 0, 0, 162, 161, 158, 123, 126, 0, 0, - 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, - 80, 114, 0, 92, 0, 89, 51, 0, 117, 64, - 58, 59, 0, 0, 54, 0, 0, 70, 15, 0, - 0, 20, 0, 107, 72, 0, 0, 164, 0, 124, - 0, 0, 0, 130, 0, 0, 125, 0, 121, 11, - 91, 99, 98, 0, 88, 50, 57, 0, 0, 0, - 0, 0, 67, 71, 169, 127, 136, 132, 0, 0, - 134, 129, 133, 90, 96, 95, 97, 0, 69, 0, - 0, 0, 0, 131, 94, 55, 0, 0, 0, 135, - 68, 12, 0, 14, 0, 13 + 0, 66, 0, 62, 0, 0, 161, 0, 172, 73, + 162, 0, 0, 164, 163, 160, 125, 128, 0, 0, + 0, 0, 0, 0, 0, 130, 0, 0, 0, 95, + 0, 80, 116, 0, 92, 0, 89, 51, 0, 119, + 64, 58, 59, 0, 0, 54, 0, 0, 70, 15, + 0, 0, 20, 0, 109, 72, 0, 0, 166, 0, + 126, 0, 0, 0, 132, 0, 0, 127, 0, 123, + 11, 94, 91, 101, 100, 0, 88, 50, 57, 0, + 0, 0, 0, 0, 67, 71, 171, 129, 138, 134, + 0, 0, 136, 131, 135, 90, 98, 97, 99, 0, + 69, 0, 0, 0, 0, 133, 96, 55, 0, 0, + 0, 137, 68, 12, 0, 14, 0, 13 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -120, -120, -120, 171, 83, -1, -120, -120, 176, -12, - -120, -46, 5, -120, -120, 80, -103, -109, -5, -120, - 22, -120, -16, -119, -120, -120, -68, -18, -105, -120 + -118, -118, -118, 149, 84, -1, -118, -118, 177, -12, + -118, -46, 5, -118, -118, 80, -103, -104, -5, -118, + 17, -118, -17, -117, -118, -118, -62, -18, -105, -118 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { 0, 2, 3, 30, 119, 111, 31, 32, 116, 24, - 201, 202, 25, 44, 128, 137, 258, 218, 26, 126, + 201, 202, 25, 44, 128, 137, 259, 218, 26, 126, 127, 184, 185, 186, 228, 234, 235, 82, 83, 84 }; @@ -1124,345 +1124,361 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 23, 69, 199, 42, 72, 33, 38, 39, 112, 37, - 275, 112, 40, 112, 27, 112, 45, 47, 121, 113, - 76, 132, 72, 133, 246, 73, 145, 81, 1, 120, - 276, 124, 125, 117, 117, 268, 36, 145, 16, 220, - 216, 146, 181, 223, 224, 182, 147, 183, 35, 196, - 225, 197, 146, 269, 211, 212, 16, 213, 211, 212, - 200, 249, 151, 227, 43, 28, 29, 114, 115, 34, - 114, 115, 114, 115, 114, 115, 134, 252, 149, 253, - 187, 41, 247, 135, 156, 157, 158, 159, 160, 161, + 23, 69, 42, 72, 72, 1, 38, 39, 112, 37, + 276, 112, 40, 112, 27, 112, 45, 47, 121, 113, + 76, 132, 199, 133, 247, 73, 145, 81, 145, 120, + 277, 124, 125, 117, 117, 269, 129, 16, 16, 130, + 216, 146, 34, 146, 220, 196, 147, 197, 223, 224, + 225, 181, 33, 270, 182, 36, 183, 211, 212, 134, + 213, 187, 151, 43, 35, 227, 41, 114, 115, 135, + 114, 115, 114, 115, 114, 115, 211, 212, 149, 250, + 200, 253, 248, 254, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 264, 121, - 136, 138, 129, 267, 192, 130, 206, 207, 278, 188, - 106, 107, 108, 140, 109, 141, 142, 148, 143, 203, - 205, 154, 152, 209, 153, 155, 180, 210, 193, 214, - 109, 219, 226, 219, 222, 237, 238, 219, 219, 295, - 81, 296, 297, -120, 240, 300, 293, 294, 302, 241, - 81, 243, 259, 263, 260, 236, 265, 273, 284, 285, - 189, 266, 270, 4, 5, 6, 7, 8, 271, 274, - 313, 277, 251, 9, 287, 299, 239, 10, 233, 242, - -119, 11, 12, 319, 303, 125, 13, 304, 14, 15, - 305, 314, 122, 312, 194, 118, 286, 301, 198, 261, - 16, 262, 219, 320, 0, 0, 0, 219, 248, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 136, 121, + 28, 29, 140, 265, 192, 206, 207, 138, 268, 188, + 279, 106, 107, 108, 141, 109, 142, 143, 154, 203, + 205, 155, 148, 209, 152, 153, 180, 193, 210, 214, + 109, 219, 222, 219, 226, 237, 238, 219, 219, -122, + 81, 241, 297, 242, 298, 299, 244, 260, 302, 264, + 81, 304, 295, 296, 266, 236, 261, 274, 281, 286, + 189, 267, 287, 4, 5, 6, 7, 8, 271, 272, + 122, 275, 252, 9, 315, 278, 240, 10, 233, 243, + 289, 11, 12, 301, -121, 125, 13, 321, 14, 15, + 305, 306, 307, 316, 314, 194, 118, 288, 198, 262, + 16, 263, 219, 249, 303, 322, 0, 219, 0, 0, 0, 0, 17, 85, 86, 87, 88, 0, 0, 18, - 272, 19, 190, 20, 21, 191, 22, 279, 0, 89, - 90, 0, 0, 283, 0, 0, 91, 92, 93, 94, - 95, 96, 97, 98, 288, 289, 0, 236, 290, 291, - 219, 219, 0, 101, 102, 103, 104, 105, 106, 107, + 273, 19, 190, 20, 21, 191, 22, 280, 0, 89, + 90, 0, 0, 0, 285, 0, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 290, 291, 0, 236, 292, + 293, 219, 219, 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, 0, 0, 0, 0, 0, 0, 0, - 233, 0, 0, 0, 0, 0, 307, 0, 0, 0, - 0, 0, -74, 70, 0, 0, 71, -74, 0, 72, - 0, -74, -74, -74, -74, -74, 0, 0, 316, 317, - 318, -74, -74, -74, 0, 0, -74, -74, -74, 0, - -74, 324, 0, 0, -74, -74, -74, -74, -74, -74, - -74, -74, 0, 16, 0, 0, -74, 0, 0, -74, - -74, -74, -74, -74, -74, -74, -74, -74, -74, 0, - -74, -74, 0, -74, 0, -74, -74, -74, -74, 77, - -74, 0, 78, -157, -157, 72, 0, 0, 0, 0, - 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 0, -157, -157, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, -157, -157, 104, 105, 106, 107, 108, - 0, 109, 0, 0, 0, 0, 215, 0, 79, 78, - 80, 0, 72, 0, 0, 0, -156, 0, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 0, 0, 74, - 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, - 0, 0, 9, 15, 0, 79, 10, 80, 0, 0, - 11, 12, 0, -156, 16, 13, 0, 14, 15, 0, - 0, 0, 0, 0, 0, 0, 217, 0, 0, 16, - 0, 0, 0, 18, 0, 19, 0, 20, 21, 0, - 22, 17, 4, 5, 6, 7, 8, 0, 18, 0, - 19, 0, 20, 21, 75, 22, 46, 0, 0, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 15, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 12, 16, - 0, 0, 13, 0, 14, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 18, 0, - 19, 0, 20, 21, 0, 22, 0, 0, 17, 0, - 0, 86, 87, 0, 0, 18, 0, 19, 0, 20, - 21, 204, 22, 0, 4, 5, 6, 7, 8, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 10, 97, - 98, 0, 11, 12, 0, 0, 0, 13, 0, 14, - 15, 102, 103, 104, 105, 106, 107, 108, 0, 109, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, - 18, 0, 19, 0, 20, 21, 208, 22, 0, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, - 0, 0, 13, 0, 14, 15, 0, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, - 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, - 13, 0, 14, 15, 0, 18, 0, 19, 0, 20, - 21, 0, 22, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 123, 18, 0, 19, 0, 20, 21, 0, - 22, 4, 5, 6, 7, 8, 0, 0, 0, 0, + 0, 233, 0, 0, 0, 0, 0, 0, 309, 0, + 0, 0, 0, 0, -74, 70, 0, 0, 71, -74, + 0, 72, 0, -74, -74, -74, -74, -74, 0, 0, + 318, 319, 320, -74, -74, -74, 0, 0, -74, -74, + -74, 0, -74, 326, 0, 0, -74, -74, -74, -74, + -74, -74, -74, -74, 0, 16, 0, 0, -74, 0, + 0, -74, -74, -74, -74, -74, -74, -74, -74, -74, + -74, 0, -74, -74, 0, -74, 0, -74, -74, -74, + -74, 77, -74, 0, 78, -159, -159, 72, 0, 0, + 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 0, -159, -159, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, -159, -159, 104, 105, 106, + 107, 108, 0, 109, 0, 0, 0, 0, 215, 0, + 79, 78, 80, 0, 72, 0, 0, 0, -158, 0, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 4, + 5, 6, 7, 8, 0, 0, 0, 0, 16, 0, + 0, 74, 0, 0, 4, 5, 6, 7, 8, 0, + 0, 0, 0, 0, 9, 15, 0, 79, 10, 80, + 0, 0, 11, 12, 0, -158, 16, 13, 0, 14, + 15, 0, 0, 0, 0, 0, 0, 0, 217, 0, + 0, 16, 0, 0, 0, 18, 0, 19, 0, 20, + 21, 0, 22, 17, 4, 5, 6, 7, 8, 0, + 18, 0, 19, 0, 20, 21, 75, 22, 46, 0, + 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, + 15, 9, 0, 0, 0, 10, 0, 0, 0, 11, + 12, 16, 0, 0, 13, 0, 14, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 18, 0, 19, 0, 20, 21, 0, 22, 0, 0, + 17, 0, 0, 86, 87, 0, 0, 18, 0, 19, + 0, 20, 21, 204, 22, 0, 4, 5, 6, 7, + 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 10, 97, 98, 0, 11, 12, 0, 0, 0, 13, + 0, 14, 15, 102, 103, 104, 105, 106, 107, 108, + 0, 109, 0, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 18, 0, 19, 0, 20, 21, 208, 22, + 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, 14, 15, 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, 13, 0, 14, 15, 0, 18, 0, 19, - 0, 20, 21, 282, 22, 0, 16, 0, 0, 0, + 0, 20, 21, 0, 22, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 18, 0, 19, 229, 20, - 21, 230, 22, 0, 72, 0, 0, 0, 0, 0, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 123, 18, 0, 19, 0, 20, + 21, 0, 22, 4, 5, 6, 7, 8, 0, 0, + 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, + 0, 11, 12, 0, 0, 0, 13, 0, 14, 15, + 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, + 16, 9, 0, 0, 0, 10, 0, 0, 0, 11, + 12, 0, 17, 0, 13, 0, 14, 15, 0, 18, + 0, 19, 0, 20, 21, 239, 22, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 0, 0, 0, 0, 0, 231, 0, 232, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 0, - 0, 0, 0, 0, 0, 0, 0, 85, 86, 87, - 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 90, 0, 0, 0, 0, 68, - 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, - 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 0, 109, 85, 86, 87, - 88, 244, 0, 0, 245, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, - 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, - 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 0, 109, 85, 86, 87, - 88, 0, 0, 0, 144, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, - 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, - 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 0, 109, 85, 86, 87, - 88, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, - 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, - 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 0, 109, 85, 86, 87, - 88, 0, 0, 0, 281, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, - 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, - 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 0, 109, 85, 86, 87, - 88, 0, 0, 0, 306, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, - 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, - 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 0, 109, 322, 0, 323, - 85, 86, 87, 88, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 89, 90, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 18, 0, 19, + 0, 20, 21, 284, 22, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, + 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, + 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 18, 0, 19, 229, 20, 21, 230, 22, 0, + 72, 0, 0, 0, 0, 0, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 231, 0, 232, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, + 0, 0, 0, 85, 86, 87, 88, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 90, 0, 0, 0, 0, 68, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, + 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 109, 85, 86, 87, 88, 245, 0, 0, + 246, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, + 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 109, 85, 86, 87, 88, 0, 0, 0, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, + 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 109, 85, 86, 87, 88, 0, 0, 0, + 282, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, + 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 109, 85, 86, 87, 88, 0, 0, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, + 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 109, 85, 86, 87, 88, 0, 0, 0, + 308, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, + 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 109, 324, 0, 325, 85, 86, 87, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89, 90, 0, 0, 0, 0, 0, 91, + 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, + 85, 86, 87, 88, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 0, 109, 89, 90, 139, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 85, 86, 87, 88, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, - 89, 90, 139, 0, 0, 0, 0, 91, 92, 93, + 89, 90, 221, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 85, 86, 87, 88, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 0, 109, 89, 90, 221, 0, 0, 0, + 107, 108, 0, 109, 89, 90, 300, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 85, 86, 87, 88, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, 89, 90, - 298, 0, 0, 0, 0, 91, 92, 93, 94, 95, + 323, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 85, 86, 87, 88, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 0, 109, 89, 90, 321, 0, 0, 0, 0, 91, + 0, 109, 89, 90, 327, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, - 85, 86, 87, 88, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 0, 109, 89, 90, 325, 0, + 0, 0, 0, 0, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 0, 109, 110, 85, 86, 87, + 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, + 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, + 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 0, 109, 195, 85, 86, + 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 89, 90, 0, 0, 0, 0, + 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, + 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 0, 109, 255, 85, + 86, 87, 88, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 89, 90, 0, 0, 0, + 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, + 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 0, 109, 312, + 85, 86, 87, 88, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, - 110, 85, 86, 87, 88, 0, 0, 0, 0, 0, + 313, 85, 86, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, - 109, 195, 85, 86, 87, 88, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 89, 90, + 109, 317, 85, 86, 87, 88, 0, 0, 0, 0, + 0, 0, 0, 256, 257, 0, 0, 258, 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 0, 109, 254, 85, 86, 87, 88, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, - 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, - 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, - 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 0, 109, 310, 85, 86, 87, 88, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, - 94, 95, 96, 97, 98, 0, 0, 0, 0, 0, - 0, 0, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 0, 109, 311, 85, 86, 87, 88, 0, + 0, 109, 85, 86, 87, 88, 0, 0, 0, 0, + 0, 0, 131, 0, 0, 0, 0, 0, 89, 90, + 0, 0, 0, 0, 0, 91, 92, 93, 94, 95, + 96, 97, 98, 0, 0, 0, 85, 86, 87, 88, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 0, 109, 89, 90, 0, 0, 0, 0, 0, 91, + 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, + 0, 294, 0, 0, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 0, 109, 85, 86, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 89, 90, 0, 0, 0, 0, 0, 91, 92, - 93, 94, 95, 96, 97, 98, 0, 0, 0, 0, - 0, 0, 0, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 0, 109, 315, 85, 86, 87, 88, - 0, 0, 0, 0, 0, 0, 0, 255, 256, 0, - 0, 257, 89, 90, 0, 0, 0, 0, 0, 91, + 0, 310, 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, 85, 86, 87, 88, - 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 0, 85, 86, 87, 88, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, - 98, 0, 0, 0, 0, 292, 0, 0, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, - 85, 86, 87, 88, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 308, 89, 90, 0, 0, - 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, - 98, 0, 0, 0, 0, 0, 0, 0, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, - 85, 86, 87, 88, 0, 0, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 89, 90, 0, 0, - 0, 0, 0, 91, 92, 93, 94, 95, 96, 97, - 98, 0, 0, 0, 85, 86, 87, 88, 99, 100, + 98, 0, 0, 0, -159, 86, 87, 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 109, - 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, - 94, 95, 96, 97, 98, 0, 0, 0, -157, 86, - 87, 0, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 0, 109, 89, 90, 0, 0, 0, 0, - 0, -157, -157, -157, -157, -157, -157, 97, 98, 0, - 0, 86, 87, 0, 0, 0, 0, 0, -157, 102, - 103, 104, 105, 106, 107, 108, 89, 109, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, - 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 103, 104, 105, 106, 107, 108, 150, 109, - 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 250, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67 + 89, 90, 0, 0, 0, 0, 0, -159, -159, -159, + -159, -159, -159, 97, 98, 0, 0, 86, 87, 0, + 0, 0, 0, 0, -159, 102, 103, 104, 105, 106, + 107, 108, 89, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 97, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 102, 103, 104, + 105, 106, 107, 108, 150, 109, 0, 0, 0, 0, + 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 251, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67 }; static const yytype_int16 yycheck[] = { - 1, 19, 4, 1, 7, 60, 11, 12, 5, 10, + 1, 19, 1, 7, 7, 15, 11, 12, 5, 10, 48, 5, 13, 5, 0, 5, 17, 18, 30, 13, - 21, 13, 7, 13, 4, 20, 48, 22, 15, 30, - 68, 32, 33, 28, 29, 48, 4, 48, 41, 148, - 145, 63, 62, 152, 153, 65, 68, 67, 41, 59, - 155, 61, 63, 66, 42, 43, 41, 45, 42, 43, - 62, 45, 80, 182, 62, 16, 17, 64, 65, 58, - 64, 65, 64, 65, 64, 65, 28, 59, 79, 61, - 65, 62, 62, 4, 85, 86, 87, 88, 89, 90, + 21, 13, 4, 13, 4, 20, 48, 22, 48, 30, + 68, 32, 33, 28, 29, 48, 60, 41, 41, 63, + 145, 63, 58, 63, 148, 59, 68, 61, 152, 153, + 155, 62, 60, 66, 65, 4, 67, 42, 43, 28, + 45, 65, 80, 62, 41, 182, 62, 64, 65, 4, + 64, 65, 64, 65, 64, 65, 42, 43, 79, 45, + 62, 59, 62, 61, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 217, 121, - 4, 61, 60, 222, 115, 63, 132, 133, 237, 114, - 54, 55, 56, 62, 58, 1, 58, 63, 66, 130, - 131, 68, 63, 134, 63, 48, 58, 47, 13, 62, - 58, 146, 4, 148, 63, 40, 47, 152, 153, 268, - 145, 270, 271, 40, 58, 274, 265, 266, 277, 66, - 155, 58, 60, 4, 60, 183, 47, 4, 58, 4, - 1, 63, 63, 4, 5, 6, 7, 8, 63, 63, - 299, 63, 200, 14, 63, 63, 187, 18, 183, 190, - 40, 22, 23, 312, 58, 196, 27, 58, 29, 30, - 58, 58, 31, 63, 121, 29, 252, 275, 128, 210, - 41, 212, 217, 316, -1, -1, -1, 222, 196, -1, + 101, 102, 103, 104, 105, 106, 107, 108, 4, 121, + 16, 17, 62, 217, 115, 132, 133, 61, 222, 114, + 237, 54, 55, 56, 1, 58, 58, 66, 68, 130, + 131, 48, 63, 134, 63, 63, 58, 13, 47, 62, + 58, 146, 63, 148, 4, 40, 47, 152, 153, 40, + 145, 58, 269, 66, 271, 272, 58, 60, 275, 4, + 155, 278, 266, 267, 47, 183, 60, 4, 58, 58, + 1, 63, 4, 4, 5, 6, 7, 8, 63, 63, + 31, 63, 200, 14, 301, 63, 187, 18, 183, 190, + 63, 22, 23, 63, 40, 196, 27, 314, 29, 30, + 58, 58, 58, 58, 63, 121, 29, 253, 128, 210, + 41, 212, 217, 196, 276, 318, -1, 222, -1, -1, -1, -1, 53, 9, 10, 11, 12, -1, -1, 60, 231, 62, 63, 64, 65, 66, 67, 238, -1, 25, - 26, -1, -1, 244, -1, -1, 32, 33, 34, 35, - 36, 37, 38, 39, 255, 256, -1, 275, 259, 260, - 265, 266, -1, 49, 50, 51, 52, 53, 54, 55, + 26, -1, -1, -1, 245, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, 256, 257, -1, 276, 260, + 261, 266, 267, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, -1, -1, -1, -1, -1, -1, -1, - 275, -1, -1, -1, -1, -1, 287, -1, -1, -1, - -1, -1, 0, 1, -1, -1, 4, 5, -1, 7, - -1, 9, 10, 11, 12, 13, -1, -1, 309, 310, - 311, 19, 20, 21, -1, -1, 24, 25, 26, -1, - 28, 322, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, 41, -1, -1, 44, -1, -1, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, -1, 61, -1, 63, 64, 65, 66, 1, - 68, -1, 4, 10, 11, 7, -1, -1, -1, -1, - -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - -1, 38, 39, -1, -1, -1, -1, -1, -1, 41, - -1, -1, -1, 50, 51, 52, 53, 54, 55, 56, - -1, 58, -1, -1, -1, -1, 1, -1, 60, 4, - 62, -1, 7, -1, -1, -1, 68, -1, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 4, 5, 6, - 7, 8, -1, -1, -1, -1, 41, -1, -1, 1, - -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, - -1, -1, 14, 30, -1, 60, 18, 62, -1, -1, - 22, 23, -1, 68, 41, 27, -1, 29, 30, -1, - -1, -1, -1, -1, -1, -1, 53, -1, -1, 41, - -1, -1, -1, 60, -1, 62, -1, 64, 65, -1, - 67, 53, 4, 5, 6, 7, 8, -1, 60, -1, - 62, -1, 64, 65, 66, 67, 1, -1, -1, 4, - 5, 6, 7, 8, -1, -1, -1, -1, 30, 14, - -1, -1, -1, 18, -1, -1, -1, 22, 23, 41, - -1, -1, 27, -1, 29, 30, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 41, -1, 60, -1, - 62, -1, 64, 65, -1, 67, -1, -1, 53, -1, - -1, 10, 11, -1, -1, 60, -1, 62, -1, 64, - 65, 1, 67, -1, 4, 5, 6, 7, 8, -1, - -1, -1, -1, -1, 14, -1, -1, -1, 18, 38, - 39, -1, 22, 23, -1, -1, -1, 27, -1, 29, - 30, 50, 51, 52, 53, 54, 55, 56, -1, 58, - -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, - 60, -1, 62, -1, 64, 65, 1, 67, -1, 4, - 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, - -1, -1, -1, 18, -1, -1, -1, 22, 23, -1, - -1, -1, 27, -1, 29, 30, -1, 4, 5, 6, - 7, 8, -1, -1, -1, -1, 41, 14, -1, -1, - -1, 18, -1, -1, -1, 22, 23, -1, 53, -1, - 27, -1, 29, 30, -1, 60, -1, 62, -1, 64, - 65, -1, 67, -1, 41, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, - -1, -1, 59, 60, -1, 62, -1, 64, 65, -1, - 67, 4, 5, 6, 7, 8, -1, -1, -1, -1, + -1, 276, -1, -1, -1, -1, -1, -1, 289, -1, + -1, -1, -1, -1, 0, 1, -1, -1, 4, 5, + -1, 7, -1, 9, 10, 11, 12, 13, -1, -1, + 311, 312, 313, 19, 20, 21, -1, -1, 24, 25, + 26, -1, 28, 324, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, 41, -1, -1, 44, -1, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, -1, 61, -1, 63, 64, 65, + 66, 1, 68, -1, 4, 10, 11, 7, -1, -1, + -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, 38, 39, -1, -1, -1, -1, -1, + -1, 41, -1, -1, -1, 50, 51, 52, 53, 54, + 55, 56, -1, 58, -1, -1, -1, -1, 1, -1, + 60, 4, 62, -1, 7, -1, -1, -1, 68, -1, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 4, + 5, 6, 7, 8, -1, -1, -1, -1, 41, -1, + -1, 1, -1, -1, 4, 5, 6, 7, 8, -1, + -1, -1, -1, -1, 14, 30, -1, 60, 18, 62, + -1, -1, 22, 23, -1, 68, 41, 27, -1, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 53, -1, + -1, 41, -1, -1, -1, 60, -1, 62, -1, 64, + 65, -1, 67, 53, 4, 5, 6, 7, 8, -1, + 60, -1, 62, -1, 64, 65, 66, 67, 1, -1, + -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, + 30, 14, -1, -1, -1, 18, -1, -1, -1, 22, + 23, 41, -1, -1, 27, -1, 29, 30, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, + 60, -1, 62, -1, 64, 65, -1, 67, -1, -1, + 53, -1, -1, 10, 11, -1, -1, 60, -1, 62, + -1, 64, 65, 1, 67, -1, 4, 5, 6, 7, + 8, -1, -1, -1, -1, -1, 14, -1, -1, -1, + 18, 38, 39, -1, 22, 23, -1, -1, -1, 27, + -1, 29, 30, 50, 51, 52, 53, 54, 55, 56, + -1, 58, -1, 41, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, + -1, -1, 60, -1, 62, -1, 64, 65, 1, 67, + -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, -1, -1, -1, 18, -1, -1, -1, 22, 23, -1, -1, -1, 27, -1, 29, 30, -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, 41, 14, -1, -1, -1, 18, -1, -1, -1, 22, 23, -1, 53, -1, 27, -1, 29, 30, -1, 60, -1, 62, - -1, 64, 65, 66, 67, -1, 41, -1, -1, -1, + -1, 64, 65, -1, 67, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, - -1, -1, -1, -1, -1, 60, -1, 62, 1, 64, - 65, 4, 67, -1, 7, -1, -1, -1, -1, -1, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, + -1, -1, -1, -1, 59, 60, -1, 62, -1, 64, + 65, -1, 67, 4, 5, 6, 7, 8, -1, -1, + -1, -1, -1, 14, -1, -1, -1, 18, -1, -1, + -1, 22, 23, -1, -1, -1, 27, -1, 29, 30, + -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, + 41, 14, -1, -1, -1, 18, -1, -1, -1, 22, + 23, -1, 53, -1, 27, -1, 29, 30, -1, 60, + -1, 62, -1, 64, 65, 66, 67, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, -1, -1, -1, -1, -1, 60, -1, 62, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, - -1, -1, -1, -1, -1, -1, -1, 9, 10, 11, - 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, 62, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 9, 10, 11, - 12, 63, -1, -1, 66, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 9, 10, 11, - 12, -1, -1, -1, 66, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 9, 10, 11, - 12, -1, -1, -1, 66, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 9, 10, 11, - 12, -1, -1, -1, 66, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 9, 10, 11, - 12, -1, -1, -1, 66, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 59, -1, 61, - 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 25, 26, -1, -1, + 53, -1, -1, -1, -1, -1, -1, 60, -1, 62, + -1, 64, 65, 66, 67, 4, 5, 6, 7, 8, + -1, -1, -1, -1, -1, 14, -1, -1, -1, 18, + -1, -1, -1, 22, 23, -1, -1, -1, 27, -1, + 29, 30, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, + -1, 60, -1, 62, 1, 64, 65, 4, 67, -1, + 7, -1, -1, -1, -1, -1, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, + -1, -1, -1, 60, -1, 62, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, -1, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, 62, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 9, 10, 11, 12, 63, -1, -1, + 66, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 9, 10, 11, 12, -1, -1, -1, + 66, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 9, 10, 11, 12, -1, -1, -1, + 66, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 9, 10, 11, 12, -1, -1, -1, + 66, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 9, 10, 11, 12, -1, -1, -1, + 66, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, -1, 61, 9, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + 9, 10, 11, 12, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 25, 26, 61, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, 9, 10, 11, 12, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, @@ -1478,8 +1494,25 @@ static const yytype_int16 yycheck[] = 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 25, 26, 61, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, - 9, 10, 11, 12, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 25, 26, 61, -1, + -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 9, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, + 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, + -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, + -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, + -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 9, + 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, + -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, + -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, @@ -1489,27 +1522,20 @@ static const yytype_int16 yycheck[] = 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 9, 10, 11, 12, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, + -1, -1, -1, 20, 21, -1, -1, 24, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, - 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, - -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 59, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 9, 10, 11, 12, -1, + -1, 58, 9, 10, 11, 12, -1, -1, -1, -1, + -1, -1, 19, -1, -1, -1, -1, -1, 25, 26, + -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, + 37, 38, 39, -1, -1, -1, 9, 10, 11, 12, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 25, 26, -1, -1, -1, -1, -1, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + -1, 44, -1, -1, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, - -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 59, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, -1, 20, 21, -1, -1, 24, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, @@ -1520,34 +1546,20 @@ static const yytype_int16 yycheck[] = 9, 10, 11,