From: Todd C. Miller Date: Thu, 17 Mar 2011 19:08:32 +0000 (-0400) Subject: Fix parsing of double-quoted names in Defaults and Aliases which was X-Git-Tag: SUDO_1_7_6~41 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c1413e396100b033ca0d36f2637b49c170bf5b0;p=sudo Fix parsing of double-quoted names in Defaults and Aliases which was broken in c2b486b12951. --HG-- branch : 1.7 --- diff --git a/toke.c b/toke.c index cab5b4907..9d1e72799 100644 --- a/toke.c +++ b/toke.c @@ -4,7 +4,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /home/cvs/openbsd/src/usr.bin/lex/flex.skl,v 1.11 2010/08/04 18:24:50 millert Exp $ + * $Header: /cvs/src/usr.bin/lex/flex.skl,v 1.11 2010/08/04 18:24:50 millert Exp $ */ #define FLEX_SCANNER @@ -291,13 +291,13 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); #define YY_NUM_RULES 54 #define YY_END_OF_BUFFER 55 -static yyconst short int yy_accept[588] = +static yyconst short int yy_accept[589] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 42, 50, 49, 48, 53, 53, 42, + 0, 0, 55, 42, 50, 49, 48, 41, 53, 42, 43, 44, 42, 45, 42, 42, 42, 42, 47, 46, - 37, 37, 37, 37, 37, 37, 37, 53, 42, 42, - 50, 41, 53, 37, 37, 37, 37, 37, 1, 53, + 53, 37, 37, 37, 37, 37, 37, 37, 53, 42, + 42, 50, 53, 37, 37, 37, 37, 37, 1, 53, 42, 42, 16, 15, 16, 15, 15, 53, 53, 53, 2, 8, 7, 8, 3, 8, 4, 53, 12, 12, 12, 10, 11, 42, 0, 50, 48, 0, 52, 0, @@ -346,17 +346,17 @@ static yyconst short int yy_accept[588] = 34, 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 0, 29, 37, 37, - 37, 0, 0, 0, 20, 19, 0, 0, 19, 0, + 37, 0, 0, 0, 20, 19, 0, 0, 0, 19, - 42, 42, 42, 34, 34, 0, 0, 0, 35, 35, + 0, 42, 42, 42, 34, 34, 0, 0, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 0, 27, 37, 37, - 20, 0, 17, 0, 42, 42, 42, 42, 42, 0, - 0, 0, 0, 0, 35, 35, 35, 35, 35, 35, - 35, 35, 0, 30, 37, 0, 42, 42, 42, 35, - 35, 35, 35, 35, 35, 0, 28, 0, 42, 42, - 42, 42, 42, 35, 35, 35, 35, 35, 0, 18, - 33, 33, 33, 33, 33, 33, 0 + 35, 35, 35, 35, 35, 35, 35, 0, 27, 37, + 37, 20, 0, 17, 0, 42, 42, 42, 42, 42, + 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, + 35, 35, 35, 0, 30, 37, 0, 42, 42, 42, + 35, 35, 35, 35, 35, 35, 0, 28, 0, 42, + 42, 42, 42, 42, 35, 35, 35, 35, 35, 0, + 18, 33, 33, 33, 33, 33, 33, 0 } ; static yyconst int yy_ec[256] = @@ -402,570 +402,568 @@ static yyconst int yy_meta[66] = 13, 13, 13, 13, 13 } ; -static yyconst short int yy_base[652] = +static yyconst short int yy_base[653] = { 0, - 0, 64, 65, 70, 75, 100, 147, 211, 275, 322, - 86, 111, 2608, 2559, 2604, 3633, 2601, 3633, 368, 44, - 3633, 3633, 2542, 3633, 113, 378, 124, 146, 2551, 3633, - 433, 2521, 483, 2528, 2527, 2528, 2513, 537, 154, 36, - 150, 3633, 561, 2483, 2479, 2460, 2455, 2456, 2508, 203, - 288, 45, 0, 3633, 2503, 3633, 0, 305, 616, 71, - 0, 2458, 3633, 61, 3633, 71, 3633, 80, 2457, 109, - 131, 3633, 124, 2440, 638, 2485, 2482, 2482, 3633, 211, - 219, 83, 2436, 336, 2427, 663, 410, 2424, 688, 234, - 699, 2416, 2423, 356, 500, 169, 2412, 145, 739, 0, - - 2403, 2401, 262, 2391, 2372, 134, 3633, 130, 524, 2346, - 2333, 2304, 2299, 2300, 94, 72, 229, 235, 198, 237, - 2330, 569, 567, 2277, 793, 196, 0, 2320, 153, 3633, - 3633, 578, 190, 0, 2275, 344, 3633, 3633, 2254, 303, - 2251, 2285, 310, 241, 245, 2278, 2276, 2264, 2215, 818, - 545, 831, 866, 901, 936, 2248, 2235, 976, 286, 1017, - 1057, 2226, 2206, 2198, 2193, 2199, 2192, 2179, 2188, 242, - 2158, 2162, 2134, 2134, 2139, 313, 265, 2142, 273, 272, - 295, 600, 271, 2189, 2187, 635, 345, 1099, 1134, 511, - 307, 2108, 2107, 685, 350, 2106, 2105, 339, 716, 1169, - - 724, 404, 1210, 758, 2077, 358, 377, 2054, 2046, 2036, - 2034, 2015, 2022, 357, 2006, 2008, 1993, 2005, 1977, 377, - 355, 580, 379, 391, 1252, 1287, 1322, 2014, 1992, 790, - 1990, 1988, 1987, 1985, 529, 815, 593, 839, 596, 1357, - 0, 849, 1368, 874, 660, 1409, 884, 435, 3633, 1941, - 1932, 1945, 1925, 1915, 1886, 1886, 1854, 561, 1828, 1811, - 1783, 557, 110, 508, 568, 912, 369, 1451, 1486, 922, - 1818, 1800, 1799, 1782, 1519, 646, 955, 995, 1036, 658, - 671, 749, 1074, 772, 1561, 0, 1109, 1572, 1082, 892, - 1613, 1118, 1744, 1740, 603, 513, 1723, 1729, 624, 724, - - 768, 1719, 1673, 570, 555, 460, 824, 1654, 1688, 1722, - 1690, 1677, 1676, 1142, 1757, 1150, 963, 1797, 1188, 1158, - 1626, 1229, 1262, 1272, 901, 922, 1243, 1297, 1297, 1308, - 1839, 0, 1310, 1850, 1330, 1003, 1891, 1340, 1595, 1598, - 764, 3633, 1579, 1571, 1535, 1519, 780, 3633, 875, 3633, - 736, 1504, 1482, 656, 953, 636, 897, 1386, 626, 1932, - 1966, 1395, 1487, 1431, 1428, 815, 1459, 1037, 2001, 0, - 487, 2012, 1467, 1196, 2052, 1496, 1506, 1538, 1591, 1179, - 1220, 1442, 1477, 1630, 1664, 2094, 0, 1666, 2105, 1638, - 1278, 1675, 1411, 1409, 1354, 1350, 924, 961, 1318, 1307, - - 1274, 1061, 675, 1708, 1254, 2147, 2182, 2217, 2252, 1212, - 1699, 1732, 1743, 1171, 1263, 1341, 1707, 1428, 2287, 0, - 608, 2298, 1774, 1477, 2338, 1816, 1782, 1135, 1869, 1910, - 1942, 1506, 1529, 1901, 826, 860, 2380, 0, 980, 1041, - 1103, 1087, 1041, 1042, 3633, 1058, 3633, 992, 1541, 1962, - 708, 899, 291, 1058, 1950, 1319, 2390, 2425, 2460, 2495, - 1827, 1974, 1011, 1985, 2031, 2071, 927, 920, 1592, 1744, - 2077, 1758, 2530, 0, 1061, 2541, 2122, 1877, 2581, 2157, - 2131, 2166, 2191, 1807, 912, 1128, 1194, 3633, 1235, 835, - 802, 765, 818, 721, 767, 1614, 1836, 2217, 1930, 2252, - - 2623, 2658, 2693, 2265, 1515, 2230, 2275, 2317, 779, 761, - 1986, 2013, 2355, 2032, 2728, 0, 1122, 2739, 2363, 1919, - 2400, 683, 2409, 2434, 2326, 676, 1393, 3633, 1434, 623, - 3633, 657, 3633, 1251, 2442, 1387, 2781, 2816, 2475, 2481, - 635, 2508, 2518, 2560, 543, 526, 2148, 427, 424, 2600, - 0, 1233, 1595, 3633, 1596, 2213, 2851, 2886, 2921, 2566, - 2631, 2639, 389, 0, 350, 1597, 3633, 349, 2647, 1685, - 2956, 2991, 2669, 3633, 2680, 2702, 2450, 3633, 215, 3633, - 2715, 2757, 2765, 82, 2798, 2806, 3633, 3039, 3053, 3067, - 3081, 3095, 3109, 3123, 3137, 3151, 3157, 3171, 3185, 1355, - - 3199, 3213, 3227, 3241, 3255, 3269, 3283, 3289, 3296, 3310, - 3324, 3330, 3337, 3343, 3349, 3355, 3362, 3368, 3374, 3380, - 3387, 3395, 3401, 3407, 3413, 3420, 3428, 3434, 3440, 3447, - 3455, 3461, 3469, 3476, 3484, 3490, 3498, 3505, 3513, 3527, - 3541, 3547, 3555, 3562, 3576, 3582, 3590, 3596, 3604, 862, - 3618 + 0, 64, 65, 66, 72, 87, 134, 198, 262, 309, + 83, 98, 2691, 2633, 2678, 3620, 2675, 3620, 355, 58, + 3620, 3620, 2630, 3620, 113, 365, 131, 139, 2647, 3620, + 3620, 420, 2622, 470, 2621, 2586, 2589, 2570, 524, 148, + 44, 175, 548, 2536, 2540, 2532, 2527, 2514, 2560, 204, + 275, 59, 0, 3620, 2551, 3620, 0, 292, 603, 111, + 0, 2506, 3620, 79, 3620, 85, 3620, 113, 2505, 71, + 75, 3620, 139, 2495, 625, 2530, 2525, 2525, 3620, 212, + 220, 155, 2479, 323, 2470, 650, 397, 2460, 675, 343, + 686, 2473, 2480, 487, 495, 194, 2469, 110, 726, 0, + + 2451, 2449, 249, 2439, 2437, 170, 3620, 127, 542, 2414, + 2417, 2401, 2362, 2361, 66, 222, 230, 82, 228, 29, + 2421, 536, 534, 2374, 780, 128, 0, 2417, 205, 3620, + 3620, 571, 269, 0, 2372, 331, 3620, 3620, 2354, 290, + 2344, 2369, 130, 293, 275, 2350, 2348, 2347, 2286, 805, + 572, 818, 853, 888, 923, 2305, 2288, 963, 275, 1004, + 1044, 2281, 2261, 2242, 2247, 2249, 2235, 2224, 2222, 257, + 2190, 2194, 2183, 2184, 2189, 300, 271, 2192, 278, 258, + 282, 636, 306, 2230, 2216, 591, 332, 1086, 1121, 649, + 221, 2187, 2185, 672, 382, 2184, 2183, 285, 703, 1156, + + 711, 391, 1197, 745, 2181, 345, 316, 2152, 2148, 2138, + 2135, 2131, 2138, 291, 2088, 2090, 2074, 2087, 2057, 367, + 355, 553, 366, 374, 1239, 1274, 1309, 2094, 2093, 777, + 2043, 2041, 2040, 2024, 516, 802, 621, 826, 629, 1344, + 0, 836, 1355, 861, 753, 1396, 871, 422, 3620, 2009, + 2002, 2012, 1977, 1983, 1982, 1969, 1934, 493, 1929, 1912, + 1881, 516, 115, 487, 527, 899, 378, 1438, 1473, 909, + 1903, 1901, 1900, 1899, 1506, 580, 942, 982, 1023, 617, + 658, 736, 1061, 788, 1548, 0, 1096, 1559, 1069, 879, + 1600, 1105, 1882, 1878, 561, 563, 1859, 1866, 662, 711, + + 811, 1858, 1826, 494, 599, 551, 855, 1641, 1675, 1709, + 1840, 1839, 1809, 1129, 1744, 1137, 950, 1784, 1175, 1145, + 1815, 1216, 1249, 1259, 909, 973, 1230, 1284, 1284, 1295, + 1826, 0, 1297, 1837, 1317, 990, 1878, 1327, 1783, 1771, + 751, 3620, 1772, 1726, 1724, 1675, 862, 3620, 911, 3620, + 884, 1643, 1521, 860, 981, 886, 983, 1373, 663, 1919, + 1953, 1382, 1525, 1493, 1415, 802, 1446, 1176, 1988, 0, + 473, 1999, 1454, 1032, 2039, 1483, 1493, 1525, 1578, 1207, + 1259, 1429, 1464, 1617, 1651, 2081, 0, 1653, 2092, 1625, + 1335, 1662, 1399, 1298, 1284, 1246, 948, 988, 1237, 1207, + + 1138, 1128, 662, 1695, 1151, 2134, 2169, 2204, 2239, 1112, + 1686, 1719, 1730, 1108, 1415, 1484, 1694, 1526, 2274, 0, + 768, 2285, 1761, 1464, 2325, 1803, 1769, 1087, 1856, 1897, + 1929, 1569, 1730, 1888, 813, 847, 2367, 0, 1046, 1069, + 987, 945, 898, 1180, 3620, 1181, 3620, 881, 1527, 1517, + 614, 1070, 1198, 1236, 1935, 1272, 2377, 2412, 2447, 2482, + 1814, 1943, 851, 1968, 2018, 1978, 834, 809, 1745, 1857, + 2056, 1979, 2517, 0, 1201, 2528, 2064, 1586, 2568, 2111, + 2143, 2152, 2178, 1794, 800, 1228, 1380, 3620, 1421, 765, + 743, 720, 749, 1067, 650, 1878, 1976, 2040, 2204, 2131, + + 2239, 2610, 2645, 2680, 2252, 1670, 2217, 2262, 2304, 661, + 622, 2019, 2102, 2342, 2125, 2715, 0, 1259, 2726, 2350, + 2312, 2387, 625, 2396, 2421, 2430, 613, 1531, 3620, 1584, + 560, 3620, 597, 3620, 1378, 2436, 1374, 2768, 2803, 2458, + 2469, 565, 2493, 2503, 2547, 538, 513, 2190, 520, 418, + 2587, 0, 1418, 1625, 3620, 1732, 2200, 2838, 2873, 2908, + 2553, 2618, 2626, 366, 0, 339, 1769, 3620, 347, 2634, + 1504, 2943, 2978, 2656, 3620, 2667, 2689, 2595, 3620, 304, + 3620, 2702, 2744, 2752, 126, 2785, 2793, 3620, 3026, 3040, + 3054, 3068, 3082, 3096, 3110, 3124, 3138, 3144, 3158, 3172, + + 1612, 3186, 3200, 3214, 3228, 3242, 3256, 3270, 3276, 3283, + 3297, 3311, 3317, 3324, 3330, 3336, 3342, 3349, 3355, 3361, + 3367, 3374, 3382, 3388, 3394, 3400, 3407, 3415, 3421, 3427, + 3434, 3442, 3448, 3456, 3463, 3471, 3477, 3485, 3492, 3500, + 3514, 3528, 3534, 3542, 3549, 3563, 3569, 3577, 3583, 3591, + 1871, 3605 } ; -static yyconst short int yy_def[652] = +static yyconst short int yy_def[653] = { 0, - 587, 1, 1, 1, 588, 588, 589, 589, 590, 590, - 591, 591, 587, 592, 587, 587, 587, 587, 593, 594, - 587, 587, 595, 587, 596, 592, 26, 26, 597, 587, - 587, 31, 31, 33, 33, 33, 33, 592, 26, 592, - 587, 587, 593, 31, 31, 33, 33, 33, 587, 587, - 598, 592, 599, 587, 599, 587, 599, 587, 593, 587, - 600, 601, 587, 601, 587, 601, 587, 602, 603, 603, - 603, 587, 587, 592, 592, 587, 587, 604, 587, 605, - 587, 594, 606, 594, 595, 595, 596, 607, 592, 592, - 26, 597, 91, 91, 91, 91, 608, 609, 31, 33, - - 33, 33, 33, 33, 33, 592, 587, 592, 587, 587, - 587, 587, 587, 587, 604, 592, 91, 592, 592, 592, - 587, 587, 598, 610, 592, 592, 599, 599, 587, 587, - 587, 605, 587, 600, 601, 601, 587, 587, 601, 601, - 603, 587, 603, 603, 587, 587, 604, 611, 606, 606, - 587, 592, 592, 592, 91, 155, 612, 587, 613, 587, - 31, 33, 33, 33, 33, 33, 33, 33, 33, 592, - 587, 587, 587, 587, 587, 604, 592, 155, 592, 592, - 592, 587, 592, 587, 611, 592, 592, 592, 592, 592, - 592, 614, 615, 615, 194, 616, 615, 617, 160, 587, - - 200, 200, 587, 200, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 592, 587, 587, 587, 587, 587, 604, - 592, 592, 592, 592, 592, 592, 592, 587, 618, 618, - 230, 618, 619, 620, 621, 587, 622, 203, 622, 622, - 240, 622, 587, 243, 243, 587, 243, 587, 587, 33, - 33, 33, 33, 33, 33, 33, 33, 592, 587, 587, - 587, 604, 592, 592, 592, 592, 592, 592, 592, 592, - 623, 623, 624, 625, 587, 587, 587, 587, 587, 626, - 626, 627, 246, 627, 627, 285, 627, 587, 288, 288, - 587, 288, 33, 33, 33, 33, 33, 33, 33, 33, - - 592, 587, 587, 604, 592, 592, 592, 592, 592, 592, - 587, 628, 629, 275, 587, 315, 315, 587, 315, 587, - 587, 587, 587, 587, 587, 630, 630, 631, 291, 631, - 631, 331, 631, 587, 334, 334, 587, 334, 33, 33, - 587, 587, 33, 33, 33, 33, 587, 587, 587, 587, - 592, 587, 587, 604, 592, 592, 592, 592, 592, 592, - 592, 592, 587, 632, 587, 633, 318, 633, 633, 369, - 369, 587, 372, 372, 587, 372, 587, 587, 587, 587, - 634, 634, 635, 337, 635, 635, 386, 635, 587, 389, - 389, 389, 33, 33, 33, 33, 33, 33, 592, 587, - - 587, 604, 592, 592, 592, 592, 592, 592, 592, 587, - 587, 587, 587, 636, 636, 637, 375, 637, 637, 419, - 419, 587, 422, 422, 587, 422, 587, 587, 587, 587, - 587, 587, 638, 638, 639, 639, 639, 437, 437, 33, - 33, 33, 33, 587, 587, 587, 587, 587, 587, 604, - 604, 592, 640, 641, 592, 592, 592, 592, 592, 592, - 592, 587, 587, 587, 587, 587, 587, 642, 642, 643, - 425, 643, 643, 473, 473, 587, 476, 476, 587, 476, - 587, 587, 587, 587, 644, 644, 587, 587, 33, 33, - 33, 587, 645, 604, 592, 640, 640, 640, 641, 641, - - 592, 592, 592, 592, 592, 587, 587, 587, 587, 646, - 646, 647, 479, 647, 647, 515, 515, 587, 518, 518, - 518, 587, 587, 587, 587, 587, 587, 587, 33, 33, - 587, 645, 587, 604, 592, 592, 592, 592, 592, 587, - 587, 587, 587, 587, 587, 648, 648, 649, 649, 649, - 550, 550, 587, 587, 33, 604, 592, 592, 592, 587, - 587, 587, 587, 650, 650, 587, 587, 651, 592, 592, - 592, 592, 592, 587, 587, 587, 587, 587, 651, 587, - 592, 592, 592, 592, 592, 592, 0, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587 + 588, 1, 1, 1, 589, 589, 590, 590, 591, 591, + 592, 592, 588, 593, 588, 588, 588, 588, 594, 595, + 588, 588, 596, 588, 597, 593, 26, 26, 598, 588, + 588, 588, 32, 32, 34, 34, 34, 34, 593, 26, + 593, 588, 594, 32, 32, 34, 34, 34, 588, 588, + 599, 593, 600, 588, 600, 588, 600, 588, 594, 588, + 601, 602, 588, 602, 588, 602, 588, 603, 604, 604, + 604, 588, 588, 593, 593, 588, 588, 605, 588, 606, + 588, 595, 607, 595, 596, 596, 597, 608, 593, 593, + 26, 598, 91, 91, 91, 91, 609, 610, 32, 34, + + 34, 34, 34, 34, 34, 593, 588, 593, 588, 588, + 588, 588, 588, 588, 605, 593, 91, 593, 593, 593, + 588, 588, 599, 611, 593, 593, 600, 600, 588, 588, + 588, 606, 588, 601, 602, 602, 588, 588, 602, 602, + 604, 588, 604, 604, 588, 588, 605, 612, 607, 607, + 588, 593, 593, 593, 91, 155, 613, 588, 614, 588, + 32, 34, 34, 34, 34, 34, 34, 34, 34, 593, + 588, 588, 588, 588, 588, 605, 593, 155, 593, 593, + 593, 588, 593, 588, 612, 593, 593, 593, 593, 593, + 593, 615, 616, 616, 194, 617, 616, 618, 160, 588, + + 200, 200, 588, 200, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 593, 588, 588, 588, 588, 588, 605, + 593, 593, 593, 593, 593, 593, 593, 588, 619, 619, + 230, 619, 620, 621, 622, 588, 623, 203, 623, 623, + 240, 623, 588, 243, 243, 588, 243, 588, 588, 34, + 34, 34, 34, 34, 34, 34, 34, 593, 588, 588, + 588, 605, 593, 593, 593, 593, 593, 593, 593, 593, + 624, 624, 625, 626, 588, 588, 588, 588, 588, 627, + 627, 628, 246, 628, 628, 285, 628, 588, 288, 288, + 588, 288, 34, 34, 34, 34, 34, 34, 34, 34, + + 593, 588, 588, 605, 593, 593, 593, 593, 593, 593, + 588, 629, 630, 275, 588, 315, 315, 588, 315, 588, + 588, 588, 588, 588, 588, 631, 631, 632, 291, 632, + 632, 331, 632, 588, 334, 334, 588, 334, 34, 34, + 588, 588, 34, 34, 34, 34, 588, 588, 588, 588, + 593, 588, 588, 605, 593, 593, 593, 593, 593, 593, + 593, 593, 588, 633, 588, 634, 318, 634, 634, 369, + 369, 588, 372, 372, 588, 372, 588, 588, 588, 588, + 635, 635, 636, 337, 636, 636, 386, 636, 588, 389, + 389, 389, 34, 34, 34, 34, 34, 34, 593, 588, + + 588, 605, 593, 593, 593, 593, 593, 593, 593, 588, + 588, 588, 588, 637, 637, 638, 375, 638, 638, 419, + 419, 588, 422, 422, 588, 422, 588, 588, 588, 588, + 588, 588, 639, 639, 640, 640, 640, 437, 437, 34, + 34, 34, 34, 588, 588, 588, 588, 588, 588, 605, + 605, 593, 641, 642, 593, 593, 593, 593, 593, 593, + 593, 588, 588, 588, 588, 588, 588, 643, 643, 644, + 425, 644, 644, 473, 473, 588, 476, 476, 588, 476, + 588, 588, 588, 588, 645, 645, 588, 588, 34, 34, + 34, 588, 646, 605, 593, 641, 641, 641, 641, 642, + + 642, 593, 593, 593, 593, 593, 588, 588, 588, 588, + 647, 647, 648, 479, 648, 648, 516, 516, 588, 519, + 519, 519, 588, 588, 588, 588, 588, 588, 588, 34, + 34, 588, 646, 588, 605, 593, 593, 593, 593, 593, + 588, 588, 588, 588, 588, 588, 649, 649, 650, 650, + 650, 551, 551, 588, 588, 34, 605, 593, 593, 593, + 588, 588, 588, 588, 651, 651, 588, 588, 652, 593, + 593, 593, 593, 593, 588, 588, 588, 588, 588, 652, + 588, 593, 593, 593, 593, 593, 593, 0, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588 } ; -static yyconst short int yy_nxt[3699] = +static yyconst short int yy_nxt[3686] = { 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, 18, 14, 31, 31, 31, - 31, 32, 33, 33, 33, 33, 34, 35, 33, 36, - 33, 37, 33, 33, 33, 33, 33, 38, 14, 39, - 39, 39, 39, 39, 39, 14, 14, 14, 14, 14, - 14, 14, 40, 14, 14, 41, 49, 83, 42, 43, - 50, 49, 133, 107, 42, 50, 15, 54, 55, 51, - 56, 140, 107, 75, 51, 137, 56, 70, 16, 71, - 72, 84, 75, 44, 45, 138, 79, 46, 56, 57, - - 108, 15, 54, 55, 47, 56, 587, 48, 136, 126, - 143, 56, 70, 16, 71, 72, 88, 88, 136, 75, - 88, 88, 58, 56, 57, 145, 146, 52, 141, 75, - 84, 177, 52, 73, 144, 133, 107, 305, 88, 94, - 94, 94, 94, 94, 94, 94, 94, 58, 15, 16, - 17, 109, 59, 176, 133, 107, 142, 75, 73, 158, - 89, 95, 95, 95, 95, 95, 96, 74, 160, 93, - 93, 93, 93, 93, 93, 93, 93, 75, 142, 110, - 111, 75, 170, 112, 156, 156, 156, 156, 156, 156, - 113, 133, 107, 114, 60, 61, 61, 61, 61, 61, - - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 15, 16, 17, 122, 59, 580, 81, 81, + 26, 26, 26, 29, 30, 31, 14, 32, 32, 32, + 32, 33, 34, 34, 34, 34, 35, 36, 34, 37, + 34, 38, 34, 34, 34, 34, 34, 39, 14, 40, + 40, 40, 40, 40, 40, 14, 14, 14, 14, 14, + 14, 14, 41, 14, 14, 42, 49, 49, 79, 43, + 50, 50, 143, 15, 54, 55, 75, 56, 144, 51, + 51, 83, 181, 56, 70, 16, 71, 72, 15, 54, + 55, 75, 56, 44, 45, 56, 57, 46, 56, 70, + + 16, 71, 72, 137, 47, 84, 75, 48, 108, 138, + 56, 57, 133, 107, 140, 107, 88, 88, 142, 58, + 88, 88, 142, 126, 158, 176, 136, 52, 52, 75, + 73, 143, 136, 160, 58, 15, 16, 17, 88, 59, + 145, 146, 305, 141, 179, 73, 94, 94, 94, 94, + 94, 94, 94, 94, 95, 95, 95, 95, 95, 96, + 89, 74, 75, 93, 93, 93, 93, 93, 93, 93, + 93, 133, 107, 75, 75, 75, 109, 142, 588, 170, + 183, 60, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 15, + + 16, 17, 84, 59, 110, 111, 133, 107, 112, 156, + 156, 156, 156, 156, 156, 113, 122, 75, 114, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 74, 75, 144, 75, 145, 146, 183, 152, - 153, 154, 152, 152, 152, 152, 152, 180, 60, 61, + 81, 81, 81, 74, 92, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 15, 16, 17, 63, - 59, 75, 75, 178, 75, 64, 65, 66, 142, 75, - 181, 124, 124, 164, 497, 124, 124, 179, 165, 67, - - 158, 166, 214, 167, 133, 107, 129, 107, 130, 199, - 131, 143, 75, 124, 130, 79, 131, 221, 75, 75, - 75, 223, 68, 15, 16, 17, 63, 59, 131, 131, - 92, 224, 64, 65, 66, 125, 221, 82, 498, 82, - 82, 82, 75, 82, 82, 135, 67, 82, 135, 135, - 136, 580, 131, 158, 75, 135, 221, 142, 186, 248, - 82, 82, 199, 365, 220, 232, 232, 232, 135, 68, - 79, 156, 156, 156, 156, 156, 156, 156, 156, 79, - 80, 249, 266, 81, 81, 81, 81, 81, 81, 81, - 81, 90, 75, 91, 91, 91, 91, 91, 91, 91, - - 91, 92, 75, 263, 75, 93, 93, 93, 93, 93, - 258, 250, 513, 88, 88, 251, 75, 88, 88, 241, - 241, 241, 241, 241, 242, 75, 75, 93, 93, 93, - 93, 93, 93, 74, 262, 88, 248, 587, 75, 74, - 365, 221, 74, 74, 265, 74, 74, 74, 99, 99, - 99, 99, 99, 99, 99, 99, 92, 89, 249, 74, - 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, - 75, 100, 93, 93, 93, 93, 93, 93, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 100, 100, - - 100, 100, 100, 100, 100, 100, 587, 75, 414, 414, - 100, 100, 100, 100, 100, 156, 156, 156, 156, 156, - 156, 156, 156, 356, 186, 109, 187, 187, 187, 187, - 187, 187, 74, 74, 74, 74, 74, 74, 106, 107, - 74, 74, 74, 158, 74, 74, 88, 343, 74, 513, - 88, 344, 199, 110, 111, 75, 88, 112, 75, 79, - 74, 74, 74, 79, 113, 306, 471, 114, 88, 88, - 124, 124, 79, 80, 124, 124, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 124, 587, 587, 587, 587, 587, 587, 587, - - 587, 124, 75, 92, 341, 124, 236, 158, 75, 587, - 158, 124, 355, 301, 125, 75, 238, 115, 79, 238, - 307, 304, 354, 124, 124, 347, 342, 75, 132, 468, - 468, 587, 587, 587, 587, 587, 587, 587, 587, 74, - 358, 74, 74, 74, 264, 74, 74, 348, 540, 74, - 225, 226, 227, 225, 225, 225, 225, 225, 79, 533, - 158, 74, 74, 74, 85, 555, 85, 85, 85, 199, - 85, 85, 158, 75, 85, 286, 286, 286, 286, 286, - 287, 238, 75, 75, 236, 158, 85, 85, 85, 87, - 158, 74, 74, 87, 238, 74, 74, 158, 404, 87, - - 230, 230, 231, 232, 232, 232, 232, 232, 196, 402, - 79, 87, 87, 74, 155, 155, 155, 155, 155, 155, - 155, 155, 75, 79, 452, 349, 155, 155, 155, 155, - 155, 204, 204, 204, 204, 204, 204, 204, 204, 240, - 240, 240, 240, 240, 240, 240, 240, 350, 155, 155, - 155, 155, 155, 155, 161, 161, 161, 161, 161, 161, - 161, 161, 236, 158, 494, 341, 161, 161, 161, 161, - 161, 587, 283, 239, 239, 239, 239, 239, 239, 239, - 239, 347, 534, 75, 471, 587, 158, 342, 155, 155, - 155, 155, 155, 155, 123, 283, 74, 74, 123, 399, - - 74, 74, 417, 348, 123, 272, 272, 272, 272, 272, - 272, 272, 272, 196, 75, 75, 123, 123, 74, 149, - 533, 149, 149, 149, 351, 149, 149, 531, 365, 149, - 277, 278, 279, 277, 277, 277, 277, 277, 367, 236, - 158, 149, 149, 149, 186, 530, 187, 187, 187, 187, - 187, 187, 187, 187, 247, 247, 247, 247, 247, 247, - 247, 247, 236, 158, 281, 281, 281, 281, 281, 281, - 578, 75, 238, 587, 158, 578, 349, 529, 75, 186, - 357, 188, 188, 188, 188, 188, 188, 188, 188, 285, - 285, 285, 285, 285, 285, 285, 285, 587, 350, 284, - - 284, 284, 284, 284, 284, 284, 284, 332, 332, 332, - 332, 332, 333, 75, 186, 158, 189, 189, 189, 189, - 189, 190, 187, 187, 238, 444, 158, 308, 309, 310, - 308, 308, 308, 308, 308, 266, 158, 267, 267, 267, - 267, 267, 267, 417, 75, 283, 75, 445, 75, 74, - 367, 191, 191, 191, 191, 191, 191, 191, 191, 75, - 405, 495, 446, 191, 191, 191, 191, 191, 320, 75, - 321, 321, 321, 321, 321, 321, 321, 321, 370, 370, - 370, 370, 370, 371, 447, 191, 191, 191, 191, 191, - 191, 193, 194, 195, 195, 195, 195, 195, 195, 196, - - 75, 485, 485, 197, 197, 197, 197, 197, 320, 403, - 322, 322, 322, 322, 322, 322, 322, 322, 387, 387, - 387, 387, 387, 388, 462, 197, 197, 197, 197, 197, - 197, 158, 200, 201, 202, 200, 200, 200, 200, 200, - 203, 492, 487, 444, 204, 204, 204, 204, 204, 320, - 587, 323, 323, 323, 323, 323, 324, 321, 321, 446, - 367, 497, 450, 79, 488, 445, 204, 204, 204, 204, - 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, - 491, 447, 510, 510, 205, 205, 205, 205, 205, 292, - 292, 292, 292, 292, 292, 292, 292, 331, 331, 331, - - 331, 331, 331, 331, 331, 500, 191, 191, 191, 191, - 191, 191, 186, 451, 187, 187, 187, 187, 187, 187, - 187, 187, 236, 158, 327, 327, 327, 327, 327, 327, - 490, 587, 283, 330, 330, 330, 330, 330, 330, 330, - 330, 236, 158, 546, 546, 489, 75, 186, 427, 187, - 187, 187, 187, 187, 187, 187, 187, 319, 319, 319, - 319, 319, 319, 319, 319, 369, 369, 369, 369, 369, - 369, 369, 369, 377, 378, 379, 377, 377, 377, 377, - 377, 75, 236, 158, 237, 237, 237, 237, 237, 237, - 237, 237, 238, 158, 367, 487, 239, 239, 239, 239, - - 239, 587, 283, 368, 368, 368, 368, 368, 368, 368, - 368, 420, 420, 420, 420, 420, 421, 488, 239, 239, - 239, 239, 239, 239, 158, 243, 244, 245, 243, 243, - 243, 243, 243, 246, 158, 314, 527, 247, 247, 247, - 247, 247, 320, 329, 321, 321, 321, 321, 321, 321, - 321, 321, 556, 79, 564, 564, 236, 158, 528, 247, - 247, 247, 247, 247, 247, 266, 283, 267, 267, 267, - 267, 267, 267, 267, 267, 320, 365, 321, 321, 321, - 321, 321, 321, 321, 321, 320, 367, 321, 321, 321, - 321, 321, 321, 438, 438, 438, 438, 438, 439, 75, - - 266, 75, 268, 268, 268, 268, 268, 268, 268, 268, - 236, 158, 338, 338, 338, 338, 338, 338, 338, 338, - 329, 587, 158, 236, 158, 382, 382, 382, 382, 382, - 382, 329, 455, 329, 75, 266, 449, 269, 269, 269, - 269, 269, 270, 267, 267, 386, 386, 386, 386, 386, - 386, 386, 386, 587, 365, 385, 385, 385, 385, 385, - 385, 385, 385, 448, 417, 75, 75, 134, 134, 75, - 236, 158, 281, 281, 281, 281, 281, 281, 281, 281, - 238, 236, 158, 282, 282, 282, 282, 282, 282, 282, - 282, 283, 443, 442, 527, 284, 284, 284, 284, 284, - - 535, 406, 407, 408, 409, 406, 406, 406, 406, 358, - 359, 359, 359, 359, 359, 359, 528, 284, 284, 284, - 284, 284, 284, 158, 288, 289, 290, 288, 288, 288, - 288, 288, 291, 75, 75, 553, 292, 292, 292, 292, - 292, 587, 75, 411, 412, 413, 411, 411, 411, 411, - 411, 417, 441, 440, 314, 236, 158, 554, 292, 292, - 292, 292, 292, 292, 266, 329, 267, 267, 267, 267, - 267, 267, 267, 267, 376, 376, 376, 376, 376, 376, - 376, 376, 419, 419, 419, 419, 419, 419, 419, 419, - 236, 158, 474, 474, 474, 474, 474, 475, 75, 266, - - 384, 267, 267, 267, 267, 267, 267, 267, 267, 587, - 234, 418, 418, 418, 418, 418, 418, 418, 418, 427, - 158, 428, 428, 428, 428, 428, 428, 428, 428, 329, - 505, 505, 505, 75, 315, 316, 317, 315, 315, 315, - 315, 315, 318, 158, 453, 401, 319, 319, 319, 319, - 319, 427, 384, 429, 429, 429, 429, 429, 429, 429, - 429, 400, 75, 398, 453, 397, 453, 453, 319, 319, - 319, 319, 319, 319, 236, 158, 327, 327, 327, 327, - 327, 327, 327, 327, 283, 236, 158, 328, 328, 328, - 328, 328, 328, 328, 328, 329, 553, 566, 566, 330, - - 330, 330, 330, 330, 427, 365, 430, 430, 430, 430, - 430, 431, 428, 428, 396, 417, 395, 587, 554, 567, - 567, 330, 330, 330, 330, 330, 330, 158, 334, 335, - 336, 334, 334, 334, 334, 334, 337, 394, 393, 320, - 338, 338, 338, 338, 338, 392, 392, 392, 392, 392, - 392, 392, 392, 437, 437, 437, 437, 437, 437, 437, - 437, 498, 338, 338, 338, 338, 338, 338, 358, 359, - 359, 359, 359, 359, 359, 359, 359, 587, 158, 236, - 158, 434, 434, 434, 434, 434, 434, 384, 587, 384, - 436, 436, 436, 436, 436, 436, 436, 436, 569, 314, - - 234, 75, 358, 360, 360, 360, 360, 360, 360, 360, - 360, 453, 462, 196, 463, 463, 463, 463, 463, 463, - 463, 463, 426, 426, 426, 426, 426, 426, 426, 426, - 353, 453, 75, 453, 454, 75, 358, 361, 361, 361, - 361, 361, 362, 359, 359, 462, 352, 464, 464, 464, - 464, 464, 464, 464, 464, 75, 462, 365, 465, 465, - 465, 465, 465, 466, 463, 463, 346, 471, 345, 75, - 365, 587, 366, 366, 366, 366, 366, 366, 366, 366, - 367, 471, 340, 339, 368, 368, 368, 368, 368, 473, - 473, 473, 473, 473, 473, 473, 473, 481, 482, 483, - - 481, 481, 481, 481, 481, 314, 368, 368, 368, 368, - 368, 368, 372, 373, 374, 372, 372, 372, 372, 372, - 375, 158, 234, 196, 376, 376, 376, 376, 376, 587, - 384, 472, 472, 472, 472, 472, 472, 472, 472, 587, - 455, 196, 505, 505, 505, 259, 376, 376, 376, 376, - 376, 376, 236, 158, 382, 382, 382, 382, 382, 382, - 382, 382, 329, 236, 158, 383, 383, 383, 383, 383, - 383, 383, 383, 384, 75, 303, 302, 385, 385, 385, - 385, 385, 427, 498, 428, 428, 428, 428, 428, 428, - 428, 428, 516, 516, 516, 516, 516, 517, 300, 385, - - 385, 385, 385, 385, 385, 158, 389, 390, 391, 389, - 389, 389, 389, 389, 236, 158, 299, 298, 392, 392, - 392, 392, 392, 427, 384, 428, 428, 428, 428, 428, - 428, 428, 428, 587, 551, 551, 551, 551, 551, 552, - 392, 392, 392, 392, 392, 392, 358, 359, 359, 359, - 359, 359, 359, 359, 359, 427, 297, 428, 428, 428, - 428, 428, 428, 450, 79, 501, 502, 503, 501, 501, - 501, 501, 501, 296, 295, 294, 493, 500, 293, 75, - 358, 359, 359, 359, 359, 359, 359, 359, 359, 506, - 507, 508, 506, 506, 506, 506, 506, 75, 462, 365, - - 463, 463, 463, 463, 463, 463, 463, 463, 275, 471, - 234, 196, 271, 75, 365, 196, 415, 415, 415, 415, - 415, 415, 415, 415, 367, 365, 365, 416, 416, 416, - 416, 416, 416, 416, 416, 417, 513, 98, 259, 418, - 418, 418, 418, 418, 462, 587, 463, 463, 463, 463, - 463, 463, 463, 463, 261, 513, 259, 260, 259, 257, - 256, 418, 418, 418, 418, 418, 418, 422, 423, 424, - 422, 422, 422, 422, 422, 425, 255, 254, 253, 426, - 426, 426, 426, 426, 462, 252, 463, 463, 463, 463, - 463, 463, 480, 480, 480, 480, 480, 480, 480, 480, - - 92, 426, 426, 426, 426, 426, 426, 236, 158, 434, - 434, 434, 434, 434, 434, 434, 434, 384, 236, 158, - 435, 435, 435, 435, 435, 435, 435, 435, 196, 234, - 196, 98, 436, 436, 436, 436, 436, 515, 515, 515, - 515, 515, 515, 515, 515, 158, 522, 522, 522, 522, - 522, 522, 522, 522, 436, 436, 436, 436, 436, 436, - 455, 365, 456, 456, 456, 456, 456, 456, 456, 456, - 587, 513, 514, 514, 514, 514, 514, 514, 514, 514, - 158, 523, 523, 523, 523, 523, 523, 523, 523, 79, - 184, 222, 219, 218, 75, 455, 217, 457, 457, 457, - - 457, 457, 457, 457, 457, 158, 524, 524, 524, 524, - 524, 525, 522, 522, 556, 79, 216, 215, 496, 213, - 212, 496, 496, 211, 496, 496, 210, 568, 496, 75, - 455, 209, 458, 458, 458, 458, 458, 459, 460, 460, - 496, 496, 496, 540, 208, 541, 541, 541, 541, 541, - 541, 541, 541, 499, 207, 206, 499, 499, 98, 499, - 499, 90, 150, 499, 75, 455, 79, 461, 461, 461, - 456, 456, 456, 456, 456, 499, 499, 499, 79, 184, - 504, 504, 504, 504, 504, 504, 504, 504, 540, 141, - 542, 542, 542, 542, 542, 542, 542, 542, 142, 75, - - 365, 136, 469, 469, 469, 469, 469, 469, 469, 469, - 417, 365, 75, 470, 470, 470, 470, 470, 470, 470, - 470, 471, 136, 128, 182, 472, 472, 472, 472, 472, - 540, 121, 543, 543, 543, 543, 543, 544, 541, 541, - 158, 522, 522, 522, 522, 522, 522, 472, 472, 472, - 472, 472, 472, 476, 477, 478, 476, 476, 476, 476, - 476, 479, 175, 174, 173, 480, 480, 480, 480, 480, - 521, 521, 521, 521, 521, 521, 521, 521, 550, 550, - 550, 550, 550, 550, 550, 550, 172, 480, 480, 480, - 480, 480, 480, 236, 158, 486, 486, 486, 486, 486, - - 486, 486, 486, 455, 171, 460, 460, 460, 460, 460, - 460, 460, 460, 587, 169, 549, 549, 549, 549, 549, - 549, 549, 549, 158, 522, 522, 522, 522, 522, 522, - 522, 522, 168, 163, 162, 98, 74, 75, 455, 98, - 460, 460, 460, 460, 460, 460, 460, 460, 158, 522, - 522, 522, 522, 522, 522, 522, 522, 557, 558, 559, - 557, 557, 557, 557, 557, 574, 574, 574, 574, 574, - 574, 151, 75, 455, 86, 460, 460, 460, 460, 460, - 460, 504, 504, 150, 79, 77, 76, 75, 535, 75, - 536, 536, 536, 536, 536, 536, 560, 561, 562, 560, - - 560, 560, 560, 560, 142, 136, 128, 75, 455, 121, - 504, 504, 504, 504, 504, 504, 504, 504, 120, 119, - 118, 540, 75, 541, 541, 541, 541, 541, 541, 541, - 541, 540, 117, 541, 541, 541, 541, 541, 541, 541, - 541, 116, 75, 365, 105, 511, 511, 511, 511, 511, - 511, 511, 511, 471, 365, 104, 512, 512, 512, 512, - 512, 512, 512, 512, 513, 103, 102, 101, 514, 514, - 514, 514, 514, 540, 98, 541, 541, 541, 541, 541, - 541, 574, 574, 574, 574, 574, 574, 574, 574, 86, - 514, 514, 514, 514, 514, 514, 518, 519, 520, 518, - - 518, 518, 518, 518, 77, 76, 75, 587, 521, 521, - 521, 521, 521, 365, 587, 565, 565, 565, 565, 565, - 565, 565, 565, 587, 587, 587, 587, 587, 587, 587, - 521, 521, 521, 521, 521, 521, 535, 587, 536, 536, - 536, 536, 536, 536, 536, 536, 575, 575, 575, 575, - 575, 575, 575, 575, 576, 576, 576, 576, 576, 577, - 574, 574, 581, 582, 583, 581, 581, 581, 581, 581, - 75, 535, 587, 537, 537, 537, 537, 537, 537, 537, - 537, 587, 569, 587, 570, 570, 570, 570, 570, 570, - 587, 587, 587, 587, 75, 574, 574, 574, 574, 574, - - 574, 574, 574, 587, 587, 75, 535, 587, 538, 538, - 538, 538, 538, 539, 536, 536, 75, 574, 574, 574, - 574, 574, 574, 574, 574, 587, 587, 587, 587, 587, - 584, 584, 584, 584, 584, 584, 584, 584, 587, 587, - 75, 365, 587, 547, 547, 547, 547, 547, 547, 547, - 547, 513, 365, 587, 548, 548, 548, 548, 548, 548, - 548, 548, 75, 587, 587, 587, 549, 549, 549, 549, - 549, 587, 581, 581, 581, 581, 581, 581, 581, 581, - 585, 585, 585, 585, 585, 586, 584, 584, 549, 549, - 549, 549, 549, 549, 535, 587, 536, 536, 536, 536, - - 536, 536, 536, 536, 75, 587, 587, 587, 587, 587, - 587, 587, 75, 584, 584, 584, 584, 584, 584, 584, - 584, 584, 584, 584, 584, 584, 584, 587, 75, 535, - 587, 536, 536, 536, 536, 536, 536, 536, 536, 587, - 587, 587, 587, 587, 587, 75, 587, 587, 587, 587, - 587, 587, 587, 75, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 75, 569, 587, 570, 570, 570, 570, - 570, 570, 570, 570, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 75, 569, - - 587, 571, 571, 571, 571, 571, 571, 571, 571, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 75, 569, 587, 572, 572, 572, 572, - 572, 573, 570, 570, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 75, 569, - 587, 570, 570, 570, 570, 570, 570, 570, 570, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - - 587, 587, 587, 75, 569, 587, 570, 570, 570, 570, - 570, 570, 570, 570, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 75, 53, + 61, 61, 61, 15, 16, 17, 63, 59, 75, 75, + 133, 107, 64, 65, 66, 75, 145, 146, 124, 124, + 164, 177, 124, 124, 178, 165, 67, 180, 166, 158, + 167, 133, 107, 129, 107, 130, 144, 131, 199, 158, + + 124, 130, 79, 131, 75, 75, 581, 223, 199, 68, + 15, 16, 17, 63, 59, 131, 131, 214, 75, 64, + 65, 66, 125, 221, 82, 75, 82, 82, 82, 75, + 82, 82, 135, 67, 82, 135, 135, 136, 75, 131, + 142, 221, 135, 221, 258, 186, 248, 82, 82, 581, + 250, 220, 365, 75, 251, 135, 68, 79, 152, 153, + 154, 152, 152, 152, 152, 152, 224, 80, 249, 79, + 81, 81, 81, 81, 81, 81, 81, 81, 90, 75, + 91, 91, 91, 91, 91, 91, 91, 91, 92, 514, + 75, 266, 93, 93, 93, 93, 93, 232, 232, 232, + + 88, 88, 75, 263, 88, 88, 241, 241, 241, 241, + 241, 242, 75, 75, 93, 93, 93, 93, 93, 93, + 74, 75, 88, 248, 262, 75, 74, 265, 221, 74, + 74, 588, 74, 74, 74, 99, 99, 99, 99, 99, + 99, 99, 99, 92, 89, 249, 74, 99, 99, 99, + 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 75, 100, 93, + 93, 93, 93, 93, 93, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 100, 100, 100, 100, 100, + 100, 100, 100, 588, 414, 414, 79, 100, 100, 100, + + 100, 100, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 79, 74, + 74, 74, 74, 74, 74, 106, 107, 74, 74, 74, + 158, 74, 74, 365, 75, 74, 514, 124, 124, 199, + 75, 124, 124, 109, 306, 301, 354, 74, 74, 74, + 79, 81, 81, 81, 81, 81, 81, 81, 81, 124, + 80, 471, 341, 81, 81, 81, 81, 81, 81, 81, + 81, 110, 111, 88, 75, 112, 92, 88, 541, 307, + 304, 125, 113, 88, 342, 114, 588, 588, 588, 588, + 588, 588, 588, 588, 158, 88, 88, 343, 75, 534, + + 75, 344, 556, 199, 115, 79, 225, 226, 227, 225, + 225, 225, 225, 225, 356, 132, 79, 264, 588, 588, + 588, 588, 588, 588, 588, 588, 74, 158, 74, 74, + 74, 158, 74, 74, 236, 158, 74, 124, 75, 158, + 238, 124, 588, 158, 238, 471, 75, 124, 74, 74, + 74, 85, 238, 85, 85, 85, 355, 85, 85, 124, + 124, 85, 186, 347, 187, 187, 187, 187, 187, 187, + 494, 236, 158, 85, 85, 85, 87, 358, 74, 74, + 87, 238, 74, 74, 417, 348, 87, 230, 230, 231, + 232, 232, 232, 232, 232, 196, 75, 75, 87, 87, + + 74, 155, 155, 155, 155, 155, 155, 155, 155, 75, + 75, 452, 349, 155, 155, 155, 155, 155, 204, 204, + 204, 204, 204, 204, 204, 204, 240, 240, 240, 240, + 240, 240, 240, 240, 350, 155, 155, 155, 155, 155, + 155, 161, 161, 161, 161, 161, 161, 161, 161, 236, + 158, 534, 341, 161, 161, 161, 161, 161, 588, 283, + 239, 239, 239, 239, 239, 239, 239, 239, 286, 286, + 286, 286, 286, 287, 342, 155, 155, 155, 155, 155, + 155, 123, 532, 74, 74, 123, 531, 74, 74, 468, + 468, 123, 272, 272, 272, 272, 272, 272, 272, 272, + + 196, 588, 158, 123, 123, 74, 149, 530, 149, 149, + 149, 283, 149, 149, 158, 365, 149, 277, 278, 279, + 277, 277, 277, 277, 277, 367, 236, 158, 149, 149, + 149, 186, 417, 187, 187, 187, 187, 187, 187, 187, + 187, 247, 247, 247, 247, 247, 247, 247, 247, 236, + 158, 281, 281, 281, 281, 281, 281, 367, 75, 238, + 588, 158, 79, 347, 462, 75, 186, 351, 188, 188, + 188, 188, 188, 188, 188, 188, 285, 285, 285, 285, + 285, 285, 285, 285, 588, 348, 284, 284, 284, 284, + 284, 284, 284, 284, 332, 332, 332, 332, 332, 333, + + 75, 186, 75, 189, 189, 189, 189, 189, 190, 187, + 187, 357, 349, 402, 308, 309, 310, 308, 308, 308, + 308, 308, 266, 158, 267, 267, 267, 267, 267, 267, + 492, 75, 238, 75, 350, 75, 74, 491, 191, 191, + 191, 191, 191, 191, 191, 191, 75, 399, 404, 444, + 191, 191, 191, 191, 191, 320, 75, 321, 321, 321, + 321, 321, 321, 321, 321, 370, 370, 370, 370, 370, + 371, 445, 191, 191, 191, 191, 191, 191, 193, 194, + 195, 195, 195, 195, 195, 195, 196, 158, 490, 446, + 197, 197, 197, 197, 197, 320, 283, 322, 322, 322, + + 322, 322, 322, 322, 322, 387, 387, 387, 387, 387, + 388, 447, 197, 197, 197, 197, 197, 197, 158, 200, + 201, 202, 200, 200, 200, 200, 200, 203, 75, 489, + 75, 204, 204, 204, 204, 204, 320, 403, 323, 323, + 323, 323, 323, 324, 321, 321, 405, 420, 420, 420, + 420, 420, 421, 204, 204, 204, 204, 204, 204, 205, + 205, 205, 205, 205, 205, 205, 205, 485, 485, 79, + 487, 205, 205, 205, 205, 205, 292, 292, 292, 292, + 292, 292, 292, 292, 331, 331, 331, 331, 331, 331, + 331, 331, 488, 191, 191, 191, 191, 191, 191, 186, + + 427, 187, 187, 187, 187, 187, 187, 187, 187, 236, + 158, 327, 327, 327, 327, 327, 327, 75, 588, 283, + 330, 330, 330, 330, 330, 330, 330, 330, 535, 450, + 79, 367, 495, 75, 186, 314, 187, 187, 187, 187, + 187, 187, 187, 187, 319, 319, 319, 319, 319, 319, + 319, 319, 369, 369, 369, 369, 369, 369, 369, 369, + 377, 378, 379, 377, 377, 377, 377, 377, 75, 236, + 158, 237, 237, 237, 237, 237, 237, 237, 237, 238, + 451, 444, 446, 239, 239, 239, 239, 239, 588, 588, + 368, 368, 368, 368, 368, 368, 368, 368, 75, 367, + + 449, 497, 498, 445, 447, 239, 239, 239, 239, 239, + 239, 158, 243, 244, 245, 243, 243, 243, 243, 243, + 246, 158, 511, 511, 247, 247, 247, 247, 247, 320, + 283, 321, 321, 321, 321, 321, 321, 321, 321, 497, + 498, 236, 158, 236, 158, 499, 247, 247, 247, 247, + 247, 247, 266, 283, 267, 267, 267, 267, 267, 267, + 267, 267, 320, 448, 321, 321, 321, 321, 321, 321, + 321, 321, 320, 158, 321, 321, 321, 321, 321, 321, + 547, 547, 329, 501, 75, 455, 75, 266, 443, 268, + 268, 268, 268, 268, 268, 268, 268, 236, 158, 338, + + 338, 338, 338, 338, 338, 338, 338, 329, 588, 158, + 236, 158, 382, 382, 382, 382, 382, 382, 329, 75, + 329, 75, 266, 442, 269, 269, 269, 269, 269, 270, + 267, 267, 386, 386, 386, 386, 386, 386, 386, 386, + 588, 441, 385, 385, 385, 385, 385, 385, 385, 385, + 438, 438, 438, 438, 438, 439, 75, 236, 158, 281, + 281, 281, 281, 281, 281, 281, 281, 238, 236, 158, + 282, 282, 282, 282, 282, 282, 282, 282, 283, 557, + 79, 487, 284, 284, 284, 284, 284, 536, 406, 407, + 408, 409, 406, 406, 406, 406, 358, 359, 359, 359, + + 359, 359, 359, 488, 284, 284, 284, 284, 284, 284, + 158, 288, 289, 290, 288, 288, 288, 288, 288, 291, + 75, 75, 528, 292, 292, 292, 292, 292, 365, 75, + 411, 412, 413, 411, 411, 411, 411, 411, 367, 565, + 565, 440, 236, 158, 529, 292, 292, 292, 292, 292, + 292, 266, 329, 267, 267, 267, 267, 267, 267, 267, + 267, 376, 376, 376, 376, 376, 376, 376, 376, 419, + 419, 419, 419, 419, 419, 419, 419, 236, 158, 474, + 474, 474, 474, 474, 475, 75, 266, 384, 267, 267, + 267, 267, 267, 267, 267, 267, 588, 365, 418, 418, + + 418, 418, 418, 418, 418, 418, 427, 417, 428, 428, + 428, 428, 428, 428, 428, 428, 314, 570, 450, 79, + 75, 315, 316, 317, 315, 315, 315, 315, 315, 318, + 453, 493, 528, 319, 319, 319, 319, 319, 427, 588, + 429, 429, 429, 429, 429, 429, 429, 429, 234, 417, + 453, 75, 453, 453, 529, 319, 319, 319, 319, 319, + 319, 236, 158, 327, 327, 327, 327, 327, 327, 327, + 327, 283, 236, 158, 328, 328, 328, 328, 328, 328, + 328, 328, 329, 158, 401, 554, 330, 330, 330, 330, + 330, 427, 329, 430, 430, 430, 430, 430, 431, 428, + + 428, 517, 517, 517, 517, 517, 518, 555, 330, 330, + 330, 330, 330, 330, 158, 334, 335, 336, 334, 334, + 334, 334, 334, 337, 134, 134, 554, 338, 338, 338, + 338, 338, 392, 392, 392, 392, 392, 392, 392, 392, + 437, 437, 437, 437, 437, 437, 437, 437, 555, 338, + 338, 338, 338, 338, 338, 358, 359, 359, 359, 359, + 359, 359, 359, 359, 588, 158, 236, 158, 434, 434, + 434, 434, 434, 434, 384, 588, 384, 436, 436, 436, + 436, 436, 436, 436, 436, 506, 506, 506, 75, 358, + 360, 360, 360, 360, 360, 360, 360, 360, 453, 462, + + 400, 463, 463, 463, 463, 463, 463, 463, 463, 426, + 426, 426, 426, 426, 426, 426, 426, 75, 453, 398, + 453, 454, 75, 358, 361, 361, 361, 361, 361, 362, + 359, 359, 462, 567, 464, 464, 464, 464, 464, 464, + 464, 464, 75, 462, 158, 465, 465, 465, 465, 465, + 466, 463, 463, 384, 397, 568, 75, 365, 365, 366, + 366, 366, 366, 366, 366, 366, 366, 367, 417, 396, + 567, 368, 368, 368, 368, 368, 473, 473, 473, 473, + 473, 473, 473, 473, 481, 482, 483, 481, 481, 481, + 481, 481, 568, 368, 368, 368, 368, 368, 368, 372, + + 373, 374, 372, 372, 372, 372, 372, 375, 158, 395, + 394, 376, 376, 376, 376, 376, 588, 384, 472, 472, + 472, 472, 472, 472, 472, 472, 393, 455, 320, 506, + 506, 506, 314, 376, 376, 376, 376, 376, 376, 236, + 158, 382, 382, 382, 382, 382, 382, 382, 382, 329, + 236, 158, 383, 383, 383, 383, 383, 383, 383, 383, + 384, 75, 234, 196, 385, 385, 385, 385, 385, 427, + 365, 428, 428, 428, 428, 428, 428, 428, 428, 579, + 471, 588, 588, 353, 579, 352, 385, 385, 385, 385, + 385, 385, 158, 389, 390, 391, 389, 389, 389, 389, + + 389, 236, 158, 346, 345, 392, 392, 392, 392, 392, + 427, 384, 428, 428, 428, 428, 428, 428, 428, 428, + 340, 339, 314, 234, 196, 499, 196, 392, 392, 392, + 392, 392, 392, 358, 359, 359, 359, 359, 359, 359, + 359, 359, 427, 259, 428, 428, 428, 428, 428, 428, + 502, 503, 504, 502, 502, 502, 502, 502, 507, 508, + 509, 507, 507, 507, 507, 507, 75, 358, 359, 359, + 359, 359, 359, 359, 359, 359, 303, 302, 300, 588, + 498, 462, 75, 463, 463, 463, 463, 463, 463, 463, + 463, 462, 588, 463, 463, 463, 463, 463, 463, 299, + + 75, 365, 471, 415, 415, 415, 415, 415, 415, 415, + 415, 367, 365, 298, 416, 416, 416, 416, 416, 416, + 416, 416, 417, 499, 297, 296, 418, 418, 418, 418, + 418, 462, 365, 463, 463, 463, 463, 463, 463, 463, + 463, 295, 471, 588, 588, 294, 293, 275, 418, 418, + 418, 418, 418, 418, 422, 423, 424, 422, 422, 422, + 422, 422, 425, 234, 196, 271, 426, 426, 426, 426, + 426, 480, 480, 480, 480, 480, 480, 480, 480, 516, + 516, 516, 516, 516, 516, 516, 516, 499, 426, 426, + 426, 426, 426, 426, 236, 158, 434, 434, 434, 434, + + 434, 434, 434, 434, 384, 236, 158, 435, 435, 435, + 435, 435, 435, 435, 435, 365, 196, 98, 259, 436, + 436, 436, 436, 436, 588, 514, 515, 515, 515, 515, + 515, 515, 515, 515, 588, 588, 261, 259, 588, 260, + 259, 436, 436, 436, 436, 436, 436, 455, 514, 456, + 456, 456, 456, 456, 456, 456, 456, 158, 523, 523, + 523, 523, 523, 523, 523, 523, 158, 524, 524, 524, + 524, 524, 524, 524, 524, 257, 256, 255, 501, 254, + 253, 75, 455, 252, 457, 457, 457, 457, 457, 457, + 457, 457, 158, 525, 525, 525, 525, 525, 526, 523, + + 523, 557, 79, 365, 92, 496, 196, 234, 196, 496, + 98, 496, 496, 514, 569, 496, 75, 455, 79, 458, + 458, 458, 458, 458, 459, 460, 460, 496, 496, 496, + 541, 184, 542, 542, 542, 542, 542, 542, 542, 542, + 500, 222, 219, 218, 500, 217, 500, 500, 216, 215, + 500, 75, 455, 213, 461, 461, 461, 456, 456, 456, + 456, 456, 500, 500, 500, 212, 211, 505, 505, 505, + 505, 505, 505, 505, 505, 541, 210, 543, 543, 543, + 543, 543, 543, 543, 543, 209, 75, 365, 208, 469, + 469, 469, 469, 469, 469, 469, 469, 417, 365, 75, + + 470, 470, 470, 470, 470, 470, 470, 470, 471, 207, + 206, 98, 472, 472, 472, 472, 472, 541, 90, 544, + 544, 544, 544, 544, 545, 542, 542, 552, 552, 552, + 552, 552, 553, 150, 472, 472, 472, 472, 472, 472, + 476, 477, 478, 476, 476, 476, 476, 476, 479, 79, + 79, 184, 480, 480, 480, 480, 480, 522, 522, 522, + 522, 522, 522, 522, 522, 551, 551, 551, 551, 551, + 551, 551, 551, 141, 480, 480, 480, 480, 480, 480, + 236, 158, 486, 486, 486, 486, 486, 486, 486, 486, + 455, 142, 460, 460, 460, 460, 460, 460, 460, 460, + + 588, 136, 550, 550, 550, 550, 550, 550, 550, 550, + 158, 523, 523, 523, 523, 523, 523, 523, 523, 136, + 128, 182, 121, 175, 75, 455, 174, 460, 460, 460, + 460, 460, 460, 460, 460, 158, 523, 523, 523, 523, + 523, 523, 523, 523, 158, 523, 523, 523, 523, 523, + 523, 558, 559, 560, 558, 558, 558, 558, 558, 75, + 455, 173, 460, 460, 460, 460, 460, 460, 505, 505, + 172, 536, 171, 537, 537, 537, 537, 537, 537, 169, + 168, 163, 162, 75, 561, 562, 563, 561, 561, 561, + 561, 561, 98, 74, 75, 455, 98, 505, 505, 505, + + 505, 505, 505, 505, 505, 75, 541, 151, 542, 542, + 542, 542, 542, 542, 542, 542, 541, 86, 542, 542, + 542, 542, 542, 542, 542, 542, 150, 79, 77, 75, + 365, 76, 512, 512, 512, 512, 512, 512, 512, 512, + 471, 365, 75, 513, 513, 513, 513, 513, 513, 513, + 513, 514, 142, 136, 128, 515, 515, 515, 515, 515, + 541, 121, 542, 542, 542, 542, 542, 542, 575, 575, + 575, 575, 575, 575, 575, 575, 120, 515, 515, 515, + 515, 515, 515, 519, 520, 521, 519, 519, 519, 519, + 519, 119, 118, 117, 116, 522, 522, 522, 522, 522, + + 365, 105, 566, 566, 566, 566, 566, 566, 566, 566, + 575, 575, 575, 575, 575, 575, 104, 522, 522, 522, + 522, 522, 522, 536, 103, 537, 537, 537, 537, 537, + 537, 537, 537, 576, 576, 576, 576, 576, 576, 576, + 576, 577, 577, 577, 577, 577, 578, 575, 575, 582, + 583, 584, 582, 582, 582, 582, 582, 75, 536, 102, + 538, 538, 538, 538, 538, 538, 538, 538, 101, 570, + 98, 571, 571, 571, 571, 571, 571, 86, 77, 76, + 75, 75, 575, 575, 575, 575, 575, 575, 575, 575, + 588, 588, 75, 536, 588, 539, 539, 539, 539, 539, + + 540, 537, 537, 75, 575, 575, 575, 575, 575, 575, + 575, 575, 588, 588, 588, 588, 588, 585, 585, 585, + 585, 585, 585, 585, 585, 588, 588, 75, 365, 588, + 548, 548, 548, 548, 548, 548, 548, 548, 514, 365, + 588, 549, 549, 549, 549, 549, 549, 549, 549, 75, + 588, 588, 588, 550, 550, 550, 550, 550, 588, 582, + 582, 582, 582, 582, 582, 582, 582, 586, 586, 586, + 586, 586, 587, 585, 585, 550, 550, 550, 550, 550, + 550, 536, 588, 537, 537, 537, 537, 537, 537, 537, + 537, 75, 588, 588, 588, 588, 588, 588, 588, 75, + + 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, + 585, 585, 585, 585, 588, 75, 536, 588, 537, 537, + 537, 537, 537, 537, 537, 537, 588, 588, 588, 588, + 588, 588, 75, 588, 588, 588, 588, 588, 588, 588, + 75, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 75, 570, 588, 571, 571, 571, 571, 571, 571, 571, + 571, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 75, 570, 588, 572, 572, + 572, 572, 572, 572, 572, 572, 588, 588, 588, 588, + + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 75, 570, 588, 573, 573, 573, 573, 573, 574, 571, + 571, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 75, 570, 588, 571, 571, + 571, 571, 571, 571, 571, 571, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 75, 570, 588, 571, 571, 571, 571, 571, 571, 571, + + 571, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 75, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 74, 587, 587, 587, 587, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 74, 588, 588, 588, 588, 588, 74, 74, + 74, 588, 588, 74, 74, 74, 78, 78, 78, 78, - 587, 74, 74, 74, 587, 587, 74, 74, 74, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 82, 587, 587, 587, 587, 587, 82, - 82, 82, 82, 587, 82, 82, 82, 85, 587, 587, - 587, 587, 587, 85, 85, 85, 587, 587, 85, 85, - 85, 87, 587, 587, 87, 87, 87, 87, 87, 87, - 587, 587, 87, 87, 87, 97, 97, 587, 587, 587, - 97, 123, 587, 587, 123, 123, 123, 123, 123, 123, - 587, 587, 123, 123, 123, 127, 587, 587, 127, 127, - 127, 127, 127, 127, 587, 127, 587, 127, 127, 135, - - 587, 587, 135, 587, 135, 135, 135, 135, 135, 587, - 135, 135, 135, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 141, 141, 587, - 141, 587, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 148, 148, 587, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 149, - 587, 587, 587, 587, 587, 149, 149, 149, 587, 587, - 149, 149, 149, 88, 587, 587, 88, 88, 88, 88, - 88, 88, 587, 587, 88, 88, 88, 157, 157, 587, - - 587, 587, 157, 159, 159, 159, 587, 587, 587, 159, - 124, 587, 587, 124, 124, 124, 124, 124, 124, 587, - 587, 124, 124, 124, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 192, 192, - 587, 587, 587, 192, 198, 198, 198, 587, 587, 587, - 198, 228, 228, 587, 587, 587, 228, 229, 229, 587, - 587, 587, 229, 233, 233, 587, 587, 587, 233, 235, - 235, 235, 587, 587, 587, 235, 271, 271, 587, 587, - 587, 271, 273, 273, 587, 587, 587, 273, 274, 274, - 587, 587, 587, 274, 276, 276, 276, 587, 587, 587, - - 276, 280, 280, 280, 280, 587, 587, 587, 280, 311, - 311, 587, 587, 587, 311, 312, 312, 587, 587, 587, - 312, 313, 313, 587, 587, 587, 313, 325, 325, 325, - 587, 587, 587, 325, 326, 326, 326, 326, 587, 587, - 587, 326, 363, 363, 587, 587, 587, 363, 364, 364, - 587, 587, 587, 364, 380, 380, 380, 587, 587, 587, - 380, 381, 381, 381, 381, 587, 587, 587, 381, 410, - 410, 587, 587, 587, 410, 414, 587, 414, 414, 587, - 587, 587, 414, 432, 432, 432, 587, 587, 587, 432, - 433, 433, 433, 433, 587, 587, 587, 433, 467, 467, - - 587, 587, 587, 467, 468, 587, 468, 468, 587, 587, - 587, 468, 484, 484, 484, 587, 587, 587, 484, 485, - 485, 485, 587, 587, 587, 587, 485, 496, 587, 587, - 496, 587, 587, 496, 496, 496, 587, 587, 496, 496, - 496, 499, 587, 587, 499, 587, 587, 499, 499, 499, - 587, 587, 499, 499, 499, 509, 509, 587, 587, 587, - 509, 510, 587, 510, 510, 587, 587, 587, 510, 526, - 526, 587, 587, 587, 587, 526, 532, 532, 532, 532, - 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, - 545, 545, 587, 587, 587, 545, 546, 587, 546, 546, - - 587, 587, 587, 546, 563, 563, 587, 587, 587, 563, - 564, 587, 564, 587, 587, 587, 587, 564, 579, 579, - 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, - 579, 579, 13, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587 - + 82, 588, 588, 588, 588, 588, 82, 82, 82, 82, + 588, 82, 82, 82, 85, 588, 588, 588, 588, 588, + 85, 85, 85, 588, 588, 85, 85, 85, 87, 588, + 588, 87, 87, 87, 87, 87, 87, 588, 588, 87, + 87, 87, 97, 97, 588, 588, 588, 97, 123, 588, + 588, 123, 123, 123, 123, 123, 123, 588, 588, 123, + 123, 123, 127, 588, 588, 127, 127, 127, 127, 127, + 127, 588, 127, 588, 127, 127, 135, 588, 588, 135, + 588, 135, 135, 135, 135, 135, 588, 135, 135, 135, + + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 141, 141, 588, 141, 588, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 148, 148, 588, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 149, 588, 588, 588, + 588, 588, 149, 149, 149, 588, 588, 149, 149, 149, + 88, 588, 588, 88, 88, 88, 88, 88, 88, 588, + 588, 88, 88, 88, 157, 157, 588, 588, 588, 157, + 159, 159, 159, 588, 588, 588, 159, 124, 588, 588, + + 124, 124, 124, 124, 124, 124, 588, 588, 124, 124, + 124, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 192, 192, 588, 588, 588, + 192, 198, 198, 198, 588, 588, 588, 198, 228, 228, + 588, 588, 588, 228, 229, 229, 588, 588, 588, 229, + 233, 233, 588, 588, 588, 233, 235, 235, 235, 588, + 588, 588, 235, 271, 271, 588, 588, 588, 271, 273, + 273, 588, 588, 588, 273, 274, 274, 588, 588, 588, + 274, 276, 276, 276, 588, 588, 588, 276, 280, 280, + 280, 280, 588, 588, 588, 280, 311, 311, 588, 588, + + 588, 311, 312, 312, 588, 588, 588, 312, 313, 313, + 588, 588, 588, 313, 325, 325, 325, 588, 588, 588, + 325, 326, 326, 326, 326, 588, 588, 588, 326, 363, + 363, 588, 588, 588, 363, 364, 364, 588, 588, 588, + 364, 380, 380, 380, 588, 588, 588, 380, 381, 381, + 381, 381, 588, 588, 588, 381, 410, 410, 588, 588, + 588, 410, 414, 588, 414, 414, 588, 588, 588, 414, + 432, 432, 432, 588, 588, 588, 432, 433, 433, 433, + 433, 588, 588, 588, 433, 467, 467, 588, 588, 588, + 467, 468, 588, 468, 468, 588, 588, 588, 468, 484, + + 484, 484, 588, 588, 588, 484, 485, 485, 485, 588, + 588, 588, 588, 485, 496, 588, 588, 496, 496, 588, + 496, 496, 496, 588, 588, 496, 496, 496, 500, 588, + 588, 500, 500, 588, 500, 500, 500, 588, 588, 500, + 500, 500, 510, 510, 588, 588, 588, 510, 511, 588, + 511, 511, 588, 588, 588, 511, 527, 527, 588, 588, + 588, 588, 527, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 546, 546, 588, + 588, 588, 546, 547, 588, 547, 547, 588, 588, 588, + 547, 564, 564, 588, 588, 588, 564, 565, 588, 565, + + 588, 588, 588, 588, 565, 580, 580, 580, 580, 580, + 580, 580, 580, 580, 580, 580, 580, 580, 580, 13, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588 } ; -static yyconst short int yy_chk[3699] = +static yyconst short int yy_chk[3686] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -973,407 +971,405 @@ static yyconst short int yy_chk[3699] = 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, 3, 20, 2, 2, - 3, 4, 60, 60, 4, 4, 5, 5, 5, 3, - 5, 68, 68, 40, 4, 64, 5, 11, 11, 11, - 11, 20, 52, 2, 2, 66, 115, 2, 5, 5, - - 40, 6, 6, 6, 2, 6, 82, 2, 64, 52, - 70, 6, 12, 12, 12, 12, 25, 25, 66, 116, - 25, 25, 5, 6, 6, 73, 73, 3, 73, 584, - 82, 116, 4, 11, 71, 106, 106, 263, 25, 27, - 27, 27, 27, 27, 27, 27, 27, 6, 7, 7, - 7, 41, 7, 115, 129, 129, 70, 263, 12, 98, - 25, 28, 28, 28, 28, 28, 28, 39, 98, 39, - 39, 39, 39, 39, 39, 39, 39, 108, 71, 41, - 41, 106, 108, 41, 96, 96, 96, 96, 96, 96, - 41, 133, 133, 41, 7, 7, 7, 7, 7, 7, - - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 50, 8, 579, 50, 50, - 50, 50, 50, 50, 50, 50, 80, 80, 80, 80, - 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, - 81, 81, 117, 126, 144, 119, 145, 145, 126, 90, - 90, 90, 90, 90, 90, 90, 90, 119, 8, 8, + 1, 1, 1, 1, 1, 2, 3, 4, 115, 2, + 3, 4, 70, 5, 5, 5, 120, 5, 71, 3, + 4, 20, 120, 5, 11, 11, 11, 11, 6, 6, + 6, 41, 6, 2, 2, 5, 5, 2, 6, 12, + + 12, 12, 12, 64, 2, 20, 52, 2, 41, 66, + 6, 6, 60, 60, 68, 68, 25, 25, 70, 5, + 25, 25, 71, 52, 98, 115, 64, 3, 4, 118, + 11, 143, 66, 98, 6, 7, 7, 7, 25, 7, + 73, 73, 263, 73, 118, 12, 27, 27, 27, 27, + 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, + 25, 40, 263, 40, 40, 40, 40, 40, 40, 40, + 40, 106, 106, 585, 108, 126, 42, 143, 82, 108, + 126, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, + + 8, 8, 82, 8, 42, 42, 129, 129, 42, 96, + 96, 96, 96, 96, 96, 42, 50, 106, 42, 50, + 50, 50, 50, 50, 50, 50, 50, 80, 80, 80, + 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, + 81, 81, 81, 117, 191, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 90, 118, 117, 120, 9, 9, 9, 144, 170, - 120, 51, 51, 103, 453, 51, 51, 118, 103, 9, - - 159, 103, 170, 103, 140, 140, 58, 58, 58, 159, - 58, 143, 177, 51, 58, 176, 58, 177, 183, 180, - 179, 180, 9, 10, 10, 10, 10, 10, 58, 58, - 191, 183, 10, 10, 10, 51, 179, 84, 453, 84, - 84, 84, 181, 84, 84, 136, 10, 84, 136, 136, - 140, 568, 58, 198, 191, 136, 181, 143, 187, 206, - 84, 84, 198, 565, 176, 195, 195, 195, 136, 10, - 19, 94, 94, 94, 94, 94, 94, 94, 94, 220, - 19, 206, 267, 19, 19, 19, 19, 19, 19, 19, - 19, 26, 187, 26, 26, 26, 26, 26, 26, 26, - - 26, 26, 221, 221, 214, 26, 26, 26, 26, 26, - 214, 207, 563, 87, 87, 207, 267, 87, 87, 202, - 202, 202, 202, 202, 202, 26, 223, 26, 26, 26, - 26, 26, 26, 31, 220, 87, 248, 549, 224, 31, - 548, 223, 31, 31, 224, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 87, 248, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 33, 33, - - 33, 33, 33, 33, 33, 33, 33, 306, 371, 371, - 33, 33, 33, 33, 33, 95, 95, 95, 95, 95, - 95, 95, 95, 306, 190, 109, 190, 190, 190, 190, - 190, 190, 33, 33, 33, 33, 33, 33, 38, 38, - 38, 38, 38, 235, 38, 38, 151, 296, 38, 546, - 151, 296, 235, 109, 109, 264, 151, 109, 190, 262, - 38, 38, 38, 43, 109, 264, 545, 109, 151, 151, - 123, 123, 304, 43, 123, 123, 43, 43, 43, 43, - 43, 43, 43, 43, 122, 122, 122, 122, 122, 122, - 122, 122, 123, 132, 132, 132, 132, 132, 132, 132, - - 132, 182, 305, 222, 295, 182, 237, 237, 258, 239, - 239, 182, 305, 258, 123, 265, 237, 43, 59, 239, - 265, 262, 304, 182, 182, 299, 295, 222, 59, 421, - 421, 59, 59, 59, 59, 59, 59, 59, 59, 75, - 359, 75, 75, 75, 222, 75, 75, 299, 541, 75, - 186, 186, 186, 186, 186, 186, 186, 186, 354, 532, - 276, 75, 75, 75, 86, 530, 86, 86, 86, 276, - 86, 86, 280, 359, 86, 245, 245, 245, 245, 245, - 245, 280, 186, 356, 281, 281, 86, 86, 86, 89, - 526, 89, 89, 89, 281, 89, 89, 522, 356, 89, - - 194, 194, 194, 194, 194, 194, 194, 194, 194, 354, - 451, 89, 89, 89, 91, 91, 91, 91, 91, 91, - 91, 91, 403, 494, 403, 300, 91, 91, 91, 91, - 91, 199, 199, 199, 199, 199, 199, 199, 199, 201, - 201, 201, 201, 201, 201, 201, 201, 300, 91, 91, - 91, 91, 91, 91, 99, 99, 99, 99, 99, 99, - 99, 99, 282, 282, 451, 341, 99, 99, 99, 99, - 99, 204, 282, 204, 204, 204, 204, 204, 204, 204, - 204, 347, 494, 351, 510, 284, 284, 341, 99, 99, - 99, 99, 99, 99, 125, 284, 125, 125, 125, 351, - - 125, 125, 509, 347, 125, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 495, 301, 125, 125, 125, 150, - 493, 150, 150, 150, 301, 150, 150, 492, 366, 150, - 236, 236, 236, 236, 236, 236, 236, 236, 366, 435, - 435, 150, 150, 150, 152, 491, 152, 152, 152, 152, - 152, 152, 152, 152, 238, 238, 238, 238, 238, 238, - 238, 238, 242, 242, 242, 242, 242, 242, 242, 242, - 650, 307, 242, 436, 436, 650, 349, 490, 152, 153, - 307, 153, 153, 153, 153, 153, 153, 153, 153, 244, - 244, 244, 244, 244, 244, 244, 244, 247, 349, 247, - - 247, 247, 247, 247, 247, 247, 247, 290, 290, 290, - 290, 290, 290, 153, 154, 325, 154, 154, 154, 154, - 154, 154, 154, 154, 325, 397, 485, 266, 266, 266, - 266, 266, 266, 266, 266, 270, 326, 270, 270, 270, - 270, 270, 270, 468, 357, 326, 452, 397, 154, 155, - 467, 155, 155, 155, 155, 155, 155, 155, 155, 266, - 357, 452, 398, 155, 155, 155, 155, 155, 277, 270, - 277, 277, 277, 277, 277, 277, 277, 277, 317, 317, - 317, 317, 317, 317, 398, 155, 155, 155, 155, 155, - 155, 158, 158, 158, 158, 158, 158, 158, 158, 158, - - 355, 439, 439, 158, 158, 158, 158, 158, 278, 355, - 278, 278, 278, 278, 278, 278, 278, 278, 336, 336, - 336, 336, 336, 336, 463, 158, 158, 158, 158, 158, - 158, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 448, 440, 444, 160, 160, 160, 160, 160, 279, - 368, 279, 279, 279, 279, 279, 279, 279, 279, 446, - 368, 454, 402, 402, 440, 444, 160, 160, 160, 160, - 160, 160, 161, 161, 161, 161, 161, 161, 161, 161, - 443, 446, 475, 475, 161, 161, 161, 161, 161, 283, - 283, 283, 283, 283, 283, 283, 283, 289, 289, 289, - - 289, 289, 289, 289, 289, 454, 161, 161, 161, 161, - 161, 161, 188, 402, 188, 188, 188, 188, 188, 188, - 188, 188, 287, 287, 287, 287, 287, 287, 287, 287, - 442, 292, 287, 292, 292, 292, 292, 292, 292, 292, - 292, 486, 486, 517, 517, 441, 188, 189, 428, 189, - 189, 189, 189, 189, 189, 189, 189, 314, 314, 314, - 314, 314, 314, 314, 314, 316, 316, 316, 316, 316, - 316, 316, 316, 320, 320, 320, 320, 320, 320, 320, - 320, 189, 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 380, 414, 487, 200, 200, 200, 200, - - 200, 319, 380, 319, 319, 319, 319, 319, 319, 319, - 319, 374, 374, 374, 374, 374, 374, 487, 200, 200, - 200, 200, 200, 200, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 381, 410, 489, 203, 203, 203, - 203, 203, 322, 381, 322, 322, 322, 322, 322, 322, - 322, 322, 534, 534, 552, 552, 327, 327, 489, 203, - 203, 203, 203, 203, 203, 225, 327, 225, 225, 225, - 225, 225, 225, 225, 225, 323, 415, 323, 323, 323, - 323, 323, 323, 323, 323, 324, 415, 324, 324, 324, - 324, 324, 324, 391, 391, 391, 391, 391, 391, 225, - - 226, 405, 226, 226, 226, 226, 226, 226, 226, 226, - 328, 328, 329, 329, 329, 329, 329, 329, 329, 329, - 328, 330, 330, 333, 333, 333, 333, 333, 333, 333, - 333, 330, 456, 333, 226, 227, 401, 227, 227, 227, - 227, 227, 227, 227, 227, 335, 335, 335, 335, 335, - 335, 335, 335, 338, 416, 338, 338, 338, 338, 338, - 338, 338, 338, 400, 416, 399, 456, 600, 600, 227, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 396, 395, 527, 243, 243, 243, 243, 243, - - 536, 358, 358, 358, 358, 358, 358, 358, 358, 362, - 362, 362, 362, 362, 362, 362, 527, 243, 243, 243, - 243, 243, 243, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 358, 536, 529, 246, 246, 246, 246, - 246, 418, 362, 365, 365, 365, 365, 365, 365, 365, - 365, 418, 394, 393, 364, 382, 382, 529, 246, 246, - 246, 246, 246, 246, 268, 382, 268, 268, 268, 268, - 268, 268, 268, 268, 367, 367, 367, 367, 367, 367, - 367, 367, 373, 373, 373, 373, 373, 373, 373, 373, - 383, 383, 424, 424, 424, 424, 424, 424, 268, 269, - - 383, 269, 269, 269, 269, 269, 269, 269, 269, 376, - 363, 376, 376, 376, 376, 376, 376, 376, 376, 377, - 432, 377, 377, 377, 377, 377, 377, 377, 377, 432, - 505, 505, 505, 269, 275, 275, 275, 275, 275, 275, - 275, 275, 275, 433, 449, 353, 275, 275, 275, 275, - 275, 378, 433, 378, 378, 378, 378, 378, 378, 378, - 378, 352, 505, 346, 449, 345, 449, 449, 275, 275, - 275, 275, 275, 275, 285, 285, 285, 285, 285, 285, - 285, 285, 285, 285, 285, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 553, 555, 566, 288, - - 288, 288, 288, 288, 379, 469, 379, 379, 379, 379, - 379, 379, 379, 379, 344, 469, 343, 496, 553, 555, - 566, 288, 288, 288, 288, 288, 288, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 340, 339, 321, - 291, 291, 291, 291, 291, 384, 384, 384, 384, 384, - 384, 384, 384, 390, 390, 390, 390, 390, 390, 390, - 390, 496, 291, 291, 291, 291, 291, 291, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 385, 385, 388, - 388, 388, 388, 388, 388, 388, 388, 385, 392, 388, - 392, 392, 392, 392, 392, 392, 392, 392, 570, 313, - - 312, 308, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 404, 411, 311, 411, 411, 411, 411, 411, 411, - 411, 411, 417, 417, 417, 417, 417, 417, 417, 417, - 303, 404, 570, 404, 404, 309, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 412, 302, 412, 412, 412, - 412, 412, 412, 412, 412, 404, 413, 470, 413, 413, - 413, 413, 413, 413, 413, 413, 298, 470, 297, 310, - 315, 472, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 472, 294, 293, 315, 315, 315, 315, 315, 423, - 423, 423, 423, 423, 423, 423, 423, 427, 427, 427, - - 427, 427, 427, 427, 427, 274, 315, 315, 315, 315, - 315, 315, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 484, 273, 272, 318, 318, 318, 318, 318, 426, - 484, 426, 426, 426, 426, 426, 426, 426, 426, 497, - 461, 271, 461, 461, 461, 261, 318, 318, 318, 318, - 318, 318, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 334, 334, 334, 334, 334, 334, 334, - 334, 334, 334, 334, 461, 260, 259, 334, 334, 334, - 334, 334, 429, 497, 429, 429, 429, 429, 429, 429, - 429, 429, 478, 478, 478, 478, 478, 478, 257, 334, - - 334, 334, 334, 334, 334, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 434, 434, 256, 255, 337, 337, - 337, 337, 337, 430, 434, 430, 430, 430, 430, 430, - 430, 430, 430, 499, 520, 520, 520, 520, 520, 520, - 337, 337, 337, 337, 337, 337, 360, 360, 360, 360, - 360, 360, 360, 360, 360, 431, 254, 431, 431, 431, - 431, 431, 431, 450, 450, 455, 455, 455, 455, 455, - 455, 455, 455, 253, 252, 251, 450, 499, 250, 360, - 361, 361, 361, 361, 361, 361, 361, 361, 361, 462, - 462, 462, 462, 462, 462, 462, 462, 455, 464, 511, - - 464, 464, 464, 464, 464, 464, 464, 464, 234, 511, - 233, 232, 231, 361, 369, 229, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 372, 512, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 512, 228, 219, 372, - 372, 372, 372, 372, 465, 514, 465, 465, 465, 465, - 465, 465, 465, 465, 218, 514, 217, 216, 215, 213, - 212, 372, 372, 372, 372, 372, 372, 375, 375, 375, - 375, 375, 375, 375, 375, 375, 211, 210, 209, 375, - 375, 375, 375, 375, 466, 208, 466, 466, 466, 466, - 466, 466, 471, 471, 471, 471, 471, 471, 471, 471, - - 205, 375, 375, 375, 375, 375, 375, 386, 386, 386, - 386, 386, 386, 386, 386, 386, 386, 386, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, 197, 196, - 193, 192, 389, 389, 389, 389, 389, 477, 477, 477, - 477, 477, 477, 477, 477, 481, 481, 481, 481, 481, - 481, 481, 481, 481, 389, 389, 389, 389, 389, 389, - 406, 547, 406, 406, 406, 406, 406, 406, 406, 406, - 480, 547, 480, 480, 480, 480, 480, 480, 480, 480, - 482, 482, 482, 482, 482, 482, 482, 482, 482, 185, - 184, 178, 175, 174, 406, 407, 173, 407, 407, 407, - - 407, 407, 407, 407, 407, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 556, 556, 172, 171, 498, 169, - 168, 498, 498, 167, 498, 498, 166, 556, 498, 407, - 408, 165, 408, 408, 408, 408, 408, 408, 408, 408, - 498, 498, 498, 506, 164, 506, 506, 506, 506, 506, - 506, 506, 506, 500, 163, 162, 500, 500, 157, 500, - 500, 156, 149, 500, 408, 409, 148, 409, 409, 409, - 409, 409, 409, 409, 409, 500, 500, 500, 147, 146, - 504, 504, 504, 504, 504, 504, 504, 504, 507, 142, - 507, 507, 507, 507, 507, 507, 507, 507, 141, 409, - - 419, 139, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 422, 504, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 135, 128, 124, 422, 422, 422, 422, 422, - 508, 121, 508, 508, 508, 508, 508, 508, 508, 508, - 525, 525, 525, 525, 525, 525, 525, 422, 422, 422, - 422, 422, 422, 425, 425, 425, 425, 425, 425, 425, - 425, 425, 114, 113, 112, 425, 425, 425, 425, 425, - 513, 513, 513, 513, 513, 513, 513, 513, 519, 519, - 519, 519, 519, 519, 519, 519, 111, 425, 425, 425, - 425, 425, 425, 437, 437, 437, 437, 437, 437, 437, - - 437, 437, 437, 457, 110, 457, 457, 457, 457, 457, - 457, 457, 457, 521, 105, 521, 521, 521, 521, 521, - 521, 521, 521, 523, 523, 523, 523, 523, 523, 523, - 523, 523, 104, 102, 101, 97, 93, 457, 458, 92, - 458, 458, 458, 458, 458, 458, 458, 458, 524, 524, - 524, 524, 524, 524, 524, 524, 524, 535, 535, 535, - 535, 535, 535, 535, 535, 577, 577, 577, 577, 577, - 577, 88, 458, 459, 85, 459, 459, 459, 459, 459, - 459, 459, 459, 83, 78, 77, 76, 74, 539, 535, - 539, 539, 539, 539, 539, 539, 540, 540, 540, 540, - - 540, 540, 540, 540, 69, 62, 55, 459, 460, 49, - 460, 460, 460, 460, 460, 460, 460, 460, 48, 47, - 46, 542, 539, 542, 542, 542, 542, 542, 542, 542, - 542, 543, 45, 543, 543, 543, 543, 543, 543, 543, - 543, 44, 460, 473, 37, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 476, 36, 476, 476, 476, 476, - 476, 476, 476, 476, 476, 35, 34, 32, 476, 476, - 476, 476, 476, 544, 29, 544, 544, 544, 544, 544, - 544, 560, 560, 560, 560, 560, 560, 560, 560, 23, - 476, 476, 476, 476, 476, 476, 479, 479, 479, 479, - - 479, 479, 479, 479, 17, 15, 14, 13, 479, 479, - 479, 479, 479, 550, 0, 550, 550, 550, 550, 550, - 550, 550, 550, 0, 0, 0, 0, 0, 0, 0, - 479, 479, 479, 479, 479, 479, 501, 0, 501, 501, - 501, 501, 501, 501, 501, 501, 561, 561, 561, 561, - 561, 561, 561, 561, 562, 562, 562, 562, 562, 562, - 562, 562, 569, 569, 569, 569, 569, 569, 569, 569, - 501, 502, 0, 502, 502, 502, 502, 502, 502, 502, - 502, 0, 573, 0, 573, 573, 573, 573, 573, 573, - 0, 0, 0, 0, 569, 575, 575, 575, 575, 575, - - 575, 575, 575, 0, 0, 502, 503, 0, 503, 503, - 503, 503, 503, 503, 503, 503, 573, 576, 576, 576, - 576, 576, 576, 576, 576, 0, 0, 0, 0, 0, - 581, 581, 581, 581, 581, 581, 581, 581, 0, 0, - 503, 515, 0, 515, 515, 515, 515, 515, 515, 515, - 515, 515, 518, 0, 518, 518, 518, 518, 518, 518, - 518, 518, 581, 0, 0, 0, 518, 518, 518, 518, - 518, 0, 582, 582, 582, 582, 582, 582, 582, 582, - 583, 583, 583, 583, 583, 583, 583, 583, 518, 518, - 518, 518, 518, 518, 537, 0, 537, 537, 537, 537, - - 537, 537, 537, 537, 582, 0, 0, 0, 0, 0, - 0, 0, 583, 585, 585, 585, 585, 585, 585, 585, - 585, 586, 586, 586, 586, 586, 586, 0, 537, 538, - 0, 538, 538, 538, 538, 538, 538, 538, 538, 0, - 0, 0, 0, 0, 0, 585, 0, 0, 0, 0, - 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 538, 557, 0, 557, 557, 557, 557, - 557, 557, 557, 557, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 9, 9, 9, 9, 9, 191, 116, + 133, 133, 9, 9, 9, 119, 145, 145, 51, 51, + 103, 116, 51, 51, 117, 103, 9, 119, 103, 159, + 103, 140, 140, 58, 58, 58, 144, 58, 159, 198, + + 51, 58, 176, 58, 170, 180, 580, 180, 198, 9, + 10, 10, 10, 10, 10, 58, 58, 170, 177, 10, + 10, 10, 51, 177, 84, 179, 84, 84, 84, 181, + 84, 84, 136, 10, 84, 136, 136, 140, 214, 58, + 144, 179, 136, 181, 214, 187, 206, 84, 84, 569, + 207, 176, 566, 183, 207, 136, 10, 19, 90, 90, + 90, 90, 90, 90, 90, 90, 183, 19, 206, 220, + 19, 19, 19, 19, 19, 19, 19, 19, 26, 187, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 564, + 90, 267, 26, 26, 26, 26, 26, 195, 195, 195, + + 87, 87, 221, 221, 87, 87, 202, 202, 202, 202, + 202, 202, 26, 223, 26, 26, 26, 26, 26, 26, + 32, 224, 87, 248, 220, 267, 32, 224, 223, 32, + 32, 550, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 87, 248, 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, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 371, 371, 304, 34, 34, 34, + + 34, 34, 94, 94, 94, 94, 94, 94, 94, 94, + 95, 95, 95, 95, 95, 95, 95, 95, 262, 34, + 34, 34, 34, 34, 34, 39, 39, 39, 39, 39, + 235, 39, 39, 549, 264, 39, 547, 123, 123, 235, + 258, 123, 123, 109, 264, 258, 304, 39, 39, 39, + 43, 122, 122, 122, 122, 122, 122, 122, 122, 123, + 43, 546, 295, 43, 43, 43, 43, 43, 43, 43, + 43, 109, 109, 151, 265, 109, 222, 151, 542, 265, + 262, 123, 109, 151, 295, 109, 132, 132, 132, 132, + 132, 132, 132, 132, 276, 151, 151, 296, 306, 533, + + 222, 296, 531, 276, 43, 59, 186, 186, 186, 186, + 186, 186, 186, 186, 306, 59, 451, 222, 59, 59, + 59, 59, 59, 59, 59, 59, 75, 527, 75, 75, + 75, 280, 75, 75, 237, 237, 75, 182, 186, 523, + 280, 182, 239, 239, 237, 511, 305, 182, 75, 75, + 75, 86, 239, 86, 86, 86, 305, 86, 86, 182, + 182, 86, 190, 299, 190, 190, 190, 190, 190, 190, + 451, 281, 281, 86, 86, 86, 89, 359, 89, 89, + 89, 281, 89, 89, 510, 299, 89, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 190, 495, 89, 89, + + 89, 91, 91, 91, 91, 91, 91, 91, 91, 403, + 359, 403, 300, 91, 91, 91, 91, 91, 199, 199, + 199, 199, 199, 199, 199, 199, 201, 201, 201, 201, + 201, 201, 201, 201, 300, 91, 91, 91, 91, 91, + 91, 99, 99, 99, 99, 99, 99, 99, 99, 282, + 282, 493, 341, 99, 99, 99, 99, 99, 204, 282, + 204, 204, 204, 204, 204, 204, 204, 204, 245, 245, + 245, 245, 245, 245, 341, 99, 99, 99, 99, 99, + 99, 125, 492, 125, 125, 125, 491, 125, 125, 421, + 421, 125, 230, 230, 230, 230, 230, 230, 230, 230, + + 230, 284, 284, 125, 125, 125, 150, 490, 150, 150, + 150, 284, 150, 150, 485, 366, 150, 236, 236, 236, + 236, 236, 236, 236, 236, 366, 435, 435, 150, 150, + 150, 152, 468, 152, 152, 152, 152, 152, 152, 152, + 152, 238, 238, 238, 238, 238, 238, 238, 238, 242, + 242, 242, 242, 242, 242, 242, 242, 467, 301, 242, + 436, 436, 354, 347, 463, 152, 153, 301, 153, 153, + 153, 153, 153, 153, 153, 153, 244, 244, 244, 244, + 244, 244, 244, 244, 247, 347, 247, 247, 247, 247, + 247, 247, 247, 247, 290, 290, 290, 290, 290, 290, + + 153, 154, 307, 154, 154, 154, 154, 154, 154, 154, + 154, 307, 349, 354, 266, 266, 266, 266, 266, 266, + 266, 266, 270, 325, 270, 270, 270, 270, 270, 270, + 448, 351, 325, 356, 349, 154, 155, 443, 155, 155, + 155, 155, 155, 155, 155, 155, 266, 351, 356, 397, + 155, 155, 155, 155, 155, 277, 270, 277, 277, 277, + 277, 277, 277, 277, 277, 317, 317, 317, 317, 317, + 317, 397, 155, 155, 155, 155, 155, 155, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 326, 442, 398, + 158, 158, 158, 158, 158, 278, 326, 278, 278, 278, + + 278, 278, 278, 278, 278, 336, 336, 336, 336, 336, + 336, 398, 158, 158, 158, 158, 158, 158, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 355, 441, + 357, 160, 160, 160, 160, 160, 279, 355, 279, 279, + 279, 279, 279, 279, 279, 279, 357, 374, 374, 374, + 374, 374, 374, 160, 160, 160, 160, 160, 160, 161, + 161, 161, 161, 161, 161, 161, 161, 439, 439, 494, + 440, 161, 161, 161, 161, 161, 283, 283, 283, 283, + 283, 283, 283, 283, 289, 289, 289, 289, 289, 289, + 289, 289, 440, 161, 161, 161, 161, 161, 161, 188, + + 428, 188, 188, 188, 188, 188, 188, 188, 188, 287, + 287, 287, 287, 287, 287, 287, 287, 452, 292, 287, + 292, 292, 292, 292, 292, 292, 292, 292, 494, 402, + 402, 414, 452, 188, 189, 410, 189, 189, 189, 189, + 189, 189, 189, 189, 314, 314, 314, 314, 314, 314, + 314, 314, 316, 316, 316, 316, 316, 316, 316, 316, + 320, 320, 320, 320, 320, 320, 320, 320, 189, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 402, 444, 446, 200, 200, 200, 200, 200, 319, 368, + 319, 319, 319, 319, 319, 319, 319, 319, 405, 368, + + 401, 453, 453, 444, 446, 200, 200, 200, 200, 200, + 200, 203, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 380, 475, 475, 203, 203, 203, 203, 203, 322, + 380, 322, 322, 322, 322, 322, 322, 322, 322, 454, + 454, 486, 486, 327, 327, 453, 203, 203, 203, 203, + 203, 203, 225, 327, 225, 225, 225, 225, 225, 225, + 225, 225, 323, 400, 323, 323, 323, 323, 323, 323, + 323, 323, 324, 381, 324, 324, 324, 324, 324, 324, + 518, 518, 381, 454, 399, 456, 225, 226, 396, 226, + 226, 226, 226, 226, 226, 226, 226, 328, 328, 329, + + 329, 329, 329, 329, 329, 329, 329, 328, 330, 330, + 333, 333, 333, 333, 333, 333, 333, 333, 330, 456, + 333, 226, 227, 395, 227, 227, 227, 227, 227, 227, + 227, 227, 335, 335, 335, 335, 335, 335, 335, 335, + 338, 394, 338, 338, 338, 338, 338, 338, 338, 338, + 391, 391, 391, 391, 391, 391, 227, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 535, + 535, 487, 243, 243, 243, 243, 243, 537, 358, 358, + 358, 358, 358, 358, 358, 358, 362, 362, 362, 362, + + 362, 362, 362, 487, 243, 243, 243, 243, 243, 243, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 358, 537, 489, 246, 246, 246, 246, 246, 415, 362, + 365, 365, 365, 365, 365, 365, 365, 365, 415, 553, + 553, 393, 382, 382, 489, 246, 246, 246, 246, 246, + 246, 268, 382, 268, 268, 268, 268, 268, 268, 268, + 268, 367, 367, 367, 367, 367, 367, 367, 367, 373, + 373, 373, 373, 373, 373, 373, 373, 383, 383, 424, + 424, 424, 424, 424, 424, 268, 269, 383, 269, 269, + 269, 269, 269, 269, 269, 269, 376, 416, 376, 376, + + 376, 376, 376, 376, 376, 376, 377, 416, 377, 377, + 377, 377, 377, 377, 377, 377, 364, 571, 450, 450, + 269, 275, 275, 275, 275, 275, 275, 275, 275, 275, + 449, 450, 528, 275, 275, 275, 275, 275, 378, 418, + 378, 378, 378, 378, 378, 378, 378, 378, 363, 418, + 449, 571, 449, 449, 528, 275, 275, 275, 275, 275, + 275, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 288, 288, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 432, 353, 530, 288, 288, 288, 288, + 288, 379, 432, 379, 379, 379, 379, 379, 379, 379, + + 379, 478, 478, 478, 478, 478, 478, 530, 288, 288, + 288, 288, 288, 288, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 601, 601, 554, 291, 291, 291, + 291, 291, 384, 384, 384, 384, 384, 384, 384, 384, + 390, 390, 390, 390, 390, 390, 390, 390, 554, 291, + 291, 291, 291, 291, 291, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 385, 385, 388, 388, 388, 388, + 388, 388, 388, 388, 385, 392, 388, 392, 392, 392, + 392, 392, 392, 392, 392, 506, 506, 506, 308, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 404, 411, + + 352, 411, 411, 411, 411, 411, 411, 411, 411, 417, + 417, 417, 417, 417, 417, 417, 417, 506, 404, 346, + 404, 404, 309, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 412, 556, 412, 412, 412, 412, 412, 412, + 412, 412, 404, 413, 433, 413, 413, 413, 413, 413, + 413, 413, 413, 433, 345, 556, 310, 315, 469, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 469, 344, + 567, 315, 315, 315, 315, 315, 423, 423, 423, 423, + 423, 423, 423, 423, 427, 427, 427, 427, 427, 427, + 427, 427, 567, 315, 315, 315, 315, 315, 315, 318, + + 318, 318, 318, 318, 318, 318, 318, 318, 484, 343, + 340, 318, 318, 318, 318, 318, 426, 484, 426, 426, + 426, 426, 426, 426, 426, 426, 339, 461, 321, 461, + 461, 461, 313, 318, 318, 318, 318, 318, 318, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, + 334, 461, 312, 311, 334, 334, 334, 334, 334, 429, + 470, 429, 429, 429, 429, 429, 429, 429, 429, 651, + 470, 496, 496, 303, 651, 302, 334, 334, 334, 334, + 334, 334, 337, 337, 337, 337, 337, 337, 337, 337, + + 337, 434, 434, 298, 297, 337, 337, 337, 337, 337, + 430, 434, 430, 430, 430, 430, 430, 430, 430, 430, + 294, 293, 274, 273, 272, 496, 271, 337, 337, 337, + 337, 337, 337, 360, 360, 360, 360, 360, 360, 360, + 360, 360, 431, 261, 431, 431, 431, 431, 431, 431, + 455, 455, 455, 455, 455, 455, 455, 455, 462, 462, + 462, 462, 462, 462, 462, 462, 360, 361, 361, 361, + 361, 361, 361, 361, 361, 361, 260, 259, 257, 497, + 497, 464, 455, 464, 464, 464, 464, 464, 464, 464, + 464, 466, 472, 466, 466, 466, 466, 466, 466, 256, + + 361, 369, 472, 369, 369, 369, 369, 369, 369, 369, + 369, 369, 372, 255, 372, 372, 372, 372, 372, 372, + 372, 372, 372, 497, 254, 253, 372, 372, 372, 372, + 372, 465, 512, 465, 465, 465, 465, 465, 465, 465, + 465, 252, 512, 498, 498, 251, 250, 234, 372, 372, + 372, 372, 372, 372, 375, 375, 375, 375, 375, 375, + 375, 375, 375, 233, 232, 231, 375, 375, 375, 375, + 375, 471, 471, 471, 471, 471, 471, 471, 471, 477, + 477, 477, 477, 477, 477, 477, 477, 498, 375, 375, + 375, 375, 375, 375, 386, 386, 386, 386, 386, 386, + + 386, 386, 386, 386, 386, 389, 389, 389, 389, 389, + 389, 389, 389, 389, 389, 513, 229, 228, 219, 389, + 389, 389, 389, 389, 480, 513, 480, 480, 480, 480, + 480, 480, 480, 480, 500, 500, 218, 217, 515, 216, + 215, 389, 389, 389, 389, 389, 389, 406, 515, 406, + 406, 406, 406, 406, 406, 406, 406, 481, 481, 481, + 481, 481, 481, 481, 481, 481, 482, 482, 482, 482, + 482, 482, 482, 482, 482, 213, 212, 211, 500, 210, + 209, 406, 407, 208, 407, 407, 407, 407, 407, 407, + 407, 407, 483, 483, 483, 483, 483, 483, 483, 483, + + 483, 557, 557, 548, 205, 499, 197, 196, 193, 499, + 192, 499, 499, 548, 557, 499, 407, 408, 185, 408, + 408, 408, 408, 408, 408, 408, 408, 499, 499, 499, + 507, 184, 507, 507, 507, 507, 507, 507, 507, 507, + 501, 178, 175, 174, 501, 173, 501, 501, 172, 171, + 501, 408, 409, 169, 409, 409, 409, 409, 409, 409, + 409, 409, 501, 501, 501, 168, 167, 505, 505, 505, + 505, 505, 505, 505, 505, 508, 166, 508, 508, 508, + 508, 508, 508, 508, 508, 165, 409, 419, 164, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 422, 505, + + 422, 422, 422, 422, 422, 422, 422, 422, 422, 163, + 162, 157, 422, 422, 422, 422, 422, 509, 156, 509, + 509, 509, 509, 509, 509, 509, 509, 521, 521, 521, + 521, 521, 521, 149, 422, 422, 422, 422, 422, 422, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 148, + 147, 146, 425, 425, 425, 425, 425, 514, 514, 514, + 514, 514, 514, 514, 514, 520, 520, 520, 520, 520, + 520, 520, 520, 142, 425, 425, 425, 425, 425, 425, + 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, + 457, 141, 457, 457, 457, 457, 457, 457, 457, 457, + + 522, 139, 522, 522, 522, 522, 522, 522, 522, 522, + 524, 524, 524, 524, 524, 524, 524, 524, 524, 135, + 128, 124, 121, 114, 457, 458, 113, 458, 458, 458, + 458, 458, 458, 458, 458, 525, 525, 525, 525, 525, + 525, 525, 525, 525, 526, 526, 526, 526, 526, 526, + 526, 536, 536, 536, 536, 536, 536, 536, 536, 458, + 459, 112, 459, 459, 459, 459, 459, 459, 459, 459, + 111, 540, 110, 540, 540, 540, 540, 540, 540, 105, + 104, 102, 101, 536, 541, 541, 541, 541, 541, 541, + 541, 541, 97, 93, 459, 460, 92, 460, 460, 460, + + 460, 460, 460, 460, 460, 540, 543, 88, 543, 543, + 543, 543, 543, 543, 543, 543, 544, 85, 544, 544, + 544, 544, 544, 544, 544, 544, 83, 78, 77, 460, + 473, 76, 473, 473, 473, 473, 473, 473, 473, 473, + 473, 476, 74, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 69, 62, 55, 476, 476, 476, 476, 476, + 545, 49, 545, 545, 545, 545, 545, 545, 561, 561, + 561, 561, 561, 561, 561, 561, 48, 476, 476, 476, + 476, 476, 476, 479, 479, 479, 479, 479, 479, 479, + 479, 47, 46, 45, 44, 479, 479, 479, 479, 479, + + 551, 38, 551, 551, 551, 551, 551, 551, 551, 551, + 578, 578, 578, 578, 578, 578, 37, 479, 479, 479, + 479, 479, 479, 502, 36, 502, 502, 502, 502, 502, + 502, 502, 502, 562, 562, 562, 562, 562, 562, 562, + 562, 563, 563, 563, 563, 563, 563, 563, 563, 570, + 570, 570, 570, 570, 570, 570, 570, 502, 503, 35, + 503, 503, 503, 503, 503, 503, 503, 503, 33, 574, + 29, 574, 574, 574, 574, 574, 574, 23, 17, 15, + 14, 570, 576, 576, 576, 576, 576, 576, 576, 576, + 13, 0, 503, 504, 0, 504, 504, 504, 504, 504, + + 504, 504, 504, 574, 577, 577, 577, 577, 577, 577, + 577, 577, 0, 0, 0, 0, 0, 582, 582, 582, + 582, 582, 582, 582, 582, 0, 0, 504, 516, 0, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 519, + 0, 519, 519, 519, 519, 519, 519, 519, 519, 582, + 0, 0, 0, 519, 519, 519, 519, 519, 0, 583, + 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, + 584, 584, 584, 584, 584, 519, 519, 519, 519, 519, + 519, 538, 0, 538, 538, 538, 538, 538, 538, 538, + 538, 583, 0, 0, 0, 0, 0, 0, 0, 584, + + 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, + 587, 587, 587, 587, 0, 538, 539, 0, 539, 539, + 539, 539, 539, 539, 539, 539, 0, 0, 0, 0, + 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, + 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 539, 558, 0, 558, 558, 558, 558, 558, 558, 558, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 557, 558, + 0, 0, 0, 0, 0, 558, 559, 0, 559, 559, + 559, 559, 559, 559, 559, 559, 0, 0, 0, 0, - 0, 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 558, 559, 0, 559, 559, 559, 559, - 559, 559, 559, 559, 0, 0, 0, 0, 0, 0, + 559, 560, 0, 560, 560, 560, 560, 560, 560, 560, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 559, 571, - 0, 571, 571, 571, 571, 571, 571, 571, 571, 0, + 0, 0, 0, 0, 0, 560, 572, 0, 572, 572, + 572, 572, 572, 572, 572, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 572, 573, 0, 573, 573, 573, 573, 573, 573, 573, - 0, 0, 0, 571, 572, 0, 572, 572, 572, 572, - 572, 572, 572, 572, 0, 0, 0, 0, 0, 0, + 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 572, 588, - 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, - 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, - 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, + 0, 0, 0, 0, 0, 573, 589, 589, 589, 589, + 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, - 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 592, 0, 0, 0, 0, - - 0, 592, 592, 592, 0, 0, 592, 592, 592, 593, - 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, - 593, 593, 593, 594, 0, 0, 0, 0, 0, 594, - 594, 594, 594, 0, 594, 594, 594, 595, 0, 0, - 0, 0, 0, 595, 595, 595, 0, 0, 595, 595, - 595, 596, 0, 0, 596, 596, 596, 596, 596, 596, - 0, 0, 596, 596, 596, 597, 597, 0, 0, 0, - 597, 598, 0, 0, 598, 598, 598, 598, 598, 598, - 0, 0, 598, 598, 598, 599, 0, 0, 599, 599, - 599, 599, 599, 599, 0, 599, 0, 599, 599, 601, - - 0, 0, 601, 0, 601, 601, 601, 601, 601, 0, - 601, 601, 601, 602, 602, 602, 602, 602, 602, 602, - 602, 602, 602, 602, 602, 602, 602, 603, 603, 0, - 603, 0, 603, 603, 603, 603, 603, 603, 603, 603, - 603, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 605, 605, 0, 605, 605, - 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, - 0, 0, 0, 0, 0, 606, 606, 606, 0, 0, - 606, 606, 606, 607, 0, 0, 607, 607, 607, 607, - 607, 607, 0, 0, 607, 607, 607, 608, 608, 0, - - 0, 0, 608, 609, 609, 609, 0, 0, 0, 609, - 610, 0, 0, 610, 610, 610, 610, 610, 610, 0, - 0, 610, 610, 610, 611, 611, 611, 611, 611, 611, - 611, 611, 611, 611, 611, 611, 611, 611, 612, 612, - 0, 0, 0, 612, 613, 613, 613, 0, 0, 0, - 613, 614, 614, 0, 0, 0, 614, 615, 615, 0, - 0, 0, 615, 616, 616, 0, 0, 0, 616, 617, - 617, 617, 0, 0, 0, 617, 618, 618, 0, 0, - 0, 618, 619, 619, 0, 0, 0, 619, 620, 620, - 0, 0, 0, 620, 621, 621, 621, 0, 0, 0, - - 621, 622, 622, 622, 622, 0, 0, 0, 622, 623, - 623, 0, 0, 0, 623, 624, 624, 0, 0, 0, - 624, 625, 625, 0, 0, 0, 625, 626, 626, 626, - 0, 0, 0, 626, 627, 627, 627, 627, 0, 0, - 0, 627, 628, 628, 0, 0, 0, 628, 629, 629, - 0, 0, 0, 629, 630, 630, 630, 0, 0, 0, - 630, 631, 631, 631, 631, 0, 0, 0, 631, 632, - 632, 0, 0, 0, 632, 633, 0, 633, 633, 0, - 0, 0, 633, 634, 634, 634, 0, 0, 0, 634, - 635, 635, 635, 635, 0, 0, 0, 635, 636, 636, - - 0, 0, 0, 636, 637, 0, 637, 637, 0, 0, - 0, 637, 638, 638, 638, 0, 0, 0, 638, 639, - 639, 639, 0, 0, 0, 0, 639, 640, 0, 0, - 640, 0, 0, 640, 640, 640, 0, 0, 640, 640, - 640, 641, 0, 0, 641, 0, 0, 641, 641, 641, - 0, 0, 641, 641, 641, 642, 642, 0, 0, 0, - 642, 643, 0, 643, 643, 0, 0, 0, 643, 644, - 644, 0, 0, 0, 0, 644, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 646, 646, 0, 0, 0, 646, 647, 0, 647, 647, - - 0, 0, 0, 647, 648, 648, 0, 0, 0, 648, - 649, 0, 649, 0, 0, 0, 0, 649, 651, 651, - 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, - 651, 651, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587 - + 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, + 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, + 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, + 592, 592, 593, 0, 0, 0, 0, 0, 593, 593, + 593, 0, 0, 593, 593, 593, 594, 594, 594, 594, + + 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, + 595, 0, 0, 0, 0, 0, 595, 595, 595, 595, + 0, 595, 595, 595, 596, 0, 0, 0, 0, 0, + 596, 596, 596, 0, 0, 596, 596, 596, 597, 0, + 0, 597, 597, 597, 597, 597, 597, 0, 0, 597, + 597, 597, 598, 598, 0, 0, 0, 598, 599, 0, + 0, 599, 599, 599, 599, 599, 599, 0, 0, 599, + 599, 599, 600, 0, 0, 600, 600, 600, 600, 600, + 600, 0, 600, 0, 600, 600, 602, 0, 0, 602, + 0, 602, 602, 602, 602, 602, 0, 602, 602, 602, + + 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, + 603, 603, 603, 603, 604, 604, 0, 604, 0, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 605, 605, + 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, + 605, 605, 606, 606, 0, 606, 606, 606, 606, 606, + 606, 606, 606, 606, 606, 606, 607, 0, 0, 0, + 0, 0, 607, 607, 607, 0, 0, 607, 607, 607, + 608, 0, 0, 608, 608, 608, 608, 608, 608, 0, + 0, 608, 608, 608, 609, 609, 0, 0, 0, 609, + 610, 610, 610, 0, 0, 0, 610, 611, 0, 0, + + 611, 611, 611, 611, 611, 611, 0, 0, 611, 611, + 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 613, 613, 0, 0, 0, + 613, 614, 614, 614, 0, 0, 0, 614, 615, 615, + 0, 0, 0, 615, 616, 616, 0, 0, 0, 616, + 617, 617, 0, 0, 0, 617, 618, 618, 618, 0, + 0, 0, 618, 619, 619, 0, 0, 0, 619, 620, + 620, 0, 0, 0, 620, 621, 621, 0, 0, 0, + 621, 622, 622, 622, 0, 0, 0, 622, 623, 623, + 623, 623, 0, 0, 0, 623, 624, 624, 0, 0, + + 0, 624, 625, 625, 0, 0, 0, 625, 626, 626, + 0, 0, 0, 626, 627, 627, 627, 0, 0, 0, + 627, 628, 628, 628, 628, 0, 0, 0, 628, 629, + 629, 0, 0, 0, 629, 630, 630, 0, 0, 0, + 630, 631, 631, 631, 0, 0, 0, 631, 632, 632, + 632, 632, 0, 0, 0, 632, 633, 633, 0, 0, + 0, 633, 634, 0, 634, 634, 0, 0, 0, 634, + 635, 635, 635, 0, 0, 0, 635, 636, 636, 636, + 636, 0, 0, 0, 636, 637, 637, 0, 0, 0, + 637, 638, 0, 638, 638, 0, 0, 0, 638, 639, + + 639, 639, 0, 0, 0, 639, 640, 640, 640, 0, + 0, 0, 0, 640, 641, 0, 0, 641, 641, 0, + 641, 641, 641, 0, 0, 641, 641, 641, 642, 0, + 0, 642, 642, 0, 642, 642, 642, 0, 0, 642, + 642, 642, 643, 643, 0, 0, 0, 643, 644, 0, + 644, 644, 0, 0, 0, 644, 645, 645, 0, 0, + 0, 0, 645, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 646, 647, 647, 0, + 0, 0, 647, 648, 0, 648, 648, 0, 0, 0, + 648, 649, 649, 0, 0, 0, 649, 650, 0, 650, + + 0, 0, 0, 0, 650, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 652, 652, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588 } ; static yy_state_type yy_last_accepting_state; @@ -1459,6 +1455,7 @@ char *yytext; #include #include "sudo.h" #include "parse.h" +#include "toke.h" #include extern YYSTYPE yylval; @@ -1467,27 +1464,16 @@ int sudolineno = 1; char *sudoers; static int sawspace = 0; static int prev_state = INITIAL; -static int arg_len = 0; -static int arg_size = 0; -static int append __P((char *, int)); -static int _fill __P((char *, int, int)); -static int fill_cmnd __P((char *, int)); -static int fill_args __P((char *, int, int)); static int _push_include __P((char *, int)); static int pop_include __P((void)); -static int ipv6_valid __P((const char *s)); static char *parse_include __P((char *)); -extern void yyerror __P((const char *)); -#define fill(a, b) _fill(a, b, 0) +#define fill(a, b) fill_txt(a, b, 0) #define push_include(_p) (_push_include((_p), FALSE)) #define push_includedir(_p) (_push_include((_p), TRUE)) -/* realloc() to size + COMMANDARGINC to make room for command args */ -#define COMMANDARGINC 64 - #ifdef TRACELEXER #define LEXTRACE(msg) fputs(msg, stderr) #else @@ -1505,7 +1491,7 @@ extern void yyerror __P((const char *)); #define INSTR 5 -#line 1508 "lex.yy.c" +#line 1494 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1659,9 +1645,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 129 "toke.l" +#line 119 "toke.l" -#line 1664 "lex.yy.c" +#line 1650 "lex.yy.c" if ( yy_init ) { @@ -1713,13 +1699,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 >= 588 ) + if ( yy_current_state >= 589 ) 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] != 3633 ); + while ( yy_base[yy_current_state] != 3620 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1747,12 +1733,12 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 130 "toke.l" +#line 120 "toke.l" BEGIN STARTDEFS; YY_BREAK case 2: YY_RULE_SETUP -#line 132 "toke.l" +#line 122 "toke.l" { BEGIN INDEFS; LEXTRACE("DEFVAR "); @@ -1764,7 +1750,7 @@ YY_RULE_SETUP case 3: YY_RULE_SETUP -#line 141 "toke.l" +#line 131 "toke.l" { BEGIN STARTDEFS; LEXTRACE(", "); @@ -1773,7 +1759,7 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 147 "toke.l" +#line 137 "toke.l" { LEXTRACE("= "); return '='; @@ -1781,7 +1767,7 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 152 "toke.l" +#line 142 "toke.l" { LEXTRACE("+= "); return '+'; @@ -1789,7 +1775,7 @@ YY_RULE_SETUP YY_BREAK case 6: YY_RULE_SETUP -#line 157 "toke.l" +#line 147 "toke.l" { LEXTRACE("-= "); return '-'; @@ -1797,7 +1783,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 162 "toke.l" +#line 152 "toke.l" { LEXTRACE("BEGINSTR "); yylval.string = NULL; @@ -1807,7 +1793,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 169 "toke.l" +#line 159 "toke.l" { LEXTRACE("WORD(2) "); if (!fill(yytext, yyleng)) @@ -1819,7 +1805,7 @@ YY_RULE_SETUP case 9: YY_RULE_SETUP -#line 178 "toke.l" +#line 168 "toke.l" { /* Line continuation char followed by newline. */ ++sudolineno; @@ -1828,7 +1814,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 184 "toke.l" +#line 174 "toke.l" { LEXTRACE("ENDSTR "); BEGIN prev_state; @@ -1848,7 +1834,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 201 "toke.l" +#line 191 "toke.l" { LEXTRACE("BACKSLASH "); if (!append(yytext, yyleng)) @@ -1857,7 +1843,7 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 207 "toke.l" +#line 197 "toke.l" { LEXTRACE("STRBODY "); if (!append(yytext, yyleng)) @@ -1868,7 +1854,7 @@ YY_RULE_SETUP case 13: YY_RULE_SETUP -#line 215 "toke.l" +#line 205 "toke.l" { /* quoted fnmatch glob char, pass verbatim */ LEXTRACE("QUOTEDCHAR "); @@ -1879,7 +1865,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 223 "toke.l" +#line 213 "toke.l" { /* quoted sudoers special char, strip backslash */ LEXTRACE("QUOTEDCHAR "); @@ -1890,7 +1876,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 231 "toke.l" +#line 221 "toke.l" { BEGIN INITIAL; yyless(0); @@ -1899,7 +1885,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 237 "toke.l" +#line 227 "toke.l" { LEXTRACE("ARG "); if (!fill_args(yytext, yyleng, sawspace)) @@ -1910,7 +1896,7 @@ YY_RULE_SETUP case 17: YY_RULE_SETUP -#line 245 "toke.l" +#line 235 "toke.l" { char *path; @@ -1926,7 +1912,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 258 "toke.l" +#line 248 "toke.l" { char *path; @@ -1945,7 +1931,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 274 "toke.l" +#line 264 "toke.l" { int n; for (n = 0; isblank((unsigned char)yytext[n]); n++) @@ -1977,7 +1963,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 303 "toke.l" +#line 293 "toke.l" { int n; for (n = 0; isblank((unsigned char)yytext[n]); n++) @@ -2000,7 +1986,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 323 "toke.l" +#line 313 "toke.l" { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); @@ -2009,7 +1995,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 329 "toke.l" +#line 319 "toke.l" { /* cmnd requires passwd for this user */ LEXTRACE("PASSWD "); @@ -2018,7 +2004,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 335 "toke.l" +#line 325 "toke.l" { LEXTRACE("NOEXEC "); return NOEXEC; @@ -2026,7 +2012,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 340 "toke.l" +#line 330 "toke.l" { LEXTRACE("EXEC "); return EXEC; @@ -2034,7 +2020,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 345 "toke.l" +#line 335 "toke.l" { LEXTRACE("SETENV "); return SETENV; @@ -2042,7 +2028,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 350 "toke.l" +#line 340 "toke.l" { LEXTRACE("NOSETENV "); return NOSETENV; @@ -2050,7 +2036,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 355 "toke.l" +#line 345 "toke.l" { LEXTRACE("LOG_OUTPUT "); return LOG_OUTPUT; @@ -2058,7 +2044,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 360 "toke.l" +#line 350 "toke.l" { LEXTRACE("NOLOG_OUTPUT "); return NOLOG_OUTPUT; @@ -2066,7 +2052,7 @@ YY_RULE_SETUP YY_BREAK case 29: YY_RULE_SETUP -#line 365 "toke.l" +#line 355 "toke.l" { LEXTRACE("LOG_INPUT "); return LOG_INPUT; @@ -2074,7 +2060,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 370 "toke.l" +#line 360 "toke.l" { LEXTRACE("NOLOG_INPUT "); return NOLOG_INPUT; @@ -2082,7 +2068,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 375 "toke.l" +#line 365 "toke.l" { /* netgroup */ if (!fill(yytext, yyleng)) @@ -2093,7 +2079,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 383 "toke.l" +#line 373 "toke.l" { /* UN*X group */ if (!fill(yytext, yyleng)) @@ -2104,7 +2090,7 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 391 "toke.l" +#line 381 "toke.l" { if (!fill(yytext, yyleng)) yyterminate(); @@ -2114,7 +2100,7 @@ YY_RULE_SETUP YY_BREAK case 34: YY_RULE_SETUP -#line 398 "toke.l" +#line 388 "toke.l" { if (!fill(yytext, yyleng)) yyterminate(); @@ -2124,7 +2110,7 @@ YY_RULE_SETUP YY_BREAK case 35: YY_RULE_SETUP -#line 405 "toke.l" +#line 395 "toke.l" { if (!ipv6_valid(yytext)) { LEXTRACE("ERROR "); @@ -2138,7 +2124,7 @@ YY_RULE_SETUP YY_BREAK case 36: YY_RULE_SETUP -#line 416 "toke.l" +#line 406 "toke.l" { if (!ipv6_valid(yytext)) { LEXTRACE("ERROR "); @@ -2152,7 +2138,7 @@ YY_RULE_SETUP YY_BREAK case 37: YY_RULE_SETUP -#line 427 "toke.l" +#line 417 "toke.l" { if (strcmp(yytext, "ALL") == 0) { LEXTRACE("ALL "); @@ -2177,7 +2163,7 @@ YY_RULE_SETUP YY_BREAK case 38: YY_RULE_SETUP -#line 449 "toke.l" +#line 439 "toke.l" { /* no command args allowed for Defaults!/path */ if (!fill_cmnd(yytext, yyleng)) @@ -2188,7 +2174,7 @@ YY_RULE_SETUP YY_BREAK case 39: YY_RULE_SETUP -#line 457 "toke.l" +#line 447 "toke.l" { BEGIN GOTCMND; LEXTRACE("COMMAND "); @@ -2198,7 +2184,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 464 "toke.l" +#line 454 "toke.l" { /* directories can't have args... */ if (yytext[yyleng - 1] == '/') { @@ -2216,7 +2202,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 479 "toke.l" +#line 469 "toke.l" { LEXTRACE("BEGINSTR "); yylval.string = NULL; @@ -2226,7 +2212,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 486 "toke.l" +#line 476 "toke.l" { /* a word */ if (!fill(yytext, yyleng)) @@ -2237,7 +2223,7 @@ YY_RULE_SETUP YY_BREAK case 43: YY_RULE_SETUP -#line 494 "toke.l" +#line 484 "toke.l" { LEXTRACE("( "); return '('; @@ -2245,7 +2231,7 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 499 "toke.l" +#line 489 "toke.l" { LEXTRACE(") "); return ')'; @@ -2253,7 +2239,7 @@ YY_RULE_SETUP YY_BREAK case 45: YY_RULE_SETUP -#line 504 "toke.l" +#line 494 "toke.l" { LEXTRACE(", "); return ','; @@ -2261,7 +2247,7 @@ YY_RULE_SETUP YY_BREAK case 46: YY_RULE_SETUP -#line 509 "toke.l" +#line 499 "toke.l" { LEXTRACE("= "); return '='; @@ -2269,7 +2255,7 @@ YY_RULE_SETUP YY_BREAK case 47: YY_RULE_SETUP -#line 514 "toke.l" +#line 504 "toke.l" { LEXTRACE(": "); return ':'; @@ -2277,7 +2263,7 @@ YY_RULE_SETUP YY_BREAK case 48: YY_RULE_SETUP -#line 519 "toke.l" +#line 509 "toke.l" { if (yyleng % 2 == 1) return '!'; /* return '!' */ @@ -2285,7 +2271,7 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 524 "toke.l" +#line 514 "toke.l" { BEGIN INITIAL; ++sudolineno; @@ -2295,14 +2281,14 @@ YY_RULE_SETUP YY_BREAK case 50: YY_RULE_SETUP -#line 531 "toke.l" +#line 521 "toke.l" { /* throw away space/tabs */ sawspace = TRUE; /* but remember for fill_args */ } YY_BREAK case 51: YY_RULE_SETUP -#line 535 "toke.l" +#line 525 "toke.l" { sawspace = TRUE; /* remember for fill_args */ ++sudolineno; @@ -2311,7 +2297,7 @@ YY_RULE_SETUP YY_BREAK case 52: YY_RULE_SETUP -#line 541 "toke.l" +#line 531 "toke.l" { BEGIN INITIAL; ++sudolineno; @@ -2321,7 +2307,7 @@ YY_RULE_SETUP YY_BREAK case 53: YY_RULE_SETUP -#line 548 "toke.l" +#line 538 "toke.l" { LEXTRACE("ERROR "); return ERROR; @@ -2333,7 +2319,7 @@ case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(STARTDEFS): case YY_STATE_EOF(INDEFS): case YY_STATE_EOF(INSTR): -#line 553 "toke.l" +#line 543 "toke.l" { if (YY_START != INITIAL) { BEGIN INITIAL; @@ -2346,10 +2332,10 @@ case YY_STATE_EOF(INSTR): YY_BREAK case 54: YY_RULE_SETUP -#line 563 "toke.l" +#line 553 "toke.l" ECHO; YY_BREAK -#line 2352 "lex.yy.c" +#line 2338 "lex.yy.c" case YY_END_OF_BUFFER: { @@ -2640,7 +2626,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 >= 588 ) + if ( yy_current_state >= 589 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2675,11 +2661,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 >= 588 ) + if ( yy_current_state >= 589 ) 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 == 587); + yy_is_jam = (yy_current_state == 588); return yy_is_jam ? 0 : yy_current_state; } @@ -3240,178 +3226,7 @@ int main() return 0; } #endif -#line 563 "toke.l" - -static unsigned char -hexchar(s) - const char *s; -{ - int i; - int result = 0; - - s += 2; /* skip \\x */ - for (i = 0; i < 2; i++) { - switch (*s) { - case 'A': - case 'a': - result += 10; - break; - case 'B': - case 'b': - result += 11; - break; - case 'C': - case 'c': - result += 12; - break; - case 'D': - case 'd': - result += 13; - break; - case 'E': - case 'e': - result += 14; - break; - case 'F': - case 'f': - result += 15; - break; - default: - result += *s - '0'; - break; - } - if (i == 0) { - result *= 16; - s++; - } - } - return (unsigned char)result; -} - -static int -_fill(src, len, olen) - char *src; - int len, olen; -{ - char *dst; - - dst = olen ? realloc(yylval.string, olen + len + 1) : malloc(len + 1); - if (dst == NULL) { - yyerror("unable to allocate memory"); - return FALSE; - } - yylval.string = dst; - - /* Copy the string and collapse any escaped characters. */ - dst += olen; - while (len--) { - if (*src == '\\' && len) { - if (src[1] == 'x' && len >= 3 && - isxdigit((unsigned char) src[2]) && - isxdigit((unsigned char) src[3])) { - *dst++ = hexchar(src); - src += 4; - len -= 3; - } else { - src++; - len--; - *dst++ = *src++; - } - } else { - *dst++ = *src++; - } - } - *dst = '\0'; - return TRUE; -} - -static int -append(src, len) - char *src; - int len; -{ - int olen = 0; - - if (yylval.string != NULL) - olen = strlen(yylval.string); - - return _fill(src, len, olen); -} - -#define SPECIAL(c) \ - ((c) == ',' || (c) == ':' || (c) == '=' || (c) == ' ' || (c) == '\t' || (c) == '#') - -static int -fill_cmnd(src, len) - char *src; - int len; -{ - char *dst; - int i; - - arg_len = arg_size = 0; - - dst = yylval.command.cmnd = (char *) malloc(len + 1); - if (yylval.command.cmnd == NULL) { - yyerror("unable to allocate memory"); - return FALSE; - } - - /* Copy the string and collapse any escaped sudo-specific characters. */ - for (i = 0; i < len; i++) { - if (src[i] == '\\' && i != len - 1 && SPECIAL(src[i + 1])) - *dst++ = src[++i]; - else - *dst++ = src[i]; - } - *dst = '\0'; - - yylval.command.args = NULL; - return TRUE; -} - -static int -fill_args(s, len, addspace) - char *s; - int len; - int addspace; -{ - int new_len; - char *p; - - if (yylval.command.args == NULL) { - addspace = 0; - new_len = len; - } else - new_len = arg_len + len + addspace; - - if (new_len >= arg_size) { - /* Allocate more space than we need for subsequent args */ - while (new_len >= (arg_size += COMMANDARGINC)) - ; - - p = yylval.command.args ? - (char *) realloc(yylval.command.args, arg_size) : - (char *) malloc(arg_size); - if (p == NULL) { - efree(yylval.command.args); - yyerror("unable to allocate memory"); - return FALSE; - } else - yylval.command.args = p; - } - - /* Efficiently append the arg (with a leading space if needed). */ - p = yylval.command.args + arg_len; - if (addspace) - *p++ = ' '; - if (strlcpy(p, s, arg_size - (p - yylval.command.args)) != len) { - yyerror("fill_args: buffer overflow"); /* paranoia */ - return FALSE; - } - arg_len = new_len; - return TRUE; -} +#line 553 "toke.l" struct path_list { char *path; @@ -3703,26 +3518,3 @@ parse_include(base) return path; } - -/* - * Check to make sure an IPv6 address does not contain multiple instances - * of the string "::". Assumes strlen(s) >= 1. - * Returns TRUE if address is valid else FALSE. - */ -static int -ipv6_valid(s) - const char *s; -{ - int nmatch = 0; - - for (; *s != '\0'; s++) { - if (s[0] == ':' && s[1] == ':') { - if (++nmatch > 1) - break; - } - if (s[0] == '/') - nmatch = 0; /* reset if we hit netmask */ - } - - return nmatch <= 1; -} diff --git a/toke.l b/toke.l index 1c1245235..7e15e4955 100644 --- a/toke.l +++ b/toke.l @@ -261,7 +261,7 @@ DEFVAR [a-z_]+ yyterminate(); } -^[[:blank:]]*Defaults([:@>\!]\!?{WORD})? { +^[[:blank:]]*Defaults([:@>\!]\!?\"?{WORD})? { int n; for (n = 0; isblank((unsigned char)yytext[n]); n++) continue; @@ -466,7 +466,7 @@ sudoedit { } } /* a pathname */ -^\" { +\" { LEXTRACE("BEGINSTR "); yylval.string = NULL; prev_state = YY_START;