From: Todd C. Miller Date: Thu, 26 Jun 2008 11:49:16 +0000 (+0000) Subject: Better fix for line continuation inside double quotes. Now accepts X-Git-Tag: SUDO_1_7_0~99 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3bf94ded8ef7dda3d83ec9e5ad8321fdcc98a826;p=sudo Better fix for line continuation inside double quotes. Now accepts whitespace between the backslash and the newline like the main lexer. --- diff --git a/toke.c b/toke.c index 34c88511b..0655a6167 100644 --- a/toke.c +++ b/toke.c @@ -288,69 +288,69 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 47 -#define YY_END_OF_BUFFER 48 +#define YY_NUM_RULES 48 +#define YY_END_OF_BUFFER 49 static yyconst short int yy_accept[534] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 35, 43, 42, 41, 46, 35, 36, - 37, 35, 38, 35, 35, 35, 35, 40, 39, 46, - 31, 31, 31, 31, 31, 31, 46, 35, 35, 43, - 46, 31, 31, 31, 31, 31, 1, 46, 35, 35, - 15, 14, 15, 14, 14, 46, 46, 46, 2, 8, - 7, 8, 3, 8, 4, 46, 11, 11, 11, 10, - 11, 35, 0, 43, 41, 0, 0, 35, 26, 0, - 25, 0, 34, 34, 0, 35, 35, 0, 35, 35, - 35, 35, 0, 29, 31, 31, 31, 31, 31, 31, - - 35, 44, 35, 43, 0, 0, 0, 0, 0, 0, - 35, 35, 35, 35, 35, 1, 32, 32, 0, 35, - 15, 15, 13, 12, 13, 0, 2, 8, 0, 5, - 6, 8, 8, 11, 11, 11, 11, 11, 9, 0, - 45, 0, 35, 35, 35, 35, 35, 0, 0, 29, - 29, 31, 31, 31, 31, 31, 31, 31, 35, 0, - 0, 0, 0, 0, 0, 35, 35, 35, 35, 35, - 0, 35, 9, 35, 35, 35, 35, 35, 35, 0, - 30, 30, 30, 0, 0, 29, 29, 29, 29, 29, - 29, 29, 31, 31, 31, 31, 31, 31, 31, 35, - - 0, 0, 0, 0, 0, 0, 35, 35, 35, 35, - 35, 35, 35, 0, 0, 30, 30, 30, 0, 29, - 29, 0, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 0, 22, 31, 31, 31, 31, 31, - 35, 0, 0, 0, 0, 35, 35, 35, 35, 35, - 35, 35, 35, 0, 30, 0, 29, 29, 29, 0, - 0, 0, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 31, 31, 31, 31, 31, - 35, 0, 0, 0, 35, 35, 35, 27, 27, 27, - 0, 0, 29, 29, 29, 29, 29, 29, 29, 0, - - 0, 0, 0, 0, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 0, 21, - 31, 31, 0, 20, 0, 23, 35, 0, 0, 0, - 35, 35, 35, 35, 27, 27, 27, 27, 0, 29, - 0, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 0, 0, 0, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 31, 31, - 33, 0, 0, 0, 35, 17, 32, 35, 28, 28, - 28, 29, 0, 0, 0, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 0, 0, - - 0, 0, 0, 29, 29, 29, 29, 29, 29, 29, - 29, 0, 19, 0, 24, 0, 17, 0, 35, 0, - 35, 35, 35, 28, 28, 28, 28, 28, 0, 0, - 0, 0, 0, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 0, 0, 18, 17, 0, 17, 0, - 35, 35, 35, 28, 28, 0, 0, 0, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 18, 0, 16, 35, - 35, 35, 35, 35, 0, 0, 0, 0, 0, 29, - - 29, 29, 29, 29, 29, 29, 29, 35, 35, 35, - 29, 29, 29, 29, 29, 29, 35, 35, 35, 35, - 35, 29, 29, 29, 29, 29, 27, 27, 27, 27, - 27, 27, 0 + 0, 0, 49, 36, 44, 43, 42, 47, 36, 37, + 38, 36, 39, 36, 36, 36, 36, 41, 40, 47, + 32, 32, 32, 32, 32, 32, 47, 36, 36, 44, + 47, 32, 32, 32, 32, 32, 1, 47, 36, 36, + 16, 15, 16, 15, 15, 47, 47, 47, 2, 8, + 7, 8, 3, 8, 4, 47, 12, 12, 12, 10, + 11, 36, 0, 44, 42, 0, 0, 36, 27, 0, + 26, 0, 35, 35, 0, 36, 36, 0, 36, 36, + 36, 36, 0, 30, 32, 32, 32, 32, 32, 32, + + 36, 45, 36, 44, 0, 0, 0, 0, 0, 0, + 36, 36, 36, 36, 36, 1, 33, 33, 0, 36, + 16, 16, 14, 13, 14, 0, 2, 8, 0, 5, + 6, 8, 8, 12, 0, 12, 12, 0, 9, 0, + 46, 0, 36, 36, 36, 36, 36, 0, 0, 30, + 30, 32, 32, 32, 32, 32, 32, 32, 36, 0, + 0, 0, 0, 0, 0, 36, 36, 36, 36, 36, + 0, 36, 9, 36, 36, 36, 36, 36, 36, 0, + 31, 31, 31, 0, 0, 30, 30, 30, 30, 30, + 30, 30, 32, 32, 32, 32, 32, 32, 32, 36, + + 0, 0, 0, 0, 0, 0, 36, 36, 36, 36, + 36, 36, 36, 0, 0, 31, 31, 31, 0, 30, + 30, 0, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 0, 23, 32, 32, 32, 32, 32, + 36, 0, 0, 0, 0, 36, 36, 36, 36, 36, + 36, 36, 36, 0, 31, 0, 30, 30, 30, 0, + 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 32, 32, 32, 32, 32, + 36, 0, 0, 0, 36, 36, 36, 28, 28, 28, + 0, 0, 30, 30, 30, 30, 30, 30, 30, 0, + + 0, 0, 0, 0, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 0, 22, + 32, 32, 0, 21, 0, 24, 36, 0, 0, 0, + 36, 36, 36, 36, 28, 28, 28, 28, 0, 30, + 0, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 0, 0, 0, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 32, 32, + 34, 0, 0, 0, 36, 18, 33, 36, 29, 29, + 29, 30, 0, 0, 0, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 0, 0, + + 0, 0, 0, 30, 30, 30, 30, 30, 30, 30, + 30, 0, 20, 0, 25, 0, 18, 0, 36, 0, + 36, 36, 36, 29, 29, 29, 29, 29, 0, 0, + 0, 0, 0, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 0, 0, 19, 18, 0, 18, 0, + 36, 36, 36, 29, 29, 0, 0, 0, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 19, 0, 17, 36, + 36, 36, 36, 36, 0, 0, 0, 0, 0, 30, + + 30, 30, 30, 30, 30, 30, 30, 36, 36, 36, + 30, 30, 30, 30, 30, 30, 36, 36, 36, 36, + 36, 30, 30, 30, 30, 30, 28, 28, 28, 28, + 28, 28, 0 } ; static yyconst int yy_ec[256] = @@ -399,70 +399,70 @@ static yyconst int yy_meta[63] = static yyconst short int yy_base[594] = { 0, 0, 61, 62, 63, 69, 84, 128, 189, 250, 294, - 80, 101, 2177, 2129, 2171, 3367, 2168, 120, 2118, 3367, - 3367, 2100, 3367, 109, 326, 139, 131, 2102, 3367, 3367, - 378, 2081, 425, 2088, 2095, 2090, 476, 149, 35, 192, - 490, 2051, 2055, 2047, 2027, 2028, 2085, 183, 256, 53, - 0, 3367, 2079, 0, 3367, 264, 194, 98, 0, 2034, - 3367, 82, 3367, 99, 3367, 108, 2032, 74, 75, 3367, - 226, 2031, 306, 2068, 2065, 2065, 304, 343, 2002, 512, - 1999, 521, 325, 1998, 546, 442, 557, 2018, 2021, 473, - 543, 450, 1988, 97, 594, 0, 1978, 188, 1944, 1940, - - 283, 3367, 174, 597, 1922, 1900, 1890, 1885, 1886, 71, - 152, 112, 212, 224, 228, 1899, 592, 1852, 645, 233, - 0, 1866, 256, 3367, 3367, 288, 0, 1822, 627, 3367, - 3367, 1794, 290, 1793, 272, 292, 307, 495, 1835, 1833, - 3367, 653, 665, 697, 729, 761, 1806, 1795, 798, 289, - 836, 873, 1753, 1738, 1732, 1724, 1687, 1658, 163, 1632, - 1636, 1627, 1614, 1619, 67, 291, 1605, 242, 322, 173, - 697, 323, 1649, 708, 339, 912, 944, 718, 358, 1626, - 1625, 673, 434, 1609, 1608, 502, 738, 976, 748, 574, - 1014, 780, 1559, 278, 1550, 1542, 1525, 1521, 1528, 335, - - 1512, 1514, 1485, 1498, 1472, 335, 459, 557, 327, 477, - 1053, 1085, 1117, 1505, 1476, 815, 1476, 1474, 1457, 1436, - 517, 853, 606, 890, 648, 1149, 0, 922, 1160, 931, - 861, 1198, 954, 529, 3367, 1402, 1392, 1382, 1344, 1300, - 436, 1280, 1263, 1264, 480, 506, 494, 553, 964, 622, - 1237, 1269, 996, 1260, 1257, 1220, 1217, 1299, 649, 1033, - 1063, 1073, 651, 771, 903, 1093, 964, 1338, 0, 1103, - 1349, 1125, 1133, 1387, 1179, 533, 1197, 1204, 632, 656, - 653, 1197, 1169, 658, 595, 454, 957, 1425, 1456, 1487, - 1199, 1182, 1181, 1215, 1519, 1245, 1139, 1556, 1255, 1277, - - 1190, 1287, 1318, 1368, 1024, 1044, 1228, 1398, 1407, 1435, - 1595, 0, 1437, 1606, 1446, 1374, 1644, 1466, 699, 3367, - 1172, 1145, 738, 3367, 838, 3367, 522, 1131, 1100, 773, - 1043, 524, 615, 1474, 659, 1682, 1713, 1507, 1108, 1105, - 1495, 688, 1537, 931, 1745, 0, 683, 1756, 1573, 1581, + 80, 101, 2174, 2128, 2170, 3358, 2159, 120, 2100, 3358, + 3358, 2081, 3358, 109, 326, 139, 131, 2101, 3358, 3358, + 378, 2080, 425, 2087, 2094, 2075, 476, 149, 35, 192, + 490, 2050, 2054, 2031, 2026, 2027, 2081, 183, 256, 53, + 0, 3358, 2075, 0, 3358, 264, 194, 98, 0, 2032, + 3358, 82, 3358, 99, 3358, 108, 2031, 74, 75, 3358, + 216, 2025, 306, 2067, 2064, 2044, 304, 343, 1999, 512, + 1998, 521, 325, 1997, 546, 442, 557, 2011, 1998, 473, + 543, 450, 1986, 97, 594, 0, 1951, 188, 1941, 1939, + + 226, 3358, 227, 597, 1895, 1897, 1889, 1884, 1856, 71, + 152, 112, 213, 212, 233, 1868, 592, 1822, 645, 235, + 0, 1835, 229, 3358, 3358, 284, 0, 1793, 627, 3358, + 3358, 1791, 290, 1775, 1814, 257, 307, 288, 1816, 1780, + 3358, 653, 665, 697, 729, 761, 1768, 1736, 798, 279, + 836, 873, 1726, 1682, 1662, 1657, 1649, 1655, 259, 1614, + 1618, 1592, 1594, 1599, 67, 291, 1602, 163, 234, 308, + 697, 323, 1631, 708, 324, 912, 944, 718, 292, 1608, + 1559, 673, 434, 1558, 1557, 502, 738, 976, 748, 574, + 1014, 780, 1541, 380, 1532, 1524, 1522, 1518, 1511, 335, + + 1495, 1484, 1468, 1453, 1440, 480, 452, 495, 268, 339, + 1053, 1085, 1117, 1474, 1457, 815, 1437, 1390, 1389, 1388, + 507, 853, 527, 890, 606, 1149, 0, 922, 1160, 931, + 861, 1198, 954, 532, 3358, 1345, 1303, 1294, 1294, 1282, + 436, 1238, 1219, 1184, 536, 487, 498, 454, 964, 358, + 1237, 1269, 996, 1217, 1216, 1201, 1199, 1299, 643, 1033, + 1063, 1073, 648, 771, 903, 1093, 964, 1338, 0, 1103, + 1349, 1125, 1133, 1387, 1179, 579, 1163, 1170, 595, 632, + 619, 1176, 1148, 657, 595, 522, 621, 1425, 1456, 1487, + 1163, 1162, 1137, 1215, 1519, 1245, 1139, 1556, 1255, 1277, + + 1118, 1287, 1318, 1368, 987, 1024, 1044, 1228, 1404, 1435, + 1595, 0, 1437, 1606, 1446, 1374, 1644, 1466, 674, 3358, + 1098, 1086, 678, 3358, 699, 3358, 523, 1005, 996, 737, + 1043, 727, 762, 1474, 659, 1682, 1713, 1507, 979, 977, + 1495, 931, 1537, 945, 1745, 0, 639, 1756, 1573, 1412, 1793, 1625, 1663, 1692, 1702, 1170, 1255, 1506, 1654, 1721, - 1731, 1832, 0, 1733, 1843, 1773, 1781, 1812, 839, 895, - 1083, 1006, 943, 770, 759, 1872, 956, 1904, 1936, 1968, - 2000, 932, 1863, 1886, 1914, 920, 945, 1288, 1922, 1319, - 2032, 0, 765, 2043, 1944, 1894, 2080, 1954, 1976, 902, - - 1986, 2010, 2020, 1359, 1616, 1854, 828, 884, 2119, 0, - 892, 1016, 3367, 1076, 3367, 853, 2054, 1418, 537, 816, - 799, 2098, 1266, 2130, 2162, 2194, 2226, 2068, 2138, 811, - 2148, 2172, 2182, 799, 783, 1520, 1693, 2202, 1757, 2258, - 0, 997, 2269, 2210, 2234, 2306, 2242, 2287, 2324, 2344, - 1803, 790, 1007, 684, 738, 688, 655, 2366, 623, 2375, - 2388, 2420, 2452, 2399, 1871, 2409, 2431, 2441, 624, 544, - 1905, 1955, 2460, 1987, 2484, 0, 1035, 2495, 2468, 2377, - 2514, 541, 2533, 2542, 2551, 528, 3367, 516, 3367, 2557, - 1299, 2589, 2621, 2568, 2574, 390, 2600, 2610, 2631, 292, - - 260, 2001, 184, 139, 2639, 0, 1103, 2653, 2685, 2717, - 2661, 2669, 2693, 121, 0, 75, 2701, 1331, 2749, 2781, - 2731, 3367, 2737, 2761, 2769, 3367, 2789, 2797, 2827, 21, - 2835, 2819, 3367, 2880, 2893, 2906, 2919, 2932, 2945, 2958, - 2971, 2984, 2989, 3002, 3015, 3017, 3030, 3043, 3056, 3069, - 3082, 3087, 3093, 3106, 3111, 3117, 3122, 3127, 3132, 3138, - 3143, 3148, 3153, 3159, 3166, 3171, 3176, 3181, 3187, 3194, - 3199, 3204, 3210, 3217, 3222, 3229, 3235, 3242, 3247, 3254, - 3260, 3267, 3280, 3293, 3298, 3305, 3311, 3324, 3329, 3336, - 3341, 3348, 3353 + 1731, 1832, 0, 1733, 1843, 1773, 1581, 1812, 838, 839, + 911, 890, 859, 703, 759, 1872, 871, 1904, 1936, 1968, + 2000, 837, 1863, 1886, 1914, 820, 1288, 1319, 1922, 1520, + 2032, 0, 802, 2043, 1944, 1781, 2080, 1954, 1976, 791, + + 1986, 2010, 2020, 1359, 1616, 1854, 828, 883, 2119, 0, + 877, 1016, 3358, 1076, 3358, 729, 2054, 1886, 1179, 728, + 717, 2098, 1266, 2130, 2162, 2194, 2226, 2068, 2138, 730, + 2148, 2172, 2182, 717, 709, 1693, 1757, 2202, 1813, 2258, + 0, 892, 2269, 2210, 1894, 2306, 2236, 2245, 2287, 2324, + 1954, 697, 1005, 648, 697, 623, 603, 2357, 591, 2366, + 2379, 2411, 2443, 2390, 2315, 2400, 2422, 2432, 578, 558, + 1873, 1905, 2451, 1987, 2475, 0, 999, 2486, 2459, 2368, + 2505, 554, 2524, 2533, 2542, 534, 3358, 525, 3358, 2548, + 1299, 2580, 2612, 2559, 2565, 491, 2591, 2601, 2622, 363, + + 259, 2001, 184, 139, 2630, 0, 1103, 2644, 2676, 2708, + 2652, 2660, 2684, 121, 0, 75, 2692, 1331, 2740, 2772, + 2722, 3358, 2728, 2752, 2760, 3358, 2780, 2788, 2818, 21, + 2826, 2810, 3358, 2871, 2884, 2897, 2910, 2923, 2936, 2949, + 2962, 2975, 2980, 2993, 3006, 3008, 3021, 3034, 3047, 3060, + 3073, 3078, 3084, 3097, 3102, 3108, 3113, 3118, 3123, 3129, + 3134, 3139, 3144, 3150, 3157, 3162, 3167, 3172, 3178, 3185, + 3190, 3195, 3201, 3208, 3213, 3220, 3226, 3233, 3238, 3245, + 3251, 3258, 3271, 3284, 3289, 3296, 3302, 3315, 3320, 3327, + 3332, 3339, 3344 } ; @@ -475,14 +475,14 @@ static yyconst short int yy_def[594] = 539, 31, 31, 33, 33, 33, 533, 533, 544, 538, 545, 533, 545, 545, 533, 533, 539, 533, 546, 547, 533, 547, 533, 547, 533, 548, 549, 549, 549, 533, - 549, 538, 538, 533, 533, 550, 533, 533, 540, 540, + 533, 538, 538, 533, 533, 550, 533, 533, 540, 540, 541, 541, 542, 551, 538, 538, 25, 543, 87, 87, 87, 87, 552, 553, 31, 33, 33, 33, 33, 33, 538, 533, 538, 533, 533, 533, 533, 533, 533, 550, 538, 87, 538, 538, 538, 533, 544, 554, 538, 538, 545, 545, 533, 533, 533, 533, 546, 547, 547, 533, - 533, 547, 547, 549, 549, 549, 549, 549, 533, 550, + 533, 547, 547, 549, 533, 549, 549, 533, 533, 550, 533, 533, 538, 538, 538, 87, 146, 555, 533, 556, 533, 31, 33, 33, 33, 33, 33, 33, 538, 533, 533, 533, 533, 533, 550, 538, 146, 538, 538, 538, @@ -536,7 +536,7 @@ static yyconst short int yy_def[594] = } ; -static yyconst short int yy_nxt[3430] = +static yyconst short int yy_nxt[3421] = { 0, 14, 15, 16, 17, 14, 18, 19, 20, 21, 14, 22, 23, 14, 14, 24, 25, 26, 27, 25, 25, @@ -561,28 +561,28 @@ static yyconst short int yy_nxt[3430] = 15, 16, 17, 104, 57, 77, 73, 341, 78, 78, 78, 78, 78, 78, 78, 78, 533, 73, 166, 533, - 533, 533, 533, 533, 533, 533, 533, 73, 73, 154, - 200, 105, 106, 159, 155, 107, 156, 138, 139, 108, - 134, 207, 109, 58, 59, 59, 59, 59, 59, 59, + 533, 533, 533, 533, 533, 533, 533, 138, 139, 154, + 134, 105, 106, 207, 155, 107, 156, 126, 102, 108, + 126, 102, 109, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 15, 16, 17, 61, 57, 73, 126, 102, 118, - 62, 63, 64, 118, 118, 123, 102, 124, 73, 125, - 135, 168, 73, 124, 65, 125, 134, 73, 170, 234, - 169, 118, 172, 473, 126, 102, 73, 125, 125, 126, - 102, 126, 102, 136, 66, 15, 16, 17, 61, 57, - - 119, 235, 207, 149, 62, 63, 64, 72, 125, 72, - 137, 72, 187, 72, 72, 438, 135, 72, 65, 78, - 78, 78, 78, 78, 78, 78, 78, 73, 84, 72, - 72, 72, 84, 84, 129, 73, 135, 141, 66, 86, + 59, 15, 16, 17, 61, 57, 73, 73, 136, 118, + 62, 63, 64, 118, 118, 123, 102, 124, 169, 125, + 73, 73, 168, 124, 65, 125, 159, 73, 73, 73, + 209, 118, 473, 170, 172, 126, 102, 125, 125, 138, + 139, 126, 102, 149, 66, 15, 16, 17, 61, 57, + + 119, 135, 187, 73, 62, 63, 64, 72, 125, 72, + 137, 72, 73, 72, 72, 88, 200, 72, 65, 78, + 78, 78, 78, 78, 78, 78, 78, 207, 84, 72, + 72, 72, 84, 84, 129, 73, 73, 174, 66, 86, 207, 87, 87, 87, 87, 87, 87, 87, 87, 88, - 84, 135, 174, 89, 89, 89, 89, 89, 78, 78, - 78, 78, 78, 78, 78, 78, 73, 73, 209, 85, - 73, 73, 89, 89, 89, 89, 89, 89, 72, 73, - 210, 88, 72, 73, 72, 241, 207, 72, 72, 245, + 84, 135, 73, 89, 89, 89, 89, 89, 78, 78, + 78, 78, 78, 78, 78, 78, 207, 73, 73, 85, + 73, 249, 89, 89, 89, 89, 89, 89, 72, 73, + 210, 234, 72, 73, 72, 241, 438, 72, 72, 248, 72, 72, 72, 95, 95, 95, 95, 95, 95, 95, - 95, 88, 73, 495, 72, 95, 95, 95, 95, 95, + 95, 88, 73, 235, 72, 95, 95, 95, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 73, 96, 89, 89, 89, 89, 89, 89, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, @@ -591,69 +591,69 @@ static yyconst short int yy_nxt[3430] = 143, 143, 143, 143, 143, 147, 147, 147, 147, 147, 147, 72, 72, 72, 72, 72, 72, 101, 102, 72, 73, 72, 141, 72, 72, 281, 73, 72, 147, 147, - 147, 147, 147, 147, 147, 147, 138, 102, 73, 72, - - 72, 72, 77, 73, 246, 78, 78, 78, 78, 78, - 78, 78, 78, 79, 332, 79, 149, 79, 489, 79, - 79, 73, 81, 79, 81, 187, 81, 248, 81, 81, - 234, 149, 81, 285, 319, 79, 79, 79, 73, 135, - 187, 284, 149, 110, 81, 81, 81, 83, 286, 72, - 73, 83, 235, 72, 72, 149, 320, 83, 147, 147, - 147, 147, 147, 147, 147, 147, 73, 438, 73, 83, + 147, 147, 147, 147, 147, 147, 73, 246, 73, 72, + + 72, 72, 77, 287, 495, 78, 78, 78, 78, 78, + 78, 78, 78, 79, 285, 79, 149, 79, 88, 79, + 79, 149, 81, 79, 81, 187, 81, 489, 81, 81, + 187, 73, 81, 234, 245, 79, 79, 79, 141, 73, + 222, 149, 73, 110, 81, 81, 81, 83, 149, 72, + 224, 83, 286, 72, 72, 235, 247, 83, 147, 147, + 147, 147, 147, 147, 147, 147, 73, 73, 149, 83, 83, 72, 146, 146, 146, 146, 146, 146, 146, 146, - 88, 73, 371, 376, 146, 146, 146, 146, 146, 227, - 227, 227, 227, 227, 228, 118, 456, 73, 104, 118, + 319, 438, 332, 371, 146, 146, 146, 146, 146, 227, + 227, 227, 227, 227, 228, 118, 323, 284, 104, 118, - 118, 73, 287, 146, 146, 146, 146, 146, 146, 152, - 152, 152, 152, 152, 152, 152, 152, 118, 247, 222, + 118, 389, 320, 146, 146, 146, 146, 146, 146, 152, + 152, 152, 152, 152, 152, 152, 152, 118, 324, 533, 149, 152, 152, 152, 152, 152, 105, 106, 128, 224, - 107, 128, 128, 323, 108, 249, 119, 109, 128, 73, - 146, 146, 146, 146, 146, 146, 117, 389, 72, 331, - 117, 128, 72, 72, 84, 324, 117, 325, 84, 73, - 141, 533, 149, 149, 84, 149, 73, 460, 117, 117, - 72, 224, 187, 334, 224, 377, 84, 84, 174, 326, + 107, 128, 128, 325, 108, 460, 119, 109, 128, 73, + 146, 146, 146, 146, 146, 146, 117, 458, 72, 331, + 117, 128, 72, 72, 84, 326, 117, 149, 84, 141, + 386, 386, 149, 73, 84, 73, 187, 73, 117, 117, + 72, 224, 327, 334, 333, 319, 84, 84, 174, 323, 175, 175, 175, 175, 175, 175, 175, 175, 216, 216, - 217, 218, 218, 218, 218, 218, 184, 73, 118, 458, + 217, 218, 218, 218, 218, 218, 184, 320, 118, 489, - 319, 341, 118, 73, 386, 386, 327, 330, 118, 73, - 174, 343, 176, 176, 176, 176, 176, 176, 176, 176, - 118, 118, 320, 211, 212, 213, 211, 211, 211, 211, - 211, 174, 73, 175, 175, 175, 175, 175, 175, 323, - 489, 73, 174, 487, 177, 177, 177, 177, 177, 178, + 325, 324, 118, 73, 418, 141, 330, 487, 118, 73, + 174, 149, 176, 176, 176, 176, 176, 176, 176, 176, + 118, 118, 326, 211, 212, 213, 211, 211, 211, 211, + 211, 174, 389, 175, 175, 175, 175, 175, 175, 141, + 343, 73, 174, 429, 177, 177, 177, 177, 177, 178, 175, 175, 73, 192, 192, 192, 192, 192, 192, 192, - 192, 324, 73, 226, 226, 226, 226, 226, 226, 226, - 226, 418, 141, 73, 72, 141, 179, 179, 179, 179, - 179, 179, 179, 179, 222, 149, 435, 435, 179, 179, + 192, 460, 73, 226, 226, 226, 226, 226, 226, 226, + 226, 73, 458, 73, 72, 454, 179, 179, 179, 179, + 179, 179, 179, 179, 222, 149, 376, 374, 179, 179, 179, 179, 179, 533, 224, 225, 225, 225, 225, 225, - 225, 225, 225, 73, 149, 419, 389, 179, 179, 179, + 225, 225, 225, 73, 399, 419, 73, 179, 179, 179, 179, 179, 179, 181, 182, 183, 183, 183, 183, 183, - 183, 184, 343, 374, 429, 185, 185, 185, 185, 185, - 255, 255, 255, 255, 255, 255, 255, 255, 184, 325, - 412, 222, 149, 460, 185, 185, 185, 185, 185, 185, + 183, 184, 377, 435, 435, 185, 185, 185, 185, 185, + 255, 255, 255, 255, 255, 255, 255, 255, 184, 412, + 414, 222, 149, 343, 185, 185, 185, 185, 185, 185, 149, 188, 189, 190, 188, 188, 188, 188, 188, 191, - 458, 326, 413, 192, 192, 192, 192, 192, 260, 261, + 294, 413, 415, 192, 192, 192, 192, 192, 260, 261, 262, 260, 260, 260, 260, 260, 269, 269, 269, 269, 269, 270, 192, 192, 192, 192, 192, 192, 193, 193, - 193, 193, 193, 193, 193, 193, 414, 533, 149, 454, + 193, 193, 193, 193, 193, 193, 533, 149, 452, 452, 193, 193, 193, 193, 193, 233, 233, 233, 233, 233, - 233, 233, 233, 452, 452, 399, 222, 149, 415, 179, + 233, 233, 233, 470, 470, 73, 222, 149, 417, 179, 179, 179, 179, 179, 179, 174, 266, 175, 175, 175, 175, 175, 175, 175, 175, 222, 149, 264, 264, 264, - 264, 264, 264, 343, 533, 224, 268, 268, 268, 268, - 268, 268, 268, 268, 343, 294, 73, 174, 341, 175, + 264, 264, 264, 416, 341, 224, 268, 268, 268, 268, + 268, 268, 268, 268, 343, 73, 73, 174, 533, 175, 175, 175, 175, 175, 175, 175, 175, 533, 343, 267, 267, 267, 267, 267, 267, 267, 267, 533, 149, 288, 289, 290, 288, 288, 288, 288, 288, 266, 73, 222, 149, 223, 223, 223, 223, 223, 223, 223, 223, 224, - 73, 73, 417, 225, 225, 225, 225, 225, 73, 249, - 333, 250, 250, 250, 250, 250, 250, 412, 470, 470, - 222, 149, 225, 225, 225, 225, 225, 225, 149, 229, + 294, 149, 220, 225, 225, 225, 225, 225, 73, 249, + 224, 250, 250, 250, 250, 250, 250, 412, 222, 149, + 501, 501, 225, 225, 225, 225, 225, 225, 149, 229, 230, 231, 229, 229, 229, 229, 229, 232, 149, 413, - 73, 233, 233, 233, 233, 233, 300, 224, 301, 301, - 301, 301, 301, 301, 301, 301, 501, 501, 149, 416, + 73, 233, 233, 233, 233, 233, 300, 266, 301, 301, + 301, 301, 301, 301, 301, 301, 373, 222, 149, 372, 233, 233, 233, 233, 233, 233, 249, 266, 250, 250, 250, 250, 250, 250, 250, 250, 300, 414, 302, 302, 302, 302, 302, 302, 302, 302, 300, 73, 303, 303, @@ -661,122 +661,122 @@ static yyconst short int yy_nxt[3430] = 251, 251, 251, 251, 251, 251, 251, 251, 275, 275, 275, 275, 275, 275, 275, 275, 222, 149, 307, 307, - 307, 307, 307, 307, 515, 515, 266, 73, 294, 73, - 249, 220, 252, 252, 252, 252, 252, 253, 250, 250, + 307, 307, 307, 307, 515, 515, 266, 370, 369, 73, + 249, 300, 252, 252, 252, 252, 252, 253, 250, 250, 311, 311, 311, 311, 311, 311, 311, 311, 312, 312, 312, 312, 312, 313, 346, 346, 346, 346, 346, 347, - 373, 73, 222, 149, 264, 264, 264, 264, 264, 264, + 294, 73, 222, 149, 264, 264, 264, 264, 264, 264, 264, 264, 224, 222, 149, 265, 265, 265, 265, 265, - 265, 265, 265, 266, 149, 372, 370, 267, 267, 267, + 265, 265, 265, 266, 149, 220, 184, 267, 267, 267, 267, 267, 533, 266, 310, 310, 310, 310, 310, 310, - 310, 310, 369, 300, 294, 220, 267, 267, 267, 267, + 310, 310, 329, 328, 322, 321, 267, 267, 267, 267, 267, 267, 149, 271, 272, 273, 271, 271, 271, 271, - 271, 274, 184, 329, 328, 275, 275, 275, 275, 275, - 299, 299, 299, 299, 299, 299, 299, 299, 322, 321, - 294, 222, 149, 220, 275, 275, 275, 275, 275, 275, - 249, 266, 250, 250, 250, 250, 250, 250, 250, 250, + 271, 274, 294, 73, 220, 275, 275, 275, 275, 275, + 299, 299, 299, 299, 299, 299, 299, 299, 456, 184, + 184, 222, 149, 242, 275, 275, 275, 275, 275, 275, + 249, 309, 250, 250, 250, 250, 250, 250, 250, 250, 345, 345, 345, 345, 345, 345, 345, 345, 533, 149, 344, 344, 344, 344, 344, 344, 344, 344, 309, 422, - 184, 73, 249, 184, 250, 250, 250, 250, 250, 250, + 283, 73, 249, 282, 250, 250, 250, 250, 250, 250, 250, 250, 353, 354, 355, 353, 353, 353, 353, 353, 300, 341, 301, 301, 301, 301, 301, 301, 301, 301, - 73, 389, 490, 73, 295, 296, 297, 295, 295, 295, - 295, 295, 298, 242, 283, 282, 299, 299, 299, 299, - 299, 300, 533, 301, 301, 301, 301, 301, 301, 301, - 301, 280, 389, 73, 517, 299, 299, 299, 299, 299, + 73, 343, 490, 73, 295, 296, 297, 295, 295, 295, + 295, 295, 298, 280, 279, 278, 299, 299, 299, 299, + 299, 300, 341, 301, 301, 301, 301, 301, 301, 301, + 301, 277, 389, 73, 517, 299, 299, 299, 299, 299, 299, 222, 149, 307, 307, 307, 307, 307, 307, 307, 307, 266, 222, 149, 308, 308, 308, 308, 308, 308, - 308, 308, 309, 149, 279, 73, 310, 310, 310, 310, + 308, 308, 309, 149, 276, 73, 310, 310, 310, 310, 310, 300, 309, 301, 301, 301, 301, 301, 301, 363, 363, 363, 363, 363, 364, 310, 310, 310, 310, 310, 310, 149, 314, 315, 316, 314, 314, 314, 314, 314, - 317, 222, 149, 278, 318, 318, 318, 318, 318, 418, - 141, 309, 318, 318, 318, 318, 318, 318, 318, 318, - 277, 276, 455, 318, 318, 318, 318, 318, 318, 334, + 317, 258, 220, 184, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 392, 392, 392, + 392, 392, 393, 318, 318, 318, 318, 318, 318, 334, 335, 335, 335, 335, 335, 335, 335, 335, 533, 149, - 222, 149, 358, 358, 358, 358, 358, 358, 309, 258, + 222, 149, 358, 358, 358, 358, 358, 358, 309, 254, 309, 362, 362, 362, 362, 362, 362, 362, 362, 73, 334, 336, 336, 336, 336, 336, 336, 336, 336, 533, - 220, 361, 361, 361, 361, 361, 361, 361, 361, 378, - 379, 380, 381, 378, 378, 378, 378, 184, 254, 184, + 184, 361, 361, 361, 361, 361, 361, 361, 361, 378, + 379, 380, 381, 378, 378, 378, 378, 94, 242, 244, 73, 334, 337, 337, 337, 337, 337, 338, 335, 335, 383, 384, 385, 383, 383, 383, 383, 383, 73, 222, - 149, 334, 335, 335, 335, 335, 335, 335, 94, 309, - 242, 73, 341, 341, 342, 342, 342, 342, 342, 342, - 342, 342, 343, 389, 244, 242, 344, 344, 344, 344, + 149, 334, 335, 335, 335, 335, 335, 335, 242, 309, + 243, 73, 341, 533, 342, 342, 342, 342, 342, 342, + 342, 342, 343, 389, 242, 240, 344, 344, 344, 344, 344, 73, 352, 352, 352, 352, 352, 352, 352, 352, - 243, 242, 240, 239, 238, 344, 344, 344, 344, 344, + 239, 238, 237, 236, 88, 344, 344, 344, 344, 344, 344, 348, 349, 350, 348, 348, 348, 348, 348, 351, - 237, 236, 88, 352, 352, 352, 352, 352, 391, 391, - 391, 391, 391, 391, 391, 391, 392, 392, 392, 392, + 184, 220, 184, 352, 352, 352, 352, 352, 391, 391, + 391, 391, 391, 391, 391, 391, 410, 410, 410, 410, - 392, 393, 352, 352, 352, 352, 352, 352, 222, 149, + 410, 411, 352, 352, 352, 352, 352, 352, 222, 149, 358, 358, 358, 358, 358, 358, 358, 358, 309, 222, 149, 359, 359, 359, 359, 359, 359, 359, 359, 360, - 149, 184, 220, 361, 361, 361, 361, 361, 533, 360, - 390, 390, 390, 390, 390, 390, 390, 390, 184, 94, - 173, 208, 361, 361, 361, 361, 361, 361, 149, 365, - 366, 367, 365, 365, 365, 365, 365, 222, 149, 205, - 204, 368, 368, 368, 368, 368, 399, 360, 400, 400, - 400, 400, 400, 400, 400, 400, 203, 202, 201, 199, + 149, 94, 173, 361, 361, 361, 361, 361, 533, 360, + 390, 390, 390, 390, 390, 390, 390, 390, 208, 205, + 204, 203, 361, 361, 361, 361, 361, 361, 149, 365, + 366, 367, 365, 365, 365, 365, 365, 222, 149, 202, + 201, 368, 368, 368, 368, 368, 399, 360, 400, 400, + 400, 400, 400, 400, 400, 400, 199, 198, 197, 196, 368, 368, 368, 368, 368, 368, 334, 335, 335, 335, 335, 335, 335, 335, 335, 399, 341, 401, 401, 401, - 401, 401, 401, 401, 401, 399, 438, 402, 402, 402, - 402, 402, 403, 400, 400, 198, 73, 334, 335, 335, + 401, 401, 401, 401, 401, 399, 389, 402, 402, 402, + 402, 402, 403, 400, 400, 195, 73, 334, 335, 335, 335, 335, 335, 335, 335, 335, 368, 368, 368, 368, 368, 368, 368, 368, 533, 149, 222, 149, 406, 406, - 406, 406, 406, 406, 360, 197, 360, 73, 341, 196, + 406, 406, 406, 406, 360, 194, 360, 73, 341, 94, 387, 387, 387, 387, 387, 387, 387, 387, 343, 341, - 533, 388, 388, 388, 388, 388, 388, 388, 388, 389, - 438, 195, 194, 390, 390, 390, 390, 390, 409, 409, - 409, 409, 409, 409, 409, 409, 410, 410, 410, 410, - - 410, 411, 390, 390, 390, 390, 390, 390, 394, 395, - 396, 394, 394, 394, 394, 394, 397, 149, 94, 86, - 398, 398, 398, 398, 398, 533, 360, 408, 408, 408, - 408, 408, 408, 408, 408, 141, 173, 135, 129, 398, + 341, 388, 388, 388, 388, 388, 388, 388, 388, 389, + 438, 86, 141, 390, 390, 390, 390, 390, 409, 409, + 409, 409, 409, 409, 409, 409, 441, 441, 441, 441, + + 441, 442, 390, 390, 390, 390, 390, 390, 394, 395, + 396, 394, 394, 394, 394, 394, 397, 173, 134, 135, + 398, 398, 398, 398, 398, 533, 533, 408, 408, 408, + 408, 408, 408, 408, 408, 129, 438, 129, 122, 398, 398, 398, 398, 398, 398, 222, 149, 406, 406, 406, 406, 406, 406, 406, 406, 360, 222, 149, 407, 407, - 407, 407, 407, 407, 407, 407, 129, 222, 149, 122, + 407, 407, 407, 407, 407, 407, 171, 222, 149, 116, 408, 408, 408, 408, 408, 420, 429, 360, 430, 430, - 430, 430, 430, 430, 430, 430, 465, 465, 465, 408, - 408, 408, 408, 408, 408, 420, 171, 420, 421, 429, + 430, 430, 430, 430, 430, 430, 341, 418, 141, 408, + 408, 408, 408, 408, 408, 420, 438, 420, 421, 429, - 116, 431, 431, 431, 431, 431, 431, 431, 431, 441, - 441, 441, 441, 441, 442, 73, 73, 422, 341, 423, - 423, 423, 423, 423, 423, 423, 423, 429, 438, 432, + 455, 431, 431, 431, 431, 431, 431, 431, 431, 476, + 476, 476, 476, 476, 477, 164, 73, 422, 341, 423, + 423, 423, 423, 423, 423, 423, 423, 429, 473, 432, 432, 432, 432, 432, 433, 430, 430, 398, 398, 398, - 398, 398, 398, 398, 398, 164, 163, 162, 73, 422, - 161, 424, 424, 424, 424, 424, 424, 424, 424, 440, - 440, 440, 440, 440, 440, 440, 440, 533, 341, 439, - 439, 439, 439, 439, 439, 439, 439, 160, 473, 158, - 73, 422, 157, 425, 425, 425, 425, 425, 426, 427, + 398, 398, 398, 398, 398, 163, 162, 161, 73, 422, + 160, 424, 424, 424, 424, 424, 424, 424, 424, 440, + 440, 440, 440, 440, 440, 440, 440, 533, 149, 439, + 439, 439, 439, 439, 439, 439, 439, 360, 158, 157, + 73, 422, 153, 425, 425, 425, 425, 425, 426, 427, 427, 448, 449, 450, 448, 448, 448, 448, 448, 399, - 533, 400, 400, 400, 400, 400, 400, 400, 400, 153, - 473, 94, 73, 422, 341, 428, 428, 428, 423, 423, + 533, 400, 400, 400, 400, 400, 400, 400, 400, 94, + 473, 72, 73, 422, 341, 428, 428, 428, 423, 423, 423, 423, 423, 399, 473, 400, 400, 400, 400, 400, - 400, 400, 400, 399, 72, 400, 400, 400, 400, 400, - 400, 94, 142, 82, 73, 341, 80, 436, 436, 436, + 400, 400, 400, 399, 94, 400, 400, 400, 400, 400, + 400, 142, 82, 80, 73, 341, 141, 436, 436, 436, 436, 436, 436, 436, 436, 389, 341, 420, 437, 437, - 437, 437, 437, 437, 437, 437, 438, 141, 75, 74, - 439, 439, 439, 439, 439, 73, 135, 420, 129, 420, - 420, 422, 122, 465, 465, 465, 116, 115, 114, 439, + 437, 437, 437, 437, 437, 437, 438, 75, 74, 73, + 439, 439, 439, 439, 439, 135, 129, 420, 122, 420, + 420, 422, 116, 465, 465, 465, 115, 114, 113, 439, 439, 439, 439, 439, 439, 443, 444, 445, 443, 443, - 443, 443, 443, 446, 113, 112, 111, 447, 447, 447, + 443, 443, 443, 446, 112, 111, 100, 447, 447, 447, 447, 447, 73, 461, 462, 463, 461, 461, 461, 461, - 461, 100, 99, 98, 97, 94, 447, 447, 447, 447, + 461, 99, 98, 97, 94, 82, 447, 447, 447, 447, 447, 447, 222, 149, 453, 453, 453, 453, 453, 453, - 453, 453, 73, 422, 82, 427, 427, 427, 427, 427, + 453, 453, 73, 422, 80, 427, 427, 427, 427, 427, 427, 427, 427, 466, 467, 468, 466, 466, 466, 466, - 466, 429, 80, 430, 430, 430, 430, 430, 430, 430, - 430, 75, 74, 73, 73, 422, 533, 427, 427, 427, + 466, 429, 75, 430, 430, 430, 430, 430, 430, 430, + 430, 74, 73, 533, 73, 422, 533, 427, 427, 427, 427, 427, 427, 427, 427, 429, 533, 430, 430, 430, 430, 430, 430, 430, 430, 429, 533, 430, 430, 430, @@ -784,140 +784,139 @@ static yyconst short int yy_nxt[3430] = 427, 427, 427, 427, 427, 464, 464, 447, 447, 447, 447, 447, 447, 447, 447, 475, 475, 475, 475, 475, 475, 475, 475, 533, 533, 533, 533, 533, 73, 422, - 533, 464, 464, 464, 464, 464, 464, 464, 464, 476, - 476, 476, 476, 476, 477, 533, 533, 474, 474, 474, - 474, 474, 474, 474, 474, 533, 533, 533, 533, 533, + 533, 464, 464, 464, 464, 464, 464, 464, 464, 533, + 533, 474, 474, 474, 474, 474, 474, 474, 474, 149, + 482, 482, 482, 482, 482, 482, 482, 482, 533, 533, 73, 341, 533, 471, 471, 471, 471, 471, 471, 471, 471, 438, 341, 533, 472, 472, 472, 472, 472, 472, 472, 472, 473, 533, 533, 533, 474, 474, 474, 474, - 474, 149, 482, 482, 482, 482, 482, 482, 482, 482, + 474, 149, 483, 483, 483, 483, 483, 483, 483, 483, 533, 533, 533, 533, 533, 474, 474, 474, 474, 474, 474, 478, 479, 480, 478, 478, 478, 478, 478, 533, - 533, 533, 533, 481, 481, 481, 481, 481, 149, 483, - 483, 483, 483, 483, 483, 483, 483, 533, 533, 533, - 533, 533, 481, 481, 481, 481, 481, 481, 149, 484, - 484, 484, 484, 484, 485, 482, 482, 457, 533, 457, - 533, 457, 533, 457, 457, 533, 459, 457, 459, 533, - 459, 533, 459, 459, 533, 533, 459, 533, 533, 457, - 457, 457, 506, 506, 506, 506, 506, 507, 459, 459, - - 459, 490, 533, 491, 491, 491, 491, 491, 491, 491, - 491, 533, 533, 533, 464, 464, 464, 464, 464, 464, - 464, 464, 495, 533, 496, 496, 496, 496, 496, 496, - 496, 496, 73, 490, 533, 492, 492, 492, 492, 492, - 492, 492, 492, 73, 495, 533, 497, 497, 497, 497, - 497, 497, 497, 497, 495, 533, 498, 498, 498, 498, - 498, 499, 496, 496, 73, 490, 533, 493, 493, 493, - 493, 493, 494, 491, 491, 481, 481, 481, 481, 481, - 481, 481, 481, 505, 505, 505, 505, 505, 505, 505, - 505, 533, 533, 533, 533, 533, 73, 341, 533, 502, - - 502, 502, 502, 502, 502, 502, 502, 473, 341, 533, - 503, 503, 503, 503, 503, 503, 503, 503, 533, 533, - 533, 533, 504, 504, 504, 504, 504, 533, 533, 504, - 504, 504, 504, 504, 504, 504, 504, 533, 533, 533, - 533, 504, 504, 504, 504, 504, 504, 149, 482, 482, + 465, 465, 465, 481, 481, 481, 481, 481, 149, 484, + 484, 484, 484, 484, 485, 482, 482, 533, 533, 533, + 533, 533, 481, 481, 481, 481, 481, 481, 457, 73, + 457, 533, 457, 533, 457, 457, 533, 459, 457, 459, + 533, 459, 533, 459, 459, 533, 533, 459, 533, 533, + 457, 457, 457, 506, 506, 506, 506, 506, 507, 459, + 459, 459, 490, 533, 491, 491, 491, 491, 491, 491, + + 491, 491, 533, 533, 533, 464, 464, 464, 464, 464, + 464, 464, 464, 495, 533, 496, 496, 496, 496, 496, + 496, 496, 496, 73, 490, 533, 492, 492, 492, 492, + 492, 492, 492, 492, 73, 495, 533, 497, 497, 497, + 497, 497, 497, 497, 497, 495, 533, 498, 498, 498, + 498, 498, 499, 496, 496, 73, 490, 533, 493, 493, + 493, 493, 493, 494, 491, 491, 481, 481, 481, 481, + 481, 481, 481, 481, 505, 505, 505, 505, 505, 505, + 505, 505, 533, 533, 533, 533, 533, 73, 341, 533, + 502, 502, 502, 502, 502, 502, 502, 502, 473, 341, + + 533, 503, 503, 503, 503, 503, 503, 503, 503, 533, + 533, 533, 533, 504, 504, 504, 504, 504, 533, 533, + 504, 504, 504, 504, 504, 504, 504, 504, 533, 533, + 533, 533, 504, 504, 504, 504, 504, 504, 149, 482, + 482, 482, 482, 482, 482, 482, 482, 149, 482, 482, 482, 482, 482, 482, 482, 482, 149, 482, 482, 482, - 482, 482, 482, 482, 482, 149, 482, 482, 482, 482, - 482, 482, 508, 509, 510, 508, 508, 508, 508, 508, - 533, 490, 533, 491, 491, 491, 491, 491, 491, 511, - 512, 513, 511, 511, 511, 511, 511, 533, 533, 533, - - 533, 73, 490, 533, 491, 491, 491, 491, 491, 491, - 491, 491, 73, 495, 533, 496, 496, 496, 496, 496, - 496, 496, 496, 495, 533, 496, 496, 496, 496, 496, - 496, 496, 496, 73, 490, 533, 491, 491, 491, 491, - 491, 491, 491, 491, 495, 533, 496, 496, 496, 496, - 496, 496, 341, 533, 516, 516, 516, 516, 516, 516, - 516, 516, 533, 533, 533, 73, 517, 533, 518, 518, - 518, 518, 518, 518, 518, 518, 522, 522, 522, 522, - 522, 522, 522, 522, 523, 523, 523, 523, 523, 523, - 523, 523, 533, 533, 533, 533, 533, 73, 517, 533, - - 519, 519, 519, 519, 519, 519, 519, 519, 524, 524, - 524, 524, 524, 525, 522, 522, 527, 528, 529, 527, - 527, 527, 527, 527, 533, 533, 533, 533, 533, 73, - 517, 533, 520, 520, 520, 520, 520, 521, 518, 518, - 533, 533, 533, 533, 517, 73, 518, 518, 518, 518, - 518, 518, 522, 522, 522, 522, 522, 522, 522, 522, - 533, 73, 517, 533, 518, 518, 518, 518, 518, 518, - 518, 518, 533, 533, 533, 73, 522, 522, 522, 522, + 482, 482, 482, 508, 509, 510, 508, 508, 508, 508, + 508, 533, 490, 533, 491, 491, 491, 491, 491, 491, + 511, 512, 513, 511, 511, 511, 511, 511, 533, 533, + 533, 533, 73, 490, 533, 491, 491, 491, 491, 491, + + 491, 491, 491, 73, 495, 533, 496, 496, 496, 496, + 496, 496, 496, 496, 495, 533, 496, 496, 496, 496, + 496, 496, 496, 496, 73, 490, 533, 491, 491, 491, + 491, 491, 491, 491, 491, 495, 533, 496, 496, 496, + 496, 496, 496, 341, 533, 516, 516, 516, 516, 516, + 516, 516, 516, 533, 533, 533, 73, 517, 533, 518, + 518, 518, 518, 518, 518, 518, 518, 522, 522, 522, + 522, 522, 522, 522, 522, 523, 523, 523, 523, 523, + 523, 523, 523, 533, 533, 533, 533, 533, 73, 517, + 533, 519, 519, 519, 519, 519, 519, 519, 519, 524, + + 524, 524, 524, 524, 525, 522, 522, 527, 528, 529, + 527, 527, 527, 527, 527, 533, 533, 533, 533, 533, + 73, 517, 533, 520, 520, 520, 520, 520, 521, 518, + 518, 533, 533, 533, 533, 517, 73, 518, 518, 518, + 518, 518, 518, 522, 522, 522, 522, 522, 522, 522, + 522, 533, 73, 517, 533, 518, 518, 518, 518, 518, + 518, 518, 518, 533, 533, 533, 73, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, - 533, 533, 533, 73, 517, 533, 518, 518, 518, 518, - - 518, 518, 518, 518, 530, 530, 530, 530, 530, 530, - 530, 530, 527, 527, 527, 527, 527, 527, 527, 527, - 533, 533, 533, 533, 533, 73, 533, 533, 533, 533, - 533, 533, 533, 73, 530, 530, 530, 530, 530, 530, - 533, 73, 531, 531, 531, 531, 531, 532, 530, 530, - 530, 530, 530, 530, 530, 530, 530, 530, 533, 533, - 533, 533, 533, 73, 533, 533, 533, 533, 533, 533, - 533, 73, 533, 533, 533, 533, 533, 533, 533, 73, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 30, 30, 30, 30, 30, 30, 30, - - 30, 30, 30, 30, 30, 30, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 67, + 522, 533, 533, 533, 73, 517, 533, 518, 518, 518, + 518, 518, 518, 518, 518, 530, 530, 530, 530, 530, + + 530, 530, 530, 527, 527, 527, 527, 527, 527, 527, + 527, 533, 533, 533, 533, 533, 73, 533, 533, 533, + 533, 533, 533, 533, 73, 530, 530, 530, 530, 530, + 530, 533, 73, 531, 531, 531, 531, 531, 532, 530, + 530, 530, 530, 530, 530, 530, 530, 530, 530, 533, + 533, 533, 533, 533, 73, 533, 533, 533, 533, 533, + 533, 533, 73, 533, 533, 533, 533, 533, 533, 533, + 73, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 60, 60, 60, + + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 72, 533, 533, 533, 72, 533, 72, 72, - 72, 533, 72, 72, 72, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 79, 533, - 533, 533, 79, 533, 79, 79, 79, 533, 79, 79, - 79, 81, 533, 533, 533, 81, 533, 81, 81, 81, - 533, 81, 81, 81, 83, 533, 533, 83, 83, 533, - 83, 83, 83, 533, 83, 83, 83, 93, 93, 533, - - 533, 93, 117, 533, 533, 117, 117, 533, 117, 117, - 117, 533, 117, 117, 117, 121, 533, 533, 121, 121, - 121, 121, 121, 121, 533, 533, 121, 121, 127, 127, - 128, 533, 533, 128, 533, 533, 128, 128, 128, 128, - 128, 128, 128, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 134, 134, 533, 134, - 533, 134, 134, 134, 134, 134, 134, 134, 134, 140, + 67, 67, 67, 72, 533, 533, 533, 72, 533, 72, + 72, 72, 533, 72, 72, 72, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 79, + 533, 533, 533, 79, 533, 79, 79, 79, 533, 79, + 79, 79, 81, 533, 533, 533, 81, 533, 81, 81, + 81, 533, 81, 81, 81, 83, 533, 533, 83, 83, + 533, 83, 83, 83, 533, 83, 83, 83, 93, 93, + 533, 533, 93, 117, 533, 533, 117, 117, 533, 117, + + 117, 117, 533, 117, 117, 117, 121, 533, 533, 121, + 121, 121, 121, 121, 121, 533, 533, 121, 121, 127, + 127, 128, 533, 533, 128, 533, 533, 128, 128, 128, + 128, 128, 128, 128, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 134, 134, 533, + 134, 533, 134, 134, 134, 134, 134, 134, 134, 134, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 84, 533, 533, 84, 84, 533, 84, 84, - 84, 533, 84, 84, 84, 148, 148, 533, 533, 148, - - 150, 150, 150, 533, 533, 150, 118, 533, 533, 118, - 118, 533, 118, 118, 118, 533, 118, 118, 118, 180, - 180, 533, 533, 180, 186, 186, 186, 533, 533, 186, - 214, 214, 533, 533, 214, 215, 215, 533, 533, 215, - 219, 219, 533, 533, 219, 221, 221, 221, 533, 533, - 221, 254, 254, 533, 533, 254, 256, 256, 533, 533, - 256, 257, 257, 533, 533, 257, 259, 259, 259, 533, - 533, 259, 263, 263, 263, 263, 533, 533, 263, 291, - 291, 533, 533, 291, 292, 292, 533, 533, 292, 293, - 293, 533, 533, 293, 305, 305, 305, 533, 533, 305, - - 306, 306, 306, 306, 533, 533, 306, 339, 339, 533, - 533, 339, 340, 340, 533, 533, 340, 356, 356, 356, - 533, 533, 356, 357, 357, 357, 357, 533, 533, 357, - 382, 382, 533, 533, 382, 386, 533, 386, 386, 533, - 533, 386, 404, 404, 404, 533, 533, 404, 405, 405, - 405, 405, 533, 533, 405, 434, 434, 533, 533, 434, - 435, 533, 435, 435, 533, 533, 435, 451, 451, 451, - 533, 533, 451, 452, 452, 452, 533, 533, 533, 452, - 457, 533, 533, 533, 457, 533, 457, 457, 457, 533, - 457, 457, 457, 459, 533, 533, 533, 459, 533, 459, - - 459, 459, 533, 459, 459, 459, 469, 469, 533, 533, - 469, 470, 533, 470, 470, 533, 533, 470, 486, 486, - 533, 533, 533, 486, 488, 488, 488, 488, 488, 488, - 488, 488, 488, 488, 488, 488, 488, 500, 500, 533, - 533, 500, 501, 533, 501, 501, 533, 533, 501, 514, - 514, 533, 533, 514, 515, 533, 515, 533, 533, 533, - 515, 526, 533, 533, 533, 526, 13, 533, 533, 533, + 140, 140, 140, 84, 533, 533, 84, 84, 533, 84, + 84, 84, 533, 84, 84, 84, 148, 148, 533, 533, + 148, 150, 150, 150, 533, 533, 150, 118, 533, 533, + + 118, 118, 533, 118, 118, 118, 533, 118, 118, 118, + 180, 180, 533, 533, 180, 186, 186, 186, 533, 533, + 186, 214, 214, 533, 533, 214, 215, 215, 533, 533, + 215, 219, 219, 533, 533, 219, 221, 221, 221, 533, + 533, 221, 254, 254, 533, 533, 254, 256, 256, 533, + 533, 256, 257, 257, 533, 533, 257, 259, 259, 259, + 533, 533, 259, 263, 263, 263, 263, 533, 533, 263, + 291, 291, 533, 533, 291, 292, 292, 533, 533, 292, + 293, 293, 533, 533, 293, 305, 305, 305, 533, 533, + 305, 306, 306, 306, 306, 533, 533, 306, 339, 339, + + 533, 533, 339, 340, 340, 533, 533, 340, 356, 356, + 356, 533, 533, 356, 357, 357, 357, 357, 533, 533, + 357, 382, 382, 533, 533, 382, 386, 533, 386, 386, + 533, 533, 386, 404, 404, 404, 533, 533, 404, 405, + 405, 405, 405, 533, 533, 405, 434, 434, 533, 533, + 434, 435, 533, 435, 435, 533, 533, 435, 451, 451, + 451, 533, 533, 451, 452, 452, 452, 533, 533, 533, + 452, 457, 533, 533, 533, 457, 533, 457, 457, 457, + 533, 457, 457, 457, 459, 533, 533, 533, 459, 533, + 459, 459, 459, 533, 459, 459, 459, 469, 469, 533, + + 533, 469, 470, 533, 470, 470, 533, 533, 470, 486, + 486, 533, 533, 533, 486, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 488, 488, 488, 488, 500, 500, + 533, 533, 500, 501, 533, 501, 501, 533, 533, 501, + 514, 514, 533, 533, 514, 515, 533, 515, 533, 533, + 533, 515, 526, 533, 533, 533, 526, 13, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533 + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533 } ; -static yyconst short int yy_chk[3430] = +static yyconst short int yy_chk[3421] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -941,29 +940,29 @@ static yyconst short int yy_chk[3430] = 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 40, 8, 48, 111, 503, 48, 48, - 48, 48, 48, 48, 48, 48, 57, 159, 111, 57, - 57, 57, 57, 57, 57, 57, 57, 170, 103, 98, - 159, 40, 40, 103, 98, 40, 98, 71, 71, 40, - 71, 170, 40, 8, 8, 8, 8, 8, 8, 8, + 48, 48, 48, 48, 48, 48, 57, 168, 111, 57, + 57, 57, 57, 57, 57, 57, 57, 71, 71, 98, + 71, 40, 40, 168, 98, 40, 98, 101, 101, 40, + 123, 123, 40, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9, 9, 113, 123, 123, 49, + 8, 9, 9, 9, 9, 9, 114, 113, 136, 49, 9, 9, 9, 49, 49, 56, 56, 56, 114, 56, - 71, 113, 115, 56, 9, 56, 135, 120, 115, 194, - 114, 49, 120, 501, 101, 101, 168, 56, 56, 126, - 126, 133, 133, 136, 9, 10, 10, 10, 10, 10, - - 49, 194, 168, 150, 10, 10, 10, 73, 56, 73, - 137, 73, 150, 73, 73, 500, 135, 73, 10, 77, - 77, 77, 77, 77, 77, 77, 77, 101, 83, 73, - 73, 73, 83, 83, 133, 166, 136, 206, 10, 25, + 101, 103, 113, 56, 9, 56, 103, 115, 169, 120, + 169, 49, 501, 115, 120, 126, 126, 56, 56, 138, + 138, 133, 133, 150, 9, 10, 10, 10, 10, 10, + + 49, 136, 150, 159, 10, 10, 10, 73, 56, 73, + 137, 73, 209, 73, 73, 179, 159, 73, 10, 77, + 77, 77, 77, 77, 77, 77, 77, 209, 83, 73, + 73, 73, 83, 83, 133, 166, 179, 175, 10, 25, 166, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 83, 137, 175, 25, 25, 25, 25, 25, 78, 78, - 78, 78, 78, 78, 78, 78, 169, 172, 169, 83, - 25, 209, 25, 25, 25, 25, 25, 25, 31, 200, - 172, 179, 31, 175, 31, 200, 209, 31, 31, 206, + 83, 137, 170, 25, 25, 25, 25, 25, 78, 78, + 78, 78, 78, 78, 78, 78, 170, 172, 175, 83, + 25, 250, 25, 25, 25, 25, 25, 25, 31, 200, + 172, 194, 31, 210, 31, 200, 500, 31, 31, 210, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 179, 496, 31, 31, 31, 31, 31, 31, + 31, 31, 250, 194, 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, @@ -971,193 +970,193 @@ static yyconst short int yy_chk[3430] = 183, 183, 33, 33, 33, 33, 33, 86, 86, 86, 86, 86, 86, 86, 86, 92, 92, 92, 92, 92, 92, 33, 33, 33, 33, 33, 33, 37, 37, 37, - 241, 37, 245, 37, 37, 241, 86, 37, 90, 90, - 90, 90, 90, 90, 90, 90, 138, 138, 286, 37, - - 37, 37, 41, 207, 207, 41, 41, 41, 41, 41, - 41, 41, 41, 80, 286, 80, 186, 80, 488, 80, - 80, 210, 82, 80, 82, 186, 82, 210, 82, 82, - 234, 221, 82, 246, 276, 80, 80, 80, 247, 138, - 221, 245, 486, 41, 82, 82, 82, 85, 247, 85, - 246, 85, 234, 85, 85, 482, 276, 85, 91, 91, - 91, 91, 91, 91, 91, 91, 327, 470, 332, 85, + 241, 37, 206, 37, 37, 241, 86, 37, 90, 90, + 90, 90, 90, 90, 90, 90, 207, 207, 248, 37, + + 37, 37, 41, 248, 496, 41, 41, 41, 41, 41, + 41, 41, 41, 80, 246, 80, 186, 80, 208, 80, + 80, 221, 82, 80, 82, 186, 82, 488, 82, 82, + 221, 246, 82, 234, 206, 80, 80, 80, 245, 208, + 223, 223, 247, 41, 82, 82, 82, 85, 486, 85, + 223, 85, 247, 85, 85, 234, 208, 85, 91, 91, + 91, 91, 91, 91, 91, 91, 286, 327, 482, 85, 85, 85, 87, 87, 87, 87, 87, 87, 87, 87, - 208, 419, 327, 332, 87, 87, 87, 87, 87, 190, - 190, 190, 190, 190, 190, 117, 419, 248, 104, 117, - - 117, 208, 248, 87, 87, 87, 87, 87, 87, 95, - 95, 95, 95, 95, 95, 95, 95, 117, 208, 223, - 223, 95, 95, 95, 95, 95, 104, 104, 129, 223, - 104, 129, 129, 279, 104, 250, 117, 104, 129, 285, - 95, 95, 95, 95, 95, 95, 119, 469, 119, 285, - 119, 129, 119, 119, 142, 279, 119, 280, 142, 333, - 284, 225, 225, 259, 142, 263, 250, 459, 119, 119, - 119, 225, 259, 335, 263, 333, 142, 142, 143, 280, + 276, 470, 286, 327, 87, 87, 87, 87, 87, 190, + 190, 190, 190, 190, 190, 117, 279, 245, 104, 117, + + 117, 469, 276, 87, 87, 87, 87, 87, 87, 95, + 95, 95, 95, 95, 95, 95, 95, 117, 279, 225, + 225, 95, 95, 95, 95, 95, 104, 104, 129, 225, + 104, 129, 129, 280, 104, 459, 117, 104, 129, 285, + 95, 95, 95, 95, 95, 95, 119, 457, 119, 285, + 119, 129, 119, 119, 142, 280, 119, 259, 142, 284, + 347, 347, 263, 281, 142, 287, 259, 456, 119, 119, + 119, 263, 281, 335, 287, 319, 142, 142, 143, 323, 143, 143, 143, 143, 143, 143, 143, 143, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 281, 171, 457, + 182, 182, 182, 182, 182, 182, 182, 319, 171, 455, - 319, 342, 171, 335, 347, 347, 281, 284, 171, 143, - 144, 342, 144, 144, 144, 144, 144, 144, 144, 144, - 171, 171, 319, 174, 174, 174, 174, 174, 174, 174, - 174, 178, 456, 178, 178, 178, 178, 178, 178, 323, - 455, 144, 145, 454, 145, 145, 145, 145, 145, 145, + 325, 323, 171, 335, 374, 374, 284, 454, 171, 143, + 144, 452, 144, 144, 144, 144, 144, 144, 144, 144, + 171, 171, 325, 174, 174, 174, 174, 174, 174, 174, + 174, 178, 435, 178, 178, 178, 178, 178, 178, 330, + 434, 144, 145, 430, 145, 145, 145, 145, 145, 145, 145, 145, 174, 187, 187, 187, 187, 187, 187, 187, - 187, 323, 178, 189, 189, 189, 189, 189, 189, 189, - 189, 374, 374, 145, 146, 330, 146, 146, 146, 146, - 146, 146, 146, 146, 264, 264, 393, 393, 146, 146, + 187, 421, 178, 189, 189, 189, 189, 189, 189, 189, + 189, 332, 420, 145, 146, 416, 146, 146, 146, 146, + 146, 146, 146, 146, 264, 264, 332, 330, 146, 146, 146, 146, 146, 192, 264, 192, 192, 192, 192, 192, - 192, 192, 192, 375, 452, 375, 435, 146, 146, 146, + 192, 192, 192, 375, 400, 375, 333, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 434, 330, 430, 149, 149, 149, 149, 149, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 325, - 369, 407, 407, 421, 149, 149, 149, 149, 149, 149, + 149, 149, 333, 393, 393, 149, 149, 149, 149, 149, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 369, + 370, 407, 407, 386, 149, 149, 149, 149, 149, 149, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 420, 325, 369, 151, 151, 151, 151, 151, 222, 222, + 382, 369, 370, 151, 151, 151, 151, 151, 222, 222, 222, 222, 222, 222, 222, 222, 231, 231, 231, 231, 231, 231, 151, 151, 151, 151, 151, 151, 152, 152, - 152, 152, 152, 152, 152, 152, 370, 408, 408, 416, + 152, 152, 152, 152, 152, 152, 408, 408, 411, 411, 152, 152, 152, 152, 152, 224, 224, 224, 224, 224, - 224, 224, 224, 411, 411, 400, 265, 265, 370, 152, + 224, 224, 224, 442, 442, 377, 265, 265, 373, 152, 152, 152, 152, 152, 152, 176, 265, 176, 176, 176, 176, 176, 176, 176, 176, 228, 228, 228, 228, 228, - 228, 228, 228, 386, 344, 228, 230, 230, 230, 230, - 230, 230, 230, 230, 344, 382, 176, 177, 387, 177, - 177, 177, 177, 177, 177, 177, 177, 233, 387, 233, + 228, 228, 228, 372, 342, 228, 230, 230, 230, 230, + 230, 230, 230, 230, 342, 371, 176, 177, 344, 177, + 177, 177, 177, 177, 177, 177, 177, 233, 344, 233, 233, 233, 233, 233, 233, 233, 233, 267, 267, 249, 249, 249, 249, 249, 249, 249, 249, 267, 177, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 377, 287, 373, 188, 188, 188, 188, 188, 249, 253, - 287, 253, 253, 253, 253, 253, 253, 412, 442, 442, - 453, 453, 188, 188, 188, 188, 188, 188, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 305, 412, - 253, 191, 191, 191, 191, 191, 260, 305, 260, 260, - 260, 260, 260, 260, 260, 260, 477, 477, 306, 372, - 191, 191, 191, 191, 191, 191, 211, 306, 211, 211, + 340, 305, 339, 188, 188, 188, 188, 188, 249, 253, + 305, 253, 253, 253, 253, 253, 253, 412, 453, 453, + 477, 477, 188, 188, 188, 188, 188, 188, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 306, 412, + 253, 191, 191, 191, 191, 191, 260, 306, 260, 260, + 260, 260, 260, 260, 260, 260, 329, 307, 307, 328, + 191, 191, 191, 191, 191, 191, 211, 307, 211, 211, 211, 211, 211, 211, 211, 211, 261, 414, 261, 261, 261, 261, 261, 261, 261, 261, 262, 331, 262, 262, 262, 262, 262, 262, 262, 262, 331, 211, 212, 414, 212, 212, 212, 212, 212, 212, 212, 212, 266, 266, 266, 266, 266, 266, 266, 266, 270, 270, 270, 270, - 270, 270, 270, 270, 507, 507, 270, 371, 340, 212, - 213, 339, 213, 213, 213, 213, 213, 213, 213, 213, + 270, 270, 270, 270, 507, 507, 270, 322, 321, 212, + 213, 301, 213, 213, 213, 213, 213, 213, 213, 213, 272, 272, 272, 272, 272, 272, 272, 272, 273, 273, 273, 273, 273, 273, 297, 297, 297, 297, 297, 297, - 329, 213, 226, 226, 226, 226, 226, 226, 226, 226, + 293, 213, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 356, 328, 322, 229, 229, 229, + 229, 229, 229, 229, 356, 292, 291, 229, 229, 229, 229, 229, 275, 356, 275, 275, 275, 275, 275, 275, - 275, 275, 321, 301, 293, 292, 229, 229, 229, 229, + 275, 275, 283, 282, 278, 277, 229, 229, 229, 229, 229, 229, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 291, 283, 282, 232, 232, 232, 232, 232, - 294, 294, 294, 294, 294, 294, 294, 294, 278, 277, - 257, 307, 307, 256, 232, 232, 232, 232, 232, 232, - 251, 307, 251, 251, 251, 251, 251, 251, 251, 251, + 232, 232, 257, 419, 256, 232, 232, 232, 232, 232, + 294, 294, 294, 294, 294, 294, 294, 294, 419, 255, + 254, 308, 308, 244, 232, 232, 232, 232, 232, 232, + 251, 308, 251, 251, 251, 251, 251, 251, 251, 251, 296, 296, 296, 296, 296, 296, 296, 296, 299, 357, 299, 299, 299, 299, 299, 299, 299, 299, 357, 423, - 255, 251, 252, 254, 252, 252, 252, 252, 252, 252, + 243, 251, 252, 242, 252, 252, 252, 252, 252, 252, 252, 252, 300, 300, 300, 300, 300, 300, 300, 300, - 302, 388, 302, 302, 302, 302, 302, 302, 302, 302, - 423, 388, 491, 252, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 244, 243, 242, 258, 258, 258, 258, - 258, 303, 390, 303, 303, 303, 303, 303, 303, 303, - 303, 240, 390, 491, 518, 258, 258, 258, 258, 258, + 302, 387, 302, 302, 302, 302, 302, 302, 302, 302, + 423, 387, 491, 252, 258, 258, 258, 258, 258, 258, + 258, 258, 258, 240, 239, 238, 258, 258, 258, 258, + 258, 303, 388, 303, 303, 303, 303, 303, 303, 303, + 303, 237, 388, 491, 518, 258, 258, 258, 258, 258, 258, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 404, 239, 518, 271, 271, 271, 271, + 271, 271, 271, 404, 236, 518, 271, 271, 271, 271, 271, 304, 404, 304, 304, 304, 304, 304, 304, 316, 316, 316, 316, 316, 316, 271, 271, 271, 271, 271, 271, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 308, 308, 238, 274, 274, 274, 274, 274, 418, - 418, 308, 309, 309, 309, 309, 309, 309, 309, 309, - 237, 236, 418, 274, 274, 274, 274, 274, 274, 288, + 274, 220, 219, 218, 274, 274, 274, 274, 274, 309, + 309, 309, 309, 309, 309, 309, 309, 350, 350, 350, + 350, 350, 350, 274, 274, 274, 274, 274, 274, 288, 288, 288, 288, 288, 288, 288, 288, 288, 310, 310, - 313, 313, 313, 313, 313, 313, 313, 313, 310, 220, + 313, 313, 313, 313, 313, 313, 313, 313, 310, 217, 313, 315, 315, 315, 315, 315, 315, 315, 315, 288, 289, 289, 289, 289, 289, 289, 289, 289, 289, 318, - 219, 318, 318, 318, 318, 318, 318, 318, 318, 334, - 334, 334, 334, 334, 334, 334, 334, 218, 217, 215, + 215, 318, 318, 318, 318, 318, 318, 318, 318, 334, + 334, 334, 334, 334, 334, 334, 334, 214, 205, 204, 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, 341, 341, 341, 341, 341, 341, 341, 341, 334, 358, - 358, 338, 338, 338, 338, 338, 338, 338, 214, 358, - 205, 290, 295, 436, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 436, 204, 203, 295, 295, 295, 295, + 358, 338, 338, 338, 338, 338, 338, 338, 203, 358, + 202, 290, 295, 390, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 390, 201, 199, 295, 295, 295, 295, 295, 338, 343, 343, 343, 343, 343, 343, 343, 343, - 202, 201, 199, 198, 197, 295, 295, 295, 295, 295, + 198, 197, 196, 195, 193, 295, 295, 295, 295, 295, 295, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 196, 195, 193, 298, 298, 298, 298, 298, 349, 349, - 349, 349, 349, 349, 349, 349, 350, 350, 350, 350, + 185, 184, 181, 298, 298, 298, 298, 298, 349, 349, + 349, 349, 349, 349, 349, 349, 367, 367, 367, 367, - 350, 350, 298, 298, 298, 298, 298, 298, 311, 311, + 367, 367, 298, 298, 298, 298, 298, 298, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 405, 185, 184, 314, 314, 314, 314, 314, 352, 405, - 352, 352, 352, 352, 352, 352, 352, 352, 181, 180, - 173, 167, 314, 314, 314, 314, 314, 314, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 359, 359, 164, - 163, 317, 317, 317, 317, 317, 353, 359, 353, 353, - 353, 353, 353, 353, 353, 353, 162, 161, 160, 158, + 405, 180, 173, 314, 314, 314, 314, 314, 352, 405, + 352, 352, 352, 352, 352, 352, 352, 352, 167, 164, + 163, 162, 314, 314, 314, 314, 314, 314, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 359, 359, 161, + 160, 317, 317, 317, 317, 317, 353, 359, 353, 353, + 353, 353, 353, 353, 353, 353, 158, 157, 156, 155, 317, 317, 317, 317, 317, 317, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 354, 437, 354, 354, 354, - 354, 354, 354, 354, 354, 355, 437, 355, 355, 355, - 355, 355, 355, 355, 355, 157, 336, 337, 337, 337, + 336, 336, 336, 336, 336, 354, 436, 354, 354, 354, + 354, 354, 354, 354, 354, 355, 436, 355, 355, 355, + 355, 355, 355, 355, 355, 154, 336, 337, 337, 337, 337, 337, 337, 337, 337, 337, 360, 360, 360, 360, 360, 360, 360, 360, 361, 361, 364, 364, 364, 364, - 364, 364, 364, 364, 361, 156, 364, 337, 345, 155, + 364, 364, 364, 364, 361, 153, 364, 337, 345, 148, 345, 345, 345, 345, 345, 345, 345, 345, 345, 348, - 439, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 439, 154, 153, 348, 348, 348, 348, 348, 366, 366, - 366, 366, 366, 366, 366, 366, 367, 367, 367, 367, - - 367, 367, 348, 348, 348, 348, 348, 348, 351, 351, - 351, 351, 351, 351, 351, 351, 351, 451, 148, 147, - 351, 351, 351, 351, 351, 368, 451, 368, 368, 368, - 368, 368, 368, 368, 368, 140, 139, 134, 132, 351, + 437, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 437, 147, 140, 348, 348, 348, 348, 348, 366, 366, + 366, 366, 366, 366, 366, 366, 396, 396, 396, 396, + + 396, 396, 348, 348, 348, 348, 348, 348, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 139, 135, 134, + 351, 351, 351, 351, 351, 368, 439, 368, 368, 368, + 368, 368, 368, 368, 368, 132, 439, 128, 122, 351, 351, 351, 351, 351, 351, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 365, 365, 365, 365, - 365, 365, 365, 365, 365, 365, 128, 406, 406, 122, + 365, 365, 365, 365, 365, 365, 118, 406, 406, 116, 365, 365, 365, 365, 365, 376, 383, 406, 383, 383, - 383, 383, 383, 383, 383, 383, 465, 465, 465, 365, - 365, 365, 365, 365, 365, 376, 118, 376, 376, 384, + 383, 383, 383, 383, 383, 383, 471, 418, 418, 365, + 365, 365, 365, 365, 365, 376, 471, 376, 376, 384, - 116, 384, 384, 384, 384, 384, 384, 384, 384, 396, - 396, 396, 396, 396, 396, 465, 376, 378, 471, 378, - 378, 378, 378, 378, 378, 378, 378, 385, 471, 385, + 418, 384, 384, 384, 384, 384, 384, 384, 384, 445, + 445, 445, 445, 445, 445, 109, 376, 378, 472, 378, + 378, 378, 378, 378, 378, 378, 378, 385, 472, 385, 385, 385, 385, 385, 385, 385, 385, 389, 389, 389, - 389, 389, 389, 389, 389, 109, 108, 107, 378, 379, - 106, 379, 379, 379, 379, 379, 379, 379, 379, 395, - 395, 395, 395, 395, 395, 395, 395, 398, 472, 398, - 398, 398, 398, 398, 398, 398, 398, 105, 472, 100, - 379, 380, 99, 380, 380, 380, 380, 380, 380, 380, + 389, 389, 389, 389, 389, 108, 107, 106, 378, 379, + 105, 379, 379, 379, 379, 379, 379, 379, 379, 395, + 395, 395, 395, 395, 395, 395, 395, 398, 451, 398, + 398, 398, 398, 398, 398, 398, 398, 451, 100, 99, + 379, 380, 97, 380, 380, 380, 380, 380, 380, 380, 380, 399, 399, 399, 399, 399, 399, 399, 399, 401, - 474, 401, 401, 401, 401, 401, 401, 401, 401, 97, - 474, 93, 380, 381, 502, 381, 381, 381, 381, 381, + 474, 401, 401, 401, 401, 401, 401, 401, 401, 93, + 474, 89, 380, 381, 502, 381, 381, 381, 381, 381, 381, 381, 381, 402, 502, 402, 402, 402, 402, 402, - 402, 402, 402, 403, 89, 403, 403, 403, 403, 403, - 403, 88, 84, 81, 381, 391, 79, 391, 391, 391, + 402, 402, 402, 403, 88, 403, 403, 403, 403, 403, + 403, 84, 81, 79, 381, 391, 76, 391, 391, 391, 391, 391, 391, 391, 391, 391, 394, 417, 394, 394, - 394, 394, 394, 394, 394, 394, 394, 76, 75, 74, - 394, 394, 394, 394, 394, 72, 67, 417, 60, 417, - 417, 428, 53, 428, 428, 428, 47, 46, 45, 394, + 394, 394, 394, 394, 394, 394, 394, 75, 74, 72, + 394, 394, 394, 394, 394, 67, 60, 417, 53, 417, + 417, 428, 47, 428, 428, 428, 46, 45, 44, 394, 394, 394, 394, 394, 394, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 44, 43, 42, 397, 397, 397, + 397, 397, 397, 397, 43, 42, 36, 397, 397, 397, 397, 397, 428, 422, 422, 422, 422, 422, 422, 422, - 422, 36, 35, 34, 32, 28, 397, 397, 397, 397, + 422, 35, 34, 32, 28, 22, 397, 397, 397, 397, 397, 397, 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 422, 424, 22, 424, 424, 424, 424, 424, + 409, 409, 422, 424, 19, 424, 424, 424, 424, 424, 424, 424, 424, 429, 429, 429, 429, 429, 429, 429, - 429, 431, 19, 431, 431, 431, 431, 431, 431, 431, - 431, 17, 15, 14, 424, 425, 13, 425, 425, 425, + 429, 431, 17, 431, 431, 431, 431, 431, 431, 431, + 431, 15, 14, 13, 424, 425, 0, 425, 425, 425, 425, 425, 425, 425, 425, 432, 0, 432, 432, 432, 432, 432, 432, 432, 432, 433, 0, 433, 433, 433, @@ -1165,137 +1164,136 @@ static yyconst short int yy_chk[3430] = 426, 426, 426, 426, 426, 426, 426, 438, 438, 438, 438, 438, 438, 438, 438, 444, 444, 444, 444, 444, 444, 444, 444, 0, 0, 0, 0, 0, 426, 427, - 0, 427, 427, 427, 427, 427, 427, 427, 427, 445, - 445, 445, 445, 445, 445, 447, 0, 447, 447, 447, - 447, 447, 447, 447, 447, 0, 0, 0, 0, 0, + 0, 427, 427, 427, 427, 427, 427, 427, 427, 447, + 0, 447, 447, 447, 447, 447, 447, 447, 447, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 0, 0, 427, 440, 0, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 0, 443, 443, 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, 443, 443, 443, 443, - 443, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 443, 449, 449, 449, 449, 449, 449, 449, 449, 449, 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 443, 446, 446, 446, 446, 446, 446, 446, 446, 0, - 0, 0, 0, 446, 446, 446, 446, 446, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 0, 0, 0, - 0, 0, 446, 446, 446, 446, 446, 446, 450, 450, - 450, 450, 450, 450, 450, 450, 450, 458, 0, 458, - 0, 458, 0, 458, 458, 0, 460, 458, 460, 0, - 460, 0, 460, 460, 0, 0, 460, 0, 0, 458, - 458, 458, 480, 480, 480, 480, 480, 480, 460, 460, - - 460, 461, 0, 461, 461, 461, 461, 461, 461, 461, - 461, 0, 0, 0, 464, 464, 464, 464, 464, 464, - 464, 464, 466, 0, 466, 466, 466, 466, 466, 466, - 466, 466, 461, 462, 0, 462, 462, 462, 462, 462, - 462, 462, 462, 464, 467, 0, 467, 467, 467, 467, - 467, 467, 467, 467, 468, 0, 468, 468, 468, 468, - 468, 468, 468, 468, 462, 463, 0, 463, 463, 463, - 463, 463, 463, 463, 463, 473, 473, 473, 473, 473, - 473, 473, 473, 479, 479, 479, 479, 479, 479, 479, - 479, 0, 0, 0, 0, 0, 463, 475, 0, 475, - - 475, 475, 475, 475, 475, 475, 475, 475, 478, 0, - 478, 478, 478, 478, 478, 478, 478, 478, 0, 0, - 0, 0, 478, 478, 478, 478, 478, 481, 0, 481, - 481, 481, 481, 481, 481, 481, 481, 0, 0, 0, - 0, 478, 478, 478, 478, 478, 478, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 484, 484, 484, 484, - 484, 484, 484, 484, 484, 485, 485, 485, 485, 485, - 485, 485, 490, 490, 490, 490, 490, 490, 490, 490, - 0, 494, 0, 494, 494, 494, 494, 494, 494, 495, - 495, 495, 495, 495, 495, 495, 495, 0, 0, 0, - - 0, 490, 492, 0, 492, 492, 492, 492, 492, 492, - 492, 492, 494, 497, 0, 497, 497, 497, 497, 497, - 497, 497, 497, 498, 0, 498, 498, 498, 498, 498, - 498, 498, 498, 492, 493, 0, 493, 493, 493, 493, - 493, 493, 493, 493, 499, 0, 499, 499, 499, 499, - 499, 499, 505, 0, 505, 505, 505, 505, 505, 505, - 505, 505, 0, 0, 0, 493, 508, 0, 508, 508, - 508, 508, 508, 508, 508, 508, 511, 511, 511, 511, - 511, 511, 511, 511, 512, 512, 512, 512, 512, 512, - 512, 512, 0, 0, 0, 0, 0, 508, 509, 0, - - 509, 509, 509, 509, 509, 509, 509, 509, 513, 513, - 513, 513, 513, 513, 513, 513, 517, 517, 517, 517, - 517, 517, 517, 517, 0, 0, 0, 0, 0, 509, - 510, 0, 510, 510, 510, 510, 510, 510, 510, 510, - 0, 0, 0, 0, 521, 517, 521, 521, 521, 521, - 521, 521, 523, 523, 523, 523, 523, 523, 523, 523, - 0, 510, 519, 0, 519, 519, 519, 519, 519, 519, - 519, 519, 0, 0, 0, 521, 524, 524, 524, 524, - 524, 524, 524, 524, 525, 525, 525, 525, 525, 525, - 0, 0, 0, 519, 520, 0, 520, 520, 520, 520, - - 520, 520, 520, 520, 527, 527, 527, 527, 527, 527, - 527, 527, 528, 528, 528, 528, 528, 528, 528, 528, - 0, 0, 0, 0, 0, 520, 0, 0, 0, 0, - 0, 0, 0, 527, 532, 532, 532, 532, 532, 532, - 0, 528, 529, 529, 529, 529, 529, 529, 529, 529, - 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, - 0, 0, 0, 532, 0, 0, 0, 0, 0, 0, - 0, 529, 0, 0, 0, 0, 0, 0, 0, 531, - 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, - 534, 534, 534, 535, 535, 535, 535, 535, 535, 535, - - 535, 535, 535, 535, 535, 535, 536, 536, 536, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 537, + 465, 465, 465, 446, 446, 446, 446, 446, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 0, 0, 0, + 0, 0, 446, 446, 446, 446, 446, 446, 458, 465, + 458, 0, 458, 0, 458, 458, 0, 460, 458, 460, + 0, 460, 0, 460, 460, 0, 0, 460, 0, 0, + 458, 458, 458, 480, 480, 480, 480, 480, 480, 460, + 460, 460, 461, 0, 461, 461, 461, 461, 461, 461, + + 461, 461, 0, 0, 0, 464, 464, 464, 464, 464, + 464, 464, 464, 466, 0, 466, 466, 466, 466, 466, + 466, 466, 466, 461, 462, 0, 462, 462, 462, 462, + 462, 462, 462, 462, 464, 467, 0, 467, 467, 467, + 467, 467, 467, 467, 467, 468, 0, 468, 468, 468, + 468, 468, 468, 468, 468, 462, 463, 0, 463, 463, + 463, 463, 463, 463, 463, 463, 473, 473, 473, 473, + 473, 473, 473, 473, 479, 479, 479, 479, 479, 479, + 479, 479, 0, 0, 0, 0, 0, 463, 475, 0, + 475, 475, 475, 475, 475, 475, 475, 475, 475, 478, + + 0, 478, 478, 478, 478, 478, 478, 478, 478, 0, + 0, 0, 0, 478, 478, 478, 478, 478, 481, 0, + 481, 481, 481, 481, 481, 481, 481, 481, 0, 0, + 0, 0, 478, 478, 478, 478, 478, 478, 483, 483, + 483, 483, 483, 483, 483, 483, 483, 484, 484, 484, + 484, 484, 484, 484, 484, 484, 485, 485, 485, 485, + 485, 485, 485, 490, 490, 490, 490, 490, 490, 490, + 490, 0, 494, 0, 494, 494, 494, 494, 494, 494, + 495, 495, 495, 495, 495, 495, 495, 495, 0, 0, + 0, 0, 490, 492, 0, 492, 492, 492, 492, 492, + + 492, 492, 492, 494, 497, 0, 497, 497, 497, 497, + 497, 497, 497, 497, 498, 0, 498, 498, 498, 498, + 498, 498, 498, 498, 492, 493, 0, 493, 493, 493, + 493, 493, 493, 493, 493, 499, 0, 499, 499, 499, + 499, 499, 499, 505, 0, 505, 505, 505, 505, 505, + 505, 505, 505, 0, 0, 0, 493, 508, 0, 508, + 508, 508, 508, 508, 508, 508, 508, 511, 511, 511, + 511, 511, 511, 511, 511, 512, 512, 512, 512, 512, + 512, 512, 512, 0, 0, 0, 0, 0, 508, 509, + 0, 509, 509, 509, 509, 509, 509, 509, 509, 513, + + 513, 513, 513, 513, 513, 513, 513, 517, 517, 517, + 517, 517, 517, 517, 517, 0, 0, 0, 0, 0, + 509, 510, 0, 510, 510, 510, 510, 510, 510, 510, + 510, 0, 0, 0, 0, 521, 517, 521, 521, 521, + 521, 521, 521, 523, 523, 523, 523, 523, 523, 523, + 523, 0, 510, 519, 0, 519, 519, 519, 519, 519, + 519, 519, 519, 0, 0, 0, 521, 524, 524, 524, + 524, 524, 524, 524, 524, 525, 525, 525, 525, 525, + 525, 0, 0, 0, 519, 520, 0, 520, 520, 520, + 520, 520, 520, 520, 520, 527, 527, 527, 527, 527, + + 527, 527, 527, 528, 528, 528, 528, 528, 528, 528, + 528, 0, 0, 0, 0, 0, 520, 0, 0, 0, + 0, 0, 0, 0, 527, 532, 532, 532, 532, 532, + 532, 0, 528, 529, 529, 529, 529, 529, 529, 529, + 529, 531, 531, 531, 531, 531, 531, 531, 531, 0, + 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, + 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, + 531, 534, 534, 534, 534, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 535, 535, 535, 535, 535, 535, + 535, 535, 535, 535, 535, 535, 535, 536, 536, 536, + + 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 538, 0, 0, 0, 538, 0, 538, 538, - 538, 0, 538, 538, 538, 539, 539, 539, 539, 539, - 539, 539, 539, 539, 539, 539, 539, 539, 540, 0, - 0, 0, 540, 0, 540, 540, 540, 0, 540, 540, - 540, 541, 0, 0, 0, 541, 0, 541, 541, 541, - 0, 541, 541, 541, 542, 0, 0, 542, 542, 0, - 542, 542, 542, 0, 542, 542, 542, 543, 543, 0, - - 0, 543, 544, 0, 0, 544, 544, 0, 544, 544, - 544, 0, 544, 544, 544, 545, 0, 0, 545, 545, - 545, 545, 545, 545, 0, 0, 545, 545, 546, 546, - 547, 0, 0, 547, 0, 0, 547, 547, 547, 547, - 547, 547, 547, 548, 548, 548, 548, 548, 548, 548, - 548, 548, 548, 548, 548, 548, 549, 549, 0, 549, - 0, 549, 549, 549, 549, 549, 549, 549, 549, 550, + 537, 537, 537, 538, 0, 0, 0, 538, 0, 538, + 538, 538, 0, 538, 538, 538, 539, 539, 539, 539, + 539, 539, 539, 539, 539, 539, 539, 539, 539, 540, + 0, 0, 0, 540, 0, 540, 540, 540, 0, 540, + 540, 540, 541, 0, 0, 0, 541, 0, 541, 541, + 541, 0, 541, 541, 541, 542, 0, 0, 542, 542, + 0, 542, 542, 542, 0, 542, 542, 542, 543, 543, + 0, 0, 543, 544, 0, 0, 544, 544, 0, 544, + + 544, 544, 0, 544, 544, 544, 545, 0, 0, 545, + 545, 545, 545, 545, 545, 0, 0, 545, 545, 546, + 546, 547, 0, 0, 547, 0, 0, 547, 547, 547, + 547, 547, 547, 547, 548, 548, 548, 548, 548, 548, + 548, 548, 548, 548, 548, 548, 548, 549, 549, 0, + 549, 0, 549, 549, 549, 549, 549, 549, 549, 549, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, - 550, 550, 551, 0, 0, 551, 551, 0, 551, 551, - 551, 0, 551, 551, 551, 552, 552, 0, 0, 552, - - 553, 553, 553, 0, 0, 553, 554, 0, 0, 554, - 554, 0, 554, 554, 554, 0, 554, 554, 554, 555, - 555, 0, 0, 555, 556, 556, 556, 0, 0, 556, - 557, 557, 0, 0, 557, 558, 558, 0, 0, 558, - 559, 559, 0, 0, 559, 560, 560, 560, 0, 0, - 560, 561, 561, 0, 0, 561, 562, 562, 0, 0, - 562, 563, 563, 0, 0, 563, 564, 564, 564, 0, - 0, 564, 565, 565, 565, 565, 0, 0, 565, 566, - 566, 0, 0, 566, 567, 567, 0, 0, 567, 568, - 568, 0, 0, 568, 569, 569, 569, 0, 0, 569, - - 570, 570, 570, 570, 0, 0, 570, 571, 571, 0, - 0, 571, 572, 572, 0, 0, 572, 573, 573, 573, - 0, 0, 573, 574, 574, 574, 574, 0, 0, 574, - 575, 575, 0, 0, 575, 576, 0, 576, 576, 0, - 0, 576, 577, 577, 577, 0, 0, 577, 578, 578, - 578, 578, 0, 0, 578, 579, 579, 0, 0, 579, - 580, 0, 580, 580, 0, 0, 580, 581, 581, 581, - 0, 0, 581, 582, 582, 582, 0, 0, 0, 582, - 583, 0, 0, 0, 583, 0, 583, 583, 583, 0, - 583, 583, 583, 584, 0, 0, 0, 584, 0, 584, - - 584, 584, 0, 584, 584, 584, 585, 585, 0, 0, - 585, 586, 0, 586, 586, 0, 0, 586, 587, 587, - 0, 0, 0, 587, 588, 588, 588, 588, 588, 588, - 588, 588, 588, 588, 588, 588, 588, 589, 589, 0, - 0, 589, 590, 0, 590, 590, 0, 0, 590, 591, - 591, 0, 0, 591, 592, 0, 592, 0, 0, 0, - 592, 593, 0, 0, 0, 593, 533, 533, 533, 533, + 550, 550, 550, 551, 0, 0, 551, 551, 0, 551, + 551, 551, 0, 551, 551, 551, 552, 552, 0, 0, + 552, 553, 553, 553, 0, 0, 553, 554, 0, 0, + + 554, 554, 0, 554, 554, 554, 0, 554, 554, 554, + 555, 555, 0, 0, 555, 556, 556, 556, 0, 0, + 556, 557, 557, 0, 0, 557, 558, 558, 0, 0, + 558, 559, 559, 0, 0, 559, 560, 560, 560, 0, + 0, 560, 561, 561, 0, 0, 561, 562, 562, 0, + 0, 562, 563, 563, 0, 0, 563, 564, 564, 564, + 0, 0, 564, 565, 565, 565, 565, 0, 0, 565, + 566, 566, 0, 0, 566, 567, 567, 0, 0, 567, + 568, 568, 0, 0, 568, 569, 569, 569, 0, 0, + 569, 570, 570, 570, 570, 0, 0, 570, 571, 571, + + 0, 0, 571, 572, 572, 0, 0, 572, 573, 573, + 573, 0, 0, 573, 574, 574, 574, 574, 0, 0, + 574, 575, 575, 0, 0, 575, 576, 0, 576, 576, + 0, 0, 576, 577, 577, 577, 0, 0, 577, 578, + 578, 578, 578, 0, 0, 578, 579, 579, 0, 0, + 579, 580, 0, 580, 580, 0, 0, 580, 581, 581, + 581, 0, 0, 581, 582, 582, 582, 0, 0, 0, + 582, 583, 0, 0, 0, 583, 0, 583, 583, 583, + 0, 583, 583, 583, 584, 0, 0, 0, 584, 0, + 584, 584, 584, 0, 584, 584, 584, 585, 585, 0, + + 0, 585, 586, 0, 586, 586, 0, 0, 586, 587, + 587, 0, 0, 0, 587, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, + 0, 0, 589, 590, 0, 590, 590, 0, 0, 590, + 591, 591, 0, 0, 591, 592, 0, 592, 0, 0, + 0, 592, 593, 0, 0, 0, 593, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 533, 533 + 533, 533, 533, 533, 533, 533, 533, 533, 533, 533 } ; static yy_state_type yy_last_accepting_state; @@ -1411,7 +1409,7 @@ extern void yyerror __P((const char *)); #define INSTR 5 -#line 1415 "lex.yy.c" +#line 1413 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1567,7 +1565,7 @@ YY_DECL #line 113 "toke.l" -#line 1571 "lex.yy.c" +#line 1569 "lex.yy.c" if ( yy_init ) { @@ -1625,7 +1623,7 @@ yy_match: yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3367 ); + while ( yy_base[yy_current_state] != 3358 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1743,20 +1741,26 @@ YY_RULE_SETUP case 11: YY_RULE_SETUP #line 173 "toke.l" +{ + LEXTRACE("BACKSLASH "); + if (!append(yytext, yyleng)) + yyterminate(); + } + YY_BREAK +case 12: +YY_RULE_SETUP +#line 179 "toke.l" { LEXTRACE("STRBODY "); - /* Push back line continuation char if present */ - if (yytext[yyleng - 1] == '\\') - yyless(yyleng - 1); if (!append(yytext, yyleng)) yyterminate(); } YY_BREAK -case 12: +case 13: YY_RULE_SETUP -#line 184 "toke.l" +#line 187 "toke.l" { /* quoted fnmatch glob char, pass verbatim */ LEXTRACE("QUOTEDCHAR "); @@ -1765,9 +1769,9 @@ YY_RULE_SETUP sawspace = FALSE; } YY_BREAK -case 13: +case 14: YY_RULE_SETUP -#line 192 "toke.l" +#line 195 "toke.l" { /* quoted sudoers special char, strip backslash */ LEXTRACE("QUOTEDCHAR "); @@ -1776,18 +1780,18 @@ YY_RULE_SETUP sawspace = FALSE; } YY_BREAK -case 14: +case 15: YY_RULE_SETUP -#line 200 "toke.l" +#line 203 "toke.l" { BEGIN INITIAL; yyless(0); return(COMMAND); } /* end of command line args */ YY_BREAK -case 15: +case 16: YY_RULE_SETUP -#line 206 "toke.l" +#line 209 "toke.l" { LEXTRACE("ARG "); if (!fill_args(yytext, yyleng, sawspace)) @@ -1796,9 +1800,9 @@ YY_RULE_SETUP } /* a command line arg */ YY_BREAK -case 16: +case 17: YY_RULE_SETUP -#line 214 "toke.l" +#line 217 "toke.l" { char *path; @@ -1812,9 +1816,9 @@ YY_RULE_SETUP yyterminate(); } YY_BREAK -case 17: +case 18: YY_RULE_SETUP -#line 227 "toke.l" +#line 230 "toke.l" { int n; for (n = 0; isblank((unsigned char)yytext[n]); n++) @@ -1844,9 +1848,9 @@ YY_RULE_SETUP } } YY_BREAK -case 18: +case 19: YY_RULE_SETUP -#line 256 "toke.l" +#line 259 "toke.l" { int n; for (n = 0; isblank((unsigned char)yytext[n]); n++) @@ -1867,59 +1871,59 @@ YY_RULE_SETUP } } YY_BREAK -case 19: +case 20: YY_RULE_SETUP -#line 276 "toke.l" +#line 279 "toke.l" { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); return(NOPASSWD); } YY_BREAK -case 20: +case 21: YY_RULE_SETUP -#line 282 "toke.l" +#line 285 "toke.l" { /* cmnd requires passwd for this user */ LEXTRACE("PASSWD "); return(PASSWD); } YY_BREAK -case 21: +case 22: YY_RULE_SETUP -#line 288 "toke.l" +#line 291 "toke.l" { LEXTRACE("NOEXEC "); return(NOEXEC); } YY_BREAK -case 22: +case 23: YY_RULE_SETUP -#line 293 "toke.l" +#line 296 "toke.l" { LEXTRACE("EXEC "); return(EXEC); } YY_BREAK -case 23: +case 24: YY_RULE_SETUP -#line 298 "toke.l" +#line 301 "toke.l" { LEXTRACE("SETENV "); return(SETENV); } YY_BREAK -case 24: +case 25: YY_RULE_SETUP -#line 303 "toke.l" +#line 306 "toke.l" { LEXTRACE("NOSETENV "); return(NOSETENV); } YY_BREAK -case 25: +case 26: YY_RULE_SETUP -#line 308 "toke.l" +#line 311 "toke.l" { /* netgroup */ if (!fill(yytext, yyleng)) @@ -1928,9 +1932,9 @@ YY_RULE_SETUP return(NETGROUP); } YY_BREAK -case 26: +case 27: YY_RULE_SETUP -#line 316 "toke.l" +#line 319 "toke.l" { /* UN*X group */ if (!fill(yytext, yyleng)) @@ -1939,9 +1943,9 @@ YY_RULE_SETUP return(USERGROUP); } YY_BREAK -case 27: +case 28: YY_RULE_SETUP -#line 324 "toke.l" +#line 327 "toke.l" { if (!fill(yytext, yyleng)) yyterminate(); @@ -1949,9 +1953,9 @@ YY_RULE_SETUP return(NTWKADDR); } YY_BREAK -case 28: +case 29: YY_RULE_SETUP -#line 331 "toke.l" +#line 334 "toke.l" { if (!fill(yytext, yyleng)) yyterminate(); @@ -1959,9 +1963,9 @@ YY_RULE_SETUP return(NTWKADDR); } YY_BREAK -case 29: +case 30: YY_RULE_SETUP -#line 338 "toke.l" +#line 341 "toke.l" { if (!ipv6_valid(yytext)) { LEXTRACE("ERROR "); @@ -1973,9 +1977,9 @@ YY_RULE_SETUP return(NTWKADDR); } YY_BREAK -case 30: +case 31: YY_RULE_SETUP -#line 349 "toke.l" +#line 352 "toke.l" { if (!ipv6_valid(yytext)) { LEXTRACE("ERROR "); @@ -1987,9 +1991,9 @@ YY_RULE_SETUP return(NTWKADDR); } YY_BREAK -case 31: +case 32: YY_RULE_SETUP -#line 360 "toke.l" +#line 363 "toke.l" { if (strcmp(yytext, "ALL") == 0) { LEXTRACE("ALL "); @@ -2012,9 +2016,9 @@ YY_RULE_SETUP return(ALIAS); } YY_BREAK -case 32: +case 33: YY_RULE_SETUP -#line 382 "toke.l" +#line 385 "toke.l" { /* no command args allowed for Defaults!/path */ if (!fill_cmnd(yytext, yyleng)) @@ -2023,9 +2027,9 @@ YY_RULE_SETUP return(COMMAND); } YY_BREAK -case 33: +case 34: YY_RULE_SETUP -#line 390 "toke.l" +#line 393 "toke.l" { BEGIN GOTCMND; LEXTRACE("COMMAND "); @@ -2033,9 +2037,9 @@ YY_RULE_SETUP yyterminate(); } /* sudo -e */ YY_BREAK -case 34: +case 35: YY_RULE_SETUP -#line 397 "toke.l" +#line 400 "toke.l" { /* directories can't have args... */ if (yytext[yyleng - 1] == '/') { @@ -2051,9 +2055,9 @@ YY_RULE_SETUP } } /* a pathname */ YY_BREAK -case 35: +case 36: YY_RULE_SETUP -#line 412 "toke.l" +#line 415 "toke.l" { /* a word */ if (!fill(yytext, yyleng)) @@ -2062,57 +2066,57 @@ YY_RULE_SETUP return(WORD); } YY_BREAK -case 36: +case 37: YY_RULE_SETUP -#line 420 "toke.l" +#line 423 "toke.l" { LEXTRACE("( "); return ('('); } YY_BREAK -case 37: +case 38: YY_RULE_SETUP -#line 425 "toke.l" +#line 428 "toke.l" { LEXTRACE(") "); return(')'); } YY_BREAK -case 38: +case 39: YY_RULE_SETUP -#line 430 "toke.l" +#line 433 "toke.l" { LEXTRACE(", "); return(','); } /* return ',' */ YY_BREAK -case 39: +case 40: YY_RULE_SETUP -#line 435 "toke.l" +#line 438 "toke.l" { LEXTRACE("= "); return('='); } /* return '=' */ YY_BREAK -case 40: +case 41: YY_RULE_SETUP -#line 440 "toke.l" +#line 443 "toke.l" { LEXTRACE(": "); return(':'); } /* return ':' */ YY_BREAK -case 41: +case 42: YY_RULE_SETUP -#line 445 "toke.l" +#line 448 "toke.l" { if (yyleng % 2 == 1) return('!'); /* return '!' */ } YY_BREAK -case 42: +case 43: YY_RULE_SETUP -#line 450 "toke.l" +#line 453 "toke.l" { BEGIN INITIAL; ++sudolineno; @@ -2120,25 +2124,25 @@ YY_RULE_SETUP return(COMMENT); } /* return newline */ YY_BREAK -case 43: +case 44: YY_RULE_SETUP -#line 457 "toke.l" +#line 460 "toke.l" { /* throw away space/tabs */ sawspace = TRUE; /* but remember for fill_args */ } YY_BREAK -case 44: +case 45: YY_RULE_SETUP -#line 461 "toke.l" +#line 464 "toke.l" { sawspace = TRUE; /* remember for fill_args */ ++sudolineno; LEXTRACE("\n\t"); } /* throw away EOL after \ */ YY_BREAK -case 45: +case 46: YY_RULE_SETUP -#line 467 "toke.l" +#line 470 "toke.l" { BEGIN INITIAL; ++sudolineno; @@ -2146,9 +2150,9 @@ YY_RULE_SETUP return(COMMENT); } /* return comments */ YY_BREAK -case 46: +case 47: YY_RULE_SETUP -#line 474 "toke.l" +#line 477 "toke.l" { LEXTRACE("ERROR "); return(ERROR); @@ -2160,7 +2164,7 @@ case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(STARTDEFS): case YY_STATE_EOF(INDEFS): case YY_STATE_EOF(INSTR): -#line 479 "toke.l" +#line 482 "toke.l" { if (YY_START != INITIAL) { BEGIN INITIAL; @@ -2171,12 +2175,12 @@ case YY_STATE_EOF(INSTR): yyterminate(); } YY_BREAK -case 47: +case 48: YY_RULE_SETUP -#line 489 "toke.l" +#line 492 "toke.l" ECHO; YY_BREAK -#line 2180 "lex.yy.c" +#line 2184 "lex.yy.c" case YY_END_OF_BUFFER: { @@ -3065,7 +3069,7 @@ int main() return 0; } #endif -#line 489 "toke.l" +#line 492 "toke.l" static int _fill(src, len, olen) diff --git a/toke.l b/toke.l index e1e1c7b8b..fb026c8e3 100644 --- a/toke.l +++ b/toke.l @@ -158,7 +158,7 @@ DEFVAR [a-z_]+ } { - \\\n[[:blank:]]* { + \\[[:blank:]]*\n[[:blank:]]* { /* Line continuation char followed by newline. */ ++sudolineno; LEXTRACE("\n"); @@ -170,11 +170,14 @@ DEFVAR [a-z_]+ return(WORD); } - ([^\"\n]|\\\")+ { + \\ { + LEXTRACE("BACKSLASH "); + if (!append(yytext, yyleng)) + yyterminate(); + } + + ([^\"\n\\]|\\\")+ { LEXTRACE("STRBODY "); - /* Push back line continuation char if present */ - if (yytext[yyleng - 1] == '\\') - yyless(yyleng - 1); if (!append(yytext, yyleng)) yyterminate(); }