X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=plugins%2Fsudoers%2Ftoke.c;h=03a979575301e95b5a746399236bf947f55565f0;hb=e8db7f6eea9b35527ddd4532affabd18a30549b5;hp=6dfe12c54f375d235e0a2c8a861d64c03b831dca;hpb=98b9fd63cd28a3636a7cd24641b8f497eaadcd50;p=debian%2Fsudo diff --git a/plugins/sudoers/toke.c b/plugins/sudoers/toke.c index 6dfe12c..03a9795 100644 --- a/plugins/sudoers/toke.c +++ b/plugins/sudoers/toke.c @@ -1,4 +1,21 @@ #include +#define yy_create_buffer sudoers_create_buffer +#define yy_delete_buffer sudoers_delete_buffer +#define yy_scan_buffer sudoers_scan_buffer +#define yy_scan_string sudoers_scan_string +#define yy_scan_bytes sudoers_scan_bytes +#define yy_flex_debug sudoers_flex_debug +#define yy_init_buffer sudoers_init_buffer +#define yy_flush_buffer sudoers_flush_buffer +#define yy_load_buffer_state sudoers_load_buffer_state +#define yy_switch_to_buffer sudoers_switch_to_buffer +#define yyin sudoersin +#define yyleng sudoersleng +#define yylex sudoerslex +#define yyout sudoersout +#define yyrestart sudoersrestart +#define yytext sudoerstext + /* $OpenBSD: flex.skl,v 1.11 2010/08/04 18:24:50 millert Exp $ */ /* A lexical scanner generated by flex */ @@ -289,79 +306,100 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 61 -#define YY_END_OF_BUFFER 62 -static yyconst short int yy_accept[622] = +#define YY_NUM_RULES 67 +#define YY_END_OF_BUFFER 68 +static yyconst short int yy_accept[814] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 49, 57, 56, 55, 48, 60, 32, - 50, 51, 32, 52, 49, 49, 49, 49, 54, 53, - 60, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 60, 49, 49, 57, 60, 44, 44, 44, 44, - 44, 2, 60, 1, 49, 44, 44, 49, 17, 16, - 17, 16, 16, 60, 60, 60, 3, 9, 8, 9, - 4, 9, 5, 60, 13, 13, 13, 11, 12, 49, - 0, 57, 55, 0, 59, 0, 49, 34, 0, 32, - 0, 33, 0, 47, 47, 0, 49, 49, 0, 49, - - 49, 49, 49, 0, 37, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 49, 58, 49, - 57, 0, 0, 0, 0, 0, 0, 49, 49, 49, - 49, 49, 2, 1, 0, 1, 45, 45, 0, 49, - 17, 17, 15, 14, 15, 0, 0, 3, 9, 0, - 6, 7, 9, 9, 13, 0, 13, 13, 0, 10, - 0, 0, 0, 34, 34, 0, 0, 49, 49, 49, - 49, 49, 0, 0, 37, 37, 44, 39, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 49, 0, 0, 0, 0, 0, 0, 49, 49, 49, - - 49, 49, 0, 49, 10, 0, 49, 49, 49, 49, - 49, 49, 0, 38, 38, 38, 0, 0, 37, 37, - 37, 37, 37, 37, 37, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 40, 44, 41, 49, 0, - 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, - 49, 49, 0, 0, 38, 38, 38, 0, 37, 37, - 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 0, 25, 44, 44, 44, 44, 44, 44, - 44, 44, 42, 44, 49, 0, 0, 0, 0, 49, - 49, 49, 49, 49, 49, 49, 49, 0, 38, 0, - - 37, 37, 37, 0, 0, 0, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 49, 0, - 0, 0, 49, 49, 49, 35, 35, 35, 0, 0, - 37, 37, 37, 37, 37, 37, 37, 0, 0, 0, - 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 44, 44, 44, 0, - 24, 44, 44, 44, 44, 0, 23, 0, 26, 49, - 0, 0, 0, 49, 49, 49, 49, 35, 35, 35, - 35, 0, 37, 0, 37, 37, 37, 37, 37, 37, - - 37, 37, 37, 37, 37, 0, 0, 0, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 44, 44, 44, 44, 44, 44, 44, 46, 0, - 0, 0, 49, 20, 45, 36, 36, 36, 36, 37, - 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 0, 0, 0, 0, - 0, 37, 37, 37, 37, 37, 37, 37, 37, 44, - 44, 44, 44, 44, 0, 22, 0, 27, 0, 20, - 0, 0, 49, 0, 49, 49, 49, 36, 36, 36, - 36, 0, 0, 0, 0, 0, 37, 37, 37, 37, + 0, 0, 0, 0, 68, 55, 63, 62, 61, 54, + 66, 34, 56, 57, 34, 58, 55, 55, 55, 55, + 60, 59, 66, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 66, 55, 55, 63, 66, 46, 46, + 46, 46, 46, 2, 66, 1, 55, 46, 46, 55, + 17, 16, 17, 16, 16, 66, 66, 66, 3, 9, + 8, 9, 4, 9, 5, 66, 13, 13, 13, 11, + 12, 66, 19, 19, 18, 18, 18, 19, 18, 18, + 18, 19, 19, 19, 19, 19, 18, 19, 19, 55, + + 0, 63, 61, 0, 65, 0, 55, 36, 0, 34, + 0, 35, 0, 53, 53, 0, 55, 55, 0, 55, + 55, 55, 55, 0, 39, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 55, 64, 55, + 55, 63, 0, 0, 0, 0, 0, 0, 55, 55, + 55, 55, 55, 2, 1, 0, 1, 47, 47, 0, + 55, 17, 17, 15, 14, 15, 0, 0, 3, 9, + 0, 6, 7, 9, 9, 13, 0, 13, 13, 0, + 10, 36, 0, 0, 35, 19, 19, 0, 19, 0, + 0, 18, 18, 18, 18, 18, 18, 19, 19, 46, + + 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, + 36, 55, 55, 55, 55, 55, 0, 0, 39, 39, + 46, 41, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 55, 55, 0, 0, 0, 0, + 0, 0, 55, 55, 55, 55, 55, 0, 55, 10, + 0, 0, 0, 18, 18, 18, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 0, 55, 55, + 55, 55, 55, 55, 0, 40, 40, 40, 0, 0, + 39, 39, 39, 39, 39, 39, 39, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 42, 46, 43, + + 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, + 55, 55, 55, 55, 0, 0, 0, 0, 0, 18, + 18, 19, 46, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 55, 55, 55, 0, 0, 40, 40, + 40, 0, 39, 39, 0, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 0, 27, 46, 46, + 46, 46, 46, 46, 46, 46, 44, 46, 55, 55, + 55, 55, 55, 0, 0, 0, 0, 55, 55, 55, + 0, 0, 0, 18, 18, 46, 46, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 55, 55, + + 55, 55, 55, 0, 40, 0, 39, 39, 39, 0, + 0, 0, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 48, 49, 50, 51, 55, 0, + 0, 0, 55, 55, 55, 0, 0, 0, 0, 0, + 46, 46, 19, 46, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 37, 37, 37, 0, 0, 39, 39, + 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 46, 46, 46, 0, 26, 46, + + 46, 46, 46, 0, 25, 0, 28, 55, 0, 0, + 0, 55, 55, 55, 37, 37, 37, 46, 46, 46, + 46, 19, 19, 19, 55, 37, 37, 37, 37, 0, + 39, 0, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 0, 0, 0, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 46, + 46, 46, 46, 46, 46, 46, 52, 0, 0, 0, + 55, 22, 47, 0, 37, 37, 37, 37, 46, 46, + 46, 46, 19, 19, 19, 38, 38, 38, 38, 39, + 0, 0, 0, 39, 39, 39, 39, 39, 39, 39, + + 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, + 0, 39, 39, 39, 39, 39, 39, 39, 39, 46, + 46, 46, 46, 46, 0, 24, 0, 29, 0, 22, + 0, 0, 55, 0, 55, 38, 38, 38, 38, 46, + 46, 46, 46, 55, 55, 38, 38, 38, 38, 0, + 0, 0, 0, 0, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 45, 0, 32, 46, 46, 46, + 0, 0, 0, 20, 0, 23, 22, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 38, 38, 38, 38, + + 46, 46, 46, 55, 55, 55, 0, 0, 0, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 0, 30, 46, + 46, 23, 0, 0, 22, 0, 0, 0, 46, 46, + 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, + 39, 39, 39, 39, 39, 39, 39, 39, 0, 33, + 46, 0, 0, 0, 0, 0, 0, 46, 55, 55, + 55, 39, 39, 39, 39, 39, 39, 0, 31, 0, + 0, 21, 0, 0, 0, 55, 55, 55, 55, 55, + 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 43, 0, 30, 44, - 44, 44, 0, 0, 0, 18, 0, 21, 20, 0, - 0, 0, 0, 0, 20, 0, 49, 49, 49, 0, - 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 0, 28, 44, 44, 21, 0, 0, 20, 49, 49, - 49, 49, 49, 0, 0, 0, 0, 0, 37, 37, - 37, 37, 37, 37, 37, 37, 0, 31, 44, 0, - 49, 49, 49, 37, 37, 37, 37, 37, 37, 0, - - 29, 0, 0, 19, 49, 49, 49, 49, 49, 37, - 37, 37, 37, 37, 35, 35, 35, 35, 35, 35, - 0 + 37, 37, 0 } ; static yyconst int yy_ec[256] = @@ -371,15 +409,15 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, 6, 1, 7, 1, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 22, 22, 23, 24, 1, 1, - 25, 26, 10, 27, 28, 29, 30, 31, 32, 29, - 33, 34, 35, 36, 36, 37, 38, 39, 40, 41, - 36, 42, 43, 44, 45, 46, 47, 48, 49, 36, - 10, 50, 10, 1, 51, 1, 52, 53, 54, 55, - - 56, 57, 58, 58, 59, 58, 58, 60, 61, 62, - 63, 58, 58, 64, 65, 66, 67, 58, 58, 58, - 58, 58, 1, 1, 1, 1, 1, 1, 1, 1, + 19, 20, 21, 22, 23, 24, 25, 26, 1, 1, + 27, 28, 10, 29, 30, 31, 32, 33, 34, 31, + 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, + 38, 44, 45, 46, 47, 48, 49, 50, 51, 38, + 10, 52, 10, 1, 53, 1, 54, 55, 56, 57, + + 58, 59, 60, 61, 62, 60, 60, 63, 64, 65, + 66, 60, 60, 67, 68, 69, 70, 60, 60, 60, + 60, 60, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -396,583 +434,858 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[68] = +static yyconst int yy_meta[71] = { 0, 1, 2, 3, 4, 5, 6, 1, 7, 7, 1, - 1, 8, 1, 9, 10, 11, 11, 11, 11, 11, - 11, 11, 11, 12, 13, 7, 1, 11, 11, 11, - 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, - 15, 16, 16, 16, 16, 16, 16, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15 + 8, 9, 10, 11, 12, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 14, 15, 7, 1, 16, + 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 18, 19, 20, 20, 20, 20, 20, 20, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21 } ; -static yyconst short int yy_base[686] = +static yyconst short int yy_base[931] = { 0, - 0, 66, 68, 76, 119, 124, 173, 239, 148, 197, - 82, 90, 2937, 2886, 2933, 3595, 2929, 3595, 165, 65, - 3595, 3595, 2882, 3595, 130, 293, 173, 146, 2907, 3595, - 3595, 350, 2893, 42, 402, 41, 2889, 74, 2888, 2895, - 2876, 458, 197, 57, 219, 482, 38, 207, 2854, 37, - 2851, 117, 249, 2880, 326, 2841, 2852, 105, 0, 3595, - 2875, 3595, 0, 469, 424, 143, 0, 2828, 3595, 48, - 3595, 223, 3595, 155, 2827, 202, 97, 3595, 252, 2817, - 504, 2855, 2852, 2852, 3595, 258, 504, 312, 526, 201, - 548, 2796, 557, 528, 2795, 582, 579, 614, 2820, 2829, - - 593, 601, 266, 2818, 182, 656, 0, 2796, 2791, 2766, - 2761, 296, 2727, 2725, 2713, 2696, 2691, 426, 3595, 87, - 659, 2659, 2663, 2655, 2650, 2651, 257, 196, 318, 276, - 258, 288, 436, 2694, 631, 2693, 655, 2644, 690, 303, - 0, 2681, 168, 3595, 3595, 701, 352, 0, 2634, 723, - 3595, 3595, 2633, 447, 2632, 2676, 467, 461, 433, 2670, - 2659, 2600, 720, 733, 206, 755, 759, 771, 781, 791, - 828, 2581, 2570, 870, 453, 913, 955, 0, 2563, 2557, - 2540, 2523, 2530, 2541, 2536, 2516, 2502, 2496, 2475, 2473, - 277, 2442, 2436, 2402, 2404, 2407, 477, 436, 2405, 424, - - 401, 292, 813, 488, 2454, 2450, 845, 438, 855, 890, - 756, 465, 2428, 2418, 930, 554, 2409, 2408, 463, 898, - 999, 939, 972, 1042, 980, 2403, 490, 2378, 500, 2380, - 2338, 2327, 2325, 2321, 2310, 0, 2305, 0, 508, 2274, - 2238, 2212, 2211, 2176, 515, 517, 615, 527, 529, 1018, - 1061, 1086, 2212, 2210, 1026, 2209, 2203, 2171, 2166, 565, - 1069, 754, 1096, 802, 1123, 0, 1106, 1134, 1151, 1159, - 1177, 1196, 601, 3595, 2136, 2137, 2127, 2131, 2090, 2090, - 2084, 2078, 0, 2062, 607, 2056, 2024, 2025, 573, 576, - 578, 676, 1204, 591, 1221, 1239, 1231, 2064, 2031, 2006, - - 2004, 1274, 676, 1256, 1293, 1318, 682, 808, 815, 1301, - 819, 1328, 0, 1339, 1350, 1367, 1247, 1393, 1377, 1955, - 1915, 1888, 742, 692, 1884, 1891, 794, 980, 777, 1889, - 1856, 652, 945, 680, 820, 1411, 1420, 1436, 1842, 1824, - 1800, 1446, 1473, 1455, 1266, 1515, 1492, 1500, 1809, 1534, - 1559, 1544, 1009, 1052, 1569, 1571, 1580, 1590, 1601, 0, - 1612, 1623, 1590, 1463, 1666, 1642, 1762, 1737, 1740, 1108, - 3595, 1696, 1672, 1662, 1628, 1157, 3595, 1158, 3595, 774, - 1514, 1500, 730, 1152, 697, 913, 1650, 805, 1686, 1709, - 1695, 1516, 1500, 1721, 1222, 1730, 1474, 1744, 0, 830, - - 1755, 1772, 1571, 1797, 1782, 1816, 1841, 1851, 1284, 1377, - 1832, 1861, 1861, 1872, 1883, 0, 1894, 1905, 1872, 1824, - 1924, 1414, 1400, 1375, 1336, 1331, 1159, 1483, 1312, 1274, - 1260, 1539, 606, 1730, 1238, 1949, 1959, 1969, 1984, 1256, - 1994, 2004, 2019, 1245, 1535, 1915, 1932, 1950, 2029, 0, - 874, 2040, 2057, 2065, 2082, 2101, 2109, 1214, 2126, 2136, - 2146, 1633, 1675, 2154, 924, 966, 2165, 0, 1003, 1092, - 1731, 1087, 1056, 1052, 2042, 3595, 2063, 3595, 1017, 2147, - 1126, 624, 1311, 2187, 2192, 2183, 1756, 2193, 2203, 2230, - 1979, 2238, 992, 2248, 2265, 2275, 830, 811, 1970, 2194, - - 2281, 2214, 2291, 0, 1111, 2302, 2319, 2256, 2344, 2329, - 2362, 2371, 2387, 1807, 813, 1170, 0, 2065, 3595, 2228, - 738, 713, 680, 731, 1201, 3595, 900, 653, 2409, 2414, - 2419, 2424, 2418, 2436, 2445, 2446, 2459, 2469, 2480, 2494, - 2504, 2515, 569, 531, 2215, 2217, 2523, 2221, 2533, 0, - 1278, 2544, 2561, 2569, 2588, 519, 2597, 2606, 2615, 492, - 2304, 3595, 2393, 452, 3595, 1416, 2621, 2629, 2637, 1981, - 2647, 2657, 2672, 2682, 345, 2692, 2707, 2717, 305, 264, - 2303, 245, 191, 2725, 0, 1477, 2441, 3595, 2444, 1632, - 2735, 2745, 2755, 2770, 2780, 2790, 90, 0, 92, 2482, - - 3595, 100, 1647, 3595, 2798, 1982, 2808, 2818, 2833, 3595, - 2843, 2853, 2763, 3595, 2868, 2876, 2884, 19, 2892, 2903, - 3595, 2953, 2969, 2985, 3001, 3017, 3033, 3049, 3065, 3081, - 3087, 3103, 3119, 1676, 3135, 3151, 3167, 3183, 3199, 3215, - 3231, 3237, 3244, 3260, 3276, 3282, 3289, 3295, 3301, 3307, - 3314, 3320, 3326, 3332, 3339, 3347, 3353, 3359, 3365, 3372, - 3380, 3386, 3392, 3399, 3407, 3413, 3421, 3428, 3436, 3442, - 3450, 3457, 3465, 3481, 3497, 3513, 3519, 3527, 3534, 3540, - 3548, 3554, 3562, 3578, 2159 + 0, 69, 71, 79, 94, 124, 175, 244, 153, 197, + 85, 130, 314, 0, 4514, 4461, 4510, 5604, 4507, 5604, + 382, 86, 5604, 5604, 4458, 5604, 140, 394, 195, 153, + 4483, 5604, 5604, 453, 4383, 43, 508, 37, 4379, 65, + 4378, 4385, 4367, 566, 581, 91, 151, 604, 39, 41, + 4351, 34, 4348, 117, 4402, 4412, 428, 4371, 4382, 136, + 0, 5604, 4407, 5604, 0, 606, 664, 105, 0, 4358, + 5604, 115, 5604, 133, 5604, 138, 4357, 152, 171, 5604, + 188, 383, 641, 694, 737, 235, 245, 794, 843, 4369, + 157, 898, 4365, 4364, 4375, 4370, 944, 0, 206, 4351, + + 266, 4400, 4397, 4397, 5604, 263, 532, 585, 4386, 608, + 707, 4346, 829, 648, 4345, 968, 981, 1018, 4359, 4370, + 563, 708, 422, 4357, 371, 1062, 1106, 4343, 4347, 4340, + 4344, 596, 4333, 4340, 4337, 4329, 4331, 644, 5604, 237, + 137, 946, 4309, 4314, 4305, 4300, 4301, 121, 225, 530, + 377, 369, 335, 445, 4366, 720, 4365, 931, 4314, 1018, + 169, 0, 4361, 160, 5604, 5604, 991, 388, 0, 4312, + 638, 5604, 5604, 4311, 661, 4310, 4356, 392, 221, 420, + 4358, 653, 665, 1139, 4296, 1145, 0, 1173, 1201, 1210, + 1037, 1239, 4333, 1081, 1170, 826, 1288, 1343, 4307, 0, + + 4311, 4309, 899, 4298, 4296, 4287, 4283, 4336, 4335, 1222, + 1258, 1389, 1362, 968, 1428, 4323, 4310, 1472, 520, 1517, + 1561, 1605, 4303, 4297, 4280, 4282, 4289, 4300, 4295, 4283, + 4279, 4292, 4291, 4290, 654, 493, 4258, 4252, 4242, 4244, + 4250, 534, 579, 4253, 491, 407, 506, 1413, 626, 4304, + 4251, 4239, 1651, 1661, 4227, 1705, 0, 4197, 4164, 4155, + 4151, 4151, 4135, 4112, 4111, 811, 4067, 4122, 1749, 378, + 0, 0, 1041, 243, 4098, 4097, 1786, 805, 4096, 4095, + 623, 1410, 1799, 1447, 1091, 1844, 1890, 4094, 429, 4073, + 632, 4084, 4082, 4056, 4054, 4050, 4053, 0, 4046, 0, + + 929, 638, 544, 561, 4022, 4024, 4008, 4022, 4008, 746, + 524, 1063, 413, 662, 1491, 4060, 4059, 4058, 1270, 1900, + 1944, 763, 904, 4037, 4020, 4009, 4007, 3992, 3988, 818, + 3993, 3988, 3912, 1990, 2002, 2014, 3930, 3929, 2024, 3929, + 3912, 3911, 3910, 919, 1536, 1003, 1580, 1142, 2037, 0, + 1626, 2083, 1680, 1372, 2128, 2174, 764, 5604, 3892, 3877, + 3870, 3884, 3862, 3869, 3879, 3879, 0, 3863, 698, 593, + 820, 973, 1093, 3857, 3824, 3825, 922, 897, 969, 1097, + 3866, 3858, 2186, 2196, 3829, 3807, 3800, 3814, 3778, 3784, + 3794, 3793, 3747, 3726, 3716, 3711, 3696, 3656, 2240, 1017, + + 2279, 2291, 1637, 3686, 3662, 3648, 3646, 2301, 1127, 3642, + 3641, 2347, 1154, 1205, 1209, 1724, 1761, 2359, 0, 1763, + 2405, 1774, 1457, 2450, 2496, 2521, 1024, 1127, 1181, 1190, + 1169, 1207, 1224, 1392, 3602, 3584, 3577, 3560, 1240, 3581, + 3547, 1313, 1391, 874, 1774, 1821, 3584, 3576, 3569, 1503, + 3523, 3519, 869, 1379, 3515, 3511, 949, 1045, 0, 0, + 0, 0, 3478, 2577, 1863, 1546, 3510, 3509, 3506, 1919, + 2616, 1963, 1590, 2660, 2706, 2056, 3517, 3509, 3487, 1692, + 1879, 1979, 2096, 2104, 2147, 2106, 2718, 0, 2217, 2764, + 2250, 1734, 2809, 2855, 2880, 2086, 1133, 1088, 5604, 421, + + 2087, 1184, 2088, 1369, 5604, 1370, 5604, 1197, 3418, 3389, + 1282, 2127, 1249, 1368, 3442, 3427, 2936, 3386, 3320, 3309, + 3295, 2951, 1219, 3272, 3006, 1181, 3044, 0, 1709, 3290, + 3263, 2260, 58, 2320, 1774, 3083, 0, 2380, 3129, 2424, + 1831, 3173, 3219, 3270, 3265, 3231, 2336, 2462, 2464, 2471, + 3256, 2477, 3243, 0, 2589, 3289, 2600, 1929, 3335, 3360, + 1376, 1087, 1847, 1409, 1542, 1586, 3218, 3184, 3166, 1832, + 1427, 2060, 3174, 2635, 3210, 3186, 3185, 2435, 3129, 3111, + 3114, 3066, 3429, 1454, 0, 3486, 2679, 2737, 1483, 3085, + 2989, 2839, 3525, 2819, 2003, 2280, 2783, 2381, 3537, 0, + + 2830, 3583, 3016, 2157, 3627, 3673, 3026, 2821, 2801, 2750, + 2228, 2472, 2474, 2695, 1189, 1531, 3685, 0, 2647, 1848, + 1925, 1602, 1522, 1849, 1587, 5604, 1664, 5604, 2692, 1967, + 1630, 2177, 2014, 2406, 2761, 2674, 2630, 3731, 2272, 1926, + 2155, 2500, 1927, 3741, 2076, 3780, 0, 1967, 2277, 3054, + 2598, 2535, 2509, 2841, 2470, 2431, 2485, 2600, 3064, 2617, + 3819, 0, 3104, 3865, 3148, 3036, 3909, 3955, 2390, 2373, + 3966, 3118, 2338, 1742, 2298, 2129, 5604, 2743, 1825, 1738, + 2219, 2153, 1825, 5604, 2062, 2083, 3130, 3172, 3276, 3281, + 1984, 2880, 1920, 3360, 3192, 1912, 1877, 1858, 3274, 1744, + + 2326, 2643, 2745, 3978, 3990, 4002, 1700, 1693, 4014, 1662, + 1623, 2856, 2951, 3496, 3084, 4026, 0, 3508, 4072, 3556, + 3074, 0, 1599, 1510, 1503, 3319, 1423, 2328, 5604, 3154, + 2037, 5604, 2124, 3602, 3646, 1409, 1403, 4118, 2407, 2791, + 4130, 2334, 4142, 4154, 3659, 3704, 1390, 1286, 1251, 3418, + 1158, 1087, 3105, 1077, 1056, 4166, 0, 3568, 2499, 5604, + 3270, 2220, 3751, 1014, 1005, 957, 3614, 2522, 4178, 4190, + 4202, 3761, 3790, 3800, 684, 0, 683, 2685, 5604, 658, + 2222, 5604, 522, 382, 4214, 4226, 2335, 4238, 4250, 3840, + 5604, 3846, 3884, 3202, 5604, 3928, 374, 208, 117, 3716, + + 4260, 4297, 4334, 4045, 4091, 4270, 59, 4371, 3941, 5604, + 4280, 3771, 5604, 4423, 4444, 4465, 4486, 4507, 4528, 4549, + 4570, 4591, 4600, 2074, 4620, 4641, 2383, 4662, 4683, 4704, + 4725, 4746, 4767, 4788, 4809, 2337, 4830, 4839, 4847, 4856, + 4876, 4897, 4918, 2474, 4939, 4960, 4981, 5002, 5011, 5030, + 5039, 5048, 2421, 2516, 5056, 5064, 5072, 5081, 5089, 5096, + 5104, 5112, 5121, 5131, 2600, 2694, 5139, 5147, 5155, 2695, + 2757, 5164, 5174, 5194, 2798, 5203, 5211, 2799, 5220, 5230, + 5250, 2228, 2615, 5259, 5271, 5280, 5290, 2803, 2825, 5299, + 5309, 5318, 5338, 2700, 5347, 5359, 2841, 2872, 5368, 5378, + + 2873, 5387, 5397, 5417, 5438, 5459, 3115, 3116, 5479, 3168, + 5486, 5496, 2951, 2967, 5505, 2520, 5525, 3304, 3313, 5534, + 5544, 3517, 3314, 3318, 5552, 5562, 5582, 3814, 3319, 3430 } ; -static yyconst short int yy_def[686] = +static yyconst short int yy_def[931] = { 0, - 621, 1, 1, 1, 622, 622, 623, 623, 624, 624, - 625, 625, 621, 626, 621, 621, 621, 621, 627, 628, - 621, 621, 629, 621, 630, 626, 26, 26, 631, 621, - 621, 621, 32, 32, 32, 35, 35, 35, 35, 35, - 35, 626, 26, 626, 621, 627, 32, 32, 35, 35, - 35, 621, 621, 621, 632, 35, 35, 626, 633, 621, - 633, 621, 633, 621, 627, 621, 634, 635, 621, 635, - 621, 635, 621, 636, 637, 637, 637, 621, 621, 626, - 626, 621, 621, 638, 621, 639, 621, 628, 621, 640, - 628, 629, 629, 630, 641, 626, 626, 26, 631, 98, - - 98, 98, 98, 642, 643, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 626, 621, 626, - 621, 621, 621, 621, 621, 621, 638, 626, 98, 626, - 626, 626, 621, 621, 621, 621, 632, 644, 626, 626, - 633, 633, 621, 621, 621, 639, 621, 634, 635, 635, - 621, 621, 635, 635, 637, 621, 637, 637, 621, 621, - 638, 645, 621, 621, 640, 640, 621, 626, 626, 626, - 98, 171, 646, 621, 647, 621, 106, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 626, 621, 621, 621, 621, 621, 638, 626, 171, 626, - - 626, 626, 621, 626, 621, 645, 626, 626, 626, 626, - 626, 626, 648, 649, 649, 215, 650, 649, 651, 176, - 621, 221, 221, 621, 221, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 626, 621, - 621, 621, 621, 621, 638, 626, 626, 626, 626, 626, - 626, 626, 621, 652, 652, 255, 652, 653, 654, 655, - 621, 656, 224, 656, 656, 265, 656, 621, 268, 268, - 621, 268, 621, 621, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 626, 621, 621, 621, 638, 626, - 626, 626, 626, 626, 626, 626, 626, 657, 657, 658, - - 659, 621, 621, 621, 621, 621, 660, 660, 661, 271, - 661, 661, 312, 661, 621, 315, 315, 621, 315, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 626, 621, - 621, 638, 626, 626, 626, 626, 626, 626, 621, 662, - 663, 302, 621, 343, 343, 621, 343, 621, 621, 621, - 621, 621, 621, 664, 664, 665, 318, 665, 665, 359, - 665, 621, 362, 362, 621, 362, 35, 35, 35, 621, - 621, 35, 35, 35, 35, 621, 621, 621, 621, 626, - 621, 621, 638, 626, 626, 626, 626, 626, 626, 626, - 626, 621, 666, 621, 667, 346, 667, 667, 398, 398, - - 621, 401, 401, 621, 401, 621, 621, 621, 621, 668, - 668, 669, 365, 669, 669, 415, 669, 621, 418, 418, - 418, 35, 35, 35, 35, 35, 35, 35, 626, 621, - 621, 638, 626, 626, 626, 626, 626, 626, 626, 621, - 621, 621, 621, 670, 670, 671, 404, 671, 671, 449, - 449, 621, 452, 452, 621, 452, 621, 621, 621, 621, - 621, 621, 672, 672, 673, 673, 673, 467, 467, 35, - 35, 35, 35, 35, 621, 621, 621, 621, 621, 621, - 674, 638, 626, 675, 676, 626, 626, 626, 626, 626, - 626, 621, 621, 621, 621, 621, 621, 677, 677, 678, - - 455, 678, 678, 503, 503, 621, 506, 506, 621, 506, - 621, 621, 621, 621, 679, 679, 35, 621, 621, 35, - 35, 35, 621, 674, 674, 621, 638, 626, 675, 675, - 675, 675, 621, 675, 676, 676, 626, 626, 626, 621, - 621, 621, 621, 680, 680, 681, 509, 681, 681, 549, - 549, 621, 552, 552, 552, 621, 621, 621, 621, 621, - 621, 621, 35, 35, 621, 638, 621, 621, 626, 626, - 626, 626, 626, 621, 621, 621, 621, 621, 621, 682, - 682, 683, 683, 683, 584, 584, 621, 621, 35, 684, - 626, 626, 626, 621, 621, 621, 621, 685, 685, 621, - - 621, 684, 684, 621, 626, 626, 626, 626, 626, 621, - 621, 621, 621, 621, 626, 626, 626, 626, 626, 626, - 0, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621 + 813, 1, 1, 1, 814, 814, 815, 815, 816, 816, + 817, 817, 813, 13, 813, 818, 813, 813, 813, 813, + 819, 820, 813, 813, 821, 813, 822, 818, 28, 28, + 823, 813, 813, 813, 34, 34, 34, 37, 37, 37, + 37, 37, 37, 818, 28, 818, 813, 819, 34, 34, + 37, 37, 37, 813, 824, 813, 825, 37, 37, 818, + 826, 813, 826, 813, 826, 813, 819, 813, 827, 828, + 813, 828, 813, 828, 813, 829, 830, 830, 830, 813, + 813, 831, 832, 833, 813, 85, 85, 85, 813, 89, + 89, 89, 92, 92, 92, 92, 85, 88, 88, 818, + + 818, 813, 813, 834, 813, 835, 813, 820, 836, 831, + 820, 821, 821, 822, 837, 818, 818, 28, 838, 118, + 118, 118, 118, 839, 840, 37, 126, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 818, 813, 818, + 818, 813, 813, 813, 813, 813, 813, 834, 818, 118, + 818, 818, 818, 813, 813, 813, 813, 841, 842, 818, + 818, 843, 843, 813, 813, 813, 835, 813, 844, 845, + 845, 813, 813, 845, 845, 830, 813, 830, 830, 813, + 813, 831, 831, 831, 846, 847, 88, 846, 848, 813, + 813, 85, 192, 192, 192, 192, 813, 197, 198, 849, + + 198, 198, 198, 198, 198, 88, 88, 834, 850, 813, + 813, 818, 212, 212, 118, 215, 851, 813, 852, 813, + 127, 221, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 818, 818, 813, 813, 813, 813, + 813, 834, 818, 215, 818, 818, 818, 813, 818, 813, + 853, 854, 813, 88, 254, 197, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 88, 88, 850, 818, 818, + 212, 212, 212, 818, 855, 856, 856, 277, 857, 856, + 858, 220, 813, 283, 283, 813, 283, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + + 818, 818, 818, 818, 813, 813, 813, 813, 813, 834, + 818, 818, 818, 818, 813, 813, 853, 853, 813, 254, + 197, 198, 859, 198, 198, 198, 198, 198, 198, 88, + 88, 88, 88, 212, 212, 212, 813, 860, 860, 339, + 860, 861, 862, 863, 813, 864, 286, 864, 813, 349, + 864, 813, 352, 352, 813, 352, 813, 813, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 818, 818, + 818, 818, 818, 813, 813, 813, 834, 818, 818, 818, + 865, 866, 813, 88, 321, 859, 859, 198, 198, 198, + 198, 198, 198, 88, 88, 88, 88, 88, 818, 818, + + 212, 212, 818, 867, 867, 868, 869, 813, 813, 870, + 871, 813, 872, 872, 873, 355, 873, 813, 418, 873, + 813, 421, 421, 813, 421, 813, 426, 426, 426, 426, + 426, 426, 426, 426, 818, 818, 818, 818, 818, 813, + 813, 874, 818, 818, 818, 813, 813, 875, 875, 813, + 859, 859, 198, 859, 198, 198, 198, 198, 88, 88, + 88, 88, 88, 818, 464, 464, 813, 876, 877, 408, + 813, 471, 471, 813, 471, 813, 813, 878, 878, 813, + 813, 879, 879, 880, 424, 880, 813, 487, 880, 813, + 490, 490, 813, 490, 813, 495, 495, 813, 813, 495, + + 495, 495, 495, 813, 813, 813, 813, 818, 813, 813, + 881, 818, 818, 818, 882, 883, 813, 884, 884, 884, + 884, 813, 522, 885, 818, 818, 818, 527, 527, 813, + 886, 813, 887, 474, 887, 813, 536, 887, 813, 539, + 539, 813, 539, 888, 889, 813, 813, 890, 890, 891, + 892, 891, 813, 553, 891, 813, 556, 556, 556, 813, + 560, 560, 560, 560, 560, 560, 818, 813, 813, 893, + 818, 818, 818, 813, 813, 894, 894, 813, 895, 895, + 895, 895, 813, 583, 896, 818, 586, 586, 586, 813, + 897, 898, 813, 899, 899, 900, 542, 900, 813, 599, + + 900, 813, 602, 602, 813, 602, 813, 813, 901, 901, + 813, 813, 902, 902, 903, 903, 813, 617, 903, 560, + 560, 560, 560, 560, 813, 813, 813, 813, 813, 813, + 904, 893, 818, 905, 906, 907, 908, 813, 907, 909, + 909, 909, 909, 818, 818, 818, 646, 646, 818, 813, + 813, 910, 910, 813, 813, 911, 911, 912, 605, 912, + 813, 661, 912, 813, 664, 664, 813, 664, 913, 914, + 813, 813, 915, 915, 560, 813, 813, 560, 560, 560, + 813, 904, 904, 813, 893, 818, 905, 905, 905, 905, + 916, 905, 917, 917, 813, 813, 907, 907, 813, 813, + + 909, 909, 909, 646, 646, 646, 918, 919, 813, 813, + 920, 920, 921, 667, 921, 813, 716, 921, 813, 719, + 719, 922, 813, 913, 913, 813, 813, 813, 813, 560, + 560, 813, 893, 813, 813, 923, 924, 813, 909, 909, + 646, 818, 646, 646, 818, 813, 813, 918, 918, 813, + 813, 925, 925, 926, 926, 926, 756, 926, 813, 813, + 560, 927, 813, 813, 923, 923, 813, 909, 646, 646, + 646, 813, 813, 813, 813, 928, 928, 813, 813, 927, + 927, 813, 929, 930, 813, 646, 818, 646, 646, 818, + 813, 813, 813, 813, 813, 813, 813, 929, 929, 813, + + 818, 818, 818, 813, 813, 813, 818, 818, 818, 813, + 813, 813, 0, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813 } ; -static yyconst short int yy_nxt[3663] = +static yyconst short int yy_nxt[5675] = { 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 14, - 23, 24, 14, 14, 25, 26, 27, 28, 26, 26, - 26, 26, 26, 29, 30, 31, 14, 32, 33, 33, - 33, 34, 35, 35, 35, 35, 36, 35, 37, 35, - 38, 39, 40, 41, 35, 35, 35, 35, 35, 42, - 14, 43, 43, 43, 43, 43, 43, 14, 14, 14, - 14, 14, 14, 14, 44, 14, 14, 45, 81, 52, - 89, 46, 151, 53, 107, 110, 115, 52, 107, 54, - 111, 53, 55, 76, 16, 77, 78, 54, 90, 109, - 55, 76, 16, 77, 78, 47, 48, 150, 128, 49, - - 158, 113, 604, 131, 56, 394, 81, 50, 57, 35, - 51, 35, 56, 547, 91, 114, 57, 35, 133, 35, - 15, 60, 61, 120, 62, 15, 60, 61, 134, 62, - 62, 79, 58, 95, 95, 62, 81, 95, 95, 79, - 58, 191, 62, 63, 147, 119, 156, 62, 63, 15, - 16, 17, 69, 65, 81, 95, 154, 119, 70, 71, - 72, 102, 102, 102, 102, 102, 103, 85, 64, 147, - 119, 140, 73, 64, 15, 16, 17, 86, 65, 96, - 87, 87, 87, 87, 87, 87, 87, 87, 101, 101, - 101, 101, 101, 101, 101, 101, 174, 74, 15, 16, - - 17, 69, 65, 157, 621, 176, 89, 70, 71, 72, - 80, 621, 100, 100, 100, 100, 100, 100, 100, 100, - 121, 73, 66, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 15, 16, 17, 107, 65, 81, 74, 152, 122, 123, - 166, 156, 124, 159, 160, 166, 155, 198, 394, 85, - 125, 135, 129, 126, 87, 87, 87, 87, 87, 87, - 87, 87, 150, 87, 87, 87, 87, 87, 87, 87, - 87, 172, 172, 172, 172, 172, 172, 547, 66, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - - 67, 67, 67, 67, 67, 67, 97, 81, 98, 98, - 98, 98, 98, 98, 98, 98, 99, 621, 197, 201, - 100, 100, 100, 100, 100, 81, 81, 182, 501, 138, - 138, 80, 183, 138, 138, 621, 184, 81, 185, 239, - 200, 81, 81, 202, 100, 100, 100, 100, 100, 100, - 80, 138, 81, 147, 119, 246, 80, 204, 574, 80, - 80, 91, 80, 80, 80, 106, 106, 106, 106, 106, - 106, 106, 106, 99, 199, 139, 80, 106, 106, 106, - 106, 106, 107, 107, 107, 107, 108, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 81, - - 107, 100, 100, 100, 100, 100, 100, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 107, 107, 107, - 107, 107, 107, 107, 107, 621, 85, 147, 119, 107, - 107, 107, 107, 107, 159, 160, 146, 133, 107, 621, - 621, 621, 621, 621, 621, 621, 621, 134, 147, 119, - 81, 207, 248, 80, 80, 80, 80, 80, 80, 118, - 119, 80, 80, 80, 158, 80, 80, 174, 157, 80, - 143, 119, 144, 81, 145, 81, 220, 174, 144, 85, - 145, 80, 80, 80, 85, 81, 220, 81, 99, 246, - 246, 273, 145, 145, 86, 589, 150, 87, 87, 87, - - 87, 87, 87, 87, 87, 80, 174, 80, 80, 80, - 156, 80, 80, 274, 81, 80, 156, 85, 145, 87, - 87, 87, 87, 87, 87, 87, 87, 80, 80, 80, - 245, 95, 95, 174, 276, 95, 95, 81, 163, 277, - 127, 164, 164, 164, 164, 164, 164, 164, 164, 88, - 249, 88, 88, 95, 501, 88, 88, 81, 92, 88, - 92, 92, 92, 285, 92, 92, 81, 290, 92, 257, - 257, 257, 88, 88, 289, 85, 81, 96, 81, 174, - 92, 92, 92, 94, 292, 80, 80, 94, 220, 80, - 80, 246, 447, 94, 168, 169, 170, 168, 168, 168, - - 168, 168, 273, 333, 293, 94, 94, 80, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 274, 81, 85, 81, 81, 171, - 171, 171, 171, 171, 171, 171, 171, 334, 99, 332, - 81, 171, 171, 171, 171, 171, 87, 87, 87, 87, - 87, 87, 87, 87, 85, 81, 81, 483, 138, 138, - 121, 329, 138, 138, 81, 171, 171, 171, 171, 171, - 171, 177, 177, 177, 177, 177, 177, 177, 177, 99, - 138, 291, 527, 177, 177, 177, 177, 177, 122, 123, - 174, 137, 124, 80, 80, 137, 174, 80, 80, 220, - - 125, 137, 81, 126, 139, 263, 383, 171, 171, 171, - 171, 171, 171, 137, 137, 80, 621, 621, 621, 621, - 621, 621, 621, 621, 149, 81, 372, 149, 149, 81, - 335, 373, 85, 526, 149, 164, 164, 164, 164, 164, - 164, 164, 164, 370, 565, 385, 81, 149, 164, 164, - 164, 164, 164, 164, 164, 164, 165, 564, 165, 165, - 95, 434, 165, 165, 95, 371, 165, 261, 174, 207, - 95, 208, 208, 208, 208, 208, 208, 263, 165, 165, - 165, 563, 95, 95, 207, 432, 208, 208, 208, 208, - 208, 208, 208, 208, 207, 376, 209, 209, 209, 209, - - 209, 209, 209, 209, 207, 81, 210, 210, 210, 210, - 210, 211, 208, 208, 138, 621, 174, 377, 138, 387, - 81, 261, 174, 81, 138, 263, 81, 174, 261, 174, - 81, 263, 621, 174, 447, 380, 138, 138, 310, 429, - 81, 80, 310, 212, 212, 212, 212, 212, 212, 212, - 212, 444, 444, 396, 81, 212, 212, 212, 212, 212, - 250, 251, 252, 250, 250, 250, 250, 250, 207, 81, - 208, 208, 208, 208, 208, 208, 208, 208, 386, 212, - 212, 212, 212, 212, 212, 214, 215, 216, 216, 216, - 216, 216, 216, 217, 81, 498, 498, 218, 218, 218, - - 218, 218, 85, 207, 81, 208, 208, 208, 208, 208, - 208, 208, 208, 225, 225, 225, 225, 225, 225, 225, - 225, 218, 218, 218, 218, 218, 218, 174, 221, 222, - 223, 221, 221, 221, 221, 221, 224, 261, 174, 81, - 225, 225, 225, 225, 225, 255, 255, 256, 257, 257, - 257, 257, 257, 217, 265, 265, 265, 265, 265, 265, - 265, 265, 81, 566, 225, 225, 225, 225, 225, 225, - 226, 226, 226, 226, 226, 226, 226, 226, 435, 621, - 174, 378, 226, 226, 226, 226, 226, 266, 266, 266, - 266, 266, 267, 621, 81, 264, 264, 264, 264, 264, - - 264, 264, 264, 379, 384, 492, 212, 212, 212, 212, - 212, 212, 261, 174, 262, 262, 262, 262, 262, 262, - 262, 262, 263, 174, 515, 515, 264, 264, 264, 264, - 264, 293, 263, 294, 294, 294, 294, 294, 294, 294, - 294, 299, 299, 299, 299, 299, 299, 299, 299, 217, - 264, 264, 264, 264, 264, 264, 174, 268, 269, 270, - 268, 268, 268, 268, 268, 271, 174, 81, 523, 272, - 272, 272, 272, 272, 293, 310, 295, 295, 295, 295, - 295, 295, 295, 295, 304, 305, 306, 304, 304, 304, - 304, 304, 522, 272, 272, 272, 272, 272, 272, 293, - - 521, 296, 296, 296, 296, 296, 297, 294, 294, 370, - 81, 272, 272, 272, 272, 272, 272, 272, 272, 261, - 174, 308, 308, 308, 308, 308, 308, 525, 526, 263, - 520, 371, 544, 544, 517, 81, 261, 174, 308, 308, - 308, 308, 308, 308, 308, 308, 263, 261, 174, 309, - 309, 309, 309, 309, 309, 309, 309, 310, 376, 378, - 475, 311, 311, 311, 311, 311, 312, 312, 312, 312, - 312, 312, 312, 312, 313, 313, 313, 313, 313, 314, - 377, 379, 476, 261, 174, 311, 311, 311, 311, 311, - 311, 174, 315, 316, 317, 315, 315, 315, 315, 315, - - 318, 81, 525, 526, 319, 319, 319, 319, 319, 621, - 433, 311, 311, 311, 311, 311, 311, 311, 311, 336, - 337, 338, 336, 336, 336, 336, 336, 457, 319, 319, - 319, 319, 319, 319, 293, 394, 294, 294, 294, 294, - 294, 294, 294, 294, 293, 396, 294, 294, 294, 294, - 294, 294, 293, 81, 294, 294, 294, 294, 294, 294, - 294, 294, 360, 360, 360, 360, 360, 361, 396, 348, - 81, 349, 349, 349, 349, 349, 349, 349, 349, 342, - 81, 399, 399, 399, 399, 399, 400, 81, 81, 343, - 344, 345, 343, 343, 343, 343, 343, 346, 174, 580, - - 580, 347, 347, 347, 347, 347, 348, 310, 350, 350, - 350, 350, 350, 350, 350, 350, 319, 319, 319, 319, - 319, 319, 319, 319, 480, 347, 347, 347, 347, 347, - 347, 348, 479, 351, 351, 351, 351, 351, 352, 349, - 349, 261, 174, 355, 355, 355, 355, 355, 355, 355, - 355, 310, 261, 174, 355, 355, 355, 355, 355, 355, - 81, 81, 310, 261, 174, 356, 356, 356, 356, 356, - 356, 356, 356, 357, 474, 528, 473, 358, 358, 358, - 358, 358, 359, 359, 359, 359, 359, 359, 359, 359, - 621, 174, 358, 358, 358, 358, 358, 358, 358, 358, - - 357, 358, 358, 358, 358, 358, 358, 174, 362, 363, - 364, 362, 362, 362, 362, 362, 365, 590, 85, 472, - 366, 366, 366, 366, 366, 387, 388, 388, 388, 388, - 388, 388, 388, 388, 387, 389, 389, 389, 389, 389, - 389, 389, 389, 471, 366, 366, 366, 366, 366, 366, - 387, 390, 390, 390, 390, 390, 391, 388, 388, 470, - 81, 347, 347, 347, 347, 347, 347, 347, 347, 81, - 398, 398, 398, 398, 398, 398, 398, 398, 416, 416, - 416, 416, 416, 417, 477, 81, 394, 621, 395, 395, - 395, 395, 395, 395, 395, 395, 396, 396, 598, 598, - - 397, 397, 397, 397, 397, 621, 478, 397, 397, 397, - 397, 397, 397, 397, 397, 406, 407, 408, 406, 406, - 406, 406, 406, 342, 397, 397, 397, 397, 397, 397, - 401, 402, 403, 401, 401, 401, 401, 401, 404, 259, - 481, 85, 405, 405, 405, 405, 405, 348, 394, 349, - 349, 349, 349, 349, 349, 349, 349, 348, 396, 349, - 349, 349, 349, 349, 349, 431, 405, 405, 405, 405, - 405, 405, 348, 430, 349, 349, 349, 349, 349, 349, - 349, 349, 261, 174, 261, 174, 450, 450, 450, 450, - 450, 451, 310, 482, 357, 366, 366, 366, 366, 366, - - 366, 366, 366, 621, 174, 415, 415, 415, 415, 415, - 415, 415, 415, 357, 261, 174, 411, 411, 411, 411, - 411, 411, 411, 411, 357, 261, 174, 411, 411, 411, - 411, 411, 411, 603, 604, 357, 261, 174, 412, 412, - 412, 412, 412, 412, 412, 412, 413, 174, 603, 604, - 414, 414, 414, 414, 414, 621, 357, 414, 414, 414, - 414, 414, 414, 414, 414, 436, 437, 438, 439, 436, - 436, 436, 436, 428, 414, 414, 414, 414, 414, 414, - 174, 418, 419, 420, 418, 418, 418, 418, 418, 174, - 148, 148, 427, 421, 421, 421, 421, 421, 413, 81, - - 387, 388, 388, 388, 388, 388, 388, 388, 388, 387, - 388, 388, 388, 388, 388, 388, 426, 421, 421, 421, - 421, 421, 421, 387, 388, 388, 388, 388, 388, 388, - 388, 388, 518, 484, 425, 81, 441, 442, 443, 441, - 441, 441, 441, 441, 81, 405, 405, 405, 405, 405, - 405, 405, 405, 484, 519, 484, 485, 394, 81, 445, - 445, 445, 445, 445, 445, 445, 445, 396, 394, 486, - 446, 446, 446, 446, 446, 446, 446, 446, 447, 81, - 424, 423, 448, 448, 448, 448, 448, 449, 449, 449, - 449, 449, 449, 449, 449, 621, 422, 448, 448, 448, - - 448, 448, 448, 448, 448, 81, 448, 448, 448, 448, - 448, 448, 452, 453, 454, 452, 452, 452, 452, 452, - 455, 174, 348, 342, 456, 456, 456, 456, 456, 457, - 413, 458, 458, 458, 458, 458, 458, 458, 458, 468, - 468, 468, 468, 468, 469, 261, 174, 259, 456, 456, - 456, 456, 456, 456, 457, 357, 459, 459, 459, 459, - 459, 459, 459, 459, 457, 217, 460, 460, 460, 460, - 460, 461, 458, 458, 261, 174, 421, 421, 421, 421, - 421, 421, 421, 421, 413, 621, 174, 467, 467, 467, - 467, 467, 467, 467, 467, 413, 261, 174, 464, 464, - - 464, 464, 464, 464, 464, 464, 413, 261, 174, 464, - 464, 464, 464, 464, 464, 382, 381, 413, 261, 174, - 465, 465, 465, 465, 465, 465, 465, 465, 394, 375, - 374, 369, 466, 466, 466, 466, 466, 621, 447, 466, - 466, 466, 466, 466, 466, 466, 466, 456, 456, 456, - 456, 456, 456, 456, 456, 368, 466, 466, 466, 466, - 466, 466, 486, 621, 487, 487, 487, 487, 487, 487, - 487, 487, 486, 447, 488, 488, 488, 488, 488, 488, - 488, 488, 486, 394, 489, 489, 489, 489, 489, 490, - 491, 491, 486, 447, 569, 605, 367, 486, 81, 491, - - 491, 491, 487, 487, 487, 487, 487, 492, 81, 493, - 493, 493, 493, 493, 493, 493, 493, 492, 81, 494, - 494, 494, 494, 494, 494, 494, 494, 342, 81, 259, - 81, 81, 492, 81, 495, 495, 495, 495, 495, 496, - 493, 493, 394, 475, 499, 499, 499, 499, 499, 499, - 499, 499, 447, 394, 217, 500, 500, 500, 500, 500, - 500, 500, 500, 501, 477, 476, 518, 502, 502, 502, - 502, 502, 503, 503, 503, 503, 503, 503, 503, 503, - 504, 504, 504, 504, 504, 505, 478, 217, 519, 286, - 331, 502, 502, 502, 502, 502, 502, 506, 507, 508, - - 506, 506, 506, 506, 506, 509, 330, 328, 327, 510, - 510, 510, 510, 510, 621, 326, 502, 502, 502, 502, - 502, 502, 502, 502, 511, 512, 513, 511, 511, 511, - 511, 511, 325, 510, 510, 510, 510, 510, 510, 457, - 324, 458, 458, 458, 458, 458, 458, 458, 458, 457, - 484, 458, 458, 458, 458, 458, 458, 458, 458, 457, - 323, 458, 458, 458, 458, 458, 458, 261, 174, 614, - 484, 322, 484, 484, 614, 321, 320, 413, 261, 174, - 516, 516, 516, 516, 516, 516, 516, 516, 530, 302, - 531, 532, 533, 530, 259, 531, 532, 533, 537, 538, - - 539, 537, 537, 537, 537, 537, 486, 394, 487, 487, - 487, 487, 487, 487, 487, 487, 486, 501, 487, 487, - 487, 487, 487, 487, 487, 487, 217, 621, 394, 561, - 394, 298, 81, 217, 621, 105, 534, 501, 501, 286, - 547, 536, 81, 486, 547, 487, 487, 487, 487, 487, - 487, 562, 81, 540, 541, 542, 540, 540, 540, 540, - 540, 492, 288, 493, 493, 493, 493, 493, 493, 493, - 493, 550, 550, 550, 550, 550, 551, 286, 492, 81, - 493, 493, 493, 493, 493, 493, 493, 493, 492, 287, - 493, 493, 493, 493, 493, 493, 510, 510, 510, 510, - - 510, 510, 510, 510, 394, 561, 545, 545, 545, 545, - 545, 545, 545, 545, 501, 394, 394, 546, 546, 546, - 546, 546, 546, 546, 546, 547, 547, 562, 286, 548, - 548, 548, 548, 548, 549, 549, 549, 549, 549, 549, - 549, 549, 621, 284, 548, 548, 548, 548, 548, 548, - 548, 548, 283, 548, 548, 548, 548, 548, 548, 552, - 553, 554, 552, 552, 552, 552, 552, 282, 281, 280, - 279, 555, 555, 555, 555, 555, 174, 556, 556, 556, - 556, 556, 556, 556, 556, 174, 557, 557, 557, 557, - 557, 557, 557, 557, 587, 555, 555, 555, 555, 555, - - 555, 174, 558, 558, 558, 558, 558, 559, 556, 556, - 621, 278, 621, 621, 621, 530, 588, 531, 532, 533, - 621, 275, 531, 532, 533, 621, 99, 621, 621, 533, - 567, 217, 259, 568, 568, 568, 568, 568, 568, 568, - 568, 217, 587, 529, 529, 600, 621, 529, 621, 621, - 621, 105, 85, 535, 535, 205, 247, 535, 534, 529, - 529, 529, 244, 534, 588, 243, 242, 601, 534, 535, - 535, 535, 569, 534, 570, 570, 570, 570, 570, 570, - 570, 570, 569, 600, 571, 571, 571, 571, 571, 571, - 571, 571, 241, 569, 536, 572, 572, 572, 572, 572, - - 573, 570, 570, 240, 238, 601, 237, 574, 81, 575, - 575, 575, 575, 575, 575, 575, 575, 574, 81, 576, - 576, 576, 576, 576, 576, 576, 576, 236, 574, 81, - 577, 577, 577, 577, 577, 578, 575, 575, 555, 555, - 555, 555, 555, 555, 555, 555, 394, 235, 581, 581, - 581, 581, 581, 581, 581, 581, 547, 394, 234, 582, - 582, 582, 582, 582, 582, 582, 582, 233, 232, 231, - 230, 583, 583, 583, 583, 583, 584, 584, 584, 584, - 584, 584, 584, 584, 585, 585, 585, 585, 585, 586, - 229, 228, 227, 105, 97, 583, 583, 583, 583, 583, - - 583, 621, 85, 583, 583, 583, 583, 583, 583, 583, - 583, 174, 556, 556, 556, 556, 556, 556, 556, 556, - 174, 556, 556, 556, 556, 556, 556, 556, 556, 174, - 556, 556, 556, 556, 556, 556, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 591, 592, 593, 591, 591, 591, 591, 591, - 569, 85, 570, 570, 570, 570, 570, 570, 570, 570, - 569, 205, 570, 570, 570, 570, 570, 570, 570, 570, - 155, 156, 150, 150, 142, 569, 81, 570, 570, 570, - 570, 570, 570, 203, 136, 136, 81, 594, 595, 596, - - 594, 594, 594, 594, 594, 574, 81, 575, 575, 575, - 575, 575, 575, 575, 575, 196, 195, 194, 193, 192, - 574, 81, 575, 575, 575, 575, 575, 575, 575, 575, - 574, 190, 575, 575, 575, 575, 575, 575, 394, 189, - 599, 599, 599, 599, 599, 599, 599, 599, 605, 188, - 606, 606, 606, 606, 606, 606, 606, 606, 605, 187, - 607, 607, 607, 607, 607, 607, 607, 607, 605, 186, - 608, 608, 608, 608, 608, 609, 606, 606, 610, 610, - 610, 610, 610, 610, 81, 610, 610, 610, 610, 610, - 610, 610, 610, 181, 81, 611, 611, 611, 611, 611, - - 611, 611, 611, 180, 81, 612, 612, 612, 612, 612, - 613, 610, 610, 615, 616, 617, 615, 615, 615, 615, - 615, 605, 179, 606, 606, 606, 606, 606, 606, 606, - 606, 605, 178, 606, 606, 606, 606, 606, 606, 606, - 606, 105, 80, 105, 167, 93, 605, 81, 606, 606, - 606, 606, 606, 606, 85, 83, 82, 81, 610, 610, - 610, 610, 610, 610, 610, 610, 81, 81, 610, 610, - 610, 610, 610, 610, 610, 610, 156, 150, 142, 113, - 111, 136, 81, 618, 618, 618, 618, 618, 618, 618, - 618, 615, 615, 615, 615, 615, 615, 615, 615, 619, - - 619, 619, 619, 619, 620, 618, 618, 618, 618, 618, - 618, 618, 618, 618, 618, 132, 130, 81, 618, 618, - 618, 618, 618, 618, 117, 81, 116, 115, 112, 107, - 105, 93, 83, 81, 82, 81, 621, 621, 621, 621, - 621, 81, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 81, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - - 68, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 80, 621, 621, - 621, 621, 621, 621, 621, 80, 80, 80, 621, 621, - 80, 80, 80, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 88, - 621, 621, 621, 621, 88, 621, 621, 88, 88, 88, - 88, 621, 88, 88, 88, 92, 621, 621, 621, 621, - 621, 621, 621, 92, 92, 92, 621, 621, 92, 92, - 92, 94, 621, 621, 94, 94, 621, 94, 621, 94, - 94, 94, 621, 621, 94, 94, 94, 104, 104, 621, - - 621, 621, 104, 137, 621, 621, 137, 137, 621, 137, - 621, 137, 137, 137, 621, 621, 137, 137, 137, 141, - 621, 621, 141, 141, 621, 141, 621, 141, 141, 141, - 621, 141, 621, 141, 141, 149, 621, 621, 149, 621, - 621, 149, 621, 149, 149, 149, 149, 621, 149, 149, - 149, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 155, 155, 621, - 155, 621, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 162, - - 162, 621, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 165, 621, 621, 621, 621, - 165, 621, 621, 165, 165, 165, 621, 621, 165, 165, - 165, 95, 621, 621, 95, 95, 621, 95, 621, 95, - 95, 95, 621, 621, 95, 95, 95, 173, 173, 621, - 621, 621, 173, 175, 175, 175, 621, 621, 621, 175, - 138, 621, 621, 138, 138, 621, 138, 621, 138, 138, - 138, 621, 621, 138, 138, 138, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 213, 213, 621, 621, 621, 213, 219, 219, - - 219, 621, 621, 621, 219, 253, 253, 621, 621, 621, - 253, 254, 254, 621, 621, 621, 254, 258, 258, 621, - 621, 621, 258, 260, 260, 260, 621, 621, 621, 260, - 298, 298, 621, 621, 621, 298, 300, 300, 621, 621, - 621, 300, 301, 301, 621, 621, 621, 301, 303, 303, - 303, 621, 621, 621, 303, 307, 307, 307, 307, 621, - 621, 621, 307, 339, 339, 621, 621, 621, 339, 340, - 340, 621, 621, 621, 340, 341, 341, 621, 621, 621, - 341, 353, 353, 353, 621, 621, 621, 353, 354, 354, - 354, 354, 621, 621, 621, 354, 392, 392, 621, 621, - - 621, 392, 393, 393, 621, 621, 621, 393, 409, 409, - 409, 621, 621, 621, 409, 410, 410, 410, 410, 621, - 621, 621, 410, 440, 440, 621, 621, 621, 440, 444, - 621, 444, 444, 621, 621, 621, 444, 462, 462, 462, - 621, 621, 621, 462, 463, 463, 463, 463, 621, 621, - 621, 463, 497, 497, 621, 621, 621, 497, 498, 621, - 498, 498, 621, 621, 621, 498, 514, 514, 514, 621, - 621, 621, 514, 515, 515, 515, 621, 621, 621, 621, - 515, 524, 524, 524, 524, 524, 524, 524, 524, 524, - 524, 524, 524, 524, 524, 524, 524, 529, 529, 621, - - 529, 529, 529, 621, 621, 529, 529, 529, 621, 621, - 529, 529, 529, 535, 535, 621, 535, 535, 535, 621, - 621, 535, 535, 535, 621, 621, 535, 535, 535, 543, - 543, 621, 621, 621, 543, 544, 621, 544, 544, 621, - 621, 621, 544, 560, 560, 621, 621, 621, 621, 560, - 579, 579, 621, 621, 621, 579, 580, 621, 580, 580, - 621, 621, 621, 580, 597, 597, 621, 621, 621, 597, - 598, 621, 598, 621, 621, 621, 621, 598, 602, 602, - 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, - 602, 602, 602, 602, 13, 621, 621, 621, 621, 621, - - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621 + 16, 17, 18, 19, 20, 21, 22, 23, 24, 16, + 25, 26, 16, 16, 27, 28, 29, 30, 28, 28, + 28, 28, 28, 28, 28, 31, 32, 33, 16, 34, + 35, 35, 35, 36, 37, 37, 37, 37, 38, 37, + 39, 37, 40, 41, 42, 43, 37, 37, 37, 37, + 37, 44, 16, 45, 45, 45, 45, 45, 45, 16, + 16, 16, 16, 16, 16, 16, 16, 46, 16, 16, + 47, 532, 54, 130, 48, 135, 55, 127, 131, 127, + 54, 127, 56, 534, 55, 57, 78, 18, 79, 80, + 56, 109, 129, 57, 133, 17, 62, 63, 150, 64, + + 49, 50, 149, 152, 51, 64, 168, 139, 134, 58, + 101, 110, 52, 59, 37, 53, 37, 58, 154, 64, + 65, 59, 37, 105, 37, 17, 62, 63, 155, 64, + 796, 78, 18, 79, 80, 64, 81, 111, 60, 175, + 139, 172, 101, 115, 115, 66, 60, 115, 115, 64, + 65, 140, 142, 178, 17, 18, 19, 71, 67, 173, + 141, 168, 139, 72, 73, 74, 171, 115, 122, 122, + 122, 122, 122, 123, 179, 66, 17, 18, 19, 75, + 67, 81, 143, 144, 171, 242, 145, 101, 101, 180, + 181, 116, 176, 236, 146, 198, 140, 147, 17, 18, + + 19, 71, 67, 177, 76, 161, 201, 72, 73, 74, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 101, 796, 177, 75, 179, 249, 68, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 17, 18, 19, 76, 67, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 195, 195, 195, 195, 195, 196, 206, 100, 119, 100, + 100, 100, 177, 100, 100, 207, 101, 100, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 101, 243, + 235, 100, 100, 100, 101, 68, 69, 69, 69, 69, + + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 33, 17, 18, 19, 33, 33, + 82, 23, 24, 33, 83, 26, 33, 33, 84, 85, + 86, 87, 85, 85, 85, 85, 85, 85, 85, 31, + 88, 33, 33, 89, 90, 90, 90, 91, 92, 92, + 92, 92, 93, 92, 94, 92, 95, 92, 96, 92, + 92, 92, 92, 92, 92, 68, 33, 97, 97, 97, + 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, + 98, 99, 98, 98, 105, 218, 101, 796, 109, 168, + 139, 269, 247, 178, 106, 796, 220, 107, 107, 107, + + 107, 107, 107, 107, 107, 107, 107, 117, 183, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, + 101, 180, 181, 120, 120, 120, 120, 120, 101, 101, + 357, 159, 159, 246, 184, 159, 159, 216, 216, 216, + 216, 216, 216, 177, 245, 101, 154, 120, 120, 120, + 120, 120, 120, 100, 358, 159, 155, 127, 101, 100, + 313, 563, 100, 100, 101, 100, 100, 100, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 119, 160, + 311, 100, 126, 126, 126, 126, 126, 127, 127, 127, + 127, 128, 127, 127, 127, 127, 127, 127, 127, 127, + + 127, 127, 127, 127, 101, 127, 120, 120, 120, 120, + 120, 120, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 813, 218, 796, 105, 127, 127, 127, + 127, 127, 101, 100, 101, 282, 127, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 101, 304, 311, + 372, 100, 100, 100, 100, 100, 100, 138, 139, 100, + 100, 100, 311, 100, 100, 101, 378, 100, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 244, 310, + 813, 100, 100, 100, 100, 101, 120, 120, 120, 120, + + 120, 120, 120, 120, 120, 120, 105, 164, 139, 165, + 813, 166, 101, 109, 436, 165, 106, 166, 373, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 226, + 101, 166, 166, 813, 227, 311, 111, 218, 228, 170, + 229, 185, 170, 170, 101, 168, 139, 185, 282, 170, + 185, 115, 115, 185, 185, 115, 115, 166, 813, 184, + 782, 371, 168, 139, 170, 148, 105, 187, 360, 185, + 109, 301, 302, 361, 303, 115, 167, 101, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 101, + 813, 314, 188, 185, 115, 101, 532, 115, 115, 116, + + 115, 115, 115, 115, 184, 101, 115, 115, 108, 714, + 108, 108, 171, 101, 108, 108, 184, 435, 108, 380, + 187, 115, 115, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 108, 108, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 190, 115, 187, 105, 101, + 191, 187, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 119, 187, 357, 357, 193, 193, 193, 193, + 193, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 358, 358, + 193, 193, 193, 193, 193, 193, 187, 187, 187, 187, + + 187, 187, 187, 187, 187, 187, 187, 813, 377, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 813, + 341, 341, 341, 187, 187, 187, 187, 187, 330, 331, + 112, 332, 112, 112, 112, 394, 112, 112, 395, 437, + 112, 255, 255, 255, 255, 255, 255, 187, 187, 187, + 187, 187, 187, 187, 112, 112, 112, 187, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 119, 187, + 498, 101, 197, 197, 197, 197, 197, 198, 198, 198, + 198, 199, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 499, 200, 193, 193, 193, 193, + + 193, 193, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 813, 105, 101, 443, 198, 198, 198, + 198, 198, 260, 218, 159, 159, 198, 261, 159, 159, + 386, 262, 513, 263, 282, 387, 369, 142, 101, 370, + 504, 187, 187, 187, 187, 187, 187, 813, 159, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 114, + 763, 100, 100, 114, 505, 100, 100, 143, 144, 114, + 101, 145, 160, 272, 272, 272, 272, 272, 273, 146, + 438, 442, 147, 114, 114, 100, 212, 213, 214, 212, + + 212, 212, 212, 212, 212, 212, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 345, 218, 763, 158, + 101, 100, 100, 158, 101, 100, 100, 763, 347, 158, + 399, 444, 101, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 158, 158, 100, 506, 215, 215, 215, + 215, 215, 251, 252, 253, 251, 251, 251, 251, 251, + 251, 251, 100, 100, 100, 100, 496, 127, 101, 813, + 507, 215, 215, 215, 215, 215, 215, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 119, 119, 498, + 532, 221, 221, 221, 221, 221, 255, 255, 255, 255, + + 255, 255, 255, 255, 255, 255, 350, 350, 350, 350, + 350, 351, 714, 499, 101, 215, 215, 215, 215, 215, + 215, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 813, 379, 622, 127, 127, 127, 127, 127, 127, + 182, 218, 182, 182, 101, 185, 182, 182, 101, 439, + 182, 185, 282, 445, 185, 813, 218, 185, 185, 100, + 100, 100, 100, 100, 100, 182, 182, 347, 218, 127, + 127, 187, 497, 185, 185, 562, 185, 185, 185, 347, + 185, 185, 498, 659, 185, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 525, 188, 185, 185, 185, + + 185, 115, 345, 218, 115, 115, 499, 115, 115, 115, + 115, 115, 127, 115, 115, 115, 565, 502, 345, 218, + 127, 115, 345, 218, 127, 504, 500, 187, 115, 115, + 347, 501, 101, 127, 416, 115, 115, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 503, 101, 505, + 127, 198, 190, 115, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 746, 567, 584, 127, 254, 254, + 254, 254, 254, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 315, 105, 316, 316, 316, 316, 316, + 316, 101, 254, 254, 254, 254, 254, 254, 187, 746, + + 101, 508, 187, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 119, 187, 105, 572, 256, 256, 256, + 256, 256, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 570, + 200, 254, 254, 254, 254, 254, 254, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 813, 511, + 504, 506, 198, 198, 198, 198, 198, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 419, 419, 419, + 419, 419, 420, 506, 505, 507, 187, 187, 187, 187, + + 187, 187, 269, 746, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 159, 520, 763, 507, 159, 101, + 521, 621, 763, 127, 159, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 127, 573, 218, 159, 159, + 101, 100, 101, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 512, 624, 627, 127, 274, 274, 274, + 274, 274, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 488, 488, 488, 488, 488, 489, 101, 628, + 633, 274, 274, 274, 274, 274, 274, 276, 277, 278, + 278, 278, 278, 278, 278, 278, 278, 279, 649, 649, + + 649, 280, 280, 280, 280, 280, 381, 382, 383, 381, + 381, 381, 381, 381, 381, 381, 446, 218, 447, 447, + 447, 447, 447, 447, 218, 280, 280, 280, 280, 280, + 280, 218, 283, 284, 285, 283, 283, 283, 283, 283, + 283, 283, 286, 625, 813, 218, 287, 287, 287, 287, + 287, 410, 411, 412, 410, 410, 410, 410, 410, 410, + 410, 528, 528, 528, 528, 528, 529, 626, 679, 127, + 287, 287, 287, 287, 287, 287, 288, 288, 288, 288, + 288, 288, 288, 288, 288, 288, 119, 627, 625, 127, + 288, 288, 288, 288, 288, 356, 356, 356, 356, 356, + + 356, 356, 356, 356, 356, 537, 537, 537, 537, 537, + 538, 628, 626, 218, 274, 274, 274, 274, 274, 274, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 813, 683, 684, 127, 127, 127, 127, 127, 127, 345, + 218, 414, 414, 414, 414, 414, 414, 678, 659, 127, + 399, 347, 400, 400, 400, 400, 400, 400, 100, 100, + 100, 100, 100, 100, 315, 627, 318, 318, 318, 318, + 318, 319, 316, 316, 316, 316, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 119, 597, 101, 628, + 320, 320, 320, 320, 320, 418, 418, 418, 418, 418, + + 418, 418, 418, 418, 418, 476, 746, 477, 477, 477, + 477, 477, 477, 746, 320, 320, 320, 320, 320, 320, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 100, 100, 100, 100, 321, 321, 321, 321, 321, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 554, + 554, 554, 554, 554, 555, 345, 218, 695, 320, 320, + 320, 320, 320, 320, 334, 335, 336, 334, 334, 334, + 334, 334, 334, 334, 813, 218, 345, 218, 483, 483, + 483, 483, 483, 483, 731, 127, 416, 813, 416, 487, + 487, 487, 487, 487, 487, 487, 487, 487, 487, 534, + + 101, 339, 339, 340, 341, 341, 341, 341, 341, 341, + 341, 279, 345, 218, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 347, 101, 683, 684, 348, 348, + 348, 348, 348, 631, 105, 514, 515, 516, 517, 515, + 515, 515, 515, 515, 515, 515, 600, 600, 600, 600, + 600, 601, 348, 348, 348, 348, 348, 348, 218, 352, + 353, 354, 352, 352, 352, 352, 352, 352, 352, 355, + 730, 695, 127, 356, 356, 356, 356, 356, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 632, 623, + 695, 680, 675, 218, 127, 127, 127, 356, 356, 356, + + 356, 356, 356, 813, 347, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 695, 676, 676, 813, 384, + 384, 384, 384, 384, 475, 475, 475, 475, 475, 475, + 475, 475, 475, 475, 618, 618, 618, 618, 618, 619, + 677, 677, 813, 384, 384, 384, 384, 384, 384, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 703, + 634, 694, 127, 385, 385, 385, 385, 385, 536, 536, + 536, 536, 536, 536, 536, 536, 536, 536, 100, 100, + 100, 100, 634, 218, 634, 634, 734, 384, 384, 384, + + 384, 384, 384, 399, 416, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 399, 532, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 399, 534, 402, + 402, 402, 402, 402, 403, 400, 400, 400, 400, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 279, + 345, 218, 414, 414, 414, 414, 414, 414, 414, 414, + 414, 414, 347, 634, 105, 101, 413, 413, 413, 413, + 413, 544, 545, 546, 544, 544, 544, 544, 544, 544, + 544, 686, 761, 107, 127, 634, 107, 634, 635, 644, + 413, 413, 413, 413, 413, 413, 345, 218, 415, 415, + + 415, 415, 415, 415, 415, 415, 415, 415, 416, 345, + 218, 101, 417, 417, 417, 417, 417, 345, 218, 813, + 218, 416, 127, 127, 127, 762, 105, 101, 733, 485, + 676, 485, 561, 564, 101, 566, 417, 417, 417, 417, + 417, 417, 218, 421, 422, 423, 421, 421, 421, 421, + 421, 421, 421, 424, 677, 684, 813, 425, 425, 425, + 425, 425, 494, 494, 494, 494, 494, 494, 494, 494, + 494, 494, 662, 662, 662, 662, 662, 663, 101, 105, + 813, 425, 425, 425, 425, 425, 425, 813, 571, 417, + 417, 417, 417, 417, 417, 417, 417, 417, 417, 446, + + 701, 449, 449, 449, 449, 449, 450, 447, 447, 447, + 447, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 781, 782, 781, 782, 384, 384, 384, 384, 384, + 345, 218, 549, 549, 549, 549, 549, 549, 685, 575, + 575, 607, 485, 608, 608, 608, 608, 608, 608, 384, + 384, 384, 384, 384, 384, 464, 465, 466, 464, 464, + 464, 464, 464, 464, 464, 553, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 591, 592, 593, 591, 591, + 591, 591, 591, 591, 591, 695, 732, 700, 700, 700, + 644, 101, 399, 532, 400, 400, 400, 400, 400, 400, + + 400, 400, 400, 400, 399, 597, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 471, 472, 473, 471, + 471, 471, 471, 471, 471, 471, 474, 728, 101, 728, + 475, 475, 475, 475, 475, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 543, 127, 211, 741, 786, 211, + 218, 729, 218, 729, 475, 475, 475, 475, 475, 475, + 476, 416, 479, 479, 479, 479, 479, 480, 477, 477, + 477, 477, 345, 218, 483, 483, 483, 483, 483, 483, + 483, 483, 483, 483, 416, 101, 101, 218, 482, 482, + 482, 482, 482, 532, 813, 595, 595, 595, 595, 595, + + 595, 169, 169, 169, 218, 534, 597, 688, 759, 689, + 690, 691, 482, 482, 482, 482, 482, 482, 345, 218, + 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, + 485, 316, 760, 316, 486, 486, 486, 486, 486, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 574, + 575, 575, 575, 575, 575, 575, 597, 692, 486, 486, + 486, 486, 486, 486, 218, 490, 491, 492, 490, 490, + 490, 490, 490, 490, 490, 493, 218, 345, 218, 494, + 494, 494, 494, 494, 345, 218, 218, 485, 218, 485, + 813, 218, 169, 169, 169, 534, 551, 485, 532, 551, + + 759, 813, 551, 494, 494, 494, 494, 494, 494, 813, + 597, 486, 486, 486, 486, 486, 486, 486, 486, 486, + 486, 100, 650, 778, 760, 813, 317, 100, 317, 735, + 100, 100, 735, 100, 100, 100, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 702, 779, 650, 100, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 495, 127, 127, 127, 127, 127, + 127, 127, 101, 127, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 525, 526, 526, 526, 526, 526, 526, 526, 526, + + 526, 526, 345, 218, 614, 614, 614, 614, 614, 614, + 447, 650, 447, 532, 551, 617, 617, 617, 617, 617, + 617, 617, 617, 617, 617, 659, 576, 576, 101, 532, + 813, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 534, 659, 695, 813, 535, 535, 535, 535, 535, + 636, 637, 638, 639, 636, 636, 636, 636, 636, 636, + 345, 218, 674, 674, 674, 674, 674, 674, 813, 535, + 535, 535, 535, 535, 535, 539, 540, 541, 539, 539, + 539, 539, 539, 539, 539, 542, 778, 695, 739, 543, + 543, 543, 543, 543, 646, 646, 646, 646, 646, 646, + + 646, 646, 646, 646, 448, 477, 448, 477, 345, 218, + 779, 575, 575, 543, 543, 543, 543, 543, 543, 813, + 551, 535, 535, 535, 535, 535, 535, 535, 535, 535, + 535, 345, 218, 549, 549, 549, 549, 549, 549, 549, + 549, 549, 549, 485, 728, 681, 813, 548, 548, 548, + 548, 548, 647, 647, 647, 647, 647, 648, 649, 649, + 649, 649, 688, 607, 689, 690, 691, 478, 729, 478, + 813, 548, 548, 548, 548, 548, 548, 345, 218, 550, + 550, 550, 550, 550, 550, 550, 550, 550, 550, 551, + 127, 740, 813, 552, 552, 552, 552, 552, 606, 606, + + 606, 606, 606, 606, 606, 606, 606, 606, 447, 477, + 447, 477, 694, 608, 607, 608, 813, 552, 552, 552, + 552, 552, 552, 218, 556, 557, 558, 556, 556, 556, + 556, 556, 556, 556, 607, 609, 768, 609, 559, 559, + 559, 559, 559, 532, 534, 657, 657, 657, 657, 657, + 657, 651, 650, 651, 650, 597, 651, 651, 651, 651, + 651, 651, 559, 559, 559, 559, 559, 559, 813, 532, + 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, + 100, 659, 652, 608, 652, 608, 100, 687, 687, 100, + 100, 687, 100, 100, 100, 127, 127, 127, 127, 127, + + 127, 127, 127, 127, 127, 687, 687, 687, 100, 127, + 127, 127, 127, 127, 127, 127, 560, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 101, 127, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 574, 577, 577, 577, 577, 577, 578, 575, 575, 575, + 575, 187, 723, 723, 532, 187, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 714, 187, 724, 724, + 198, 198, 198, 583, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + + 198, 198, 650, 200, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 586, 587, 588, 589, 586, 586, 586, 586, 586, + 586, 661, 661, 661, 661, 661, 661, 661, 661, 661, + 661, 669, 670, 671, 669, 669, 669, 669, 669, 669, + 669, 717, 717, 717, 717, 717, 718, 101, 525, 526, + 526, 526, 526, 526, 526, 526, 526, 526, 526, 707, + 708, 709, 707, 707, 707, 707, 707, 707, 707, 668, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 757, + 757, 757, 757, 757, 758, 101, 532, 813, 595, 595, + + 595, 595, 595, 595, 595, 595, 595, 595, 534, 714, + 470, 643, 594, 594, 594, 594, 594, 532, 532, 712, + 712, 712, 712, 712, 712, 696, 697, 696, 697, 659, + 714, 813, 218, 813, 813, 813, 594, 594, 594, 594, + 594, 594, 532, 551, 596, 596, 596, 596, 596, 596, + 596, 596, 596, 596, 597, 759, 642, 641, 598, 598, + 598, 598, 598, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 716, 688, 640, 689, 690, 691, 651, 760, + 651, 692, 598, 598, 598, 598, 598, 598, 602, 603, + 604, 602, 602, 602, 602, 602, 602, 602, 605, 574, + + 574, 127, 606, 606, 606, 606, 606, 736, 737, 738, + 736, 736, 736, 736, 736, 736, 736, 791, 791, 791, + 791, 791, 791, 692, 574, 101, 606, 606, 606, 606, + 606, 606, 813, 630, 598, 598, 598, 598, 598, 598, + 598, 598, 598, 598, 607, 629, 610, 610, 610, 610, + 610, 611, 608, 608, 608, 608, 345, 218, 614, 614, + 614, 614, 614, 614, 614, 614, 614, 614, 551, 101, + 218, 778, 613, 613, 613, 613, 613, 813, 607, 689, + 690, 691, 813, 607, 813, 813, 691, 695, 470, 696, + 696, 696, 696, 696, 696, 779, 613, 613, 613, 613, + + 613, 613, 345, 218, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 615, 747, 343, 747, 127, 616, 616, + 616, 616, 616, 748, 764, 748, 764, 692, 765, 797, + 765, 797, 692, 218, 723, 723, 723, 723, 723, 723, + 585, 582, 616, 616, 616, 616, 616, 616, 813, 581, + 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, + 100, 693, 580, 693, 693, 693, 100, 693, 693, 100, + 100, 693, 100, 100, 100, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 693, 693, 693, 100, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + + 127, 127, 127, 127, 127, 127, 127, 620, 127, 127, + 127, 101, 127, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 625, 746, 579, 747, 747, 747, 747, 747, 747, 187, + 798, 574, 798, 187, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 626, 187, 574, 569, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 568, 200, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 644, + + 476, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 722, 722, 722, 722, 722, 722, 722, 722, 722, + 722, 532, 476, 753, 753, 753, 753, 753, 753, 755, + 476, 470, 755, 714, 343, 279, 755, 101, 650, 524, + 653, 653, 653, 653, 653, 654, 651, 651, 651, 651, + 532, 523, 657, 657, 657, 657, 657, 657, 657, 657, + 657, 657, 597, 522, 519, 518, 656, 656, 656, 656, + 656, 756, 756, 756, 756, 756, 756, 756, 756, 756, + 756, 532, 446, 777, 777, 777, 777, 777, 777, 446, + 656, 656, 656, 656, 656, 656, 532, 446, 658, 658, + + 658, 658, 658, 658, 658, 658, 658, 658, 659, 510, + 509, 101, 660, 660, 660, 660, 660, 735, 735, 735, + 735, 735, 735, 735, 735, 735, 735, 763, 101, 764, + 764, 764, 764, 764, 764, 101, 660, 660, 660, 660, + 660, 660, 664, 665, 666, 664, 664, 664, 664, 664, + 664, 664, 667, 101, 476, 476, 668, 668, 668, 668, + 668, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 470, 741, 343, 742, 742, 742, 742, 742, 742, + 668, 668, 668, 668, 668, 668, 813, 279, 660, 660, + 660, 660, 660, 660, 660, 660, 660, 660, 345, 218, + + 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, + 101, 279, 463, 462, 673, 673, 673, 673, 673, 772, + 773, 774, 772, 772, 772, 772, 772, 772, 772, 796, + 461, 797, 797, 797, 797, 797, 797, 460, 673, 673, + 673, 673, 673, 673, 695, 459, 698, 698, 698, 698, + 698, 699, 700, 700, 700, 700, 704, 705, 706, 704, + 704, 704, 704, 704, 704, 704, 783, 784, 785, 783, + 783, 783, 783, 783, 783, 783, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 810, 810, 810, 810, + 810, 810, 101, 644, 458, 645, 645, 645, 645, 645, + + 645, 645, 645, 645, 645, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 793, 793, 793, 793, 793, + 794, 791, 791, 791, 791, 457, 795, 456, 455, 795, + 454, 101, 532, 795, 712, 712, 712, 712, 712, 712, + 712, 712, 712, 712, 659, 453, 452, 451, 711, 711, + 711, 711, 711, 786, 813, 787, 787, 787, 787, 787, + 787, 791, 791, 791, 791, 791, 791, 791, 791, 791, + 791, 446, 711, 711, 711, 711, 711, 711, 532, 446, + 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, + 714, 101, 374, 441, 715, 715, 715, 715, 715, 791, + + 791, 791, 791, 791, 791, 791, 791, 791, 791, 440, + 434, 433, 432, 431, 430, 429, 428, 427, 715, 715, + 715, 715, 715, 715, 719, 720, 721, 719, 719, 719, + 719, 719, 719, 719, 426, 408, 343, 279, 722, 722, + 722, 722, 722, 804, 805, 806, 804, 804, 804, 804, + 804, 804, 804, 404, 279, 125, 807, 807, 807, 807, + 807, 807, 722, 722, 722, 722, 722, 722, 813, 398, + 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, + 218, 725, 725, 725, 725, 725, 726, 723, 723, 723, + 723, 741, 101, 742, 742, 742, 742, 742, 742, 742, + + 742, 742, 742, 741, 397, 743, 743, 743, 743, 743, + 743, 743, 743, 743, 743, 741, 396, 744, 744, 744, + 744, 744, 745, 742, 742, 742, 742, 746, 393, 749, + 749, 749, 749, 749, 750, 747, 747, 747, 747, 532, + 392, 753, 753, 753, 753, 753, 753, 753, 753, 753, + 753, 714, 391, 390, 389, 752, 752, 752, 752, 752, + 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, + 388, 315, 315, 315, 374, 376, 374, 375, 374, 752, + 752, 752, 752, 752, 752, 532, 368, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 754, 367, 366, 365, + + 364, 755, 755, 755, 755, 755, 804, 804, 804, 804, + 804, 804, 804, 804, 804, 804, 363, 362, 359, 119, + 279, 343, 279, 125, 105, 755, 755, 755, 755, 755, + 755, 763, 333, 766, 766, 766, 766, 766, 767, 764, + 764, 764, 764, 100, 329, 769, 770, 771, 769, 769, + 769, 769, 769, 769, 769, 741, 328, 742, 742, 742, + 742, 742, 742, 742, 742, 742, 742, 741, 327, 742, + 742, 742, 742, 742, 742, 742, 742, 742, 742, 532, + 326, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 786, 325, 787, 787, 787, 787, 787, 787, 787, + + 787, 787, 787, 786, 324, 788, 788, 788, 788, 788, + 788, 788, 788, 788, 788, 786, 323, 789, 789, 789, + 789, 789, 790, 787, 787, 787, 787, 796, 322, 799, + 799, 799, 799, 799, 800, 797, 797, 797, 797, 100, + 191, 801, 802, 803, 801, 801, 801, 801, 801, 801, + 801, 786, 315, 787, 787, 787, 787, 787, 787, 787, + 787, 787, 787, 786, 315, 787, 787, 787, 787, 787, + 787, 787, 787, 787, 787, 807, 807, 807, 807, 807, + 807, 807, 807, 807, 807, 811, 811, 811, 811, 811, + 812, 810, 810, 810, 810, 810, 810, 810, 810, 810, + + 810, 810, 810, 810, 810, 250, 312, 309, 308, 307, + 306, 101, 801, 801, 801, 801, 801, 801, 801, 801, + 801, 801, 305, 300, 299, 298, 297, 296, 295, 294, + 293, 292, 291, 290, 289, 125, 117, 105, 105, 267, + 266, 265, 264, 259, 258, 257, 813, 188, 101, 808, + 808, 808, 808, 808, 809, 807, 807, 807, 807, 250, + 176, 177, 171, 171, 163, 248, 157, 157, 241, 240, + 239, 238, 237, 234, 233, 232, 231, 230, 225, 224, + 223, 222, 125, 100, 125, 101, 807, 807, 807, 807, + 807, 807, 807, 807, 807, 807, 190, 113, 210, 105, + + 103, 102, 101, 205, 204, 203, 202, 198, 177, 171, + 163, 133, 131, 157, 156, 153, 151, 137, 136, 135, + 132, 127, 101, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + + 77, 77, 77, 77, 77, 77, 77, 100, 125, 113, + 103, 102, 101, 813, 100, 813, 100, 100, 100, 100, + 813, 813, 100, 100, 100, 100, 100, 100, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 108, + 813, 813, 813, 813, 108, 813, 108, 813, 108, 108, + 108, 108, 108, 813, 108, 108, 108, 108, 108, 108, + 112, 813, 813, 813, 813, 813, 813, 112, 813, 112, + 112, 112, 112, 813, 813, 112, 112, 112, 112, 112, + 112, 114, 813, 813, 114, 114, 813, 114, 114, 813, + + 114, 114, 114, 114, 813, 813, 114, 114, 114, 114, + 114, 114, 124, 124, 813, 124, 813, 813, 813, 124, + 158, 813, 813, 158, 158, 813, 158, 158, 813, 158, + 158, 158, 158, 813, 813, 158, 158, 158, 158, 158, + 158, 162, 813, 813, 162, 162, 813, 162, 162, 813, + 162, 162, 162, 162, 813, 162, 162, 162, 813, 162, + 162, 162, 170, 813, 813, 170, 813, 813, 170, 170, + 813, 170, 170, 170, 170, 170, 813, 170, 170, 170, + 170, 170, 170, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + + 174, 174, 174, 174, 176, 176, 813, 176, 813, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 182, 813, 813, 813, 813, + 182, 813, 182, 813, 182, 182, 182, 182, 182, 813, + 182, 182, 182, 182, 182, 182, 186, 813, 813, 813, + 813, 813, 813, 186, 813, 186, 186, 186, 186, 813, + 186, 186, 186, 186, 186, 186, 186, 189, 813, 813, + 189, 189, 813, 189, 189, 813, 189, 189, 189, 189, + 813, 189, 189, 189, 189, 189, 189, 189, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + + 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, + 209, 813, 209, 209, 209, 209, 209, 209, 209, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 115, 813, 813, 115, 115, 813, 115, 115, 813, 115, + 115, 115, 115, 813, 813, 115, 115, 115, 115, 115, + 115, 124, 124, 813, 124, 813, 813, 813, 124, 217, + 217, 813, 217, 813, 813, 813, 217, 219, 219, 219, + 813, 219, 813, 813, 813, 219, 158, 813, 813, 158, + 158, 813, 158, 158, 813, 158, 158, 158, 158, 813, + 813, 158, 158, 158, 158, 158, 158, 159, 813, 813, + + 159, 159, 813, 159, 159, 813, 159, 159, 159, 159, + 813, 813, 159, 159, 159, 159, 159, 159, 162, 813, + 813, 162, 162, 813, 162, 162, 813, 162, 162, 162, + 162, 813, 162, 162, 162, 813, 162, 162, 162, 170, + 813, 813, 170, 813, 813, 170, 170, 813, 170, 170, + 170, 170, 170, 813, 170, 170, 170, 170, 170, 170, + 185, 813, 813, 813, 813, 813, 813, 185, 813, 185, + 185, 185, 185, 813, 813, 185, 185, 185, 185, 185, + 185, 186, 813, 813, 813, 813, 813, 813, 186, 813, + 186, 186, 186, 186, 813, 186, 186, 186, 186, 186, + + 186, 186, 189, 813, 813, 189, 189, 813, 189, 189, + 813, 189, 189, 189, 189, 813, 189, 189, 189, 189, + 189, 189, 189, 200, 813, 813, 200, 200, 813, 200, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 275, 275, 813, 275, 813, 813, 813, 275, 281, + 281, 281, 813, 281, 813, 813, 813, 281, 337, 337, + 813, 337, 813, 813, 813, 337, 338, 338, 813, 338, + 813, 813, 813, 338, 342, 342, 813, 342, 813, 813, + 813, 342, 344, 344, 344, 813, 344, 813, 813, 813, + + 344, 200, 813, 813, 200, 200, 813, 200, 404, 404, + 813, 404, 813, 813, 813, 404, 406, 406, 813, 406, + 813, 813, 813, 406, 407, 407, 813, 407, 813, 813, + 813, 407, 409, 409, 409, 813, 409, 813, 813, 813, + 409, 413, 413, 413, 413, 813, 413, 813, 813, 813, + 413, 467, 467, 813, 467, 813, 813, 813, 467, 468, + 468, 813, 468, 813, 813, 813, 468, 469, 469, 813, + 469, 813, 813, 813, 469, 481, 481, 481, 813, 481, + 813, 813, 813, 481, 482, 482, 482, 482, 813, 482, + 813, 813, 813, 482, 208, 208, 208, 208, 208, 208, + + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 530, 530, 813, 530, 813, + 813, 813, 530, 531, 531, 813, 531, 813, 813, 813, + 531, 547, 547, 547, 813, 547, 813, 813, 813, 547, + 548, 548, 548, 548, 813, 548, 813, 813, 813, 548, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 200, 813, 813, 200, 200, 813, 200, 187, 813, + 813, 813, 187, 187, 813, 187, 187, 187, 813, 813, + 187, 187, 590, 590, 813, 590, 813, 813, 813, 590, + + 594, 813, 594, 594, 813, 594, 813, 813, 813, 594, + 612, 612, 612, 813, 612, 813, 813, 813, 612, 613, + 613, 613, 613, 813, 613, 813, 813, 813, 613, 559, + 559, 813, 813, 559, 813, 813, 813, 559, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 200, + 813, 813, 200, 200, 813, 200, 187, 813, 813, 813, + 187, 187, 813, 187, 187, 187, 813, 813, 187, 187, + 655, 655, 813, 655, 813, 813, 813, 655, 656, 813, + 656, 656, 813, 656, 813, 813, 813, 656, 672, 672, + + 672, 813, 672, 813, 813, 813, 672, 673, 673, 673, + 813, 813, 673, 813, 813, 813, 673, 682, 682, 682, + 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, + 682, 682, 682, 682, 682, 682, 682, 682, 687, 687, + 813, 687, 687, 687, 813, 687, 813, 687, 687, 687, + 687, 813, 813, 687, 687, 687, 687, 687, 687, 693, + 693, 813, 693, 693, 693, 813, 693, 813, 693, 693, + 693, 693, 813, 813, 693, 693, 693, 693, 693, 693, + 200, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 200, 200, 813, 200, 200, 813, 200, 710, 710, + + 813, 710, 813, 813, 813, 710, 711, 813, 711, 711, + 813, 711, 813, 813, 813, 711, 727, 727, 813, 813, + 727, 813, 813, 813, 727, 693, 813, 813, 813, 813, + 813, 813, 693, 813, 693, 693, 693, 693, 813, 813, + 693, 693, 693, 693, 693, 693, 751, 751, 813, 751, + 813, 813, 813, 751, 752, 813, 752, 752, 813, 752, + 813, 813, 813, 752, 775, 775, 813, 775, 813, 813, + 813, 775, 776, 813, 776, 813, 813, 776, 813, 813, + 813, 776, 780, 780, 780, 780, 780, 780, 780, 780, + 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, + + 780, 780, 780, 15, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813 } ; -static yyconst short int yy_chk[3663] = +static yyconst short int yy_chk[5675] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -980,403 +1293,624 @@ static yyconst short int yy_chk[3663] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 618, 3, - 20, 2, 70, 3, 47, 36, 50, 4, 34, 3, - 36, 4, 3, 11, 11, 11, 11, 4, 20, 34, - 4, 12, 12, 12, 12, 2, 2, 70, 47, 2, - - 77, 38, 602, 50, 3, 599, 44, 2, 3, 3, - 2, 3, 4, 597, 20, 38, 4, 4, 52, 4, - 5, 5, 5, 44, 5, 6, 6, 6, 52, 6, - 5, 11, 3, 25, 25, 6, 120, 25, 25, 12, - 4, 120, 5, 5, 66, 66, 77, 6, 6, 9, - 9, 9, 9, 9, 58, 25, 74, 74, 9, 9, - 9, 28, 28, 28, 28, 28, 28, 19, 5, 143, - 143, 58, 9, 6, 7, 7, 7, 19, 7, 25, - 19, 19, 19, 19, 19, 19, 19, 19, 27, 27, - 27, 27, 27, 27, 27, 27, 105, 9, 10, 10, - - 10, 10, 10, 76, 583, 105, 90, 10, 10, 10, - 43, 165, 43, 43, 43, 43, 43, 43, 43, 43, - 45, 10, 7, 7, 7, 7, 7, 7, 7, 7, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 533, 3, 38, 2, 52, 3, 49, 38, 50, + 4, 36, 3, 533, 4, 3, 11, 11, 11, 11, + 4, 22, 36, 4, 40, 5, 5, 5, 50, 5, + + 2, 2, 49, 52, 2, 5, 68, 68, 40, 3, + 807, 22, 2, 3, 3, 2, 3, 4, 54, 5, + 5, 4, 4, 148, 4, 6, 6, 6, 54, 6, + 799, 12, 12, 12, 12, 6, 11, 22, 3, 76, + 76, 72, 46, 27, 27, 5, 4, 27, 27, 6, + 6, 46, 47, 78, 9, 9, 9, 9, 9, 74, + 46, 164, 164, 9, 9, 9, 72, 27, 30, 30, + 30, 30, 30, 30, 79, 6, 7, 7, 7, 9, + 7, 12, 47, 47, 74, 148, 47, 60, 141, 81, + 81, 27, 81, 141, 47, 91, 60, 47, 10, 10, + + 10, 10, 10, 78, 9, 60, 91, 10, 10, 10, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 161, 798, 79, 10, 179, 161, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 8, 8, 8, 48, 8, 128, 10, 72, 45, 45, - 90, 76, 45, 79, 79, 165, 79, 128, 582, 127, - 45, 53, 48, 45, 53, 53, 53, 53, 53, 53, - 53, 53, 72, 86, 86, 86, 86, 86, 86, 86, - 86, 103, 103, 103, 103, 103, 103, 580, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 7, 7, 7, 7, 7, 8, 8, 8, 10, 8, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 87, 87, 87, 87, 87, 87, 99, 101, 274, 101, + 101, 101, 179, 101, 101, 99, 149, 101, 106, 106, + 106, 106, 106, 106, 106, 106, 106, 106, 140, 149, + 140, 101, 101, 101, 274, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 26, 131, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 88, 127, 131, - 26, 26, 26, 26, 26, 130, 191, 112, 579, 55, - 55, 129, 112, 55, 55, 88, 112, 132, 112, 191, - 130, 202, 26, 132, 26, 26, 26, 26, 26, 26, - 32, 55, 140, 147, 147, 202, 32, 140, 575, 32, - 32, 88, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 129, 55, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 65, 118, 118, 35, - 35, 35, 35, 35, 159, 159, 65, 133, 35, 65, - 65, 65, 65, 65, 65, 65, 65, 133, 154, 154, - 201, 208, 201, 35, 35, 35, 35, 35, 35, 42, - 42, 42, 42, 42, 158, 42, 42, 175, 157, 42, - 64, 64, 64, 200, 64, 118, 175, 219, 64, 197, - 64, 42, 42, 42, 46, 198, 219, 208, 212, 200, - 198, 227, 64, 64, 46, 564, 154, 46, 46, 46, - - 46, 46, 46, 46, 46, 81, 560, 81, 81, 81, - 158, 81, 81, 227, 212, 81, 157, 245, 64, 87, - 87, 87, 87, 87, 87, 87, 87, 81, 81, 81, - 197, 94, 94, 556, 229, 94, 94, 204, 89, 229, - 46, 89, 89, 89, 89, 89, 89, 89, 89, 91, - 204, 91, 91, 94, 544, 91, 91, 239, 93, 91, - 93, 93, 93, 239, 93, 93, 246, 246, 93, 216, - 216, 216, 91, 91, 245, 289, 248, 94, 249, 260, - 93, 93, 93, 96, 249, 96, 96, 96, 260, 96, - 96, 248, 543, 96, 97, 97, 97, 97, 97, 97, - - 97, 97, 273, 290, 294, 96, 96, 96, 101, 101, - 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, - 102, 102, 102, 102, 273, 290, 482, 291, 97, 98, - 98, 98, 98, 98, 98, 98, 98, 291, 247, 289, - 294, 98, 98, 98, 98, 98, 135, 135, 135, 135, - 135, 135, 135, 135, 332, 433, 285, 433, 137, 137, - 121, 285, 137, 137, 247, 98, 98, 98, 98, 98, - 98, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 137, 247, 482, 106, 106, 106, 106, 106, 121, 121, - 303, 139, 121, 139, 139, 139, 307, 139, 139, 303, - - 121, 139, 528, 121, 137, 307, 332, 106, 106, 106, - 106, 106, 106, 139, 139, 139, 146, 146, 146, 146, - 146, 146, 146, 146, 150, 292, 324, 150, 150, 334, - 292, 324, 383, 524, 150, 163, 163, 163, 163, 163, - 163, 163, 163, 323, 523, 334, 385, 150, 164, 164, - 164, 164, 164, 164, 164, 164, 166, 522, 166, 166, - 167, 385, 166, 166, 167, 323, 166, 262, 262, 211, - 167, 211, 211, 211, 211, 211, 211, 262, 166, 166, - 166, 521, 167, 167, 168, 383, 168, 168, 168, 168, - 168, 168, 168, 168, 169, 327, 169, 169, 169, 169, - - 169, 169, 169, 169, 170, 211, 170, 170, 170, 170, - 170, 170, 170, 170, 203, 264, 264, 327, 203, 388, - 168, 308, 308, 380, 203, 264, 329, 515, 309, 309, - 169, 308, 311, 311, 498, 329, 203, 203, 309, 380, - 170, 171, 311, 171, 171, 171, 171, 171, 171, 171, - 171, 400, 400, 497, 388, 171, 171, 171, 171, 171, - 207, 207, 207, 207, 207, 207, 207, 207, 209, 335, - 209, 209, 209, 209, 209, 209, 209, 209, 335, 171, - 171, 171, 171, 171, 171, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 207, 451, 451, 174, 174, 174, - - 174, 174, 527, 210, 209, 210, 210, 210, 210, 210, - 210, 210, 210, 220, 220, 220, 220, 220, 220, 220, - 220, 174, 174, 174, 174, 174, 174, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 465, 465, 210, - 176, 176, 176, 176, 176, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 222, 222, 222, 222, 222, 222, - 222, 222, 386, 527, 176, 176, 176, 176, 176, 176, - 177, 177, 177, 177, 177, 177, 177, 177, 386, 466, - 466, 328, 177, 177, 177, 177, 177, 223, 223, 223, - 223, 223, 223, 225, 333, 225, 225, 225, 225, 225, - - 225, 225, 225, 328, 333, 493, 177, 177, 177, 177, - 177, 177, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 353, 469, 469, 221, 221, 221, 221, - 221, 250, 353, 250, 250, 250, 250, 250, 250, 250, - 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 221, 221, 221, 221, 221, 221, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 354, 250, 479, 224, - 224, 224, 224, 224, 251, 354, 251, 251, 251, 251, - 251, 251, 251, 251, 261, 261, 261, 261, 261, 261, - 261, 261, 474, 224, 224, 224, 224, 224, 224, 252, - - 473, 252, 252, 252, 252, 252, 252, 252, 252, 370, - 251, 263, 263, 263, 263, 263, 263, 263, 263, 267, - 267, 267, 267, 267, 267, 267, 267, 481, 481, 267, - 472, 370, 505, 505, 470, 252, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 268, 268, 268, - 268, 268, 268, 268, 268, 268, 268, 268, 376, 378, - 427, 268, 268, 268, 268, 268, 269, 269, 269, 269, - 269, 269, 269, 269, 270, 270, 270, 270, 270, 270, - 376, 378, 427, 516, 516, 268, 268, 268, 268, 268, - 268, 271, 271, 271, 271, 271, 271, 271, 271, 271, - - 271, 384, 525, 525, 271, 271, 271, 271, 271, 272, - 384, 272, 272, 272, 272, 272, 272, 272, 272, 293, - 293, 293, 293, 293, 293, 293, 293, 458, 271, 271, - 271, 271, 271, 271, 295, 395, 295, 295, 295, 295, - 295, 295, 295, 295, 297, 395, 297, 297, 297, 297, - 297, 297, 296, 293, 296, 296, 296, 296, 296, 296, - 296, 296, 317, 317, 317, 317, 317, 317, 444, 304, - 295, 304, 304, 304, 304, 304, 304, 304, 304, 440, - 297, 345, 345, 345, 345, 345, 345, 435, 296, 302, - 302, 302, 302, 302, 302, 302, 302, 302, 409, 551, - - 551, 302, 302, 302, 302, 302, 305, 409, 305, 305, - 305, 305, 305, 305, 305, 305, 310, 310, 310, 310, - 310, 310, 310, 310, 431, 302, 302, 302, 302, 302, - 302, 306, 430, 306, 306, 306, 306, 306, 306, 306, - 306, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 314, 314, 314, 314, 314, 314, 314, 314, - 483, 429, 314, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 426, 483, 425, 315, 315, 315, - 315, 315, 316, 316, 316, 316, 316, 316, 316, 316, - 319, 410, 319, 319, 319, 319, 319, 319, 319, 319, - - 410, 315, 315, 315, 315, 315, 315, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 566, 566, 424, - 318, 318, 318, 318, 318, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 423, 318, 318, 318, 318, 318, 318, - 338, 338, 338, 338, 338, 338, 338, 338, 338, 422, - 336, 342, 342, 342, 342, 342, 342, 342, 342, 337, - 344, 344, 344, 344, 344, 344, 344, 344, 364, 364, - 364, 364, 364, 364, 428, 338, 343, 397, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 397, 586, 586, - - 343, 343, 343, 343, 343, 347, 428, 347, 347, 347, - 347, 347, 347, 347, 347, 348, 348, 348, 348, 348, - 348, 348, 348, 393, 343, 343, 343, 343, 343, 343, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 392, - 432, 432, 346, 346, 346, 346, 346, 350, 445, 350, - 350, 350, 350, 350, 350, 350, 350, 352, 445, 352, - 352, 352, 352, 352, 352, 382, 346, 346, 346, 346, - 346, 346, 351, 381, 351, 351, 351, 351, 351, 351, - 351, 351, 355, 355, 356, 356, 403, 403, 403, 403, - 403, 403, 355, 432, 356, 357, 357, 357, 357, 357, - - 357, 357, 357, 358, 358, 363, 363, 363, 363, 363, - 363, 363, 363, 358, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 361, 361, 361, 361, 361, - 361, 361, 361, 590, 590, 361, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 462, 603, 603, - 362, 362, 362, 362, 362, 366, 462, 366, 366, 366, - 366, 366, 366, 366, 366, 387, 387, 387, 387, 387, - 387, 387, 387, 375, 362, 362, 362, 362, 362, 362, - 365, 365, 365, 365, 365, 365, 365, 365, 365, 463, - 634, 634, 374, 365, 365, 365, 365, 365, 463, 387, - - 389, 389, 389, 389, 389, 389, 389, 389, 389, 391, - 391, 391, 391, 391, 391, 391, 373, 365, 365, 365, - 365, 365, 365, 390, 390, 390, 390, 390, 390, 390, - 390, 390, 471, 434, 372, 389, 394, 394, 394, 394, - 394, 394, 394, 394, 391, 396, 396, 396, 396, 396, - 396, 396, 396, 434, 471, 434, 434, 398, 390, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 401, 487, - 401, 401, 401, 401, 401, 401, 401, 401, 401, 434, - 369, 368, 401, 401, 401, 401, 401, 402, 402, 402, - 402, 402, 402, 402, 402, 405, 367, 405, 405, 405, - - 405, 405, 405, 405, 405, 487, 401, 401, 401, 401, - 401, 401, 404, 404, 404, 404, 404, 404, 404, 404, - 404, 514, 349, 341, 404, 404, 404, 404, 404, 406, - 514, 406, 406, 406, 406, 406, 406, 406, 406, 420, - 420, 420, 420, 420, 420, 411, 411, 340, 404, 404, - 404, 404, 404, 404, 407, 411, 407, 407, 407, 407, - 407, 407, 407, 407, 408, 339, 408, 408, 408, 408, - 408, 408, 408, 408, 412, 412, 413, 413, 413, 413, - 413, 413, 413, 413, 412, 414, 414, 419, 419, 419, - 419, 419, 419, 419, 419, 414, 415, 415, 415, 415, - - 415, 415, 415, 415, 415, 415, 415, 417, 417, 417, - 417, 417, 417, 417, 417, 331, 330, 417, 418, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 446, 326, - 325, 322, 418, 418, 418, 418, 418, 421, 446, 421, - 421, 421, 421, 421, 421, 421, 421, 447, 447, 447, - 447, 447, 447, 447, 447, 321, 418, 418, 418, 418, - 418, 418, 436, 448, 436, 436, 436, 436, 436, 436, - 436, 436, 437, 448, 437, 437, 437, 437, 437, 437, - 437, 437, 438, 499, 438, 438, 438, 438, 438, 438, - 438, 438, 491, 499, 570, 606, 320, 439, 436, 439, - - 439, 439, 439, 439, 439, 439, 439, 441, 437, 441, - 441, 441, 441, 441, 441, 441, 441, 442, 438, 442, - 442, 442, 442, 442, 442, 442, 442, 301, 491, 300, - 570, 606, 443, 439, 443, 443, 443, 443, 443, 443, - 443, 443, 449, 475, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 452, 299, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 477, 475, 518, 452, 452, 452, - 452, 452, 453, 453, 453, 453, 453, 453, 453, 453, - 454, 454, 454, 454, 454, 454, 477, 298, 518, 288, - 287, 452, 452, 452, 452, 452, 452, 455, 455, 455, - - 455, 455, 455, 455, 455, 455, 286, 284, 282, 455, - 455, 455, 455, 455, 456, 281, 456, 456, 456, 456, - 456, 456, 456, 456, 457, 457, 457, 457, 457, 457, - 457, 457, 280, 455, 455, 455, 455, 455, 455, 459, - 279, 459, 459, 459, 459, 459, 459, 459, 459, 460, - 480, 460, 460, 460, 460, 460, 460, 460, 460, 461, - 278, 461, 461, 461, 461, 461, 461, 464, 464, 685, - 480, 277, 480, 480, 685, 276, 275, 464, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 484, 259, - 484, 484, 484, 485, 258, 485, 485, 485, 486, 486, - - 486, 486, 486, 486, 486, 486, 488, 500, 488, 488, - 488, 488, 488, 488, 488, 488, 489, 500, 489, 489, - 489, 489, 489, 489, 489, 489, 257, 502, 545, 520, - 546, 256, 486, 254, 548, 253, 484, 502, 545, 244, - 546, 485, 488, 490, 548, 490, 490, 490, 490, 490, - 490, 520, 489, 492, 492, 492, 492, 492, 492, 492, - 492, 494, 243, 494, 494, 494, 494, 494, 494, 494, - 494, 508, 508, 508, 508, 508, 508, 242, 495, 490, - 495, 495, 495, 495, 495, 495, 495, 495, 496, 241, - 496, 496, 496, 496, 496, 496, 501, 501, 501, 501, - - 501, 501, 501, 501, 503, 561, 503, 503, 503, 503, - 503, 503, 503, 503, 503, 506, 581, 506, 506, 506, - 506, 506, 506, 506, 506, 506, 581, 561, 240, 506, - 506, 506, 506, 506, 507, 507, 507, 507, 507, 507, - 507, 507, 510, 237, 510, 510, 510, 510, 510, 510, - 510, 510, 235, 506, 506, 506, 506, 506, 506, 509, - 509, 509, 509, 509, 509, 509, 509, 234, 233, 232, - 231, 509, 509, 509, 509, 509, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 563, 509, 509, 509, 509, 509, - - 509, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 529, 230, 529, 529, 529, 530, 563, 530, 530, 530, - 531, 228, 531, 531, 531, 532, 226, 532, 532, 532, - 533, 218, 217, 533, 533, 533, 533, 533, 533, 533, - 533, 214, 587, 534, 534, 589, 535, 534, 535, 535, - 535, 213, 206, 536, 536, 205, 199, 536, 529, 534, - 534, 534, 196, 530, 587, 195, 194, 589, 531, 536, - 536, 536, 537, 532, 537, 537, 537, 537, 537, 537, - 537, 537, 538, 600, 538, 538, 538, 538, 538, 538, - 538, 538, 193, 539, 535, 539, 539, 539, 539, 539, - - 539, 539, 539, 192, 190, 600, 189, 540, 537, 540, - 540, 540, 540, 540, 540, 540, 540, 541, 538, 541, - 541, 541, 541, 541, 541, 541, 541, 188, 542, 539, - 542, 542, 542, 542, 542, 542, 542, 542, 547, 547, - 547, 547, 547, 547, 547, 547, 549, 187, 549, 549, - 549, 549, 549, 549, 549, 549, 549, 552, 186, 552, - 552, 552, 552, 552, 552, 552, 552, 185, 184, 183, - 182, 552, 552, 552, 552, 552, 553, 553, 553, 553, - 553, 553, 553, 553, 554, 554, 554, 554, 554, 554, - 181, 180, 179, 173, 172, 552, 552, 552, 552, 552, - - 552, 555, 162, 555, 555, 555, 555, 555, 555, 555, - 555, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 558, 558, 558, 558, 558, 558, 558, 558, 558, 559, - 559, 559, 559, 559, 559, 559, 567, 567, 567, 567, - 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, - 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, - 571, 161, 571, 571, 571, 571, 571, 571, 571, 571, - 572, 160, 572, 572, 572, 572, 572, 572, 572, 572, - 156, 155, 153, 149, 142, 573, 569, 573, 573, 573, - 573, 573, 573, 138, 136, 134, 571, 574, 574, 574, - - 574, 574, 574, 574, 574, 576, 572, 576, 576, 576, - 576, 576, 576, 576, 576, 126, 125, 124, 123, 122, - 577, 573, 577, 577, 577, 577, 577, 577, 577, 577, - 578, 117, 578, 578, 578, 578, 578, 578, 584, 116, - 584, 584, 584, 584, 584, 584, 584, 584, 591, 115, - 591, 591, 591, 591, 591, 591, 591, 591, 592, 114, - 592, 592, 592, 592, 592, 592, 592, 592, 593, 113, - 593, 593, 593, 593, 593, 593, 593, 593, 613, 613, - 613, 613, 613, 613, 591, 594, 594, 594, 594, 594, - 594, 594, 594, 111, 592, 595, 595, 595, 595, 595, - - 595, 595, 595, 110, 593, 596, 596, 596, 596, 596, - 596, 596, 596, 605, 605, 605, 605, 605, 605, 605, - 605, 607, 109, 607, 607, 607, 607, 607, 607, 607, - 607, 608, 108, 608, 608, 608, 608, 608, 608, 608, - 608, 104, 100, 99, 95, 92, 609, 605, 609, 609, - 609, 609, 609, 609, 84, 83, 82, 607, 611, 611, - 611, 611, 611, 611, 611, 611, 80, 608, 612, 612, - 612, 612, 612, 612, 612, 612, 75, 68, 61, 57, - 56, 54, 609, 615, 615, 615, 615, 615, 615, 615, - 615, 616, 616, 616, 616, 616, 616, 616, 616, 617, - - 617, 617, 617, 617, 617, 617, 617, 619, 619, 619, - 619, 619, 619, 619, 619, 51, 49, 615, 620, 620, - 620, 620, 620, 620, 41, 616, 40, 39, 37, 33, - 29, 23, 17, 617, 15, 14, 13, 0, 0, 0, - 0, 619, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 620, 622, 622, 622, 622, 622, 622, 622, - 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, - 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, - 623, 623, 623, 623, 623, 624, 624, 624, 624, 624, - 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, - - 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, - 625, 625, 625, 625, 625, 625, 625, 626, 0, 0, - 0, 0, 0, 0, 0, 626, 626, 626, 0, 0, - 626, 626, 626, 627, 627, 627, 627, 627, 627, 627, - 627, 627, 627, 627, 627, 627, 627, 627, 627, 628, - 0, 0, 0, 0, 628, 0, 0, 628, 628, 628, - 628, 0, 628, 628, 628, 629, 0, 0, 0, 0, - 0, 0, 0, 629, 629, 629, 0, 0, 629, 629, - 629, 630, 0, 0, 630, 630, 0, 630, 0, 630, - 630, 630, 0, 0, 630, 630, 630, 631, 631, 0, - - 0, 0, 631, 632, 0, 0, 632, 632, 0, 632, - 0, 632, 632, 632, 0, 0, 632, 632, 632, 633, - 0, 0, 633, 633, 0, 633, 0, 633, 633, 633, - 0, 633, 0, 633, 633, 635, 0, 0, 635, 0, - 0, 635, 0, 635, 635, 635, 635, 0, 635, 635, - 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, - 636, 636, 636, 636, 636, 636, 636, 637, 637, 0, - 637, 0, 637, 637, 637, 637, 637, 637, 637, 637, - 637, 637, 637, 638, 638, 638, 638, 638, 638, 638, - 638, 638, 638, 638, 638, 638, 638, 638, 638, 639, - - 639, 0, 639, 639, 639, 639, 639, 639, 639, 639, - 639, 639, 639, 639, 639, 640, 0, 0, 0, 0, - 640, 0, 0, 640, 640, 640, 0, 0, 640, 640, - 640, 641, 0, 0, 641, 641, 0, 641, 0, 641, - 641, 641, 0, 0, 641, 641, 641, 642, 642, 0, - 0, 0, 642, 643, 643, 643, 0, 0, 0, 643, - 644, 0, 0, 644, 644, 0, 644, 0, 644, 644, - 644, 0, 0, 644, 644, 644, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 646, 646, 0, 0, 0, 646, 647, 647, - - 647, 0, 0, 0, 647, 648, 648, 0, 0, 0, - 648, 649, 649, 0, 0, 0, 649, 650, 650, 0, - 0, 0, 650, 651, 651, 651, 0, 0, 0, 651, - 652, 652, 0, 0, 0, 652, 653, 653, 0, 0, - 0, 653, 654, 654, 0, 0, 0, 654, 655, 655, - 655, 0, 0, 0, 655, 656, 656, 656, 656, 0, - 0, 0, 656, 657, 657, 0, 0, 0, 657, 658, - 658, 0, 0, 0, 658, 659, 659, 0, 0, 0, - 659, 660, 660, 660, 0, 0, 0, 660, 661, 661, - 661, 661, 0, 0, 0, 661, 662, 662, 0, 0, - - 0, 662, 663, 663, 0, 0, 0, 663, 664, 664, - 664, 0, 0, 0, 664, 665, 665, 665, 665, 0, - 0, 0, 665, 666, 666, 0, 0, 0, 666, 667, - 0, 667, 667, 0, 0, 0, 667, 668, 668, 668, - 0, 0, 0, 668, 669, 669, 669, 669, 0, 0, - 0, 669, 670, 670, 0, 0, 0, 670, 671, 0, - 671, 671, 0, 0, 0, 671, 672, 672, 672, 0, - 0, 0, 672, 673, 673, 673, 0, 0, 0, 0, - 673, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 675, 675, 0, - - 675, 675, 675, 0, 0, 675, 675, 675, 0, 0, - 675, 675, 675, 676, 676, 0, 676, 676, 676, 0, - 0, 676, 676, 676, 0, 0, 676, 676, 676, 677, - 677, 0, 0, 0, 677, 678, 0, 678, 678, 0, - 0, 0, 678, 679, 679, 0, 0, 0, 0, 679, - 680, 680, 0, 0, 0, 680, 681, 0, 681, 681, - 0, 0, 0, 681, 682, 682, 0, 0, 0, 682, - 683, 0, 683, 0, 0, 0, 0, 683, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 621, 621, 621, 621, 621, 621, - - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621 + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 21, 125, 153, 797, 82, 168, + 168, 270, 153, 178, 21, 784, 125, 21, 21, 21, + + 21, 21, 21, 21, 21, 21, 21, 28, 82, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 152, 180, 180, 28, 28, 28, 28, 28, 151, 270, + 289, 57, 57, 152, 82, 57, 57, 123, 123, 123, + 123, 123, 123, 178, 151, 28, 154, 28, 28, 28, + 28, 28, 28, 34, 289, 57, 154, 500, 246, 34, + 246, 500, 34, 34, 313, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 57, + 313, 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, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 219, 783, 242, 37, 37, 37, + 37, 37, 245, 150, 236, 219, 37, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 247, 236, 245, + 303, 37, 37, 37, 37, 37, 37, 44, 44, 44, + 44, 44, 247, 44, 44, 311, 311, 44, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 150, 242, + 108, 44, 44, 44, 45, 303, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 48, 66, 66, 66, + 108, 66, 304, 110, 370, 66, 48, 66, 304, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 132, + 243, 66, 66, 110, 132, 243, 108, 281, 132, 171, + 132, 83, 171, 171, 370, 138, 138, 83, 281, 171, + 83, 114, 114, 83, 83, 114, 114, 66, 182, 110, + 780, 302, 175, 175, 171, 48, 67, 83, 291, 83, + 183, 235, 235, 291, 235, 114, 67, 249, 182, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 302, + 183, 249, 83, 83, 84, 138, 777, 84, 84, 114, + + 84, 84, 84, 84, 182, 235, 84, 84, 111, 775, + 111, 111, 175, 314, 111, 111, 183, 369, 111, 314, + 84, 84, 84, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 111, 111, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 84, 84, 85, 310, 369, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 322, 357, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 322, 357, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + + 85, 85, 85, 85, 85, 85, 85, 88, 310, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 278, 278, 278, 88, 88, 88, 88, 88, 266, 266, + 113, 266, 113, 113, 113, 330, 113, 113, 330, 371, + 113, 196, 196, 196, 196, 196, 196, 88, 88, 88, + 88, 88, 88, 89, 113, 113, 113, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 453, 371, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 453, 89, 89, 89, 89, 89, + + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 377, 444, 378, 92, 92, 92, + 92, 92, 203, 344, 158, 158, 92, 203, 158, 158, + 323, 203, 444, 203, 344, 323, 301, 142, 378, 301, + 457, 92, 92, 92, 92, 92, 92, 97, 158, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 116, + 766, 116, 116, 116, 457, 116, 116, 142, 142, 116, + 301, 142, 158, 214, 214, 214, 214, 214, 214, 142, + 372, 377, 142, 116, 116, 116, 117, 117, 117, 117, + + 117, 117, 117, 117, 117, 117, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 346, 346, 765, 160, + 379, 160, 160, 160, 372, 160, 160, 764, 346, 160, + 400, 379, 117, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 160, 160, 160, 458, 118, 118, 118, + 118, 118, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 273, 273, 273, 273, 427, 427, 400, 755, + 458, 118, 118, 118, 118, 118, 118, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 312, 498, + 754, 126, 126, 126, 126, 126, 194, 194, 194, 194, + + 194, 194, 194, 194, 194, 194, 285, 285, 285, 285, + 285, 285, 752, 498, 312, 126, 126, 126, 126, 126, + 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 312, 562, 562, 127, 127, 127, 127, 127, + 184, 409, 184, 184, 373, 186, 184, 184, 380, 373, + 184, 186, 409, 380, 186, 348, 348, 186, 186, 127, + 127, 127, 127, 127, 127, 184, 184, 348, 413, 497, + 428, 186, 428, 186, 188, 497, 188, 188, 188, 413, + 188, 188, 429, 751, 188, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 526, 186, 186, 188, 188, + + 188, 189, 615, 615, 189, 189, 429, 189, 189, 189, + 189, 190, 431, 189, 189, 190, 502, 431, 414, 414, + 502, 190, 415, 415, 429, 433, 430, 189, 189, 189, + 414, 430, 526, 430, 415, 190, 190, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 432, 508, 433, + 432, 523, 189, 189, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 749, 508, 523, 433, 192, 192, + 192, 192, 192, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 319, 511, 319, 319, 319, 319, 319, + 319, 439, 192, 192, 192, 192, 192, 192, 197, 748, + + 513, 439, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 442, 513, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 511, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 442, + 504, 506, 198, 198, 198, 198, 198, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 354, 354, 354, + 354, 354, 354, 434, 504, 506, 198, 198, 198, 198, + + 198, 198, 212, 747, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 248, 454, 737, 434, 248, 514, + 454, 561, 736, 561, 248, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 434, 514, 727, 248, 248, + 212, 215, 443, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 443, 564, 584, 564, 215, 215, 215, + 215, 215, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 423, 423, 423, 423, 423, 423, 571, 584, + 571, 215, 215, 215, 215, 215, 215, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 589, 589, + + 589, 218, 218, 218, 218, 218, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 450, 725, 450, 450, + 450, 450, 450, 450, 724, 218, 218, 218, 218, 218, + 218, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 565, 616, 616, 220, 220, 220, 220, + 220, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 466, 466, 466, 466, 466, 466, 565, 623, 623, + 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 566, 625, 565, + 221, 221, 221, 221, 221, 347, 347, 347, 347, 347, + + 347, 347, 347, 347, 347, 473, 473, 473, 473, 473, + 473, 566, 625, 723, 221, 221, 221, 221, 221, 221, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 631, 631, 566, 222, 222, 222, 222, 222, 351, + 351, 351, 351, 351, 351, 351, 351, 622, 711, 622, + 403, 351, 403, 403, 403, 403, 403, 403, 222, 222, + 222, 222, 222, 222, 253, 627, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 710, 403, 627, + 254, 254, 254, 254, 254, 353, 353, 353, 353, 353, + + 353, 353, 353, 353, 353, 480, 708, 480, 480, 480, + 480, 480, 480, 707, 254, 254, 254, 254, 254, 254, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 529, 529, 529, 529, 256, 256, 256, 256, 256, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 492, + 492, 492, 492, 492, 492, 674, 674, 700, 256, 256, + 256, 256, 256, 256, 269, 269, 269, 269, 269, 269, + 269, 269, 269, 269, 417, 417, 420, 420, 420, 420, + 420, 420, 420, 420, 680, 680, 417, 535, 420, 422, + 422, 422, 422, 422, 422, 422, 422, 422, 422, 535, + + 269, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 445, 683, 683, 283, 283, + 283, 283, 283, 570, 570, 445, 446, 446, 446, 446, + 446, 446, 446, 446, 446, 446, 541, 541, 541, 541, + 541, 541, 283, 283, 283, 283, 283, 283, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 679, 698, 679, 286, 286, 286, 286, 286, 465, 465, + 465, 465, 465, 465, 465, 465, 465, 465, 570, 563, + 697, 624, 620, 481, 563, 620, 624, 286, 286, 286, + + 286, 286, 286, 287, 481, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 696, 621, 640, 643, 320, + 320, 320, 320, 320, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 558, 558, 558, 558, 558, 558, + 621, 640, 643, 320, 320, 320, 320, 320, 320, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 643, + 630, 693, 621, 321, 321, 321, 321, 321, 472, 472, + 472, 472, 472, 472, 472, 472, 472, 472, 648, 648, + 648, 648, 630, 482, 630, 630, 691, 321, 321, 321, + + 321, 321, 321, 334, 482, 334, 334, 334, 334, 334, + 334, 334, 334, 334, 334, 335, 595, 335, 335, 335, + 335, 335, 335, 335, 335, 335, 335, 336, 595, 336, + 336, 336, 336, 336, 336, 336, 336, 336, 336, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 572, 685, 633, 349, 349, 349, 349, + 349, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 633, 731, 824, 731, 572, 824, 572, 572, 645, + 349, 349, 349, 349, 349, 349, 352, 352, 352, 352, + + 352, 352, 352, 352, 352, 352, 352, 352, 352, 483, + 483, 572, 352, 352, 352, 352, 352, 484, 484, 486, + 486, 483, 496, 501, 503, 733, 733, 645, 685, 484, + 676, 486, 496, 501, 686, 503, 352, 352, 352, 352, + 352, 352, 355, 355, 355, 355, 355, 355, 355, 355, + 355, 355, 355, 355, 676, 682, 641, 355, 355, 355, + 355, 355, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 604, 604, 604, 604, 604, 604, 512, 632, + 641, 355, 355, 355, 355, 355, 355, 356, 512, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 383, + + 641, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 762, 762, 781, 781, 384, 384, 384, 384, 384, + 489, 489, 489, 489, 489, 489, 489, 489, 632, 882, + 882, 611, 489, 611, 611, 611, 611, 611, 611, 384, + 384, 384, 384, 384, 384, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 639, 681, 639, 639, 639, + 649, 399, 401, 596, 401, 401, 401, 401, 401, 401, + + 401, 401, 401, 401, 402, 596, 402, 402, 402, 402, + 402, 402, 402, 402, 402, 402, 408, 408, 408, 408, + 408, 408, 408, 408, 408, 408, 408, 701, 649, 728, + 408, 408, 408, 408, 408, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 675, 836, 742, 787, 836, + 547, 701, 673, 728, 408, 408, 408, 408, 408, 408, + 412, 547, 412, 412, 412, 412, 412, 412, 412, 412, + 412, 412, 418, 418, 418, 418, 418, 418, 418, 418, + 418, 418, 418, 418, 418, 742, 787, 670, 418, 418, + 418, 418, 418, 538, 598, 538, 538, 538, 538, 538, + + 538, 827, 827, 827, 669, 538, 598, 634, 739, 634, + 634, 634, 418, 418, 418, 418, 418, 418, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 853, 739, 853, 421, 421, 421, 421, 421, 540, + 540, 540, 540, 540, 540, 540, 540, 540, 540, 578, + 578, 578, 578, 578, 578, 578, 656, 634, 421, 421, + 421, 421, 421, 421, 424, 424, 424, 424, 424, 424, + 424, 424, 424, 424, 424, 424, 548, 549, 549, 424, + 424, 424, 424, 424, 550, 550, 612, 548, 613, 549, + 552, 552, 844, 844, 844, 655, 550, 612, 657, 613, + + 759, 642, 552, 424, 424, 424, 424, 424, 424, 425, + 657, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 426, 653, 768, 759, 642, 854, 426, 854, 916, + 426, 426, 916, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 642, 768, 652, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 464, 464, 464, 464, 464, 464, 464, 464, 464, + + 464, 464, 555, 555, 555, 555, 555, 555, 555, 555, + 865, 651, 865, 658, 555, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 658, 883, 883, 464, 471, + 660, 471, 471, 471, 471, 471, 471, 471, 471, 471, + 471, 471, 660, 637, 702, 471, 471, 471, 471, 471, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, + 619, 619, 619, 619, 619, 619, 619, 619, 702, 471, + 471, 471, 471, 471, 471, 474, 474, 474, 474, 474, + 474, 474, 474, 474, 474, 474, 778, 636, 702, 474, + 474, 474, 474, 474, 587, 587, 587, 587, 587, 587, + + 587, 587, 587, 587, 866, 870, 866, 870, 614, 614, + 778, 894, 894, 474, 474, 474, 474, 474, 474, 475, + 614, 475, 475, 475, 475, 475, 475, 475, 475, 475, + 475, 487, 487, 487, 487, 487, 487, 487, 487, 487, + 487, 487, 487, 487, 678, 629, 703, 487, 487, 487, + 487, 487, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 635, 610, 635, 635, 635, 871, 678, 871, + 703, 487, 487, 487, 487, 487, 487, 490, 490, 490, + 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, + 678, 703, 740, 490, 490, 490, 490, 490, 597, 597, + + 597, 597, 597, 597, 597, 597, 597, 597, 875, 878, + 875, 878, 635, 888, 609, 888, 740, 490, 490, 490, + 490, 490, 490, 493, 493, 493, 493, 493, 493, 493, + 493, 493, 493, 493, 608, 889, 740, 889, 493, 493, + 493, 493, 493, 601, 594, 601, 601, 601, 601, 601, + 601, 897, 592, 897, 654, 601, 654, 654, 654, 654, + 654, 654, 493, 493, 493, 493, 493, 493, 494, 712, + 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, + 495, 712, 898, 901, 898, 901, 495, 692, 692, 495, + 495, 692, 495, 495, 495, 495, 495, 495, 495, 495, + + 495, 495, 495, 495, 495, 692, 692, 692, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, + 517, 522, 913, 913, 713, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 713, 522, 914, 914, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + + 522, 522, 591, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 525, 525, 525, 525, 525, 525, 525, 525, 525, + 525, 603, 603, 603, 603, 603, 603, 603, 603, 603, + 603, 607, 607, 607, 607, 607, 607, 607, 607, 607, + 607, 666, 666, 666, 666, 666, 666, 525, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 527, 650, + 650, 650, 650, 650, 650, 650, 650, 650, 650, 659, + 659, 659, 659, 659, 659, 659, 659, 659, 659, 721, + 721, 721, 721, 721, 721, 527, 536, 715, 536, 536, + + 536, 536, 536, 536, 536, 536, 536, 536, 536, 715, + 590, 582, 536, 536, 536, 536, 536, 663, 753, 663, + 663, 663, 663, 663, 663, 907, 908, 907, 908, 663, + 753, 687, 672, 687, 687, 687, 536, 536, 536, 536, + 536, 536, 539, 672, 539, 539, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 730, 581, 580, 539, 539, + 539, 539, 539, 665, 665, 665, 665, 665, 665, 665, + 665, 665, 665, 688, 579, 688, 688, 688, 910, 730, + 910, 687, 539, 539, 539, 539, 539, 539, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 577, + + 576, 730, 542, 542, 542, 542, 542, 695, 695, 695, + 695, 695, 695, 695, 695, 695, 695, 794, 794, 794, + 794, 794, 794, 688, 575, 573, 542, 542, 542, 542, + 542, 542, 543, 569, 543, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 546, 568, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 553, 553, 553, 553, + 553, 553, 553, 553, 553, 553, 553, 553, 553, 567, + 551, 761, 553, 553, 553, 553, 553, 689, 545, 689, + 689, 689, 690, 544, 690, 690, 690, 699, 531, 699, + 699, 699, 699, 699, 699, 761, 553, 553, 553, 553, + + 553, 553, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 918, 530, 918, 761, 556, 556, + 556, 556, 556, 919, 923, 919, 923, 689, 924, 929, + 924, 929, 690, 726, 726, 726, 726, 726, 726, 726, + 524, 521, 556, 556, 556, 556, 556, 556, 559, 520, + 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, + 560, 694, 519, 694, 694, 694, 560, 694, 694, 560, + 560, 694, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 694, 694, 694, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 583, 750, 518, 750, 750, 750, 750, 750, 750, 583, + 930, 516, 930, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 515, 510, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 509, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 586, + + 479, 586, 586, 586, 586, 586, 586, 586, 586, 586, + 586, 714, 714, 714, 714, 714, 714, 714, 714, 714, + 714, 718, 478, 718, 718, 718, 718, 718, 718, 922, + 477, 469, 922, 718, 468, 467, 922, 586, 593, 463, + 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, + 599, 456, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 455, 452, 451, 599, 599, 599, 599, + 599, 720, 720, 720, 720, 720, 720, 720, 720, 720, + 720, 758, 449, 758, 758, 758, 758, 758, 758, 448, + 599, 599, 599, 599, 599, 599, 602, 447, 602, 602, + + 602, 602, 602, 602, 602, 602, 602, 602, 602, 441, + 440, 438, 602, 602, 602, 602, 602, 734, 734, 734, + 734, 734, 734, 734, 734, 734, 734, 767, 437, 767, + 767, 767, 767, 767, 767, 436, 602, 602, 602, 602, + 602, 602, 605, 605, 605, 605, 605, 605, 605, 605, + 605, 605, 605, 435, 411, 410, 605, 605, 605, 605, + 605, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 407, 745, 406, 745, 745, 745, 745, 745, 745, + 605, 605, 605, 605, 605, 605, 606, 405, 606, 606, + 606, 606, 606, 606, 606, 606, 606, 606, 617, 617, + + 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, + 745, 404, 398, 397, 617, 617, 617, 617, 617, 746, + 746, 746, 746, 746, 746, 746, 746, 746, 746, 800, + 396, 800, 800, 800, 800, 800, 800, 395, 617, 617, + 617, 617, 617, 617, 638, 394, 638, 638, 638, 638, + 638, 638, 638, 638, 638, 638, 644, 644, 644, 644, + 644, 644, 644, 644, 644, 644, 763, 763, 763, 763, + 763, 763, 763, 763, 763, 763, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 812, 812, 812, 812, + 812, 812, 644, 646, 393, 646, 646, 646, 646, 646, + + 646, 646, 646, 646, 646, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 392, 928, 391, 390, 928, + 389, 646, 661, 928, 661, 661, 661, 661, 661, 661, + 661, 661, 661, 661, 661, 388, 387, 386, 661, 661, + 661, 661, 661, 790, 385, 790, 790, 790, 790, 790, + 790, 792, 792, 792, 792, 792, 792, 792, 792, 792, + 792, 382, 661, 661, 661, 661, 661, 661, 664, 381, + 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, + 664, 790, 376, 375, 664, 664, 664, 664, 664, 793, + + 793, 793, 793, 793, 793, 793, 793, 793, 793, 374, + 368, 366, 365, 364, 363, 362, 361, 360, 664, 664, + 664, 664, 664, 664, 667, 667, 667, 667, 667, 667, + 667, 667, 667, 667, 359, 343, 342, 341, 667, 667, + 667, 667, 667, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 796, 340, 338, 337, 809, 809, 809, 809, + 809, 809, 667, 667, 667, 667, 667, 667, 668, 333, + 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 704, 809, 704, 704, 704, 704, 704, 704, 704, + + 704, 704, 704, 705, 332, 705, 705, 705, 705, 705, + 705, 705, 705, 705, 705, 706, 331, 706, 706, 706, + 706, 706, 706, 706, 706, 706, 706, 709, 329, 709, + 709, 709, 709, 709, 709, 709, 709, 709, 709, 716, + 328, 716, 716, 716, 716, 716, 716, 716, 716, 716, + 716, 716, 327, 326, 325, 716, 716, 716, 716, 716, + 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, + 324, 318, 317, 316, 309, 308, 307, 306, 305, 716, + 716, 716, 716, 716, 716, 719, 299, 719, 719, 719, + 719, 719, 719, 719, 719, 719, 719, 297, 296, 295, + + 294, 719, 719, 719, 719, 719, 805, 805, 805, 805, + 805, 805, 805, 805, 805, 805, 293, 292, 290, 288, + 280, 279, 276, 275, 268, 719, 719, 719, 719, 719, + 719, 738, 267, 738, 738, 738, 738, 738, 738, 738, + 738, 738, 738, 741, 265, 741, 741, 741, 741, 741, + 741, 741, 741, 741, 741, 743, 264, 743, 743, 743, + 743, 743, 743, 743, 743, 743, 743, 744, 263, 744, + 744, 744, 744, 744, 744, 744, 744, 744, 744, 756, + 262, 756, 756, 756, 756, 756, 756, 756, 756, 756, + 756, 769, 261, 769, 769, 769, 769, 769, 769, 769, + + 769, 769, 769, 770, 260, 770, 770, 770, 770, 770, + 770, 770, 770, 770, 770, 771, 259, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 785, 258, 785, + 785, 785, 785, 785, 785, 785, 785, 785, 785, 786, + 255, 786, 786, 786, 786, 786, 786, 786, 786, 786, + 786, 788, 252, 788, 788, 788, 788, 788, 788, 788, + 788, 788, 788, 789, 251, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 801, 801, 801, 801, 801, + 801, 801, 801, 801, 801, 806, 806, 806, 806, 806, + 806, 806, 806, 806, 806, 811, 811, 811, 811, 811, + + 811, 811, 811, 811, 811, 250, 244, 241, 240, 239, + 238, 801, 802, 802, 802, 802, 802, 802, 802, 802, + 802, 802, 237, 234, 233, 232, 231, 230, 229, 228, + 227, 226, 225, 224, 223, 217, 216, 209, 208, 207, + 206, 205, 204, 202, 201, 199, 193, 185, 802, 803, + 803, 803, 803, 803, 803, 803, 803, 803, 803, 181, + 177, 176, 174, 170, 163, 159, 157, 155, 147, 146, + 145, 144, 143, 137, 136, 135, 134, 133, 131, 130, + 129, 128, 124, 120, 119, 803, 808, 808, 808, 808, + 808, 808, 808, 808, 808, 808, 115, 112, 109, 104, + + 103, 102, 100, 96, 95, 94, 93, 90, 77, 70, + 63, 59, 58, 56, 55, 53, 51, 43, 42, 41, + 39, 35, 808, 814, 814, 814, 814, 814, 814, 814, + 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, + 814, 814, 814, 814, 815, 815, 815, 815, 815, 815, + 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, + 815, 815, 815, 815, 815, 816, 816, 816, 816, 816, + 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, + 816, 816, 816, 816, 816, 816, 817, 817, 817, 817, + 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, + + 817, 817, 817, 817, 817, 817, 817, 818, 31, 25, + 19, 17, 16, 15, 818, 0, 818, 818, 818, 818, + 0, 0, 818, 818, 818, 818, 818, 818, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 819, 819, 820, + 0, 0, 0, 0, 820, 0, 820, 0, 820, 820, + 820, 820, 820, 0, 820, 820, 820, 820, 820, 820, + 821, 0, 0, 0, 0, 0, 0, 821, 0, 821, + 821, 821, 821, 0, 0, 821, 821, 821, 821, 821, + 821, 822, 0, 0, 822, 822, 0, 822, 822, 0, + + 822, 822, 822, 822, 0, 0, 822, 822, 822, 822, + 822, 822, 823, 823, 0, 823, 0, 0, 0, 823, + 825, 0, 0, 825, 825, 0, 825, 825, 0, 825, + 825, 825, 825, 0, 0, 825, 825, 825, 825, 825, + 825, 826, 0, 0, 826, 826, 0, 826, 826, 0, + 826, 826, 826, 826, 0, 826, 826, 826, 0, 826, + 826, 826, 828, 0, 0, 828, 0, 0, 828, 828, + 0, 828, 828, 828, 828, 828, 0, 828, 828, 828, + 828, 828, 828, 829, 829, 829, 829, 829, 829, 829, + 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, + + 829, 829, 829, 829, 830, 830, 0, 830, 0, 830, + 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, + 830, 830, 830, 830, 830, 831, 0, 0, 0, 0, + 831, 0, 831, 0, 831, 831, 831, 831, 831, 0, + 831, 831, 831, 831, 831, 831, 832, 0, 0, 0, + 0, 0, 0, 832, 0, 832, 832, 832, 832, 0, + 832, 832, 832, 832, 832, 832, 832, 833, 0, 0, + 833, 833, 0, 833, 833, 0, 833, 833, 833, 833, + 0, 833, 833, 833, 833, 833, 833, 833, 834, 834, + 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, + + 834, 834, 834, 834, 834, 834, 834, 834, 834, 835, + 835, 0, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 837, 0, 0, 837, 837, 0, 837, 837, 0, 837, + 837, 837, 837, 0, 0, 837, 837, 837, 837, 837, + 837, 838, 838, 0, 838, 0, 0, 0, 838, 839, + 839, 0, 839, 0, 0, 0, 839, 840, 840, 840, + 0, 840, 0, 0, 0, 840, 841, 0, 0, 841, + 841, 0, 841, 841, 0, 841, 841, 841, 841, 0, + 0, 841, 841, 841, 841, 841, 841, 842, 0, 0, + + 842, 842, 0, 842, 842, 0, 842, 842, 842, 842, + 0, 0, 842, 842, 842, 842, 842, 842, 843, 0, + 0, 843, 843, 0, 843, 843, 0, 843, 843, 843, + 843, 0, 843, 843, 843, 0, 843, 843, 843, 845, + 0, 0, 845, 0, 0, 845, 845, 0, 845, 845, + 845, 845, 845, 0, 845, 845, 845, 845, 845, 845, + 846, 0, 0, 0, 0, 0, 0, 846, 0, 846, + 846, 846, 846, 0, 0, 846, 846, 846, 846, 846, + 846, 847, 0, 0, 0, 0, 0, 0, 847, 0, + 847, 847, 847, 847, 0, 847, 847, 847, 847, 847, + + 847, 847, 848, 0, 0, 848, 848, 0, 848, 848, + 0, 848, 848, 848, 848, 0, 848, 848, 848, 848, + 848, 848, 848, 849, 0, 0, 849, 849, 0, 849, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, + 850, 851, 851, 0, 851, 0, 0, 0, 851, 852, + 852, 852, 0, 852, 0, 0, 0, 852, 855, 855, + 0, 855, 0, 0, 0, 855, 856, 856, 0, 856, + 0, 0, 0, 856, 857, 857, 0, 857, 0, 0, + 0, 857, 858, 858, 858, 0, 858, 0, 0, 0, + + 858, 859, 0, 0, 859, 859, 0, 859, 860, 860, + 0, 860, 0, 0, 0, 860, 861, 861, 0, 861, + 0, 0, 0, 861, 862, 862, 0, 862, 0, 0, + 0, 862, 863, 863, 863, 0, 863, 0, 0, 0, + 863, 864, 864, 864, 864, 0, 864, 0, 0, 0, + 864, 867, 867, 0, 867, 0, 0, 0, 867, 868, + 868, 0, 868, 0, 0, 0, 868, 869, 869, 0, + 869, 0, 0, 0, 869, 872, 872, 872, 0, 872, + 0, 0, 0, 872, 873, 873, 873, 873, 0, 873, + 0, 0, 0, 873, 874, 874, 874, 874, 874, 874, + + 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, + 874, 874, 874, 874, 874, 876, 876, 0, 876, 0, + 0, 0, 876, 877, 877, 0, 877, 0, 0, 0, + 877, 879, 879, 879, 0, 879, 0, 0, 0, 879, + 880, 880, 880, 880, 0, 880, 0, 0, 0, 880, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 884, 0, 0, 884, 884, 0, 884, 885, 0, + 0, 0, 885, 885, 0, 885, 885, 885, 0, 0, + 885, 885, 886, 886, 0, 886, 0, 0, 0, 886, + + 887, 0, 887, 887, 0, 887, 0, 0, 0, 887, + 890, 890, 890, 0, 890, 0, 0, 0, 890, 891, + 891, 891, 891, 0, 891, 0, 0, 0, 891, 892, + 892, 0, 0, 892, 0, 0, 0, 892, 893, 893, + 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, + 893, 893, 893, 893, 893, 893, 893, 893, 893, 895, + 0, 0, 895, 895, 0, 895, 896, 0, 0, 0, + 896, 896, 0, 896, 896, 896, 0, 0, 896, 896, + 899, 899, 0, 899, 0, 0, 0, 899, 900, 0, + 900, 900, 0, 900, 0, 0, 0, 900, 902, 902, + + 902, 0, 902, 0, 0, 0, 902, 903, 903, 903, + 0, 0, 903, 0, 0, 0, 903, 904, 904, 904, + 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, + 904, 904, 904, 904, 904, 904, 904, 904, 905, 905, + 0, 905, 905, 905, 0, 905, 0, 905, 905, 905, + 905, 0, 0, 905, 905, 905, 905, 905, 905, 906, + 906, 0, 906, 906, 906, 0, 906, 0, 906, 906, + 906, 906, 0, 0, 906, 906, 906, 906, 906, 906, + 909, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 909, 909, 0, 909, 909, 0, 909, 911, 911, + + 0, 911, 0, 0, 0, 911, 912, 0, 912, 912, + 0, 912, 0, 0, 0, 912, 915, 915, 0, 0, + 915, 0, 0, 0, 915, 917, 0, 0, 0, 0, + 0, 0, 917, 0, 917, 917, 917, 917, 0, 0, + 917, 917, 917, 917, 917, 917, 920, 920, 0, 920, + 0, 0, 0, 920, 921, 0, 921, 921, 0, 921, + 0, 0, 0, 921, 925, 925, 0, 925, 0, 0, + 0, 925, 926, 0, 926, 0, 0, 926, 0, 0, + 0, 926, 927, 927, 927, 927, 927, 927, 927, 927, + 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, + + 927, 927, 927, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, + 813, 813, 813, 813 } ; static yy_state_type yy_last_accepting_state; @@ -1394,7 +1928,7 @@ char *yytext; #define INITIAL 0 #line 2 "toke.l" /* - * Copyright (c) 1996, 1998-2005, 2007-2012 + * Copyright (c) 1996, 1998-2005, 2007-2013 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -1420,7 +1954,6 @@ char *yytext; #include #include -#include #include #include #ifdef STDC_HEADERS @@ -1437,6 +1970,11 @@ char *yytext; #ifdef HAVE_STRINGS_H # include #endif /* HAVE_STRINGS_H */ +#if defined(HAVE_STDINT_H) +# include +#elif defined(HAVE_INTTYPES_H) +# include +#endif #ifdef HAVE_UNISTD_H # include #endif /* HAVE_UNISTD_H */ @@ -1466,9 +2004,10 @@ char *yytext; #include "toke.h" #include #include "lbuf.h" +#include "sha2.h" #include "secure_path.h" -extern YYSTYPE yylval; +extern YYSTYPE sudoerslval; extern bool parse_error; extern bool sudoers_warnings; int sudolineno; @@ -1483,6 +2022,7 @@ gid_t sudoers_gid = SUDOERS_GID; static bool continued, sawspace; static int prev_state; +static int digest_len; static bool _push_include(char *, bool); static bool pop_include(void); @@ -1495,7 +2035,7 @@ int (*trace_print)(const char *msg) = sudoers_trace_print; return (n); \ } while (0) -#define ECHO ignore_result(fwrite(yytext, yyleng, 1, yyout)) +#define ECHO ignore_result(fwrite(sudoerstext, sudoersleng, 1, sudoersout)) #define push_include(_p) (_push_include((_p), false)) #define push_includedir(_p) (_push_include((_p), true)) @@ -1511,7 +2051,9 @@ int (*trace_print)(const char *msg) = sudoers_trace_print; #define INSTR 5 -#line 1514 "lex.yy.c" +#define WANTDIGEST 6 + +#line 2056 "lex.sudoers.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1665,9 +2207,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 132 "toke.l" +#line 140 "toke.l" -#line 1670 "lex.yy.c" +#line 2212 "lex.sudoers.c" if ( yy_init ) { @@ -1719,13 +2261,13 @@ 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 >= 622 ) + if ( yy_current_state >= 814 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3595 ); + while ( yy_base[yy_current_state] != 5604 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1753,7 +2295,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 133 "toke.l" +#line 141 "toke.l" { LEXTRACE(", "); LEXRETURN(','); @@ -1761,16 +2303,16 @@ YY_RULE_SETUP YY_BREAK case 2: YY_RULE_SETUP -#line 138 "toke.l" +#line 146 "toke.l" BEGIN STARTDEFS; YY_BREAK case 3: YY_RULE_SETUP -#line 140 "toke.l" +#line 148 "toke.l" { BEGIN INDEFS; LEXTRACE("DEFVAR "); - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXRETURN(DEFVAR); } @@ -1778,7 +2320,7 @@ YY_RULE_SETUP case 4: YY_RULE_SETUP -#line 149 "toke.l" +#line 157 "toke.l" { BEGIN STARTDEFS; LEXTRACE(", "); @@ -1787,7 +2329,7 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 155 "toke.l" +#line 163 "toke.l" { LEXTRACE("= "); LEXRETURN('='); @@ -1795,7 +2337,7 @@ YY_RULE_SETUP YY_BREAK case 6: YY_RULE_SETUP -#line 160 "toke.l" +#line 168 "toke.l" { LEXTRACE("+= "); LEXRETURN('+'); @@ -1803,7 +2345,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 165 "toke.l" +#line 173 "toke.l" { LEXTRACE("-= "); LEXRETURN('-'); @@ -1811,20 +2353,20 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 170 "toke.l" +#line 178 "toke.l" { LEXTRACE("BEGINSTR "); - yylval.string = NULL; + sudoerslval.string = NULL; prev_state = YY_START; BEGIN INSTR; } YY_BREAK case 9: YY_RULE_SETUP -#line 177 "toke.l" +#line 185 "toke.l" { LEXTRACE("WORD(2) "); - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXRETURN(WORD); } @@ -1833,7 +2375,7 @@ YY_RULE_SETUP case 10: YY_RULE_SETUP -#line 186 "toke.l" +#line 194 "toke.l" { /* Line continuation char followed by newline. */ sudolineno++; @@ -1842,28 +2384,28 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 192 "toke.l" +#line 200 "toke.l" { LEXTRACE("ENDSTR "); BEGIN prev_state; - if (yylval.string == NULL) { + if (sudoerslval.string == NULL) { LEXTRACE("ERROR "); /* empty string */ LEXRETURN(ERROR); } if (prev_state == INITIAL) { - switch (yylval.string[0]) { + switch (sudoerslval.string[0]) { case '%': - if (yylval.string[1] == '\0' || - (yylval.string[1] == ':' && - yylval.string[2] == '\0')) { + if (sudoerslval.string[1] == '\0' || + (sudoerslval.string[1] == ':' && + sudoerslval.string[2] == '\0')) { LEXTRACE("ERROR "); /* empty group */ LEXRETURN(ERROR); } LEXTRACE("USERGROUP "); LEXRETURN(USERGROUP); case '+': - if (yylval.string[1] == '\0') { + if (sudoerslval.string[1] == '\0') { LEXTRACE("ERROR "); /* empty netgroup */ LEXRETURN(ERROR); } @@ -1877,19 +2419,19 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 224 "toke.l" +#line 232 "toke.l" { LEXTRACE("BACKSLASH "); - if (!append(yytext, yyleng)) + if (!append(sudoerstext, sudoersleng)) yyterminate(); } YY_BREAK case 13: YY_RULE_SETUP -#line 230 "toke.l" +#line 238 "toke.l" { LEXTRACE("STRBODY "); - if (!append(yytext, yyleng)) + if (!append(sudoerstext, sudoersleng)) yyterminate(); } YY_BREAK @@ -1897,29 +2439,29 @@ YY_RULE_SETUP case 14: YY_RULE_SETUP -#line 238 "toke.l" +#line 246 "toke.l" { /* quoted fnmatch glob char, pass verbatim */ LEXTRACE("QUOTEDCHAR "); - if (!fill_args(yytext, 2, sawspace)) + if (!fill_args(sudoerstext, 2, sawspace)) yyterminate(); sawspace = false; } YY_BREAK case 15: YY_RULE_SETUP -#line 246 "toke.l" +#line 254 "toke.l" { /* quoted sudoers special char, strip backslash */ LEXTRACE("QUOTEDCHAR "); - if (!fill_args(yytext + 1, 1, sawspace)) + if (!fill_args(sudoerstext + 1, 1, sawspace)) yyterminate(); sawspace = false; } YY_BREAK case 16: YY_RULE_SETUP -#line 254 "toke.l" +#line 262 "toke.l" { BEGIN INITIAL; yyless(0); @@ -1928,10 +2470,10 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 260 "toke.l" +#line 268 "toke.l" { LEXTRACE("ARG "); - if (!fill_args(yytext, yyleng, sawspace)) + if (!fill_args(sudoerstext, sudoersleng, sawspace)) yyterminate(); sawspace = false; } /* a command line arg */ @@ -1939,7 +2481,47 @@ YY_RULE_SETUP case 18: YY_RULE_SETUP -#line 268 "toke.l" +#line 276 "toke.l" +{ + /* Only return DIGEST if the length is correct. */ + if (sudoersleng == digest_len * 2) { + if (!fill(sudoerstext, sudoersleng)) + yyterminate(); + BEGIN INITIAL; + LEXTRACE("DIGEST "); + LEXRETURN(DIGEST); + } + BEGIN INITIAL; + yyless(sudoersleng); + } /* hex digest */ + YY_BREAK +case 19: +YY_RULE_SETUP +#line 289 "toke.l" +{ + /* Only return DIGEST if the length is correct. */ + size_t len; + if (sudoerstext[sudoersleng - 1] == '=') { + /* use padding */ + len = 4 * ((digest_len + 2) / 3); + } else { + /* no padding */ + len = (4 * digest_len + 2) / 3; + } + if (sudoersleng == len) { + if (!fill(sudoerstext, sudoersleng)) + yyterminate(); + BEGIN INITIAL; + LEXTRACE("DIGEST "); + LEXRETURN(DIGEST); + } + BEGIN INITIAL; + yyless(sudoersleng); + } /* base64 digest */ + YY_BREAK +case 20: +YY_RULE_SETUP +#line 310 "toke.l" { char *path; @@ -1948,7 +2530,7 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - if ((path = parse_include(yytext)) == NULL) + if ((path = parse_include(sudoerstext)) == NULL) yyterminate(); LEXTRACE("INCLUDE\n"); @@ -1958,9 +2540,9 @@ YY_RULE_SETUP yyterminate(); } YY_BREAK -case 19: +case 21: YY_RULE_SETUP -#line 286 "toke.l" +#line 328 "toke.l" { char *path; @@ -1969,7 +2551,7 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - if ((path = parse_include(yytext)) == NULL) + if ((path = parse_include(sudoerstext)) == NULL) yyterminate(); LEXTRACE("INCLUDEDIR\n"); @@ -1982,9 +2564,9 @@ YY_RULE_SETUP yyterminate(); } YY_BREAK -case 20: +case 22: YY_RULE_SETUP -#line 307 "toke.l" +#line 349 "toke.l" { char deftype; int n; @@ -1994,11 +2576,11 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - for (n = 0; isblank((unsigned char)yytext[n]); n++) + for (n = 0; isblank((unsigned char)sudoerstext[n]); n++) continue; n += sizeof("Defaults") - 1; - if ((deftype = yytext[n++]) != '\0') { - while (isblank((unsigned char)yytext[n])) + if ((deftype = sudoerstext[n++]) != '\0') { + while (isblank((unsigned char)sudoerstext[n])) n++; } BEGIN GOTDEFS; @@ -2025,9 +2607,9 @@ YY_RULE_SETUP } } YY_BREAK -case 21: +case 23: YY_RULE_SETUP -#line 347 "toke.l" +#line 389 "toke.l" { int n; @@ -2036,9 +2618,9 @@ YY_RULE_SETUP LEXRETURN(ERROR); } - for (n = 0; isblank((unsigned char)yytext[n]); n++) + for (n = 0; isblank((unsigned char)sudoerstext[n]); n++) continue; - switch (yytext[n]) { + switch (sudoerstext[n]) { case 'H': LEXTRACE("HOSTALIAS "); LEXRETURN(HOSTALIAS); @@ -2054,179 +2636,179 @@ YY_RULE_SETUP } } YY_BREAK -case 22: +case 24: YY_RULE_SETUP -#line 373 "toke.l" +#line 415 "toke.l" { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); LEXRETURN(NOPASSWD); } YY_BREAK -case 23: +case 25: YY_RULE_SETUP -#line 379 "toke.l" +#line 421 "toke.l" { /* cmnd requires passwd for this user */ LEXTRACE("PASSWD "); LEXRETURN(PASSWD); } YY_BREAK -case 24: +case 26: YY_RULE_SETUP -#line 385 "toke.l" +#line 427 "toke.l" { LEXTRACE("NOEXEC "); LEXRETURN(NOEXEC); } YY_BREAK -case 25: +case 27: YY_RULE_SETUP -#line 390 "toke.l" +#line 432 "toke.l" { LEXTRACE("EXEC "); LEXRETURN(EXEC); } YY_BREAK -case 26: +case 28: YY_RULE_SETUP -#line 395 "toke.l" +#line 437 "toke.l" { LEXTRACE("SETENV "); LEXRETURN(SETENV); } YY_BREAK -case 27: +case 29: YY_RULE_SETUP -#line 400 "toke.l" +#line 442 "toke.l" { LEXTRACE("NOSETENV "); LEXRETURN(NOSETENV); } YY_BREAK -case 28: +case 30: YY_RULE_SETUP -#line 405 "toke.l" +#line 447 "toke.l" { LEXTRACE("LOG_OUTPUT "); LEXRETURN(LOG_OUTPUT); } YY_BREAK -case 29: +case 31: YY_RULE_SETUP -#line 410 "toke.l" +#line 452 "toke.l" { LEXTRACE("NOLOG_OUTPUT "); LEXRETURN(NOLOG_OUTPUT); } YY_BREAK -case 30: +case 32: YY_RULE_SETUP -#line 415 "toke.l" +#line 457 "toke.l" { LEXTRACE("LOG_INPUT "); LEXRETURN(LOG_INPUT); } YY_BREAK -case 31: +case 33: YY_RULE_SETUP -#line 420 "toke.l" +#line 462 "toke.l" { LEXTRACE("NOLOG_INPUT "); LEXRETURN(NOLOG_INPUT); } YY_BREAK -case 32: +case 34: YY_RULE_SETUP -#line 425 "toke.l" +#line 467 "toke.l" { /* empty group or netgroup */ LEXTRACE("ERROR "); LEXRETURN(ERROR); } YY_BREAK -case 33: +case 35: YY_RULE_SETUP -#line 431 "toke.l" +#line 473 "toke.l" { /* netgroup */ - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NETGROUP "); LEXRETURN(NETGROUP); } YY_BREAK -case 34: +case 36: YY_RULE_SETUP -#line 439 "toke.l" +#line 481 "toke.l" { /* group */ - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("USERGROUP "); LEXRETURN(USERGROUP); } YY_BREAK -case 35: +case 37: YY_RULE_SETUP -#line 447 "toke.l" +#line 489 "toke.l" { - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 36: +case 38: YY_RULE_SETUP -#line 454 "toke.l" +#line 496 "toke.l" { - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 37: +case 39: YY_RULE_SETUP -#line 461 "toke.l" +#line 503 "toke.l" { - if (!ipv6_valid(yytext)) { + if (!ipv6_valid(sudoerstext)) { LEXTRACE("ERROR "); LEXRETURN(ERROR); } - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 38: +case 40: YY_RULE_SETUP -#line 472 "toke.l" +#line 514 "toke.l" { - if (!ipv6_valid(yytext)) { + if (!ipv6_valid(sudoerstext)) { LEXTRACE("ERROR "); LEXRETURN(ERROR); } - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("NTWKADDR "); LEXRETURN(NTWKADDR); } YY_BREAK -case 39: +case 41: YY_RULE_SETUP -#line 483 "toke.l" +#line 525 "toke.l" { LEXTRACE("ALL "); LEXRETURN(ALL); } YY_BREAK -case 40: +case 42: YY_RULE_SETUP -#line 489 "toke.l" +#line 531 "toke.l" { #ifdef HAVE_SELINUX LEXTRACE("ROLE "); @@ -2236,9 +2818,9 @@ YY_RULE_SETUP #endif } YY_BREAK -case 41: +case 43: YY_RULE_SETUP -#line 498 "toke.l" +#line 540 "toke.l" { #ifdef HAVE_SELINUX LEXTRACE("TYPE "); @@ -2248,9 +2830,9 @@ YY_RULE_SETUP #endif } YY_BREAK -case 42: +case 44: YY_RULE_SETUP -#line 506 "toke.l" +#line 548 "toke.l" { #ifdef HAVE_PRIV_SET LEXTRACE("PRIVS "); @@ -2260,9 +2842,9 @@ YY_RULE_SETUP #endif } YY_BREAK -case 43: +case 45: YY_RULE_SETUP -#line 515 "toke.l" +#line 557 "toke.l" { #ifdef HAVE_PRIV_SET LEXTRACE("LIMITPRIVS "); @@ -2272,130 +2854,171 @@ YY_RULE_SETUP #endif } YY_BREAK -case 44: +case 46: YY_RULE_SETUP -#line 524 "toke.l" +#line 566 "toke.l" { got_alias: - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("ALIAS "); LEXRETURN(ALIAS); } YY_BREAK -case 45: +case 47: YY_RULE_SETUP -#line 532 "toke.l" +#line 574 "toke.l" { + /* XXX - no way to specify digest for command */ /* no command args allowed for Defaults!/path */ - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("COMMAND "); LEXRETURN(COMMAND); } YY_BREAK -case 46: +case 48: YY_RULE_SETUP -#line 540 "toke.l" +#line 583 "toke.l" +{ + digest_len = SHA224_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA224 "); + LEXRETURN(SHA224); + } + YY_BREAK +case 49: +YY_RULE_SETUP +#line 590 "toke.l" +{ + digest_len = SHA256_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA256 "); + LEXRETURN(SHA256); + } + YY_BREAK +case 50: +YY_RULE_SETUP +#line 597 "toke.l" +{ + digest_len = SHA384_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA384 "); + LEXRETURN(SHA384); + } + YY_BREAK +case 51: +YY_RULE_SETUP +#line 604 "toke.l" +{ + digest_len = SHA512_DIGEST_LENGTH; + BEGIN WANTDIGEST; + LEXTRACE("SHA512 "); + LEXRETURN(SHA512); + } + YY_BREAK +case 52: +YY_RULE_SETUP +#line 611 "toke.l" { BEGIN GOTCMND; LEXTRACE("COMMAND "); - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); } /* sudo -e */ YY_BREAK -case 47: +case 53: YY_RULE_SETUP -#line 547 "toke.l" +#line 618 "toke.l" { /* directories can't have args... */ - if (yytext[yyleng - 1] == '/') { + if (sudoerstext[sudoersleng - 1] == '/') { LEXTRACE("COMMAND "); - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); LEXRETURN(COMMAND); } else { BEGIN GOTCMND; LEXTRACE("COMMAND "); - if (!fill_cmnd(yytext, yyleng)) + if (!fill_cmnd(sudoerstext, sudoersleng)) yyterminate(); } } /* a pathname */ YY_BREAK -case 48: +case 54: YY_RULE_SETUP -#line 562 "toke.l" +#line 633 "toke.l" { LEXTRACE("BEGINSTR "); - yylval.string = NULL; + sudoerslval.string = NULL; prev_state = YY_START; BEGIN INSTR; } YY_BREAK -case 49: +case 55: YY_RULE_SETUP -#line 569 "toke.l" +#line 640 "toke.l" { /* a word */ - if (!fill(yytext, yyleng)) + if (!fill(sudoerstext, sudoersleng)) yyterminate(); LEXTRACE("WORD(5) "); LEXRETURN(WORD); } YY_BREAK -case 50: +case 56: YY_RULE_SETUP -#line 577 "toke.l" +#line 648 "toke.l" { LEXTRACE("( "); LEXRETURN('('); } YY_BREAK -case 51: +case 57: YY_RULE_SETUP -#line 582 "toke.l" +#line 653 "toke.l" { LEXTRACE(") "); LEXRETURN(')'); } YY_BREAK -case 52: +case 58: YY_RULE_SETUP -#line 587 "toke.l" +#line 658 "toke.l" { LEXTRACE(", "); LEXRETURN(','); } /* return ',' */ YY_BREAK -case 53: +case 59: YY_RULE_SETUP -#line 592 "toke.l" +#line 663 "toke.l" { LEXTRACE("= "); LEXRETURN('='); } /* return '=' */ YY_BREAK -case 54: +case 60: YY_RULE_SETUP -#line 597 "toke.l" +#line 668 "toke.l" { LEXTRACE(": "); LEXRETURN(':'); } /* return ':' */ YY_BREAK -case 55: +case 61: YY_RULE_SETUP -#line 602 "toke.l" +#line 673 "toke.l" { - if (yyleng & 1) { + if (sudoersleng & 1) { LEXTRACE("!"); LEXRETURN('!'); /* return '!' */ } } YY_BREAK -case 56: +case 62: YY_RULE_SETUP -#line 609 "toke.l" +#line 680 "toke.l" { if (YY_START == INSTR) { LEXTRACE("ERROR "); @@ -2408,25 +3031,25 @@ YY_RULE_SETUP LEXRETURN(COMMENT); } /* return newline */ YY_BREAK -case 57: +case 63: YY_RULE_SETUP -#line 621 "toke.l" +#line 692 "toke.l" { /* throw away space/tabs */ sawspace = true; /* but remember for fill_args */ } YY_BREAK -case 58: +case 64: YY_RULE_SETUP -#line 625 "toke.l" +#line 696 "toke.l" { sawspace = true; /* remember for fill_args */ sudolineno++; continued = true; } /* throw away EOL after \ */ YY_BREAK -case 59: +case 65: YY_RULE_SETUP -#line 631 "toke.l" +#line 702 "toke.l" { BEGIN INITIAL; sudolineno++; @@ -2435,9 +3058,9 @@ YY_RULE_SETUP LEXRETURN(COMMENT); } /* comment, not uid/gid */ YY_BREAK -case 60: +case 66: YY_RULE_SETUP -#line 639 "toke.l" +#line 710 "toke.l" { LEXTRACE("ERROR "); LEXRETURN(ERROR); @@ -2449,7 +3072,8 @@ case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(STARTDEFS): case YY_STATE_EOF(INDEFS): case YY_STATE_EOF(INSTR): -#line 644 "toke.l" +case YY_STATE_EOF(WANTDIGEST): +#line 715 "toke.l" { if (YY_START != INITIAL) { BEGIN INITIAL; @@ -2460,12 +3084,12 @@ case YY_STATE_EOF(INSTR): yyterminate(); } YY_BREAK -case 61: +case 67: YY_RULE_SETUP -#line 654 "toke.l" +#line 725 "toke.l" ECHO; YY_BREAK -#line 2468 "lex.yy.c" +#line 3092 "lex.sudoers.c" case YY_END_OF_BUFFER: { @@ -2756,7 +3380,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 >= 622 ) + if ( yy_current_state >= 814 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2791,11 +3415,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 >= 622 ) + if ( yy_current_state >= 814 ) 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 == 621); + yy_is_jam = (yy_current_state == 813); return yy_is_jam ? 0 : yy_current_state; } @@ -3356,7 +3980,7 @@ int main() return 0; } #endif -#line 654 "toke.l" +#line 725 "toke.l" struct path_list { char *path; @@ -3394,13 +4018,8 @@ switch_dir(struct include_stack *stack, char *dirpath) if (!(dir = opendir(dirpath))) { if (errno != ENOENT) { - char *errbuf; - if (asprintf(&errbuf, _("%s: %s"), dirpath, strerror(errno)) != -1) { - yyerror(errbuf); - free(errbuf); - } else { - yyerror(_("unable to allocate memory")); - } + warning("%s", dirpath); + sudoerserror(NULL); } goto done; } @@ -3425,6 +4044,7 @@ switch_dir(struct include_stack *stack, char *dirpath) pl->path = path; pl->next = first; first = pl; + path = NULL; count++; } closedir(dir); @@ -3466,8 +4086,8 @@ bad: while (first != NULL) { pl = first; first = pl->next; - free(pl->path); - free(pl); + efree(pl->path); + efree(pl); } efree(sorted); efree(dirpath); @@ -3498,7 +4118,7 @@ init_lexer(void) efree(istack[idepth].path); if (idepth && !istack[idepth].keepopen) fclose(istack[idepth].bs->yy_input_file); - yy_delete_buffer(istack[idepth].bs); + sudoers_delete_buffer(istack[idepth].bs); } efree(istack); istack = NULL; @@ -3522,14 +4142,15 @@ _push_include(char *path, bool isdir) /* push current state onto stack */ if (idepth >= istacksize) { if (idepth > MAX_SUDOERS_DEPTH) { - yyerror(_("too many levels of includes")); + sudoerserror(N_("too many levels of includes")); debug_return_bool(false); } istacksize += SUDOERS_STACK_INCREMENT; istack = (struct include_stack *) realloc(istack, sizeof(*istack) * istacksize); if (istack == NULL) { - yyerror(_("unable to allocate memory")); + warning(NULL); + sudoerserror(NULL); debug_return_bool(false); } } @@ -3570,7 +4191,7 @@ _push_include(char *path, bool isdir) debug_return_bool(false); } if (!(path = switch_dir(&istack[idepth], path))) { - /* switch_dir() called yyerror() for us */ + /* switch_dir() called sudoerserror() for us */ debug_return_bool(false); } while ((fp = open_sudoers(path, false, &keepopen)) == NULL) { @@ -3585,7 +4206,7 @@ _push_include(char *path, bool isdir) } else { if ((fp = open_sudoers(path, true, &keepopen)) == NULL) { /* The error was already printed by open_sudoers() */ - yyerror(NULL); + sudoerserror(NULL); debug_return_bool(false); } istack[idepth].more = NULL; @@ -3598,7 +4219,7 @@ _push_include(char *path, bool isdir) idepth++; sudolineno = 1; sudoers = path; - yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); + sudoers_switch_to_buffer(sudoers_create_buffer(fp, YY_BUF_SIZE)); debug_return_bool(true); } @@ -3615,7 +4236,7 @@ pop_include(void) if (!keepopen) fclose(YY_CURRENT_BUFFER->yy_input_file); - yy_delete_buffer(YY_CURRENT_BUFFER); + sudoers_delete_buffer(YY_CURRENT_BUFFER); /* If we are in an include dir, move to the next file. */ while ((pl = istack[idepth - 1].more) != NULL) { fp = open_sudoers(pl->path, false, &keepopen); @@ -3624,7 +4245,7 @@ pop_include(void) efree(sudoers); sudoers = pl->path; sudolineno = 1; - yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); + sudoers_switch_to_buffer(sudoers_create_buffer(fp, YY_BUF_SIZE)); efree(pl); break; } @@ -3636,7 +4257,7 @@ pop_include(void) /* If no path list, just pop the last dir on the stack. */ if (pl == NULL) { idepth--; - yy_switch_to_buffer(istack[idepth].bs); + sudoers_switch_to_buffer(istack[idepth].bs); efree(sudoers); sudoers = istack[idepth].path; sudolineno = istack[idepth].lineno; @@ -3680,7 +4301,8 @@ parse_include(char *base) len += (int)(ep - cp); path = pp = malloc(len + dirlen + 1); if (path == NULL) { - yyerror(_("unable to allocate memory")); + warning(NULL); + sudoerserror(NULL); debug_return_str(NULL); } if (dirlen) {