From dfa23f5e41b98b8054439a4886621784798949f4 Mon Sep 17 00:00:00 2001 From: "Vadim B. Mikheev" Date: Tue, 5 Jan 1999 15:46:25 +0000 Subject: [PATCH] SELECT FOR UPDATE syntax --- src/backend/parser/gram.c | 8114 ++++++++++++++++---------------- src/backend/parser/gram.y | 37 +- src/include/nodes/parsenodes.h | 3 +- 3 files changed, 4086 insertions(+), 4068 deletions(-) diff --git a/src/backend/parser/gram.c b/src/backend/parser/gram.c index a41822a64e..aba5b43c0b 100644 --- a/src/backend/parser/gram.c +++ b/src/backend/parser/gram.c @@ -237,7 +237,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.55 1998/12/31 20:09:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.56 1999/01/05 15:46:22 vadim Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -354,11 +354,11 @@ typedef union -#define YYFINAL 1707 +#define YYFINAL 1712 #define YYFLAG -32768 #define YYNTBASE 237 -#define YYTRANSLATE(x) ((unsigned)(x) <= 475 ? yytranslate[x] : 503) +#define YYTRANSLATE(x) ((unsigned)(x) <= 475 ? yytranslate[x] : 504) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -460,55 +460,56 @@ static const short yyprhs[] = { 0, 1356, 1358, 1360, 1366, 1371, 1374, 1383, 1387, 1388, 1392, 1394, 1397, 1402, 1406, 1415, 1423, 1430, 1432, 1433, 1440, 1456, 1458, 1460, 1462, 1465, 1466, 1469, 1470, 1473, 1476, - 1479, 1490, 1499, 1503, 1504, 1509, 1511, 1519, 1523, 1524, - 1526, 1527, 1529, 1530, 1532, 1536, 1538, 1539, 1543, 1544, - 1546, 1550, 1553, 1556, 1559, 1562, 1564, 1566, 1567, 1569, - 1570, 1572, 1574, 1578, 1582, 1583, 1586, 1587, 1596, 1599, - 1600, 1604, 1609, 1611, 1615, 1618, 1620, 1623, 1626, 1629, - 1632, 1634, 1636, 1638, 1639, 1641, 1642, 1647, 1652, 1653, - 1655, 1659, 1661, 1665, 1667, 1670, 1671, 1673, 1676, 1680, - 1685, 1686, 1690, 1695, 1696, 1699, 1701, 1704, 1706, 1708, - 1710, 1712, 1714, 1716, 1719, 1722, 1725, 1728, 1730, 1733, - 1735, 1737, 1741, 1742, 1748, 1752, 1753, 1759, 1763, 1764, - 1769, 1771, 1776, 1779, 1781, 1785, 1788, 1790, 1791, 1795, - 1796, 1799, 1800, 1802, 1805, 1807, 1810, 1812, 1814, 1816, - 1818, 1820, 1822, 1826, 1827, 1829, 1833, 1837, 1841, 1845, - 1849, 1853, 1857, 1858, 1860, 1862, 1870, 1879, 1888, 1896, - 1904, 1908, 1912, 1914, 1916, 1918, 1920, 1922, 1924, 1926, - 1928, 1930, 1932, 1934, 1937, 1939, 1941, 1943, 1946, 1950, - 1954, 1958, 1962, 1966, 1970, 1974, 1977, 1980, 1983, 1987, - 1994, 1998, 2002, 2006, 2011, 2014, 2017, 2022, 2026, 2031, - 2033, 2035, 2040, 2042, 2047, 2049, 2051, 2056, 2061, 2066, - 2071, 2077, 2083, 2089, 2094, 2097, 2101, 2104, 2109, 2113, - 2118, 2122, 2127, 2133, 2140, 2141, 2148, 2149, 2157, 2163, - 2169, 2175, 2181, 2187, 2193, 2199, 2205, 2212, 2219, 2226, - 2233, 2240, 2247, 2254, 2261, 2268, 2275, 2282, 2289, 2296, - 2303, 2310, 2317, 2321, 2325, 2328, 2330, 2333, 2335, 2337, - 2340, 2344, 2348, 2352, 2356, 2359, 2362, 2365, 2369, 2376, - 2380, 2384, 2387, 2390, 2394, 2399, 2401, 2403, 2408, 2410, - 2415, 2417, 2419, 2424, 2429, 2435, 2441, 2447, 2452, 2457, - 2464, 2465, 2467, 2471, 2475, 2479, 2480, 2482, 2484, 2486, - 2490, 2491, 2494, 2496, 2499, 2503, 2507, 2511, 2515, 2518, - 2522, 2529, 2533, 2537, 2540, 2543, 2545, 2549, 2554, 2559, - 2564, 2570, 2576, 2582, 2587, 2591, 2592, 2595, 2596, 2599, - 2600, 2604, 2607, 2609, 2611, 2613, 2615, 2619, 2621, 2623, - 2625, 2629, 2635, 2642, 2647, 2650, 2652, 2657, 2660, 2661, - 2664, 2666, 2667, 2671, 2675, 2677, 2681, 2685, 2689, 2691, - 2693, 2698, 2701, 2705, 2709, 2711, 2715, 2717, 2721, 2723, - 2725, 2726, 2728, 2730, 2732, 2734, 2736, 2738, 2740, 2742, - 2744, 2746, 2748, 2750, 2752, 2754, 2757, 2759, 2761, 2763, - 2766, 2768, 2770, 2772, 2774, 2776, 2778, 2780, 2782, 2784, - 2786, 2788, 2790, 2792, 2794, 2796, 2798, 2800, 2802, 2804, - 2806, 2808, 2810, 2812, 2814, 2816, 2818, 2820, 2822, 2824, - 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844, - 2846, 2848, 2850, 2852, 2854, 2856, 2858, 2860, 2862, 2864, - 2866, 2868, 2870, 2872, 2874, 2876, 2878, 2880, 2882, 2884, - 2886, 2888, 2890, 2892, 2894, 2896, 2898, 2900, 2902, 2904, - 2906, 2908, 2910, 2912, 2914, 2916, 2918, 2920, 2922, 2924, - 2926, 2928, 2930, 2932, 2934, 2936, 2938, 2940, 2942, 2944, - 2946, 2948, 2950, 2952, 2954, 2956, 2958, 2960, 2962, 2964, - 2966, 2968, 2970, 2972, 2974, 2976, 2978, 2980, 2982, 2984, - 2986, 2988, 2990, 2992, 2994, 2996, 2998, 3000 + 1479, 1491, 1500, 1504, 1505, 1510, 1512, 1520, 1524, 1525, + 1527, 1528, 1530, 1531, 1533, 1537, 1539, 1540, 1544, 1545, + 1547, 1551, 1554, 1557, 1560, 1563, 1565, 1567, 1568, 1570, + 1571, 1573, 1575, 1579, 1583, 1584, 1587, 1588, 1591, 1596, + 1597, 1606, 1609, 1610, 1614, 1619, 1621, 1625, 1628, 1630, + 1633, 1636, 1639, 1642, 1644, 1646, 1648, 1649, 1651, 1652, + 1657, 1662, 1663, 1665, 1669, 1671, 1675, 1677, 1680, 1681, + 1683, 1686, 1690, 1695, 1696, 1700, 1705, 1706, 1709, 1711, + 1714, 1716, 1718, 1720, 1722, 1724, 1726, 1729, 1732, 1735, + 1738, 1740, 1743, 1745, 1747, 1751, 1752, 1758, 1762, 1763, + 1769, 1773, 1774, 1779, 1781, 1786, 1789, 1791, 1795, 1798, + 1800, 1801, 1805, 1806, 1809, 1810, 1812, 1815, 1817, 1820, + 1822, 1824, 1826, 1828, 1830, 1832, 1836, 1837, 1839, 1843, + 1847, 1851, 1855, 1859, 1863, 1867, 1868, 1870, 1872, 1880, + 1889, 1898, 1906, 1914, 1918, 1922, 1924, 1926, 1928, 1930, + 1932, 1934, 1936, 1938, 1940, 1942, 1944, 1947, 1949, 1951, + 1953, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1987, + 1990, 1993, 1997, 2004, 2008, 2012, 2016, 2021, 2024, 2027, + 2032, 2036, 2041, 2043, 2045, 2050, 2052, 2057, 2059, 2061, + 2066, 2071, 2076, 2081, 2087, 2093, 2099, 2104, 2107, 2111, + 2114, 2119, 2123, 2128, 2132, 2137, 2143, 2150, 2151, 2158, + 2159, 2167, 2173, 2179, 2185, 2191, 2197, 2203, 2209, 2215, + 2222, 2229, 2236, 2243, 2250, 2257, 2264, 2271, 2278, 2285, + 2292, 2299, 2306, 2313, 2320, 2327, 2331, 2335, 2338, 2340, + 2343, 2345, 2347, 2350, 2354, 2358, 2362, 2366, 2369, 2372, + 2375, 2379, 2386, 2390, 2394, 2397, 2400, 2404, 2409, 2411, + 2413, 2418, 2420, 2425, 2427, 2429, 2434, 2439, 2445, 2451, + 2457, 2462, 2467, 2474, 2475, 2477, 2481, 2485, 2489, 2490, + 2492, 2494, 2496, 2500, 2501, 2504, 2506, 2509, 2513, 2517, + 2521, 2525, 2528, 2532, 2539, 2543, 2547, 2550, 2553, 2555, + 2559, 2564, 2569, 2574, 2580, 2586, 2592, 2597, 2601, 2602, + 2605, 2606, 2609, 2610, 2614, 2617, 2619, 2621, 2623, 2625, + 2629, 2631, 2633, 2635, 2639, 2645, 2652, 2657, 2660, 2662, + 2667, 2670, 2671, 2674, 2676, 2677, 2681, 2685, 2687, 2691, + 2695, 2699, 2701, 2703, 2708, 2711, 2715, 2719, 2721, 2725, + 2727, 2731, 2733, 2735, 2736, 2738, 2740, 2742, 2744, 2746, + 2748, 2750, 2752, 2754, 2756, 2758, 2760, 2762, 2764, 2767, + 2769, 2771, 2773, 2776, 2778, 2780, 2782, 2784, 2786, 2788, + 2790, 2792, 2794, 2796, 2798, 2800, 2802, 2804, 2806, 2808, + 2810, 2812, 2814, 2816, 2818, 2820, 2822, 2824, 2826, 2828, + 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844, 2846, 2848, + 2850, 2852, 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, + 2870, 2872, 2874, 2876, 2878, 2880, 2882, 2884, 2886, 2888, + 2890, 2892, 2894, 2896, 2898, 2900, 2902, 2904, 2906, 2908, + 2910, 2912, 2914, 2916, 2918, 2920, 2922, 2924, 2926, 2928, + 2930, 2932, 2934, 2936, 2938, 2940, 2942, 2944, 2946, 2948, + 2950, 2952, 2954, 2956, 2958, 2960, 2962, 2964, 2966, 2968, + 2970, 2972, 2974, 2976, 2978, 2980, 2982, 2984, 2986, 2988, + 2990, 2992, 2994, 2996, 2998, 3000, 3002, 3004, 3006, 3008, + 3010 }; static const short yyrhs[] = { 238, @@ -522,53 +523,53 @@ static const short yyrhs[] = { 238, 0, 345, 0, 354, 0, 327, 0, 385, 0, 357, 0, 368, 0, 370, 0, 371, 0, 372, 0, 377, 0, 379, 0, 249, 0, 252, 0, 253, 0, 28, - 130, 498, 243, 244, 245, 247, 248, 0, 7, 130, - 498, 243, 244, 245, 247, 248, 0, 44, 130, 498, - 0, 138, 189, 498, 0, 0, 154, 0, 181, 0, - 0, 155, 0, 182, 0, 0, 246, 234, 498, 0, - 498, 0, 61, 58, 246, 0, 0, 209, 207, 213, - 0, 0, 114, 500, 122, 250, 0, 114, 500, 219, + 130, 499, 243, 244, 245, 247, 248, 0, 7, 130, + 499, 243, 244, 245, 247, 248, 0, 44, 130, 499, + 0, 138, 189, 499, 0, 0, 154, 0, 181, 0, + 0, 155, 0, 182, 0, 0, 246, 234, 499, 0, + 499, 0, 61, 58, 246, 0, 0, 209, 207, 213, + 0, 0, 114, 501, 122, 250, 0, 114, 501, 219, 250, 0, 114, 118, 141, 251, 0, 114, 124, 68, - 74, 105, 500, 0, 114, 124, 68, 74, 500, 0, - 114, 80, 376, 0, 497, 0, 39, 0, 497, 0, - 39, 0, 76, 0, 200, 500, 0, 200, 118, 141, - 0, 200, 124, 68, 74, 0, 193, 500, 0, 193, + 74, 105, 501, 0, 114, 124, 68, 74, 501, 0, + 114, 80, 376, 0, 498, 0, 39, 0, 498, 0, + 39, 0, 76, 0, 200, 501, 0, 200, 118, 141, + 0, 200, 124, 68, 74, 0, 193, 501, 0, 193, 118, 141, 0, 193, 124, 68, 74, 0, 7, 116, - 484, 413, 255, 0, 5, 356, 266, 0, 5, 235, - 264, 236, 0, 44, 356, 500, 0, 7, 356, 500, - 114, 39, 273, 0, 7, 356, 500, 44, 39, 0, - 5, 275, 0, 22, 483, 0, 153, 260, 484, 261, - 258, 259, 262, 0, 122, 0, 55, 0, 497, 0, + 485, 413, 255, 0, 5, 356, 266, 0, 5, 235, + 264, 236, 0, 44, 356, 501, 0, 7, 356, 501, + 114, 39, 273, 0, 7, 356, 501, 44, 39, 0, + 5, 275, 0, 22, 484, 0, 153, 260, 485, 261, + 258, 259, 262, 0, 122, 0, 55, 0, 498, 0, 203, 0, 204, 0, 150, 0, 0, 138, 187, 0, - 0, 131, 158, 497, 0, 0, 28, 116, 484, 235, + 0, 131, 158, 498, 0, 0, 28, 116, 485, 235, 264, 236, 284, 0, 264, 234, 265, 0, 265, 0, - 0, 266, 0, 274, 0, 500, 430, 267, 0, 500, + 0, 266, 0, 274, 0, 501, 431, 267, 0, 501, 198, 269, 0, 268, 0, 0, 268, 270, 0, 270, - 0, 100, 70, 0, 0, 27, 490, 271, 0, 271, + 0, 100, 70, 0, 0, 27, 491, 271, 0, 271, 0, 21, 235, 277, 236, 0, 39, 88, 0, 39, 273, 0, 86, 88, 0, 128, 0, 100, 70, 0, - 106, 500, 388, 280, 281, 0, 272, 234, 273, 0, - 273, 0, 494, 0, 223, 273, 0, 273, 222, 273, + 106, 501, 388, 280, 281, 0, 272, 234, 273, 0, + 273, 0, 495, 0, 223, 273, 0, 273, 222, 273, 0, 273, 223, 273, 0, 273, 225, 273, 0, 273, 224, 273, 0, 273, 219, 273, 0, 273, 220, 273, 0, 273, 221, 273, 0, 227, 273, 0, 228, 273, - 0, 226, 273, 0, 273, 233, 430, 0, 18, 235, - 273, 10, 430, 236, 0, 235, 273, 236, 0, 491, - 235, 236, 0, 491, 235, 272, 236, 0, 273, 214, + 0, 226, 273, 0, 273, 233, 431, 0, 18, 235, + 273, 10, 431, 236, 0, 235, 273, 236, 0, 492, + 235, 236, 0, 492, 235, 272, 236, 0, 273, 214, 273, 0, 214, 273, 0, 273, 214, 0, 31, 0, - 32, 0, 32, 235, 496, 236, 0, 33, 0, 33, - 235, 496, 236, 0, 34, 0, 130, 0, 27, 490, + 32, 0, 32, 235, 497, 236, 0, 33, 0, 33, + 235, 497, 236, 0, 34, 0, 130, 0, 27, 491, 275, 0, 275, 0, 21, 235, 277, 236, 0, 128, 235, 389, 236, 0, 100, 70, 235, 389, 236, 0, - 54, 70, 235, 389, 236, 106, 500, 388, 280, 281, - 0, 276, 234, 277, 0, 277, 0, 494, 0, 88, - 0, 500, 0, 223, 277, 0, 277, 222, 277, 0, + 54, 70, 235, 389, 236, 106, 501, 388, 280, 281, + 0, 276, 234, 277, 0, 277, 0, 495, 0, 88, + 0, 501, 0, 223, 277, 0, 277, 222, 277, 0, 277, 223, 277, 0, 277, 225, 277, 0, 277, 224, 277, 0, 277, 219, 277, 0, 277, 220, 277, 0, 277, 221, 277, 0, 227, 277, 0, 228, 277, 0, - 226, 277, 0, 277, 233, 430, 0, 18, 235, 277, - 10, 430, 236, 0, 235, 277, 236, 0, 491, 235, - 236, 0, 491, 235, 276, 236, 0, 277, 214, 277, + 226, 277, 0, 277, 233, 431, 0, 18, 235, 277, + 10, 431, 236, 0, 235, 277, 236, 0, 492, 235, + 236, 0, 492, 235, 276, 236, 0, 277, 214, 277, 0, 277, 75, 277, 0, 277, 86, 75, 277, 0, 277, 8, 277, 0, 277, 94, 277, 0, 86, 277, 0, 214, 277, 0, 277, 214, 0, 277, 171, 0, @@ -578,218 +579,219 @@ static const short yyrhs[] = { 238, 277, 61, 235, 278, 236, 0, 277, 86, 61, 235, 278, 236, 0, 277, 13, 279, 8, 279, 0, 277, 86, 13, 279, 8, 279, 0, 278, 234, 279, 0, - 279, 0, 494, 0, 77, 56, 0, 77, 97, 0, + 279, 0, 495, 0, 77, 56, 0, 77, 97, 0, 0, 282, 282, 0, 282, 0, 0, 91, 40, 283, 0, 91, 129, 283, 0, 85, 4, 0, 16, 0, 114, 39, 0, 114, 88, 0, 169, 235, 414, 236, - 0, 0, 28, 116, 484, 286, 10, 401, 0, 235, + 0, 0, 28, 116, 485, 286, 10, 401, 0, 235, 287, 236, 0, 0, 287, 234, 288, 0, 288, 0, - 500, 0, 28, 197, 484, 290, 0, 290, 291, 0, + 501, 0, 28, 197, 485, 290, 0, 290, 291, 0, 0, 151, 294, 0, 156, 0, 167, 294, 0, 177, 294, 0, 178, 294, 0, 201, 294, 0, 293, 0, - 294, 0, 217, 0, 223, 217, 0, 496, 0, 223, - 496, 0, 28, 296, 190, 71, 497, 166, 311, 172, - 497, 0, 205, 0, 0, 44, 190, 71, 497, 0, - 28, 142, 490, 299, 300, 91, 484, 302, 47, 103, - 490, 235, 305, 236, 0, 149, 0, 145, 0, 301, + 294, 0, 217, 0, 223, 217, 0, 497, 0, 223, + 497, 0, 28, 296, 190, 71, 498, 166, 311, 172, + 498, 0, 205, 0, 0, 44, 190, 71, 498, 0, + 28, 142, 491, 299, 300, 91, 485, 302, 47, 103, + 491, 235, 305, 236, 0, 149, 0, 145, 0, 301, 0, 301, 94, 301, 0, 301, 94, 301, 94, 301, 0, 64, 0, 40, 0, 129, 0, 53, 303, 304, 0, 160, 0, 0, 195, 0, 202, 0, 306, 0, - 305, 234, 306, 0, 0, 215, 0, 217, 0, 497, - 0, 212, 0, 44, 142, 490, 91, 484, 0, 28, + 305, 234, 306, 0, 0, 215, 0, 217, 0, 498, + 0, 212, 0, 44, 142, 491, 91, 485, 0, 28, 310, 309, 0, 311, 312, 0, 188, 0, 143, 0, - 146, 0, 103, 0, 69, 0, 500, 0, 352, 0, + 146, 0, 103, 0, 69, 0, 501, 0, 352, 0, 214, 0, 235, 313, 236, 0, 314, 0, 313, 234, 314, 0, 311, 219, 315, 0, 311, 0, 39, 219, - 315, 0, 500, 0, 351, 0, 292, 0, 497, 0, - 199, 500, 0, 44, 116, 414, 0, 44, 197, 414, + 315, 0, 501, 0, 351, 0, 292, 0, 498, 0, + 199, 501, 0, 44, 116, 414, 0, 44, 197, 414, 0, 51, 318, 319, 320, 0, 179, 318, 319, 320, 0, 164, 0, 148, 0, 107, 0, 3, 0, 0, - 496, 0, 223, 496, 0, 6, 0, 84, 0, 101, - 0, 0, 61, 490, 0, 55, 490, 0, 0, 57, + 497, 0, 223, 497, 0, 6, 0, 84, 0, 101, + 0, 0, 61, 491, 0, 55, 491, 0, 0, 57, 322, 91, 414, 122, 325, 326, 0, 6, 102, 0, 6, 0, 323, 0, 324, 0, 323, 234, 324, 0, 113, 0, 64, 0, 129, 0, 40, 0, 196, 0, - 104, 0, 58, 500, 0, 500, 0, 138, 57, 93, + 104, 0, 58, 501, 0, 501, 0, 138, 57, 93, 0, 0, 108, 322, 91, 414, 55, 325, 0, 28, - 329, 168, 489, 91, 484, 330, 235, 331, 236, 340, - 0, 128, 0, 0, 131, 486, 0, 0, 332, 0, - 333, 0, 332, 234, 334, 0, 334, 0, 491, 235, - 415, 236, 335, 336, 0, 487, 335, 336, 0, 227, - 430, 0, 53, 430, 0, 0, 488, 0, 131, 488, - 0, 0, 163, 168, 489, 426, 0, 47, 191, 493, - 0, 28, 165, 491, 341, 194, 343, 340, 10, 497, - 71, 497, 0, 138, 312, 0, 0, 235, 342, 236, - 0, 235, 236, 0, 499, 0, 342, 234, 499, 0, - 344, 499, 0, 199, 0, 0, 44, 346, 490, 0, + 329, 168, 490, 91, 485, 330, 235, 331, 236, 340, + 0, 128, 0, 0, 131, 487, 0, 0, 332, 0, + 333, 0, 332, 234, 334, 0, 334, 0, 492, 235, + 415, 236, 335, 336, 0, 488, 335, 336, 0, 227, + 431, 0, 53, 431, 0, 0, 489, 0, 131, 489, + 0, 0, 163, 168, 490, 427, 0, 47, 191, 494, + 0, 28, 165, 492, 341, 194, 343, 340, 10, 498, + 71, 498, 0, 138, 312, 0, 0, 235, 342, 236, + 0, 235, 236, 0, 500, 0, 342, 234, 500, 0, + 344, 500, 0, 199, 0, 0, 44, 346, 491, 0, 143, 0, 168, 0, 196, 0, 135, 0, 44, 146, - 490, 348, 0, 490, 0, 224, 0, 44, 165, 491, + 491, 348, 0, 491, 0, 224, 0, 44, 165, 492, 341, 0, 44, 188, 351, 235, 353, 236, 0, 214, 0, 352, 0, 222, 0, 223, 0, 224, 0, 225, - 0, 220, 0, 221, 0, 219, 0, 490, 0, 490, - 234, 490, 0, 183, 234, 490, 0, 490, 234, 183, - 0, 7, 116, 484, 413, 192, 356, 355, 122, 490, - 0, 490, 0, 0, 25, 0, 0, 0, 28, 196, - 490, 10, 358, 91, 363, 122, 362, 426, 159, 364, + 0, 220, 0, 221, 0, 219, 0, 491, 0, 491, + 234, 491, 0, 183, 234, 491, 0, 491, 234, 183, + 0, 7, 116, 485, 413, 192, 356, 355, 122, 491, + 0, 491, 0, 0, 25, 0, 0, 0, 28, 196, + 491, 10, 358, 91, 363, 122, 362, 427, 159, 364, 359, 0, 184, 0, 385, 0, 231, 360, 232, 0, 235, 360, 236, 0, 361, 0, 385, 0, 361, 385, - 228, 0, 361, 385, 0, 385, 228, 0, 484, 230, - 487, 0, 484, 0, 113, 0, 129, 0, 40, 0, - 64, 0, 170, 0, 0, 185, 484, 0, 173, 484, - 0, 206, 484, 0, 206, 224, 0, 144, 369, 0, + 228, 0, 361, 385, 0, 385, 228, 0, 485, 230, + 488, 0, 485, 0, 113, 0, 129, 0, 40, 0, + 64, 0, 170, 0, 0, 185, 485, 0, 173, 485, + 0, 206, 485, 0, 206, 224, 0, 144, 369, 0, 12, 369, 0, 26, 369, 0, 46, 369, 0, 110, - 369, 0, 139, 0, 124, 0, 0, 28, 135, 490, - 10, 400, 0, 174, 492, 0, 28, 157, 485, 138, - 373, 374, 0, 28, 157, 485, 0, 175, 219, 375, - 0, 0, 161, 219, 376, 0, 0, 497, 0, 39, - 0, 0, 497, 0, 39, 0, 0, 44, 157, 485, - 0, 152, 489, 91, 484, 0, 208, 380, 381, 0, - 208, 380, 381, 484, 382, 0, 210, 0, 0, 147, - 0, 0, 235, 383, 236, 0, 0, 490, 0, 383, - 234, 490, 0, 162, 380, 385, 0, 400, 0, 395, + 369, 0, 139, 0, 124, 0, 0, 28, 135, 491, + 10, 400, 0, 174, 493, 0, 28, 157, 486, 138, + 373, 374, 0, 28, 157, 486, 0, 175, 219, 375, + 0, 0, 161, 219, 376, 0, 0, 498, 0, 39, + 0, 0, 498, 0, 39, 0, 0, 44, 157, 486, + 0, 152, 490, 91, 485, 0, 208, 380, 381, 0, + 208, 380, 381, 485, 382, 0, 210, 0, 0, 147, + 0, 0, 235, 383, 236, 0, 0, 491, 0, 383, + 234, 491, 0, 162, 380, 385, 0, 400, 0, 395, 0, 394, 0, 386, 0, 365, 0, 391, 0, 64, - 66, 484, 388, 387, 0, 132, 235, 481, 236, 0, - 39, 132, 0, 113, 408, 481, 418, 426, 416, 417, + 66, 485, 388, 387, 0, 132, 235, 482, 236, 0, + 39, 132, 0, 113, 408, 482, 419, 427, 416, 417, 402, 0, 235, 389, 236, 0, 0, 389, 234, 390, - 0, 390, 0, 500, 458, 0, 40, 55, 484, 426, - 0, 176, 406, 484, 0, 176, 406, 484, 61, 393, - 195, 212, 212, 0, 176, 406, 484, 61, 212, 212, - 212, 0, 176, 406, 484, 61, 212, 212, 0, 212, - 0, 0, 129, 484, 114, 479, 418, 426, 0, 38, - 490, 396, 35, 53, 113, 408, 481, 418, 426, 416, + 0, 390, 0, 501, 459, 0, 40, 55, 485, 427, + 0, 176, 406, 485, 0, 176, 406, 485, 61, 393, + 195, 212, 212, 0, 176, 406, 485, 61, 212, 212, + 212, 0, 176, 406, 485, 61, 212, 212, 0, 212, + 0, 0, 129, 485, 114, 480, 419, 427, 0, 38, + 491, 396, 35, 53, 113, 408, 482, 419, 427, 416, 417, 402, 409, 397, 0, 150, 0, 63, 0, 111, 0, 63, 111, 0, 0, 53, 398, 0, 0, 105, 92, 0, 129, 399, 0, 90, 389, 0, 113, 408, - 481, 405, 418, 426, 416, 417, 402, 409, 0, 113, - 408, 481, 418, 426, 416, 417, 402, 0, 127, 407, - 403, 0, 0, 403, 127, 407, 404, 0, 404, 0, - 113, 408, 481, 418, 426, 416, 417, 0, 66, 406, - 484, 0, 0, 116, 0, 0, 6, 0, 0, 42, - 0, 42, 91, 500, 0, 6, 0, 0, 95, 15, - 410, 0, 0, 411, 0, 410, 234, 411, 0, 454, - 412, 0, 131, 214, 0, 131, 220, 0, 131, 221, - 0, 11, 0, 41, 0, 0, 224, 0, 0, 415, - 0, 490, 0, 415, 234, 490, 0, 58, 15, 459, - 0, 0, 59, 454, 0, 0, 55, 235, 427, 421, - 69, 427, 423, 236, 0, 55, 419, 0, 0, 419, - 234, 420, 0, 420, 29, 69, 420, 0, 420, 0, - 427, 10, 501, 0, 427, 500, 0, 427, 0, 82, - 421, 0, 56, 422, 0, 73, 422, 0, 109, 422, + 482, 405, 419, 427, 416, 417, 402, 409, 418, 0, + 113, 408, 482, 419, 427, 416, 417, 402, 0, 127, + 407, 403, 0, 0, 403, 127, 407, 404, 0, 404, + 0, 113, 408, 482, 419, 427, 416, 417, 0, 66, + 406, 485, 0, 0, 116, 0, 0, 6, 0, 0, + 42, 0, 42, 91, 501, 0, 6, 0, 0, 95, + 15, 410, 0, 0, 411, 0, 410, 234, 411, 0, + 455, 412, 0, 131, 214, 0, 131, 220, 0, 131, + 221, 0, 11, 0, 41, 0, 0, 224, 0, 0, + 415, 0, 491, 0, 415, 234, 491, 0, 58, 15, + 460, 0, 0, 59, 455, 0, 0, 53, 129, 0, + 53, 129, 90, 383, 0, 0, 55, 235, 428, 422, + 69, 428, 424, 236, 0, 55, 420, 0, 0, 420, + 234, 421, 0, 421, 29, 69, 421, 0, 421, 0, + 428, 10, 502, 0, 428, 501, 0, 428, 0, 82, + 422, 0, 56, 423, 0, 73, 423, 0, 109, 423, 0, 96, 0, 62, 0, 127, 0, 0, 96, 0, - 0, 91, 235, 454, 236, 0, 131, 235, 424, 236, - 0, 0, 425, 0, 424, 234, 425, 0, 500, 0, - 500, 230, 500, 0, 496, 0, 137, 454, 0, 0, - 484, 0, 484, 224, 0, 231, 232, 429, 0, 231, - 496, 232, 429, 0, 0, 231, 232, 429, 0, 231, - 496, 232, 429, 0, 0, 431, 428, 0, 439, 0, - 199, 431, 0, 432, 0, 444, 0, 434, 0, 433, - 0, 212, 0, 143, 0, 52, 436, 0, 43, 99, - 0, 37, 438, 0, 89, 437, 0, 52, 0, 43, - 99, 0, 37, 0, 89, 0, 235, 496, 236, 0, - 0, 235, 496, 234, 496, 236, 0, 235, 496, 236, - 0, 0, 235, 496, 234, 496, 236, 0, 235, 496, - 236, 0, 0, 440, 235, 496, 236, 0, 440, 0, - 20, 441, 442, 443, 0, 19, 441, 0, 133, 0, - 81, 20, 441, 0, 83, 441, 0, 134, 0, 0, - 20, 114, 500, 0, 0, 24, 500, 0, 0, 445, - 0, 119, 446, 0, 118, 0, 65, 447, 0, 140, + 0, 91, 235, 455, 236, 0, 131, 235, 425, 236, + 0, 0, 426, 0, 425, 234, 426, 0, 501, 0, + 501, 230, 501, 0, 497, 0, 137, 455, 0, 0, + 485, 0, 485, 224, 0, 231, 232, 430, 0, 231, + 497, 232, 430, 0, 0, 231, 232, 430, 0, 231, + 497, 232, 430, 0, 0, 432, 429, 0, 440, 0, + 199, 432, 0, 433, 0, 445, 0, 435, 0, 434, + 0, 212, 0, 143, 0, 52, 437, 0, 43, 99, + 0, 37, 439, 0, 89, 438, 0, 52, 0, 43, + 99, 0, 37, 0, 89, 0, 235, 497, 236, 0, + 0, 235, 497, 234, 497, 236, 0, 235, 497, 236, + 0, 0, 235, 497, 234, 497, 236, 0, 235, 497, + 236, 0, 0, 441, 235, 497, 236, 0, 441, 0, + 20, 442, 443, 444, 0, 19, 442, 0, 133, 0, + 81, 20, 442, 0, 83, 442, 0, 134, 0, 0, + 20, 114, 501, 0, 0, 24, 501, 0, 0, 446, + 0, 119, 447, 0, 118, 0, 65, 448, 0, 140, 0, 79, 0, 36, 0, 60, 0, 78, 0, 112, - 0, 138, 118, 141, 0, 0, 445, 0, 140, 122, + 0, 138, 118, 141, 0, 0, 446, 0, 140, 122, 79, 0, 36, 122, 60, 0, 36, 122, 78, 0, 36, 122, 112, 0, 60, 122, 78, 0, 60, 122, - 112, 0, 78, 122, 112, 0, 0, 454, 0, 88, - 0, 235, 450, 236, 61, 235, 401, 236, 0, 235, - 450, 236, 86, 61, 235, 401, 236, 0, 235, 450, - 236, 452, 453, 235, 401, 236, 0, 235, 450, 236, - 452, 235, 401, 236, 0, 235, 450, 236, 452, 235, - 450, 236, 0, 451, 234, 454, 0, 451, 234, 454, - 0, 454, 0, 214, 0, 220, 0, 219, 0, 221, + 112, 0, 78, 122, 112, 0, 0, 455, 0, 88, + 0, 235, 451, 236, 61, 235, 401, 236, 0, 235, + 451, 236, 86, 61, 235, 401, 236, 0, 235, 451, + 236, 453, 454, 235, 401, 236, 0, 235, 451, 236, + 453, 235, 401, 236, 0, 235, 451, 236, 453, 235, + 451, 236, 0, 452, 234, 455, 0, 452, 234, 455, + 0, 455, 0, 214, 0, 220, 0, 219, 0, 221, 0, 222, 0, 223, 0, 224, 0, 225, 0, 9, - 0, 6, 0, 477, 458, 0, 449, 0, 494, 0, - 500, 0, 223, 454, 0, 454, 222, 454, 0, 454, - 223, 454, 0, 454, 225, 454, 0, 454, 224, 454, - 0, 454, 220, 454, 0, 454, 221, 454, 0, 454, - 219, 454, 0, 227, 454, 0, 228, 454, 0, 226, - 454, 0, 454, 233, 430, 0, 18, 235, 454, 10, - 430, 236, 0, 235, 448, 236, 0, 454, 214, 454, - 0, 454, 75, 454, 0, 454, 86, 75, 454, 0, - 214, 454, 0, 454, 214, 0, 491, 235, 224, 236, - 0, 491, 235, 236, 0, 491, 235, 459, 236, 0, - 31, 0, 32, 0, 32, 235, 496, 236, 0, 33, - 0, 33, 235, 496, 236, 0, 34, 0, 130, 0, - 48, 235, 401, 236, 0, 49, 235, 460, 236, 0, - 98, 235, 462, 236, 0, 115, 235, 464, 236, 0, - 125, 235, 14, 467, 236, 0, 125, 235, 72, 467, - 236, 0, 125, 235, 123, 467, 236, 0, 125, 235, - 467, 236, 0, 454, 171, 0, 454, 67, 88, 0, - 454, 186, 0, 454, 67, 86, 88, 0, 454, 67, - 126, 0, 454, 67, 86, 50, 0, 454, 67, 50, - 0, 454, 67, 86, 126, 0, 454, 13, 457, 8, - 457, 0, 454, 86, 13, 457, 8, 457, 0, 0, - 454, 61, 455, 235, 468, 236, 0, 0, 454, 86, - 61, 456, 235, 470, 236, 0, 454, 214, 235, 401, - 236, 0, 454, 222, 235, 401, 236, 0, 454, 223, - 235, 401, 236, 0, 454, 225, 235, 401, 236, 0, - 454, 224, 235, 401, 236, 0, 454, 220, 235, 401, - 236, 0, 454, 221, 235, 401, 236, 0, 454, 219, - 235, 401, 236, 0, 454, 214, 9, 235, 401, 236, - 0, 454, 222, 9, 235, 401, 236, 0, 454, 223, - 9, 235, 401, 236, 0, 454, 225, 9, 235, 401, - 236, 0, 454, 224, 9, 235, 401, 236, 0, 454, - 220, 9, 235, 401, 236, 0, 454, 221, 9, 235, - 401, 236, 0, 454, 219, 9, 235, 401, 236, 0, - 454, 214, 6, 235, 401, 236, 0, 454, 222, 6, - 235, 401, 236, 0, 454, 223, 6, 235, 401, 236, - 0, 454, 225, 6, 235, 401, 236, 0, 454, 224, - 6, 235, 401, 236, 0, 454, 220, 6, 235, 401, - 236, 0, 454, 221, 6, 235, 401, 236, 0, 454, - 219, 6, 235, 401, 236, 0, 454, 8, 454, 0, - 454, 94, 454, 0, 86, 454, 0, 472, 0, 477, - 458, 0, 494, 0, 500, 0, 223, 457, 0, 457, - 222, 457, 0, 457, 223, 457, 0, 457, 225, 457, - 0, 457, 224, 457, 0, 227, 457, 0, 228, 457, - 0, 226, 457, 0, 457, 233, 430, 0, 18, 235, - 457, 10, 430, 236, 0, 235, 454, 236, 0, 457, - 214, 457, 0, 214, 457, 0, 457, 214, 0, 491, - 235, 236, 0, 491, 235, 459, 236, 0, 31, 0, - 32, 0, 32, 235, 496, 236, 0, 33, 0, 33, - 235, 496, 236, 0, 34, 0, 130, 0, 98, 235, - 462, 236, 0, 115, 235, 464, 236, 0, 125, 235, - 14, 467, 236, 0, 125, 235, 72, 467, 236, 0, - 125, 235, 123, 467, 236, 0, 125, 235, 467, 236, - 0, 231, 454, 232, 458, 0, 231, 454, 227, 454, - 232, 458, 0, 0, 448, 0, 459, 234, 448, 0, - 459, 131, 454, 0, 461, 55, 454, 0, 0, 445, - 0, 120, 0, 121, 0, 463, 61, 463, 0, 0, - 477, 458, 0, 494, 0, 223, 463, 0, 463, 222, - 463, 0, 463, 223, 463, 0, 463, 225, 463, 0, - 463, 224, 463, 0, 226, 463, 0, 463, 233, 430, - 0, 18, 235, 463, 10, 430, 236, 0, 235, 463, - 236, 0, 463, 214, 463, 0, 214, 463, 0, 463, - 214, 0, 500, 0, 491, 235, 236, 0, 491, 235, - 459, 236, 0, 98, 235, 462, 236, 0, 115, 235, - 464, 236, 0, 125, 235, 14, 467, 236, 0, 125, - 235, 72, 467, 236, 0, 125, 235, 123, 467, 236, - 0, 125, 235, 467, 236, 0, 459, 465, 466, 0, - 0, 55, 459, 0, 0, 53, 459, 0, 0, 454, - 55, 459, 0, 55, 459, 0, 459, 0, 401, 0, - 469, 0, 494, 0, 469, 234, 494, 0, 401, 0, - 471, 0, 494, 0, 471, 234, 494, 0, 17, 476, - 473, 475, 46, 0, 87, 235, 454, 234, 454, 236, - 0, 23, 235, 459, 236, 0, 473, 474, 0, 474, - 0, 136, 454, 117, 448, 0, 45, 448, 0, 0, - 477, 458, 0, 500, 0, 0, 484, 230, 478, 0, - 495, 230, 478, 0, 487, 0, 478, 230, 487, 0, - 478, 230, 224, 0, 479, 234, 480, 0, 480, 0, - 224, 0, 500, 458, 219, 448, 0, 477, 458, 0, - 484, 230, 224, 0, 481, 234, 482, 0, 482, 0, - 448, 10, 501, 0, 448, 0, 484, 230, 224, 0, - 224, 0, 500, 0, 0, 502, 0, 500, 0, 500, - 0, 212, 0, 500, 0, 212, 0, 500, 0, 500, - 0, 500, 0, 497, 0, 212, 0, 496, 0, 217, - 0, 497, 0, 430, 497, 0, 495, 0, 126, 0, - 50, 0, 216, 458, 0, 215, 0, 213, 0, 212, - 0, 500, 0, 435, 0, 440, 0, 212, 0, 445, + 0, 6, 0, 478, 459, 0, 450, 0, 495, 0, + 501, 0, 223, 455, 0, 455, 222, 455, 0, 455, + 223, 455, 0, 455, 225, 455, 0, 455, 224, 455, + 0, 455, 220, 455, 0, 455, 221, 455, 0, 455, + 219, 455, 0, 227, 455, 0, 228, 455, 0, 226, + 455, 0, 455, 233, 431, 0, 18, 235, 455, 10, + 431, 236, 0, 235, 449, 236, 0, 455, 214, 455, + 0, 455, 75, 455, 0, 455, 86, 75, 455, 0, + 214, 455, 0, 455, 214, 0, 492, 235, 224, 236, + 0, 492, 235, 236, 0, 492, 235, 460, 236, 0, + 31, 0, 32, 0, 32, 235, 497, 236, 0, 33, + 0, 33, 235, 497, 236, 0, 34, 0, 130, 0, + 48, 235, 401, 236, 0, 49, 235, 461, 236, 0, + 98, 235, 463, 236, 0, 115, 235, 465, 236, 0, + 125, 235, 14, 468, 236, 0, 125, 235, 72, 468, + 236, 0, 125, 235, 123, 468, 236, 0, 125, 235, + 468, 236, 0, 455, 171, 0, 455, 67, 88, 0, + 455, 186, 0, 455, 67, 86, 88, 0, 455, 67, + 126, 0, 455, 67, 86, 50, 0, 455, 67, 50, + 0, 455, 67, 86, 126, 0, 455, 13, 458, 8, + 458, 0, 455, 86, 13, 458, 8, 458, 0, 0, + 455, 61, 456, 235, 469, 236, 0, 0, 455, 86, + 61, 457, 235, 471, 236, 0, 455, 214, 235, 401, + 236, 0, 455, 222, 235, 401, 236, 0, 455, 223, + 235, 401, 236, 0, 455, 225, 235, 401, 236, 0, + 455, 224, 235, 401, 236, 0, 455, 220, 235, 401, + 236, 0, 455, 221, 235, 401, 236, 0, 455, 219, + 235, 401, 236, 0, 455, 214, 9, 235, 401, 236, + 0, 455, 222, 9, 235, 401, 236, 0, 455, 223, + 9, 235, 401, 236, 0, 455, 225, 9, 235, 401, + 236, 0, 455, 224, 9, 235, 401, 236, 0, 455, + 220, 9, 235, 401, 236, 0, 455, 221, 9, 235, + 401, 236, 0, 455, 219, 9, 235, 401, 236, 0, + 455, 214, 6, 235, 401, 236, 0, 455, 222, 6, + 235, 401, 236, 0, 455, 223, 6, 235, 401, 236, + 0, 455, 225, 6, 235, 401, 236, 0, 455, 224, + 6, 235, 401, 236, 0, 455, 220, 6, 235, 401, + 236, 0, 455, 221, 6, 235, 401, 236, 0, 455, + 219, 6, 235, 401, 236, 0, 455, 8, 455, 0, + 455, 94, 455, 0, 86, 455, 0, 473, 0, 478, + 459, 0, 495, 0, 501, 0, 223, 458, 0, 458, + 222, 458, 0, 458, 223, 458, 0, 458, 225, 458, + 0, 458, 224, 458, 0, 227, 458, 0, 228, 458, + 0, 226, 458, 0, 458, 233, 431, 0, 18, 235, + 458, 10, 431, 236, 0, 235, 455, 236, 0, 458, + 214, 458, 0, 214, 458, 0, 458, 214, 0, 492, + 235, 236, 0, 492, 235, 460, 236, 0, 31, 0, + 32, 0, 32, 235, 497, 236, 0, 33, 0, 33, + 235, 497, 236, 0, 34, 0, 130, 0, 98, 235, + 463, 236, 0, 115, 235, 465, 236, 0, 125, 235, + 14, 468, 236, 0, 125, 235, 72, 468, 236, 0, + 125, 235, 123, 468, 236, 0, 125, 235, 468, 236, + 0, 231, 455, 232, 459, 0, 231, 455, 227, 455, + 232, 459, 0, 0, 449, 0, 460, 234, 449, 0, + 460, 131, 455, 0, 462, 55, 455, 0, 0, 446, + 0, 120, 0, 121, 0, 464, 61, 464, 0, 0, + 478, 459, 0, 495, 0, 223, 464, 0, 464, 222, + 464, 0, 464, 223, 464, 0, 464, 225, 464, 0, + 464, 224, 464, 0, 226, 464, 0, 464, 233, 431, + 0, 18, 235, 464, 10, 431, 236, 0, 235, 464, + 236, 0, 464, 214, 464, 0, 214, 464, 0, 464, + 214, 0, 501, 0, 492, 235, 236, 0, 492, 235, + 460, 236, 0, 98, 235, 463, 236, 0, 115, 235, + 465, 236, 0, 125, 235, 14, 468, 236, 0, 125, + 235, 72, 468, 236, 0, 125, 235, 123, 468, 236, + 0, 125, 235, 468, 236, 0, 460, 466, 467, 0, + 0, 55, 460, 0, 0, 53, 460, 0, 0, 455, + 55, 460, 0, 55, 460, 0, 460, 0, 401, 0, + 470, 0, 495, 0, 470, 234, 495, 0, 401, 0, + 472, 0, 495, 0, 472, 234, 495, 0, 17, 477, + 474, 476, 46, 0, 87, 235, 455, 234, 455, 236, + 0, 23, 235, 460, 236, 0, 474, 475, 0, 475, + 0, 136, 455, 117, 449, 0, 45, 449, 0, 0, + 478, 459, 0, 501, 0, 0, 485, 230, 479, 0, + 496, 230, 479, 0, 488, 0, 479, 230, 488, 0, + 479, 230, 224, 0, 480, 234, 481, 0, 481, 0, + 224, 0, 501, 459, 219, 449, 0, 478, 459, 0, + 485, 230, 224, 0, 482, 234, 483, 0, 483, 0, + 449, 10, 502, 0, 449, 0, 485, 230, 224, 0, + 224, 0, 501, 0, 0, 503, 0, 501, 0, 501, + 0, 212, 0, 501, 0, 212, 0, 501, 0, 501, + 0, 501, 0, 498, 0, 212, 0, 497, 0, 217, + 0, 498, 0, 431, 498, 0, 496, 0, 126, 0, + 50, 0, 216, 459, 0, 215, 0, 213, 0, 212, + 0, 501, 0, 436, 0, 441, 0, 212, 0, 446, 0, 3, 0, 4, 0, 145, 0, 146, 0, 148, 0, 149, 0, 151, 0, 154, 0, 155, 0, 156, 0, 157, 0, 158, 0, 43, 0, 160, 0, 161, @@ -803,7 +805,7 @@ static const short yyrhs[] = { 238, 0, 195, 0, 196, 0, 111, 0, 197, 0, 198, 0, 201, 0, 202, 0, 203, 0, 204, 0, 118, 0, 119, 0, 120, 0, 121, 0, 142, 0, 205, - 0, 143, 0, 209, 0, 211, 0, 141, 0, 500, + 0, 143, 0, 209, 0, 211, 0, 141, 0, 501, 0, 144, 0, 147, 0, 150, 0, 17, 0, 152, 0, 23, 0, 27, 0, 153, 0, 29, 0, 30, 0, 159, 0, 45, 0, 46, 0, 162, 0, 163, @@ -860,61 +862,62 @@ static const short yyrline[] = { 0, 2062, 2063, 2064, 2065, 2068, 2070, 2074, 2076, 2078, 2082, 2090, 2101, 2102, 2103, 2104, 2107, 2108, 2120, 2128, 2136, 2142, 2164, 2170, 2176, 2182, 2188, 2196, 2197, 2198, 2209, - 2230, 2246, 2270, 2284, 2285, 2288, 2289, 2292, 2293, 2294, - 2297, 2298, 2299, 2309, 2325, 2342, 2351, 2364, 2365, 2368, - 2369, 2372, 2373, 2376, 2378, 2390, 2411, 2412, 2413, 2414, - 2415, 2416, 2427, 2435, 2446, 2457, 2473, 2474, 2477, 2480, - 2484, 2501, 2511, 2519, 2545, 2562, 2579, 2580, 2590, 2611, - 2645, 2646, 2647, 2648, 2649, 2652, 2653, 2656, 2657, 2665, - 2677, 2696, 2713, 2719, 2723, 2729, 2733, 2749, 2750, 2753, - 2754, 2757, 2758, 2761, 2762, 2763, 2764, 2767, 2768, 2771, - 2772, 2775, 2783, 2784, 2785, 2786, 2787, 2788, 2798, 2799, - 2802, 2804, 2806, 2810, 2811, 2814, 2818, 2830, 2835, 2836, - 2839, 2841, 2843, 2847, 2853, 2859, 2867, 2868, 2870, 2872, - 2874, 2876, 2878, 2880, 2884, 2885, 2888, 2889, 2890, 2893, - 2894, 2897, 2912, 2919, 2928, 2929, 2932, 2939, 2947, 2949, - 2951, 2955, 2957, 2959, 2974, 2996, 2997, 3004, 3005, 3006, - 3009, 3017, 3018, 3026, 3032, 3037, 3043, 3051, 3053, 3055, - 3057, 3061, 3072, 3078, 3089, 3097, 3103, 3114, 3122, 3136, - 3163, 3182, 3202, 3203, 3204, 3205, 3208, 3209, 3212, 3213, - 3216, 3217, 3220, 3226, 3233, 3239, 3247, 3248, 3249, 3250, - 3251, 3252, 3255, 3256, 3259, 3260, 3261, 3262, 3263, 3264, - 3265, 3266, 3267, 3277, 3279, 3296, 3306, 3316, 3329, 3342, - 3348, 3354, 3358, 3364, 3365, 3366, 3367, 3368, 3369, 3370, - 3371, 3374, 3375, 3386, 3391, 3393, 3395, 3403, 3405, 3407, - 3409, 3411, 3413, 3415, 3417, 3419, 3421, 3423, 3425, 3441, - 3457, 3459, 3461, 3463, 3465, 3467, 3469, 3481, 3488, 3495, - 3510, 3525, 3547, 3562, 3584, 3591, 3598, 3608, 3615, 3622, - 3630, 3637, 3644, 3651, 3658, 3660, 3662, 3664, 3671, 3681, - 3691, 3701, 3711, 3717, 3723, 3723, 3737, 3737, 3751, 3761, - 3771, 3781, 3791, 3801, 3811, 3821, 3831, 3841, 3851, 3861, - 3871, 3881, 3891, 3901, 3911, 3921, 3931, 3941, 3951, 3961, - 3971, 3981, 3991, 3993, 3995, 3997, 4006, 4011, 4013, 4021, - 4023, 4025, 4027, 4029, 4031, 4033, 4035, 4037, 4053, 4069, - 4071, 4073, 4075, 4077, 4084, 4091, 4106, 4121, 4143, 4158, - 4180, 4187, 4194, 4201, 4209, 4216, 4223, 4230, 4239, 4246, - 4253, 4257, 4259, 4261, 4265, 4272, 4276, 4277, 4278, 4281, - 4283, 4287, 4292, 4294, 4296, 4298, 4300, 4302, 4304, 4306, - 4322, 4338, 4340, 4342, 4344, 4346, 4354, 4361, 4368, 4375, - 4383, 4390, 4397, 4404, 4413, 4417, 4421, 4423, 4432, 4434, - 4438, 4440, 4442, 4446, 4452, 4456, 4458, 4464, 4470, 4474, - 4476, 4497, 4505, 4516, 4534, 4536, 4540, 4549, 4550, 4553, - 4558, 4566, 4570, 4578, 4588, 4590, 4592, 4603, 4605, 4607, - 4622, 4629, 4636, 4655, 4657, 4662, 4669, 4676, 4688, 4702, - 4703, 4706, 4711, 4723, 4724, 4725, 4726, 4727, 4733, 4734, - 4736, 4737, 4742, 4749, 4756, 4763, 4771, 4773, 4783, 4795, - 4803, 4804, 4805, 4812, 4814, 4816, 4827, 4828, 4829, 4830, - 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, - 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, - 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, - 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, - 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, - 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, - 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4910, 4911, 4912, - 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, - 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, - 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, - 4943, 4944, 4945, 4946, 4947, 4948, 4951, 4958 + 2232, 2248, 2272, 2286, 2287, 2290, 2291, 2294, 2295, 2296, + 2299, 2300, 2301, 2311, 2327, 2344, 2353, 2366, 2367, 2370, + 2371, 2374, 2375, 2378, 2380, 2392, 2413, 2414, 2415, 2416, + 2417, 2418, 2429, 2437, 2448, 2459, 2475, 2476, 2479, 2482, + 2486, 2503, 2513, 2521, 2547, 2564, 2581, 2582, 2592, 2613, + 2647, 2648, 2649, 2650, 2651, 2654, 2655, 2658, 2659, 2667, + 2679, 2711, 2728, 2734, 2738, 2744, 2748, 2764, 2765, 2768, + 2769, 2772, 2773, 2776, 2777, 2778, 2779, 2782, 2783, 2786, + 2787, 2790, 2798, 2799, 2800, 2801, 2802, 2803, 2813, 2814, + 2817, 2819, 2821, 2825, 2826, 2829, 2833, 2836, 2841, 2845, + 2859, 2864, 2865, 2868, 2870, 2872, 2876, 2882, 2888, 2896, + 2897, 2899, 2901, 2903, 2905, 2907, 2909, 2913, 2914, 2917, + 2918, 2919, 2922, 2923, 2926, 2941, 2948, 2957, 2958, 2961, + 2968, 2976, 2978, 2980, 2984, 2986, 2988, 3003, 3025, 3026, + 3033, 3034, 3035, 3038, 3046, 3047, 3055, 3061, 3066, 3072, + 3080, 3082, 3084, 3086, 3090, 3101, 3107, 3118, 3126, 3132, + 3143, 3151, 3165, 3192, 3211, 3231, 3232, 3233, 3234, 3237, + 3238, 3241, 3242, 3245, 3246, 3249, 3255, 3262, 3268, 3276, + 3277, 3278, 3279, 3280, 3281, 3284, 3285, 3288, 3289, 3290, + 3291, 3292, 3293, 3294, 3295, 3296, 3306, 3308, 3325, 3335, + 3345, 3358, 3371, 3377, 3383, 3387, 3393, 3394, 3395, 3396, + 3397, 3398, 3399, 3400, 3403, 3404, 3415, 3420, 3422, 3424, + 3432, 3434, 3436, 3438, 3440, 3442, 3444, 3446, 3448, 3450, + 3452, 3454, 3470, 3486, 3488, 3490, 3492, 3494, 3496, 3498, + 3510, 3517, 3524, 3539, 3554, 3576, 3591, 3613, 3620, 3627, + 3637, 3644, 3651, 3659, 3666, 3673, 3680, 3687, 3689, 3691, + 3693, 3700, 3710, 3720, 3730, 3740, 3746, 3752, 3752, 3766, + 3766, 3780, 3790, 3800, 3810, 3820, 3830, 3840, 3850, 3860, + 3870, 3880, 3890, 3900, 3910, 3920, 3930, 3940, 3950, 3960, + 3970, 3980, 3990, 4000, 4010, 4020, 4022, 4024, 4026, 4035, + 4040, 4042, 4050, 4052, 4054, 4056, 4058, 4060, 4062, 4064, + 4066, 4082, 4098, 4100, 4102, 4104, 4106, 4113, 4120, 4135, + 4150, 4172, 4187, 4209, 4216, 4223, 4230, 4238, 4245, 4252, + 4259, 4268, 4275, 4282, 4286, 4288, 4290, 4294, 4301, 4305, + 4306, 4307, 4310, 4312, 4316, 4321, 4323, 4325, 4327, 4329, + 4331, 4333, 4335, 4351, 4367, 4369, 4371, 4373, 4375, 4383, + 4390, 4397, 4404, 4412, 4419, 4426, 4433, 4442, 4446, 4450, + 4452, 4461, 4463, 4467, 4469, 4471, 4475, 4481, 4485, 4487, + 4493, 4499, 4503, 4505, 4526, 4534, 4545, 4563, 4565, 4569, + 4578, 4579, 4582, 4587, 4595, 4599, 4607, 4617, 4619, 4621, + 4632, 4634, 4636, 4651, 4658, 4665, 4684, 4686, 4691, 4698, + 4705, 4717, 4731, 4732, 4735, 4740, 4752, 4753, 4754, 4755, + 4756, 4762, 4763, 4765, 4766, 4771, 4778, 4785, 4792, 4800, + 4802, 4812, 4824, 4832, 4833, 4834, 4841, 4843, 4845, 4856, + 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, + 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, + 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, + 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, + 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, + 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, + 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, + 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, + 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, + 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, + 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4980, + 4987 }; #endif @@ -979,20 +982,20 @@ static const char * const yytname[] = { "$","error","$undefined.","ABSOLUTE", "opt_cursor","cursor_clause","opt_readonly","opt_of","SelectStmt","SubSelect", "union_clause","select_list","SubUnion","result","opt_table","opt_union","opt_unique", "sort_clause","sortby_list","sortby","OptUseOp","opt_inh_star","relation_name_list", -"name_list","group_clause","having_clause","from_clause","from_list","from_val", -"join_expr","join_outer","join_spec","join_list","join_using","where_clause", -"relation_expr","opt_array_bounds","nest_array_bounds","Typename","Array","Generic", -"generic","Numeric","numeric","opt_float","opt_numeric","opt_decimal","Character", -"character","opt_varying","opt_charset","opt_collate","Datetime","datetime", -"opt_timezone","opt_interval","a_expr_or_null","row_expr","row_descriptor","row_list", -"row_op","sub_type","a_expr","@2","@3","b_expr","opt_indirection","expr_list", -"extract_list","extract_arg","position_list","position_expr","substr_list","substr_from", -"substr_for","trim_list","in_expr","in_expr_nodes","not_in_expr","not_in_expr_nodes", -"case_expr","when_clause_list","when_clause","case_default","case_arg","attr", -"attrs","res_target_list","res_target_el","res_target_list2","res_target_el2", -"opt_id","relation_name","database_name","access_method","attr_name","class", -"index_name","name","func_name","file_name","recipe_name","AexprConst","ParamNo", -"Iconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation", NULL +"name_list","group_clause","having_clause","for_update_clause","from_clause", +"from_list","from_val","join_expr","join_outer","join_spec","join_list","join_using", +"where_clause","relation_expr","opt_array_bounds","nest_array_bounds","Typename", +"Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric","opt_decimal", +"Character","character","opt_varying","opt_charset","opt_collate","Datetime", +"datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr","row_descriptor", +"row_list","row_op","sub_type","a_expr","@2","@3","b_expr","opt_indirection", +"expr_list","extract_list","extract_arg","position_list","position_expr","substr_list", +"substr_from","substr_for","trim_list","in_expr","in_expr_nodes","not_in_expr", +"not_in_expr_nodes","case_expr","when_clause_list","when_clause","case_default", +"case_arg","attr","attrs","res_target_list","res_target_el","res_target_list2", +"res_target_el2","opt_id","relation_name","database_name","access_method","attr_name", +"class","index_name","name","func_name","file_name","recipe_name","AexprConst", +"ParamNo","Iconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation", NULL }; #endif @@ -1048,51 +1051,52 @@ static const short yyr1[] = { 0, 406, 407, 407, 408, 408, 408, 408, 409, 409, 410, 410, 411, 412, 412, 412, 412, 412, 412, 413, 413, 414, 415, 415, 416, 416, 417, 417, 418, 418, 418, - 419, 419, 419, 420, 420, 420, 421, 421, 421, 421, - 421, 421, 421, 421, 422, 422, 423, 423, 423, 424, - 424, 425, 425, 425, 426, 426, 427, 427, 428, 428, + 419, 419, 419, 420, 420, 420, 421, 421, 421, 422, + 422, 422, 422, 422, 422, 422, 422, 423, 423, 424, + 424, 424, 425, 425, 426, 426, 426, 427, 427, 428, 428, 429, 429, 429, 430, 430, 430, 431, 431, 431, - 432, 433, 433, 434, 434, 434, 434, 435, 435, 435, - 435, 436, 436, 437, 437, 437, 438, 438, 438, 439, - 439, 440, 440, 440, 440, 440, 441, 441, 442, 442, - 443, 443, 444, 444, 444, 444, 445, 445, 445, 445, - 445, 445, 446, 446, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 448, 448, 449, 449, 449, 449, 449, - 450, 451, 451, 452, 452, 452, 452, 452, 452, 452, - 452, 453, 453, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 455, 454, 456, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 457, 457, 457, 457, 457, 457, 458, 458, - 458, 459, 459, 459, 460, 460, 461, 461, 461, 462, - 462, 463, 463, 463, 463, 463, 463, 463, 463, 463, - 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, - 463, 463, 463, 463, 464, 464, 465, 465, 466, 466, - 467, 467, 467, 468, 468, 469, 469, 470, 470, 471, - 471, 472, 472, 472, 473, 473, 474, 475, 475, 476, - 476, 476, 477, 477, 478, 478, 478, 479, 479, 479, - 480, 480, 480, 481, 481, 482, 482, 482, 482, 483, - 483, 484, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 494, 494, 494, 494, 494, 494, 495, - 496, 497, 498, 499, 499, 499, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 501, 501, 501, + 432, 432, 432, 433, 434, 434, 435, 435, 435, 435, + 436, 436, 436, 436, 437, 437, 438, 438, 438, 439, + 439, 439, 440, 440, 441, 441, 441, 441, 441, 442, + 442, 443, 443, 444, 444, 445, 445, 445, 445, 446, + 446, 446, 446, 446, 446, 447, 447, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 449, 449, 450, 450, + 450, 450, 450, 451, 452, 452, 453, 453, 453, 453, + 453, 453, 453, 453, 454, 454, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 456, 455, 457, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 459, 459, 459, 460, 460, 460, 461, 461, 462, + 462, 462, 463, 463, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 465, 465, 466, + 466, 467, 467, 468, 468, 468, 469, 469, 470, 470, + 471, 471, 472, 472, 473, 473, 473, 474, 474, 475, + 476, 476, 477, 477, 477, 478, 478, 479, 479, 479, + 480, 480, 480, 481, 481, 481, 482, 482, 483, 483, + 483, 483, 484, 484, 485, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 495, 495, 495, 495, + 495, 495, 496, 497, 498, 499, 500, 500, 500, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, - 501, 501, 501, 501, 501, 501, 502, 502 + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 503, + 503 }; static const short yyr2[] = { 0, @@ -1143,43 +1147,44 @@ static const short yyr2[] = { 0, 1, 1, 5, 4, 2, 8, 3, 0, 3, 1, 2, 4, 3, 8, 7, 6, 1, 0, 6, 15, 1, 1, 1, 2, 0, 2, 0, 2, 2, 2, - 10, 8, 3, 0, 4, 1, 7, 3, 0, 1, + 11, 8, 3, 0, 4, 1, 7, 3, 0, 1, 0, 1, 0, 1, 3, 1, 0, 3, 0, 1, 3, 2, 2, 2, 2, 1, 1, 0, 1, 0, - 1, 1, 3, 3, 0, 2, 0, 8, 2, 0, - 3, 4, 1, 3, 2, 1, 2, 2, 2, 2, - 1, 1, 1, 0, 1, 0, 4, 4, 0, 1, - 3, 1, 3, 1, 2, 0, 1, 2, 3, 4, - 0, 3, 4, 0, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, - 1, 3, 0, 5, 3, 0, 5, 3, 0, 4, - 1, 4, 2, 1, 3, 2, 1, 0, 3, 0, - 2, 0, 1, 2, 1, 2, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 3, 3, 3, 3, 3, - 3, 3, 0, 1, 1, 7, 8, 8, 7, 7, - 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 2, 3, 3, - 3, 3, 3, 3, 3, 2, 2, 2, 3, 6, - 3, 3, 3, 4, 2, 2, 4, 3, 4, 1, - 1, 4, 1, 4, 1, 1, 4, 4, 4, 4, - 5, 5, 5, 4, 2, 3, 2, 4, 3, 4, - 3, 4, 5, 6, 0, 6, 0, 7, 5, 5, - 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, + 1, 1, 3, 3, 0, 2, 0, 2, 4, 0, + 8, 2, 0, 3, 4, 1, 3, 2, 1, 2, + 2, 2, 2, 1, 1, 1, 0, 1, 0, 4, + 4, 0, 1, 3, 1, 3, 1, 2, 0, 1, + 2, 3, 4, 0, 3, 4, 0, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 2, 1, 1, 3, 0, 5, 3, 0, 5, + 3, 0, 4, 1, 4, 2, 1, 3, 2, 1, + 0, 3, 0, 2, 0, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 3, 0, 1, 3, 3, + 3, 3, 3, 3, 3, 0, 1, 1, 7, 8, + 8, 7, 7, 3, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 3, 6, 3, 3, 3, 4, 2, 2, 4, + 3, 4, 1, 1, 4, 1, 4, 1, 1, 4, + 4, 4, 4, 5, 5, 5, 4, 2, 3, 2, + 4, 3, 4, 3, 4, 5, 6, 0, 6, 0, + 7, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 3, 3, 2, 1, 2, 1, 1, 2, - 3, 3, 3, 3, 2, 2, 2, 3, 6, 3, - 3, 2, 2, 3, 4, 1, 1, 4, 1, 4, - 1, 1, 4, 4, 5, 5, 5, 4, 4, 6, - 0, 1, 3, 3, 3, 0, 1, 1, 1, 3, - 0, 2, 1, 2, 3, 3, 3, 3, 2, 3, - 6, 3, 3, 2, 2, 1, 3, 4, 4, 4, - 5, 5, 5, 4, 3, 0, 2, 0, 2, 0, - 3, 2, 1, 1, 1, 1, 3, 1, 1, 1, - 3, 5, 6, 4, 2, 1, 4, 2, 0, 2, - 1, 0, 3, 3, 1, 3, 3, 3, 1, 1, - 4, 2, 3, 3, 1, 3, 1, 3, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, + 6, 6, 6, 6, 6, 3, 3, 2, 1, 2, + 1, 1, 2, 3, 3, 3, 3, 2, 2, 2, + 3, 6, 3, 3, 2, 2, 3, 4, 1, 1, + 4, 1, 4, 1, 1, 4, 4, 5, 5, 5, + 4, 4, 6, 0, 1, 3, 3, 3, 0, 1, + 1, 1, 3, 0, 2, 1, 2, 3, 3, 3, + 3, 2, 3, 6, 3, 3, 2, 2, 1, 3, + 4, 4, 4, 5, 5, 5, 4, 3, 0, 2, + 0, 2, 0, 3, 2, 1, 1, 1, 1, 3, + 1, 1, 1, 3, 5, 6, 4, 2, 1, 4, + 2, 0, 2, 1, 0, 3, 3, 1, 3, 3, + 3, 1, 1, 4, 2, 3, 3, 1, 3, 1, + 3, 1, 1, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1191,11 +1196,11 @@ static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1 + 1 }; static const short yydefact[] = { 0, - 0, 409, 821, 409, 242, 0, 0, 0, 409, 0, + 0, 409, 824, 409, 242, 0, 0, 0, 409, 0, 295, 0, 0, 0, 409, 487, 0, 0, 409, 0, 98, 429, 0, 0, 0, 481, 295, 0, 0, 0, 0, 429, 1, 2, 15, 7, 21, 46, 47, 48, @@ -1203,122 +1208,122 @@ static const short yydefact[] = { 0, 17, 18, 24, 25, 37, 26, 22, 31, 30, 35, 32, 34, 33, 36, 39, 441, 27, 28, 40, 41, 42, 43, 44, 16, 45, 23, 38, 440, 442, 29, - 439, 438, 437, 0, 0, 408, 407, 403, 849, 850, - 589, 861, 590, 870, 873, 874, 877, 591, 588, 880, - 885, 887, 889, 891, 892, 894, 896, 901, 592, 908, - 909, 910, 911, 587, 917, 912, 914, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 862, 863, 864, - 865, 866, 867, 868, 869, 871, 872, 875, 876, 878, - 879, 881, 882, 883, 884, 886, 888, 890, 893, 895, - 897, 898, 899, 900, 902, 903, 904, 905, 906, 907, - 913, 915, 916, 847, 848, 90, 820, 404, 0, 323, + 439, 438, 437, 0, 0, 408, 407, 403, 852, 853, + 592, 864, 593, 873, 876, 877, 880, 594, 591, 883, + 888, 890, 892, 894, 895, 897, 899, 904, 595, 911, + 912, 913, 914, 590, 920, 915, 917, 854, 855, 856, + 857, 858, 859, 860, 861, 862, 863, 865, 866, 867, + 868, 869, 870, 871, 872, 874, 875, 878, 879, 881, + 882, 884, 885, 886, 887, 889, 891, 893, 896, 898, + 900, 901, 902, 903, 905, 906, 907, 908, 909, 910, + 916, 918, 919, 850, 851, 90, 823, 404, 0, 323, 0, 0, 0, 269, 270, 0, 0, 268, 0, 0, - 241, 0, 0, 0, 465, 829, 0, 0, 0, 355, + 241, 0, 0, 0, 465, 832, 0, 0, 0, 355, 0, 352, 0, 0, 0, 353, 0, 0, 354, 0, 0, 405, 0, 294, 293, 292, 291, 301, 307, 314, 312, 311, 313, 315, 0, 308, 309, 0, 0, 406, - 486, 484, 0, 423, 908, 0, 0, 957, 958, 0, - 823, 822, 402, 0, 828, 97, 0, 428, 0, 0, - 399, 842, 411, 831, 480, 0, 301, 398, 908, 0, - 80, 908, 0, 77, 401, 400, 431, 4, 5, 500, - 843, 53, 221, 53, 0, 0, 413, 824, 0, 830, + 486, 484, 0, 423, 911, 0, 0, 960, 961, 0, + 826, 825, 402, 0, 831, 97, 0, 428, 0, 0, + 399, 845, 411, 834, 480, 0, 301, 398, 911, 0, + 80, 911, 0, 77, 401, 400, 431, 4, 5, 500, + 846, 53, 221, 53, 0, 0, 413, 827, 0, 833, 0, 227, 0, 272, 271, 275, 369, 367, 368, 363, 364, 365, 366, 266, 0, 274, 273, 0, 462, 463, - 461, 0, 536, 287, 501, 502, 51, 0, 0, 424, - 0, 361, 0, 362, 0, 288, 351, 832, 340, 298, - 299, 300, 841, 0, 304, 296, 306, 0, 0, 448, - 0, 0, 802, 0, 578, 578, 0, 650, 651, 653, - 655, 569, 861, 0, 0, 839, 563, 603, 0, 578, - 0, 0, 605, 566, 0, 0, 908, 909, 0, 838, - 656, 574, 914, 0, 847, 0, 741, 834, 0, 819, - 0, 0, 0, 0, 0, 541, 548, 551, 550, 546, - 571, 549, 848, 817, 625, 604, 706, 741, 479, 815, - 0, 0, 626, 837, 833, 835, 627, 422, 71, 421, - 0, 0, 0, 0, 0, 0, 100, 436, 536, 453, + 461, 0, 539, 287, 501, 502, 51, 0, 0, 424, + 0, 361, 0, 362, 0, 288, 351, 835, 340, 298, + 299, 300, 844, 0, 304, 296, 306, 0, 0, 448, + 0, 0, 805, 0, 581, 581, 0, 653, 654, 656, + 658, 572, 864, 0, 0, 842, 566, 606, 0, 581, + 0, 0, 608, 569, 0, 0, 911, 912, 0, 841, + 659, 577, 917, 0, 850, 0, 744, 837, 0, 822, + 0, 0, 0, 0, 0, 544, 551, 554, 553, 549, + 574, 552, 851, 820, 628, 607, 709, 744, 479, 818, + 0, 0, 629, 840, 836, 838, 630, 422, 71, 421, + 0, 0, 0, 0, 0, 0, 100, 436, 539, 453, 304, 81, 0, 78, 0, 430, 426, 3, 499, 0, 0, 56, 106, 0, 56, 0, 246, 245, 0, 415, 0, 0, 379, 225, 0, 0, 267, 0, 464, 0, 0, 452, 0, 0, 358, 356, 357, 359, 0, 243, 297, 0, 0, 289, 0, 310, 0, 0, 0, 485, - 0, 741, 0, 0, 801, 0, 577, 573, 580, 0, - 0, 0, 0, 556, 555, 0, 746, 0, 554, 589, - 590, 591, 587, 595, 586, 578, 576, 705, 0, 0, - 557, 751, 776, 0, 584, 0, 0, 585, 594, 553, - 552, 547, 583, 645, 0, 840, 628, 638, 636, 637, - 0, 0, 0, 604, 836, 0, 545, 0, 0, 0, - 0, 675, 0, 0, 0, 0, 665, 667, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 624, 481, 0, - 510, 0, 0, 0, 75, 76, 68, 74, 0, 73, - 66, 72, 67, 810, 741, 510, 809, 0, 741, 425, + 0, 744, 0, 0, 804, 0, 580, 576, 583, 0, + 0, 0, 0, 559, 558, 0, 749, 0, 557, 592, + 593, 594, 590, 598, 589, 581, 579, 708, 0, 0, + 560, 754, 779, 0, 587, 0, 0, 588, 597, 556, + 555, 550, 586, 648, 0, 843, 631, 641, 639, 640, + 0, 0, 0, 607, 839, 0, 548, 0, 0, 0, + 0, 678, 0, 0, 0, 0, 668, 670, 649, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 481, 0, + 513, 0, 0, 0, 75, 76, 68, 74, 0, 73, + 66, 72, 67, 813, 744, 513, 812, 0, 744, 425, 0, 0, 339, 458, 290, 82, 79, 433, 378, 378, 378, 378, 83, 0, 54, 55, 59, 0, 0, 0, 0, 0, 0, 105, 107, 108, 156, 0, 223, 224, 0, 59, 410, 251, 250, 252, 0, 247, 0, 417, - 560, 861, 558, 561, 345, 0, 845, 846, 346, 844, + 563, 864, 561, 564, 345, 0, 848, 849, 346, 847, 350, 0, 0, 229, 0, 0, 0, 0, 226, 0, - 0, 280, 0, 277, 0, 0, 535, 503, 265, 0, - 0, 370, 303, 302, 0, 0, 450, 741, 0, 487, - 0, 443, 0, 0, 799, 796, 800, 0, 0, 0, - 582, 742, 0, 0, 0, 0, 487, 0, 748, 749, - 747, 0, 0, 0, 0, 0, 0, 0, 575, 0, + 0, 280, 0, 277, 0, 0, 538, 503, 265, 0, + 0, 370, 303, 302, 0, 0, 450, 744, 0, 487, + 0, 443, 0, 0, 802, 799, 803, 0, 0, 0, + 585, 745, 0, 0, 0, 0, 487, 0, 751, 752, + 750, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 741, 0, 753, 766, 778, 0, 0, 0, 0, - 0, 0, 604, 783, 0, 0, 641, 0, 0, 544, - 0, 0, 922, 924, 925, 927, 928, 930, 931, 934, - 935, 936, 943, 944, 945, 946, 950, 951, 952, 953, - 956, 919, 920, 921, 923, 926, 929, 932, 933, 937, - 938, 939, 940, 941, 942, 947, 948, 949, 954, 955, - 918, 816, 703, 0, 726, 727, 729, 731, 0, 0, - 0, 732, 0, 0, 0, 0, 0, 0, 0, 741, - 0, 708, 709, 0, 671, 0, 666, 669, 643, 0, - 677, 0, 704, 0, 0, 0, 642, 0, 0, 0, - 635, 0, 0, 0, 633, 0, 0, 0, 634, 0, - 0, 0, 629, 0, 0, 0, 630, 0, 0, 0, - 632, 0, 0, 0, 631, 639, 0, 814, 0, 536, - 818, 803, 805, 826, 0, 648, 0, 804, 894, 70, - 812, 0, 536, 0, 0, 99, 93, 92, 0, 457, + 0, 744, 0, 756, 769, 781, 0, 0, 0, 0, + 0, 0, 607, 786, 0, 0, 644, 0, 0, 547, + 0, 0, 925, 927, 928, 930, 931, 933, 934, 937, + 938, 939, 946, 947, 948, 949, 953, 954, 955, 956, + 959, 922, 923, 924, 926, 929, 932, 935, 936, 940, + 941, 942, 943, 944, 945, 950, 951, 952, 957, 958, + 921, 819, 706, 0, 729, 730, 732, 734, 0, 0, + 0, 735, 0, 0, 0, 0, 0, 0, 0, 744, + 0, 711, 712, 0, 674, 0, 669, 672, 646, 0, + 680, 0, 707, 0, 0, 0, 645, 0, 0, 0, + 638, 0, 0, 0, 636, 0, 0, 0, 637, 0, + 0, 0, 632, 0, 0, 0, 633, 0, 0, 0, + 635, 0, 0, 0, 634, 642, 0, 817, 0, 539, + 821, 806, 808, 829, 0, 651, 0, 807, 897, 70, + 815, 0, 539, 0, 0, 99, 93, 92, 0, 457, 0, 0, 427, 377, 106, 89, 0, 0, 0, 376, 52, 57, 58, 63, 0, 0, 0, 0, 0, 0, 218, 0, 220, 116, 112, 219, 63, 0, 0, 420, - 0, 412, 559, 0, 344, 349, 343, 0, 0, 0, + 0, 412, 562, 0, 344, 349, 343, 0, 0, 0, 228, 238, 230, 231, 232, 233, 0, 0, 0, 0, 276, 326, 487, 0, 360, 0, 0, 316, 320, 318, - 0, 447, 451, 445, 0, 0, 321, 0, 0, 795, - 0, 0, 0, 0, 572, 0, 0, 794, 652, 654, - 0, 568, 0, 657, 658, 0, 562, 597, 598, 599, - 600, 601, 602, 596, 0, 0, 565, 0, 751, 776, - 0, 764, 754, 759, 0, 659, 0, 765, 0, 0, - 0, 0, 0, 752, 0, 0, 780, 660, 593, 0, - 782, 0, 0, 0, 664, 0, 741, 0, 0, 614, - 616, 615, 617, 618, 619, 620, 621, 0, 611, 0, - 539, 544, 570, 0, 0, 0, 751, 776, 0, 722, - 710, 717, 715, 716, 0, 0, 723, 0, 0, 0, - 0, 0, 707, 0, 0, 670, 668, 672, 0, 0, - 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 447, 451, 445, 0, 0, 321, 0, 0, 798, + 0, 0, 0, 0, 575, 0, 0, 797, 655, 657, + 0, 571, 0, 660, 661, 0, 565, 600, 601, 602, + 603, 604, 605, 599, 0, 0, 568, 0, 754, 779, + 0, 767, 757, 762, 0, 662, 0, 768, 0, 0, + 0, 0, 0, 755, 0, 0, 783, 663, 596, 0, + 785, 0, 0, 0, 667, 0, 744, 0, 0, 617, + 619, 618, 620, 621, 622, 623, 624, 0, 614, 0, + 542, 547, 573, 0, 0, 0, 754, 779, 0, 725, + 713, 720, 718, 719, 0, 0, 726, 0, 0, 0, + 0, 0, 710, 0, 0, 673, 671, 675, 0, 0, + 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 478, 0, 509, 513, 516, - 537, 505, 0, 647, 649, 69, 808, 459, 813, 0, + 0, 0, 0, 0, 0, 478, 0, 512, 516, 519, + 540, 505, 0, 650, 652, 69, 811, 459, 816, 0, 95, 96, 102, 94, 456, 0, 0, 434, 0, 0, 84, 0, 86, 0, 375, 0, 65, 0, 0, 164, - 0, 0, 0, 0, 0, 0, 0, 0, 163, 837, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 840, 165, 155, 0, 0, 0, 104, 0, 103, 222, 224, 0, 110, 0, 0, 0, 0, 0, 0, 123, 109, 111, 114, 118, 65, 0, 248, 419, 414, 418, 423, 347, 0, 0, 348, 394, 395, 392, 393, 0, 239, 0, 0, 236, 364, 284, 234, 235, 281, 283, 285, 282, 279, 278, 0, 0, 0, 372, 373, 371, 317, - 0, 305, 449, 510, 0, 0, 798, 792, 0, 579, - 581, 744, 743, 0, 510, 745, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 762, 750, 763, 755, 756, - 758, 757, 760, 767, 0, 777, 0, 775, 661, 662, - 663, 781, 0, 739, 0, 0, 623, 622, 0, 0, - 544, 0, 540, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 720, 673, 721, 711, 712, 714, 713, 718, - 724, 0, 784, 0, 785, 786, 0, 0, 0, 0, - 679, 0, 0, 686, 0, 0, 684, 0, 0, 685, - 0, 0, 680, 0, 0, 681, 0, 0, 683, 0, - 0, 682, 524, 0, 0, 0, 515, 538, 0, 507, - 807, 806, 811, 0, 91, 455, 0, 0, 432, 85, + 0, 305, 449, 513, 0, 0, 801, 795, 0, 582, + 584, 747, 746, 0, 513, 748, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 765, 753, 766, 758, 759, + 761, 760, 763, 770, 0, 780, 0, 778, 664, 665, + 666, 784, 0, 742, 0, 0, 626, 625, 0, 0, + 547, 0, 543, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 723, 676, 724, 714, 715, 717, 716, 721, + 727, 0, 787, 0, 788, 789, 0, 0, 0, 0, + 682, 0, 0, 689, 0, 0, 687, 0, 0, 688, + 0, 0, 683, 0, 0, 684, 0, 0, 686, 0, + 0, 685, 527, 0, 0, 0, 518, 541, 0, 507, + 810, 809, 814, 0, 91, 455, 0, 0, 432, 85, 0, 0, 0, 0, 0, 50, 0, 187, 188, 166, 176, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 190, 192, 189, 0, 0, 0, 0, 0, 0, @@ -1326,88 +1331,89 @@ static const short yydefact[] = { 0, 0, 0, 148, 149, 151, 153, 120, 154, 0, 0, 0, 0, 0, 0, 121, 0, 128, 122, 124, 448, 113, 49, 255, 0, 0, 416, 342, 0, 0, 0, - 286, 237, 825, 325, 0, 510, 0, 536, 444, 797, - 640, 567, 536, 793, 564, 0, 769, 770, 0, 0, - 0, 774, 768, 779, 741, 0, 0, 0, 0, 613, - 0, 542, 544, 0, 728, 730, 733, 734, 0, 0, - 0, 738, 725, 676, 0, 674, 788, 0, 789, 790, - 695, 687, 702, 694, 700, 692, 701, 693, 696, 688, - 697, 689, 699, 691, 698, 690, 526, 522, 526, 524, - 521, 526, 523, 0, 511, 0, 514, 0, 0, 474, + 286, 237, 828, 325, 0, 513, 0, 539, 444, 800, + 643, 570, 539, 796, 567, 0, 772, 773, 0, 0, + 0, 777, 771, 782, 744, 0, 0, 0, 0, 616, + 0, 545, 547, 0, 731, 733, 736, 737, 0, 0, + 0, 741, 728, 679, 0, 677, 791, 0, 792, 793, + 698, 690, 705, 697, 703, 695, 704, 696, 699, 691, + 700, 692, 702, 694, 701, 693, 529, 525, 529, 527, + 524, 529, 526, 0, 514, 0, 517, 0, 0, 474, 0, 454, 435, 88, 0, 374, 62, 61, 0, 0, 179, 185, 0, 204, 0, 195, 0, 191, 194, 183, 0, 0, 0, 186, 182, 171, 172, 173, 167, 168, 170, 169, 177, 180, 0, 162, 0, 159, 0, 0, 117, 0, 0, 0, 146, 129, 139, 137, 138, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 207, 254, 0, 0, 249, 0, 536, 391, 240, 0, - 327, 328, 330, 335, 0, 826, 536, 319, 505, 505, - 0, 771, 772, 773, 740, 606, 0, 609, 610, 0, - 543, 0, 735, 736, 737, 787, 678, 0, 525, 518, - 519, 517, 520, 0, 512, 504, 506, 483, 489, 101, + 207, 254, 0, 0, 249, 0, 539, 391, 240, 0, + 327, 328, 330, 335, 0, 829, 539, 319, 505, 505, + 0, 774, 775, 776, 743, 609, 0, 612, 613, 0, + 546, 0, 738, 739, 740, 790, 681, 0, 528, 521, + 522, 520, 523, 0, 515, 504, 506, 483, 489, 101, 87, 0, 64, 0, 0, 0, 203, 197, 193, 196, 0, 0, 184, 0, 181, 0, 217, 119, 0, 0, 0, 142, 145, 134, 135, 136, 130, 131, 133, 132, 140, 143, 0, 127, 0, 210, 256, 257, 253, 0, 0, 0, 0, 343, 0, 0, 0, 338, 0, 505, - 507, 507, 761, 607, 608, 719, 791, 529, 482, 0, - 0, 471, 60, 0, 200, 0, 198, 0, 0, 161, + 507, 507, 764, 610, 611, 722, 794, 532, 482, 0, + 0, 510, 60, 0, 200, 0, 198, 0, 0, 161, 448, 0, 150, 152, 0, 144, 205, 206, 0, 125, 209, 0, 341, 397, 390, 322, 329, 334, 333, 0, - 827, 332, 336, 0, 507, 474, 474, 0, 0, 0, - 487, 473, 476, 0, 178, 202, 201, 199, 207, 0, - 126, 0, 0, 208, 260, 396, 0, 337, 335, 474, - 446, 472, 0, 0, 508, 0, 483, 488, 490, 498, - 210, 141, 214, 0, 0, 211, 212, 264, 261, 262, - 0, 258, 263, 381, 0, 0, 380, 382, 338, 489, - 0, 0, 530, 534, 532, 510, 0, 0, 496, 497, - 0, 492, 160, 213, 215, 216, 0, 244, 0, 385, - 386, 0, 331, 467, 527, 0, 528, 0, 536, 475, - 491, 493, 494, 495, 259, 383, 388, 389, 384, 0, - 460, 531, 533, 505, 387, 0, 0, 466, 507, 468, - 0, 469, 477, 470, 0, 0, 0 + 830, 332, 336, 0, 507, 474, 474, 0, 0, 0, + 487, 473, 476, 0, 0, 471, 178, 202, 201, 199, + 207, 0, 126, 0, 0, 208, 260, 396, 0, 337, + 335, 474, 446, 472, 0, 0, 511, 0, 483, 488, + 490, 498, 508, 210, 141, 214, 0, 0, 211, 212, + 264, 261, 262, 0, 258, 263, 381, 0, 0, 380, + 382, 338, 489, 0, 0, 533, 537, 535, 513, 0, + 0, 496, 497, 0, 492, 0, 160, 213, 215, 216, + 0, 244, 0, 385, 386, 0, 331, 467, 530, 0, + 531, 0, 539, 475, 491, 493, 494, 495, 509, 259, + 383, 388, 389, 384, 0, 460, 534, 536, 505, 387, + 0, 0, 466, 507, 468, 0, 469, 477, 470, 0, + 0, 0 }; -static const short yydefgoto[] = { 1705, +static const short yydefgoto[] = { 1710, 33, 34, 35, 36, 37, 412, 567, 834, 1397, 1047, 1246, 38, 541, 537, 39, 40, 41, 563, 42, 43, 819, 1033, 237, 552, 1235, 44, 573, 574, 575, 1080, 1081, 1072, 1082, 1083, 1533, 1295, 576, 577, 1425, 1057, - 1506, 1507, 1536, 1580, 1581, 1636, 1068, 45, 414, 578, + 1506, 1507, 1536, 1580, 1581, 1639, 1068, 45, 414, 578, 579, 46, 424, 609, 1105, 1106, 1107, 47, 182, 48, - 49, 419, 587, 588, 1304, 1453, 1539, 1641, 1642, 50, + 49, 419, 587, 588, 1304, 1453, 1539, 1644, 1645, 50, 51, 284, 183, 612, 427, 613, 614, 1108, 52, 53, 208, 315, 444, 54, 215, 216, 217, 879, 1122, 55, 56, 184, 1115, 1460, 1461, 1462, 1463, 1548, 1592, 57, 58, 59, 1093, 422, 596, 857, 858, 60, 201, 61, 436, 62, 63, 1109, 286, 621, 64, 1044, 827, 65, - 602, 1647, 1669, 1670, 1457, 1099, 1617, 66, 67, 68, + 602, 1650, 1673, 1674, 1457, 1099, 1619, 66, 67, 68, 69, 88, 70, 71, 72, 590, 852, 1088, 389, 73, 74, 75, 239, 407, 823, 1037, 76, 77, 78, 632, - 448, 626, 627, 79, 80, 821, 81, 82, 292, 1691, - 1698, 1702, 83, 648, 1499, 1602, 1603, 531, 246, 1560, - 223, 1562, 1628, 1629, 1662, 410, 294, 295, 1230, 1390, - 800, 1018, 1019, 1384, 1490, 1600, 1652, 1653, 432, 1020, - 507, 961, 365, 366, 367, 368, 369, 597, 469, 481, - 464, 370, 371, 458, 641, 895, 372, 373, 485, 475, - 642, 375, 502, 503, 958, 1170, 376, 754, 990, 749, - 496, 684, 652, 653, 670, 671, 677, 937, 1158, 685, - 1194, 1195, 1358, 1359, 377, 635, 636, 891, 451, 378, - 802, 546, 547, 379, 380, 166, 453, 267, 1314, 803, - 1593, 234, 296, 382, 243, 309, 383, 384, 385, 386, - 262, 599, 387, 732, 232 + 448, 626, 627, 79, 80, 821, 81, 82, 292, 1696, + 1703, 1707, 83, 648, 1499, 1602, 1603, 531, 246, 1560, + 223, 1562, 1630, 1631, 1665, 410, 294, 295, 1230, 1390, + 1606, 800, 1018, 1019, 1384, 1490, 1600, 1655, 1656, 432, + 1020, 507, 961, 365, 366, 367, 368, 369, 597, 469, + 481, 464, 370, 371, 458, 641, 895, 372, 373, 485, + 475, 642, 375, 502, 503, 958, 1170, 376, 754, 990, + 749, 496, 684, 652, 653, 670, 671, 677, 937, 1158, + 685, 1194, 1195, 1358, 1359, 377, 635, 636, 891, 451, + 378, 802, 546, 547, 379, 380, 166, 453, 267, 1314, + 803, 1593, 234, 296, 382, 243, 309, 383, 384, 385, + 386, 262, 599, 387, 732, 232 }; -static const short yypact[] = { 15105, - 16, 273, 14734, 273, 1351, 14734, 46, 1640, 273, -30, - 56, 324, 140, 324, 273, 234, 13374, 13544, 273, 14734, - 160, 153, 163, 13544, 181, 229, 56, 13544, 13884, 14054, - 11508, 153, 15105, 230,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 14845, + 215, 278, 14474, 278, 1360, 14474, 42, 2729, 278, -82, + 158, 73, 64, 73, 278, 96, 13114, 13284, 278, 14474, + -10, -54, 27, 13284, 0, 87, 158, 13284, 13624, 13794, + 11329, -54, 14845, 54,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 13544, 189,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 13284, 76,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, @@ -1415,579 +1421,603 @@ static const short yypact[] = { 15105, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 13544,-32768, - 189, 14734, 14734,-32768,-32768, 14734, 14734,-32768, 14734, 13544, --32768, 280, 11168, 322, 78,-32768, 13544, 14734, 189,-32768, - 14734,-32768, 14734, 14734, 14734,-32768, 1166, 438,-32768, 14734, - 14734,-32768, 307,-32768,-32768,-32768,-32768, 118, 433,-32768, --32768,-32768,-32768,-32768, 456, 304,-32768, 13544, 476,-32768, --32768, 477, 5539, 0, 423, 504, -19,-32768,-32768, 457, --32768,-32768,-32768, 491,-32768,-32768, 13544,-32768, 74, 14734, --32768,-32768,-32768,-32768,-32768, 13544, 118,-32768, 442, 521, --32768, 458, 532,-32768,-32768,-32768, 466, 375,-32768, 380, --32768, 505, 389, 505, 623, 362, 508,-32768, 418,-32768, - 631,-32768, 587,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 426,-32768,-32768, 14734, 551,-32768, --32768, 632, 533,-32768, 441,-32768,-32768, 580, 11678,-32768, - 418,-32768, 450,-32768, 181,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 467, 405,-32768,-32768, 14734, 30, 454, - 14734, 14734, 12439, 481, 556, 556, 490,-32768, 493, 535, --32768, 539, 592, 540, 557,-32768, 558, 386, 680, 556, - 8460, 565,-32768, 569, 570, 575, -83, -60, 577,-32768, --32768,-32768, -69, 595, 135, 8460, 548,-32768, 8460,-32768, - 8460, 8460, 8460, 7791, 181, 583,-32768,-32768,-32768,-32768, - 582,-32768, 177, 698,-32768, 3160,-32768, 548, -11,-32768, - 482, 585,-32768, 496,-32768,-32768, 190,-32768,-32768,-32768, - -1, 723, 9, 9, 11338, 13544, 663,-32768, 533, 754, - 405,-32768, 744,-32768, 749,-32768, 13544,-32768,-32768, 49, - 639, -21, 13204, 820, -21, 718,-32768,-32768, 64, 658, - 4670, 641,-32768, 407, 181, 10998,-32768, 747,-32768, 787, - 8460,-32768, 14734, 13544,-32768,-32768,-32768,-32768, 14224,-32768, --32768, 14734, 14734,-32768, 719,-32768, 14734, 86, 789,-32768, - 706, 548, 613, 496, 616, 8460,-32768,-32768, 827, 7791, - 467, 467, 467,-32768,-32768, 736, 355, 467,-32768, 728, - 737, 739, 741,-32768,-32768, 556,-32768, 473, 8460, 467, --32768, 9768, 7791, 740,-32768, 4866, 592,-32768, 732,-32768, --32768,-32768,-32768, 544, 8460,-32768, 643, 643, 643, 643, - 636, 649, 645, 1507,-32768, -81,-32768, 467, 12805, 8460, - 8678,-32768, 29, 8460, 253, 8460,-32768,-32768, 8018, 5766, - 5993, 6220, 6447, 6674, 6901, 7128, 15460,-32768, 229, 5539, - 822, 11848, 3563, 14734,-32768,-32768,-32768,-32768, 14904,-32768, --32768,-32768,-32768,-32768, 548, -10,-32768, 656, 292,-32768, - 701, 72,-32768, 681,-32768,-32768,-32768, 657, 22, 870, - 870, 870,-32768, 189,-32768,-32768, 116, 661, 14734, 830, - 831, 662, 193,-32768,-32768,-32768,-32768, 209,-32768, 15375, - 736, 116,-32768,-32768,-32768,-32768, 814, 809, 687, 750, --32768, 811,-32768,-32768,-32768, 227,-32768,-32768,-32768,-32768, - 709, 826, 184,-32768, 184, 184, 184, 184,-32768, 753, - 694, 703, 326,-32768, 13544, 810, 3160,-32768,-32768, 696, - 695, 702,-32768,-32768, 13714, 400,-32768, 548, 813, 234, - 705,-32768, 13714, 8460, 32,-32768,-32768, 14734, 2559, 835, - 920,-32768, -80, 714, 720, 406, 234, 721,-32768,-32768, --32768, 722, 905, 726, 53, 217, 853, 887,-32768, 1845, - 447, 735, 745, 746, 751, 9768, 9768, 9768, 9768, 731, - 277, 548, 761,-32768, 190, -13, 748, 860, 7349, 7791, - 7349, 7349, 2777, -59, 769, 2322,-32768, 768, 8460, 773, - 777, 779,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 13284,-32768, + 76, 14474, 14474,-32768,-32768, 14474, 14474,-32768, 14474, 13284, +-32768, 178, 10989, 227, 49,-32768, 13284, 14474, 76,-32768, + 14474,-32768, 14474, 14474, 14474,-32768, 662, 330,-32768, 14474, + 14474,-32768, 203,-32768,-32768,-32768,-32768, 74, 339,-32768, +-32768,-32768,-32768,-32768, 347, 225,-32768, 13284, 364,-32768, +-32768, 371, 5360, 43, 344, 401, -36,-32768,-32768, 388, +-32768,-32768,-32768, 414,-32768,-32768, 13284,-32768, 455, 14474, +-32768,-32768,-32768,-32768,-32768, 13284, 74,-32768, 381, 450, +-32768, 384, 473,-32768,-32768,-32768, 407, 331,-32768, 352, +-32768, 433, 348, 433, 576, 198, 449,-32768, 355,-32768, + 600,-32768, 558,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 402,-32768,-32768, 14474, 527,-32768, +-32768, 604, 506,-32768, 415,-32768,-32768, 566, 11499,-32768, + 355,-32768, 434,-32768, 0,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 459, 180,-32768,-32768, 14474, 246, 440, + 14474, 14474, 12179, 445, 551, 551, 453,-32768, 454, 458, +-32768, 472, 583, 476, 477,-32768, 480, 608, 696, 551, + 8281, 486,-32768, 499, 502, 511, 101, -50, 512,-32768, +-32768,-32768, 110, 3353, 135, 8281, 524,-32768, 8281,-32768, + 8281, 8281, 8281, 7612, 0, 553,-32768,-32768,-32768,-32768, + 544,-32768, 159, 795,-32768, 2848,-32768, 524, -20,-32768, + 565, 578,-32768, 591,-32768,-32768, 269,-32768,-32768,-32768, + 25, 760, 45, 45, 11159, 13284, 702,-32768, 506, 780, + 180,-32768, 770,-32768, 772,-32768, 13284,-32768,-32768, 91, + 653, -38, 12944, 837, -38, 735,-32768,-32768, 60, 674, + 3097, 656,-32768, 785, 0, 10819,-32768, 761,-32768, 800, + 8281,-32768, 14474, 13284,-32768,-32768,-32768,-32768, 13964,-32768, +-32768, 14474, 14474,-32768, 736,-32768, 14474, 94, 806,-32768, + 723, 524, 633, 591, 639, 8281,-32768,-32768, 850, 7612, + 459, 459, 459,-32768,-32768, 759, 418, 459,-32768, 757, + 758, 766, 767,-32768,-32768, 551,-32768, 1138, 8281, 459, +-32768, 9589, 7612, 774,-32768, 4687, 583,-32768, 755,-32768, +-32768,-32768,-32768, 403, 8281,-32768, 661, 661, 661, 661, + 660, 663, 666, 1387,-32768, 196,-32768, 459, 12545, 8281, + 8499,-32768, 263, 8281, 437, 8281,-32768,-32768, 7839, 5587, + 5814, 6041, 6268, 6495, 6722, 6949, 15200,-32768, 87, 5360, + 846, 11669, 3572, 14474,-32768,-32768,-32768,-32768, 14644,-32768, +-32768,-32768,-32768,-32768, 524, -18,-32768, 672, 221,-32768, + 717, 19,-32768, 693,-32768,-32768,-32768, 682, 22, 894, + 894, 894,-32768, 76,-32768,-32768, 156, 686, 14474, 852, + 853, 695, -115,-32768,-32768,-32768,-32768, 275,-32768, 15115, + 759, 156,-32768,-32768,-32768,-32768, 840, 838, 715, 777, +-32768, 836,-32768,-32768,-32768, 328,-32768,-32768,-32768,-32768, + 741, 854, 176,-32768, 176, 176, 176, 176,-32768, 781, + 729, 730, 336,-32768, 13284, 857, 2848,-32768,-32768, 716, + 731, 719,-32768,-32768, 13454, 372,-32768, 524, 819, 96, + 737,-32768, 13454, 8281, 10,-32768,-32768, 14474, 1913, 851, + 942,-32768, -77, 743, 744, 447, 96, 745,-32768,-32768, +-32768, 748, 916, 749, 300, 89, 883, 915,-32768, 1605, + 460, 762, 763, 764, 775, 9589, 9589, 9589, 9589, 769, + 223, 524, 776,-32768, 269, -4, 773, 855, 7170, 7612, + 7170, 7170, 2468, -66, 779, 2373,-32768, 548, 8281, 771, + 784, 783,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 473, 781,-32768, 783, 784,-32768, 790, 803, - 804,-32768, 8678, 8678, 8678, 8678, 8678, 8460, 128, 548, - 819,-32768, 190, 824,-32768, 312,-32768,-32768, 871, 8678, --32768, 8460, 3200, 838, 849, 7570, 544, 852, 855, 7570, - 12227, 862, 863, 7570, 531, 865, 866, 7570, 531, 867, - 868, 7570, 279, 872, 874, 7570, 279, 875, 876, 7570, - 643, 878, 880, 7570, 643,-32768, 13544,-32768, 10625, 533, --32768, 742,-32768,-32768, 807,-32768, -20, 742, 14734,-32768, --32768, 12439, 533, 12018, 752,-32768,-32768,-32768, 244, 843, - 828, 14734,-32768,-32768, 13204,-32768, 14734, 14734, 14734, 14734, --32768,-32768,-32768, 986, 10204, 81, 881, 882, 14734, 13204, - 910, 14734,-32768, 988, 618,-32768, 986, 13544, 64, 19, - 886,-32768,-32768, 13008,-32768,-32768, 968, 13008, 349, 467, --32768,-32768,-32768,-32768,-32768,-32768, 11168, 10795, 10795, 10998, --32768, 996, 234, 14734,-32768, 14394, 14734,-32768, 990,-32768, - 14734,-32768,-32768,-32768, 5539, 5539,-32768, 2751, 7791,-32768, - 1080, 15460, 14734, 14734,-32768, 8460, 7791,-32768,-32768,-32768, - 467,-32768, 5539,-32768,-32768, 8460,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 8460, 467,-32768, 9768, 9768, 7791, - 5092, 788, 896, 896, 566,-32768, 9768, 9986, 9768, 9768, - 9768, 9768, 15460,-32768, 3789, 7791, 1077,-32768,-32768, 899, - -59, 901, 903, 7791,-32768, 8460, 548, 897, 1079,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 28, 2030, 84, --32768, 773,-32768, 8678, 467, 467, 9768, 7791, 5318, 812, - 908, 908, 908, 908, 562, 8678, 8896, 8678, 8678, 8678, - 8678, 15460,-32768, 4010, 15204,-32768,-32768,-32768, 132, 907, - 871, 736, 736, 911, 736, 736, 913, 736, 736, 914, - 736, 736, 917, 736, 736, 919, 736, 736, 924, 736, - 736, 927, 736, 736, 933,-32768, 13544, 909, 1115, 14564, - 948, 1132, 12188,-32768,-32768,-32768,-32768,-32768,-32768, 7791, --32768,-32768, 1044,-32768, 979, 981, 465,-32768, 469, 15375, --32768, 43,-32768, 1074,-32768, 1140, 997, 969, 10204,-32768, - 10204, 10204, 10204, 10204, 10204, 10204, 808, 973,-32768,-32768, - 987,-32768, 14734, 14734, 475,-32768, 991,-32768,-32768,-32768, - 1155,-32768, 992, 14734, 9114, 1141, 1160, 14734,-32768,-32768, - 618,-32768,-32768, 997, 1179, 1139,-32768,-32768,-32768, 0, --32768, 426, 1224,-32768,-32768,-32768,-32768,-32768, 1114,-32768, - 1067, 14734,-32768, 373,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1029, 1007, 5539,-32768,-32768,-32768,-32768, - 1186,-32768,-32768, -9, 485, 7791,-32768,-32768, 1009,-32768, --32768, 3160,-32768, 1014, -9, 3160, 995, 1015, 162, 1017, - 1018, 7349, 7349, 7349, 1019,-32768, 978, 788, 300, 300, - 896, 896,-32768,-32768, 33, -59, 7791,-32768,-32768,-32768, --32768, -59, 2979,-32768, 736, 1025,-32768,-32768, 8239, 1034, - 773, 1027,-32768, 260, 1036, 1037, 1042, 1059, 7349, 7349, - 7349, 1063,-32768, 1060, 812, 321, 321, 908, 908,-32768, --32768, 52,-32768, 1066, 1046,-32768, 8678, 15204, 1078, 1081, --32768, 1082, 1084,-32768, 1089, 1090,-32768, 1091, 1094,-32768, - 1096, 1097,-32768, 1101, 1107,-32768, 1108, 1111,-32768, 1112, - 1113,-32768, 825, 13544, 1201, 12805,-32768,-32768, 1281, 1244, --32768,-32768,-32768, 1152,-32768,-32768, 1142, 14734,-32768,-32768, - 1274, 1312, 14734, 189, 1148,-32768, 10204, 1138, 1024, 1123, - 1123, 1123, 1123, 1571, 10204, 15289, 1129, 366, 10204, 299, - 10204,-32768,-32768, 10422, 10204, 10204, 10204, 10204, 10204, 10204, - 10204, 15460,-32768, 4452, 486, 495,-32768, 14734,-32768, 10204, - 296, 1134,-32768, 1135, 1137,-32768,-32768,-32768, 9332, 9332, - 9332, 9332, 9332, 9332, 844, 1143,-32768,-32768,-32768, 454, --32768,-32768, 1213, 1329, 64,-32768,-32768, 181, 13544, 181, --32768,-32768,-32768,-32768, 14734, -9, 1284, 533,-32768,-32768, --32768,-32768, 533,-32768,-32768, 15460,-32768,-32768, 1145, 1146, - 1157,-32768,-32768, -59, 548, 1161, 736, 1162, 1163, 3160, - 736,-32768, 773, 15460,-32768,-32768,-32768,-32768, 1164, 1165, - 1167,-32768,-32768,-32768, 15289, 1060,-32768, 1168, 1150,-32768, +-32768,-32768, 1138, 788,-32768, 803, 807,-32768, 808, 810, + 812,-32768, 8499, 8499, 8499, 8499, 8499, 8281, 140, 524, + 822,-32768, 269, 823,-32768, 254,-32768,-32768, 1917, 8499, +-32768, 8281, 3236, 824, 828, 7391, 403, 829, 830, 7391, + 1990, 831, 832, 7391, 2999, 833, 842, 7391, 2999, 844, + 845, 7391, 380, 847, 865, 7391, 380, 866, 867, 7391, + 661, 873, 874, 7391, 661,-32768, 13284,-32768, 10446, 506, +-32768, 782,-32768,-32768, 805,-32768, -28, 782, 14474,-32768, +-32768, 12179, 506, 11839, 820,-32768,-32768,-32768, 375, 861, + 890, 14474,-32768,-32768, 12944,-32768, 14474, 14474, 14474, 14474, +-32768,-32768,-32768, 1026, 10025, 36, 875, 876, 14474, 12944, + 919, 14474,-32768, 1014, 382,-32768, 1026, 13284, 60, 66, + 901,-32768,-32768, 12748,-32768,-32768, 983, 12748, 394, 459, +-32768,-32768,-32768,-32768,-32768,-32768, 10989, 10616, 10616, 10819, +-32768, 991, 96, 14474,-32768, 14134, 14474,-32768, 990,-32768, + 14474,-32768,-32768,-32768, 5360, 5360,-32768, 2543, 7612,-32768, + 1083, 15200, 14474, 14474,-32768, 8281, 7612,-32768,-32768,-32768, + 459,-32768, 5360,-32768,-32768, 8281,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 8281, 459,-32768, 9589, 9589, 7612, + 4913, 378, 897, 897, 804,-32768, 9589, 9807, 9589, 9589, + 9589, 9589, 15200,-32768, 3798, 7612, 1079,-32768,-32768, 900, + -66, 903, 904, 7612,-32768, 8281, 524, 898, 1076,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 32, 1857, 234, +-32768, 771,-32768, 8499, 459, 459, 9589, 7612, 5139, 505, + 908, 908, 908, 908, 481, 8499, 8717, 8499, 8499, 8499, + 8499, 15200,-32768, 4019, 14944,-32768,-32768,-32768, 163, 907, + 1917, 759, 759, 911, 759, 759, 913, 759, 759, 914, + 759, 759, 917, 759, 759, 918, 759, 759, 925, 759, + 759, 927, 759, 759, 928,-32768, 13284, 909, 1115, 14304, + 931, 1107, 12009,-32768,-32768,-32768,-32768,-32768,-32768, 7612, +-32768,-32768, 1036,-32768, 960, 961, 463,-32768, 474, 15115, +-32768, 28,-32768, 1052,-32768, 1117, 968, 943, 10025,-32768, + 10025, 10025, 10025, 10025, 10025, 10025, 768, 947,-32768,-32768, + 948,-32768, 14474, 14474, 497,-32768, 949,-32768,-32768,-32768, + 1116,-32768, 950, 14474, 8935, 1099, 1118, 14474,-32768,-32768, + 382,-32768,-32768, 968, 1136, 1096,-32768,-32768,-32768, 43, +-32768, 402, 1181,-32768,-32768,-32768,-32768,-32768, 1071,-32768, + 1023, 14474,-32768, 154,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 984, 963, 5360,-32768,-32768,-32768,-32768, + 1143,-32768,-32768, 18, 530, 7612,-32768,-32768, 965,-32768, +-32768, 2848,-32768, 966, 18, 2848, 995, 967, 183, 970, + 971, 7170, 7170, 7170, 972,-32768, 882, 378, 399, 399, + 897, 897,-32768,-32768, 190, -66, 7612,-32768,-32768,-32768, +-32768, -66, 2567,-32768, 759, 969,-32768,-32768, 8060, 975, + 771, 979,-32768, 250, 986, 989, 993, 994, 7170, 7170, + 7170, 996,-32768, 902, 505, 417, 417, 908, 908,-32768, +-32768, 199,-32768, 997, 992,-32768, 8499, 14944, 998, 1000, +-32768, 1002, 1003,-32768, 1005, 1006,-32768, 1007, 1010,-32768, + 1011, 1012,-32768, 1013, 1017,-32768, 1018, 1019,-32768, 1024, + 1033,-32768, 636, 13284, 1158, 12545,-32768,-32768, 1235, 1213, +-32768,-32768,-32768, 1121,-32768,-32768, 1061, 14474,-32768,-32768, + 1241, 1243, 14474, 76, 1067,-32768, 10025, 1589, 564, 1050, + 1050, 1050, 1050, 1184, 10025, 15029, 1049, 377, 10025, 488, + 10025,-32768,-32768, 10243, 10025, 10025, 10025, 10025, 10025, 10025, + 10025, 15200,-32768, 4461, 541, 546,-32768, 14474,-32768, 10025, + 270, 1057,-32768, 1058, 1059,-32768,-32768,-32768, 9153, 9153, + 9153, 9153, 9153, 9153, 811, 1060,-32768,-32768,-32768, 440, +-32768,-32768, 1125, 1252, 60,-32768,-32768, 0, 13284, 0, +-32768,-32768,-32768,-32768, 14474, 18, 1210, 506,-32768,-32768, +-32768,-32768, 506,-32768,-32768, 15200,-32768,-32768, 1074, 1077, + 1078,-32768,-32768, -66, 524, 1081, 759, 1082, 1084, 2848, + 759,-32768, 771, 15200,-32768,-32768,-32768,-32768, 1089, 1090, + 1091,-32768,-32768,-32768, 15029, 902,-32768, 1094, 1097,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1298,-32768, 1298, 825, --32768, 1298,-32768, 1327,-32768, 13544,-32768, 7791, 8460, 1275, - 181,-32768,-32768,-32768, 9332,-32768, 1171,-32768, 1193, 3059, --32768, 1138, 1403,-32768, 15289,-32768, 455,-32768,-32768, 1975, - 15289, 1177, 10204, 3291, 1024, 12243, 10697, 10697, 354, 354, - 1123, 1123,-32768,-32768, 498, 3176, 1307,-32768, 1178, 1658, --32768, 9332, 467, 467, 1117, 1182, 1182, 1182, 1182, 900, - 9550, 9332, 9332, 9332, 9332, 9332, 9332, 9332, 15460, 4231, - 1340,-32768, -122, 1315,-32768, 1348, 533, 1190,-32768, 1187, - 1191,-32768,-32768, 31, 1189, 987, 533,-32768, 1132, 1132, - 1192,-32768,-32768,-32768,-32768,-32768, 1195,-32768,-32768, 1197, --32768, 1198,-32768,-32768,-32768,-32768,-32768, 15289,-32768,-32768, --32768,-32768,-32768, 13544,-32768, -59, 3160, 1420, 1341,-32768, - 844, 189,-32768, 15460, 15289, 503,-32768,-32768,-32768,-32768, - 1427, 15289, 1975, 10204,-32768, 14734,-32768,-32768, 395, 1212, - 1216,-32768, 1117, 844, 964, 964, 377, 377, 1182, 1182, --32768,-32768, 513, 844, 235, 1346,-32768,-32768,-32768, 14734, - 181, 1294, 14734, 968, 14734, 15460, 15460, -70, 14734, 1132, - 1244, 1244,-32768,-32768,-32768,-32768,-32768, 173,-32768, 1342, - 1439,-32768,-32768, 1220,-32768, 15289,-32768, 15289, 525, 3176, - 454, 15460,-32768,-32768, 9332,-32768,-32768,-32768, 66,-32768, - 1346, 1222,-32768, 1288,-32768,-32768,-32768,-32768,-32768, 1247, --32768,-32768,-32768, 526, 1244, 1275, 1275, 1225, 1226, 1227, - 234, 1335,-32768, 8460,-32768,-32768,-32768,-32768, 1340, 1228, - 844, 44, 44,-32768, 437,-32768, 492,-32768, 31, 1275, --32768,-32768, 8460, 12609,-32768, 5539, 1420, 1231,-32768, 2154, - 1346,-32768,-32768, 1464, 98,-32768,-32768,-32768,-32768,-32768, - 529,-32768,-32768,-32768, 74, 74,-32768,-32768, -70, 1341, - 1933, 537,-32768,-32768, 1239, -9, 1342, 8460,-32768,-32768, - 221,-32768,-32768,-32768,-32768,-32768, 437,-32768, 1238, 74, - 1243, 1236,-32768, 1421,-32768, 12609,-32768, 14734, 533,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1245,-32768,-32768, 198, --32768,-32768,-32768, 1132,-32768, 1383, 1386,-32768, 1244,-32768, - 14734,-32768,-32768, 1246, 1477, 1478,-32768 +-32768,-32768,-32768,-32768,-32768,-32768, 1237,-32768, 1237, 636, +-32768, 1237,-32768, 1265,-32768, 13284,-32768, 7612, 8281, 1208, + 0,-32768,-32768,-32768, 9153,-32768, 1102,-32768, 1124, 2764, +-32768, 1589, 1330,-32768, 15029,-32768, 334,-32768,-32768, 2222, + 15029, 1104, 10025, 3308, 564, 3215, 10518, 10518, 429, 429, + 1050, 1050,-32768,-32768, 549, 2871, 1234,-32768, 1105, 1411, +-32768, 9153, 459, 459, 946, 1109, 1109, 1109, 1109, 579, + 9371, 9153, 9153, 9153, 9153, 9153, 9153, 9153, 15200, 4240, + 1266,-32768, -8, 1244,-32768, 1273, 506, 1119,-32768, 1112, + 1120,-32768,-32768, 53, 1129, 948, 506,-32768, 1107, 1107, + 1114,-32768,-32768,-32768,-32768,-32768, 1130,-32768,-32768, 1131, +-32768, 1133,-32768,-32768,-32768,-32768,-32768, 15029,-32768,-32768, +-32768,-32768,-32768, 13284,-32768, -66, 2848, 1345, 1258,-32768, + 811, 76,-32768, 15200, 15029, 556,-32768,-32768,-32768,-32768, + 1348, 15029, 2222, 10025,-32768, 14474,-32768,-32768, 26, 1137, + 1139,-32768, 946, 811, 870, 870, 446, 446, 1109, 1109, +-32768,-32768, 574, 811, 31, 1281,-32768,-32768,-32768, 14474, + 0, 1217, 14474, 983, 14474, 15200, 15200, -83, 14474, 1107, + 1213, 1213,-32768,-32768,-32768,-32768,-32768, 13,-32768, 1264, + 1363, 1327,-32768, 1145,-32768, 15029,-32768, 15029, 580, 2871, + 440, 15200,-32768,-32768, 9153,-32768,-32768,-32768, 67,-32768, + 1281, 1149,-32768, 1215,-32768,-32768,-32768,-32768,-32768, 1174, +-32768,-32768,-32768, 584, 1213, 1208, 1208, 1152, 1153, 1154, + 96, 1262,-32768, 8281, 1267,-32768,-32768,-32768,-32768,-32768, + 1266, 1155, 811, 33, 33,-32768, 443,-32768, 115,-32768, + 53, 1208,-32768,-32768, 8281, 12349,-32768, 5360, 1345, 1159, +-32768, 1673, 1304, 1281,-32768,-32768, 1393, 44,-32768,-32768, +-32768,-32768,-32768, 594,-32768,-32768,-32768, 455, 455,-32768, +-32768, -83, 1258, 1502, 597,-32768,-32768, 1169, 18, 1264, + 8281,-32768,-32768, 306,-32768, 14474,-32768,-32768,-32768,-32768, + 443,-32768, 1170, 455, 1173, 1177,-32768, 1361,-32768, 12349, +-32768, 14474, 506,-32768,-32768,-32768,-32768,-32768, 1187,-32768, +-32768, 1190,-32768,-32768, -30,-32768,-32768,-32768, 1107,-32768, + 1331, 1332,-32768, 1213,-32768, 14474,-32768,-32768, 1191, 1426, + 1428,-32768 }; static const short yypgoto[] = {-32768, --32768, 1450,-32768,-32768,-32768, 1221, 1069, 906,-32768, 640, - 408,-32768, 1095,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 665, 655, 669,-32768, --32768,-32768, 417, 218,-32768, -1194,-32768, -529,-32768, -987, - -8, -1232, -109, -130, -79, -110,-32768,-32768,-32768,-32768, - 667,-32768,-32768,-32768,-32768,-32768, 392,-32768,-32768,-32768, --32768,-32768,-32768, -833,-32768,-32768,-32768,-32768, -162,-32768, --32768,-32768,-32768, -179, 420,-32768, 644, 648,-32768,-32768, - 1491, 1279, 1120,-32768, 1508,-32768, 1208, 895,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, -15, -90, -118,-32768, --32768,-32768, -6, 1232,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1337, -190,-32768,-32768,-32768, 65,-32768, --32768,-32768, -114,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 402,-32768,-32768,-32768,-32768,-32768,-32768, 446,-32768, --32768,-32768, 1511,-32768,-32768,-32768,-32768, -238,-32768,-32768, - -1265, -819, 664,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1144, 169, -1217,-32768, -113,-32768, 1026, -68, - -618, -93,-32768, -100,-32768,-32768, -198, 14, -1429, -1469, - -538,-32768, -1150, 185, -1082,-32768,-32768, -112, -381, -1007, --32768, -929, -464, 1215,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -399, -269,-32768,-32768,-32768, 1128,-32768,-32768, - -217,-32768, 397,-32768,-32768,-32768, 1980,-32768,-32768, -655, - -367, -447,-32768,-32768, -800, -559, -693,-32768,-32768, -629, --32768,-32768,-32768,-32768,-32768,-32768, 938,-32768,-32768, 884, - 1043,-32768, 764, -854, 1050,-32768, 121, 1387,-32768, -1004, - -7, 6, 38, 1158,-32768,-32768, 2050, 1650, -12, -16, - -166, -511, -3, 359,-32768 +-32768, 1398,-32768,-32768,-32768, 1168, 1020, 871,-32768, 586, + 350,-32768, 1042,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 627, 615, 629,-32768, +-32768,-32768, 376, 177,-32768, -1223,-32768, -529,-32768, -993, + -53, -1211, -151, -173, -118, -150,-32768,-32768,-32768,-32768, + 622,-32768,-32768,-32768,-32768,-32768, 146,-32768,-32768,-32768, +-32768,-32768,-32768, -818,-32768,-32768,-32768,-32768, -203,-32768, +-32768,-32768,-32768, -176, 379,-32768, 599, 601,-32768,-32768, + 1447, 1228, 1086,-32768, 1463,-32768, 1160, 856,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, -65, -138, -168,-32768, +-32768,-32768, -59, 1192,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 1295, -191,-32768,-32768,-32768, 58,-32768, +-32768,-32768, -155,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 528,-32768,-32768,-32768,-32768,-32768,-32768, 408,-32768, +-32768,-32768, 1467,-32768,-32768, -166,-32768, -237,-32768,-32768, + -1268, -831, 620,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 1088, 1326, -1062,-32768, -152,-32768, 980, -117, + -618, -139,-32768, -145,-32768,-32768, -195, -31, -1435, -1441, +-32768, -542,-32768, -1182, 139, -1084,-32768,-32768, -160, -381, + -1008,-32768, -929, -449, 1167,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, -401, -206,-32768,-32768,-32768, 1128,-32768, +-32768, -213,-32768, 353,-32768,-32768,-32768, 1837,-32768,-32768, + -652, -367, -444,-32768,-32768, -842, -333, -806,-32768,-32768, + -629,-32768,-32768,-32768,-32768,-32768,-32768, 891,-32768,-32768, + -21, 999,-32768, 718, -863, 1001,-32768, 121, 1333,-32768, + -999, -58, -123, 38, 985,-32768,-32768, 2073, 1457, 153, + -12, -170, -429, -3, 308,-32768 }; -#define YYLAST 15672 +#define YYLAST 15412 static const short yytable[] = { 167, - 398, 306, 186, 285, 264, 374, 304, 813, 244, 1223, - 528, 885, 643, 227, 231, 1086, 235, 553, 1232, 1065, - 231, 598, 297, 1403, 231, 251, 254, 231, 903, 826, - 1124, 1125, 1173, 1167, 1451, 676, 1168, 535, 388, 1551, - 1552, 936, 568, 185, 799, 799, 824, 540, 1135, 940, - 896, 942, 943, 559, 529, 560, 459, 1087, 204, 1633, - 1590, 1248, 796, 1249, 1250, 1251, 1252, 1253, 1254, 210, - 477, 896, 1537, 1385, 536, 570, 889, 484, 755, 1538, - 231, 1596, 1597, 1546, 637, 807, 1241, 970, 971, 972, - 973, 974, 561, 211, 1435, 1436, 1437, 1438, 1439, 1440, - 187, 568, 393, 584, 989, 1612, 922, 923, 924, 925, - 896, 6, 908, 7, 756, 845, 757, 896, 1140, 445, - 1595, 571, 449, 310, 629, 1620, 817, 585, 1634, -585, - 909, 84, 565, 313, 570, 976, 1665, 13, 230, 1197, - 289, 1591, 212, -553, 241, 85, 501, -585, 248, 572, - 690, 256, -594, 897, 758, 898, 1242, 1635, 213, 566, - 203, -553, 205, 896, 910, 231, 1177, 634, 186, 186, - -594, 1326, 268, 270, 897, 186, 231, 811, 1511, 287, - 571, 815, 896, 231, 186, 1666, 16, 186, 290, 186, - 268, 270, 586, 818, 1613, 316, 186, 186, 630, 394, - 1501, 311, 18, 206, 260, 218, 659, 390, 572, 265, - 266, 242, 242, 897, 231, 1025, 271, 631, 312, 207, - 897, 242, 530, 812, 530, 214, 1141, 291, 298, 1703, - 299, 242, 941, 231, 316, 1495, 235, 1519, 307, 221, - 562, 1342, 231, 1275, 1276, 399, 1523, 1524, 1525, 1526, - 1527, 1528, 1529, 1530, 1116, 1534, 825, 1547, 28, 1400, - 883, 1316, 1169, 1598, 1699, 760, 897, 1402, 1333, 1344, - 832, 1410, 1565, 1414, 1178, 222, 1415, 1416, 1417, 1418, - 1419, 1420, 1421, 1422, 235, 897, 1426, 1353, 440, 263, - 1577, 1145, 1430, 428, 911, 186, 1491, 833, 313, 1493, - 272, 441, 1696, 1599, 934, 1609, 1062, 293, 1174, 236, - 1464, 1411, 374, 761, 186, 1171, 1073, 186, 450, 455, - 1184, 1185, 1186, 1187, 1188, 1189, 1697, 762, 912, 209, - 240, 1578, 313, 1606, 1075, 1607, 437, 927, 320, 1182, - 314, 977, 1091, 381, 245, 977, 1094, -552, 505, 978, - 979, 980, 981, 978, 979, 980, 981, 397, 1139, 1412, - 982, 986, 238, 210, 982, -552, 400, 1147, 1148, 1149, - 1150, 1151, 1152, 1413, 538, 928, 542, 542, 1621, 1622, - 1611, 1076, 983, 929, 930, 931, 932, 211, 1095, -583, - 91, 549, 231, 242, 933, 1077, 86, 831, 313, 987, - 261, 1078, 1650, 231, 1572, 168, 860, -583, 610, 580, - 202, 87, 1096, 1481, 93, 1406, 220, 600, 1022, -823, - 233, 470, 287, 1079, -830, 1513, 840, 1129, 841, 186, - 231, 1028, 98, 99, 1682, 186, 212, 988, 186, 186, - 1683, 1684, 842, 628, 843, 471, 1031, 1032, 644, 645, - 646, 1407, 213, 1408, 598, 654, 242, 259, 598, 442, - 854, 1097, 855, 472, 99, 443, 109, 661, 1153, 273, - 618, 1455, 676, 977, 649, 650, 622, 1098, 675, 623, - 624, 978, 979, 980, 981, 511, 1558, 1155, 1156, 288, - 928, 1409, 982, 691, 114, 692, 1162, 109, 929, 930, - 931, 932, 525, 526, 1508, 731, 417, 753, 305, 933, - 418, 527, 1329, 1330, 1331, 548, 550, 1190, 308, 214, - 676, -823, 495, 931, 932, 473, 1570, 558, 804, 6, - 804, 7, 933, 512, 317, 810, 1192, 319, 1585, 513, - 1464, 1356, 1509, 511, 980, 981, 318, 514, 501, 1349, - 1350, 1351, 501, 982, 619, 13, 501, 603, 515, 870, - 501, 871, 604, 391, 501, 186, 321, 322, 501, 510, - 395, 392, 501, 605, 511, 845, 501, 1270, 1271, 1164, - 1510, 396, 402, 606, 607, 1318, 1272, 313, 403, 1312, - 862, 512, 862, 862, 862, 862, 1323, 513, 404, 405, - 1447, 1448, 408, 409, 16, 514, 836, 608, 1441, 1449, - 513, 231, 406, 1442, 1443, 1444, 1445, 1446, 1447, 1448, - 18, 880, 512, 413, 828, 829, 830, 1449, 513, 880, - 91, 332, 416, 881, 804, 882, 514, 487, 1073, 901, - 423, 902, 411, 517, 1074, 420, 337, 515, 1638, 242, - 381, 1639, 421, 1640, 93, 516, 1075, 425, 518, 338, - 426, 429, 675, 675, 675, 675, 430, 374, 374, 431, - 434, 1127, 98, 99, 433, 1644, 28, 304, 304, 1133, - 916, 313, 917, 344, 439, 374, 519, 1101, 447, 457, - 465, 520, 521, 522, 523, 524, 525, 526, 1238, 476, - 1239, 517, 840, 1076, 1240, 527, 109, 509, 881, 1334, - 1277, 532, 488, 489, 517, 456, 518, 1077, 530, 881, - 1319, 1427, 1645, 1078, 460, 534, 1646, 461, 881, 518, - 1428, 1514, 517, 1515, 114, 872, 1566, 490, 1567, 753, - 753, 753, 753, 753, 519, 1079, 1575, 518, 1576, 846, --32768,-32768, 523, 524, 525, 526, 753,-32768, 1566, 433, - 1608, 1619, 1667, 527, 1668, 523, 524, 525, 526, 462, - 1676, 1656, 1677, 463, 466, 519, 527, 1467, 495, 928, - 520, 521, 522, 523, 524, 525, 526, 929, 930, 931, - 932, 467, 468, 231, 527, 231, 539, 1183, 933, 479, - 551, 1146, 1034, 480, 482, 1026, 491, 1423, 549, 483, - 804, 486, 1233, 506, 554, 1255, 508, 556, 186, 533, - 1256, 1040, 557, 1040, 1042, 1043, 186, 564, 948, 581, - 16, 1061, 589, 1089, 601, 628, 1040, 615, 1070, 616, - 625, 634, 638, 633, 231, -823, 640, 1100, 647, 655, - 600, 1110, 1110, 949, 600, 862, 862, 678, 656, 1038, - 657, 1471, 658, 287, 1111, 1111, 287, 1045, 1257, 484, - 186, 687, 186, 1120, 1258, 527, 799, 628, 689, 1482, - 1377, 1704, 1259, 511, 688, 814, 1378, 816, 1134, 1130, - 1131, 822, 820, 1260, 824, 835, 839, 1379, 374, 837, - 838, 1261, 849, 1138, 848, 850, 1380, 856, 1320, 853, - 851, 1117, 868, 1119, 675, 675, 859, 1016, 867, 1021, - 1381, 869, 873, 675, 675, 675, 675, 675, 675, 874, - 875, 512, 548, 1382, 994, 876, 1469, 513, 997, 886, - 1496, 1470, 1000, 894, 884,-32768, 1003, 1172, 893, 899, - 1006, 1383, 1175, 1176, 1009, 900, 904, 905, 1012, 906, - 753, 907, 1015, 675, 913, 914, 926, 1475, 1085, 918, - 1030, 1023, 753, 753, 753, 753, 753, 753, 1262, 919, - 920, 950, 1626, 938, 1531, 921, 951, 952, 953, 954, - 955, 956, 957, 1263, 861, 935, 863, 864, 865, 866, - 939,-32768, 510, 960, 945, 381, 381, 511, 962, 929, - 930, 931, 932, 231, 963, 964, 1227, 965, 966, 804, - 933, 1264, 1036, 381, 967,-32768, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 978, 979, 980, 981, 968, 969, 1564, - 1272, 517, 1024, 1273, 982, 1061, 1046, 1061, 1061, 1061, - 1061, 1061, 1061, 984, 1035, 512, 518, 1441, 985, 628, - 628, 513, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 514, - 186, 270, 992, 390, 1300, 1542, 1449, 1398, 1067, 1429, - 515, 1588, 1589, 993, 519, 1550, 995, 1071, 516, 996, - 1258, 1100, 523, 524, 525, 526, 998, 999, 1311, 1001, - 1002, 1004, 1005, 527, 1090, 1092, 1007, 1610, 1008, 1010, - 1011, 1281, 1013, 1441, 1014, 1063, 1064, 1679, 1442, 1443, - 1444, 1445, 1446, 1447, 1448, 1128, 1114, 1121, 933, 1157, - 165, 1165, 1449, 165, 1159, 1522, 1160, 1021, 1161, 1166, + 264, 398, 186, 813, 306, 304, 285, 1065, 1223, 374, + 528, 885, 244, 227, 231, 643, 235, 553, 297, 598, + 231, 1124, 1125, 1232, 231, 251, 254, 231, 903, 826, + 1086, 1451, 1173, 1551, 1552, 1572, 799, 1167, 676, 1135, + 1168, 1385, 568, 185, 1403, 529, 824, 1590, 1636, 940, + 936, 942, 943, 896, 889, 1248, 568, 1249, 1250, 1251, + 1252, 1253, 1254, 535, 896, 1435, 1436, 1437, 1438, 1439, + 1440, 1241, 799, 817, 1701, 570, 1140, 796, 209, 310, + 231, 388, 1669, 540, 637, 393, 1577, 484, 807, 570, + 970, 971, 972, 973, 974, 559, 187, 560, 1702, 584, + 536, 221, 896, 1598, 1087, 1546, 1614, 989, 203, 1596, + 1597, 289, 210, 1141, 1595, 565, 399, 1637, 840, 459, + 841, 571, 445, 585, 1177, 449, 896, 1578, 1591, 218, + 845, 1670, 629, 477, 561, 571, 211, 222, 230, 236, + 818, 1242, 566, 1599, 241, 634, 1638, 976, 248, 572, + 501, 256, 6, 1622, 7, 238, 897, 311, 898, 290, + 204, 1178, -597, 572, 428, 231, 911, 897, 186, 186, + 1197, 1501, 268, 270, 312, 186, 231, 811, 13, 287, + -597, 815, 394, 231, 186, 212, 1537, 186, 586, 186, + 268, 270, 1326, 1538, 240, 1615, 186, 186, 291, 1511, + 912, 213, 245, 1495, 260, 897, 630, 1025, 1519, 265, + 266, 390, 242, 530, 231, 812, 271, 1523, 1524, 1525, + 1526, 1527, 1528, 1529, 1530, 631, 1534, 16, 298, 897, + 299, 1275, 1276, 231, 442, 941, 235, 242, 307, 1441, + 443, 1342, 231, 18, 1442, 1443, 1444, 1445, 1446, 1447, + 1448, 530, 1316, 1400, 1116, 242, 825, 242, 1449, 1344, + 883, 1402, 1708, 1704, 205, 1410, 1169, 1414, 214, 659, + 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 242, 1547, + 1426, 259, 562, 927, 235, 210, 1430, 261, 313, 263, + 1073, 1145, 440, 1565, 1491, 186, 314, 1493, 1647, 28, + 272, 452, 1611, 986, 934, 206, 1062, 293, 1075, 211, + 832, 1174, 755, -588, 186, 1464, 374, 186, 450, 455, + 896, 207, -556, 1184, 1185, 1186, 1187, 1188, 1189, 896, + 84, -588, 922, 923, 924, 925, 437, 833, 320, 1182, + -556, 987, 417, 381, 85, 1648, 418, -555, 756, 1649, + 757, 1613, 505, 977, 1608, 1076, 1609, 397, 212, 908, + 316, 978, 979, 980, 981, -555, 400, 273, 313, 1077, + 1312, -586, 982, 545, 213, 1078, 977, 909, 538, 988, + 542, 542, 983, 1508, 978, 979, 980, 981, 758, -586, + 313, 549, 231, 831, 288, 982, 928, 1079, 860, 316, + 305, 86, 1073, 231, 929, 930, 931, 932, 1074, 580, + 313, 910, 610, 1481, 308, 933, 87, 600, 1022, 1513, + 1075, 1509, 287, 897, 1091, 1333, 1406, 690, 1094, 186, + 231, 1028, 897, 1095, 1353, 186, 928, 318, 186, 186, + 317, 214, 1129, 628, 929, 930, 931, 932, 313, 760, + -826, 495, 598, 91, 321, 933, 598, 1096, 319, 1510, + 672, 322, 1407, 977, 1408, 1171, 441, 1076, 392, 513, + 618, 978, 979, 980, 981, 676, 622, 93, 675, 623, + 624, 1077, 982, 1153, 391, 1558, 1455, 1078, 510, 750, + 1155, 1156, 6, 511, 7, 98, 99, 761, -826, 1162, + 1411, 395, 1409, -833, 396, 731, 1097, 753, 842, 1079, + 843, 762, 1329, 1330, 1331, 548, 550, 403, 13, 1686, + 1570, 402, 1098, 676, 404, 1687, 1688, 558, 804, 109, + 804, 168, 1190, 1623, 1624, 810, 202, 649, 650, 1192, + 405, 512, 220, 1585, 1356, 1464, 233, 513, 1412, 1349, + 1350, 1351, 501, 406, 619, 514, 501, 114, 408, 1653, + 501, 854, 1413, 855, 501, 186, 515, 16, 501, 870, + 411, 871, 501, 517, 516, 409, 501, 1031, 1032, 1164, + 501, 1318, 413, 18, 1139, 416, 420, 242, 518, 421, + 845,-32768, 1323, 1147, 1148, 1149, 1150, 1151, 1152, 929, + 930, 931, 932, 525, 526, 881, 836, 882, 948, 423, + 933, 231, 527, 644, 645, 646,-32768, 828, 829, 830, + 654, 880, 931, 932, 523, 524, 525, 526, 425, 880, + 1258, 933, 661, 949, 804, 527, 426, 429, 430, 28, + 980, 981, 431, 470, 672, 672, 672, 672, 433, 982, + 381, 517, 1270, 1271, 1641, 242, 434, 1642, 691, 1643, + 692, 1272, 675, 675, 675, 675, 518, 471, 439, 1447, + 1448, 374, 374, 313, 447, 1127, 304, 304, 1449, 456, + 901, 465, 902, 1133, 457, 472, 99, 460, 461, 374, + 1101, 1377, 462, 916, 519, 917, 1238, 1378, 1239, 520, + 521, 522, 523, 524, 525, 526, 463, 840, 1379, 1240, + 466, 467, 1334, 527, 468, 476, 1183, 1380,-32768, 109, + 479, 750, 750, 750, 750, 750, 978, 979, 980, 981, + 881, 1381, 1277, 480, 1262, 872, 482, 982, 750, 753, + 753, 753, 753, 753, 1382, 483, 486, 473, 861, 1263, + 863, 864, 865, 866, 495, 862, 753, 862, 862, 862, + 862, 950, 1383, 530, 1659, 1319, 951, 952, 953, 954, + 955, 956, 957, 1467, 881, 1255, 1427,-32768, 508, 881, + 1256, 1428, 1514, 506, 1515, 1268, 1269, 1270, 1271, 1566, + 545, 1567, 1441, 231, 532, 231, 1272, 1442, 1443, 1444, + 1445, 1446, 1447, 1448, 509, 1026, 1034, 1575, 549, 1576, + 804, 1449, 533, 1566, 1522, 1610, 1233, 433, 186, 1621, + 534, 1040, 1423, 1040, 1042, 1043, 186, 1671, 1257, 1672, + 1680, 1061, 1681, 539, 1258, 628, 1040, 1089, 1070, 551, + 554, 564, 1259, 556, 231, 557, 581, 16, 589, 601, + 600, 615, 616, 1260, 600, 1110, 1110, 625, 634, 1038, + 633, 1261, 638, 287, 1111, 1111, 287, 1045, -826, 640, + 186, 647, 186, 1120, 1709, 302, 1471, 628, 655, 656, + 277, 278, 279, 280, 281, 282, 283, 657, 658, 1130, + 1131, 678, 484, 527, 1482, 687, 672, 672, 688, 689, + 799, 814, 374, 816, 820, 672, 672, 672, 672, 672, + 672, 1117, 1320, 1119, 675, 675, 822, 1016, 824, 1021, + 835, 837, 838, 675, 675, 675, 675, 675, 675, 839, + 848, 849, 548, 850, 853, 603, 1469, 851, 1262, 856, + 604, 1470, 750, 1496, 859, 672, 867, 868, 869, 874, + 884, 605, 876, 1263, 750, 750, 750, 750, 750, 750, + 753, 606, 607, 675, 893, 894, 875, 1475, 1085, 873, + 906, 886, 753, 753, 753, 753, 753, 753, 899, 900, + 904, 1264, 1628, 905, 907, 608, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 914, 913, 939, 918, 919, 920, 1531, + 1272, 960, 510, 1273, 926, 381, 381, 511, 938, 921, + 935, 1023, 1100, 231, 945, 962, 1227, 928, 963, 804, + 862, 862, 964, 381, 1441, 929, 930, 931, 932, 1442, + 1443, 1444, 1445, 1446, 1447, 1448, 933, 965, 1030, 1146, + 1024, 966, 967, 1449, 968, 1061, 969, 1061, 1061, 1061, + 1061, 1061, 1061, 1134, 1564, 512, 984, 985, 992, 628, + 628, 513, 993, 995, 996, 998, 999, 1001, 1138, 514, + 186, 270, 1035, 1398, 1300, 1542, 1002, 390, 1004, 1005, + 515, 1007, 1429, 1441, 1036, 1550, 1046, 1067, 516,-32768, +-32768, 1445, 1446, 1447, 1448, 928, 1588, 1589, 1311, 1008, + 1010, 1011, 1449, 929, 930, 931, 932, 1013, 1014, 1063, + 1064, 1281, 1172, 1071, 933, 977, 1683, 1175, 1176, 1090, + 1092, 1114, 1612, 978, 979, 980, 981, 1121, 1128, 933, + 165, 1157, 1165, 165, 982, 1159, 1166, 1021, 1160, 1161, 982, 1198, 1224, 1225, 165, 165, 1201, 165, 1204, 1207, - 1256, 165, 1210, 1193, 1213, 165, 165, 165, 165, 1216, - 1199, 1200, 1219, 1202, 1203, 517, 1205, 1206, 1222, 1208, - 1209, 1228, 1211, 1212, 1234, 1214, 1215, 1441, 1217, 1218, - 518, 1220, 1221,-32768,-32768, 1445, 1446, 1447, 1448, 1229, - 1236, 928, 1237, 753, 1262, 1243, 1449, 1244, 1257, 929, - 930, 931, 932, 1247, 1258, 1245, 452, 1274, 519, 1263, - 933, 165, 1259, 520, 521, 522, 523, 524, 525, 526, - 231, -830, 731, 1260, 1279, 1278, 1280, 527, 1298, 1299, - 1324, 1303, 1305, 1308, 186, 1309, 381,-32768, 1310, 186, - 1313, 1315, 1317, 1061, 1321, 1268, 1269, 1270, 1271, 1322, - 1325, 1061, 1327, 1328, 1332, 1061, 1272, 1061, 1343, 1337, - 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1341, 1386, - 1061, 1345, 1346, 977, 186, 1393, 1061, 1347, 545, 1355, - 1396, 978, 979, 980, 981, 270, 270, 270, 270, 270, - 270, 1456, 982, 1459, 1348, 1388, 165, 1694, 1352, 165, - 165, 1354, 1389, 165, 165, 231, 165, 165, 1262, 1391, - 165, 1466, 1394, 1361, 165, 165, 1362, 1363, 165, 1364, - 165, 165, 165, 1263, 1365, 1366, 1367, 165, 165, 1368, --32768, 1369, 1370, 1336, 269, 1563, 1371, 1338, 1445, 1446, - 1447, 1448, 1372, 1373, 1021, 165, 1374, 1375, 1376, 1449, - 1395, 1264, 301, 1392, 1399, 1272, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 1405, 165, 672, 1357, 165, 1432, 1433, - 1272, 1434, 1452, 165, 1500, 1454, 1468, 1450, 1648, 302, - 1472, 1473, 231, 1488, 277, 278, 279, 280, 281, 282, - 283, 270, 1474, 1489, 750, 1494, 1476, 1478, 1479, 1483, - 1484, 1498, 1485, 1487, 1502, 1503, 1671, 1671, 374, 1061, - 1505, 1512, 1516, 1517, 1449, 165, 1535, 1540, 1541, 1543, - 1520, 1521, 1544, 1549, 1545, 1559, 165, 1553, 270, 1458, - 1554, 1687, 1555, 1556, 1568, 1561, 1579, 270, 270, 270, - 270, 270, 270, 270, 270, 165, 270, 1573, 165, 165, - 165, 1574, 1584, 1604, 1601, 1605, 1615, 1616, 1591, 1623, - 1624, 1627, 1625, 1632, 1658, 474, 169, 1664, 1678, 1686, - 1688, 1689, 1695, 1690, 1700, 1701, 1706, 1707, 170, 881, - 171, 493, 258, 582, 415, 172, 1084, 847, 543, 1039, - 231, 1302, 173, 174, 1066, 1041, 175, 1301, 1431, 1631, - 1663, 1614, 1637, 1569, 1685, 1477, 1021, 176, 1069, 1480, - 1061, 1307, 1571, 1113, 510, 177, 1112, 247, -324, 511, - 555, 219, 165, 165, 1583, 401, 446, 887, 1649, 1587, - 1673, 1672, 438, 303, 165, 1306, 186, 1586, 178, 804, - 165, 804, 257, 1680, 1123, 186, 179, 180, 165, 672, - 672, 672, 672, 165, 797, 181, 1674, 1681, 1657, 583, - 165, 165, 1594, 1692, 1492, 1339, 165, 512, 492, 165, - 165, 270, 890, 513, 165, 1027, 808, 1582, 1255, 798, - 300, 514, 1618, 1256, 1387, 0, 0, 0, 0, 0, - 0, 0, 515, 0, 651, 0, 0, 0, 1643, 0, - 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1654, 0, 0, 1021, 0, 0, 0, 0, 0, - 1655, 0, 0, 0, 0, 0, 750, 750, 750, 750, - 750, 1257, 0, 0, 0, 0, 165, 1258, 0, 673, - 0, 0, 0, 750, 0, 1259, 0, 0, 0, 0, - 1643, 0, 0, 0, 493, 0, 1260, 0, 0, 165, - 0, 165, 0, 1654, 1261, 1255, 165, 0, 751, 0, - 1256, 0, 1655, 0, 1693, 0, 0, 517, 0, 0, + 511, 165, 1210, 1213, 1228, 165, 165, 165, 165,-32768, + 1216, 269, 1219, 1222, 1229, 517, 1234, 1445, 1446, 1447, + 1448, 1236, 1237, 1243, 1244, 750, 1245, 1247, 1449, 301, + 518, 1274, -833, 1278, 1280, 1279, 1298, 1299, 1303, 1305, + 1308, 1255, 1309, 753, 1310, 1313, 1256, 1315, 512, 1317, + 1321, 1322, 1325, 1337, 513, 1327, 1328, 1332, 519, 1341, + 1343, 165, 514, 520, 521, 522, 523, 524, 525, 526, + 231, 1345, 731, 515, 1346, 1355, 1386, 527, 1347, 1348, + 1324, 1352, 1354, 1361, 186, 1362, 381, 1363, 1364, 186, + 1365, 1366, 1367, 1061, 1257, 1368, 1369, 1370, 1371, 1388, + 1258, 1061, 1372, 1373, 1374, 1061, 1100, 1061, 1259, 1375, + 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1376, 1260, + 1061, 1389, 1392, 1399, 186, 1393, 1061, 1261, 1391, 1394, + 1396, 1395, 1272, 1405, 1452, 270, 270, 270, 270, 270, + 270, 1432, 1433, 1434, 1450, 1456, 165, 1459, 1454, 165, + 165, 1699, 1468, 165, 165, 231, 165, 165, 517, 1472, + 165, 1466, 1473, 1474, 165, 165, 1476, 1478, 165, 1479, + 165, 165, 165, 518, 1483, 1484, 1485, 165, 165, 1487, + 1488, 1563, 1489, 1494, 1498, 1502, 1503, 1505, 1512, 1516, + 1517, 1449, 1535, 1541, 1021, 165, 1540, 1544, 1543, 1553, + 1559, 519, 1561, 1545, 1262, 1568, 520, 521, 522, 523, + 524, 525, 526, 1549, 165, 1554, 1555, 165, 1556, 1263, + 527, 1579, 1573, 165, 1574, 1584, 1601, 1604, 1500, 1605, + 1607, 1651, 231, 1617, 1618, 1591, 1625, 1626, 1629, 1627, + 1635, 270, 1661, 1666, 510, 1633, 1668, 1264, 1682, 511, + 1693, 1691, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1061, + 1675, 1675, 1694, 1695, 374, 165, 1272, 1700, 1255, 1401, + 1238, 1706, 1705, 1256, 881, 1711, 165, 1712, 270, 1458, + 258, 415, 1084, 1302, 582, 543, 1692, 270, 270, 270, + 270, 270, 270, 270, 270, 165, 270, 512, 165, 165, + 165, 1039, 847, 513, 1066, 1041, 1301, 1431, 1569, 1634, + 1667, 514, 1616, 1069, 1640, 474, 673, 1690, 1113, 1112, + 1307, 1257, 515, 247, 401, 169, 219, 1258, 446, 1587, + 516, 493, 1652, 1677, 1586, 1259, 555, 170, 887, 171, + 231, 303, 438, 1676, 172, 751, 1260, 1306, 257, 1689, + 1123, 173, 174, 583, 1261, 175, 1021, 1684, 797, 510, + 1061, 1660, 1571, 1678, 511, 1685, 176, 1594, 1492, 1697, + 492, 1339, 165, 165, 177, 890, 300, -324, 1583, 1027, + 798, 1620, 808, 1387, 165, 0, 186, 0, 0, 804, + 165, 804, 0, 0, 0, 186, 0, 178, 165, 0, + 0, 0, 0, 165, 0, 179, 180, 517, 0, 0, + 165, 165, 512, 0, 181, 0, 165, 0, 513, 165, + 165, 270, 518, 0, 165, 0, 514, 1582, 0, 0, + 0, 1262, 0, 0, 0, 1520, 1521, 515, 0, 0, + 0, 0, 0, 0, 651, 516, 1263, 0, 0, 0, + 519, 1256, 0, 0, 1646, 520, 521, 522, 523, 524, + 525, 526, 510, 0, 1021, 0, 0, 511, 0, 527, + -616, 0, 1658, 0, 1264, 0, 0, 0, 0, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 165, 0, 0, 0, + 0, 0, 0, 1272, 0, 0, 1518, 0, 0, 1257, + 673, 673, 673, 673, 493, 1258, 0, 0, 1646, 165, + 0, 165, 186, 1259, 0, 512, 165, 0, 0, 0, + 0, 513, 517, 0, 1260, 0, 1658, 0, 1698, 514, + 510, 0, 0, 1662, 0, 511, 0, 518, 0, 0, + 515, 0, 0, 0, 0, 0, 165, 0, 516, 0, + 0, 0, 628, 1038, 0, 0, 0, 493, 0, 0, + 0, 0, 0, 1663, 0, 519, 0, 0, 0, 0, + 520, 521, 522, 523, 524, 525, 526, 751, 751, 751, + 751, 751, 0, 512, 527, 0, 0, 1679, 0, 513, + 0, 0, 165, 0, 751, 0, 0, 514, 381, 0, + 0, 0, 165, 0, 0, 0, 0, 0, 515, 1262, + 165, 0, 0, 0, 0, 165, 516, 0, 0, 0, + 0, 0, 0, 0, 1263, 517, 0, 0, 1657, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 518, 0, 0, 545, 165, 628, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 493, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1257, 0, - 519, 0, 0, 0, 1258, 520, 521, 522, 523, 524, - 525, 526, 1259, 0, 0, 0, 0, 0, 0, 527, - -613, 1262, 165, 1260, 0, 0, 381, 0, 0, 0, - 0, 1261, 165, 0, 0, 188, 1263, 0, 0, 0, - 165, 0, 0, 0, 0, 165, 0, 0, 0, 189, - 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, - 0, 191, 192, 0, 1264, 193, 0, 0, 0, 1265, - 1266, 1267, 1268, 1269, 1270, 1271, 194, 0, 0, 0, - 0, 672, 672, 1272, 195, 0, 1401, 196, 0, 0, - 672, 672, 672, 672, 672, 672, 0, 0, 0, 0, - 0, 0, 0, 673, 673, 673, 673, 197, 1262, 198, - 0, 0, 0, 0, 0, 199, 200, 0, 0, 0, - 0, 0, 0, 1263, 0, 0, 0, 750, 0, 0, - 672, 0, 510, 0, 0, 0, 0, 511, 0, 750, - 750, 750, 750, 750, 750, 0, 0, 0, 0, 0, - 0, 1264, 0, 0, 0, 0, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 0, 0, 0, 0, 0, 0, 0, - 1272, 0, 0, 1518, 0, 0, 0, 0, 0, 0, - 751, 751, 751, 751, 751, 512, 0, 0, 0, 0, - 0, 513, 0, 0, 0, 0, 0, 751, 0, 514, - 0, 0, 0, 0, 165, 0, 165, 0, 0, 0, - 515, 0, 0, 0, 0, 0, 165, 0, 516, 165, - 510, 165, 0, 0, 0, 511, 0, 0, 0, 165, - 0, 0, 165, 0, 165, 165, 165, 165, 0, 0, - 0, 0, 0, 0, 0, 0, 165, 165, 0, 165, - 0, 0, 454, 0, 0, 165, 0, 0, 0, 0, - 0, 165, 0, 0, 0, 165, 0, 1256, 0, 0, - 0, 0, 1058, 512, 165, 165, 165, 165, 0, 513, - 0, 165, 0, 165, 165, 0, 0, 514, 165, 0, - 0, 0, 0, 0, 0, 517, 0, 0, 515, 493, - 165, 165, 0, 0, 0, 0, 516, 0, 0, 0, - 518, 0, 0, 0, 0, 1257, 0, 510, 0, 0, - 0, 1258, 511, 0, 454, 0, 0, 0, 0,-32768, - 0, 0, 0, 0, 0, 0, 0, 0, 519, 0, - 493, 0, 0, 520, 521, 522, 523, 524, 525, 526, - 0, 0, 0, 0, 0, 673, 673, 527, 915, 0, - 750, 0, 0, 0, 673, 673, 673, 673, 673, 673, - 512, 0, 0, 0, 0, 0, 513, 0, 0, 0, - 0, 0, 0, 517, 514, 0, 0, 0, 0, 493, - 0, 0, 493, 0, 0, 515, 0, 0, 518, 0, - 0, 751, 0, 516, 673, 0, 0, 0, 0, 0, - 0, 0, 0, 751, 751, 751, 751, 751, 751, 0, - 0, 0, 0, 0, 165, 1262, 519, 165, 0, 0, - 165, 520, 521, 522, 523, 524, 525, 526, 0, 0, - 1263, 510, 0, 0, 1659, 527, 511, 493, 1675, 0, + 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1264, 1664, 0, 0, 0, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 0, 0, 0, 0, 519, 1058, + 0, 1272, 0, 520, 521, 522, 523, 524, 525, 526, + 0, 0, 1657, 0, 0, 0, 0, 527, 915, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 454, 0, 0, 0, 0, 0, 0, 518, 0, + 0, 0, 0, 0, 510, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1264, 0, - 165, 165, 0, 0, 1660, 0, 1268, 1269, 1270, 1271, - 517, 165, 0, 0, 0, 165, 1058, 1272, 1058, 1058, - 1058, 1058, 1058, 1058, 512, 518, 0, 0, 0, 0, - 513, 0, 0, 0, 0, 0, 0, 0, 514, 165, - 0, 0, 1296, 0, 0, 0, 0, 0, 0, 515, - 0, 0, 0, 519, 0, 0, 0, 516, 520, 521, + 0, 0, 0, 0, 0, 0, 519, 0, 0, 0, + 0, 520, 521, 522, 523, 524, 525, 526, 0, 0, + 0, 0, 673, 673, 0, 527, 846, 0, 0, 0, + 0, 673, 673, 673, 673, 673, 673, 512, 0, 0, + 510, 0, 892, 513, 165, 511, 165, 0, 0, 511, + 0, 514, 0, 0, 0, 0, 165, 0, 0, 165, + 0, 165, 515, 0, 0, 0, 0, 0, 751, 165, + 516, 673, 165, 0, 165, 165, 165, 165, 0, 0, + 751, 751, 751, 751, 751, 751, 165, 165, 0, 165, + 0, 0, 0, 512, 0, 165, 0, 512, 0, 513, + 0, 165, 0, 513, 0, 165, 0, 514, 0, 0, + 0,-32768, 0, 0, 165, 165, 165, 165, 515, 0, + 0, 165, 511, 165, 165, 0, 516, 0, 165, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, + 165, 165, 0, 0, 0, 0, 0, 517, 0, 0, + 0, 0, 0, 1058, 0, 1058, 1058, 1058, 1058, 1058, + 1058, 0, 518, 0, 0, 0, 0, 0, 0, 0, + 512, 0, 0, 0, 0, 0, 513, 0, 0, 1296, + 493, 0, 0, 0, 514, 0, 0, 0, 0, 0, + 519, 0, 0, 0, 0, 520, 521, 522, 523, 524, + 525, 526, 0, 517, 0, 0, 0, 517, 0, 527, + -615, 994, 0, 0, 0, 997, 0, 0, 518, 1000, + 0, 0, 518, 1003, 0, 0, 0, 1006, 0, 493, + 0, 1009, 493, 0, 0, 1012, 0, 0, 0, 1015, + 0, 0, 0, 0, 0, 0, 519, 0, 0, 0, + 519, 520, 521, 522, 523, 524, 525, 526, 523, 524, + 525, 526, 0, 0, 165, 527, 0, 165, 0, 527, + 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 517, 0, 0, 0, 0, 0, 0, 493, 0, 0, + 0, 0, 0, 0, 0, 518, 0, 478, 0, 0, + 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, + 165, 165, 494, 0, 0, 497, 0, 498, 499, 500, + 504, 165, 0, 519, 0, 165, 0, 0, 520, 521, 522, 523, 524, 525, 526, 0, 0, 0, 0, 0, - 0, 0, 527, -612, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 0, 0, 0, 0, 0, 0, 165, + 0, 1058, 0, 0, 1256, 0, 0, 0, 0, 1058, + 0, 0, 0, 1058, 0, 1058, 0, 0, 1058, 1058, + 1058, 1058, 1058, 1058, 1058, 1058, 0, 0, 1058, 0, + 0, 0, 0, 0, 1058, 0, 0, 617, 454, 0, + 0, 0, 0, 1296, 1296, 1296, 1296, 1296, 1296, 0, + 0, 0, 1257, 0, 0, 0, 0, 0, 1258, 0, + 0, 1060, 639, 0, 0, 0,-32768, 0, 0, 1465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1661, 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, 0, 0, 0, 0, 0, 0, 0, 0, - 478, 0, 0, 0, 517, 493, 0, 0, 0, 510, - 0, 0, 0, 0, 511, 494, 0, 0, 497, 518, - 498, 499, 500, 504, 0, 0, 0, 0, 0, 0, - 0, 165, 0, 165, 751, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 165, 0, 519, 0, 0, - 165, 0, 520, 521, 522, 523, 524, 525, 526, 0, - 0, 0, 512, 493, 0, 0, 527, 0, 513, 0, - 0, 0, 0, 0, 0, 0, 514, 0, 0, 493, - 0, 0, 0, 0, 1058, 165, 0, 515, 0, 0, - 617, 0, 1058, 0, 0, 516, 1058, 0, 1058, 0, - 0, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 0, - 0, 1058, 0, 0, 0, 639, 165, 1058, 0, 0, - 0, 0, 165, 0, 0, 0, 1296, 1296, 1296, 1296, - 1296, 1296, 0, 493, 0, 0, 0, 0, 660, 0, - 0, 454, 0, 0, 0, 683, 0, 0, 0, 0, - 0, 493, 1465, 0, 686, 0, 0, 0, 0, 0, - 0, 0, 493, 0, 1060, 0, 0, 0, 0, 733, - 0, 0, 517, 759, 0, 763, 0, 0, 767, 771, - 775, 779, 783, 787, 791, 795, 0, 518, 0, 0, - 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 674, 493, 0, 0, 519, 0, 0, 493, 0, - 520, 521, 522, 523, 524, 525, 526, 0, 946, 0, - 0, 0, 1296, 947, 527, 0, 0, 0, 0, 0, - 752, 0, 0, 0, 0, 0, 510, 0, 892, 0, - 1058, 511, 0, 0, 0, 0, 493, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1296, - 0, 0, 0, 0, 0, 0, 0, 0, 1296, 1296, - 1296, 1296, 1296, 1296, 1296, 1296, 0, 1296, 0, 0, - 0, 0, 0, 888, 0, 493, 0, 0, 0, 512, - 0, 165, 0, 0, 0, 513, 0, 0, 0, 0, - 0, 493, 493, 514, 1060, 0, 0, 0, 0, 493, - 0, 0, 0, 165, 515, 0, 0, 0, 0, 0, - 0, 0, 516, 0, 0, 0, 0, 0, 683, 0, - 683, 683, 0, 0, 0, 0, 0, 165, 959, 0, - 165, 1058, 165, 493, 493, 0, 165, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 493, 0, 493, 0, 0, 1060, 493, - 1060, 1060, 1060, 1060, 1060, 1060, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 674, 674, 674, 674, 0, - 0, 0, 0, 0, 1060, 0, 0, 975, 0, 517, - 0, 0, 1296, 0, 0, 0, 0, 0, 0, 0, - 0, 991, 0, 0, 518, 504, 0, 0, 0, 504, - 0, 165, 0, 504, 0, 0, 0, 504, 510, 0, - 0, 504, 0, 511, 0, 504, 0, 0, 0, 504, - 0, 0, 519, 504, 0, 0, 0, 520, 521, 522, - 523, 524, 525, 526, 510, 0, 0, 0, 0, 511, - 0, 527, 752, 752, 752, 752, 752, 0, 0, 0, - 0, 0, 0, 165, 0, 165, 0, 0, 0, 752, - 0, 512, 0, 0, 0, 0, 0, 513, 0, 0, - 0, 0, 0, 0, 0, 514, 0, 0, 165, 0, - 0, 944, 0, 0, 0, 0, 515, 512, 0, 0, - 0, 0, 0, 513, 516, 0, 0, 1060, 0, 0, - 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 0, 0, 0, 0, 1126, 0, 0, - 516, 0, 0, 0, 0, 1132, 0, 0, 0, 0, - 0, 0, 0, 0, 1059, 1136, 0, 0, 0, 0, - 0, 0, 0, 0, 1137, 0, 1060, 0, 0, 0, - 683, 0, 0, 0, 1060, 1060, 0, 0, 1060, 0, - 1060, 0, 0, 1060, 1060, 1060, 1060, 1060, 1060, 1060, - 1060, 517, 0, 1060, 0, 1163, 0, 0, 0, 1060, - 0, 0, 0, 0, 0, 0, 518, 0, 1060, 1060, - 1060, 1060, 1060, 1060, 0, 0, 0, 517, 683, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 518, 0, 519, 0, 0, 674, 674, 520, - 521, 522, 523, 524, 525, 526, 674, 674, 674, 674, - 674, 674, 0, 527, 0, 0, 510, 0, 0, 0, - 519, 511, 0, 0, 0, 520, 521, 522, 523, 524, - 525, 526, 0, 0, 1060, 0, 0, 0, 0, 527, - 0, 0, 0, 752, 0, 0, 674, 0, 0, 0, - 0, 0, 0, 0, 0, 752, 752, 752, 752, 752, - 752, 0, 0, 0, 1196, 0, 0, 0, 0, 512, - 0, 0, 0, 0, 1060, 513, 0, 0, 0, 0, - 0, 0, 0, 514, 1060, 0, 0, 0, 0, 0, - 1060, 0, 1060, 0, 515, 0, 1255, 0, 1504, 0, - 0, 1256, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 1060, 0, 0, 0, 0, 0, 0, 0, 0, - 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1060, - 1059, 1059, 1059, 1059, 1059, 1059, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1257, - 0, 683, 683, 683, 1297, 1258, 0, 0, 0, 0, - 0, 0, 0, 1259, 0, 0, 0, 1060, 0, 0, - 0, 0, 0, 0, 1260, 0, 0, 0, 1340, 517, - 0, 0, 1261, 0, 1060, 0, 0, 0, 683, 683, - 683, 1060, 0, 1060, 518, 0, 0, 510, 0, 0, - 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1255, 0, 0, 0, 0, 1256, 0, - 0, 0, 519, 0, 0, 0, 0, 520, 521, 522, - 523, 524, 525, 526, 0, 0, 0, 510, 0, 0, - 1335, 527, 511, 0, 0, 1060, 0, 1060, 0, 0, - 512, 0, 0, 0, 1060, 0, 513, 0, 0, 1262, - 0, 0, 0, 0, 514, 0, 1257, 0, 0, 0, - 0, 0, 1258, 0, 1263, 515, 752, 1360, 0, 0, - 1259, 0, 0, 516, 0, 0, 0, 0, 0, 0, - 512, 1260, 0, 0, 0, 0, 513, 0, 0, 1261, - 0, 0, 1264, 0, 514, 0, 0, 1265, 1266, 1267, - 1268, 1269, 1270, 1271, 0, 515, 0, 0, 0, 0, - 0, 1272, 0, 0, 0, 0, 1059, 0, 1255, 0, - 0, 0, 0, 1256, 1059, 1404, 0, 0, 1059, 0, - 1059, 0, 0, 1059, 1059, 1059, 1059, 1059, 1059, 1059, - 1059, 0, 0, 1059, 0, 0, 0, 0, 0, 1059, - 517, 0, 0, 0, 0, 0, 0, 0, 1297, 1297, - 1297, 1297, 1297, 1297, 0, 518, 1262, 0, 0, 0, - 0, 1257, 0, 0, 0, 0, 0, 1258, 0, 0, - 0, 1263, 0, 0, 0, 1259, 0, 0, 1497, 0, - 517, 0, 0, 519, 0, 0, 1260, 0, 520, 521, - 522, 523, 524, 525, 526, 518, 0, 0, 0, 1264, - 0, 0, 527, 0, 1265, 1266, 1267, 1268, 1269, 1270, - 1271, 0, 0, 0, 1486, 0, 0, 0, 1272, 0, - 0, 0, 0, 519, 0, 0, 0, 0, 520, 521, - 522, 523, 524, 525, 526, 0, 0, 0, 0, 0, - 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, + 1193, 0, 0, 0, 0, 660, 0, 1199, 1200, 0, + 1202, 1203, 683, 1205, 1206, 493, 1208, 1209, 0, 1211, + 1212, 686, 1214, 1215, 0, 1217, 1218, 0, 1220, 1221, + 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, + 759, 165, 763, 165, 0, 767, 771, 775, 779, 783, + 787, 791, 795, 0, 0, 165, 0, 0, 0, 0, + 165, 0, 0, 0, 0, 0, 0, 0, 0, 1296, + 510, 0, 0, 493, 0, 511, 0, 0, 0, 0, + 0, 0, 1262, 0, 0, 0, 0, 1058, 0, 493, + 0, 0, 0, 0, 0, 165, 0, 1263, 0, 0, + 0, 0, 0, 0, 0, 0, 1296, 0, 0, 0, + 0, 0, 0, 0, 0, 1296, 1296, 1296, 1296, 1296, + 1296, 1296, 1296, 512, 1296, 1264, 165, 0, 0, 513, + 0, 1060, 165, 1268, 1269, 1270, 1271, 514, 0, 0, + 0, 0, 0, 493, 1272, 0, 0, 0, 515, 0, + 0, 0, 0, 0, 0, 0, 516, 0, 0, 0, + 888, 493, 0, 0, 0, 510, 0, 0, 0, 0, + 511, 0, 493, 0, 0, 0, 0, 0, 0, 0, + 1336, 0, 0, 0, 1338, 0, 0, 0, 1058, 0, + 0, 0, 0, 0, 0, 1060, 0, 1060, 1060, 1060, + 1060, 1060, 1060, 165, 0, 683, 0, 683, 683, 0, + 0, 0, 944, 1357, 0, 959, 0, 0, 512, 0, + 0, 1060, 493, 0, 513, 0, 0, 0, 493, 0, + 0, 0, 514, 517, 0, 0, 0, 0, 0, 0, + 510, 0, 0, 515, 674, 511, 0, 0, 518, 1296, + 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 510, 0, 493, 0, 0, 511, + 0, 0, 0, 752, 975, 0, 519, 0, 0, 0, + 0, 520, 521, 522, 523, 524, 525, 526, 991, 946, + 0, 0, 504, 512, 947, 527, 504, 0, 0, 513, + 504, 0, 0, 0, 504, 493, 0, 514, 504, 0, + 0, 165, 504, 0, 0, 0, 504, 512, 515, 0, + 504, 493, 493, 513, 0, 0, 516, 0, 517, 493, + 0, 514, 0, 165, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 518, 1060, 0, 0, 0, 0, 1126, + 516, 0, 1477, 0, 0, 0, 1480, 165, 0, 0, + 165, 0, 165, 493, 493, 0, 165, 0, 0, 0, + 0, 519, 0, 0, 0, 0, 520, 521, 522, 523, + 524, 525, 526, 493, 0, 493, 0, 0, 0, 493, + 527, 0, 0, 1060, 0, 0, 0, 0, 0, 0, + 0, 1060, 1060, 517, 0, 1060, 0, 1060, 0, 0, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 518, 0, + 1060, 0, 1132, 0, 0, 0, 1060, 517, 674, 674, + 674, 674, 1136, 0, 0, 1060, 1060, 1060, 1060, 1060, + 1060, 1137, 518, 165, 0, 0, 519, 683, 0, 0, + 0, 520, 521, 522, 523, 524, 525, 526, 0, 0, + 0, 1255, 0, 1504, 0, 527, 1256, 0, 0, 0, + 519, 0, 1163, 0, 0, 520, 521, 522, 523, 524, + 525, 526, 0, 165, 0, 0, 0, 0, 1335, 527, + 0, 0, 0, 0, 0, 683, 0, 165, 0, 165, + 0, 1060, 0, 0, 0, 752, 752, 752, 752, 752, + 0, 0, 0, 0, 1257, 0, 0, 0, 0, 0, + 1258, 0, 752, 165, 0, 0, 0, 0, 1259, 0, + 0, 0, 0, 0, 188, 0, 0, 0, 0, 1260, + 0, 1060, 0, 0, 0, 510, 0, 1261, 189, 0, + 511, 1060, 0, 190, 0, 0, 0, 1060, 0, 1060, + 191, 192, 0, 0, 193, 0, 0, 0, 1255, 0, + 0, 0, 0, 1256, 0, 194, 0, 0, 1060, 0, + 0, 0, 0, 195, 0, 0, 196, 1060, 1060, 1060, + 1060, 1060, 1060, 1060, 1060, 0, 1060, 1059, 512, 0, + 0, 0, 0, 0, 513, 0, 197, 0, 198, 0, + 0, 0, 514, 0, 199, 200, 0, 0, 0, 0, + 0, 1257, 0, 515, 1262, 0, 0, 1258, 0, 0, + 0, 516, 0, 0, 1060, 1259, 0, 0, 0, 1263, + 0, 0, 0, 0, 0, 0, 1260, 0, 0, 0, + 0, 1060, 0, 0, 1261, 0, 0, 0, 1060, 0, + 1060, 0, 0, 0, 0, 0, 0, 1264, 683, 683, + 683, 0, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 0, + 674, 674, 0, 0, 0, 0, 1272, 0, 0, 674, + 674, 674, 674, 674, 674, 1340, 0, 0, 0, 0, + 0, 511, 0, 0, 0, 683, 683, 683, 517, 0, + 0, 0, 1060, 0, 1060, 0, 0, 0, 0, 0, + 0, 1060, 0, 518, 0, 0, 752, 0, 0, 674, + 0, 1262, 0, 0, 0, 0, 0, 0, 752, 752, + 752, 752, 752, 752, 0, 0, 1263, 1196, 0, 512, + 0, 519, 0, 0, 0, 513, 520, 521, 522, 523, + 524, 525, 526, 514, 0, 0, 0, 0, 0, 0, + 527, 0, 0, 0, 1264, 0, 0, 0, 0, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 0, 0, 0, 89, + 90, 0, 0, 1272, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 325, 326, 0, 0, 0, + 0, 1059, 0, 1059, 1059, 1059, 1059, 1059, 1059, 0, + 0, 0, 91, 591, 0, 0, 0, 0, 0, 592, + 0, 0, 0, 0, 0, 0, 0, 1297, 593, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, + 0, 0, 0, 0, 0, 0, 95, 96, 0, 517, + 0, 0, 0, 97, 98, 99, 0, 339, 0, 340, + 100, 0, 0, 0, 518, 594, 101, 0, 102, 103, + 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, + 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, + 0, 0, 519, 0, 110, 111, 112, 113,-32768,-32768, + 523, 524, 525, 526, 0, 1497, 0, 1256, 0, 352, + 0, 527, 0, 0, 0, 0, 114, 115, 116, 117, + 0, 118, 119, 510, 120, 121, 0, 122, 511, 0, + 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 752, + 1360, 139, 0, 140, 141, 1257, 0, 142, 143, 0, + 144, 1258, 145, 146, 147, 148, 149, 150, 151, 1259, + 152, 153, 154, 155, 156, 0, 512, 157, 158, 159, + 160, 161, 513, 0, 0, 162, 0, 163, 164, 0, + 514, 0, 0, 0, 0, 1255, 0, 0, 0, 1059, + 1256, 515, 0, 0, 0, 0, 0, 1059, 1404, 0, + 0, 1059, 595, 1059, 0, 0, 1059, 1059, 1059, 1059, + 1059, 1059, 1059, 1059, 0, 0, 1059, 0, 0, 0, + 0, 0, 1059, 0, 0, 0, 0, 0, 0, 0, + 0, 1297, 1297, 1297, 1297, 1297, 1297, 0, 1257, 0, + 0, 0, 0, 0, 1258, 0, 0, 0, 0, 0, + 0, 0, 1259, 0, 0, 1262, 0, 0, 91, 332, + 0, 0, 0, 1260, 0, 487, 0, 0, 0, 0, + 1263, 0, 0, 0, 337, 0, 517, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 338, 0, 0, + 0, 518, 0, 0, 0, 0, 0, 1486, 1264, 0, + 98, 99, 0, 1265, 1266, 1267, 1268, 1269, 1270, 1271, + 1632, 344, 0, 0, 0, 0, 0, 1272, 0, 519, + 0, 0, 0, 0, 520, 521, 522, 523, 524, 525, + 526, 1654, 0, 0, 109, 0, 0, 1297, 527, 0, + 488, 489, 0, 0, 0, 0, 0, 1404, 1262, 0, + 0, 0, 0, 1404, 0, 1059, 0, 0, 0, 0, + 0, 0, 114, 1263, 0, 490, 0, 1632, 0, 0, 0, 0, 0, 0, 1297, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, - 1404, 1262, 1059, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1263, 0, 0, 0, - 0, 1297, 0, 0, 0, 0, 0, 0, 0, 0, - 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 0, 1297, - 0, 0, 0, 0, 1264, 0, 0, 0, 0, 1265, - 1266, 1267, 1268, 1269, 1270, 1271, 0, 0, 0, 0, - 0, 0, 0, 1272, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1557, 0, 0, + 0, 0, 0, 1297, 1297, 1297, 1297, 1297, 1297, 1297, + 1297, 1264, 1297, 0, 0, 0, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 0, 0, 0, 0, 0, 0, 0, + 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, - 0, 1404, 0, 1059, 0, 89, 90, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, - 324, 325, 326, 1630, 0, 327, 0, 0, 0, 0, - 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, - 0, 0, 1651, 0, 0, 333, 0, 0, 0, 0, - 334, 335, 336, 0, 337, 1404, 0, 1404, 0, 0, - 0, 0, 93, 0, 1297, 94, 0, 338, 0, 0, - 0, 0, 95, 96, 0, 0, 0, 1630, 0, 97, - 98, 99, 0, 339, 0, 340, 100, 0, 341, 342, - 343, 344, 101, 0, 102, 103, 0, 0, 0, 0, - 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, - 0, 0, 0, 108, 109, 0, 0, 346, 0, 0, - 347, 348, 112, 113, 0, 0, 0, 349, 350, 0, - 0, 0, 351, 0, 0, 352, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, - 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, - 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, - 141, 0, 229, 142, 143, 0, 144, 0, 145, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, - 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, - 0, 0, 0, 0, 0, 359, 805, 0, 361, 362, - 363, 89, 90, 0, 0, 0, 0, 364, 806, 0, - 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, + 1557, 0, 0, 0, 491, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 89, 90, 0, 1404, 0, 0, + 0, 0, 0, 0, 1404, 0, 1059, 0, 323, 324, + 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, + 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, + 335, 336, 0, 337, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 94, 0, 338, 0, 1404, 0, + 1404, 95, 96, 0, 0, 0, 0, 1297, 97, 98, + 99, 0, 339, 0, 340, 100, 0, 341, 342, 343, + 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, + 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, + 0, 0, 108, 109, 0, 0, 346, 0, 0, 347, + 348, 112, 113, 0, 0, 0, 349, 350, 0, 0, + 0, 351, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, + 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, + 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, + 0, 229, 142, 143, 0, 144, 0, 145, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, + 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, + 0, 0, 0, 0, 359, 805, 0, 361, 362, 363, + 89, 90, 0, 0, 0, 0, 364, 806, 0, 0, + 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, + 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, + 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 334, 335, 336, 0, 337, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, + 340, 100, 0, 341, 342, 343, 344, 101, 0, 102, + 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 346, 0, 0, 347, 348, 112, 113, 0, + 0, 0, 349, 350, 0, 0, 0, 351, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, + 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, + 359, 89, 90, 361, 362, 363, 0, 0, 0, 0, + 0, 0, 364, 1154, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, @@ -2009,7 +2039,119 @@ static const short yytable[] = { 167, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, - 0, 0, 0, 364, 1154, 0, 323, 324, 325, 326, + 0, 0, 0, 364, 1191, 0, 0, 1282, 325, 326, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1283, 1284, 1285, 1286, 0, 91, 332, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 0, 0, 336, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 0, 0, 0, 344, 101, + 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, + 108, 109, 0, 0, 0, 0, 0, 347, 348, 112, + 113, 0, 0, 0, 0, 350, 0, 0, 0, 1288, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, + 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, + 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 0, 0, 139, 0, 140, 141, 0, 0, + 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, + 163, 355, 242, 1289, 313, 357, 358, 0, 0, 0, + 0, 0, 1290, 89, 90, 1291, 1292, 1293, 0, 0, + 0, 0, 0, 0, 1294, 1532, 0, 0, 1048, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 91, 332, 0, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, + 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, + 0, 339, 0, 340, 100, 0, 1049, 0, 1050, 344, + 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, + 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, + 0, 108, 109, 0, 0, 0, 0, 0, 347, 348, + 112, 113, 0, 0, 0, 0, 350, 0, 0, 0, + 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, + 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, + 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, + 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, + 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, + 0, 163, 355, 242, 1051, 313, 357, 358, 0, 0, + 0, 0, 0, 1052, 0, 0, 1053, 1054, 1055, 89, + 90, 0, 0, 0, 0, 1056, 1424, 0, 0, 0, + 679, 0, 0, 323, 324, 325, 326, 0, 0, 327, + 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, + 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 334, 335, 336, 0, 337, 0, + 0, 680, 0, 0, 0, 0, 93, 0, 0, 94, + 0, 338, 0, 0, 0, 0, 95, 96, 681, 0, + 0, 0, 0, 97, 98, 99, 0, 339, 0, 340, + 100, 0, 341, 342, 343, 344, 101, 0, 102, 103, + 0, 0, 0, 0, 345, 0, 0, 104, 105, 0, + 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, + 0, 346, 0, 0, 347, 348, 112, 113, 0, 682, + 0, 349, 350, 0, 0, 0, 351, 0, 0, 352, + 0, 0, 0, 0, 0, 0, 114, 115, 116, 353, + 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, + 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, + 0, 139, 0, 140, 141, 0, 229, 142, 143, 0, + 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, + 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, + 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, + 356, 313, 357, 358, 0, 0, 0, 0, 0, 359, + 0, 0, 361, 362, 363, 89, 90, 0, 0, 0, + 0, 364, 0, 0, 0, 0, 1142, 0, 0, 323, + 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, + 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, + 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 334, 335, 336, 0, 337, 0, 0, 680, 0, 0, + 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, + 0, 0, 95, 96, 1143, 0, 0, 0, 0, 97, + 98, 99, 0, 339, 0, 340, 100, 0, 341, 342, + 343, 344, 101, 0, 102, 103, 0, 0, 0, 0, + 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, + 0, 0, 0, 108, 109, 0, 0, 346, 0, 0, + 347, 348, 112, 113, 0, 1144, 0, 349, 350, 0, + 0, 0, 351, 0, 0, 352, 0, 0, 0, 0, + 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, + 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, + 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, + 141, 0, 229, 142, 143, 0, 144, 0, 145, 146, + 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, + 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, + 0, 0, 0, 0, 0, 359, 0, 0, 361, 362, + 363, 89, 90, 0, 0, 0, 0, 364, 0, 0, + 0, 0, 1179, 0, 0, 323, 324, 325, 326, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, + 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, + 337, 0, 0, 680, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, + 1180, 0, 0, 0, 0, 97, 98, 99, 0, 339, + 0, 340, 100, 0, 341, 342, 343, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, + 0, 1181, 0, 349, 350, 0, 0, 0, 351, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, + 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, + 0, 0, 0, 364, 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, @@ -2030,229 +2172,8 @@ static const short yytable[] = { 167, 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, - 0, 0, 359, 89, 90, 361, 362, 363, 0, 0, - 0, 0, 0, 0, 364, 1191, 0, 0, 1282, 325, - 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1283, 1284, 1285, 1286, 0, 91, 332, 0, 0, - 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, - 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, - 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, - 0, 339, 0, 340, 100, 0, 0, 0, 0, 344, - 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, - 0, 108, 109, 0, 0, 0, 0, 0, 347, 348, - 112, 113, 0, 0, 0, 0, 350, 0, 0, 0, - 1288, 0, 0, 352, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, - 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, - 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, - 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, - 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, - 0, 163, 355, 242, 1289, 313, 357, 358, 0, 0, - 0, 0, 0, 1290, 89, 90, 1291, 1292, 1293, 0, - 0, 0, 0, 0, 0, 1294, 1532, 0, 0, 1048, - 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 91, 332, 0, - 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, - 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, - 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, - 99, 0, 339, 0, 340, 100, 0, 1049, 0, 1050, - 344, 101, 0, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 347, - 348, 112, 113, 0, 0, 0, 0, 350, 0, 0, - 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 355, 242, 1051, 313, 357, 358, 0, - 0, 0, 89, 90, 1052, 0, 0, 1053, 1054, 1055, - 0, 0, 0, 0, 0, 0, 1056, 1424, 325, 326, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 91, 591, 0, 0, 0, - 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, - 0, 593, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, - 339, 0, 340, 100, 0, 0, 0, 0, 594, 101, - 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 0, 0, 0, 110, 111, 112, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 117, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 0, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 89, 90, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 679, - 163, 164, 323, 324, 325, 326, 0, 0, 327, 0, - 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, - 0, 91, 332, 0, 0, 595, 0, 0, 333, 0, - 0, 0, 0, 334, 335, 336, 0, 337, 0, 0, - 680, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 338, 0, 0, 0, 0, 95, 96, 681, 0, 0, - 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, - 0, 341, 342, 343, 344, 101, 0, 102, 103, 0, - 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 346, 0, 0, 347, 348, 112, 113, 0, 682, 0, - 349, 350, 0, 0, 0, 351, 0, 0, 352, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, - 313, 357, 358, 0, 0, 0, 0, 0, 359, 0, - 0, 361, 362, 363, 89, 90, 0, 0, 0, 0, - 364, 0, 0, 0, 0, 1142, 0, 0, 323, 324, - 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, - 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, - 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, - 335, 336, 0, 337, 0, 0, 680, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, - 0, 95, 96, 1143, 0, 0, 0, 0, 97, 98, - 99, 0, 339, 0, 340, 100, 0, 341, 342, 343, - 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 346, 0, 0, 347, - 348, 112, 113, 0, 1144, 0, 349, 350, 0, 0, - 0, 351, 0, 0, 352, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 229, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, - 0, 0, 0, 0, 359, 0, 0, 361, 362, 363, - 89, 90, 0, 0, 0, 0, 364, 0, 0, 0, - 0, 1179, 0, 0, 323, 324, 325, 326, 0, 0, - 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, - 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 334, 335, 336, 0, 337, - 0, 0, 680, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 338, 0, 0, 0, 0, 95, 96, 1180, - 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, - 340, 100, 0, 341, 342, 343, 344, 101, 0, 102, - 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 346, 0, 0, 347, 348, 112, 113, 0, - 1181, 0, 349, 350, 0, 0, 0, 351, 0, 0, - 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, - 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, - 359, 89, 90, 361, 362, 363, 0, 0, 0, 0, - 0, 0, 364, 0, 0, 323, 324, 325, 326, 0, - 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, - 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, - 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, - 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, - 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, - 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, - 0, 340, 100, 0, 341, 342, 343, 344, 101, 0, - 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, - 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, - 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, - 0, 359, 360, 0, 361, 362, 363, 0, 89, 90, - 0, 768, 0, 364, 769, 0, 0, 0, 0, 0, - 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, - 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, - 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, - 0, 0, 0, 334, 335, 336, 0, 337, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, - 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, - 0, 341, 342, 0, 344, 101, 0, 102, 103, 0, - 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 346, 0, 0, 347, 348, 112, 113, 0, 0, 0, - 349, 350, 0, 0, 0, 351, 0, 0, 352, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, - 313, 357, 358, 0, 0, 0, 0, 0, 359, 0, - 0, 361, 362, 363, 0, 89, 90, 0, 772, 0, - 770, 773, 0, 0, 0, 0, 0, 0, 0, 323, - 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, - 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, - 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, - 334, 335, 336, 0, 337, 0, 0, 0, 0, 0, - 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, - 98, 99, 0, 339, 0, 340, 100, 0, 341, 342, - 0, 344, 101, 0, 102, 103, 0, 0, 0, 0, - 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, - 0, 0, 0, 108, 109, 0, 0, 346, 0, 0, - 347, 348, 112, 113, 0, 0, 0, 349, 350, 0, - 0, 0, 351, 0, 0, 352, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, - 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, - 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, - 141, 0, 229, 142, 143, 0, 144, 0, 145, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, - 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, - 0, 0, 0, 0, 0, 359, 0, 0, 361, 362, - 363, 0, 89, 90, 0, 776, 0, 774, 777, 0, - 0, 0, 0, 0, 0, 0, 323, 324, 325, 326, - 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, - 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, - 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, - 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, - 339, 0, 340, 100, 0, 341, 342, 0, 344, 101, - 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 346, 0, 0, 347, 348, 112, - 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, - 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 229, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, - 0, 0, 359, 0, 0, 361, 362, 363, 0, 89, - 90, 0, 780, 0, 778, 781, 0, 0, 0, 0, + 0, 0, 359, 360, 0, 361, 362, 363, 0, 89, + 90, 0, 768, 0, 364, 769, 0, 0, 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, @@ -2274,8 +2195,8 @@ static const short yytable[] = { 167, 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, 359, - 0, 0, 361, 362, 363, 0, 89, 90, 0, 784, - 0, 782, 785, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 361, 362, 363, 0, 89, 90, 0, 772, + 0, 770, 773, 0, 0, 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, @@ -2297,7 +2218,7 @@ static const short yytable[] = { 167, 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, 359, 0, 0, 361, - 362, 363, 0, 89, 90, 0, 788, 0, 786, 789, + 362, 363, 0, 89, 90, 0, 776, 0, 774, 777, 0, 0, 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, @@ -2320,7 +2241,7 @@ static const short yytable[] = { 167, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, 359, 0, 0, 361, 362, 363, 0, - 89, 90, 0, 792, 0, 790, 793, 0, 0, 0, + 89, 90, 0, 780, 0, 778, 781, 0, 0, 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, @@ -2342,15 +2263,61 @@ static const short yytable[] = { 167, 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, - 359, 89, 90, 361, 362, 363, 0, 0, 0, 0, - 0, 0, 794, 0, 0, 323, 324, 325, 326, 0, + 359, 0, 0, 361, 362, 363, 0, 89, 90, 0, + 784, 0, 782, 785, 0, 0, 0, 0, 0, 0, + 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, + 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, + 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 334, 335, 336, 0, 337, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 94, 0, 338, + 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, + 0, 97, 98, 99, 0, 339, 0, 340, 100, 0, + 341, 342, 0, 344, 101, 0, 102, 103, 0, 0, + 0, 0, 345, 0, 0, 104, 105, 0, 0, 106, + 0, 107, 0, 0, 0, 108, 109, 0, 0, 346, + 0, 0, 347, 348, 112, 113, 0, 0, 0, 349, + 350, 0, 0, 0, 351, 0, 0, 352, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 353, 0, 118, + 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, + 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, + 0, 140, 141, 0, 229, 142, 143, 0, 144, 0, + 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, + 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, + 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, + 357, 358, 0, 0, 0, 0, 0, 359, 0, 0, + 361, 362, 363, 0, 89, 90, 0, 788, 0, 786, + 789, 0, 0, 0, 0, 0, 0, 0, 323, 324, + 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, + 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, + 335, 336, 0, 337, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, + 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, + 99, 0, 339, 0, 340, 100, 0, 341, 342, 0, + 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, + 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, + 0, 0, 108, 109, 0, 0, 346, 0, 0, 347, + 348, 112, 113, 0, 0, 0, 349, 350, 0, 0, + 0, 351, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, + 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, + 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, + 0, 229, 142, 143, 0, 144, 0, 145, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, + 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, + 0, 0, 0, 0, 359, 0, 0, 361, 362, 363, + 0, 89, 90, 0, 792, 0, 790, 793, 0, 0, + 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, - 337, 0, 0, 680, 0, 0, 0, 0, 93, 0, + 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, - 0, 340, 100, 0, 341, 342, 343, 344, 101, 0, + 0, 340, 100, 0, 341, 342, 0, 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, @@ -2365,17 +2332,17 @@ static const short yytable[] = { 167, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, - 0, 0, 0, 364, 0, 0, 323, 324, 325, 326, + 0, 0, 0, 794, 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, - 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 337, 0, 0, 680, 0, 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, 0, 341, 342, 343, 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 647, 0, 346, 0, 0, 347, 348, 112, + 108, 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, @@ -2395,6 +2362,95 @@ static const short yytable[] = { 167, 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, 0, 341, 342, 343, 344, + 101, 0, 102, 103, 0, 0, 0, 0, 345, 0, + 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, + 0, 108, 109, 647, 0, 346, 0, 0, 347, 348, + 112, 113, 0, 0, 0, 349, 350, 0, 0, 0, + 351, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, + 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, + 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, + 229, 142, 143, 0, 144, 0, 145, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, + 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, + 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, + 0, 0, 0, 359, 89, 90, 361, 362, 363, 0, + 0, 0, 0, 0, 0, 364, 0, 0, 323, 324, + 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, + 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, + 335, 336, 0, 337, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, + 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, + 99, 0, 339, 0, 340, 100, 0, 341, 342, 343, + 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, + 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, + 0, 0, 108, 109, 0, 0, 346, 0, 0, 347, + 348, 112, 113, 0, 0, 0, 349, 350, 0, 0, + 0, 351, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, + 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, + 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, + 0, 229, 142, 143, 0, 144, 0, 145, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, + 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, + 0, 0, 0, 0, 359, 0, 0, 361, 362, 363, + 0, 89, 90, 0, 764, 0, 364, 765, 0, 0, + 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, + 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, + 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, + 0, 340, 100, 0, 0, 342, 0, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, + 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 355, 242,-32768, 313, 357, 358, 0, 0, 0, 0, + 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, + 0, 0, 0, 766, 0, 0, 323, 324, 325, 326, + 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, + 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 341, 342, 0, 344, 101, + 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, + 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, + 108, 109, 647, 0, 346, 0, 0, 347, 348, 112, + 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, + 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, + 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 0, 0, 139, 0, 140, 141, 0, 229, + 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, + 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, + 0, 0, 359, 89, 90, 361, 362, 363, 0, 0, + 0, 0, 0, 0, 364, 0, 0, 323, 324, 325, + 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, + 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 334, 335, + 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, + 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, + 0, 339, 0, 340, 100, 0, 341, 342, 0, 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, 346, 0, 0, 347, 348, @@ -2408,42 +2464,19 @@ static const short yytable[] = { 167, 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, - 0, 0, 0, 359, 0, 0, 361, 362, 363, 0, - 89, 90, 0, 764, 0, 364, 765, 0, 0, 0, - 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, - 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, - 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 334, 335, 336, 0, 337, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, - 340, 100, 0, 0, 342, 0, 344, 101, 0, 102, - 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 346, 0, 0, 347, 348, 112, 113, 0, - 0, 0, 349, 350, 0, 0, 0, 351, 0, 0, - 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, - 242,-32768, 313, 357, 358, 0, 0, 0, 0, 0, - 359, 89, 90, 361, 362, 363, 0, 0, 0, 0, - 0, 0, 766, 0, 0, 323, 324, 325, 326, 0, - 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, - 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, - 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, + 0, 89, 90, 359, 0, 0, 361, 362, 363, 0, + 0, 0, 0, 0, 0, 364, 734, 325, 326, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 735, + 736, 737, 738, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, - 0, 340, 100, 0, 341, 342, 0, 344, 101, 0, - 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, + 0, 340, 100, 0, 0, 0, 0, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 739, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 647, 0, 346, 0, 0, 347, 348, 112, 113, - 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, + 109, 0, 0, 740, 0, 0, 347, 348, 112, 113, + 0, 0, 0, 741, 350, 0, 0, 0, 742, 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, @@ -2452,411 +2485,359 @@ static const short yytable[] = { 167, 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, - 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, - 0, 0, 0, 364, 0, 0, 323, 324, 325, 326, - 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, - 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, - 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, - 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, - 339, 0, 340, 100, 0, 341, 342, 0, 344, 101, - 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 346, 0, 0, 347, 348, 112, - 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, - 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 229, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, - 89, 90, 359, 0, 0, 361, 362, 363, 0, 0, - 0, 0, 0, 0, 364, 734, 325, 326, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 735, 736, - 737, 738, 0, 91, 332, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 0, 0, 336, 0, 337, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, - 340, 100, 0, 0, 0, 0, 344, 101, 0, 102, - 103, 0, 0, 0, 0, 739, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 740, 0, 0, 347, 348, 112, 113, 0, - 0, 0, 741, 350, 0, 0, 0, 742, 0, 0, - 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, - 242, 743, 313, 357, 358, 0, 0, 0, 89, 90, - 744, 0, 0, 745, 746, 747, 0, 0, 0, 0, - 0, 0, 748, 734, 325, 326, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 735, 736, 737, 738, - 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, - 0, 0, 0, 0, 0, 336, 0, 337, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, - 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, - 0, 0, 0, 0, 344, 101, 0, 102, 103, 0, - 0, 0, 0, 739, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 740, 0, 0, 347, 348, 112, 113, 0, 0, 0, - 741, 350, 0, 0, 0, 742, 0, 0, 352, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 355, 242,-32768, - 313, 357, 358, 0, 0, 0, 89, 90, 744, 0, - 0, 745, 746, 747, 0, 0, 0, 0, 0, 0, - 748, 1282, 325, 326, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1283, 1284, 1285, 1286, 0, 91, - 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, - 0, 0, 0, 336, 0, 337, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, - 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, - 97, 98, 99, 0, 339, 0, 340, 100, 0, 0, - 0, 1287, 344, 101, 0, 102, 103, 0, 0, 0, - 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, - 0, 347, 348, 112, 113, 0, 0, 0, 0, 350, - 0, 0, 0, 1288, 0, 0, 352, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 355, 242, 1289, 313, 357, - 358, 0, 0, 0, 89, 90, 1290, 0, 0, 1291, - 1292, 1293, 0, 0, 0, 0, 0, 0, 1294, 1282, - 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1283, 1284, 1285, 1286, 0, 91, 332, 0, - 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, - 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, - 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, - 99, 0, 339, 0, 340, 100, 0, 0, 0, 0, - 344, 101, 0, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 347, - 348, 112, 113, 0, 0, 0, 0, 350, 0, 0, - 0, 1288, 0, 0, 352, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 355, 242, 1289, 313, 357, 358, 0, - 0, 0, 89, 90, 1290, 0, 0, 1291, 1292, 1293, - 0, 0, 0, 0, 0, 0, 1294, 1282, 325, 326, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1283, 1284, 1285, 1286, 0, 91, 332, 0, 0, 0, - 0, 0, 333, 0, 0, 0, 0, 0, 0, 336, - 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, - 339, 0, 340, 100, 0, 0, 0, 0, 344, 101, - 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 0, 0, 0, 347, 348, 112, - 113, 0, 0, 0, 0, 350, 0, 0, 0, 1288, - 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 0, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 355, 242,-32768, 313, 357, 358, 0, 0, 0, - 89, 90, 1290, 0, 0, 1291, 1292, 1293, 0, 0, - 0, 0, 0, 0, 1294, 662, 325, 326, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 91, 332, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 0, 0, 336, 0, 337, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, - 340, 100, 0, 0, 0, 0, 344, 101, 0, 102, - 103, 0, 0, 0, 0, 663, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 664, 0, 0, 347, 348, 112, 113, 0, - 0, 0, 665, 350, 0, 0, 0, 0, 0, 0, - 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, - 242, 666, 313, 357, 358, 0, 0, 0, 89, 90, - 667, 0, 0, 668, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 662, 325, 326, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, - 0, 0, 0, 0, 0, 336, 0, 337, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, - 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, - 0, 0, 0, 0, 344, 101, 0, 102, 103, 0, - 0, 0, 0, 663, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 664, 0, 0, 347, 348, 112, 113, 0, 0, 0, - 665, 350, 0, 0, 0, 0, 0, 0, 352, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 355, 242,-32768, - 313, 357, 358, 0, 0, 0, 89, 90, 667, 0, - 0, 668, 0, 0, 0, 0, 0, 0, 0, 0, - 669, 1048, 325, 326, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, - 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, - 0, 0, 0, 336, 0, 337, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, - 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, - 97, 98, 99, 0, 339, 0, 340, 100, 0, 1049, - 0, 1050, 344, 101, 0, 102, 103, 0, 0, 0, - 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, - 0, 347, 348, 112, 113, 0, 0, 0, 0, 350, - 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 355, 242, 1051, 313, 357, - 358, 0, 0, 0, 89, 90, 1052, 0, 0, 1053, - 1054, 1055, 0, 0, 0, 0, 0, 0, 1056, 1048, - 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 91, 332, 0, - 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, - 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, - 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, - 99, 0, 339, 0, 340, 100, 0, 0, 0, 1050, - 344, 101, 0, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 347, - 348, 112, 113, 0, 0, 0, 0, 350, 0, 0, - 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 354, 0, 157, 158, 159, 160, 161, 89, 90, 0, - 162, 0, 163, 355, 242,-32768, 313, 357, 358, 0, - 0, 0, 0, 0, 1052, 0, 0, 1053, 1054, 1055, - 0, 0, 0, 0, 228, 0, 1056, 0, 0, 0, - 91, 0, 0, 0, 0, 0, 0, 92, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 94, 0, 0, + 355, 242, 743, 313, 357, 358, 0, 0, 0, 89, + 90, 744, 0, 0, 745, 746, 747, 0, 0, 0, + 0, 0, 0, 748, 734, 325, 326, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 735, 736, 737, + 738, 0, 91, 332, 0, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 336, 0, 337, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, + 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, + 0, 0, 0, 97, 98, 99, 0, 339, 0, 340, + 100, 0, 0, 0, 0, 344, 101, 0, 102, 103, + 0, 0, 0, 0, 739, 0, 0, 104, 105, 0, + 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, + 0, 740, 0, 0, 347, 348, 112, 113, 0, 0, + 0, 741, 350, 0, 0, 0, 742, 0, 0, 352, + 0, 0, 0, 0, 0, 0, 114, 115, 116, 353, + 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, + 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, + 0, 139, 0, 140, 141, 0, 229, 142, 143, 0, + 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, + 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, + 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, +-32768, 313, 357, 358, 0, 0, 0, 89, 90, 744, + 0, 0, 745, 746, 747, 0, 0, 0, 0, 0, + 0, 748, 1282, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1283, 1284, 1285, 1286, 0, + 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 336, 0, 337, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 0, 97, 98, 99, 0, 0, 0, 0, 100, 1256, - 0, 0, 0, 0, 101, 0, 102, 103, 0, 0, + 0, 97, 98, 99, 0, 339, 0, 340, 100, 0, + 0, 0, 1287, 344, 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, - 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1257, 0, 0, - 0, 0, 0, 1258, 114, 115, 116, 117, 0, 118, - 119, 1259, 120, 121, 0, 122, 0, 0, 123, 124, - 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 89, 90, 139, - 0, 140, 141, 0, 229, 142, 143, 0, 144, 0, - 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, - 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, - 91, 0, 0, 162, 0, 163, 164, 92, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 94, 0, 1017, - 0, 0, 0, 0, 95, 96, 0, 1262, 0, 0, - 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, - 0, 0, 1263, 0, 101, 0, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, - 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, - 1264, 0, 110, 111, 112, 113,-32768,-32768, 1268, 1269, - 1270, 1271, 0, 0, 0, 0, 0, 0, 0, 1272, - 0, 0, 0, 0, 114, 115, 116, 117, 0, 118, + 0, 0, 347, 348, 112, 113, 0, 0, 0, 0, + 350, 0, 0, 0, 1288, 0, 0, 352, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, - 154, 155, 156, 1102, 0, 157, 158, 159, 160, 161, - 89, 90, 0, 162, 0, 163, 164, 242, 302, 313, - 0, 1103, 0, 277, 278, 279, 280, 1104, 282, 283, + 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, + 0, 0, 0, 162, 0, 163, 355, 242, 1289, 313, + 357, 358, 0, 0, 0, 89, 90, 1290, 0, 0, + 1291, 1292, 1293, 0, 0, 0, 0, 0, 0, 1294, + 1282, 325, 326, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1283, 1284, 1285, 1286, 0, 91, 332, + 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 336, 0, 337, 0, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, + 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, + 98, 99, 0, 339, 0, 340, 100, 0, 0, 0, + 0, 344, 101, 0, 102, 103, 0, 0, 0, 0, + 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, + 0, 0, 0, 108, 109, 0, 0, 0, 0, 0, + 347, 348, 112, 113, 0, 0, 0, 0, 350, 0, + 0, 0, 1288, 0, 0, 352, 0, 0, 0, 0, + 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, + 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, + 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, + 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, + 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, + 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 162, 0, 163, 355, 242, 1289, 313, 357, 358, + 0, 0, 0, 89, 90, 1290, 0, 0, 1291, 1292, + 1293, 0, 0, 0, 0, 0, 0, 1294, 1282, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1283, 1284, 1285, 1286, 0, 91, 332, 0, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, + 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, + 0, 339, 0, 340, 100, 0, 0, 0, 0, 344, + 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, + 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, + 0, 108, 109, 0, 0, 0, 0, 0, 347, 348, + 112, 113, 0, 0, 0, 0, 350, 0, 0, 0, + 1288, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, + 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, + 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, + 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, + 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, + 0, 163, 355, 242,-32768, 313, 357, 358, 0, 0, + 0, 89, 90, 1290, 0, 0, 1291, 1292, 1293, 0, + 0, 0, 0, 0, 0, 1294, 662, 325, 326, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 336, 0, + 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, + 0, 340, 100, 0, 0, 0, 0, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 663, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 664, 0, 0, 347, 348, 112, 113, + 0, 0, 0, 665, 350, 0, 0, 0, 0, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 355, 242, 666, 313, 357, 358, 0, 0, 0, 89, + 90, 667, 0, 0, 668, 0, 0, 0, 0, 0, + 0, 0, 0, 669, 662, 325, 326, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 91, 332, 0, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 336, 0, 337, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, + 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, + 0, 0, 0, 97, 98, 99, 0, 339, 0, 340, + 100, 0, 0, 0, 0, 344, 101, 0, 102, 103, + 0, 0, 0, 0, 663, 0, 0, 104, 105, 0, + 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, + 0, 664, 0, 0, 347, 348, 112, 113, 0, 0, + 0, 665, 350, 0, 0, 0, 0, 0, 0, 352, + 0, 0, 0, 0, 0, 0, 114, 115, 116, 353, + 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, + 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, + 0, 139, 0, 140, 141, 0, 229, 142, 143, 0, + 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, + 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, + 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, +-32768, 313, 357, 358, 0, 0, 0, 89, 90, 667, + 0, 0, 668, 0, 0, 0, 0, 0, 0, 0, + 0, 669, 1048, 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 91, 0, 0, 611, 0, 0, 0, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 274, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 275, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 91, 332, 0, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 336, 0, 337, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 94, 0, 338, + 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, + 0, 97, 98, 99, 0, 339, 0, 340, 100, 0, + 1049, 0, 1050, 344, 101, 0, 102, 103, 0, 0, + 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, + 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, + 0, 0, 347, 348, 112, 113, 0, 0, 0, 0, + 350, 0, 0, 0, 0, 0, 0, 352, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 353, 0, 118, + 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, + 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, + 0, 140, 141, 0, 0, 142, 143, 0, 144, 0, + 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, + 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, + 0, 0, 0, 162, 0, 163, 355, 242, 1051, 313, + 357, 358, 0, 0, 0, 89, 90, 1052, 0, 0, + 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 1056, + 1048, 325, 326, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 91, 332, + 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 336, 0, 337, 0, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, + 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, + 98, 99, 0, 339, 0, 340, 100, 0, 0, 0, + 1050, 344, 101, 0, 102, 103, 0, 0, 0, 0, + 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, + 0, 0, 0, 108, 109, 0, 0, 0, 0, 0, + 347, 348, 112, 113, 0, 0, 0, 0, 350, 0, + 0, 0, 0, 0, 0, 352, 0, 0, 0, 0, + 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, + 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, + 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, + 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, + 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, + 156, 354, 0, 157, 158, 159, 160, 161, 89, 90, + 0, 162, 0, 163, 355, 242,-32768, 313, 357, 358, + 0, 0, 0, 0, 0, 1052, 0, 0, 1053, 1054, + 1055, 0, 0, 0, 0, 228, 0, 1056, 0, 0, + 0, 91, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 276, 0, 0, 0, 0, 277, 278, 279, 280, - 281, 282, 283, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 274, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 275, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 95, 96, 0, 0, 0, + 0, 0, 97, 98, 99, 0, 0, 0, 0, 100, + 1256, 0, 0, 0, 0, 101, 0, 102, 103, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, + 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, + 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1257, 0, + 0, 0, 0, 0, 1258, 114, 115, 116, 117, 0, + 118, 119, 1259, 120, 121, 0, 122, 0, 0, 123, + 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 89, 90, + 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, + 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, + 161, 91, 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 228, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 276, 0, 0, 0, 0, 277, 278, 279, 280, - 281, 282, 283, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 229, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 228, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 0, 0, 357, 0, 0, 0, 0, 0, 0, - 0, 544, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 229, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 255, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 435, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 801, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 511, - 0, 1029, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 1256, 0, 95, 96, 0, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 512, 104, 105, - 0, 0, 106, 513, 107, 0, 0, 0, 108, 109, - 0, 514, 0, 1257, 0, 110, 111, 112, 113, 1258, - 0, 0, 0, 0, 0, 0, 0, 1259, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 162, 517, 163, 164, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1231, 518, 1262, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1263, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 519, 89, 90, 0, 0, 520, 521, 522, 523, 524, - 525, 526, 0, 0, 0, 0, 1264, 0, 0, 527, - 0, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 228, 0, - 0, 0, 0, 0, 91, 1272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, + 1017, 0, 0, 0, 0, 95, 96, 0, 1262, 0, + 0, 0, 97, 98, 99, 0, 0, 0, 0, 100, + 0, 0, 0, 1263, 0, 101, 0, 102, 103, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, + 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, + 0, 1264, 0, 110, 111, 112, 113,-32768,-32768, 1268, + 1269, 1270, 1271, 0, 0, 0, 0, 0, 0, 0, + 1272, 0, 0, 0, 0, 114, 115, 116, 117, 0, + 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, + 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, + 139, 0, 140, 141, 0, 0, 142, 143, 0, 144, + 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 156, 1102, 0, 157, 158, 159, 160, + 161, 89, 90, 0, 162, 0, 163, 164, 242, 302, + 313, 0, 1103, 0, 277, 278, 279, 280, 1104, 282, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 91, 0, 0, 611, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 274, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 275, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 0, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 276, 0, 0, 0, 0, 277, 278, 279, + 280, 281, 282, 283, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 274, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 275, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 0, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 228, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 276, 0, 0, 0, 0, 277, 278, 279, + 280, 281, 282, 283, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 228, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 0, 0, 357, 0, 0, 0, 0, 0, + 0, 0, 544, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 255, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 0, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 435, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 0, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 801, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 0, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1029, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 0, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 228, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1231, 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, @@ -3178,387 +3159,410 @@ static const short yytable[] = { 167, }; static const short yycheck[] = { 3, - 239, 200, 6, 183, 171, 223, 197, 546, 25, 1017, - 378, 630, 460, 17, 18, 849, 20, 399, 1023, 839, - 24, 421, 189, 1256, 28, 29, 30, 31, 647, 559, - 885, 886, 962, 6, 1300, 483, 9, 39, 39, 1469, - 1470, 55, 21, 6, 55, 55, 25, 39, 903, 679, - 131, 681, 682, 5, 66, 7, 326, 39, 3, 16, - 131, 1049, 527, 1051, 1052, 1053, 1054, 1055, 1056, 40, - 340, 131, 195, 1224, 76, 54, 45, 138, 50, 202, - 84, 1551, 1552, 53, 452, 533, 44, 743, 744, 745, - 746, 747, 44, 64, 1289, 1290, 1291, 1292, 1293, 1294, - 55, 21, 122, 40, 760, 40, 666, 667, 668, 669, - 131, 38, 60, 40, 86, 580, 88, 131, 919, 318, - 1550, 100, 321, 6, 39, 1595, 55, 64, 85, 213, - 78, 116, 154, 215, 54, 8, 39, 64, 18, 8, - 63, 212, 113, 213, 24, 130, 364, 231, 28, 128, - 232, 31, 213, 234, 126, 236, 114, 114, 129, 181, - 191, 231, 107, 131, 112, 169, 967, 136, 172, 173, - 231, 10, 176, 177, 234, 179, 180, 545, 1411, 183, - 100, 549, 131, 187, 188, 88, 113, 191, 111, 193, - 194, 195, 129, 122, 129, 208, 200, 201, 113, 219, - 1395, 84, 129, 148, 84, 66, 476, 224, 128, 172, - 173, 213, 213, 234, 218, 236, 179, 132, 101, 164, - 234, 213, 234, 234, 234, 196, 920, 150, 191, 1699, - 193, 213, 680, 237, 247, 1386, 240, 1432, 201, 6, - 192, 1171, 246, 1063, 1064, 240, 1441, 1442, 1443, 1444, - 1445, 1446, 1447, 1448, 873, 1450, 235, 227, 185, 1247, - 628, 1116, 235, 91, 1694, 13, 234, 1255, 236, 10, - 155, 1259, 1505, 1261, 968, 42, 1264, 1265, 1266, 1267, - 1268, 1269, 1270, 1271, 288, 234, 1274, 236, 305, 169, - 56, 921, 1280, 288, 78, 299, 1379, 182, 215, 1382, - 180, 314, 105, 131, 672, 1571, 836, 187, 964, 150, - 1315, 13, 530, 61, 318, 232, 21, 321, 322, 323, - 976, 977, 978, 979, 980, 981, 129, 75, 112, 6, - 168, 97, 215, 1566, 39, 1568, 299, 61, 218, 969, - 223, 214, 854, 223, 116, 214, 858, 213, 365, 222, - 223, 224, 225, 222, 223, 224, 225, 237, 918, 61, - 233, 50, 210, 40, 233, 231, 246, 927, 928, 929, - 930, 931, 932, 75, 391, 214, 393, 394, 1596, 1597, - 1575, 86, 750, 222, 223, 224, 225, 64, 40, 213, - 36, 395, 396, 213, 233, 100, 124, 564, 215, 88, - 212, 106, 1620, 407, 10, 4, 223, 231, 425, 413, - 9, 139, 64, 1343, 60, 50, 15, 421, 800, 230, - 19, 36, 426, 128, 235, 1413, 234, 892, 236, 433, - 434, 813, 78, 79, 214, 439, 113, 126, 442, 443, - 220, 221, 234, 447, 236, 60, 203, 204, 461, 462, - 463, 86, 129, 88, 854, 468, 213, 228, 858, 55, - 234, 113, 236, 78, 79, 61, 112, 480, 933, 190, - 433, 1305, 920, 214, 120, 121, 439, 129, 482, 442, - 443, 222, 223, 224, 225, 13, 1494, 935, 936, 168, - 214, 126, 233, 506, 140, 508, 944, 112, 222, 223, - 224, 225, 224, 225, 50, 509, 145, 511, 71, 233, - 149, 233, 1142, 1143, 1144, 395, 396, 982, 212, 196, - 968, 230, 231, 224, 225, 140, 1514, 407, 532, 38, - 534, 40, 233, 61, 102, 539, 984, 234, 1543, 67, - 1545, 1197, 88, 13, 224, 225, 91, 75, 766, 1179, - 1180, 1181, 770, 233, 434, 64, 774, 151, 86, 234, - 778, 236, 156, 141, 782, 569, 91, 91, 786, 8, - 114, 68, 790, 167, 13, 1040, 794, 224, 225, 947, - 126, 91, 141, 177, 178, 1124, 233, 215, 68, 217, - 603, 61, 605, 606, 607, 608, 1135, 67, 141, 68, - 224, 225, 228, 224, 113, 75, 569, 201, 214, 233, - 67, 615, 147, 219, 220, 221, 222, 223, 224, 225, - 129, 625, 61, 235, 560, 561, 562, 233, 67, 633, - 36, 37, 10, 234, 638, 236, 75, 43, 21, 234, - 10, 236, 138, 171, 27, 138, 52, 86, 212, 213, - 530, 215, 235, 217, 60, 94, 39, 71, 186, 65, - 235, 111, 666, 667, 668, 669, 35, 885, 886, 137, - 91, 889, 78, 79, 234, 184, 185, 868, 869, 897, - 234, 215, 236, 89, 235, 903, 214, 867, 235, 134, - 99, 219, 220, 221, 222, 223, 224, 225, 234, 20, - 236, 171, 234, 86, 236, 233, 112, 10, 234, 1157, - 236, 230, 118, 119, 171, 235, 186, 100, 234, 234, - 236, 236, 231, 106, 235, 230, 235, 235, 234, 186, - 236, 234, 171, 236, 140, 615, 234, 143, 236, 743, - 744, 745, 746, 747, 214, 128, 234, 186, 236, 581, - 220, 221, 222, 223, 224, 225, 760, 214, 234, 234, - 236, 236, 234, 233, 236, 222, 223, 224, 225, 235, - 234, 1626, 236, 235, 235, 214, 233, 1316, 231, 214, - 219, 220, 221, 222, 223, 224, 225, 222, 223, 224, - 225, 235, 235, 797, 233, 799, 74, 236, 233, 235, - 138, 236, 819, 235, 235, 809, 212, 1272, 812, 235, - 814, 235, 1030, 231, 61, 8, 235, 74, 822, 235, - 13, 825, 74, 827, 828, 829, 830, 189, 61, 10, - 113, 835, 175, 850, 194, 839, 840, 91, 842, 53, - 122, 136, 230, 55, 848, 230, 20, 860, 113, 122, - 854, 868, 869, 86, 858, 868, 869, 118, 122, 822, - 122, 1326, 122, 867, 868, 869, 870, 830, 61, 138, - 874, 236, 876, 877, 67, 233, 55, 881, 234, 1344, - 56, 1701, 75, 13, 236, 230, 62, 187, 901, 893, - 894, 235, 212, 86, 25, 235, 235, 73, 1116, 70, - 70, 94, 94, 916, 91, 219, 82, 199, 1126, 99, - 161, 874, 219, 876, 918, 919, 91, 797, 166, 799, - 96, 219, 113, 927, 928, 929, 930, 931, 932, 234, - 236, 61, 812, 109, 766, 234, 1318, 67, 770, 235, - 1388, 1323, 774, 24, 132, 75, 778, 960, 114, 236, - 782, 127, 965, 966, 786, 236, 236, 236, 790, 55, - 964, 236, 794, 967, 112, 79, 236, 1335, 848, 235, - 219, 230, 976, 977, 978, 979, 980, 981, 171, 235, - 235, 214, 1601, 236, 1449, 235, 219, 220, 221, 222, - 223, 224, 225, 186, 603, 235, 605, 606, 607, 608, - 141, 214, 8, 231, 236, 885, 886, 13, 232, 222, - 223, 224, 225, 1017, 236, 235, 1020, 235, 235, 1023, - 233, 214, 195, 903, 235, 214, 219, 220, 221, 222, - 223, 224, 225, 222, 223, 224, 225, 235, 235, 1504, - 233, 171, 236, 236, 233, 1049, 61, 1051, 1052, 1053, - 1054, 1055, 1056, 235, 212, 61, 186, 214, 235, 1063, - 1064, 67, 219, 220, 221, 222, 223, 224, 225, 75, - 1074, 1075, 235, 1090, 1078, 1457, 233, 1244, 169, 1278, - 86, 1546, 1547, 235, 214, 1467, 235, 100, 94, 235, - 67, 1104, 222, 223, 224, 225, 235, 235, 1102, 235, - 235, 235, 235, 233, 219, 138, 235, 1572, 235, 235, - 235, 1074, 235, 214, 235, 235, 235, 1656, 219, 220, - 221, 222, 223, 224, 225, 46, 131, 138, 233, 53, - 3, 235, 233, 6, 236, 236, 236, 1017, 236, 61, + 171, 239, 6, 546, 200, 197, 183, 839, 1017, 223, + 378, 630, 25, 17, 18, 460, 20, 399, 189, 421, + 24, 885, 886, 1023, 28, 29, 30, 31, 647, 559, + 849, 1300, 962, 1469, 1470, 10, 55, 6, 483, 903, + 9, 1224, 21, 6, 1256, 66, 25, 131, 16, 679, + 55, 681, 682, 131, 45, 1049, 21, 1051, 1052, 1053, + 1054, 1055, 1056, 39, 131, 1289, 1290, 1291, 1292, 1293, + 1294, 44, 55, 55, 105, 54, 919, 527, 6, 6, + 84, 39, 39, 39, 452, 122, 56, 138, 533, 54, + 743, 744, 745, 746, 747, 5, 55, 7, 129, 40, + 76, 6, 131, 91, 39, 53, 40, 760, 191, 1551, + 1552, 63, 40, 920, 1550, 154, 240, 85, 234, 326, + 236, 100, 318, 64, 967, 321, 131, 97, 212, 66, + 580, 88, 39, 340, 44, 100, 64, 42, 18, 150, + 122, 114, 181, 131, 24, 136, 114, 8, 28, 128, + 364, 31, 38, 1595, 40, 210, 234, 84, 236, 111, + 3, 968, 213, 128, 288, 169, 78, 234, 172, 173, + 8, 1395, 176, 177, 101, 179, 180, 545, 64, 183, + 231, 549, 219, 187, 188, 113, 195, 191, 129, 193, + 194, 195, 10, 202, 168, 129, 200, 201, 150, 1411, + 112, 129, 116, 1386, 84, 234, 113, 236, 1432, 172, + 173, 224, 213, 234, 218, 234, 179, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 132, 1450, 113, 191, 234, + 193, 1063, 1064, 237, 55, 680, 240, 213, 201, 214, + 61, 1171, 246, 129, 219, 220, 221, 222, 223, 224, + 225, 234, 1116, 1247, 873, 213, 235, 213, 233, 10, + 628, 1255, 1704, 1699, 107, 1259, 235, 1261, 196, 476, + 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 213, 227, + 1274, 228, 192, 61, 288, 40, 1280, 212, 215, 169, + 21, 921, 305, 1505, 1379, 299, 223, 1382, 184, 185, + 180, 323, 1571, 50, 672, 148, 836, 187, 39, 64, + 155, 964, 50, 213, 318, 1315, 530, 321, 322, 323, + 131, 164, 213, 976, 977, 978, 979, 980, 981, 131, + 116, 231, 666, 667, 668, 669, 299, 182, 218, 969, + 231, 88, 145, 223, 130, 231, 149, 213, 86, 235, + 88, 1575, 365, 214, 1566, 86, 1568, 237, 113, 60, + 208, 222, 223, 224, 225, 231, 246, 190, 215, 100, + 217, 213, 233, 395, 129, 106, 214, 78, 391, 126, + 393, 394, 750, 50, 222, 223, 224, 225, 126, 231, + 215, 395, 396, 564, 168, 233, 214, 128, 223, 247, + 71, 124, 21, 407, 222, 223, 224, 225, 27, 413, + 215, 112, 425, 1343, 212, 233, 139, 421, 800, 1413, + 39, 88, 426, 234, 854, 236, 50, 232, 858, 433, + 434, 813, 234, 40, 236, 439, 214, 91, 442, 443, + 102, 196, 892, 447, 222, 223, 224, 225, 215, 13, + 230, 231, 854, 36, 91, 233, 858, 64, 234, 126, + 482, 91, 86, 214, 88, 232, 314, 86, 68, 67, + 433, 222, 223, 224, 225, 920, 439, 60, 482, 442, + 443, 100, 233, 933, 141, 1494, 1305, 106, 8, 511, + 935, 936, 38, 13, 40, 78, 79, 61, 230, 944, + 13, 114, 126, 235, 91, 509, 113, 511, 234, 128, + 236, 75, 1142, 1143, 1144, 395, 396, 68, 64, 214, + 1514, 141, 129, 968, 141, 220, 221, 407, 532, 112, + 534, 4, 982, 1596, 1597, 539, 9, 120, 121, 984, + 68, 61, 15, 1543, 1197, 1545, 19, 67, 61, 1179, + 1180, 1181, 766, 147, 434, 75, 770, 140, 228, 1622, + 774, 234, 75, 236, 778, 569, 86, 113, 782, 234, + 138, 236, 786, 171, 94, 224, 790, 203, 204, 947, + 794, 1124, 235, 129, 918, 10, 138, 213, 186, 235, + 1040, 214, 1135, 927, 928, 929, 930, 931, 932, 222, + 223, 224, 225, 224, 225, 234, 569, 236, 61, 10, + 233, 615, 233, 461, 462, 463, 214, 560, 561, 562, + 468, 625, 224, 225, 222, 223, 224, 225, 71, 633, + 67, 233, 480, 86, 638, 233, 235, 111, 35, 185, + 224, 225, 137, 36, 666, 667, 668, 669, 234, 233, + 530, 171, 224, 225, 212, 213, 91, 215, 506, 217, + 508, 233, 666, 667, 668, 669, 186, 60, 235, 224, + 225, 885, 886, 215, 235, 889, 868, 869, 233, 235, + 234, 99, 236, 897, 134, 78, 79, 235, 235, 903, + 867, 56, 235, 234, 214, 236, 234, 62, 236, 219, + 220, 221, 222, 223, 224, 225, 235, 234, 73, 236, + 235, 235, 1157, 233, 235, 20, 236, 82, 214, 112, + 235, 743, 744, 745, 746, 747, 222, 223, 224, 225, + 234, 96, 236, 235, 171, 615, 235, 233, 760, 743, + 744, 745, 746, 747, 109, 235, 235, 140, 603, 186, + 605, 606, 607, 608, 231, 603, 760, 605, 606, 607, + 608, 214, 127, 234, 1628, 236, 219, 220, 221, 222, + 223, 224, 225, 1316, 234, 8, 236, 214, 235, 234, + 13, 236, 234, 231, 236, 222, 223, 224, 225, 234, + 812, 236, 214, 797, 230, 799, 233, 219, 220, 221, + 222, 223, 224, 225, 10, 809, 819, 234, 812, 236, + 814, 233, 235, 234, 236, 236, 1030, 234, 822, 236, + 230, 825, 1272, 827, 828, 829, 830, 234, 61, 236, + 234, 835, 236, 74, 67, 839, 840, 850, 842, 138, + 61, 189, 75, 74, 848, 74, 10, 113, 175, 194, + 854, 91, 53, 86, 858, 868, 869, 122, 136, 822, + 55, 94, 230, 867, 868, 869, 870, 830, 230, 20, + 874, 113, 876, 877, 1706, 214, 1326, 881, 122, 122, + 219, 220, 221, 222, 223, 224, 225, 122, 122, 893, + 894, 118, 138, 233, 1344, 236, 918, 919, 236, 234, + 55, 230, 1116, 187, 212, 927, 928, 929, 930, 931, + 932, 874, 1126, 876, 918, 919, 235, 797, 25, 799, + 235, 70, 70, 927, 928, 929, 930, 931, 932, 235, + 91, 94, 812, 219, 99, 151, 1318, 161, 171, 199, + 156, 1323, 964, 1388, 91, 967, 166, 219, 219, 234, + 132, 167, 234, 186, 976, 977, 978, 979, 980, 981, + 964, 177, 178, 967, 114, 24, 236, 1335, 848, 113, + 55, 235, 976, 977, 978, 979, 980, 981, 236, 236, + 236, 214, 1601, 236, 236, 201, 219, 220, 221, 222, + 223, 224, 225, 79, 112, 141, 235, 235, 235, 1449, + 233, 231, 8, 236, 236, 885, 886, 13, 236, 235, + 235, 230, 860, 1017, 236, 232, 1020, 214, 236, 1023, + 868, 869, 235, 903, 214, 222, 223, 224, 225, 219, + 220, 221, 222, 223, 224, 225, 233, 235, 219, 236, + 236, 235, 235, 233, 235, 1049, 235, 1051, 1052, 1053, + 1054, 1055, 1056, 901, 1504, 61, 235, 235, 235, 1063, + 1064, 67, 235, 235, 235, 235, 235, 235, 916, 75, + 1074, 1075, 212, 1244, 1078, 1457, 235, 1090, 235, 235, + 86, 235, 1278, 214, 195, 1467, 61, 169, 94, 220, + 221, 222, 223, 224, 225, 214, 1546, 1547, 1102, 235, + 235, 235, 233, 222, 223, 224, 225, 235, 235, 235, + 235, 1074, 960, 100, 233, 214, 1659, 965, 966, 219, + 138, 131, 1572, 222, 223, 224, 225, 138, 46, 233, + 3, 53, 235, 6, 233, 236, 61, 1017, 236, 236, 233, 235, 234, 29, 17, 18, 236, 20, 236, 236, - 13, 24, 236, 985, 236, 28, 29, 30, 31, 236, - 992, 993, 236, 995, 996, 171, 998, 999, 236, 1001, - 1002, 224, 1004, 1005, 131, 1007, 1008, 214, 1010, 1011, - 186, 1013, 1014, 220, 221, 222, 223, 224, 225, 58, - 212, 214, 212, 1197, 171, 122, 233, 58, 61, 222, - 223, 224, 225, 235, 67, 209, 323, 235, 214, 186, - 233, 84, 75, 219, 220, 221, 222, 223, 224, 225, - 1224, 235, 1226, 86, 70, 235, 235, 233, 88, 70, - 236, 53, 94, 10, 1238, 122, 1116, 214, 172, 1243, - 212, 235, 57, 1247, 236, 222, 223, 224, 225, 236, - 236, 1255, 236, 236, 236, 1259, 233, 1261, 232, 235, - 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 235, 69, - 1274, 236, 236, 214, 1278, 1238, 1280, 236, 395, 234, - 1243, 222, 223, 224, 225, 1289, 1290, 1291, 1292, 1293, - 1294, 1308, 233, 1310, 236, 15, 169, 1679, 236, 172, - 173, 236, 59, 176, 177, 1309, 179, 180, 171, 158, - 183, 1315, 39, 236, 187, 188, 236, 236, 191, 236, + 13, 24, 236, 236, 224, 28, 29, 30, 31, 214, + 236, 177, 236, 236, 58, 171, 131, 222, 223, 224, + 225, 212, 212, 122, 58, 1197, 209, 235, 233, 195, + 186, 235, 235, 235, 235, 70, 88, 70, 53, 94, + 10, 8, 122, 1197, 172, 212, 13, 235, 61, 57, + 236, 236, 236, 235, 67, 236, 236, 236, 214, 235, + 232, 84, 75, 219, 220, 221, 222, 223, 224, 225, + 1224, 236, 1226, 86, 236, 234, 69, 233, 236, 236, + 236, 236, 236, 236, 1238, 236, 1116, 236, 236, 1243, + 236, 236, 236, 1247, 61, 236, 236, 236, 236, 15, + 67, 1255, 236, 236, 236, 1259, 1104, 1261, 75, 236, + 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 236, 86, + 1274, 59, 212, 207, 1278, 1238, 1280, 94, 158, 39, + 1243, 39, 233, 235, 160, 1289, 1290, 1291, 1292, 1293, + 1294, 235, 235, 235, 235, 1308, 169, 1310, 47, 172, + 173, 1683, 93, 176, 177, 1309, 179, 180, 171, 236, + 183, 1315, 236, 236, 187, 188, 236, 236, 191, 236, 193, 194, 195, 186, 236, 236, 236, 200, 201, 236, - 214, 236, 236, 1165, 177, 1502, 236, 1169, 222, 223, - 224, 225, 236, 236, 1224, 218, 236, 236, 236, 233, - 39, 214, 195, 212, 207, 233, 219, 220, 221, 222, - 223, 224, 225, 235, 237, 482, 1198, 240, 235, 235, - 233, 235, 160, 246, 1391, 47, 93, 235, 1617, 214, - 236, 236, 1386, 234, 219, 220, 221, 222, 223, 224, - 225, 1395, 236, 96, 511, 69, 236, 236, 236, 236, - 236, 127, 236, 236, 234, 213, 1645, 1646, 1626, 1413, - 8, 235, 106, 236, 233, 288, 77, 103, 71, 230, - 1433, 1434, 236, 235, 234, 6, 299, 236, 1432, 1309, - 236, 1670, 236, 236, 8, 95, 91, 1441, 1442, 1443, - 1444, 1445, 1446, 1447, 1448, 318, 1450, 236, 321, 322, - 323, 236, 159, 15, 113, 236, 235, 170, 212, 235, - 235, 127, 236, 236, 234, 338, 116, 4, 230, 232, - 228, 236, 228, 53, 92, 90, 0, 0, 128, 234, - 130, 354, 33, 415, 264, 135, 847, 582, 394, 825, - 1494, 1084, 142, 143, 840, 827, 146, 1081, 1281, 1609, - 1631, 1581, 1613, 1512, 1667, 1337, 1386, 157, 842, 1341, - 1514, 1092, 1516, 870, 8, 165, 869, 27, 168, 13, - 401, 14, 395, 396, 1541, 247, 319, 633, 1619, 1545, - 1649, 1646, 301, 197, 407, 1090, 1540, 1544, 188, 1543, - 413, 1545, 32, 1657, 881, 1549, 196, 197, 421, 666, - 667, 668, 669, 426, 529, 205, 1650, 1658, 1627, 416, - 433, 434, 1549, 1676, 1380, 1169, 439, 61, 354, 442, - 443, 1575, 635, 67, 447, 812, 534, 1540, 8, 530, - 194, 75, 1590, 13, 1226, -1, -1, -1, -1, -1, - -1, -1, 86, -1, 467, -1, -1, -1, 1615, -1, - 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1624, -1, -1, 1494, -1, -1, -1, -1, -1, - 1624, -1, -1, -1, -1, -1, 743, 744, 745, 746, - 747, 61, -1, -1, -1, -1, 509, 67, -1, 482, - -1, -1, -1, 760, -1, 75, -1, -1, -1, -1, - 1667, -1, -1, -1, 527, -1, 86, -1, -1, 532, - -1, 534, -1, 1676, 94, 8, 539, -1, 511, -1, - 13, -1, 1676, -1, 1678, -1, -1, 171, -1, -1, + 234, 1502, 96, 69, 127, 234, 213, 8, 235, 106, + 236, 233, 77, 71, 1224, 218, 103, 236, 230, 236, + 6, 214, 95, 234, 171, 8, 219, 220, 221, 222, + 223, 224, 225, 235, 237, 236, 236, 240, 236, 186, + 233, 91, 236, 246, 236, 159, 113, 15, 1391, 53, + 236, 1619, 1386, 235, 170, 212, 235, 235, 127, 236, + 236, 1395, 234, 90, 8, 129, 4, 214, 230, 13, + 228, 232, 219, 220, 221, 222, 223, 224, 225, 1413, + 1648, 1649, 236, 53, 1628, 288, 233, 228, 8, 236, + 234, 90, 92, 13, 234, 0, 299, 0, 1432, 1309, + 33, 264, 847, 1084, 415, 394, 1674, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 318, 1450, 61, 321, 322, + 323, 825, 582, 67, 840, 827, 1081, 1281, 1512, 1611, + 1634, 75, 1581, 842, 1615, 338, 482, 1671, 870, 869, + 1092, 61, 86, 27, 247, 116, 14, 67, 319, 1545, + 94, 354, 1621, 1652, 1544, 75, 401, 128, 633, 130, + 1494, 197, 301, 1649, 135, 511, 86, 1090, 32, 1666, + 881, 142, 143, 416, 94, 146, 1386, 1660, 529, 8, + 1514, 1629, 1516, 1653, 13, 1661, 157, 1549, 1380, 1680, + 354, 1169, 395, 396, 165, 635, 194, 168, 1541, 812, + 530, 1590, 534, 1226, 407, -1, 1540, -1, -1, 1543, + 413, 1545, -1, -1, -1, 1549, -1, 188, 421, -1, + -1, -1, -1, 426, -1, 196, 197, 171, -1, -1, + 433, 434, 61, -1, 205, -1, 439, -1, 67, 442, + 443, 1575, 186, -1, 447, -1, 75, 1540, -1, -1, + -1, 171, -1, -1, -1, 1433, 1434, 86, -1, -1, + -1, -1, -1, -1, 467, 94, 186, -1, -1, -1, + 214, 13, -1, -1, 1617, 219, 220, 221, 222, 223, + 224, 225, 8, -1, 1494, -1, -1, 13, -1, 233, + 234, -1, 1626, -1, 214, -1, -1, -1, -1, 219, + 220, 221, 222, 223, 224, 225, 509, -1, -1, -1, + -1, -1, -1, 233, -1, -1, 236, -1, -1, 61, + 666, 667, 668, 669, 527, 67, -1, -1, 1671, 532, + -1, 534, 1666, 75, -1, 61, 539, -1, -1, -1, + -1, 67, 171, -1, 86, -1, 1680, -1, 1682, 75, + 8, -1, -1, 11, -1, 13, -1, 186, -1, -1, + 86, -1, -1, -1, -1, -1, 569, -1, 94, -1, + -1, -1, 1706, 1666, -1, -1, -1, 580, -1, -1, + -1, -1, -1, 41, -1, 214, -1, -1, -1, -1, + 219, 220, 221, 222, 223, 224, 225, 743, 744, 745, + 746, 747, -1, 61, 233, -1, -1, 236, -1, 67, + -1, -1, 615, -1, 760, -1, -1, 75, 1628, -1, + -1, -1, 625, -1, -1, -1, -1, -1, 86, 171, + 633, -1, -1, -1, -1, 638, 94, -1, -1, -1, + -1, -1, -1, -1, 186, 171, -1, -1, 1626, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 186, -1, -1, 812, 569, 1701, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 580, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, - 214, -1, -1, -1, 67, 219, 220, 221, 222, 223, - 224, 225, 75, -1, -1, -1, -1, -1, -1, 233, - 234, 171, 615, 86, -1, -1, 1626, -1, -1, -1, - -1, 94, 625, -1, -1, 116, 186, -1, -1, -1, - 633, -1, -1, -1, -1, 638, -1, -1, -1, 130, - -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, - -1, 142, 143, -1, 214, 146, -1, -1, -1, 219, - 220, 221, 222, 223, 224, 225, 157, -1, -1, -1, - -1, 918, 919, 233, 165, -1, 236, 168, -1, -1, - 927, 928, 929, 930, 931, 932, -1, -1, -1, -1, - -1, -1, -1, 666, 667, 668, 669, 188, 171, 190, - -1, -1, -1, -1, -1, 196, 197, -1, -1, -1, - -1, -1, -1, 186, -1, -1, -1, 964, -1, -1, - 967, -1, 8, -1, -1, -1, -1, 13, -1, 976, - 977, 978, 979, 980, 981, -1, -1, -1, -1, -1, + 186, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 214, 131, -1, -1, -1, 219, 220, 221, + 222, 223, 224, 225, -1, -1, -1, -1, 214, 835, + -1, 233, -1, 219, 220, 221, 222, 223, 224, 225, + -1, -1, 1680, -1, -1, -1, -1, 233, 234, -1, + -1, -1, -1, 171, -1, -1, -1, -1, -1, -1, + -1, 395, -1, -1, -1, -1, -1, -1, 186, -1, + -1, -1, -1, -1, 8, -1, -1, -1, -1, 13, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 214, -1, -1, -1, + -1, 219, 220, 221, 222, 223, 224, 225, -1, -1, + -1, -1, 918, 919, -1, 233, 581, -1, -1, -1, + -1, 927, 928, 929, 930, 931, 932, 61, -1, -1, + 8, -1, 10, 67, 797, 13, 799, -1, -1, 13, + -1, 75, -1, -1, -1, -1, 809, -1, -1, 812, + -1, 814, 86, -1, -1, -1, -1, -1, 964, 822, + 94, 967, 825, -1, 827, 828, 829, 830, -1, -1, + 976, 977, 978, 979, 980, 981, 839, 840, -1, 842, + -1, -1, -1, 61, -1, 848, -1, 61, -1, 67, + -1, 854, -1, 67, -1, 858, -1, 75, -1, -1, + -1, 75, -1, -1, 867, 868, 869, 870, 86, -1, + -1, 874, 13, 876, 877, -1, 94, -1, 881, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 892, + 893, 894, -1, -1, -1, -1, -1, 171, -1, -1, + -1, -1, -1, 1049, -1, 1051, 1052, 1053, 1054, 1055, + 1056, -1, 186, -1, -1, -1, -1, -1, -1, -1, + 61, -1, -1, -1, -1, -1, 67, -1, -1, 1075, + 933, -1, -1, -1, 75, -1, -1, -1, -1, -1, + 214, -1, -1, -1, -1, 219, 220, 221, 222, 223, + 224, 225, -1, 171, -1, -1, -1, 171, -1, 233, + 234, 766, -1, -1, -1, 770, -1, -1, 186, 774, + -1, -1, 186, 778, -1, -1, -1, 782, -1, 982, + -1, 786, 985, -1, -1, 790, -1, -1, -1, 794, + -1, -1, -1, -1, -1, -1, 214, -1, -1, -1, + 214, 219, 220, 221, 222, 223, 224, 225, 222, 223, + 224, 225, -1, -1, 1017, 233, -1, 1020, -1, 233, + 1023, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 171, -1, -1, -1, -1, -1, -1, 1040, -1, -1, + -1, -1, -1, -1, -1, 186, -1, 341, -1, -1, + -1, 1197, -1, -1, -1, -1, -1, -1, -1, -1, + 1063, 1064, 356, -1, -1, 359, -1, 361, 362, 363, + 364, 1074, -1, 214, -1, 1078, -1, -1, 219, 220, + 221, 222, 223, 224, 225, -1, -1, -1, -1, -1, + -1, -1, 233, -1, -1, -1, -1, -1, -1, 1102, + -1, 1247, -1, -1, 13, -1, -1, -1, -1, 1255, + -1, -1, -1, 1259, -1, 1261, -1, -1, 1264, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, -1, -1, 1274, -1, + -1, -1, -1, -1, 1280, -1, -1, 431, 812, -1, + -1, -1, -1, 1289, 1290, 1291, 1292, 1293, 1294, -1, + -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, + -1, 835, 456, -1, -1, -1, 75, -1, -1, 1315, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 985, -1, -1, -1, -1, 479, -1, 992, 993, -1, + 995, 996, 486, 998, 999, 1198, 1001, 1002, -1, 1004, + 1005, 495, 1007, 1008, -1, 1010, 1011, -1, 1013, 1014, + -1, -1, -1, -1, -1, -1, 510, -1, -1, -1, + 514, 1224, 516, 1226, -1, 519, 520, 521, 522, 523, + 524, 525, 526, -1, -1, 1238, -1, -1, -1, -1, + 1243, -1, -1, -1, -1, -1, -1, -1, -1, 1395, + 8, -1, -1, 1256, -1, 13, -1, -1, -1, -1, + -1, -1, 171, -1, -1, -1, -1, 1413, -1, 1272, + -1, -1, -1, -1, -1, 1278, -1, 186, -1, -1, + -1, -1, -1, -1, -1, -1, 1432, -1, -1, -1, + -1, -1, -1, -1, -1, 1441, 1442, 1443, 1444, 1445, + 1446, 1447, 1448, 61, 1450, 214, 1309, -1, -1, 67, + -1, 985, 1315, 222, 223, 224, 225, 75, -1, -1, + -1, -1, -1, 1326, 233, -1, -1, -1, 86, -1, + -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, + 634, 1344, -1, -1, -1, 8, -1, -1, -1, -1, + 13, -1, 1355, -1, -1, -1, -1, -1, -1, -1, + 1165, -1, -1, -1, 1169, -1, -1, -1, 1514, -1, + -1, -1, -1, -1, -1, 1049, -1, 1051, 1052, 1053, + 1054, 1055, 1056, 1386, -1, 679, -1, 681, 682, -1, + -1, -1, 55, 1198, -1, 689, -1, -1, 61, -1, + -1, 1075, 1405, -1, 67, -1, -1, -1, 1411, -1, + -1, -1, 75, 171, -1, -1, -1, -1, -1, -1, + 8, -1, -1, 86, 482, 13, -1, -1, 186, 1575, + -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 8, -1, 1449, -1, -1, 13, + -1, -1, -1, 511, 748, -1, 214, -1, -1, -1, + -1, 219, 220, 221, 222, 223, 224, 225, 762, 227, + -1, -1, 766, 61, 232, 233, 770, -1, -1, 67, + 774, -1, -1, -1, 778, 1488, -1, 75, 782, -1, + -1, 1494, 786, -1, -1, -1, 790, 61, 86, -1, + 794, 1504, 1505, 67, -1, -1, 94, -1, 171, 1512, + -1, 75, -1, 1516, -1, -1, -1, -1, -1, -1, + -1, -1, 86, 186, 1198, -1, -1, -1, -1, 117, + 94, -1, 1337, -1, -1, -1, 1341, 1540, -1, -1, + 1543, -1, 1545, 1546, 1547, -1, 1549, -1, -1, -1, -1, 214, -1, -1, -1, -1, 219, 220, 221, 222, + 223, 224, 225, 1566, -1, 1568, -1, -1, -1, 1572, + 233, -1, -1, 1247, -1, -1, -1, -1, -1, -1, + -1, 1255, 1256, 171, -1, 1259, -1, 1261, -1, -1, + 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 186, -1, + 1274, -1, 896, -1, -1, -1, 1280, 171, 666, 667, + 668, 669, 906, -1, -1, 1289, 1290, 1291, 1292, 1293, + 1294, 915, 186, 1626, -1, -1, 214, 921, -1, -1, + -1, 219, 220, 221, 222, 223, 224, 225, -1, -1, + -1, 8, -1, 10, -1, 233, 13, -1, -1, -1, + 214, -1, 946, -1, -1, 219, 220, 221, 222, 223, + 224, 225, -1, 1666, -1, -1, -1, -1, 232, 233, + -1, -1, -1, -1, -1, 969, -1, 1680, -1, 1682, + -1, 1355, -1, -1, -1, 743, 744, 745, 746, 747, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + 67, -1, 760, 1706, -1, -1, -1, -1, 75, -1, + -1, -1, -1, -1, 116, -1, -1, -1, -1, 86, + -1, 1395, -1, -1, -1, 8, -1, 94, 130, -1, + 13, 1405, -1, 135, -1, -1, -1, 1411, -1, 1413, + 142, 143, -1, -1, 146, -1, -1, -1, 8, -1, + -1, -1, -1, 13, -1, 157, -1, -1, 1432, -1, + -1, -1, -1, 165, -1, -1, 168, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, -1, 1450, 835, 61, -1, + -1, -1, -1, -1, 67, -1, 188, -1, 190, -1, + -1, -1, 75, -1, 196, 197, -1, -1, -1, -1, + -1, 61, -1, 86, 171, -1, -1, 67, -1, -1, + -1, 94, -1, -1, 1488, 75, -1, -1, -1, 186, + -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, + -1, 1505, -1, -1, 94, -1, -1, -1, 1512, -1, + 1514, -1, -1, -1, -1, -1, -1, 214, 1142, 1143, + 1144, -1, 219, 220, 221, 222, 223, 224, 225, -1, + 918, 919, -1, -1, -1, -1, 233, -1, -1, 927, + 928, 929, 930, 931, 932, 1169, -1, -1, -1, -1, + -1, 13, -1, -1, -1, 1179, 1180, 1181, 171, -1, + -1, -1, 1566, -1, 1568, -1, -1, -1, -1, -1, + -1, 1575, -1, 186, -1, -1, 964, -1, -1, 967, + -1, 171, -1, -1, -1, -1, -1, -1, 976, 977, + 978, 979, 980, 981, -1, -1, 186, 985, -1, 61, + -1, 214, -1, -1, -1, 67, 219, 220, 221, 222, + 223, 224, 225, 75, -1, -1, -1, -1, -1, -1, + 233, -1, -1, -1, 214, -1, -1, -1, -1, 219, + 220, 221, 222, 223, 224, 225, -1, -1, -1, 3, + 4, -1, -1, 233, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, + -1, 1049, -1, 1051, 1052, 1053, 1054, 1055, 1056, -1, + -1, -1, 36, 37, -1, -1, -1, -1, -1, 43, + -1, -1, -1, -1, -1, -1, -1, 1075, 52, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, + -1, -1, -1, -1, -1, -1, 70, 71, -1, 171, + -1, -1, -1, 77, 78, 79, -1, 81, -1, 83, + 84, -1, -1, -1, 186, 89, 90, -1, 92, 93, + -1, -1, -1, -1, -1, -1, -1, 101, 102, -1, + -1, 105, -1, 107, -1, -1, -1, 111, 112, -1, + -1, -1, 214, -1, 118, 119, 120, 121, 220, 221, + 222, 223, 224, 225, -1, 1389, -1, 13, -1, 133, + -1, 233, -1, -1, -1, -1, 140, 141, 142, 143, + -1, 145, 146, 8, 148, 149, -1, 151, 13, -1, + 154, 155, 156, 157, 158, -1, 160, 161, -1, -1, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 1197, + 1198, 175, -1, 177, 178, 61, -1, 181, 182, -1, + 184, 67, 186, 187, 188, 189, 190, 191, 192, 75, + 194, 195, 196, 197, 198, -1, 61, 201, 202, 203, + 204, 205, 67, -1, -1, 209, -1, 211, 212, -1, + 75, -1, -1, -1, -1, 8, -1, -1, -1, 1247, + 13, 86, -1, -1, -1, -1, -1, 1255, 1256, -1, + -1, 1259, 236, 1261, -1, -1, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, -1, -1, 1274, -1, -1, -1, + -1, -1, 1280, -1, -1, -1, -1, -1, -1, -1, + -1, 1289, 1290, 1291, 1292, 1293, 1294, -1, 61, -1, + -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, + -1, -1, 75, -1, -1, 171, -1, -1, 36, 37, + -1, -1, -1, 86, -1, 43, -1, -1, -1, -1, + 186, -1, -1, -1, 52, -1, 171, -1, -1, -1, + -1, -1, 60, -1, -1, -1, -1, 65, -1, -1, + -1, 186, -1, -1, -1, -1, -1, 1355, 214, -1, + 78, 79, -1, 219, 220, 221, 222, 223, 224, 225, + 1604, 89, -1, -1, -1, -1, -1, 233, -1, 214, + -1, -1, -1, -1, 219, 220, 221, 222, 223, 224, + 225, 1625, -1, -1, 112, -1, -1, 1395, 233, -1, + 118, 119, -1, -1, -1, -1, -1, 1405, 171, -1, + -1, -1, -1, 1411, -1, 1413, -1, -1, -1, -1, + -1, -1, 140, 186, -1, 143, -1, 1661, -1, -1, + -1, -1, -1, -1, 1432, -1, -1, -1, -1, -1, + -1, -1, -1, 1441, 1442, 1443, 1444, 1445, 1446, 1447, + 1448, 214, 1450, -1, -1, -1, 219, 220, 221, 222, 223, 224, 225, -1, -1, -1, -1, -1, -1, -1, - 233, -1, -1, 236, -1, -1, -1, -1, -1, -1, - 743, 744, 745, 746, 747, 61, -1, -1, -1, -1, - -1, 67, -1, -1, -1, -1, -1, 760, -1, 75, - -1, -1, -1, -1, 797, -1, 799, -1, -1, -1, - 86, -1, -1, -1, -1, -1, 809, -1, 94, 812, - 8, 814, -1, -1, -1, 13, -1, -1, -1, 822, - -1, -1, 825, -1, 827, 828, 829, 830, -1, -1, - -1, -1, -1, -1, -1, -1, 839, 840, -1, 842, - -1, -1, 323, -1, -1, 848, -1, -1, -1, -1, - -1, 854, -1, -1, -1, 858, -1, 13, -1, -1, - -1, -1, 835, 61, 867, 868, 869, 870, -1, 67, - -1, 874, -1, 876, 877, -1, -1, 75, 881, -1, - -1, -1, -1, -1, -1, 171, -1, -1, 86, 892, - 893, 894, -1, -1, -1, -1, 94, -1, -1, -1, - 186, -1, -1, -1, -1, 61, -1, 8, -1, -1, - -1, 67, 13, -1, 395, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, -1, -1, -1, 214, -1, - 933, -1, -1, 219, 220, 221, 222, 223, 224, 225, - -1, -1, -1, -1, -1, 918, 919, 233, 234, -1, - 1197, -1, -1, -1, 927, 928, 929, 930, 931, 932, - 61, -1, -1, -1, -1, -1, 67, -1, -1, -1, - -1, -1, -1, 171, 75, -1, -1, -1, -1, 982, - -1, -1, 985, -1, -1, 86, -1, -1, 186, -1, - -1, 964, -1, 94, 967, -1, -1, -1, -1, -1, - -1, -1, -1, 976, 977, 978, 979, 980, 981, -1, - -1, -1, -1, -1, 1017, 171, 214, 1020, -1, -1, - 1023, 219, 220, 221, 222, 223, 224, 225, -1, -1, - 186, 8, -1, -1, 11, 233, 13, 1040, 236, -1, + 233, -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, 214, -1, - 1063, 1064, -1, -1, 41, -1, 222, 223, 224, 225, - 171, 1074, -1, -1, -1, 1078, 1049, 233, 1051, 1052, - 1053, 1054, 1055, 1056, 61, 186, -1, -1, -1, -1, - 67, -1, -1, -1, -1, -1, -1, -1, 75, 1102, - -1, -1, 1075, -1, -1, -1, -1, -1, -1, 86, - -1, -1, -1, 214, -1, -1, -1, 94, 219, 220, - 221, 222, 223, 224, 225, -1, -1, -1, -1, -1, - -1, -1, 233, 234, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 131, -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, - 341, -1, -1, -1, 171, 1198, -1, -1, -1, 8, - -1, -1, -1, -1, 13, 356, -1, -1, 359, 186, - 361, 362, 363, 364, -1, -1, -1, -1, -1, -1, - -1, 1224, -1, 1226, 1197, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1238, -1, 214, -1, -1, - 1243, -1, 219, 220, 221, 222, 223, 224, 225, -1, - -1, -1, 61, 1256, -1, -1, 233, -1, 67, -1, - -1, -1, -1, -1, -1, -1, 75, -1, -1, 1272, - -1, -1, -1, -1, 1247, 1278, -1, 86, -1, -1, - 431, -1, 1255, -1, -1, 94, 1259, -1, 1261, -1, - -1, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, -1, - -1, 1274, -1, -1, -1, 456, 1309, 1280, -1, -1, - -1, -1, 1315, -1, -1, -1, 1289, 1290, 1291, 1292, - 1293, 1294, -1, 1326, -1, -1, -1, -1, 479, -1, - -1, 812, -1, -1, -1, 486, -1, -1, -1, -1, - -1, 1344, 1315, -1, 495, -1, -1, -1, -1, -1, - -1, -1, 1355, -1, 835, -1, -1, -1, -1, 510, - -1, -1, 171, 514, -1, 516, -1, -1, 519, 520, - 521, 522, 523, 524, 525, 526, -1, 186, -1, -1, - -1, -1, -1, 1386, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 482, 1405, -1, -1, 214, -1, -1, 1411, -1, - 219, 220, 221, 222, 223, 224, 225, -1, 227, -1, - -1, -1, 1395, 232, 233, -1, -1, -1, -1, -1, - 511, -1, -1, -1, -1, -1, 8, -1, 10, -1, - 1413, 13, -1, -1, -1, -1, 1449, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1432, - -1, -1, -1, -1, -1, -1, -1, -1, 1441, 1442, - 1443, 1444, 1445, 1446, 1447, 1448, -1, 1450, -1, -1, - -1, -1, -1, 634, -1, 1488, -1, -1, -1, 61, - -1, 1494, -1, -1, -1, 67, -1, -1, -1, -1, - -1, 1504, 1505, 75, 985, -1, -1, -1, -1, 1512, - -1, -1, -1, 1516, 86, -1, -1, -1, -1, -1, - -1, -1, 94, -1, -1, -1, -1, -1, 679, -1, - 681, 682, -1, -1, -1, -1, -1, 1540, 689, -1, - 1543, 1514, 1545, 1546, 1547, -1, 1549, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1566, -1, 1568, -1, -1, 1049, 1572, - 1051, 1052, 1053, 1054, 1055, 1056, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 666, 667, 668, 669, -1, - -1, -1, -1, -1, 1075, -1, -1, 748, -1, 171, - -1, -1, 1575, -1, -1, -1, -1, -1, -1, -1, - -1, 762, -1, -1, 186, 766, -1, -1, -1, 770, - -1, 1624, -1, 774, -1, -1, -1, 778, 8, -1, - -1, 782, -1, 13, -1, 786, -1, -1, -1, 790, - -1, -1, 214, 794, -1, -1, -1, 219, 220, 221, - 222, 223, 224, 225, 8, -1, -1, -1, -1, 13, - -1, 233, 743, 744, 745, 746, 747, -1, -1, -1, - -1, -1, -1, 1676, -1, 1678, -1, -1, -1, 760, - -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, - -1, -1, -1, -1, -1, 75, -1, -1, 1701, -1, - -1, 55, -1, -1, -1, -1, 86, 61, -1, -1, - -1, -1, -1, 67, 94, -1, -1, 1198, -1, -1, - -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 86, -1, -1, -1, -1, 117, -1, -1, - 94, -1, -1, -1, -1, 896, -1, -1, -1, -1, - -1, -1, -1, -1, 835, 906, -1, -1, -1, -1, - -1, -1, -1, -1, 915, -1, 1247, -1, -1, -1, - 921, -1, -1, -1, 1255, 1256, -1, -1, 1259, -1, - 1261, -1, -1, 1264, 1265, 1266, 1267, 1268, 1269, 1270, - 1271, 171, -1, 1274, -1, 946, -1, -1, -1, 1280, - -1, -1, -1, -1, -1, -1, 186, -1, 1289, 1290, - 1291, 1292, 1293, 1294, -1, -1, -1, 171, 969, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 186, -1, 214, -1, -1, 918, 919, 219, - 220, 221, 222, 223, 224, 225, 927, 928, 929, 930, - 931, 932, -1, 233, -1, -1, 8, -1, -1, -1, - 214, 13, -1, -1, -1, 219, 220, 221, 222, 223, - 224, 225, -1, -1, 1355, -1, -1, -1, -1, 233, - -1, -1, -1, 964, -1, -1, 967, -1, -1, -1, - -1, -1, -1, -1, -1, 976, 977, 978, 979, 980, - 981, -1, -1, -1, 985, -1, -1, -1, -1, 61, - -1, -1, -1, -1, 1395, 67, -1, -1, -1, -1, - -1, -1, -1, 75, 1405, -1, -1, -1, -1, -1, - 1411, -1, 1413, -1, 86, -1, 8, -1, 10, -1, - -1, 13, 94, -1, -1, -1, -1, -1, -1, -1, - -1, 1432, -1, -1, -1, -1, -1, -1, -1, -1, - 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1049, 1450, - 1051, 1052, 1053, 1054, 1055, 1056, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, - -1, 1142, 1143, 1144, 1075, 67, -1, -1, -1, -1, - -1, -1, -1, 75, -1, -1, -1, 1488, -1, -1, - -1, -1, -1, -1, 86, -1, -1, -1, 1169, 171, - -1, -1, 94, -1, 1505, -1, -1, -1, 1179, 1180, - 1181, 1512, -1, 1514, 186, -1, -1, 8, -1, -1, - -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, -1, -1, 13, -1, - -1, -1, 214, -1, -1, -1, -1, 219, 220, 221, - 222, 223, 224, 225, -1, -1, -1, 8, -1, -1, - 232, 233, 13, -1, -1, 1566, -1, 1568, -1, -1, - 61, -1, -1, -1, 1575, -1, 67, -1, -1, 171, - -1, -1, -1, -1, 75, -1, 61, -1, -1, -1, - -1, -1, 67, -1, 186, 86, 1197, 1198, -1, -1, - 75, -1, -1, 94, -1, -1, -1, -1, -1, -1, - 61, 86, -1, -1, -1, -1, 67, -1, -1, 94, - -1, -1, 214, -1, 75, -1, -1, 219, 220, 221, - 222, 223, 224, 225, -1, 86, -1, -1, -1, -1, - -1, 233, -1, -1, -1, -1, 1247, -1, 8, -1, - -1, -1, -1, 13, 1255, 1256, -1, -1, 1259, -1, - 1261, -1, -1, 1264, 1265, 1266, 1267, 1268, 1269, 1270, - 1271, -1, -1, 1274, -1, -1, -1, -1, -1, 1280, - 171, -1, -1, -1, -1, -1, -1, -1, 1289, 1290, - 1291, 1292, 1293, 1294, -1, 186, 171, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, - -1, 186, -1, -1, -1, 75, -1, -1, 1389, -1, - 171, -1, -1, 214, -1, -1, 86, -1, 219, 220, - 221, 222, 223, 224, 225, 186, -1, -1, -1, 214, - -1, -1, 233, -1, 219, 220, 221, 222, 223, 224, - 225, -1, -1, -1, 1355, -1, -1, -1, 233, -1, - -1, -1, -1, 214, -1, -1, -1, -1, 219, 220, - 221, 222, 223, 224, 225, -1, -1, -1, -1, -1, - -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1395, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1405, -1, -1, -1, -1, -1, - 1411, 171, 1413, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 186, -1, -1, -1, - -1, 1432, -1, -1, -1, -1, -1, -1, -1, -1, - 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, -1, 1450, - -1, -1, -1, -1, 214, -1, -1, -1, -1, 219, - 220, 221, 222, 223, 224, 225, -1, -1, -1, -1, - -1, -1, -1, 233, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1488, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1505, -1, -1, -1, -1, -1, - -1, 1512, -1, 1514, -1, 3, 4, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, - 18, 19, 20, 1604, -1, 23, -1, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, - -1, -1, 1623, -1, -1, 43, -1, -1, -1, -1, - 48, 49, 50, -1, 52, 1566, -1, 1568, -1, -1, - -1, -1, 60, -1, 1575, 63, -1, 65, -1, -1, - -1, -1, 70, 71, -1, -1, -1, 1658, -1, 77, - 78, 79, -1, 81, -1, 83, 84, -1, 86, 87, - 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, - 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, - -1, -1, -1, 111, 112, -1, -1, 115, -1, -1, - 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, - -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, - -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, - 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, - 158, -1, 160, 161, -1, -1, 164, 165, 166, 167, - 168, 169, 170, 171, 172, -1, -1, 175, -1, 177, - 178, -1, 180, 181, 182, -1, 184, -1, 186, 187, - 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, - 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, - -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, - -1, -1, -1, -1, -1, 223, 224, -1, 226, 227, - 228, 3, 4, -1, -1, -1, -1, 235, 236, -1, - -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, + 1488, -1, -1, -1, 212, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3, 4, -1, 1505, -1, -1, + -1, -1, -1, -1, 1512, -1, 1514, -1, 17, 18, + 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, + -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, + 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 63, -1, 65, -1, 1566, -1, + 1568, 70, 71, -1, -1, -1, -1, 1575, 77, 78, + 79, -1, 81, -1, 83, 84, -1, 86, 87, 88, + 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, + -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, + -1, -1, 111, 112, -1, -1, 115, -1, -1, 118, + 119, 120, 121, -1, -1, -1, 125, 126, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, + 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, + -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, + 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, + -1, 180, 181, 182, -1, 184, -1, 186, 187, 188, + 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, + 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, + -1, -1, -1, -1, 223, 224, -1, 226, 227, 228, + 3, 4, -1, -1, -1, -1, 235, 236, -1, -1, + -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, + 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, + 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, + 83, 84, -1, 86, 87, 88, 89, 90, -1, 92, + 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, + -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, + 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, + 223, 3, 4, 226, 227, 228, -1, -1, -1, -1, + -1, -1, 235, 236, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, @@ -3580,7 +3584,119 @@ static const short yycheck[] = { 3, 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, 223, 3, 4, 226, 227, 228, -1, -1, -1, - -1, -1, -1, 235, 236, -1, 17, 18, 19, 20, + -1, -1, -1, 235, 236, -1, -1, 18, 19, 20, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, + -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 81, -1, 83, 84, -1, -1, -1, -1, 89, 90, + -1, 92, 93, -1, -1, -1, -1, -1, -1, -1, + 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, + 111, 112, -1, -1, -1, -1, -1, 118, 119, 120, + 121, -1, -1, -1, -1, 126, -1, -1, -1, 130, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, + 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, + 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, -1, -1, 175, -1, 177, 178, -1, -1, + 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, + 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, + 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + -1, -1, 223, 3, 4, 226, 227, 228, -1, -1, + -1, -1, -1, -1, 235, 236, -1, -1, 18, 19, + 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 36, 37, -1, -1, + -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, + 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, + 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, + -1, 81, -1, 83, 84, -1, 86, -1, 88, 89, + 90, -1, 92, 93, -1, -1, -1, -1, -1, -1, + -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, + -1, 111, 112, -1, -1, -1, -1, -1, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, + 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, + -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, + 160, 161, -1, -1, 164, 165, 166, 167, 168, 169, + 170, 171, 172, -1, -1, 175, -1, 177, 178, -1, + -1, 181, 182, -1, 184, -1, 186, 187, 188, 189, + 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, + -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, + -1, -1, -1, 223, -1, -1, 226, 227, 228, 3, + 4, -1, -1, -1, -1, 235, 236, -1, -1, -1, + 14, -1, -1, 17, 18, 19, 20, -1, -1, 23, + -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, + -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, + -1, 55, -1, -1, -1, -1, 60, -1, -1, 63, + -1, 65, -1, -1, -1, -1, 70, 71, 72, -1, + -1, -1, -1, 77, 78, 79, -1, 81, -1, 83, + 84, -1, 86, 87, 88, 89, 90, -1, 92, 93, + -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, + -1, 105, -1, 107, -1, -1, -1, 111, 112, -1, + -1, 115, -1, -1, 118, 119, 120, 121, -1, 123, + -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, + -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, + -1, 145, 146, -1, 148, 149, -1, 151, -1, -1, + 154, 155, 156, 157, 158, -1, 160, 161, -1, -1, + 164, 165, 166, 167, 168, 169, 170, 171, 172, -1, + -1, 175, -1, 177, 178, -1, 180, 181, 182, -1, + 184, -1, 186, 187, 188, 189, 190, 191, 192, -1, + 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, + 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, -1, -1, -1, -1, -1, 223, + -1, -1, 226, 227, 228, 3, 4, -1, -1, -1, + -1, 235, -1, -1, -1, -1, 14, -1, -1, 17, + 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, + -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, + 48, 49, 50, -1, 52, -1, -1, 55, -1, -1, + -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, + -1, -1, 70, 71, 72, -1, -1, -1, -1, 77, + 78, 79, -1, 81, -1, 83, 84, -1, 86, 87, + 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, + 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, + -1, -1, -1, 111, 112, -1, -1, 115, -1, -1, + 118, 119, 120, 121, -1, 123, -1, 125, 126, -1, + -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, + 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, + 158, -1, 160, 161, -1, -1, 164, 165, 166, 167, + 168, 169, 170, 171, 172, -1, -1, 175, -1, 177, + 178, -1, 180, 181, 182, -1, 184, -1, 186, 187, + 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, + 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + -1, -1, -1, -1, -1, 223, -1, -1, 226, 227, + 228, 3, 4, -1, -1, -1, -1, 235, -1, -1, + -1, -1, 14, -1, -1, 17, 18, 19, 20, -1, + -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, + 52, -1, -1, 55, -1, -1, -1, -1, 60, -1, + -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, + 72, -1, -1, -1, -1, 77, 78, 79, -1, 81, + -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, + -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, + -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, + -1, 223, 3, 4, 226, 227, 228, -1, -1, -1, + -1, -1, -1, 235, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, @@ -3601,228 +3717,7 @@ static const short yycheck[] = { 3, 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, - -1, -1, 223, 3, 4, 226, 227, 228, -1, -1, - -1, -1, -1, -1, 235, 236, -1, -1, 18, 19, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 31, 32, 33, 34, -1, 36, 37, -1, -1, - -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, - 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, - 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, - -1, 81, -1, 83, 84, -1, -1, -1, -1, 89, - 90, -1, 92, 93, -1, -1, -1, -1, -1, -1, - -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, - -1, 111, 112, -1, -1, -1, -1, -1, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, - 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, - -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, - 160, 161, -1, -1, 164, 165, 166, 167, 168, 169, - 170, 171, 172, -1, -1, 175, -1, 177, 178, -1, - -1, 181, 182, -1, 184, -1, 186, 187, 188, 189, - 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, - -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, - -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, - -1, -1, -1, 223, 3, 4, 226, 227, 228, -1, - -1, -1, -1, -1, -1, 235, 236, -1, -1, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, - -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, - -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, - 79, -1, 81, -1, 83, 84, -1, 86, -1, 88, - 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, - -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, - -1, -1, 111, 112, -1, -1, -1, -1, -1, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, - 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, - -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, - 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, - -1, -1, 181, 182, -1, 184, -1, 186, 187, 188, - 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, - 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, - 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, - -1, -1, 3, 4, 223, -1, -1, 226, 227, 228, - -1, -1, -1, -1, -1, -1, 235, 236, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 36, 37, -1, -1, -1, - -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, - -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, - 81, -1, 83, 84, -1, -1, -1, -1, 89, 90, - -1, 92, 93, -1, -1, -1, -1, -1, -1, -1, - 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, - 111, 112, -1, -1, -1, -1, -1, 118, 119, 120, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, - 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, - 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, - 171, 172, -1, -1, 175, -1, 177, 178, -1, -1, - 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, - 191, 192, -1, 194, 195, 196, 197, 198, 3, 4, - 201, 202, 203, 204, 205, -1, -1, -1, 209, 14, - 211, 212, 17, 18, 19, 20, -1, -1, 23, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - -1, 36, 37, -1, -1, 236, -1, -1, 43, -1, - -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, - 55, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, -1, 70, 71, 72, -1, -1, - -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, - -1, 86, 87, 88, 89, 90, -1, 92, 93, -1, - -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, - 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, - 115, -1, -1, 118, 119, 120, 121, -1, 123, -1, - 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, - 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, - 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, - 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, - 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, - -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, - 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, - 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, - 215, 216, 217, -1, -1, -1, -1, -1, 223, -1, - -1, 226, 227, 228, 3, 4, -1, -1, -1, -1, - 235, -1, -1, -1, -1, 14, -1, -1, 17, 18, - 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, - -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, - 49, 50, -1, 52, -1, -1, 55, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - -1, 70, 71, 72, -1, -1, -1, -1, 77, 78, - 79, -1, 81, -1, 83, 84, -1, 86, 87, 88, - 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, - -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, - -1, -1, 111, 112, -1, -1, 115, -1, -1, 118, - 119, 120, 121, -1, 123, -1, 125, 126, -1, -1, - -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, - 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, - -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, - 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, - -1, 180, 181, 182, -1, 184, -1, 186, 187, 188, - 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, - 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, - 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, - -1, -1, -1, -1, 223, -1, -1, 226, 227, 228, - 3, 4, -1, -1, -1, -1, 235, -1, -1, -1, - -1, 14, -1, -1, 17, 18, 19, 20, -1, -1, - 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, - -1, -1, 55, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, -1, 70, 71, 72, - -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, - 83, 84, -1, 86, 87, 88, 89, 90, -1, 92, - 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, - 123, -1, 125, 126, -1, -1, -1, 130, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, - 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, - 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, - 223, 3, 4, 226, 227, 228, -1, -1, -1, -1, - -1, -1, 235, -1, -1, 17, 18, 19, 20, -1, - -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, - 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, - -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, - 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, - -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, - -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, - -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, - 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, - 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, - 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, - -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, - -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, - 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, - -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, - -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, - 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, - 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, - 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, - 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, - 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, - -1, 223, 224, -1, 226, 227, 228, -1, 3, 4, - -1, 6, -1, 235, 9, -1, -1, -1, -1, -1, - -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, - -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, - -1, 86, 87, -1, 89, 90, -1, 92, 93, -1, - -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, - 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, - 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, - 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, - 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, - 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, - 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, - 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, - -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, - 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, - 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, - 215, 216, 217, -1, -1, -1, -1, -1, 223, -1, - -1, 226, 227, 228, -1, 3, 4, -1, 6, -1, - 235, 9, -1, -1, -1, -1, -1, -1, -1, 17, - 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, - -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, - 48, 49, 50, -1, 52, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, - -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, - 78, 79, -1, 81, -1, 83, 84, -1, 86, 87, - -1, 89, 90, -1, 92, 93, -1, -1, -1, -1, - 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, - -1, -1, -1, 111, 112, -1, -1, 115, -1, -1, - 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, - -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, - -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, - 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, - 158, -1, 160, 161, -1, -1, 164, 165, 166, 167, - 168, 169, 170, 171, 172, -1, -1, 175, -1, 177, - 178, -1, 180, 181, 182, -1, 184, -1, 186, 187, - 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, - 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, - -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, - -1, -1, -1, -1, -1, 223, -1, -1, 226, 227, - 228, -1, 3, 4, -1, 6, -1, 235, 9, -1, - -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, - -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, - 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, - -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, - -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, - 81, -1, 83, 84, -1, 86, 87, -1, 89, 90, - -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, - 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, - 111, 112, -1, -1, 115, -1, -1, 118, 119, 120, - 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, - 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, - 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, - 171, 172, -1, -1, 175, -1, 177, 178, -1, 180, - 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, - 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, - 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, - 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, - -1, -1, 223, -1, -1, 226, 227, 228, -1, 3, + -1, -1, 223, 224, -1, 226, 227, 228, -1, 3, 4, -1, 6, -1, 235, 9, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, @@ -3913,15 +3808,61 @@ static const short yycheck[] = { 3, -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, - 223, 3, 4, 226, 227, 228, -1, -1, -1, -1, - -1, -1, 235, -1, -1, 17, 18, 19, 20, -1, + 223, -1, -1, 226, 227, 228, -1, 3, 4, -1, + 6, -1, 235, 9, -1, -1, -1, -1, -1, -1, + -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, + 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, + -1, -1, 48, 49, 50, -1, 52, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, + -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, + -1, 77, 78, 79, -1, 81, -1, 83, 84, -1, + 86, 87, -1, 89, 90, -1, 92, 93, -1, -1, + -1, -1, 98, -1, -1, 101, 102, -1, -1, 105, + -1, 107, -1, -1, -1, 111, 112, -1, -1, 115, + -1, -1, 118, 119, 120, 121, -1, -1, -1, 125, + 126, -1, -1, -1, 130, -1, -1, 133, -1, -1, + -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, + 146, -1, 148, 149, -1, 151, -1, -1, 154, 155, + 156, 157, 158, -1, 160, 161, -1, -1, 164, 165, + 166, 167, 168, 169, 170, 171, 172, -1, -1, 175, + -1, 177, 178, -1, 180, 181, 182, -1, 184, -1, + 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, + 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, + -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, -1, -1, -1, -1, -1, 223, -1, -1, + 226, 227, 228, -1, 3, 4, -1, 6, -1, 235, + 9, -1, -1, -1, -1, -1, -1, -1, 17, 18, + 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, + -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, + 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, 81, -1, 83, 84, -1, 86, 87, -1, + 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, + -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, + -1, -1, 111, 112, -1, -1, 115, -1, -1, 118, + 119, 120, 121, -1, -1, -1, 125, 126, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, + 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, + -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, + 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, + -1, 180, 181, 182, -1, 184, -1, 186, 187, 188, + 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, + 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, + -1, -1, -1, -1, 223, -1, -1, 226, 227, 228, + -1, 3, 4, -1, 6, -1, 235, 9, -1, -1, + -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, - 52, -1, -1, 55, -1, -1, -1, -1, 60, -1, + 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, - -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, + -1, 83, 84, -1, 86, 87, -1, 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, @@ -3940,13 +3881,13 @@ static const short yycheck[] = { 3, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, - -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, + -1, 52, -1, -1, 55, -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, - 111, 112, 113, -1, 115, -1, -1, 118, 119, 120, + 111, 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, @@ -3968,7 +3909,7 @@ static const short yycheck[] = { 3, -1, 81, -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, - -1, 111, 112, -1, -1, 115, -1, -1, 118, 119, + -1, 111, 112, 113, -1, 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, @@ -3979,41 +3920,41 @@ static const short yycheck[] = { 3, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, - -1, -1, -1, 223, -1, -1, 226, 227, 228, -1, - 3, 4, -1, 6, -1, 235, 9, -1, -1, -1, - -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, - 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, - 83, 84, -1, -1, 87, -1, 89, 90, -1, 92, - 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, - -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, - 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, - 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, - 223, 3, 4, 226, 227, 228, -1, -1, -1, -1, - -1, -1, 235, -1, -1, 17, 18, 19, 20, -1, + -1, -1, -1, 223, 3, 4, 226, 227, 228, -1, + -1, -1, -1, -1, -1, 235, -1, -1, 17, 18, + 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, + -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, + 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, 81, -1, 83, 84, -1, 86, 87, 88, + 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, + -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, + -1, -1, 111, 112, -1, -1, 115, -1, -1, 118, + 119, 120, 121, -1, -1, -1, 125, 126, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, + 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, + -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, + 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, + -1, 180, 181, 182, -1, 184, -1, 186, 187, 188, + 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, + 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, + -1, -1, -1, -1, 223, -1, -1, 226, 227, 228, + -1, 3, 4, -1, 6, -1, 235, 9, -1, -1, + -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, - -1, 83, 84, -1, 86, 87, -1, 89, 90, -1, + -1, 83, 84, -1, -1, 87, -1, 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, - 112, 113, -1, 115, -1, -1, 118, 119, 120, 121, + 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, @@ -4035,7 +3976,7 @@ static const short yycheck[] = { 3, 81, -1, 83, 84, -1, 86, 87, -1, 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, - 111, 112, -1, -1, 115, -1, -1, 118, 119, 120, + 111, 112, 113, -1, 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, @@ -4046,231 +3987,85 @@ static const short yycheck[] = { 3, 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, - 3, 4, 223, -1, -1, 226, 227, 228, -1, -1, - -1, -1, -1, -1, 235, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, - 83, 84, -1, -1, -1, -1, 89, 90, -1, 92, - 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, - -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, - 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, - 213, 214, 215, 216, 217, -1, -1, -1, 3, 4, - 223, -1, -1, 226, 227, 228, -1, -1, -1, -1, - -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, - -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, - -1, -1, -1, -1, 89, 90, -1, 92, 93, -1, - -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, - 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, - 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, - 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, - 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, - 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, - 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, - 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, - -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, - 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, - 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, - 215, 216, 217, -1, -1, -1, 3, 4, 223, -1, - -1, 226, 227, 228, -1, -1, -1, -1, -1, -1, - 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 31, 32, 33, 34, -1, 36, - 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, - -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, - -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, - 77, 78, 79, -1, 81, -1, 83, 84, -1, -1, - -1, 88, 89, 90, -1, 92, 93, -1, -1, -1, - -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, - 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, - -1, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, - -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, - 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, - 167, 168, 169, 170, 171, 172, -1, -1, 175, -1, - 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, - 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, - 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, - -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, - 217, -1, -1, -1, 3, 4, 223, -1, -1, 226, - 227, 228, -1, -1, -1, -1, -1, -1, 235, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 31, 32, 33, 34, -1, 36, 37, -1, - -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, - -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, - 79, -1, 81, -1, 83, 84, -1, -1, -1, -1, - 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, - -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, - -1, -1, 111, 112, -1, -1, -1, -1, -1, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, - 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, - -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, - 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, - -1, -1, 181, 182, -1, 184, -1, 186, 187, 188, - 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, - 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, - 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, - -1, -1, 3, 4, 223, -1, -1, 226, 227, 228, - -1, -1, -1, -1, -1, -1, 235, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, - -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, - -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, - 81, -1, 83, 84, -1, -1, -1, -1, 89, 90, - -1, 92, 93, -1, -1, -1, -1, -1, -1, -1, - 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, - 111, 112, -1, -1, -1, -1, -1, 118, 119, 120, - 121, -1, -1, -1, -1, 126, -1, -1, -1, 130, - -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, - 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, - 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, - 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, - 171, 172, -1, -1, 175, -1, 177, 178, -1, -1, - 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, - 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, - 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, - 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, - 3, 4, 223, -1, -1, 226, 227, 228, -1, -1, - -1, -1, -1, -1, 235, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, - -1, -1, -1, 36, 37, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, - 83, 84, -1, -1, -1, -1, 89, 90, -1, 92, - 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, - -1, -1, 125, 126, -1, -1, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, - 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, - 213, 214, 215, 216, 217, -1, -1, -1, 3, 4, - 223, -1, -1, 226, -1, -1, -1, -1, -1, -1, - -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, - -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, - -1, -1, -1, -1, 89, 90, -1, 92, 93, -1, - -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, - 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, - 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, - 125, 126, -1, -1, -1, -1, -1, -1, 133, -1, - -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, - 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, - 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, - 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, - 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, - -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, - 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, - 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, - 215, 216, 217, -1, -1, -1, 3, 4, 223, -1, - -1, 226, -1, -1, -1, -1, -1, -1, -1, -1, - 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, - 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, - -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, - -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, - 77, 78, 79, -1, 81, -1, 83, 84, -1, 86, - -1, 88, 89, 90, -1, 92, 93, -1, -1, -1, - -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, - 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, - -1, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, - -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, - -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, - 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, - 167, 168, 169, 170, 171, 172, -1, -1, 175, -1, - 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, - 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, - 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, - -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, - 217, -1, -1, -1, 3, 4, 223, -1, -1, 226, - 227, 228, -1, -1, -1, -1, -1, -1, 235, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, - -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, - -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, - 79, -1, 81, -1, 83, 84, -1, -1, -1, 88, - 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, - -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, - -1, -1, 111, 112, -1, -1, -1, -1, -1, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, - 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, - -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, - 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, - -1, -1, 181, 182, -1, 184, -1, 186, 187, 188, - 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, - 199, -1, 201, 202, 203, 204, 205, 3, 4, -1, - 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, - -1, -1, -1, -1, 223, -1, -1, 226, 227, 228, - -1, -1, -1, -1, 30, -1, 235, -1, -1, -1, - 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, 63, -1, -1, + -1, -1, 223, 3, 4, 226, 227, 228, -1, -1, + -1, -1, -1, -1, 235, -1, -1, 17, 18, 19, + 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, + -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, + 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, + 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, + -1, 81, -1, 83, 84, -1, 86, 87, -1, 89, + 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, + -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, + -1, 111, 112, -1, -1, 115, -1, -1, 118, 119, + 120, 121, -1, -1, -1, 125, 126, -1, -1, -1, + 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, + 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, + -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, + 160, 161, -1, -1, 164, 165, 166, 167, 168, 169, + 170, 171, 172, -1, -1, 175, -1, 177, 178, -1, + 180, 181, 182, -1, 184, -1, 186, 187, 188, 189, + 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, + -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, + -1, 3, 4, 223, -1, -1, 226, 227, 228, -1, + -1, -1, -1, -1, -1, 235, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, + 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, + -1, 83, 84, -1, -1, -1, -1, 89, 90, -1, + 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, + -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, + -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, -1, -1, -1, 3, + 4, 223, -1, -1, 226, 227, 228, -1, -1, -1, + -1, -1, -1, 235, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, + -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, + -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, + -1, -1, -1, 77, 78, 79, -1, 81, -1, 83, + 84, -1, -1, -1, -1, 89, 90, -1, 92, 93, + -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, + -1, 105, -1, 107, -1, -1, -1, 111, 112, -1, + -1, 115, -1, -1, 118, 119, 120, 121, -1, -1, + -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, + -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, + -1, 145, 146, -1, 148, 149, -1, 151, -1, -1, + 154, 155, 156, 157, 158, -1, 160, 161, -1, -1, + 164, 165, 166, 167, 168, 169, 170, 171, 172, -1, + -1, 175, -1, 177, 178, -1, 180, 181, 182, -1, + 184, -1, 186, 187, 188, 189, 190, 191, 192, -1, + 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, + 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, -1, -1, -1, 3, 4, 223, + -1, -1, 226, 227, 228, -1, -1, -1, -1, -1, + -1, 235, 18, 19, 20, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 31, 32, 33, 34, -1, + 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, + -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, - -1, 77, 78, 79, -1, -1, -1, -1, 84, 13, - -1, -1, -1, -1, 90, -1, 92, 93, -1, -1, + -1, 77, 78, 79, -1, 81, -1, 83, 84, -1, + -1, -1, 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, - -1, -1, -1, 67, 140, 141, 142, 143, -1, 145, - 146, 75, 148, 149, -1, 151, -1, -1, 154, 155, - 156, 157, 158, -1, 160, 161, -1, -1, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 3, 4, 175, - -1, 177, 178, -1, 180, 181, 182, -1, 184, -1, - 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, - 196, 197, 198, -1, -1, 201, 202, 203, 204, 205, - 36, -1, -1, 209, -1, 211, 212, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, 63, -1, 235, - -1, -1, -1, -1, 70, 71, -1, 171, -1, -1, - -1, 77, 78, 79, -1, -1, -1, -1, 84, -1, - -1, -1, 186, -1, 90, -1, 92, 93, -1, -1, - -1, -1, -1, -1, -1, 101, 102, -1, -1, 105, - -1, 107, -1, -1, -1, 111, 112, -1, -1, -1, - 214, -1, 118, 119, 120, 121, 220, 221, 222, 223, - 224, 225, -1, -1, -1, -1, -1, -1, -1, 233, + 126, -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, 165, @@ -4278,156 +4073,316 @@ static const short yycheck[] = { 3, -1, 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, - 3, 4, -1, 209, -1, 211, 212, 213, 214, 215, - -1, 217, -1, 219, 220, 221, 222, 223, 224, 225, + -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, -1, -1, -1, 3, 4, 223, -1, -1, + 226, 227, 228, -1, -1, -1, -1, -1, -1, 235, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 31, 32, 33, 34, -1, 36, 37, + -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, + -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, + -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, + -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, + 78, 79, -1, 81, -1, 83, 84, -1, -1, -1, + -1, 89, 90, -1, 92, 93, -1, -1, -1, -1, + -1, -1, -1, 101, 102, -1, -1, 105, -1, 107, + -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, + 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, + 158, -1, 160, 161, -1, -1, 164, 165, 166, 167, + 168, 169, 170, 171, 172, -1, -1, 175, -1, 177, + 178, -1, -1, 181, 182, -1, 184, -1, 186, 187, + 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, + 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + -1, -1, -1, 3, 4, 223, -1, -1, 226, 227, + 228, -1, -1, -1, -1, -1, -1, 235, 18, 19, + 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 31, 32, 33, 34, -1, 36, 37, -1, -1, + -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, + 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, + 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, + -1, 81, -1, 83, 84, -1, -1, -1, -1, 89, + 90, -1, 92, 93, -1, -1, -1, -1, -1, -1, + -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, + -1, 111, 112, -1, -1, -1, -1, -1, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, + 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, + -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, + 160, 161, -1, -1, 164, 165, 166, 167, 168, 169, + 170, 171, 172, -1, -1, 175, -1, 177, 178, -1, + -1, 181, 182, -1, 184, -1, 186, 187, 188, 189, + 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, + -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, + -1, 3, 4, 223, -1, -1, 226, 227, 228, -1, + -1, -1, -1, -1, -1, 235, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, + -1, -1, -1, -1, 36, 37, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, + 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, + -1, 83, 84, -1, -1, -1, -1, 89, 90, -1, + 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, + -1, -1, -1, 125, 126, -1, -1, -1, -1, -1, + -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, -1, -1, -1, 3, + 4, 223, -1, -1, 226, -1, -1, -1, -1, -1, + -1, -1, -1, 235, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, + -1, -1, 36, 37, -1, -1, -1, -1, -1, 43, + -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, + -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, + -1, -1, -1, 77, 78, 79, -1, 81, -1, 83, + 84, -1, -1, -1, -1, 89, 90, -1, 92, 93, + -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, + -1, 105, -1, 107, -1, -1, -1, 111, 112, -1, + -1, 115, -1, -1, 118, 119, 120, 121, -1, -1, + -1, 125, 126, -1, -1, -1, -1, -1, -1, 133, + -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, + -1, 145, 146, -1, 148, 149, -1, 151, -1, -1, + 154, 155, 156, 157, 158, -1, 160, 161, -1, -1, + 164, 165, 166, 167, 168, 169, 170, 171, 172, -1, + -1, 175, -1, 177, 178, -1, 180, 181, 182, -1, + 184, -1, 186, 187, 188, 189, 190, 191, 192, -1, + 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, + 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, -1, -1, -1, 3, 4, 223, + -1, -1, 226, -1, -1, -1, -1, -1, -1, -1, + -1, 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 36, -1, -1, 39, -1, -1, -1, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, 69, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, - 103, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, + -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, + -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, + -1, 77, 78, 79, -1, 81, -1, 83, 84, -1, + 86, -1, 88, 89, 90, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, 101, 102, -1, -1, 105, + -1, 107, -1, -1, -1, 111, 112, -1, -1, -1, + -1, -1, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, -1, -1, + -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, + 146, -1, 148, 149, -1, 151, -1, -1, 154, 155, + 156, 157, 158, -1, 160, 161, -1, -1, 164, 165, + 166, 167, 168, 169, 170, 171, 172, -1, -1, 175, + -1, 177, 178, -1, -1, 181, 182, -1, 184, -1, + 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, + 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, + -1, -1, -1, 209, -1, 211, 212, 213, 214, 215, + 216, 217, -1, -1, -1, 3, 4, 223, -1, -1, + 226, 227, 228, -1, -1, -1, -1, -1, -1, 235, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 36, 37, + -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, + -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, + -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, + -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, + 78, 79, -1, 81, -1, 83, 84, -1, -1, -1, + 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, + -1, -1, -1, 101, 102, -1, -1, 105, -1, 107, + -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, + 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, + 158, -1, 160, 161, -1, -1, 164, 165, 166, 167, + 168, 169, 170, 171, 172, -1, -1, 175, -1, 177, + 178, -1, -1, 181, 182, -1, 184, -1, 186, 187, + 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, + 198, 199, -1, 201, 202, 203, 204, 205, 3, 4, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + -1, -1, -1, -1, -1, 223, -1, -1, 226, 227, + 228, -1, -1, -1, -1, 30, -1, 235, -1, -1, + -1, 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, - 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, - 43, 214, -1, -1, -1, -1, 219, 220, 221, 222, - 223, 224, 225, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, 69, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, - 103, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, + -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, + -1, -1, 77, 78, 79, -1, -1, -1, -1, 84, + 13, -1, -1, -1, -1, 90, -1, 92, 93, -1, + -1, -1, -1, -1, -1, -1, 101, 102, -1, -1, + 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, + -1, -1, -1, 118, 119, 120, 121, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, + -1, -1, -1, -1, 67, 140, 141, 142, 143, -1, + 145, 146, 75, 148, 149, -1, 151, -1, -1, 154, + 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 3, 4, + 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, + -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, + 195, 196, 197, 198, -1, -1, 201, 202, 203, 204, + 205, 36, -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, 30, 201, 202, - 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, - 43, 214, -1, -1, -1, -1, 219, 220, 221, 222, - 223, 224, 225, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 3, 4, 175, -1, 177, 178, -1, 180, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, 30, 201, 202, - 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, - 43, -1, -1, 216, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 3, 4, 175, -1, 177, 178, -1, 180, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, - 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, - 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, - 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, - -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, - -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, - 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, - 43, -1, -1, -1, -1, -1, -1, -1, -1, 13, - -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, 13, -1, 70, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, - 93, -1, -1, -1, -1, -1, -1, 61, 101, 102, - -1, -1, 105, 67, 107, -1, -1, -1, 111, 112, - -1, 75, -1, 61, -1, 118, 119, 120, 121, 67, - -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, - 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, - -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, - -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, - -1, -1, 175, -1, 177, 178, -1, -1, 181, 182, - -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, - -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, - 203, 204, 205, -1, -1, -1, 209, 171, 211, 212, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 224, 186, 171, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 186, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 214, 3, 4, -1, -1, 219, 220, 221, 222, 223, - 224, 225, -1, -1, -1, -1, 214, -1, -1, 233, - -1, 219, 220, 221, 222, 223, 224, 225, 30, -1, - -1, -1, -1, -1, 36, 233, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, + 235, -1, -1, -1, -1, 70, 71, -1, 171, -1, + -1, -1, 77, 78, 79, -1, -1, -1, -1, 84, + -1, -1, -1, 186, -1, 90, -1, 92, 93, -1, + -1, -1, -1, -1, -1, -1, 101, 102, -1, -1, + 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, + -1, 214, -1, 118, 119, 120, 121, 220, 221, 222, + 223, 224, 225, -1, -1, -1, -1, -1, -1, -1, + 233, -1, -1, -1, -1, 140, 141, 142, 143, -1, + 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, + 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, + 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, + 175, -1, 177, 178, -1, -1, 181, 182, -1, 184, + -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, + 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, + 205, 3, 4, -1, 209, -1, 211, 212, 213, 214, + 215, -1, 217, -1, 219, 220, 221, 222, 223, 224, + 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 36, -1, -1, 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, 69, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, 103, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, -1, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, -1, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, 214, -1, -1, -1, -1, 219, 220, 221, + 222, 223, 224, 225, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, 69, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, 103, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, -1, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, 30, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, 214, -1, -1, -1, -1, 219, 220, 221, + 222, 223, 224, 225, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, 30, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, -1, -1, 216, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, -1, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, -1, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, -1, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, -1, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, -1, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, -1, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, -1, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, -1, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, 30, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, @@ -4748,7 +4703,7 @@ static const short yycheck[] = { 3, -1, 212 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/local/bison/bison.simple" +#line 3 "/usr/share/misc/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -4941,7 +4896,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/local/bison/bison.simple" +#line 196 "/usr/share/misc/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -7380,11 +7335,13 @@ case 410: elog(ERROR,"Order by and Distinct on views is not implemented."); if (((SelectStmt *)n->query)->unionClause != NULL) elog(ERROR,"Views on unions not implemented."); + if (((SelectStmt *)n->query)->forUpdate != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed in CREATE VIEW"); yyval.node = (Node *)n; ; break;} case 411: -#line 2231 "gram.y" +#line 2233 "gram.y" { LoadStmt *n = makeNode(LoadStmt); n->filename = yyvsp[0].str; @@ -7392,7 +7349,7 @@ case 411: ; break;} case 412: -#line 2247 "gram.y" +#line 2249 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); if (yyvsp[-1].str == NULL && yyvsp[0].str == NULL) { @@ -7418,7 +7375,7 @@ case 412: ; break;} case 413: -#line 2271 "gram.y" +#line 2273 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = yyvsp[0].str; @@ -7432,47 +7389,47 @@ case 413: ; break;} case 414: -#line 2284 "gram.y" +#line 2286 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 415: -#line 2285 "gram.y" +#line 2287 "gram.y" { yyval.str = NULL; ; break;} case 416: -#line 2288 "gram.y" +#line 2290 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 417: -#line 2289 "gram.y" +#line 2291 "gram.y" { yyval.str = NULL; ; break;} case 418: -#line 2292 "gram.y" +#line 2294 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 419: -#line 2293 "gram.y" +#line 2295 "gram.y" { yyval.str = NULL; ; break;} case 420: -#line 2294 "gram.y" +#line 2296 "gram.y" { yyval.str = NULL; ; break;} case 421: -#line 2297 "gram.y" +#line 2299 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 422: -#line 2298 "gram.y" +#line 2300 "gram.y" { yyval.str = NULL; ; break;} case 423: -#line 2299 "gram.y" +#line 2301 "gram.y" { yyval.str = NULL; ; break;} case 424: -#line 2310 "gram.y" +#line 2312 "gram.y" { DestroydbStmt *n = makeNode(DestroydbStmt); n->dbname = yyvsp[0].str; @@ -7480,7 +7437,7 @@ case 424: ; break;} case 425: -#line 2326 "gram.y" +#line 2328 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relname = yyvsp[0].str; @@ -7489,7 +7446,7 @@ case 425: ; break;} case 426: -#line 2343 "gram.y" +#line 2345 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->verbose = yyvsp[-1].boolean; @@ -7500,7 +7457,7 @@ case 426: ; break;} case 427: -#line 2352 "gram.y" +#line 2354 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->verbose = yyvsp[-3].boolean; @@ -7513,39 +7470,39 @@ case 427: ; break;} case 428: -#line 2364 "gram.y" +#line 2366 "gram.y" { yyval.boolean = TRUE; ; break;} case 429: -#line 2365 "gram.y" +#line 2367 "gram.y" { yyval.boolean = FALSE; ; break;} case 430: -#line 2368 "gram.y" +#line 2370 "gram.y" { yyval.boolean = TRUE; ; break;} case 431: -#line 2369 "gram.y" +#line 2371 "gram.y" { yyval.boolean = FALSE; ; break;} case 432: -#line 2372 "gram.y" +#line 2374 "gram.y" { yyval.list = yyvsp[-1].list; ; break;} case 433: -#line 2373 "gram.y" +#line 2375 "gram.y" { yyval.list = NIL; ; break;} case 434: -#line 2377 "gram.y" +#line 2379 "gram.y" { yyval.list=lcons(yyvsp[0].str,NIL); ; break;} case 435: -#line 2379 "gram.y" +#line 2381 "gram.y" { yyval.list=lappend(yyvsp[-2].list,yyvsp[0].str); ; break;} case 436: -#line 2391 "gram.y" +#line 2393 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->verbose = yyvsp[-1].boolean; @@ -7554,7 +7511,7 @@ case 436: ; break;} case 443: -#line 2428 "gram.y" +#line 2430 "gram.y" { yyvsp[0].astmt->relname = yyvsp[-2].str; yyvsp[0].astmt->cols = yyvsp[-1].list; @@ -7562,7 +7519,7 @@ case 443: ; break;} case 444: -#line 2436 "gram.y" +#line 2438 "gram.y" { yyval.astmt = makeNode(InsertStmt); yyval.astmt->unique = NULL; @@ -7575,7 +7532,7 @@ case 444: ; break;} case 445: -#line 2447 "gram.y" +#line 2449 "gram.y" { yyval.astmt = makeNode(InsertStmt); yyval.astmt->unique = NULL; @@ -7588,7 +7545,7 @@ case 445: ; break;} case 446: -#line 2461 "gram.y" +#line 2463 "gram.y" { yyval.astmt = makeNode(InsertStmt); yyval.astmt->unique = yyvsp[-6].str; @@ -7601,23 +7558,23 @@ case 446: ; break;} case 447: -#line 2473 "gram.y" +#line 2475 "gram.y" { yyval.list = yyvsp[-1].list; ; break;} case 448: -#line 2474 "gram.y" +#line 2476 "gram.y" { yyval.list = NIL; ; break;} case 449: -#line 2479 "gram.y" +#line 2481 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} case 450: -#line 2481 "gram.y" +#line 2483 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} case 451: -#line 2485 "gram.y" +#line 2487 "gram.y" { Ident *id = makeNode(Ident); id->name = yyvsp[-1].str; @@ -7626,7 +7583,7 @@ case 451: ; break;} case 452: -#line 2503 "gram.y" +#line 2505 "gram.y" { DeleteStmt *n = makeNode(DeleteStmt); n->relname = yyvsp[-1].str; @@ -7635,7 +7592,7 @@ case 452: ; break;} case 453: -#line 2512 "gram.y" +#line 2514 "gram.y" { LockStmt *n = makeNode(LockStmt); @@ -7645,7 +7602,7 @@ case 453: ; break;} case 454: -#line 2520 "gram.y" +#line 2522 "gram.y" { LockStmt *n = makeNode(LockStmt); @@ -7673,7 +7630,7 @@ case 454: ; break;} case 455: -#line 2546 "gram.y" +#line 2548 "gram.y" { LockStmt *n = makeNode(LockStmt); @@ -7692,7 +7649,7 @@ case 455: ; break;} case 456: -#line 2563 "gram.y" +#line 2565 "gram.y" { LockStmt *n = makeNode(LockStmt); @@ -7709,15 +7666,15 @@ case 456: ; break;} case 457: -#line 2579 "gram.y" +#line 2581 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 458: -#line 2580 "gram.y" +#line 2582 "gram.y" { yyval.str = NULL; ; break;} case 459: -#line 2594 "gram.y" +#line 2596 "gram.y" { UpdateStmt *n = makeNode(UpdateStmt); n->relname = yyvsp[-4].str; @@ -7728,7 +7685,7 @@ case 459: ; break;} case 460: -#line 2617 "gram.y" +#line 2619 "gram.y" { SelectStmt *n = makeNode(SelectStmt); @@ -7757,39 +7714,39 @@ case 460: ; break;} case 461: -#line 2645 "gram.y" +#line 2647 "gram.y" { yyval.boolean = TRUE; ; break;} case 462: -#line 2646 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 463: -#line 2647 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 464: #line 2648 "gram.y" { yyval.boolean = FALSE; ; break;} -case 465: +case 463: #line 2649 "gram.y" +{ yyval.boolean = FALSE; ; + break;} +case 464: +#line 2650 "gram.y" +{ yyval.boolean = FALSE; ; + break;} +case 465: +#line 2651 "gram.y" { yyval.boolean = FALSE; ; break;} case 466: -#line 2652 "gram.y" +#line 2654 "gram.y" { yyval.boolean = yyvsp[0].boolean; ; break;} case 467: -#line 2653 "gram.y" +#line 2655 "gram.y" { yyval.boolean = FALSE; ; break;} case 468: -#line 2656 "gram.y" +#line 2658 "gram.y" { yyval.boolean = TRUE; ; break;} case 469: -#line 2658 "gram.y" +#line 2660 "gram.y" { elog(ERROR,"DECLARE/UPDATE not supported;" " Cursors must be READ ONLY."); @@ -7797,29 +7754,42 @@ case 469: ; break;} case 470: -#line 2666 "gram.y" +#line 2668 "gram.y" { yyval.boolean = FALSE; ; break;} case 471: -#line 2681 "gram.y" +#line 2683 "gram.y" { SelectStmt *n = makeNode(SelectStmt); - n->unique = yyvsp[-8].str; - n->targetList = yyvsp[-7].list; - n->into = yyvsp[-6].str; - n->fromClause = yyvsp[-5].list; - n->whereClause = yyvsp[-4].node; - n->groupClause = yyvsp[-3].list; - n->havingClause = yyvsp[-2].node; - n->unionClause = yyvsp[-1].list; - n->sortClause = yyvsp[0].list; - yyval.node = (Node *)n; + n->unique = yyvsp[-9].str; + n->targetList = yyvsp[-8].list; + n->into = yyvsp[-7].str; + n->fromClause = yyvsp[-6].list; + n->whereClause = yyvsp[-5].node; + n->groupClause = yyvsp[-4].list; + n->havingClause = yyvsp[-3].node; + n->unionClause = yyvsp[-2].list; + n->sortClause = yyvsp[-1].list; + n->forUpdate = yyvsp[0].list; + if (n->forUpdate != NULL) + { + if (n->unionClause != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with UNION clause"); + if (n->unique != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with DISTINCT clause"); + if (n->groupClause != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with GROUP BY clause"); + if (n->havingClause != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with HAVING clause"); + } + else + yyval.node = (Node *)n; ; break;} case 472: -#line 2700 "gram.y" +#line 2715 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->unique = yyvsp[-6].str; @@ -7833,7 +7803,7 @@ case 472: ; break;} case 473: -#line 2714 "gram.y" +#line 2729 "gram.y" { SelectStmt *n = (SelectStmt *)lfirst(yyvsp[0].list); n->unionall = yyvsp[-1].boolean; @@ -7841,11 +7811,11 @@ case 473: ; break;} case 474: -#line 2720 "gram.y" +#line 2735 "gram.y" { yyval.list = NIL; ; break;} case 475: -#line 2724 "gram.y" +#line 2739 "gram.y" { SelectStmt *n = (SelectStmt *)yyvsp[0].node; n->unionall = yyvsp[-1].boolean; @@ -7853,11 +7823,11 @@ case 475: ; break;} case 476: -#line 2730 "gram.y" +#line 2745 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} case 477: -#line 2736 "gram.y" +#line 2751 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->unique = yyvsp[-5].str; @@ -7871,63 +7841,63 @@ case 477: ; break;} case 478: -#line 2749 "gram.y" +#line 2764 "gram.y" { yyval.str= yyvsp[0].str; ; break;} case 479: -#line 2750 "gram.y" +#line 2765 "gram.y" { yyval.str = NULL; ; break;} case 480: -#line 2753 "gram.y" +#line 2768 "gram.y" { yyval.boolean = TRUE; ; break;} case 481: -#line 2754 "gram.y" +#line 2769 "gram.y" { yyval.boolean = FALSE; ; break;} case 482: -#line 2757 "gram.y" +#line 2772 "gram.y" { yyval.boolean = TRUE; ; break;} case 483: -#line 2758 "gram.y" +#line 2773 "gram.y" { yyval.boolean = FALSE; ; break;} case 484: -#line 2761 "gram.y" +#line 2776 "gram.y" { yyval.str = "*"; ; break;} case 485: -#line 2762 "gram.y" +#line 2777 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 486: -#line 2763 "gram.y" +#line 2778 "gram.y" { yyval.str = NULL; ; break;} case 487: -#line 2764 "gram.y" +#line 2779 "gram.y" { yyval.str = NULL; ; break;} case 488: -#line 2767 "gram.y" +#line 2782 "gram.y" { yyval.list = yyvsp[0].list; ; break;} case 489: -#line 2768 "gram.y" +#line 2783 "gram.y" { yyval.list = NIL; ; break;} case 490: -#line 2771 "gram.y" +#line 2786 "gram.y" { yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ; break;} case 491: -#line 2772 "gram.y" +#line 2787 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ; break;} case 492: -#line 2776 "gram.y" +#line 2791 "gram.y" { yyval.sortgroupby = makeNode(SortGroupBy); yyval.sortgroupby->node = yyvsp[-1].node; @@ -7935,176 +7905,194 @@ case 492: ; break;} case 493: -#line 2783 "gram.y" +#line 2798 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 494: -#line 2784 "gram.y" +#line 2799 "gram.y" { yyval.str = "<"; ; break;} case 495: -#line 2785 "gram.y" +#line 2800 "gram.y" { yyval.str = ">"; ; break;} case 496: -#line 2786 "gram.y" +#line 2801 "gram.y" { yyval.str = "<"; ; break;} case 497: -#line 2787 "gram.y" +#line 2802 "gram.y" { yyval.str = ">"; ; break;} case 498: -#line 2788 "gram.y" +#line 2803 "gram.y" { yyval.str = "<"; /*default*/ ; break;} case 499: -#line 2798 "gram.y" +#line 2813 "gram.y" { yyval.boolean = TRUE; ; break;} case 500: -#line 2799 "gram.y" +#line 2814 "gram.y" { yyval.boolean = FALSE; ; break;} case 502: -#line 2805 "gram.y" +#line 2820 "gram.y" { yyval.list = lcons(makeString(yyvsp[0].str),NIL); ; break;} case 503: -#line 2807 "gram.y" +#line 2822 "gram.y" { yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ; break;} case 504: -#line 2810 "gram.y" +#line 2825 "gram.y" { yyval.list = yyvsp[0].list; ; break;} case 505: -#line 2811 "gram.y" +#line 2826 "gram.y" { yyval.list = NIL; ; break;} case 506: -#line 2815 "gram.y" +#line 2830 "gram.y" { yyval.node = yyvsp[0].node; ; break;} case 507: -#line 2818 "gram.y" +#line 2833 "gram.y" { yyval.node = NULL; ; break;} case 508: -#line 2831 "gram.y" +#line 2838 "gram.y" +{ + yyval.list = lcons(NULL, NULL); + ; + break;} +case 509: +#line 2842 "gram.y" +{ + yyval.list = yyvsp[0].list; + ; + break;} +case 510: +#line 2846 "gram.y" +{ + yyval.list = NULL; + ; + break;} +case 511: +#line 2860 "gram.y" { yyval.list = NIL; elog(ERROR,"JOIN not yet implemented"); ; break;} -case 509: -#line 2835 "gram.y" +case 512: +#line 2864 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 510: -#line 2836 "gram.y" +case 513: +#line 2865 "gram.y" { yyval.list = NIL; ; break;} -case 511: -#line 2840 "gram.y" +case 514: +#line 2869 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); ; break;} -case 512: -#line 2842 "gram.y" +case 515: +#line 2871 "gram.y" { elog(ERROR,"CROSS JOIN not yet implemented"); ; break;} -case 513: -#line 2844 "gram.y" +case 516: +#line 2873 "gram.y" { yyval.list = lcons(yyvsp[0].range, NIL); ; break;} -case 514: -#line 2848 "gram.y" +case 517: +#line 2877 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-2].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 515: -#line 2854 "gram.y" +case 518: +#line 2883 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-1].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 516: -#line 2860 "gram.y" +case 519: +#line 2889 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[0].relexp; yyval.range->name = NULL; ; break;} -case 517: -#line 2867 "gram.y" -{ yyval.str = NULL; ; - break;} -case 518: -#line 2869 "gram.y" -{ elog(ERROR,"FULL OUTER JOIN not yet implemented"); ; - break;} -case 519: -#line 2871 "gram.y" -{ elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ; - break;} case 520: -#line 2873 "gram.y" -{ elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ; +#line 2896 "gram.y" +{ yyval.str = NULL; ; break;} case 521: -#line 2875 "gram.y" -{ elog(ERROR,"OUTER JOIN not yet implemented"); ; +#line 2898 "gram.y" +{ elog(ERROR,"FULL OUTER JOIN not yet implemented"); ; break;} case 522: -#line 2877 "gram.y" -{ elog(ERROR,"INNER JOIN not yet implemented"); ; +#line 2900 "gram.y" +{ elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ; break;} case 523: -#line 2879 "gram.y" -{ elog(ERROR,"UNION JOIN not yet implemented"); ; +#line 2902 "gram.y" +{ elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ; break;} case 524: -#line 2881 "gram.y" -{ elog(ERROR,"INNER JOIN not yet implemented"); ; +#line 2904 "gram.y" +{ elog(ERROR,"OUTER JOIN not yet implemented"); ; break;} case 525: -#line 2884 "gram.y" -{ yyval.str = NULL; ; +#line 2906 "gram.y" +{ elog(ERROR,"INNER JOIN not yet implemented"); ; break;} case 526: -#line 2885 "gram.y" -{ yyval.str = NULL; /* no qualifiers */ ; +#line 2908 "gram.y" +{ elog(ERROR,"UNION JOIN not yet implemented"); ; break;} case 527: -#line 2888 "gram.y" -{ yyval.str = NULL; ; +#line 2910 "gram.y" +{ elog(ERROR,"INNER JOIN not yet implemented"); ; break;} case 528: -#line 2889 "gram.y" +#line 2913 "gram.y" { yyval.str = NULL; ; break;} case 529: -#line 2890 "gram.y" +#line 2914 "gram.y" { yyval.str = NULL; /* no qualifiers */ ; break;} case 530: -#line 2893 "gram.y" -{ yyval.list = lcons(yyvsp[0].joinusing, NIL); ; +#line 2917 "gram.y" +{ yyval.str = NULL; ; break;} case 531: -#line 2894 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].joinusing); ; +#line 2918 "gram.y" +{ yyval.str = NULL; ; break;} case 532: -#line 2906 "gram.y" +#line 2919 "gram.y" +{ yyval.str = NULL; /* no qualifiers */ ; + break;} +case 533: +#line 2922 "gram.y" +{ yyval.list = lcons(yyvsp[0].joinusing, NIL); ; + break;} +case 534: +#line 2923 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].joinusing); ; + break;} +case 535: +#line 2935 "gram.y" { yyval.joinusing = makeNode(JoinUsing); yyval.joinusing->resno = 0; @@ -8112,8 +8100,8 @@ case 532: yyval.joinusing->name = yyvsp[0].str; ; break;} -case 533: -#line 2913 "gram.y" +case 536: +#line 2942 "gram.y" { yyval.joinusing = makeNode(JoinUsing); yyval.joinusing->resno = 0; @@ -8121,8 +8109,8 @@ case 533: yyval.joinusing->name = yyvsp[0].str; ; break;} -case 534: -#line 2920 "gram.y" +case 537: +#line 2949 "gram.y" { yyval.joinusing = makeNode(JoinUsing); yyval.joinusing->resno = yyvsp[0].ival; @@ -8130,16 +8118,16 @@ case 534: yyval.joinusing->name = NULL; ; break;} -case 535: -#line 2928 "gram.y" +case 538: +#line 2957 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 536: -#line 2929 "gram.y" +case 539: +#line 2958 "gram.y" { yyval.node = NULL; /* no qualifiers */ ; break;} -case 537: -#line 2933 "gram.y" +case 540: +#line 2962 "gram.y" { /* normal relations */ yyval.relexp = makeNode(RelExpr); @@ -8147,8 +8135,8 @@ case 537: yyval.relexp->inh = FALSE; ; break;} -case 538: -#line 2940 "gram.y" +case 541: +#line 2969 "gram.y" { /* inheritance query */ yyval.relexp = makeNode(RelExpr); @@ -8156,32 +8144,32 @@ case 538: yyval.relexp->inh = TRUE; ; break;} -case 539: -#line 2948 "gram.y" -{ yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; - break;} -case 540: -#line 2950 "gram.y" -{ yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; - break;} -case 541: -#line 2952 "gram.y" -{ yyval.list = NIL; ; - break;} case 542: -#line 2956 "gram.y" +#line 2977 "gram.y" { yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; break;} case 543: -#line 2958 "gram.y" +#line 2979 "gram.y" { yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; break;} case 544: -#line 2960 "gram.y" +#line 2981 "gram.y" { yyval.list = NIL; ; break;} case 545: -#line 2975 "gram.y" +#line 2985 "gram.y" +{ yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; + break;} +case 546: +#line 2987 "gram.y" +{ yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; + break;} +case 547: +#line 2989 "gram.y" +{ yyval.list = NIL; ; + break;} +case 548: +#line 3004 "gram.y" { yyval.typnam = yyvsp[-1].typnam; yyval.typnam->arrayBounds = yyvsp[0].list; @@ -8204,31 +8192,15 @@ case 545: yyval.typnam->setof = FALSE; ; break;} -case 547: -#line 2998 "gram.y" +case 550: +#line 3027 "gram.y" { yyval.typnam = yyvsp[0].typnam; yyval.typnam->setof = TRUE; ; break;} -case 551: -#line 3010 "gram.y" -{ - yyval.typnam = makeNode(TypeName); - yyval.typnam->name = xlateSqlType(yyvsp[0].str); - yyval.typnam->typmod = -1; - ; - break;} -case 552: -#line 3017 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 553: -#line 3018 "gram.y" -{ yyval.str = xlateSqlType("type"); ; - break;} case 554: -#line 3027 "gram.y" +#line 3039 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); @@ -8236,46 +8208,62 @@ case 554: ; break;} case 555: -#line 3033 "gram.y" +#line 3046 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 556: +#line 3047 "gram.y" +{ yyval.str = xlateSqlType("type"); ; + break;} +case 557: +#line 3056 "gram.y" +{ + yyval.typnam = makeNode(TypeName); + yyval.typnam->name = xlateSqlType(yyvsp[0].str); + yyval.typnam->typmod = -1; + ; + break;} +case 558: +#line 3062 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("float"); ; break;} -case 556: -#line 3038 "gram.y" +case 559: +#line 3067 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("numeric"); yyval.typnam->typmod = -1; ; break;} -case 557: -#line 3044 "gram.y" +case 560: +#line 3073 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("numeric"); yyval.typnam->typmod = yyvsp[0].ival; ; break;} -case 558: -#line 3052 "gram.y" -{ yyval.str = xlateSqlType("float8"); ; - break;} -case 559: -#line 3054 "gram.y" -{ yyval.str = xlateSqlType("float8"); ; - break;} -case 560: -#line 3056 "gram.y" -{ yyval.str = xlateSqlType("numeric"); ; - break;} case 561: -#line 3058 "gram.y" -{ yyval.str = xlateSqlType("numeric"); ; +#line 3081 "gram.y" +{ yyval.str = xlateSqlType("float8"); ; break;} case 562: -#line 3062 "gram.y" +#line 3083 "gram.y" +{ yyval.str = xlateSqlType("float8"); ; + break;} +case 563: +#line 3085 "gram.y" +{ yyval.str = xlateSqlType("numeric"); ; + break;} +case 564: +#line 3087 "gram.y" +{ yyval.str = xlateSqlType("numeric"); ; + break;} +case 565: +#line 3091 "gram.y" { if (yyvsp[-1].ival < 1) elog(ERROR,"precision for FLOAT must be at least 1"); @@ -8287,14 +8275,14 @@ case 562: elog(ERROR,"precision for FLOAT must be less than 16"); ; break;} -case 563: -#line 3073 "gram.y" +case 566: +#line 3102 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 564: -#line 3079 "gram.y" +case 567: +#line 3108 "gram.y" { if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION) elog(ERROR,"NUMERIC precision %d must be beween 1 and %d", @@ -8306,8 +8294,8 @@ case 564: yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ; ; break;} -case 565: -#line 3090 "gram.y" +case 568: +#line 3119 "gram.y" { if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION) elog(ERROR,"NUMERIC precision %d must be beween 1 and %d", @@ -8316,14 +8304,14 @@ case 565: yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ; ; break;} -case 566: -#line 3098 "gram.y" +case 569: +#line 3127 "gram.y" { yyval.ival = ((NUMERIC_DEFAULT_PRECISION << 16) | NUMERIC_DEFAULT_SCALE) + VARHDRSZ; ; break;} -case 567: -#line 3104 "gram.y" +case 570: +#line 3133 "gram.y" { if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION) elog(ERROR,"DECIMAL precision %d must be beween 1 and %d", @@ -8335,8 +8323,8 @@ case 567: yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ; ; break;} -case 568: -#line 3115 "gram.y" +case 571: +#line 3144 "gram.y" { if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION) elog(ERROR,"DECIMAL precision %d must be beween 1 and %d", @@ -8345,14 +8333,14 @@ case 568: yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ; ; break;} -case 569: -#line 3123 "gram.y" +case 572: +#line 3152 "gram.y" { yyval.ival = ((NUMERIC_DEFAULT_PRECISION << 16) | NUMERIC_DEFAULT_SCALE) + VARHDRSZ; ; break;} -case 570: -#line 3137 "gram.y" +case 573: +#line 3166 "gram.y" { yyval.typnam = makeNode(TypeName); if (strcasecmp(yyvsp[-3].str, "char") == 0) @@ -8380,8 +8368,8 @@ case 570: yyval.typnam->typmod = VARHDRSZ + yyvsp[-1].ival; ; break;} -case 571: -#line 3164 "gram.y" +case 574: +#line 3193 "gram.y" { yyval.typnam = makeNode(TypeName); /* Let's try to make all single-character types into bpchar(1) @@ -8399,8 +8387,8 @@ case 571: } ; break;} -case 572: -#line 3183 "gram.y" +case 575: +#line 3212 "gram.y" { char *type, *c; if ((yyvsp[-1].str == NULL) || (strcasecmp(yyvsp[-1].str, "sql_text") == 0)) { @@ -8421,56 +8409,56 @@ case 572: yyval.str = type; ; break;} -case 573: -#line 3202 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; - break;} -case 574: -#line 3203 "gram.y" -{ yyval.str = xlateSqlType("varchar"); ; - break;} -case 575: -#line 3204 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; - break;} case 576: -#line 3205 "gram.y" +#line 3231 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} case 577: -#line 3208 "gram.y" -{ yyval.boolean = TRUE; ; +#line 3232 "gram.y" +{ yyval.str = xlateSqlType("varchar"); ; break;} case 578: -#line 3209 "gram.y" -{ yyval.boolean = FALSE; ; +#line 3233 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} case 579: -#line 3212 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 3234 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} case 580: -#line 3213 "gram.y" -{ yyval.str = NULL; ; +#line 3237 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 581: -#line 3216 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 3238 "gram.y" +{ yyval.boolean = FALSE; ; break;} case 582: -#line 3217 "gram.y" -{ yyval.str = NULL; ; +#line 3241 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 583: -#line 3221 "gram.y" +#line 3242 "gram.y" +{ yyval.str = NULL; ; + break;} +case 584: +#line 3245 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 585: +#line 3246 "gram.y" +{ yyval.str = NULL; ; + break;} +case 586: +#line 3250 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 584: -#line 3227 "gram.y" +case 587: +#line 3256 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("timestamp"); @@ -8478,104 +8466,104 @@ case 584: yyval.typnam->typmod = -1; ; break;} -case 585: -#line 3234 "gram.y" +case 588: +#line 3263 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("time"); yyval.typnam->typmod = -1; ; break;} -case 586: -#line 3240 "gram.y" +case 589: +#line 3269 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("interval"); yyval.typnam->typmod = -1; ; break;} -case 587: -#line 3247 "gram.y" +case 590: +#line 3276 "gram.y" { yyval.str = "year"; ; break;} -case 588: -#line 3248 "gram.y" +case 591: +#line 3277 "gram.y" { yyval.str = "month"; ; break;} -case 589: -#line 3249 "gram.y" +case 592: +#line 3278 "gram.y" { yyval.str = "day"; ; break;} -case 590: -#line 3250 "gram.y" +case 593: +#line 3279 "gram.y" { yyval.str = "hour"; ; break;} -case 591: -#line 3251 "gram.y" +case 594: +#line 3280 "gram.y" { yyval.str = "minute"; ; break;} -case 592: -#line 3252 "gram.y" +case 595: +#line 3281 "gram.y" { yyval.str = "second"; ; break;} -case 593: -#line 3255 "gram.y" +case 596: +#line 3284 "gram.y" { yyval.boolean = TRUE; ; break;} -case 594: -#line 3256 "gram.y" +case 597: +#line 3285 "gram.y" { yyval.boolean = FALSE; ; break;} -case 595: -#line 3259 "gram.y" +case 598: +#line 3288 "gram.y" { yyval.list = lcons(yyvsp[0].str, NIL); ; break;} -case 596: -#line 3260 "gram.y" -{ yyval.list = NIL; ; - break;} -case 597: -#line 3261 "gram.y" -{ yyval.list = NIL; ; - break;} -case 598: -#line 3262 "gram.y" -{ yyval.list = NIL; ; - break;} case 599: -#line 3263 "gram.y" +#line 3289 "gram.y" { yyval.list = NIL; ; break;} case 600: -#line 3264 "gram.y" +#line 3290 "gram.y" { yyval.list = NIL; ; break;} case 601: -#line 3265 "gram.y" +#line 3291 "gram.y" { yyval.list = NIL; ; break;} case 602: -#line 3266 "gram.y" +#line 3292 "gram.y" { yyval.list = NIL; ; break;} case 603: -#line 3267 "gram.y" +#line 3293 "gram.y" { yyval.list = NIL; ; break;} case 604: -#line 3278 "gram.y" -{ yyval.node = yyvsp[0].node; ; +#line 3294 "gram.y" +{ yyval.list = NIL; ; break;} case 605: -#line 3280 "gram.y" +#line 3295 "gram.y" +{ yyval.list = NIL; ; + break;} +case 606: +#line 3296 "gram.y" +{ yyval.list = NIL; ; + break;} +case 607: +#line 3307 "gram.y" +{ yyval.node = yyvsp[0].node; ; + break;} +case 608: +#line 3309 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Null; yyval.node = (Node *)n; ; break;} -case 606: -#line 3297 "gram.y" +case 609: +#line 3326 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -8586,8 +8574,8 @@ case 606: yyval.node = (Node *)n; ; break;} -case 607: -#line 3307 "gram.y" +case 610: +#line 3336 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -8598,8 +8586,8 @@ case 607: yyval.node = (Node *)n; ; break;} -case 608: -#line 3317 "gram.y" +case 611: +#line 3346 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -8613,8 +8601,8 @@ case 608: yyval.node = (Node *)n; ; break;} -case 609: -#line 3330 "gram.y" +case 612: +#line 3359 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -8628,87 +8616,87 @@ case 609: yyval.node = (Node *)n; ; break;} -case 610: -#line 3343 "gram.y" +case 613: +#line 3372 "gram.y" { yyval.node = makeRowExpr(yyvsp[-3].str, yyvsp[-5].list, yyvsp[-1].list); ; break;} -case 611: -#line 3349 "gram.y" +case 614: +#line 3378 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 612: -#line 3355 "gram.y" +case 615: +#line 3384 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 613: -#line 3359 "gram.y" +case 616: +#line 3388 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 614: -#line 3364 "gram.y" +case 617: +#line 3393 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 615: -#line 3365 "gram.y" +case 618: +#line 3394 "gram.y" { yyval.str = "<"; ; break;} -case 616: -#line 3366 "gram.y" +case 619: +#line 3395 "gram.y" { yyval.str = "="; ; break;} -case 617: -#line 3367 "gram.y" +case 620: +#line 3396 "gram.y" { yyval.str = ">"; ; break;} -case 618: -#line 3368 "gram.y" +case 621: +#line 3397 "gram.y" { yyval.str = "+"; ; break;} -case 619: -#line 3369 "gram.y" +case 622: +#line 3398 "gram.y" { yyval.str = "-"; ; break;} -case 620: -#line 3370 "gram.y" +case 623: +#line 3399 "gram.y" { yyval.str = "*"; ; break;} -case 621: -#line 3371 "gram.y" +case 624: +#line 3400 "gram.y" { yyval.str = "/"; ; break;} -case 622: -#line 3374 "gram.y" +case 625: +#line 3403 "gram.y" { yyval.ival = ANY_SUBLINK; ; break;} -case 623: -#line 3375 "gram.y" +case 626: +#line 3404 "gram.y" { yyval.ival = ALL_SUBLINK; ; break;} -case 624: -#line 3387 "gram.y" +case 627: +#line 3416 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 625: -#line 3392 "gram.y" +case 628: +#line 3421 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 626: -#line 3394 "gram.y" +case 629: +#line 3423 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 627: -#line 3396 "gram.y" +case 630: +#line 3425 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -8717,52 +8705,52 @@ case 627: yyval.node = (Node *)n; ; break;} -case 628: -#line 3404 "gram.y" +case 631: +#line 3433 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 629: -#line 3406 "gram.y" +case 632: +#line 3435 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 630: -#line 3408 "gram.y" +case 633: +#line 3437 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 631: -#line 3410 "gram.y" +case 634: +#line 3439 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 632: -#line 3412 "gram.y" +case 635: +#line 3441 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 633: -#line 3414 "gram.y" +case 636: +#line 3443 "gram.y" { yyval.node = makeA_Expr(OP, "<", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 634: -#line 3416 "gram.y" +case 637: +#line 3445 "gram.y" { yyval.node = makeA_Expr(OP, ">", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 635: -#line 3418 "gram.y" +case 638: +#line 3447 "gram.y" { yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 636: -#line 3420 "gram.y" +case 639: +#line 3449 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 637: -#line 3422 "gram.y" +case 640: +#line 3451 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 638: -#line 3424 "gram.y" +case 641: +#line 3453 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 639: -#line 3426 "gram.y" +case 642: +#line 3455 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8779,8 +8767,8 @@ case 639: } ; break;} -case 640: -#line 3442 "gram.y" +case 643: +#line 3471 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8797,32 +8785,32 @@ case 640: } ; break;} -case 641: -#line 3458 "gram.y" +case 644: +#line 3487 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 642: -#line 3460 "gram.y" +case 645: +#line 3489 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 643: -#line 3462 "gram.y" +case 646: +#line 3491 "gram.y" { yyval.node = makeIndexable("~~", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 644: -#line 3464 "gram.y" +case 647: +#line 3493 "gram.y" { yyval.node = makeA_Expr(OP, "!~~", yyvsp[-3].node, yyvsp[0].node); ; break;} -case 645: -#line 3466 "gram.y" +case 648: +#line 3495 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 646: -#line 3468 "gram.y" +case 649: +#line 3497 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 647: -#line 3470 "gram.y" +case 650: +#line 3499 "gram.y" { /* cheap hack for aggregate (eg. count) */ FuncCall *n = makeNode(FuncCall); @@ -8835,8 +8823,8 @@ case 647: yyval.node = (Node *)n; ; break;} -case 648: -#line 3482 "gram.y" +case 651: +#line 3511 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -8844,8 +8832,8 @@ case 648: yyval.node = (Node *)n; ; break;} -case 649: -#line 3489 "gram.y" +case 652: +#line 3518 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -8853,8 +8841,8 @@ case 649: yyval.node = (Node *)n; ; break;} -case 650: -#line 3496 "gram.y" +case 653: +#line 3525 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8870,8 +8858,8 @@ case 650: yyval.node = (Node *)n; ; break;} -case 651: -#line 3511 "gram.y" +case 654: +#line 3540 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8887,8 +8875,8 @@ case 651: yyval.node = (Node *)n; ; break;} -case 652: -#line 3526 "gram.y" +case 655: +#line 3555 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8911,8 +8899,8 @@ case 652: yyval.node = (Node *)n; ; break;} -case 653: -#line 3548 "gram.y" +case 656: +#line 3577 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8928,8 +8916,8 @@ case 653: yyval.node = (Node *)n; ; break;} -case 654: -#line 3563 "gram.y" +case 657: +#line 3592 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8952,8 +8940,8 @@ case 654: yyval.node = (Node *)n; ; break;} -case 655: -#line 3585 "gram.y" +case 658: +#line 3614 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8961,8 +8949,8 @@ case 655: yyval.node = (Node *)n; ; break;} -case 656: -#line 3592 "gram.y" +case 659: +#line 3621 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8970,8 +8958,8 @@ case 656: yyval.node = (Node *)n; ; break;} -case 657: -#line 3599 "gram.y" +case 660: +#line 3628 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = NIL; @@ -8982,8 +8970,8 @@ case 657: yyval.node = (Node *)n; ; break;} -case 658: -#line 3609 "gram.y" +case 661: +#line 3638 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "date_part"; @@ -8991,8 +8979,8 @@ case 658: yyval.node = (Node *)n; ; break;} -case 659: -#line 3616 "gram.y" +case 662: +#line 3645 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -9000,8 +8988,8 @@ case 659: yyval.node = (Node *)n; ; break;} -case 660: -#line 3623 "gram.y" +case 663: +#line 3652 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -9009,35 +8997,8 @@ case 660: yyval.node = (Node *)n; ; break;} -case 661: -#line 3631 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "btrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} -case 662: -#line 3638 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "ltrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} -case 663: -#line 3645 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "rtrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} case 664: -#line 3652 "gram.y" +#line 3660 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -9046,35 +9007,50 @@ case 664: ; break;} case 665: -#line 3659 "gram.y" -{ yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ; +#line 3667 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "ltrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; break;} case 666: -#line 3661 "gram.y" -{ yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ; +#line 3674 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "rtrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; break;} case 667: -#line 3663 "gram.y" -{ yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ; +#line 3681 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "btrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; break;} case 668: -#line 3665 "gram.y" -{ yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ; +#line 3688 "gram.y" +{ yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ; break;} case 669: -#line 3672 "gram.y" -{ - A_Const *n = makeNode(A_Const); - n->val.type = T_String; - n->val.val.str = "t"; - n->typename = makeNode(TypeName); - n->typename->name = xlateSqlType("bool"); - n->typename->typmod = -1; - yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); - ; +#line 3690 "gram.y" +{ yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ; break;} case 670: -#line 3682 "gram.y" +#line 3692 "gram.y" +{ yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ; + break;} +case 671: +#line 3694 "gram.y" +{ yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ; + break;} +case 672: +#line 3701 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9082,55 +9058,67 @@ case 670: n->typename = makeNode(TypeName); n->typename->name = xlateSqlType("bool"); n->typename->typmod = -1; - yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); - ; - break;} -case 671: -#line 3692 "gram.y" -{ - A_Const *n = makeNode(A_Const); - n->val.type = T_String; - n->val.val.str = "f"; - n->typename = makeNode(TypeName); - n->typename->name = xlateSqlType("bool"); - n->typename->typmod = -1; yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); ; break;} -case 672: -#line 3702 "gram.y" -{ - A_Const *n = makeNode(A_Const); - n->val.type = T_String; - n->val.val.str = "f"; - n->typename = makeNode(TypeName); - n->typename->name = xlateSqlType("bool"); - n->typename->typmod = -1; - yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); - ; - break;} case 673: -#line 3712 "gram.y" +#line 3711 "gram.y" +{ + A_Const *n = makeNode(A_Const); + n->val.type = T_String; + n->val.val.str = "t"; + n->typename = makeNode(TypeName); + n->typename->name = xlateSqlType("bool"); + n->typename->typmod = -1; + yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); + ; + break;} +case 674: +#line 3721 "gram.y" +{ + A_Const *n = makeNode(A_Const); + n->val.type = T_String; + n->val.val.str = "f"; + n->typename = makeNode(TypeName); + n->typename->name = xlateSqlType("bool"); + n->typename->typmod = -1; + yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); + ; + break;} +case 675: +#line 3731 "gram.y" +{ + A_Const *n = makeNode(A_Const); + n->val.type = T_String; + n->val.val.str = "f"; + n->typename = makeNode(TypeName); + n->typename->name = xlateSqlType("bool"); + n->typename->typmod = -1; + yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); + ; + break;} +case 676: +#line 3741 "gram.y" { yyval.node = makeA_Expr(AND, NULL, makeA_Expr(OP, ">=", yyvsp[-4].node, yyvsp[-2].node), makeA_Expr(OP, "<=", yyvsp[-4].node, yyvsp[0].node)); ; break;} -case 674: -#line 3718 "gram.y" +case 677: +#line 3747 "gram.y" { yyval.node = makeA_Expr(OR, NULL, makeA_Expr(OP, "<", yyvsp[-5].node, yyvsp[-2].node), makeA_Expr(OP, ">", yyvsp[-5].node, yyvsp[0].node)); ; break;} -case 675: -#line 3723 "gram.y" +case 678: +#line 3752 "gram.y" { saved_In_Expr = lcons(yyvsp[-1].node,saved_In_Expr); ; break;} -case 676: -#line 3724 "gram.y" +case 679: +#line 3753 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -9145,12 +9133,12 @@ case 676: else yyval.node = yyvsp[-1].node; ; break;} -case 677: -#line 3737 "gram.y" +case 680: +#line 3766 "gram.y" { saved_In_Expr = lcons(yyvsp[-2].node,saved_In_Expr); ; break;} -case 678: -#line 3738 "gram.y" +case 681: +#line 3767 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -9165,8 +9153,8 @@ case 678: else yyval.node = yyvsp[-1].node; ; break;} -case 679: -#line 3752 "gram.y" +case 682: +#line 3781 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -9177,8 +9165,8 @@ case 679: yyval.node = (Node *)n; ; break;} -case 680: -#line 3762 "gram.y" +case 683: +#line 3791 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -9189,48 +9177,12 @@ case 680: yyval.node = (Node *)n; ; break;} -case 681: -#line 3772 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("-",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 682: -#line 3782 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("/",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 683: -#line 3792 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("*",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} case 684: -#line 3802 "gram.y" +#line 3801 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("<",NIL); + n->oper = lcons("-",NIL); n->useor = false; n->subLinkType = EXPR_SUBLINK; n->subselect = yyvsp[-1].node; @@ -9238,11 +9190,11 @@ case 684: ; break;} case 685: -#line 3812 "gram.y" +#line 3811 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons(">",NIL); + n->oper = lcons("/",NIL); n->useor = false; n->subLinkType = EXPR_SUBLINK; n->subselect = yyvsp[-1].node; @@ -9250,7 +9202,43 @@ case 685: ; break;} case 686: -#line 3822 "gram.y" +#line 3821 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("*",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 687: +#line 3831 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("<",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 688: +#line 3841 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons(">",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 689: +#line 3851 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -9261,8 +9249,8 @@ case 686: yyval.node = (Node *)n; ; break;} -case 687: -#line 3832 "gram.y" +case 690: +#line 3861 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9273,44 +9261,44 @@ case 687: yyval.node = (Node *)n; ; break;} -case 688: -#line 3842 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-5].node,NIL); - n->oper = lcons("+",NIL); - n->useor = false; - n->subLinkType = ANY_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 689: -#line 3852 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-5].node,NIL); - n->oper = lcons("-",NIL); - n->useor = false; - n->subLinkType = ANY_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 690: -#line 3862 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-5].node,NIL); - n->oper = lcons("/",NIL); - n->useor = false; - n->subLinkType = ANY_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} case 691: -#line 3872 "gram.y" +#line 3871 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-5].node,NIL); + n->oper = lcons("+",NIL); + n->useor = false; + n->subLinkType = ANY_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 692: +#line 3881 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-5].node,NIL); + n->oper = lcons("-",NIL); + n->useor = false; + n->subLinkType = ANY_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 693: +#line 3891 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-5].node,NIL); + n->oper = lcons("/",NIL); + n->useor = false; + n->subLinkType = ANY_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 694: +#line 3901 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9321,8 +9309,8 @@ case 691: yyval.node = (Node *)n; ; break;} -case 692: -#line 3882 "gram.y" +case 695: +#line 3911 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9333,8 +9321,8 @@ case 692: yyval.node = (Node *)n; ; break;} -case 693: -#line 3892 "gram.y" +case 696: +#line 3921 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9345,8 +9333,8 @@ case 693: yyval.node = (Node *)n; ; break;} -case 694: -#line 3902 "gram.y" +case 697: +#line 3931 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9357,8 +9345,8 @@ case 694: yyval.node = (Node *)n; ; break;} -case 695: -#line 3912 "gram.y" +case 698: +#line 3941 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9369,8 +9357,8 @@ case 695: yyval.node = (Node *)n; ; break;} -case 696: -#line 3922 "gram.y" +case 699: +#line 3951 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9381,8 +9369,8 @@ case 696: yyval.node = (Node *)n; ; break;} -case 697: -#line 3932 "gram.y" +case 700: +#line 3961 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9393,8 +9381,8 @@ case 697: yyval.node = (Node *)n; ; break;} -case 698: -#line 3942 "gram.y" +case 701: +#line 3971 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9405,8 +9393,8 @@ case 698: yyval.node = (Node *)n; ; break;} -case 699: -#line 3952 "gram.y" +case 702: +#line 3981 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9417,8 +9405,8 @@ case 699: yyval.node = (Node *)n; ; break;} -case 700: -#line 3962 "gram.y" +case 703: +#line 3991 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9429,8 +9417,8 @@ case 700: yyval.node = (Node *)n; ; break;} -case 701: -#line 3972 "gram.y" +case 704: +#line 4001 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9441,8 +9429,8 @@ case 701: yyval.node = (Node *)n; ; break;} -case 702: -#line 3982 "gram.y" +case 705: +#line 4011 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9453,35 +9441,35 @@ case 702: yyval.node = (Node *)n; ; break;} -case 703: -#line 3992 "gram.y" +case 706: +#line 4021 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 704: -#line 3994 "gram.y" +case 707: +#line 4023 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 705: -#line 3996 "gram.y" +case 708: +#line 4025 "gram.y" { yyval.node = makeA_Expr(NOT, NULL, NULL, yyvsp[0].node); ; break;} -case 706: -#line 3998 "gram.y" +case 709: +#line 4027 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 707: -#line 4007 "gram.y" +case 710: +#line 4036 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 708: -#line 4012 "gram.y" +case 711: +#line 4041 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 709: -#line 4014 "gram.y" +case 712: +#line 4043 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -9490,40 +9478,40 @@ case 709: yyval.node = (Node *)n; ; break;} -case 710: -#line 4022 "gram.y" +case 713: +#line 4051 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 711: -#line 4024 "gram.y" +case 714: +#line 4053 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 712: -#line 4026 "gram.y" +case 715: +#line 4055 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 713: -#line 4028 "gram.y" +case 716: +#line 4057 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 714: -#line 4030 "gram.y" +case 717: +#line 4059 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 715: -#line 4032 "gram.y" +case 718: +#line 4061 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 716: -#line 4034 "gram.y" +case 719: +#line 4063 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 717: -#line 4036 "gram.y" +case 720: +#line 4065 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 718: -#line 4038 "gram.y" +case 721: +#line 4067 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9540,8 +9528,8 @@ case 718: } ; break;} -case 719: -#line 4054 "gram.y" +case 722: +#line 4083 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9558,24 +9546,24 @@ case 719: } ; break;} -case 720: -#line 4070 "gram.y" +case 723: +#line 4099 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 721: -#line 4072 "gram.y" +case 724: +#line 4101 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 722: -#line 4074 "gram.y" +case 725: +#line 4103 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 723: -#line 4076 "gram.y" +case 726: +#line 4105 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 724: -#line 4078 "gram.y" +case 727: +#line 4107 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -9583,8 +9571,8 @@ case 724: yyval.node = (Node *)n; ; break;} -case 725: -#line 4085 "gram.y" +case 728: +#line 4114 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -9592,8 +9580,8 @@ case 725: yyval.node = (Node *)n; ; break;} -case 726: -#line 4092 "gram.y" +case 729: +#line 4121 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -9609,8 +9597,8 @@ case 726: yyval.node = (Node *)n; ; break;} -case 727: -#line 4107 "gram.y" +case 730: +#line 4136 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -9626,8 +9614,8 @@ case 727: yyval.node = (Node *)n; ; break;} -case 728: -#line 4122 "gram.y" +case 731: +#line 4151 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -9650,8 +9638,8 @@ case 728: yyval.node = (Node *)n; ; break;} -case 729: -#line 4144 "gram.y" +case 732: +#line 4173 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -9667,8 +9655,8 @@ case 729: yyval.node = (Node *)n; ; break;} -case 730: -#line 4159 "gram.y" +case 733: +#line 4188 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -9691,8 +9679,8 @@ case 730: yyval.node = (Node *)n; ; break;} -case 731: -#line 4181 "gram.y" +case 734: +#line 4210 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -9700,8 +9688,8 @@ case 731: yyval.node = (Node *)n; ; break;} -case 732: -#line 4188 "gram.y" +case 735: +#line 4217 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -9709,8 +9697,8 @@ case 732: yyval.node = (Node *)n; ; break;} -case 733: -#line 4195 "gram.y" +case 736: +#line 4224 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -9718,8 +9706,8 @@ case 733: yyval.node = (Node *)n; ; break;} -case 734: -#line 4202 "gram.y" +case 737: +#line 4231 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -9727,35 +9715,8 @@ case 734: yyval.node = (Node *)n; ; break;} -case 735: -#line 4210 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "btrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} -case 736: -#line 4217 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "ltrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} -case 737: -#line 4224 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "rtrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} case 738: -#line 4231 "gram.y" +#line 4239 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -9764,7 +9725,34 @@ case 738: ; break;} case 739: -#line 4240 "gram.y" +#line 4246 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "ltrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; + break;} +case 740: +#line 4253 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "rtrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; + break;} +case 741: +#line 4260 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "btrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; + break;} +case 742: +#line 4269 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = NULL; @@ -9772,8 +9760,8 @@ case 739: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 740: -#line 4247 "gram.y" +case 743: +#line 4276 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = yyvsp[-4].node; @@ -9781,24 +9769,24 @@ case 740: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 741: -#line 4254 "gram.y" +case 744: +#line 4283 "gram.y" { yyval.list = NIL; ; break;} -case 742: -#line 4258 "gram.y" +case 745: +#line 4287 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 743: -#line 4260 "gram.y" +case 746: +#line 4289 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 744: -#line 4262 "gram.y" +case 747: +#line 4291 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 745: -#line 4266 "gram.y" +case 748: +#line 4295 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9806,67 +9794,67 @@ case 745: yyval.list = lappend(lcons((Node *)n,NIL), yyvsp[0].node); ; break;} -case 746: -#line 4273 "gram.y" -{ yyval.list = NIL; ; - break;} -case 747: -#line 4276 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 748: -#line 4277 "gram.y" -{ yyval.str = "tz_hour"; ; - break;} case 749: -#line 4278 "gram.y" -{ yyval.str = "tz_minute"; ; +#line 4302 "gram.y" +{ yyval.list = NIL; ; break;} case 750: -#line 4282 "gram.y" -{ yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ; +#line 4305 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 751: -#line 4284 "gram.y" -{ yyval.list = NIL; ; +#line 4306 "gram.y" +{ yyval.str = "tz_hour"; ; break;} case 752: -#line 4288 "gram.y" +#line 4307 "gram.y" +{ yyval.str = "tz_minute"; ; + break;} +case 753: +#line 4311 "gram.y" +{ yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ; + break;} +case 754: +#line 4313 "gram.y" +{ yyval.list = NIL; ; + break;} +case 755: +#line 4317 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 753: -#line 4293 "gram.y" +case 756: +#line 4322 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 754: -#line 4295 "gram.y" +case 757: +#line 4324 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 755: -#line 4297 "gram.y" +case 758: +#line 4326 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 756: -#line 4299 "gram.y" +case 759: +#line 4328 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 757: -#line 4301 "gram.y" +case 760: +#line 4330 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 758: -#line 4303 "gram.y" +case 761: +#line 4332 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 759: -#line 4305 "gram.y" +case 762: +#line 4334 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 760: -#line 4307 "gram.y" +case 763: +#line 4336 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9883,8 +9871,8 @@ case 760: } ; break;} -case 761: -#line 4323 "gram.y" +case 764: +#line 4352 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9901,24 +9889,24 @@ case 761: } ; break;} -case 762: -#line 4339 "gram.y" +case 765: +#line 4368 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 763: -#line 4341 "gram.y" +case 766: +#line 4370 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 764: -#line 4343 "gram.y" +case 767: +#line 4372 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 765: -#line 4345 "gram.y" +case 768: +#line 4374 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 766: -#line 4347 "gram.y" +case 769: +#line 4376 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -9927,8 +9915,8 @@ case 766: yyval.node = (Node *)n; ; break;} -case 767: -#line 4355 "gram.y" +case 770: +#line 4384 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -9936,8 +9924,8 @@ case 767: yyval.node = (Node *)n; ; break;} -case 768: -#line 4362 "gram.y" +case 771: +#line 4391 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -9945,8 +9933,8 @@ case 768: yyval.node = (Node *)n; ; break;} -case 769: -#line 4369 "gram.y" +case 772: +#line 4398 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -9954,8 +9942,8 @@ case 769: yyval.node = (Node *)n; ; break;} -case 770: -#line 4376 "gram.y" +case 773: +#line 4405 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -9963,35 +9951,8 @@ case 770: yyval.node = (Node *)n; ; break;} -case 771: -#line 4384 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "btrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} -case 772: -#line 4391 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "ltrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} -case 773: -#line 4398 "gram.y" -{ - FuncCall *n = makeNode(FuncCall); - n->funcname = "rtrim"; - n->args = yyvsp[-1].list; - yyval.node = (Node *)n; - ; - break;} case 774: -#line 4405 "gram.y" +#line 4413 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -10000,21 +9961,48 @@ case 774: ; break;} case 775: -#line 4414 "gram.y" +#line 4420 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "ltrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; + break;} +case 776: +#line 4427 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "rtrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; + break;} +case 777: +#line 4434 "gram.y" +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = "btrim"; + n->args = yyvsp[-1].list; + yyval.node = (Node *)n; + ; + break;} +case 778: +#line 4443 "gram.y" { yyval.list = nconc(nconc(yyvsp[-2].list,yyvsp[-1].list),yyvsp[0].list); ; break;} -case 776: -#line 4418 "gram.y" +case 779: +#line 4447 "gram.y" { yyval.list = NIL; ; break;} -case 777: -#line 4422 "gram.y" +case 780: +#line 4451 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 778: -#line 4424 "gram.y" +case 781: +#line 4453 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -10022,72 +10010,72 @@ case 778: yyval.list = lcons((Node *)n,NIL); ; break;} -case 779: -#line 4433 "gram.y" +case 782: +#line 4462 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 780: -#line 4435 "gram.y" +case 783: +#line 4464 "gram.y" { yyval.list = NIL; ; break;} -case 781: -#line 4439 "gram.y" +case 784: +#line 4468 "gram.y" { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); ; break;} -case 782: -#line 4441 "gram.y" +case 785: +#line 4470 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 783: -#line 4443 "gram.y" +case 786: +#line 4472 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 784: -#line 4447 "gram.y" +case 787: +#line 4476 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 785: -#line 4453 "gram.y" +case 788: +#line 4482 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 786: -#line 4457 "gram.y" +case 789: +#line 4486 "gram.y" { yyval.node = makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 787: -#line 4459 "gram.y" +case 790: +#line 4488 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 788: -#line 4465 "gram.y" +case 791: +#line 4494 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 789: -#line 4471 "gram.y" +case 792: +#line 4500 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 790: -#line 4475 "gram.y" +case 793: +#line 4504 "gram.y" { yyval.node = makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 791: -#line 4477 "gram.y" +case 794: +#line 4506 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 792: -#line 4498 "gram.y" +case 795: +#line 4527 "gram.y" { CaseExpr *c = makeNode(CaseExpr); c->arg = yyvsp[-3].node; @@ -10096,8 +10084,8 @@ case 792: yyval.node = (Node *)c; ; break;} -case 793: -#line 4506 "gram.y" +case 796: +#line 4535 "gram.y" { CaseExpr *c = makeNode(CaseExpr); CaseWhen *w = makeNode(CaseWhen); @@ -10109,8 +10097,8 @@ case 793: elog(NOTICE,"NULLIF() not yet fully implemented"); ; break;} -case 794: -#line 4517 "gram.y" +case 797: +#line 4546 "gram.y" { CaseExpr *c = makeNode(CaseExpr); CaseWhen *w; @@ -10127,16 +10115,16 @@ case 794: elog(NOTICE,"COALESCE() not yet fully implemented"); ; break;} -case 795: -#line 4535 "gram.y" +case 798: +#line 4564 "gram.y" { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ; break;} -case 796: -#line 4537 "gram.y" +case 799: +#line 4566 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 797: -#line 4541 "gram.y" +case 800: +#line 4570 "gram.y" { CaseWhen *w = makeNode(CaseWhen); w->expr = yyvsp[-2].node; @@ -10144,23 +10132,23 @@ case 797: yyval.node = (Node *)w; ; break;} -case 798: -#line 4549 "gram.y" +case 801: +#line 4578 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 799: -#line 4550 "gram.y" +case 802: +#line 4579 "gram.y" { yyval.node = NULL; ; break;} -case 800: -#line 4554 "gram.y" +case 803: +#line 4583 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 801: -#line 4559 "gram.y" +case 804: +#line 4588 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -10169,12 +10157,12 @@ case 801: yyval.node = (Node *)n; ; break;} -case 802: -#line 4567 "gram.y" +case 805: +#line 4596 "gram.y" { yyval.node = NULL; ; break;} -case 803: -#line 4571 "gram.y" +case 806: +#line 4600 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = yyvsp[-2].str; @@ -10183,8 +10171,8 @@ case 803: yyval.attr->indirection = NULL; ; break;} -case 804: -#line 4579 "gram.y" +case 807: +#line 4608 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = NULL; @@ -10193,28 +10181,28 @@ case 804: yyval.attr->indirection = NULL; ; break;} -case 805: -#line 4589 "gram.y" +case 808: +#line 4618 "gram.y" { yyval.list = lcons(makeString(yyvsp[0].str), NIL); ; break;} -case 806: -#line 4591 "gram.y" +case 809: +#line 4620 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); ; break;} -case 807: -#line 4593 "gram.y" +case 810: +#line 4622 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString("*")); ; break;} -case 808: -#line 4604 "gram.y" +case 811: +#line 4633 "gram.y" { yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target); ; break;} -case 809: -#line 4606 "gram.y" +case 812: +#line 4635 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 810: -#line 4608 "gram.y" +case 813: +#line 4637 "gram.y" { ResTarget *rt = makeNode(ResTarget); Attr *att = makeNode(Attr); @@ -10228,8 +10216,8 @@ case 810: yyval.list = lcons(rt, NIL); ; break;} -case 811: -#line 4623 "gram.y" +case 814: +#line 4652 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[-3].str; @@ -10237,8 +10225,8 @@ case 811: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 812: -#line 4630 "gram.y" +case 815: +#line 4659 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -10246,8 +10234,8 @@ case 812: yyval.target->val = (Node *)yyvsp[-1].attr; ; break;} -case 813: -#line 4637 "gram.y" +case 816: +#line 4666 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -10260,16 +10248,16 @@ case 813: yyval.target->val = (Node *)att; ; break;} -case 814: -#line 4656 "gram.y" +case 817: +#line 4685 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); ; break;} -case 815: -#line 4658 "gram.y" +case 818: +#line 4687 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 816: -#line 4663 "gram.y" +case 819: +#line 4692 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[0].str; @@ -10277,8 +10265,8 @@ case 816: yyval.target->val = (Node *)yyvsp[-2].node; ; break;} -case 817: -#line 4670 "gram.y" +case 820: +#line 4699 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -10286,8 +10274,8 @@ case 817: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 818: -#line 4677 "gram.y" +case 821: +#line 4706 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -10300,8 +10288,8 @@ case 818: yyval.target->val = (Node *)att; ; break;} -case 819: -#line 4689 "gram.y" +case 822: +#line 4718 "gram.y" { Attr *att = makeNode(Attr); att->relname = "*"; @@ -10314,23 +10302,23 @@ case 819: yyval.target->val = (Node *)att; ; break;} -case 820: -#line 4702 "gram.y" +case 823: +#line 4731 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 821: -#line 4703 "gram.y" +case 824: +#line 4732 "gram.y" { yyval.str = NULL; ; break;} -case 822: -#line 4707 "gram.y" +case 825: +#line 4736 "gram.y" { yyval.str = yyvsp[0].str; StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 823: -#line 4712 "gram.y" +case 826: +#line 4741 "gram.y" { /* disallow refs to variable system tables */ if (strcmp(LogRelationName, yyvsp[0].str) == 0 @@ -10341,44 +10329,44 @@ case 823: StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 824: -#line 4723 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 825: -#line 4724 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 826: -#line 4725 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} case 827: -#line 4726 "gram.y" +#line 4752 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 828: -#line 4727 "gram.y" +#line 4753 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 829: -#line 4733 "gram.y" +#line 4754 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 830: -#line 4734 "gram.y" -{ yyval.str = xlateSqlFunc(yyvsp[0].str); ; +#line 4755 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 831: -#line 4736 "gram.y" +#line 4756 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 832: -#line 4737 "gram.y" +#line 4762 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 833: -#line 4743 "gram.y" +#line 4763 "gram.y" +{ yyval.str = xlateSqlFunc(yyvsp[0].str); ; + break;} +case 834: +#line 4765 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 835: +#line 4766 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 836: +#line 4772 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -10386,8 +10374,8 @@ case 833: yyval.node = (Node *)n; ; break;} -case 834: -#line 4750 "gram.y" +case 837: +#line 4779 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Float; @@ -10395,8 +10383,8 @@ case 834: yyval.node = (Node *)n; ; break;} -case 835: -#line 4757 "gram.y" +case 838: +#line 4786 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -10404,8 +10392,8 @@ case 835: yyval.node = (Node *)n; ; break;} -case 836: -#line 4764 "gram.y" +case 839: +#line 4793 "gram.y" { A_Const *n = makeNode(A_Const); n->typename = yyvsp[-1].typnam; @@ -10414,12 +10402,12 @@ case 836: yyval.node = (Node *)n; ; break;} -case 837: -#line 4772 "gram.y" +case 840: +#line 4801 "gram.y" { yyval.node = (Node *)yyvsp[0].paramno; ; break;} -case 838: -#line 4774 "gram.y" +case 841: +#line 4803 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -10430,8 +10418,8 @@ case 838: yyval.node = (Node *)n; ; break;} -case 839: -#line 4784 "gram.y" +case 842: +#line 4813 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -10442,480 +10430,480 @@ case 839: yyval.node = (Node *)n; ; break;} -case 840: -#line 4796 "gram.y" +case 843: +#line 4825 "gram.y" { yyval.paramno = makeNode(ParamNo); yyval.paramno->number = yyvsp[-1].ival; yyval.paramno->indirection = yyvsp[0].list; ; break;} -case 841: -#line 4803 "gram.y" +case 844: +#line 4832 "gram.y" { yyval.ival = yyvsp[0].ival; ; break;} -case 842: -#line 4804 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 843: -#line 4805 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 844: -#line 4813 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].str); ; - break;} case 845: -#line 4815 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].str); ; +#line 4833 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 846: -#line 4817 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].str); ; +#line 4834 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 847: -#line 4827 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 4842 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].str); ; break;} case 848: -#line 4828 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 4844 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].str); ; break;} case 849: -#line 4829 "gram.y" -{ yyval.str = "absolute"; ; +#line 4846 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].str); ; break;} case 850: -#line 4830 "gram.y" -{ yyval.str = "action"; ; - break;} -case 851: -#line 4831 "gram.y" -{ yyval.str = "after"; ; - break;} -case 852: -#line 4832 "gram.y" -{ yyval.str = "aggregate"; ; - break;} -case 853: -#line 4833 "gram.y" -{ yyval.str = "backward"; ; - break;} -case 854: -#line 4834 "gram.y" -{ yyval.str = "before"; ; - break;} -case 855: -#line 4835 "gram.y" -{ yyval.str = "cache"; ; - break;} -case 856: -#line 4836 "gram.y" -{ yyval.str = "createdb"; ; - break;} -case 857: -#line 4837 "gram.y" -{ yyval.str = "createuser"; ; - break;} -case 858: -#line 4838 "gram.y" -{ yyval.str = "cycle"; ; - break;} -case 859: -#line 4839 "gram.y" -{ yyval.str = "database"; ; - break;} -case 860: -#line 4840 "gram.y" -{ yyval.str = "delimiters"; ; - break;} -case 861: -#line 4841 "gram.y" -{ yyval.str = "double"; ; - break;} -case 862: -#line 4842 "gram.y" -{ yyval.str = "each"; ; - break;} -case 863: -#line 4843 "gram.y" -{ yyval.str = "encoding"; ; - break;} -case 864: -#line 4844 "gram.y" -{ yyval.str = "forward"; ; - break;} -case 865: -#line 4845 "gram.y" -{ yyval.str = "function"; ; - break;} -case 866: -#line 4846 "gram.y" -{ yyval.str = "handler"; ; - break;} -case 867: -#line 4847 "gram.y" -{ yyval.str = "increment"; ; - break;} -case 868: -#line 4848 "gram.y" -{ yyval.str = "index"; ; - break;} -case 869: -#line 4849 "gram.y" -{ yyval.str = "inherits"; ; - break;} -case 870: -#line 4850 "gram.y" -{ yyval.str = "insensitive"; ; - break;} -case 871: -#line 4851 "gram.y" -{ yyval.str = "instead"; ; - break;} -case 872: -#line 4852 "gram.y" -{ yyval.str = "isnull"; ; - break;} -case 873: -#line 4853 "gram.y" -{ yyval.str = "key"; ; - break;} -case 874: -#line 4854 "gram.y" -{ yyval.str = "language"; ; - break;} -case 875: -#line 4855 "gram.y" -{ yyval.str = "lancompiler"; ; - break;} -case 876: #line 4856 "gram.y" -{ yyval.str = "location"; ; - break;} -case 877: -#line 4857 "gram.y" -{ yyval.str = "match"; ; - break;} -case 878: -#line 4858 "gram.y" -{ yyval.str = "maxvalue"; ; - break;} -case 879: -#line 4859 "gram.y" -{ yyval.str = "minvalue"; ; - break;} -case 880: -#line 4860 "gram.y" -{ yyval.str = "next"; ; - break;} -case 881: -#line 4861 "gram.y" -{ yyval.str = "nocreatedb"; ; - break;} -case 882: -#line 4862 "gram.y" -{ yyval.str = "nocreateuser"; ; - break;} -case 883: -#line 4863 "gram.y" -{ yyval.str = "nothing"; ; - break;} -case 884: -#line 4864 "gram.y" -{ yyval.str = "notnull"; ; - break;} -case 885: -#line 4865 "gram.y" -{ yyval.str = "of"; ; - break;} -case 886: -#line 4866 "gram.y" -{ yyval.str = "oids"; ; - break;} -case 887: -#line 4867 "gram.y" -{ yyval.str = "only"; ; - break;} -case 888: -#line 4868 "gram.y" -{ yyval.str = "operator"; ; - break;} -case 889: -#line 4869 "gram.y" -{ yyval.str = "option"; ; - break;} -case 890: -#line 4870 "gram.y" -{ yyval.str = "password"; ; - break;} -case 891: -#line 4871 "gram.y" -{ yyval.str = "prior"; ; - break;} -case 892: -#line 4872 "gram.y" -{ yyval.str = "privileges"; ; - break;} -case 893: -#line 4873 "gram.y" -{ yyval.str = "procedural"; ; - break;} -case 894: -#line 4874 "gram.y" -{ yyval.str = "read"; ; - break;} -case 895: -#line 4875 "gram.y" -{ yyval.str = "recipe"; ; - break;} -case 896: -#line 4876 "gram.y" -{ yyval.str = "relative"; ; - break;} -case 897: -#line 4877 "gram.y" -{ yyval.str = "rename"; ; - break;} -case 898: -#line 4878 "gram.y" -{ yyval.str = "returns"; ; - break;} -case 899: -#line 4879 "gram.y" -{ yyval.str = "row"; ; - break;} -case 900: -#line 4880 "gram.y" -{ yyval.str = "rule"; ; - break;} -case 901: -#line 4881 "gram.y" -{ yyval.str = "scroll"; ; - break;} -case 902: -#line 4882 "gram.y" -{ yyval.str = "sequence"; ; - break;} -case 903: -#line 4883 "gram.y" -{ yyval.str = "serial"; ; - break;} -case 904: -#line 4884 "gram.y" -{ yyval.str = "start"; ; - break;} -case 905: -#line 4885 "gram.y" -{ yyval.str = "statement"; ; - break;} -case 906: -#line 4886 "gram.y" -{ yyval.str = "stdin"; ; - break;} -case 907: -#line 4887 "gram.y" -{ yyval.str = "stdout"; ; - break;} -case 908: -#line 4888 "gram.y" -{ yyval.str = "time"; ; - break;} -case 909: -#line 4889 "gram.y" -{ yyval.str = "timestamp"; ; - break;} -case 910: -#line 4890 "gram.y" -{ yyval.str = "timezone_hour"; ; - break;} -case 911: -#line 4891 "gram.y" -{ yyval.str = "timezone_minute"; ; - break;} -case 912: -#line 4892 "gram.y" -{ yyval.str = "trigger"; ; - break;} -case 913: -#line 4893 "gram.y" -{ yyval.str = "trusted"; ; - break;} -case 914: -#line 4894 "gram.y" -{ yyval.str = "type"; ; - break;} -case 915: -#line 4895 "gram.y" -{ yyval.str = "valid"; ; - break;} -case 916: -#line 4896 "gram.y" -{ yyval.str = "version"; ; - break;} -case 917: -#line 4897 "gram.y" -{ yyval.str = "zone"; ; - break;} -case 918: -#line 4910 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 919: +case 851: +#line 4857 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 852: +#line 4858 "gram.y" +{ yyval.str = "absolute"; ; + break;} +case 853: +#line 4859 "gram.y" +{ yyval.str = "action"; ; + break;} +case 854: +#line 4860 "gram.y" +{ yyval.str = "after"; ; + break;} +case 855: +#line 4861 "gram.y" +{ yyval.str = "aggregate"; ; + break;} +case 856: +#line 4862 "gram.y" +{ yyval.str = "backward"; ; + break;} +case 857: +#line 4863 "gram.y" +{ yyval.str = "before"; ; + break;} +case 858: +#line 4864 "gram.y" +{ yyval.str = "cache"; ; + break;} +case 859: +#line 4865 "gram.y" +{ yyval.str = "createdb"; ; + break;} +case 860: +#line 4866 "gram.y" +{ yyval.str = "createuser"; ; + break;} +case 861: +#line 4867 "gram.y" +{ yyval.str = "cycle"; ; + break;} +case 862: +#line 4868 "gram.y" +{ yyval.str = "database"; ; + break;} +case 863: +#line 4869 "gram.y" +{ yyval.str = "delimiters"; ; + break;} +case 864: +#line 4870 "gram.y" +{ yyval.str = "double"; ; + break;} +case 865: +#line 4871 "gram.y" +{ yyval.str = "each"; ; + break;} +case 866: +#line 4872 "gram.y" +{ yyval.str = "encoding"; ; + break;} +case 867: +#line 4873 "gram.y" +{ yyval.str = "forward"; ; + break;} +case 868: +#line 4874 "gram.y" +{ yyval.str = "function"; ; + break;} +case 869: +#line 4875 "gram.y" +{ yyval.str = "handler"; ; + break;} +case 870: +#line 4876 "gram.y" +{ yyval.str = "increment"; ; + break;} +case 871: +#line 4877 "gram.y" +{ yyval.str = "index"; ; + break;} +case 872: +#line 4878 "gram.y" +{ yyval.str = "inherits"; ; + break;} +case 873: +#line 4879 "gram.y" +{ yyval.str = "insensitive"; ; + break;} +case 874: +#line 4880 "gram.y" +{ yyval.str = "instead"; ; + break;} +case 875: +#line 4881 "gram.y" +{ yyval.str = "isnull"; ; + break;} +case 876: +#line 4882 "gram.y" +{ yyval.str = "key"; ; + break;} +case 877: +#line 4883 "gram.y" +{ yyval.str = "language"; ; + break;} +case 878: +#line 4884 "gram.y" +{ yyval.str = "lancompiler"; ; + break;} +case 879: +#line 4885 "gram.y" +{ yyval.str = "location"; ; + break;} +case 880: +#line 4886 "gram.y" +{ yyval.str = "match"; ; + break;} +case 881: +#line 4887 "gram.y" +{ yyval.str = "maxvalue"; ; + break;} +case 882: +#line 4888 "gram.y" +{ yyval.str = "minvalue"; ; + break;} +case 883: +#line 4889 "gram.y" +{ yyval.str = "next"; ; + break;} +case 884: +#line 4890 "gram.y" +{ yyval.str = "nocreatedb"; ; + break;} +case 885: +#line 4891 "gram.y" +{ yyval.str = "nocreateuser"; ; + break;} +case 886: +#line 4892 "gram.y" +{ yyval.str = "nothing"; ; + break;} +case 887: +#line 4893 "gram.y" +{ yyval.str = "notnull"; ; + break;} +case 888: +#line 4894 "gram.y" +{ yyval.str = "of"; ; + break;} +case 889: +#line 4895 "gram.y" +{ yyval.str = "oids"; ; + break;} +case 890: +#line 4896 "gram.y" +{ yyval.str = "only"; ; + break;} +case 891: +#line 4897 "gram.y" +{ yyval.str = "operator"; ; + break;} +case 892: +#line 4898 "gram.y" +{ yyval.str = "option"; ; + break;} +case 893: +#line 4899 "gram.y" +{ yyval.str = "password"; ; + break;} +case 894: +#line 4900 "gram.y" +{ yyval.str = "prior"; ; + break;} +case 895: +#line 4901 "gram.y" +{ yyval.str = "privileges"; ; + break;} +case 896: +#line 4902 "gram.y" +{ yyval.str = "procedural"; ; + break;} +case 897: +#line 4903 "gram.y" +{ yyval.str = "read"; ; + break;} +case 898: +#line 4904 "gram.y" +{ yyval.str = "recipe"; ; + break;} +case 899: +#line 4905 "gram.y" +{ yyval.str = "relative"; ; + break;} +case 900: +#line 4906 "gram.y" +{ yyval.str = "rename"; ; + break;} +case 901: +#line 4907 "gram.y" +{ yyval.str = "returns"; ; + break;} +case 902: +#line 4908 "gram.y" +{ yyval.str = "row"; ; + break;} +case 903: +#line 4909 "gram.y" +{ yyval.str = "rule"; ; + break;} +case 904: +#line 4910 "gram.y" +{ yyval.str = "scroll"; ; + break;} +case 905: #line 4911 "gram.y" -{ yyval.str = "abort"; ; +{ yyval.str = "sequence"; ; + break;} +case 906: +#line 4912 "gram.y" +{ yyval.str = "serial"; ; + break;} +case 907: +#line 4913 "gram.y" +{ yyval.str = "start"; ; + break;} +case 908: +#line 4914 "gram.y" +{ yyval.str = "statement"; ; + break;} +case 909: +#line 4915 "gram.y" +{ yyval.str = "stdin"; ; + break;} +case 910: +#line 4916 "gram.y" +{ yyval.str = "stdout"; ; + break;} +case 911: +#line 4917 "gram.y" +{ yyval.str = "time"; ; + break;} +case 912: +#line 4918 "gram.y" +{ yyval.str = "timestamp"; ; + break;} +case 913: +#line 4919 "gram.y" +{ yyval.str = "timezone_hour"; ; + break;} +case 914: +#line 4920 "gram.y" +{ yyval.str = "timezone_minute"; ; + break;} +case 915: +#line 4921 "gram.y" +{ yyval.str = "trigger"; ; + break;} +case 916: +#line 4922 "gram.y" +{ yyval.str = "trusted"; ; + break;} +case 917: +#line 4923 "gram.y" +{ yyval.str = "type"; ; + break;} +case 918: +#line 4924 "gram.y" +{ yyval.str = "valid"; ; + break;} +case 919: +#line 4925 "gram.y" +{ yyval.str = "version"; ; break;} case 920: -#line 4912 "gram.y" -{ yyval.str = "analyze"; ; +#line 4926 "gram.y" +{ yyval.str = "zone"; ; break;} case 921: -#line 4913 "gram.y" -{ yyval.str = "binary"; ; +#line 4939 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 922: -#line 4914 "gram.y" -{ yyval.str = "case"; ; +#line 4940 "gram.y" +{ yyval.str = "abort"; ; break;} case 923: -#line 4915 "gram.y" -{ yyval.str = "cluster"; ; +#line 4941 "gram.y" +{ yyval.str = "analyze"; ; break;} case 924: -#line 4916 "gram.y" -{ yyval.str = "coalesce"; ; +#line 4942 "gram.y" +{ yyval.str = "binary"; ; break;} case 925: -#line 4917 "gram.y" -{ yyval.str = "constraint"; ; +#line 4943 "gram.y" +{ yyval.str = "case"; ; break;} case 926: -#line 4918 "gram.y" -{ yyval.str = "copy"; ; +#line 4944 "gram.y" +{ yyval.str = "cluster"; ; break;} case 927: -#line 4919 "gram.y" -{ yyval.str = "cross"; ; +#line 4945 "gram.y" +{ yyval.str = "coalesce"; ; break;} case 928: -#line 4920 "gram.y" -{ yyval.str = "current"; ; +#line 4946 "gram.y" +{ yyval.str = "constraint"; ; break;} case 929: -#line 4921 "gram.y" -{ yyval.str = "do"; ; +#line 4947 "gram.y" +{ yyval.str = "copy"; ; break;} case 930: -#line 4922 "gram.y" -{ yyval.str = "else"; ; +#line 4948 "gram.y" +{ yyval.str = "cross"; ; break;} case 931: -#line 4923 "gram.y" -{ yyval.str = "end"; ; +#line 4949 "gram.y" +{ yyval.str = "current"; ; break;} case 932: -#line 4924 "gram.y" -{ yyval.str = "explain"; ; +#line 4950 "gram.y" +{ yyval.str = "do"; ; break;} case 933: -#line 4925 "gram.y" -{ yyval.str = "extend"; ; +#line 4951 "gram.y" +{ yyval.str = "else"; ; break;} case 934: -#line 4926 "gram.y" -{ yyval.str = "false"; ; +#line 4952 "gram.y" +{ yyval.str = "end"; ; break;} case 935: -#line 4927 "gram.y" -{ yyval.str = "foreign"; ; +#line 4953 "gram.y" +{ yyval.str = "explain"; ; break;} case 936: -#line 4928 "gram.y" -{ yyval.str = "group"; ; +#line 4954 "gram.y" +{ yyval.str = "extend"; ; break;} case 937: -#line 4929 "gram.y" -{ yyval.str = "listen"; ; +#line 4955 "gram.y" +{ yyval.str = "false"; ; break;} case 938: -#line 4930 "gram.y" -{ yyval.str = "load"; ; +#line 4956 "gram.y" +{ yyval.str = "foreign"; ; break;} case 939: -#line 4931 "gram.y" -{ yyval.str = "lock"; ; +#line 4957 "gram.y" +{ yyval.str = "group"; ; break;} case 940: -#line 4932 "gram.y" -{ yyval.str = "move"; ; +#line 4958 "gram.y" +{ yyval.str = "listen"; ; break;} case 941: -#line 4933 "gram.y" -{ yyval.str = "new"; ; +#line 4959 "gram.y" +{ yyval.str = "load"; ; break;} case 942: -#line 4934 "gram.y" -{ yyval.str = "none"; ; +#line 4960 "gram.y" +{ yyval.str = "lock"; ; break;} case 943: -#line 4935 "gram.y" -{ yyval.str = "nullif"; ; +#line 4961 "gram.y" +{ yyval.str = "move"; ; break;} case 944: -#line 4936 "gram.y" -{ yyval.str = "order"; ; +#line 4962 "gram.y" +{ yyval.str = "new"; ; break;} case 945: -#line 4937 "gram.y" -{ yyval.str = "position"; ; +#line 4963 "gram.y" +{ yyval.str = "none"; ; break;} case 946: -#line 4938 "gram.y" -{ yyval.str = "precision"; ; +#line 4964 "gram.y" +{ yyval.str = "nullif"; ; break;} case 947: -#line 4939 "gram.y" -{ yyval.str = "reset"; ; +#line 4965 "gram.y" +{ yyval.str = "order"; ; break;} case 948: -#line 4940 "gram.y" -{ yyval.str = "setof"; ; +#line 4966 "gram.y" +{ yyval.str = "position"; ; break;} case 949: -#line 4941 "gram.y" -{ yyval.str = "show"; ; +#line 4967 "gram.y" +{ yyval.str = "precision"; ; break;} case 950: -#line 4942 "gram.y" -{ yyval.str = "table"; ; +#line 4968 "gram.y" +{ yyval.str = "reset"; ; break;} case 951: -#line 4943 "gram.y" -{ yyval.str = "then"; ; +#line 4969 "gram.y" +{ yyval.str = "setof"; ; break;} case 952: -#line 4944 "gram.y" -{ yyval.str = "transaction"; ; +#line 4970 "gram.y" +{ yyval.str = "show"; ; break;} case 953: -#line 4945 "gram.y" -{ yyval.str = "true"; ; +#line 4971 "gram.y" +{ yyval.str = "table"; ; break;} case 954: -#line 4946 "gram.y" -{ yyval.str = "vacuum"; ; +#line 4972 "gram.y" +{ yyval.str = "then"; ; break;} case 955: -#line 4947 "gram.y" -{ yyval.str = "verbose"; ; +#line 4973 "gram.y" +{ yyval.str = "transaction"; ; break;} case 956: -#line 4948 "gram.y" -{ yyval.str = "when"; ; +#line 4974 "gram.y" +{ yyval.str = "true"; ; break;} case 957: -#line 4952 "gram.y" +#line 4975 "gram.y" +{ yyval.str = "vacuum"; ; + break;} +case 958: +#line 4976 "gram.y" +{ yyval.str = "verbose"; ; + break;} +case 959: +#line 4977 "gram.y" +{ yyval.str = "when"; ; + break;} +case 960: +#line 4981 "gram.y" { if (QueryIsRule) yyval.str = "*CURRENT*"; @@ -10923,8 +10911,8 @@ case 957: elog(ERROR,"CURRENT used in non-rule query"); ; break;} -case 958: -#line 4959 "gram.y" +case 961: +#line 4988 "gram.y" { if (QueryIsRule) yyval.str = "*NEW*"; @@ -10934,7 +10922,7 @@ case 958: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/local/bison/bison.simple" +#line 498 "/usr/share/misc/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -11130,7 +11118,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 4967 "gram.y" +#line 4996 "gram.y" static Node * diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index dc64d1271e..76e9dc1d7f 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.41 1998/12/30 19:56:28 wieck Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.42 1999/01/05 15:46:25 vadim Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -174,7 +174,7 @@ Oid param_type(int t); /* used in parse_expr.c */ %type TriggerForOpt, TriggerForType -%type union_clause, select_list +%type union_clause, select_list, for_update_clause %type join_list %type join_using @@ -2215,6 +2215,8 @@ ViewStmt: CREATE VIEW name AS SelectStmt elog(ERROR,"Order by and Distinct on views is not implemented."); if (((SelectStmt *)n->query)->unionClause != NULL) elog(ERROR,"Views on unions not implemented."); + if (((SelectStmt *)n->query)->forUpdate != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed in CREATE VIEW"); $$ = (Node *)n; } ; @@ -2677,7 +2679,7 @@ opt_of: OF columnList SelectStmt: SELECT opt_unique res_target_list2 result from_clause where_clause group_clause having_clause - union_clause sort_clause + union_clause sort_clause for_update_clause { SelectStmt *n = makeNode(SelectStmt); n->unique = $2; @@ -2689,7 +2691,20 @@ SelectStmt: SELECT opt_unique res_target_list2 n->havingClause = $8; n->unionClause = $9; n->sortClause = $10; - $$ = (Node *)n; + n->forUpdate = $11; + if (n->forUpdate != NULL) + { + if (n->unionClause != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with UNION clause"); + if (n->unique != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with DISTINCT clause"); + if (n->groupClause != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with GROUP BY clause"); + if (n->havingClause != NULL) + elog(ERROR, "SELECT FOR UPDATE is not allowed with HAVING clause"); + } + else + $$ = (Node *)n; } ; @@ -2818,6 +2833,20 @@ having_clause: HAVING a_expr | /*EMPTY*/ { $$ = NULL; } ; +for_update_clause: + FOR UPDATE + { + $$ = lcons(NULL, NULL); + } + | FOR UPDATE OF va_list + { + $$ = $4; + } + | /* EMPTY */ + { + $$ = NULL; + } + ; /***************************************************************************** * diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 0eddad75b6..41730bf346 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parsenodes.h,v 1.64 1998/12/21 12:50:29 wieck Exp $ + * $Id: parsenodes.h,v 1.65 1999/01/05 15:45:49 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -653,6 +653,7 @@ typedef struct SelectStmt bool unionall; /* union without unique sort */ Node *limitOffset; /* # of result tuples to skip */ Node *limitCount; /* # of result tuples to return */ + List *forUpdate; /* FOR UPDATE clause */ } SelectStmt;