Changeset 430
- Timestamp:
- Jul 3, 2020, 7:29:31 PM (4 years ago)
- Location:
- EcnlProtoTool/trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/webapp/webmrbc/MrbParser.cs
r321 r430 7 7 // [this has not been done here to stress-test the skeleton] 8 8 using System; 9 using System.Collections.Generic; 10 using System.Text.RegularExpressions; 9 11 using Bridge; 10 12 using Bridge.Html5; … … 135 137 tLAST_TOKEN = 373, 136 138 yyErrorCode = 256 137 #line 16 7"mrb_parse.jay"139 #line 169 "mrb_parse.jay" 138 140 } 139 141 … … 160 162 /// </summary> 161 163 protected static readonly short[] yyLhs = new short[] { 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 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 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 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 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 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 164 //yyLhs 559 165 -1, 110, 0, 11, 12, 12, 12, 12, 13, 113, 166 13, 14, 15, 16, 16, 16, 16, 114, 17, 17, 167 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 168 17, 17, 47, 47, 47, 47, 47, 47, 47, 47, 169 48, 48, 48, 18, 18, 18, 18, 18, 18, 24, 170 22, 22, 52, 52, 117, 79, 21, 21, 21, 21, 171 21, 21, 21, 21, 21, 21, 21, 84, 84, 90, 172 90, 87, 87, 87, 87, 87, 87, 87, 87, 87, 173 87, 88, 88, 85, 85, 86, 86, 89, 89, 89, 174 89, 89, 89, 89, 89, 81, 81, 81, 81, 81, 175 81, 81, 81, 97, 97, 9, 9, 9, 98, 98, 176 98, 98, 98, 91, 91, 66, 120, 66, 99, 99, 177 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 178 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 179 99, 99, 99, 99, 99, 99, 99, 119, 119, 119, 180 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 181 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 182 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 183 119, 119, 119, 119, 119, 119, 119, 19, 19, 19, 184 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 185 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 186 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 187 19, 19, 19, 19, 19, 19, 19, 19, 19, 42, 188 42, 42, 42, 25, 25, 38, 39, 39, 37, 37, 189 37, 37, 37, 36, 36, 36, 36, 36, 123, 41, 190 44, 43, 43, 122, 122, 35, 35, 35, 35, 49, 191 49, 49, 20, 20, 20, 20, 20, 20, 20, 20, 192 125, 20, 126, 127, 20, 128, 20, 20, 20, 20, 193 20, 20, 20, 20, 20, 20, 20, 20, 20, 129, 194 130, 20, 20, 20, 132, 134, 20, 135, 136, 20, 195 20, 20, 137, 138, 20, 139, 20, 141, 142, 20, 196 143, 20, 144, 145, 20, 147, 148, 20, 20, 20, 197 20, 20, 26, 131, 131, 131, 133, 133, 27, 27, 198 28, 28, 68, 68, 60, 60, 61, 61, 62, 62, 199 62, 62, 62, 62, 62, 62, 62, 69, 69, 69, 200 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 201 69, 69, 70, 70, 71, 71, 71, 74, 74, 73, 202 73, 75, 75, 76, 76, 77, 77, 149, 80, 51, 203 51, 51, 51, 23, 23, 23, 23, 23, 23, 23, 204 23, 23, 150, 78, 151, 78, 29, 30, 30, 31, 205 31, 32, 32, 32, 33, 33, 34, 34, 7, 7, 206 7, 7, 2, 2, 2, 2, 3, 3, 4, 152, 207 4, 4, 4, 5, 5, 6, 6, 105, 124, 124, 208 153, 153, 154, 154, 155, 156, 155, 106, 106, 10, 209 10, 93, 92, 92, 92, 92, 92, 92, 107, 107, 210 8, 8, 8, 8, 40, 40, 40, 40, 40, 46, 211 45, 45, 45, 45, 45, 45, 45, 67, 67, 50, 212 157, 50, 55, 55, 56, 56, 56, 56, 56, 56, 213 56, 56, 56, 56, 56, 56, 56, 56, 56, 83, 214 83, 83, 83, 103, 103, 58, 58, 57, 57, 104, 215 72, 54, 53, 53, 59, 59, 158, 158, 100, 100, 216 159, 159, 101, 102, 102, 1, 160, 1, 63, 63, 217 64, 64, 65, 65, 65, 65, 65, 94, 94, 94, 218 95, 95, 95, 95, 96, 96, 96, 146, 146, 108, 219 108, 109, 109, 111, 111, 116, 116, 118, 115, 121, 220 121, 121, 140, 140, 140, 161, 112, 112, 82, 221 }, yyLen = new short[] { 222 //yyLen 559 223 2, 0, 2, 2, 1, 1, 3, 2, 1, 0, 224 5, 4, 2, 1, 1, 3, 2, 0, 4, 2, 225 3, 3, 3, 3, 3, 4, 1, 3, 3, 3, 226 3, 1, 3, 3, 6, 5, 5, 5, 5, 3, 227 1, 3, 1, 1, 3, 3, 3, 2, 1, 1, 228 1, 1, 1, 4, 0, 5, 2, 3, 4, 5, 229 4, 5, 2, 2, 2, 2, 2, 1, 3, 1, 230 3, 1, 2, 3, 5, 2, 4, 2, 4, 1, 231 3, 1, 3, 2, 3, 1, 2, 1, 4, 3, 232 3, 3, 3, 2, 1, 1, 4, 3, 3, 3, 233 3, 2, 1, 1, 1, 2, 1, 3, 1, 1, 234 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, 235 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 236 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 237 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 238 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 239 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 240 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 241 1, 1, 1, 1, 1, 1, 1, 3, 3, 6, 242 5, 5, 5, 5, 4, 3, 3, 3, 3, 3, 243 3, 3, 3, 3, 4, 4, 2, 2, 3, 3, 244 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 245 3, 2, 2, 3, 3, 3, 3, 6, 1, 1, 246 2, 4, 2, 1, 3, 3, 1, 1, 1, 1, 247 2, 4, 2, 1, 2, 2, 4, 1, 0, 2, 248 2, 2, 1, 1, 2, 1, 2, 3, 4, 3, 249 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 250 0, 4, 0, 0, 5, 0, 3, 3, 3, 2, 251 3, 3, 1, 2, 4, 3, 2, 1, 2, 0, 252 0, 5, 6, 6, 0, 0, 7, 0, 0, 7, 253 5, 4, 0, 0, 9, 0, 6, 0, 0, 8, 254 0, 5, 0, 0, 7, 0, 0, 9, 1, 1, 255 1, 1, 1, 1, 1, 2, 1, 1, 1, 5, 256 1, 2, 1, 1, 1, 3, 1, 3, 1, 4, 257 6, 3, 5, 2, 4, 1, 3, 6, 8, 4, 258 6, 4, 2, 6, 2, 4, 6, 2, 4, 2, 259 4, 1, 1, 1, 3, 1, 4, 1, 4, 1, 260 3, 1, 1, 4, 1, 3, 3, 0, 5, 2, 261 4, 5, 5, 2, 4, 4, 3, 3, 3, 2, 262 1, 4, 0, 5, 0, 5, 5, 1, 1, 6, 263 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 264 1, 1, 1, 1, 2, 3, 1, 2, 1, 0, 265 4, 1, 2, 2, 3, 2, 3, 1, 1, 2, 266 1, 2, 1, 2, 1, 0, 4, 2, 3, 1, 267 4, 2, 1, 1, 1, 1, 1, 2, 2, 3, 268 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 269 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 270 0, 4, 3, 2, 6, 8, 4, 6, 4, 6, 271 2, 4, 6, 2, 4, 2, 4, 1, 0, 1, 272 1, 1, 1, 1, 1, 1, 3, 1, 3, 2, 273 2, 2, 1, 3, 1, 3, 1, 1, 2, 1, 274 1, 1, 2, 2, 1, 1, 0, 4, 1, 2, 275 1, 3, 3, 2, 2, 3, 4, 1, 1, 1, 276 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 277 1, 1, 1, 0, 1, 0, 1, 2, 2, 0, 278 1, 1, 1, 1, 1, 1, 1, 2, 0, 279 }, yyDefRed = new short[] { 280 //yyDefRed 986 281 1, 0, 0, 0, 0, 0, 0, 270, 0, 0, 282 294, 297, 0, 0, 0, 0, 0, 320, 321, 0, 283 0, 0, 462, 461, 463, 464, 0, 0, 9, 0, 284 466, 465, 0, 0, 456, 455, 0, 457, 450, 451, 285 412, 413, 467, 468, 0, 0, 0, 0, 0, 0, 286 0, 0, 289, 0, 0, 0, 0, 0, 0, 427, 287 0, 0, 0, 263, 264, 265, 262, 408, 409, 2, 288 0, 5, 0, 0, 0, 0, 0, 43, 0, 0, 289 0, 267, 0, 26, 0, 51, 0, 0, 4, 0, 290 0, 67, 0, 81, 439, 0, 266, 410, 411, 7, 291 318, 319, 282, 0, 0, 0, 0, 0, 0, 0, 292 0, 0, 0, 322, 0, 460, 268, 0, 106, 310, 293 157, 167, 158, 154, 183, 184, 185, 186, 165, 180, 294 173, 163, 162, 178, 161, 160, 156, 181, 155, 168, 295 172, 174, 166, 159, 175, 182, 177, 0, 0, 0, 296 0, 153, 171, 170, 152, 150, 151, 0, 0, 149, 297 0, 110, 0, 142, 143, 139, 121, 122, 123, 130, 298 127, 129, 124, 125, 144, 145, 131, 132, 136, 126, 299 128, 118, 119, 120, 133, 134, 135, 137, 138, 140, 300 141, 146, 516, 0, 515, 312, 111, 112, 0, 0, 301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302 0, 0, 0, 0, 0, 332, 333, 176, 169, 179, 303 164, 147, 148, 108, 109, 0, 0, 115, 114, 113, 304 430, 435, 434, 552, 555, 0, 0, 0, 556, 554, 305 0, 432, 553, 0, 0, 0, 0, 0, 0, 0, 306 243, 0, 65, 247, 0, 520, 66, 64, 0, 237, 307 283, 63, 236, 0, 389, 62, 0, 0, 546, 17, 308 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 309 0, 13, 0, 0, 0, 0, 0, 0, 0, 229, 310 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 311 0, 444, 443, 445, 446, 0, 441, 442, 425, 419, 312 418, 421, 0, 0, 416, 437, 0, 448, 0, 414, 313 0, 423, 0, 0, 0, 221, 47, 222, 3, 0, 314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317 0, 0, 0, 377, 379, 394, 392, 288, 0, 540, 318 0, 539, 0, 0, 542, 541, 0, 0, 0, 0, 319 0, 0, 0, 83, 383, 0, 286, 0, 103, 0, 320 105, 452, 453, 470, 305, 0, 0, 0, 0, 0, 321 538, 537, 315, 313, 0, 0, 0, 324, 0, 0, 322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 323 0, 0, 0, 302, 0, 116, 0, 0, 0, 0, 324 557, 431, 433, 0, 0, 0, 0, 0, 0, 0, 325 0, 244, 252, 0, 0, 245, 0, 0, 239, 0, 326 0, 238, 249, 0, 0, 285, 46, 0, 0, 0, 327 0, 0, 0, 0, 0, 277, 12, 0, 0, 0, 328 276, 230, 0, 550, 280, 232, 551, 281, 519, 0, 329 0, 80, 0, 0, 0, 0, 0, 0, 491, 490, 330 489, 492, 0, 507, 511, 510, 506, 0, 374, 0, 331 497, 0, 504, 290, 493, 0, 487, 495, 0, 0, 332 0, 447, 0, 0, 0, 428, 426, 417, 438, 449, 333 415, 424, 0, 0, 6, 20, 21, 22, 23, 24, 334 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337 0, 0, 0, 0, 388, 0, 386, 0, 0, 0, 338 532, 0, 387, 0, 533, 0, 0, 188, 0, 42, 339 33, 0, 0, 530, 531, 0, 195, 39, 0, 0, 340 187, 0, 32, 28, 0, 27, 30, 0, 0, 0, 341 84, 54, 57, 0, 0, 0, 0, 0, 0, 107, 342 0, 0, 0, 0, 0, 0, 271, 0, 0, 400, 343 0, 325, 0, 0, 0, 0, 0, 0, 327, 295, 344 326, 298, 0, 0, 0, 0, 0, 0, 0, 0, 345 0, 0, 0, 301, 0, 0, 0, 0, 0, 0, 346 251, 0, 521, 0, 0, 235, 0, 284, 547, 18, 347 0, 25, 194, 0, 0, 0, 0, 0, 0, 0, 348 0, 0, 0, 78, 499, 494, 0, 0, 336, 0, 349 0, 334, 0, 0, 514, 480, 0, 483, 0, 0, 350 485, 0, 508, 512, 440, 0, 429, 0, 0, 0, 351 365, 0, 0, 363, 362, 0, 0, 0, 0, 385, 352 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 353 0, 0, 0, 0, 0, 0, 0, 82, 76, 0, 354 0, 308, 0, 0, 391, 311, 517, 316, 0, 0, 355 0, 0, 0, 402, 403, 0, 0, 330, 0, 0, 356 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 357 0, 117, 436, 300, 0, 0, 0, 0, 246, 0, 358 10, 274, 231, 0, 0, 0, 0, 0, 496, 0, 359 0, 498, 0, 0, 513, 0, 505, 0, 0, 0, 360 291, 0, 420, 0, 0, 502, 0, 0, 0, 0, 361 361, 0, 0, 0, 0, 192, 38, 37, 193, 61, 362 0, 548, 190, 35, 191, 36, 59, 0, 41, 0, 363 0, 0, 0, 0, 381, 382, 0, 0, 74, 0, 364 0, 471, 306, 0, 0, 0, 473, 0, 0, 405, 365 331, 0, 11, 407, 0, 292, 0, 293, 0, 0, 366 303, 0, 0, 0, 335, 0, 0, 0, 337, 373, 367 0, 0, 476, 0, 478, 0, 484, 0, 481, 0, 368 0, 486, 0, 0, 357, 0, 354, 0, 364, 0, 369 359, 0, 0, 378, 395, 393, 189, 34, 0, 0, 370 0, 0, 0, 472, 314, 0, 0, 0, 0, 404, 371 0, 406, 0, 296, 299, 0, 397, 398, 396, 0, 372 0, 0, 0, 371, 0, 369, 372, 0, 0, 0, 373 0, 376, 375, 503, 0, 0, 0, 0, 366, 0, 374 279, 0, 55, 309, 0, 0, 0, 0, 0, 0, 375 0, 0, 0, 0, 0, 368, 477, 0, 474, 479, 376 482, 358, 0, 355, 0, 349, 0, 351, 360, 0, 377 0, 317, 0, 0, 0, 0, 0, 399, 329, 304, 378 0, 370, 0, 0, 0, 0, 0, 0, 475, 356, 379 350, 0, 347, 353, 0, 348, 380 }, yyDgoto = new short[] { 381 //yyDgoto 162 382 1, 193, 63, 313, 314, 64, 65, 66, 67, 112, 383 68, 69, 70, 71, 404, 405, 279, 280, 73, 74, 384 75, 76, 77, 78, 201, 590, 273, 749, 750, 429, 385 908, 618, 742, 838, 842, 447, 448, 449, 564, 260, 386 203, 261, 287, 441, 253, 81, 204, 83, 592, 593, 387 394, 84, 85, 794, 795, 739, 740, 499, 500, 501, 388 678, 679, 680, 291, 450, 255, 226, 205, 214, 797, 389 702, 703, 502, 914, 779, 915, 503, 790, 386, 602, 390 364, 206, 281, 504, 89, 90, 481, 91, 92, 93, 391 283, 227, 306, 94, 95, 608, 566, 118, 229, 567, 392 505, 784, 685, 507, 508, 96, 97, 98, 397, 376, 393 2, 236, 237, 270, 457, 711, 454, 730, 455, 197, 394 638, 471, 446, 263, 647, 198, 284, 665, 285, 300, 395 688, 408, 208, 629, 757, 209, 758, 637, 905, 605, 396 409, 603, 830, 398, 403, 615, 402, 614, 833, 558, 397 560, 559, 513, 239, 240, 241, 426, 604, 509, 510, 398 399, 268, 399 }, yySindex = new short[] { 400 //yySindex 986 401 0, 0, 18871, 19108, 23947, 24440, 22368, 0, 21122, 21122, 402 0, 0, 24208, 22267, 18634, 19700, 19700, 0, 0, 19700, 403 118, 118, 0, 0, 0, 0, 254, 22267, 0, 55, 404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405 0, 0, 0, 0, 21241, 21241, -67, 19226, 0, 20174, 406 20411, 21859, 0, 21653, 852, 997, 1248, 1641, 408, 0, 407 -112, 21359, 21241, 0, 0, 0, 0, 0, 0, 0, 408 671, 0, 846, -34, 14293, 0, -17, 0, -20, 35, 409 0, 0, -36, 0, 161, 0, 10, 296, 0, 298, 410 24324, 0, 349, 0, 0, 19, 0, 0, 0, 0, 411 0, 0, 0, 118, 118, 341, 0, 0, 21122, -92, 412 19345, 386, 344, 0, 127, 0, 0, 19, 0, 0, 413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 0, 4, 0, 0, 0, 0, 19345, 92, 421 -34, 581, 175, 0, 66, 76, 345, 581, 21122, 21122, 422 113, 209, 0, 0, 162, 0, 0, 0, 0, 0, 423 0, 0, 0, 0, 0, 21772, 416, 0, 0, 0, 424 0, 0, 0, 0, 0, 671, 197, 671, 0, 0, 425 639, 0, 0, 21241, 21241, 21241, 21241, 1589, 21241, 13862, 426 0, 456, 0, 0, 478, 0, 0, 0, 19700, 0, 427 0, 0, 0, 19700, 0, 0, 18751, 21122, 0, 0, 428 354, 19345, 0, 216, 202, 224, 19819, 19226, 501, 671, 429 846, 0, 0, 565, 19819, 565, 249, 510, 269, 0, 430 13862, 488, 269, 0, 308, 24556, 337, 0, 0, 575, 431 1625, 0, 0, 0, 0, 1693, 0, 0, 0, 0, 432 0, 0, 738, 1183, 0, 0, 1738, 0, 1840, 0, 433 1866, 0, 562, 311, 324, 0, 0, 0, 0, 17327, 434 21122, 21122, 21122, 21122, 19819, 21122, 21122, 21241, 21241, 21241, 435 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 436 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 437 21241, 21241, 21241, 0, 0, 0, 0, 0, 22718, 0, 438 19700, 0, 22756, 21359, 0, 0, 24122, 21359, 20530, 20530, 439 19226, 21975, 580, 0, 0, 278, 0, -34, 0, 0, 440 0, 0, 0, 0, 0, 22794, 19700, 22867, 19345, 21122, 441 0, 0, 0, 0, 374, 393, 224, 0, 19345, 383, 442 23117, 19700, 23184, 21241, 21241, 21241, 19345, 618, 618, 0, 443 23222, 19700, 23260, 0, 348, 0, 19345, 197, 20648, 398, 444 0, 0, 0, 14293, 14293, 14293, 14293, 21241, 1608, 21241, 445 738, 0, 0, 19937, 19463, 0, 315, 629, 0, 565, 446 631, 0, 0, 61, 621, 0, 0, 22267, 18871, 554, 447 23117, 23184, 21241, 846, 565, 0, 0, 18252, 0, 846, 448 0, 0, 20293, 0, 0, 0, 0, 0, 0, 0, 449 24556, 0, 349, 23336, 19700, 23586, 24556, 626, 0, 0, 450 0, 0, 2276, 0, 0, 0, 0, 1771, 0, 638, 451 0, 648, 0, 0, 0, 659, 0, 0, 21241, 401, 452 406, 0, 1871, 19345, 738, 0, 0, 0, 0, 0, 453 0, 0, 21241, 21241, 0, 0, 0, 0, 0, 0, 454 0, 0, 202, 8856, 8856, 8856, 8856, 3423, 3423, 10863, 455 10250, 8856, 8856, 8138, 8138, 112, 112, 10185, 3423, 3423, 456 1811, 1811, 1477, 25, 25, 202, 202, 202, -71, -71, 457 -71, 372, 0, 376, 0, 118, 0, 0, 565, 391, 458 0, 403, 0, 118, 0, 14738, 421, 0, 509, 0, 459 0, 10, 677, 0, 0, 118, 0, 0, 21241, 14738, 460 0, 456, 0, 0, 14293, 0, 0, 565, 24556, 715, 461 0, 0, 0, 671, 21122, 19345, 0, 0, 118, 0, 462 565, 118, 493, 61, 22680, 2255, 0, 20767, 492, 0, 463 485, 0, 425, 439, 565, 458, 475, 492, 0, 0, 464 0, 0, 0, 0, 565, 0, 0, 21122, 22267, 641, 465 532, 14293, 238, 0, 14293, 21241, 14293, 738, 21241, 13862, 466 0, 478, 0, 738, 19937, 0, 19463, 0, 0, 0, 467 697, 0, 0, 0, 846, 565, 269, 580, 0, 0, 468 565, 0, 0, 0, 0, 0, 2276, 601, 0, 734, 469 565, 0, 565, 1771, 0, 0, 1771, 0, -229, 1229, 470 0, 14293, 0, 0, 0, 699, 0, 202, 202, 768, 471 0, 1341, 19345, 0, 0, 19345, 19345, 21359, 21359, 0, 472 278, 484, 739, 21359, 21359, 0, 278, 21241, 19819, 23653, 473 19700, 23691, 21359, -20, -17, 14293, 20885, 0, 0, 24556, 474 -71, 0, 671, 567, 0, 0, 0, 0, 1771, 19345, 475 671, 14293, 497, 0, 0, 19345, 566, 0, 21122, 589, 476 0, 21241, 21241, 514, 21241, 21241, 591, 19345, 19345, 0, 477 618, 0, 0, 0, 21004, 19345, 14293, 14293, 0, 817, 478 0, 0, 0, 0, 565, 1084, 824, 2325, 0, 832, 479 819, 0, 842, 851, 0, 854, 0, 856, 19345, 19345, 480 0, 854, 0, 21241, 859, 0, 863, 565, 772, 868, 481 0, 24672, 662, 664, 803, 0, 0, 0, 0, 0, 482 21359, 0, 0, 0, 0, 0, 0, 14293, 0, 372, 483 376, 565, 391, 403, 0, 0, 21241, 14293, 0, 19345, 484 19345, 0, 0, 2255, 565, 675, 0, 24788, 581, 0, 485 0, 19345, 0, 0, 581, 0, 21241, 0, 676, 684, 486 0, 14293, 30, 19463, 0, 919, 1084, 974, 0, 0, 487 857, 1771, 0, 1229, 0, 1229, 0, 1229, 0, 700, 488 843, 0, 14293, 1771, 0, 1771, 0, 855, 0, 1229, 489 0, 667, 727, 0, 0, 0, 0, 0, 484, 14293, 490 860, 712, 19345, 0, 0, 687, 830, 0, 0, 0, 491 19345, 0, 19345, 0, 0, 19345, 0, 0, 0, 1084, 492 919, 1084, 954, 0, 275, 0, 0, 854, 958, 854, 493 854, 0, 0, 0, 854, 960, 966, 970, 0, 854, 494 0, 23729, 0, 0, 747, 0, 23805, 19700, 24055, 393, 495 485, 753, 919, 1084, 857, 0, 0, 1229, 0, 0, 496 0, 0, 1229, 0, 1771, 0, 1229, 0, 0, 0, 497 0, 0, 0, 0, 565, 0, 0, 0, 0, 0, 498 919, 0, 854, 854, 854, 982, 854, 0, 0, 0, 499 0, 1229, 0, 0, 854, 0, 500 }, yyRindex = new short[] { 501 //yyRindex 986 502 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 503 0, 0, 0, 0, 749, 10406, 10496, 0, 0, 10600, 504 5486, 5006, 0, 0, 0, 0, 21478, 0, 0, 0, 505 0, 0, 2969, 4046, 0, 0, 3086, 0, 0, 0, 506 0, 0, 0, 0, 0, 0, 0, 228, 18490, 943, 507 918, 109, 0, 0, 0, 0, 0, 0, 0, 0, 508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 509 116, 0, 143, 8564, 1261, 9204, 9010, 0, 9543, 0, 510 12452, 0, 0, 0, 9453, 0, 12542, 0, 0, 0, 511 120, 0, 0, 0, 0, 20056, 0, 0, 0, 0, 512 0, 0, 0, 9647, 8214, 0, 16758, 17089, 0, 0, 513 228, 0, 17846, 0, 0, 0, 0, 0, 0, 0, 514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516 0, 0, 0, 0, 0, 0, 0, 2158, 5080, 5560, 517 6040, 0, 0, 0, 0, 0, 0, 6520, 7000, 0, 518 7476, 0, 7496, 0, 0, 0, 0, 0, 0, 0, 519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 522 2787, 0, 0, 8318, 0, 8761, 0, 0, 0, 0, 523 0, 0, 11, 1403, 0, 0, 0, 0, 0, 0, 524 0, 0, 0, 0, 0, 0, 11282, 0, 0, 0, 525 0, 0, 0, 0, 0, 749, 0, 775, 0, 0, 526 0, 0, 0, 0, 0, 0, 0, 0, 0, 1699, 527 0, 16309, 0, 0, 16309, 0, 0, 0, 304, 0, 528 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 529 0, 178, 0, 0, 10939, 12646, 0, 228, 0, 1022, 530 595, 0, 136, 1016, 0, 1016, 971, 0, 971, 0, 531 0, 0, 940, 0, 0, 0, 0, 1598, 2439, 153, 532 -196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534 0, 0, 0, 9986, 10090, 0, 0, 0, 0, 148, 535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 539 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540 228, 165, 210, 0, 0, 16598, 0, 692, 0, 17609, 541 0, 0, 0, 0, 0, 0, 157, 0, 570, 0, 542 0, 0, 0, 0, 0, 436, 9100, 0, 706, 17729, 543 0, 157, 0, 0, 0, 0, 686, 0, 0, 1426, 544 0, 157, 0, 0, 0, 0, 178, 0, 0, 0, 545 0, 0, 0, 2053, 15958, 16062, 16415, 0, 0, 0, 546 19582, 0, 0, 0, -28, 0, 0, 150, 0, 1016, 547 150, 0, 0, 1016, 0, 0, 0, 0, 178, 0, 548 0, 0, 0, 1001, 1016, 0, 0, 1135, 108, 317, 549 0, 0, 976, 0, 0, 0, 0, 0, 0, 2512, 550 0, 0, 270, 0, 157, 0, 0, 1578, 0, 0, 551 0, 0, 0, 0, 0, 0, 0, 195, 0, 736, 552 0, 736, 0, 0, 0, 736, 0, 0, 0, 1722, 553 0, 0, 0, 178, 1406, 0, 0, 0, 0, 0, 554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555 0, 0, 11030, 14657, 14748, 14839, 15088, 13977, 14226, 15179, 556 15610, 15270, 15519, 2474, 15643, 13364, 13455, 1013, 14317, 14408, 557 13795, 13886, 13546, 12960, 13051, 11121, 11434, 11525, 17966, 17966, 558 18132, 5849, 4409, 7289, 0, 20056, 0, 4526, 980, 5966, 559 0, 6329, 0, 5369, 0, 15923, 11373, 0, 0, 0, 560 0, 13142, 0, 0, 0, 7769, 0, 0, 0, 1989, 561 0, 0, 0, 0, 519, 0, 0, 1016, 0, 295, 562 0, 0, 0, 0, 0, 570, 17206, 17492, 0, 0, 563 980, 8657, 0, 1016, 0, 834, 0, 745, 572, 0, 564 808, 0, 3449, 4889, 980, 3566, 3929, 808, 0, 0, 565 0, 0, 2397, 756, 980, 2682, 2762, 0, 0, 0, 566 0, 320, 0, 0, 16109, 0, 16172, 18989, 0, 16223, 567 0, 16309, 0, 18370, 0, 0, 58, 0, 0, 0, 568 0, 0, 0, 257, 1244, 1016, 971, 653, 1108, 1374, 569 980, 2089, 2130, 0, 0, 0, 0, 332, 0, 433, 570 1016, 0, 307, 0, 0, 0, 0, 0, 0, 0, 571 0, 331, 0, 0, 0, 0, 0, 11616, 11929, 0, 572 0, 106, 762, 0, 0, 762, 178, 0, 0, 0, 573 16635, 12020, 0, 0, 0, 0, 16715, 0, 0, 0, 574 157, 0, 0, 15456, 9896, 942, 0, 0, 0, 0, 575 18132, 0, 0, 0, 0, 0, 0, 0, 505, 570, 576 0, 678, 769, 0, 0, 651, 808, 0, 0, 0, 577 0, 0, 0, 7875, 0, 0, 0, 762, 762, 2708, 578 0, 0, 0, 0, 0, 723, 16262, 16352, 0, 150, 579 0, 0, 0, 2269, 1016, 0, 529, 0, 0, 0, 580 100, 0, 736, 736, 0, 736, 0, 736, 762, 178, 581 0, 736, 0, 0, 85, 0, 85, 106, 0, 85, 582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583 0, 0, 0, 0, 0, 0, 0, 2626, 0, 6446, 584 7406, 980, 6809, 6926, 0, 0, 0, 2607, 0, 178, 585 570, 0, 0, 834, 1016, 0, 0, 0, 0, 0, 586 0, 762, 0, 0, 0, 0, 0, 0, 0, 0, 587 0, 789, 808, 63, 0, 540, 0, 544, 0, 0, 588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589 0, 0, 15762, 0, 0, 103, 0, 0, 0, 0, 590 0, 0, 583, 0, 0, 0, 0, 0, 12113, 8518, 591 0, 0, 570, 0, 0, 0, 0, 1115, 1391, 0, 592 570, 0, 706, 0, 0, 762, 0, 0, 0, 0, 593 569, 0, 579, 0, 182, 0, 0, 736, 736, 736, 594 736, 0, 0, 0, 85, 85, 85, 85, 0, 85, 595 0, 0, 0, 0, 0, 2086, 0, 157, 0, 436, 596 808, 0, 585, 0, 0, 0, 0, 0, 0, 0, 597 0, 0, 0, 0, 0, 0, 0, 0, 0, 2272, 598 1533, 0, 1386, 624, 980, 1535, 1595, 0, 0, 0, 599 592, 0, 736, 85, 85, 85, 85, 1398, 0, 0, 600 0, 0, 0, 0, 85, 0, 601 }, yyGindex = new short[] { 602 //yyGindex 162 603 0, 0, 0, 129, 979, 0, 0, 0, 0, 1073, 604 0, 630, 0, 42, -376, 125, 0, 40, 131, 984, 605 34, 12, -56, 0, 2, 299, 476, 139, -346, -401, 606 0, 151, 0, 0, 0, 74, 174, -355, -12, -47, 607 1436, 3, 0, -235, -334, 1076, 1833, -267, -289, -305, 608 0, 0, 0, 220, -746, 263, -263, 7473, -589, 414, 609 -697, -628, 422, 0, 14, -395, 0, 1082, 0, 0, 610 -483, 0, -616, 0, -593, 159, 0, 0, -68, -518, 611 377, 1669, -2, -745, 1104, -270, -434, -3, -73, -19, 612 -177, -15, 0, -7, 2349, -290, 0, -51, 7, 8, 613 -565, -266, 1099, 48, -584, 0, 0, 0, -77, 0, 614 0, 5, -1, 0, 0, -496, -23, 0, -103, 0, 615 0, -252, -155, 0, 809, 0, 0, 0, 0, 0, 616 0, -203, 0, -417, 0, 0, 0, 0, 0, 0, 617 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 618 0, 0, 0, -261, 0, 880, 0, 0, 0, 0, 619 0, 831, 620 }, yyTable = new short[] { 621 //yyTable 25161 622 88, 631, 372, 267, 416, 326, 228, 375, 259, 264, 623 367, 207, 269, 195, 196, 568, 235, 382, 262, 445, 624 228, 196, 612, 238, 265, 480, 640, 250, 250, 254, 625 254, 250, 299, 254, 506, 196, 475, 498, 113, 113, 626 478, 610, 72, 72, 282, 99, 113, 289, 293, 652, 627 401, 515, 673, 701, 788, 87, 624, 460, 390, 258, 628 307, 196, 362, 288, 292, 253, 634, 360, 242, 329, 629 786, 234, 361, 241, 596, 328, 705, 706, 565, 238, 630 858, 371, 573, 384, 580, 113, 585, 488, 587, 251, 631 251, 259, 264, 251, 781, 558, 443, 253, 385, 242, 632 464, 262, 460, 366, 241, 384, 579, 611, 798, 650, 633 579, 579, 650, 352, 734, 916, 543, 801, 783, 79, 634 565, 787, 573, 286, 113, 412, 370, 923, 753, 670, 635 71, 472, 611, 476, 422, 789, 799, 476, 759, 200, 636 200, 367, 366, 8, 558, 200, 69, 855, 544, 362, 637 79, 242, 82, 8, 360, 358, 241, 359, 258, 361, 638 558, 71, 352, 77, 728, 545, 558, 558, 488, 68, 639 79, 611, 278, 371, 773, 75, 558, 69, 271, 515, 640 468, 71, 470, 515, 316, 318, 320, 322, 558, 252, 641 256, 558, 809, 257, 77, 611, 461, 67, 816, 916, 642 323, 324, 8, 597, 877, 488, 75, 371, 923, 558, 643 417, 418, 858, 388, 77, 445, 480, 389, 396, 485, 644 72, 371, 482, 545, 367, 558, 75, 352, 910, 733, 645 545, 506, 307, 196, 682, 278, 488, 558, 558, 387, 646 427, 543, 275, 558, 238, 786, 430, 829, 234, 442, 647 558, 72, 442, 696, 488, 371, 451, 335, 336, 234, 648 365, 652, 371, 700, 234, 363, 411, 70, 8, 558, 649 250, 72, 746, 544, 282, 250, 781, 254, 467, 234, 650 85, 756, 440, 942, 466, 234, 781, 558, 238, 801, 651 95, 801, 654, 440, 266, 828, 918, 233, 70, 365, 652 421, 82, 745, 558, 428, 73, 545, 411, 925, 373, 653 927, 85, 743, 444, 558, 970, 463, 576, 68, 944, 654 650, 576, 576, 595, 469, 888, 253, 273, 480, 113, 655 255, 85, 525, 526, 527, 528, 73, 251, 430, 200, 656 200, 500, 345, 850, 609, 558, 655, 400, 545, 506, 657 657, 337, 335, 336, 460, 377, 73, 378, 273, 379, 658 572, 663, 599, 835, 255, 821, 545, 460, 451, 72, 659 801, 524, 500, 345, 529, 500, 438, 282, 368, 255, 660 574, 266, 250, 371, 574, 572, 696, 68, 79, 975, 661 500, 369, 515, 383, 451, 515, 459, 453, 456, 71, 662 572, 406, 278, 619, 393, 574, 415, 667, 250, 451, 663 572, 413, 253, 482, 772, 113, 768, 253, 806, 451, 664 574, 414, 419, 250, 813, 815, 630, 630, 484, 565, 665 574, 573, 77, 250, 512, 800, 726, 452, 337, 765, 666 579, 423, 659, 338, 75, 442, 579, 579, 442, 572, 667 228, 907, 591, 591, 891, 579, 88, 651, 652, 480, 668 425, 200, 200, 200, 200, 196, 530, 531, 977, 574, 669 395, 428, 506, 572, 338, 834, 430, 458, 79, 79, 670 114, 114, 451, 369, 202, 202, 666, 764, 211, 72, 671 202, 202, 202, 574, 727, 202, 250, 684, 72, 684, 672 440, 721, 642, 684, 374, 278, 906, 664, 407, 8, 673 736, 476, 8, 8, 113, 488, 934, 369, 410, 29, 674 113, 887, 444, 79, 699, 482, 715, 296, 337, 29, 675 613, 369, 558, 620, 768, 558, 558, 202, 723, 343, 676 681, 627, 465, 579, 558, 712, 488, 558, 558, 85, 677 346, 639, 420, 709, 341, 371, 704, 704, 704, 460, 678 29, 259, 771, 255, 715, 369, 296, 506, 710, 462, 679 343, 262, 369, 259, 73, 234, 716, 778, 29, 344, 680 558, 346, 964, 262, 202, 341, 79, 712, 724, 339, 681 255, 234, 515, 501, 558, 342, 709, 558, 558, 259, 682 720, 712, 340, 474, 230, 14, 732, 231, 232, 262, 683 344, 712, 731, 477, 500, 744, 747, 479, 747, 486, 684 339, 737, 196, 761, 600, 747, 342, 501, 234, 558, 685 601, 228, 113, 340, 100, 900, 14, 522, 695, 760, 686 233, 902, 501, 616, 29, 775, 196, 712, 611, 442, 687 523, 576, 807, 621, 14, 824, 482, 576, 576, 780, 688 617, 558, 658, 86, 531, 511, 576, 643, 769, 246, 689 278, 854, 577, 653, 79, 656, 586, 233, 780, 661, 690 483, 234, 683, 100, 202, 202, 255, 674, 401, 255, 691 255, 591, 686, 369, 86, 500, 558, 500, 391, 392, 692 500, 500, 307, 689, 558, 558, 692, 501, 558, 572, 693 558, 693, 577, 586, 86, 278, 558, 707, 451, 718, 694 14, 708, 255, 321, 681, 776, 309, 310, 704, 574, 695 233, 893, 250, 558, 202, 200, 713, 401, 722, 202, 696 839, 831, 202, 202, 843, 558, 558, 79, 714, 836, 697 844, 307, 79, 79, 576, 558, 748, 745, 818, 729, 698 79, 662, 735, 113, 745, 558, 762, 442, 200, 630, 699 751, 296, 558, 371, 780, 311, 312, 558, 777, 558, 700 684, 684, 558, 684, 752, 684, 29, 29, 29, 684, 701 29, 29, 684, 29, 684, 558, 531, 684, 712, 257, 702 92, 763, 278, 754, 558, 79, 202, 202, 202, 202, 703 79, 202, 202, 29, 29, 29, 29, 29, 396, 938, 704 755, 558, 770, 681, 792, 681, 793, 802, 558, 810, 705 803, 804, 811, 257, 841, 113, 832, 558, 558, 558, 706 558, 558, 558, 837, 488, 242, 202, 278, 257, 578, 707 747, 407, 719, 578, 578, 202, 79, 296, 845, 846, 708 847, 853, 14, 14, 14, 369, 14, 14, 856, 14, 709 840, 113, 202, 859, 79, 202, 371, 521, 860, 200, 710 309, 310, 848, 849, 79, 29, 861, 202, 29, 29, 711 852, 945, 79, 488, 100, 863, 878, 202, 865, 628, 712 867, 242, 79, 873, 681, 912, 675, 875, 488, 489, 713 490, 491, 879, 869, 870, 684, 684, 684, 684, 558, 714 558, 937, 684, 684, 684, 684, 572, 684, 885, 311, 715 312, 883, 86, 884, 79, 451, 558, 619, 747, 558, 716 558, 712, 261, 79, 894, 903, 574, 230, 401, 250, 717 231, 232, 261, 904, 890, 558, 296, 681, 558, 681, 718 202, 14, 296, 909, 14, 14, 901, 278, 922, 921, 719 684, 684, 684, 684, 684, 558, 930, 558, 558, 928, 720 278, 933, 684, 261, 230, 932, 256, 231, 232, 79, 721 100, 681, 558, 100, 100, 558, 935, 558, 943, 249, 722 249, 261, 947, 249, 952, 431, 805, 808, 231, 232, 723 954, 16, 812, 814, 956, 558, 961, 558, 911, 558, 724 558, 558, 969, 543, 401, 939, 981, 940, 272, 274, 725 941, 558, 242, 249, 290, 100, 558, 230, 242, 558, 726 231, 232, 16, 558, 401, 325, 327, 401, 401, 544, 727 805, 808, 558, 812, 814, 558, 558, 545, 307, 257, 728 16, 307, 307, 543, 549, 549, 242, 261, 242, 551, 729 931, 545, 558, 545, 296, 558, 558, 558, 119, 968, 730 202, 79, 194, 369, 86, 86, 116, 116, 660, 558, 731 967, 558, 558, 558, 213, 926, 892, 782, 774, 278, 732 558, 825, 558, 971, 230, 558, 558, 231, 232, 886, 733 242, 558, 278, 202, 558, 558, 216, 473, 90, 473, 734 432, 514, 0, 473, 0, 95, 16, 0, 558, 86, 735 0, 558, 558, 298, 0, 558, 0, 0, 558, 558, 736 330, 331, 332, 333, 334, 886, 0, 543, 530, 90, 737 0, 0, 90, 0, 534, 257, 0, 0, 257, 257, 738 242, 460, 913, 0, 488, 489, 490, 491, 308, 90, 739 309, 310, 298, 936, 95, 0, 544, 0, 79, 0, 740 0, 79, 79, 578, 202, 0, 369, 0, 0, 578, 741 578, 0, 86, 0, 79, 0, 202, 0, 578, 534, 742 488, 0, 0, 488, 488, 296, 460, 0, 0, 261, 743 261, 261, 261, 261, 261, 79, 261, 0, 0, 311, 744 312, 79, 0, 0, 202, 0, 0, 433, 434, 435, 745 436, 534, 325, 79, 79, 0, 261, 261, 261, 261, 746 261, 79, 249, 0, 0, 0, 0, 249, 242, 242, 747 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 748 544, 48, 0, 0, 79, 79, 0, 495, 16, 16, 749 16, 48, 16, 16, 0, 16, 0, 882, 0, 675, 750 86, 488, 489, 490, 491, 15, 578, 0, 261, 543, 751 543, 543, 517, 543, 543, 517, 543, 517, 242, 517, 752 0, 517, 48, 15, 0, 79, 79, 0, 261, 0, 753 0, 261, 261, 896, 315, 309, 310, 79, 0, 0, 754 48, 532, 533, 534, 535, 536, 537, 538, 539, 540, 755 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 756 551, 552, 553, 554, 555, 556, 557, 0, 0, 0, 757 0, 234, 0, 86, 249, 0, 0, 575, 86, 86, 758 0, 575, 589, 594, 311, 312, 86, 16, 79, 15, 759 16, 16, 0, 0, 0, 0, 79, 298, 79, 495, 760 249, 79, 0, 496, 92, 95, 48, 90, 534, 675, 761 0, 488, 489, 490, 491, 249, 98, 575, 575, 575, 762 0, 102, 544, 544, 544, 249, 544, 544, 96, 544, 763 0, 86, 641, 202, 531, 92, 86, 517, 92, 0, 764 278, 644, 0, 646, 0, 0, 530, 649, 290, 0, 765 0, 676, 534, 0, 242, 92, 0, 268, 80, 80, 766 115, 115, 115, 0, 391, 98, 575, 94, 212, 268, 767 102, 534, 0, 0, 0, 581, 649, 96, 460, 581, 768 581, 0, 86, 298, 534, 278, 0, 0, 249, 0, 769 93, 460, 279, 242, 0, 0, 0, 534, 0, 0, 770 86, 95, 268, 80, 95, 95, 0, 297, 0, 391, 771 86, 517, 691, 0, 268, 0, 0, 473, 86, 516, 772 0, 309, 310, 0, 0, 0, 697, 698, 86, 534, 773 0, 15, 15, 15, 362, 15, 15, 279, 15, 360, 774 358, 391, 359, 0, 361, 0, 297, 0, 48, 48, 775 48, 48, 48, 48, 675, 48, 488, 489, 490, 491, 776 86, 0, 48, 278, 0, 97, 80, 0, 0, 86, 777 311, 312, 48, 48, 0, 48, 48, 48, 48, 48, 778 0, 0, 298, 242, 0, 317, 309, 310, 298, 0, 779 0, 242, 725, 531, 0, 530, 492, 278, 0, 278, 780 0, 530, 0, 494, 0, 0, 0, 0, 494, 0, 781 0, 242, 278, 0, 97, 86, 0, 0, 0, 0, 782 687, 741, 0, 0, 690, 99, 0, 0, 87, 0, 783 15, 0, 0, 15, 15, 311, 312, 0, 0, 494, 784 0, 0, 494, 0, 278, 0, 530, 48, 0, 766, 785 48, 48, 767, 0, 80, 531, 0, 494, 649, 87, 786 290, 531, 87, 0, 460, 0, 487, 0, 488, 489, 787 490, 491, 0, 92, 99, 0, 98, 278, 530, 87, 788 0, 102, 0, 495, 0, 497, 534, 496, 96, 242, 789 0, 87, 87, 0, 0, 242, 0, 0, 391, 0, 790 298, 215, 102, 0, 0, 0, 531, 86, 492, 460, 791 0, 575, 575, 0, 493, 494, 0, 575, 575, 255, 792 0, 817, 494, 0, 249, 101, 575, 80, 0, 255, 793 827, 0, 80, 80, 0, 0, 87, 278, 531, 0, 794 80, 422, 422, 422, 422, 422, 422, 0, 0, 534, 795 278, 297, 509, 0, 268, 575, 575, 0, 575, 575, 796 255, 391, 534, 255, 0, 0, 268, 268, 851, 0, 797 0, 0, 98, 0, 391, 98, 98, 102, 255, 268, 798 102, 102, 0, 509, 96, 80, 509, 96, 96, 279, 799 80, 0, 0, 422, 422, 0, 0, 872, 0, 87, 800 0, 509, 279, 0, 86, 0, 0, 86, 86, 581, 801 0, 0, 255, 0, 575, 581, 581, 0, 0, 0, 802 86, 0, 0, 337, 581, 97, 0, 0, 0, 495, 803 889, 298, 0, 496, 0, 530, 80, 297, 350, 351, 804 0, 86, 0, 0, 255, 0, 0, 86, 0, 0, 805 575, 0, 0, 0, 80, 82, 82, 290, 0, 86, 806 86, 0, 0, 0, 80, 0, 509, 86, 362, 357, 807 0, 0, 80, 360, 358, 0, 359, 0, 361, 0, 808 0, 494, 80, 0, 0, 99, 0, 87, 0, 0, 809 86, 86, 0, 0, 0, 531, 278, 87, 530, 0, 810 82, 862, 864, 116, 866, 0, 868, 0, 0, 278, 811 871, 530, 581, 874, 80, 876, 0, 0, 880, 0, 812 0, 97, 0, 80, 97, 97, 319, 309, 310, 437, 813 0, 86, 86, 0, 0, 0, 297, 0, 0, 898, 814 0, 249, 297, 86, 0, 520, 309, 310, 645, 0, 815 487, 0, 488, 489, 490, 491, 0, 0, 531, 0, 816 87, 460, 494, 82, 494, 87, 87, 494, 494, 80, 817 0, 531, 0, 87, 460, 0, 311, 312, 319, 309, 818 310, 99, 0, 0, 99, 99, 255, 255, 255, 255, 819 255, 255, 492, 255, 86, 311, 312, 0, 493, 494, 820 255, 255, 86, 0, 86, 0, 0, 86, 0, 233, 821 255, 255, 0, 255, 255, 255, 255, 255, 87, 233, 822 0, 0, 0, 87, 0, 509, 0, 0, 311, 312, 823 511, 309, 310, 0, 0, 0, 946, 948, 949, 950, 824 0, 0, 0, 951, 953, 955, 957, 0, 958, 0, 825 233, 82, 0, 255, 297, 0, 0, 0, 0, 0, 826 0, 80, 582, 0, 0, 0, 582, 582, 233, 87, 827 0, 255, 0, 523, 0, 518, 309, 310, 0, 0, 828 311, 312, 0, 523, 0, 255, 0, 87, 255, 255, 829 0, 978, 979, 980, 982, 983, 487, 87, 488, 489, 830 490, 491, 0, 985, 0, 87, 509, 0, 509, 0, 831 0, 509, 509, 0, 523, 87, 101, 523, 0, 89, 832 0, 0, 0, 0, 82, 311, 312, 0, 0, 82, 833 82, 0, 523, 0, 233, 0, 0, 82, 492, 0, 834 0, 0, 0, 0, 493, 494, 0, 87, 0, 530, 835 89, 0, 279, 89, 0, 530, 87, 337, 80, 0, 836 91, 80, 80, 0, 0, 101, 523, 0, 0, 0, 837 89, 0, 350, 351, 80, 0, 0, 519, 309, 310, 838 0, 0, 82, 0, 0, 297, 0, 82, 176, 0, 839 531, 91, 0, 0, 91, 80, 531, 279, 523, 0, 840 530, 80, 87, 520, 309, 310, 0, 0, 694, 309, 841 310, 91, 0, 80, 80, 0, 176, 0, 176, 0, 842 176, 80, 0, 0, 462, 0, 82, 311, 312, 0, 843 82, 82, 530, 82, 0, 0, 0, 176, 0, 0, 844 0, 531, 0, 0, 80, 80, 0, 0, 0, 0, 845 0, 82, 0, 311, 312, 0, 0, 115, 311, 312, 846 0, 82, 0, 0, 0, 0, 0, 0, 0, 82, 847 0, 0, 0, 531, 0, 0, 233, 233, 233, 82, 848 233, 233, 0, 233, 0, 80, 80, 0, 0, 0, 849 0, 0, 0, 897, 87, 0, 0, 80, 0, 88, 850 233, 233, 534, 233, 233, 233, 233, 0, 0, 0, 851 0, 82, 0, 495, 0, 738, 0, 496, 0, 0, 852 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 853 88, 0, 530, 88, 0, 391, 534, 0, 534, 0, 854 523, 523, 523, 523, 523, 523, 0, 523, 80, 0, 855 88, 534, 0, 0, 523, 523, 80, 0, 80, 0, 856 0, 80, 0, 0, 523, 523, 82, 523, 523, 523, 857 523, 523, 0, 117, 117, 233, 101, 0, 233, 233, 858 391, 117, 0, 534, 0, 0, 0, 0, 89, 530, 859 0, 87, 0, 0, 87, 87, 582, 0, 0, 0, 860 0, 0, 582, 582, 0, 0, 0, 87, 0, 0, 861 0, 582, 391, 117, 117, 534, 534, 0, 117, 117, 862 117, 0, 0, 0, 0, 523, 0, 0, 87, 91, 863 531, 117, 0, 0, 87, 0, 0, 0, 0, 523, 864 0, 0, 523, 523, 0, 0, 87, 87, 0, 279, 865 0, 0, 530, 0, 87, 0, 0, 530, 82, 117, 866 0, 90, 279, 534, 0, 530, 0, 0, 0, 94, 867 0, 0, 101, 0, 0, 101, 101, 87, 87, 0, 868 0, 0, 0, 176, 0, 176, 176, 176, 176, 0, 869 0, 0, 0, 531, 196, 0, 0, 0, 0, 582, 870 94, 0, 0, 94, 196, 268, 531, 0, 534, 0, 871 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 872 94, 462, 0, 0, 0, 176, 899, 0, 0, 0, 873 87, 176, 176, 0, 0, 196, 0, 0, 196, 0, 874 534, 0, 93, 0, 176, 0, 0, 176, 176, 0, 875 268, 0, 196, 196, 0, 82, 0, 196, 82, 82, 876 82, 0, 0, 0, 0, 0, 82, 82, 88, 391, 877 0, 82, 534, 93, 0, 82, 93, 0, 279, 0, 878 487, 87, 488, 489, 490, 491, 0, 196, 0, 87, 879 0, 87, 82, 93, 87, 0, 0, 0, 82, 0, 880 0, 675, 0, 488, 489, 490, 491, 0, 0, 0, 881 82, 82, 117, 117, 117, 117, 0, 117, 82, 196, 882 0, 0, 492, 279, 0, 0, 0, 259, 493, 494, 883 0, 0, 391, 0, 0, 534, 0, 259, 0, 0, 884 0, 82, 82, 676, 0, 391, 234, 0, 534, 677, 885 675, 0, 488, 489, 490, 491, 234, 0, 0, 0, 886 0, 0, 0, 82, 117, 0, 0, 0, 259, 0, 887 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 888 0, 0, 82, 82, 0, 0, 259, 234, 0, 0, 889 234, 0, 676, 0, 82, 0, 98, 534, 857, 0, 890 0, 0, 0, 0, 234, 234, 117, 117, 117, 117, 891 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 892 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 893 117, 117, 0, 0, 0, 0, 0, 0, 94, 234, 894 0, 0, 530, 0, 0, 82, 89, 0, 530, 0, 895 117, 0, 259, 82, 0, 82, 0, 0, 82, 0, 896 534, 196, 196, 196, 196, 196, 196, 0, 196, 0, 897 0, 234, 88, 534, 391, 196, 196, 196, 0, 0, 898 0, 0, 117, 117, 117, 196, 196, 0, 196, 196, 899 196, 196, 196, 530, 0, 0, 0, 117, 0, 0, 900 0, 0, 268, 0, 0, 0, 117, 49, 117, 0, 901 0, 93, 117, 117, 0, 268, 0, 49, 0, 391, 902 0, 0, 531, 0, 0, 530, 91, 0, 531, 0, 903 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 904 196, 117, 0, 0, 0, 0, 196, 0, 49, 117, 905 0, 391, 0, 0, 0, 117, 0, 0, 196, 0, 906 196, 0, 0, 196, 196, 0, 49, 0, 0, 0, 907 0, 0, 0, 531, 0, 279, 0, 117, 0, 0, 908 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, 909 0, 117, 117, 0, 259, 259, 259, 259, 259, 259, 910 0, 259, 0, 0, 0, 531, 0, 0, 0, 0, 911 0, 0, 0, 234, 234, 234, 234, 234, 234, 0, 912 234, 259, 259, 259, 259, 259, 0, 234, 234, 234, 913 0, 0, 49, 0, 0, 0, 0, 234, 234, 0, 914 234, 234, 234, 234, 234, 0, 0, 0, 0, 0, 915 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 916 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 917 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 918 0, 97, 530, 0, 0, 0, 117, 0, 0, 454, 919 0, 0, 234, 259, 0, 0, 259, 259, 234, 454, 920 0, 0, 0, 0, 0, 0, 0, 96, 391, 0, 921 234, 0, 234, 0, 117, 234, 234, 117, 0, 0, 922 0, 0, 527, 117, 0, 117, 454, 454, 0, 527, 923 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 924 0, 0, 0, 0, 0, 530, 0, 454, 454, 454, 925 454, 454, 454, 0, 0, 0, 0, 0, 530, 0, 926 0, 99, 531, 0, 0, 0, 0, 0, 0, 0, 927 0, 391, 0, 0, 49, 49, 49, 49, 49, 49, 928 454, 49, 454, 454, 391, 0, 117, 0, 49, 0, 929 0, 0, 0, 0, 0, 117, 0, 0, 117, 0, 930 0, 49, 49, 49, 49, 49, 458, 0, 0, 0, 931 0, 0, 527, 454, 454, 527, 458, 0, 0, 0, 932 117, 117, 0, 117, 117, 531, 0, 0, 0, 0, 933 0, 0, 0, 117, 0, 0, 0, 0, 531, 528, 934 0, 0, 0, 458, 458, 0, 528, 458, 458, 458, 935 458, 458, 458, 458, 0, 0, 0, 0, 0, 0, 936 0, 0, 117, 0, 458, 458, 458, 458, 458, 458, 937 117, 0, 0, 49, 0, 0, 49, 49, 0, 0, 938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 939 0, 0, 0, 0, 0, 117, 0, 458, 0, 458, 940 458, 0, 0, 0, 0, 0, 117, 0, 0, 0, 941 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 942 0, 0, 117, 0, 0, 0, 0, 0, 0, 528, 943 458, 458, 528, 0, 0, 0, 0, 0, 0, 0, 944 0, 0, 0, 0, 0, 0, 527, 527, 527, 527, 945 527, 527, 527, 527, 527, 0, 454, 454, 454, 454, 946 454, 454, 527, 454, 527, 527, 527, 527, 454, 527, 947 454, 454, 454, 527, 527, 527, 527, 527, 527, 527, 948 454, 454, 527, 454, 454, 454, 454, 454, 0, 0, 949 0, 527, 527, 0, 527, 527, 527, 527, 527, 527, 950 527, 527, 527, 527, 0, 0, 527, 0, 0, 527, 951 527, 527, 0, 527, 527, 454, 454, 454, 454, 454, 952 454, 454, 454, 454, 454, 454, 454, 454, 0, 0, 953 454, 454, 454, 527, 454, 454, 527, 527, 0, 527, 954 527, 454, 527, 527, 527, 454, 527, 527, 527, 527, 955 527, 527, 0, 454, 527, 454, 0, 0, 454, 454, 956 0, 527, 0, 528, 528, 528, 528, 528, 528, 528, 957 528, 528, 0, 458, 458, 458, 458, 458, 458, 528, 958 458, 528, 528, 528, 528, 458, 528, 458, 458, 458, 959 528, 528, 528, 528, 528, 528, 528, 458, 458, 528, 960 458, 458, 458, 458, 458, 0, 0, 0, 528, 528, 961 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 962 528, 0, 0, 528, 0, 0, 528, 528, 528, 0, 963 528, 528, 458, 458, 458, 458, 458, 458, 458, 458, 964 458, 458, 458, 458, 458, 0, 0, 458, 458, 458, 965 528, 458, 458, 528, 528, 0, 528, 528, 458, 528, 966 528, 528, 458, 528, 528, 528, 528, 528, 528, 534, 967 458, 528, 458, 0, 0, 458, 458, 0, 528, 534, 968 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 969 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 970 0, 0, 530, 0, 0, 0, 534, 534, 0, 530, 971 534, 534, 534, 534, 534, 534, 534, 0, 0, 0, 972 0, 0, 0, 0, 0, 0, 0, 534, 534, 534, 973 98, 534, 534, 0, 0, 0, 0, 356, 0, 0, 974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 976 534, 0, 534, 534, 0, 0, 0, 355, 0, 0, 977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 978 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 979 0, 0, 534, 534, 534, 530, 530, 0, 0, 0, 980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 982 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 983 530, 530, 530, 530, 0, 0, 0, 0, 0, 0, 984 0, 0, 0, 0, 530, 530, 530, 97, 530, 530, 985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 987 0, 0, 0, 0, 0, 0, 0, 530, 0, 530, 988 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 990 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 991 530, 530, 530, 0, 0, 0, 0, 0, 0, 0, 992 0, 0, 0, 0, 0, 0, 530, 530, 530, 530, 993 530, 530, 530, 530, 530, 0, 534, 534, 534, 534, 994 534, 534, 530, 534, 530, 530, 530, 530, 0, 534, 995 534, 534, 534, 530, 530, 530, 530, 530, 530, 530, 996 534, 534, 530, 534, 534, 534, 534, 534, 0, 337, 997 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 998 530, 530, 530, 530, 350, 351, 530, 0, 0, 530, 999 530, 530, 0, 530, 530, 534, 534, 534, 534, 534, 1000 534, 534, 534, 534, 534, 534, 534, 534, 0, 0, 1001 534, 534, 534, 530, 0, 534, 530, 530, 0, 530, 1002 530, 534, 530, 530, 530, 534, 530, 530, 530, 530, 1003 530, 530, 0, 534, 530, 534, 0, 0, 534, 534, 1004 0, 530, 0, 530, 530, 530, 530, 530, 530, 530, 1005 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 1006 530, 530, 530, 530, 530, 0, 530, 530, 530, 530, 1007 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1008 530, 530, 530, 530, 530, 0, 0, 0, 530, 530, 1009 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1010 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 1011 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1012 530, 530, 530, 530, 530, 0, 0, 530, 530, 530, 1013 530, 0, 530, 530, 530, 0, 530, 530, 530, 530, 1014 530, 530, 530, 530, 530, 530, 530, 530, 530, 531, 1015 530, 530, 530, 0, 0, 530, 530, 0, 530, 531, 1016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018 0, 0, 531, 0, 0, 0, 531, 531, 0, 531, 1019 531, 531, 531, 531, 531, 531, 531, 0, 0, 0, 1020 0, 0, 0, 0, 0, 0, 0, 531, 531, 531, 1021 99, 531, 531, 0, 0, 0, 0, 0, 0, 0, 1022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024 531, 0, 531, 531, 0, 0, 0, 0, 0, 0, 1025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1026 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 1027 0, 0, 531, 531, 531, 531, 269, 0, 0, 0, 1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1029 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 1030 0, 0, 0, 269, 269, 0, 529, 269, 269, 269, 1031 269, 269, 269, 269, 0, 0, 0, 0, 0, 0, 1032 0, 0, 0, 0, 269, 269, 269, 0, 269, 269, 1033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035 0, 0, 0, 0, 0, 0, 0, 269, 0, 269, 1036 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 1039 269, 269, 529, 0, 0, 0, 0, 0, 0, 0, 1040 0, 0, 0, 0, 0, 0, 531, 531, 531, 531, 1041 531, 531, 531, 531, 531, 0, 531, 531, 531, 531, 1042 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 1043 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 1044 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 1045 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 1046 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 1047 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 1048 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 1049 531, 531, 531, 531, 0, 531, 531, 531, 0, 531, 1050 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 1051 531, 531, 0, 531, 531, 531, 0, 0, 531, 531, 1052 0, 531, 0, 529, 529, 529, 529, 529, 529, 529, 1053 529, 529, 0, 269, 269, 269, 269, 269, 269, 529, 1054 269, 529, 529, 529, 529, 0, 529, 269, 269, 269, 1055 529, 529, 529, 529, 529, 529, 529, 269, 269, 529, 1056 269, 269, 269, 269, 269, 0, 0, 0, 529, 529, 1057 0, 529, 529, 529, 529, 529, 529, 529, 529, 529, 1058 529, 0, 0, 529, 0, 0, 529, 529, 529, 0, 1059 529, 529, 269, 269, 269, 269, 269, 269, 269, 269, 1060 269, 269, 269, 269, 269, 0, 0, 269, 269, 269, 1061 529, 0, 269, 529, 529, 0, 529, 529, 269, 529, 1062 529, 529, 269, 529, 529, 529, 529, 529, 529, 535, 1063 269, 529, 269, 0, 0, 269, 269, 0, 529, 535, 1064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1066 0, 0, 532, 0, 0, 0, 535, 535, 0, 532, 1067 535, 535, 535, 535, 535, 535, 535, 0, 0, 0, 1068 0, 0, 0, 0, 0, 0, 0, 535, 535, 535, 1069 0, 535, 535, 0, 0, 0, 0, 0, 0, 0, 1070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1072 535, 0, 535, 535, 0, 0, 0, 0, 0, 0, 1073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 1075 0, 0, 535, 535, 535, 532, 536, 0, 0, 0, 1076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077 0, 0, 0, 0, 0, 0, 0, 0, 0, 533, 1078 0, 0, 0, 536, 536, 0, 533, 536, 536, 536, 1079 536, 536, 536, 536, 0, 0, 0, 0, 0, 0, 1080 0, 0, 0, 0, 536, 536, 536, 0, 536, 536, 1081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1083 0, 0, 0, 0, 0, 0, 0, 536, 0, 536, 1084 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1086 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 1087 536, 536, 533, 0, 0, 0, 0, 0, 0, 0, 1088 0, 0, 0, 0, 0, 0, 532, 532, 532, 532, 1089 532, 532, 532, 532, 532, 0, 535, 535, 535, 535, 1090 535, 535, 532, 535, 532, 532, 532, 532, 0, 535, 1091 535, 535, 535, 532, 532, 532, 532, 532, 532, 532, 1092 535, 535, 532, 535, 535, 535, 535, 535, 0, 0, 1093 0, 532, 532, 0, 532, 532, 532, 532, 532, 532, 1094 532, 532, 532, 532, 0, 0, 532, 0, 0, 532, 1095 532, 532, 0, 532, 532, 535, 535, 535, 535, 535, 1096 535, 535, 535, 535, 535, 535, 535, 535, 0, 0, 1097 535, 535, 535, 532, 0, 535, 532, 532, 0, 532, 1098 532, 535, 532, 532, 532, 535, 532, 532, 532, 532, 1099 532, 532, 0, 535, 532, 535, 0, 0, 535, 535, 1100 0, 532, 0, 533, 533, 533, 533, 533, 533, 533, 1101 533, 533, 0, 536, 536, 536, 536, 536, 536, 533, 1102 536, 533, 533, 533, 533, 0, 536, 536, 536, 536, 1103 533, 533, 533, 533, 533, 533, 533, 536, 536, 533, 1104 536, 536, 536, 536, 536, 0, 0, 0, 533, 533, 1105 0, 533, 533, 533, 533, 533, 533, 533, 533, 533, 1106 533, 0, 0, 533, 0, 0, 533, 533, 533, 0, 1107 533, 533, 536, 536, 536, 536, 536, 536, 536, 536, 1108 536, 536, 536, 536, 536, 0, 0, 536, 536, 536, 1109 533, 0, 536, 533, 533, 0, 533, 533, 536, 533, 1110 533, 533, 536, 533, 533, 533, 533, 533, 533, 278, 1111 536, 533, 536, 0, 0, 536, 536, 0, 533, 278, 1112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1114 0, 0, 531, 0, 0, 0, 278, 278, 0, 531, 1115 278, 278, 278, 278, 278, 278, 278, 0, 0, 0, 1116 0, 0, 0, 0, 0, 0, 0, 278, 278, 278, 1117 100, 278, 278, 0, 0, 0, 0, 0, 0, 0, 1118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1120 278, 0, 278, 278, 0, 0, 0, 0, 0, 0, 1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122 0, 0, 0, 0, 0, 0, 390, 0, 0, 0, 1123 0, 0, 0, 278, 278, 531, 390, 0, 0, 0, 1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1125 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 1126 0, 0, 0, 390, 390, 0, 0, 390, 390, 390, 1127 390, 390, 390, 390, 0, 0, 0, 0, 0, 0, 1128 0, 0, 0, 0, 0, 390, 390, 0, 390, 390, 1129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1131 169, 0, 0, 0, 0, 0, 0, 390, 0, 390, 1132 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1133 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 1134 169, 0, 169, 0, 0, 0, 461, 0, 0, 390, 1135 390, 390, 248, 0, 0, 0, 0, 0, 0, 169, 1136 0, 0, 0, 0, 0, 0, 531, 531, 531, 531, 1137 531, 531, 531, 531, 531, 0, 278, 278, 278, 278, 1138 278, 278, 531, 278, 531, 531, 531, 531, 0, 0, 1139 278, 278, 278, 531, 531, 531, 531, 531, 531, 531, 1140 278, 278, 531, 278, 278, 278, 278, 278, 0, 0, 1141 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 1142 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 1143 531, 531, 0, 531, 531, 278, 278, 278, 278, 278, 1144 278, 278, 278, 278, 278, 278, 278, 278, 0, 0, 1145 278, 278, 278, 531, 0, 278, 531, 531, 0, 531, 1146 531, 278, 531, 531, 531, 278, 531, 531, 531, 531, 1147 531, 531, 0, 278, 531, 278, 0, 0, 278, 278, 1148 0, 531, 0, 248, 248, 248, 248, 248, 248, 248, 1149 248, 248, 0, 390, 390, 390, 390, 390, 390, 248, 1150 390, 248, 248, 248, 248, 0, 390, 390, 390, 0, 1151 248, 248, 248, 248, 248, 248, 248, 390, 390, 248, 1152 390, 390, 390, 390, 390, 0, 0, 0, 248, 248, 1153 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 1154 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 1155 248, 248, 390, 390, 390, 390, 390, 390, 390, 390, 1156 390, 390, 390, 390, 390, 0, 0, 390, 390, 390, 1157 248, 0, 390, 248, 248, 0, 248, 248, 390, 248, 1158 248, 248, 390, 248, 248, 248, 248, 248, 248, 558, 1159 0, 248, 390, 0, 0, 390, 390, 0, 248, 558, 1160 0, 0, 0, 0, 0, 169, 0, 169, 169, 169, 1161 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1162 0, 0, 248, 0, 0, 0, 558, 558, 0, 0, 1163 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, 1164 0, 0, 0, 461, 0, 0, 0, 169, 558, 558, 1165 0, 558, 558, 169, 169, 0, 0, 0, 0, 0, 1166 0, 0, 0, 0, 0, 0, 169, 0, 0, 169, 1167 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1168 558, 0, 558, 558, 0, 0, 0, 0, 0, 0, 1169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1170 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 1171 0, 0, 558, 558, 558, 248, 558, 0, 0, 0, 1172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1173 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 1174 0, 0, 0, 558, 558, 0, 0, 558, 558, 558, 1175 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 1176 0, 0, 0, 0, 0, 558, 558, 0, 558, 558, 1177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179 179, 0, 0, 0, 0, 0, 0, 558, 0, 558, 1180 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1181 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 1182 179, 0, 179, 0, 0, 0, 463, 0, 0, 0, 1183 558, 558, 248, 0, 0, 0, 0, 0, 0, 179, 1184 0, 0, 0, 0, 0, 0, 248, 248, 248, 248, 1185 248, 248, 248, 248, 248, 0, 558, 558, 558, 558, 1186 558, 558, 248, 558, 248, 248, 248, 248, 0, 558, 1187 558, 558, 0, 248, 248, 248, 248, 248, 248, 248, 1188 558, 558, 248, 558, 558, 558, 558, 558, 0, 0, 1189 0, 248, 248, 0, 248, 248, 248, 248, 248, 248, 1190 248, 248, 248, 248, 0, 0, 248, 0, 0, 248, 1191 248, 248, 0, 248, 248, 558, 558, 558, 558, 558, 1192 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 1193 558, 558, 558, 248, 0, 558, 248, 248, 0, 248, 1194 248, 558, 248, 248, 248, 558, 248, 248, 248, 248, 1195 248, 248, 0, 0, 248, 558, 0, 0, 558, 558, 1196 0, 248, 0, 248, 248, 248, 248, 248, 248, 248, 1197 248, 248, 0, 558, 558, 558, 558, 558, 558, 248, 1198 558, 248, 248, 248, 248, 0, 0, 558, 558, 0, 1199 248, 248, 248, 248, 248, 248, 248, 558, 558, 248, 1200 558, 558, 558, 558, 558, 0, 0, 0, 248, 248, 1201 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 1202 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 1203 248, 248, 558, 558, 558, 558, 558, 558, 558, 558, 1204 558, 558, 558, 558, 558, 0, 0, 558, 558, 558, 1205 248, 0, 558, 248, 248, 0, 248, 248, 558, 248, 1206 248, 248, 558, 248, 248, 248, 248, 248, 248, 534, 1207 0, 248, 558, 0, 0, 558, 558, 0, 248, 534, 1208 0, 0, 0, 0, 0, 179, 0, 179, 179, 179, 1209 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210 0, 0, 530, 0, 0, 0, 534, 534, 0, 530, 1211 534, 534, 534, 90, 534, 534, 534, 0, 0, 0, 1212 0, 0, 0, 463, 0, 0, 0, 179, 534, 534, 1213 98, 534, 534, 179, 179, 0, 0, 0, 0, 0, 1214 0, 0, 0, 0, 0, 0, 179, 0, 0, 179, 1215 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1216 534, 0, 0, 534, 0, 0, 0, 0, 0, 0, 1217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 1219 0, 0, 534, 534, 534, 530, 530, 0, 0, 0, 1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 1222 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 1223 89, 530, 530, 530, 0, 0, 0, 0, 0, 0, 1224 0, 0, 0, 0, 0, 530, 530, 97, 530, 530, 1225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1227 164, 0, 0, 0, 0, 0, 0, 530, 0, 0, 1228 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1229 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 1230 164, 0, 164, 0, 0, 0, 464, 0, 0, 530, 1231 530, 530, 530, 0, 0, 0, 0, 0, 0, 164, 1232 0, 0, 0, 0, 0, 0, 530, 530, 530, 530, 1233 530, 530, 530, 530, 530, 0, 534, 534, 534, 0, 1234 534, 534, 530, 534, 530, 530, 530, 530, 0, 534, 1235 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 1236 534, 534, 530, 534, 534, 534, 534, 534, 0, 0, 1237 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 1238 530, 530, 530, 530, 0, 0, 530, 0, 0, 530, 1239 530, 530, 0, 530, 530, 534, 534, 534, 534, 534, 1240 534, 534, 534, 534, 534, 534, 534, 534, 0, 0, 1241 534, 534, 534, 530, 0, 0, 530, 530, 0, 530, 1242 530, 0, 530, 530, 530, 534, 530, 530, 530, 530, 1243 530, 530, 0, 0, 530, 534, 0, 0, 534, 534, 1244 0, 530, 0, 530, 530, 530, 530, 530, 530, 530, 1245 530, 530, 0, 530, 530, 530, 0, 530, 530, 530, 1246 530, 530, 530, 530, 530, 0, 530, 0, 0, 0, 1247 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1248 530, 530, 530, 530, 530, 0, 0, 0, 530, 530, 1249 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1250 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 1251 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1252 530, 530, 530, 530, 530, 0, 0, 530, 530, 530, 1253 530, 0, 0, 530, 530, 0, 530, 530, 0, 530, 1254 530, 530, 530, 530, 530, 530, 530, 530, 530, 531, 1255 0, 530, 530, 0, 0, 530, 530, 0, 530, 531, 1256 0, 0, 0, 0, 0, 164, 0, 164, 164, 164, 1257 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1258 0, 0, 531, 0, 0, 0, 531, 531, 0, 531, 1259 531, 531, 531, 91, 531, 531, 531, 0, 0, 0, 1260 0, 0, 0, 464, 0, 0, 0, 164, 531, 531, 1261 99, 531, 531, 164, 164, 0, 0, 0, 0, 0, 1262 0, 0, 0, 0, 0, 0, 164, 0, 0, 164, 1263 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1264 531, 0, 0, 531, 0, 0, 0, 0, 0, 0, 1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1266 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 1267 0, 0, 531, 531, 531, 531, 534, 0, 0, 0, 1268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 1270 0, 0, 0, 534, 534, 0, 530, 534, 534, 534, 1271 534, 534, 534, 534, 0, 0, 0, 0, 0, 0, 1272 0, 0, 0, 0, 0, 534, 534, 98, 534, 534, 1273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1275 147, 0, 0, 0, 0, 0, 0, 534, 0, 0, 1276 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1277 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 1278 147, 0, 147, 0, 0, 0, 466, 0, 0, 534, 1279 534, 534, 530, 0, 0, 0, 0, 0, 0, 147, 1280 0, 0, 0, 0, 0, 0, 531, 531, 531, 531, 1281 531, 531, 531, 531, 531, 0, 531, 531, 531, 0, 1282 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 1283 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 1284 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 1285 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 1286 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 1287 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 1288 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 1289 531, 531, 531, 531, 0, 0, 531, 531, 0, 531, 1290 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 1291 531, 531, 0, 0, 531, 531, 0, 0, 531, 531, 1292 0, 531, 0, 530, 530, 530, 530, 530, 530, 530, 1293 530, 530, 0, 534, 534, 534, 0, 534, 534, 530, 1294 534, 530, 530, 530, 530, 0, 534, 0, 0, 0, 1295 530, 530, 530, 530, 530, 530, 530, 534, 534, 530, 1296 534, 534, 534, 534, 534, 0, 0, 0, 530, 530, 1297 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1298 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 1299 530, 530, 534, 534, 534, 534, 534, 534, 534, 534, 1300 534, 534, 534, 534, 534, 0, 0, 534, 534, 534, 1301 530, 0, 0, 530, 530, 0, 530, 530, 0, 530, 1302 530, 530, 534, 530, 530, 530, 530, 530, 530, 530, 1303 0, 530, 534, 0, 0, 534, 534, 0, 530, 530, 1304 0, 0, 0, 0, 0, 147, 0, 147, 147, 147, 1305 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1306 0, 0, 530, 0, 0, 0, 530, 530, 0, 530, 1307 530, 530, 530, 530, 530, 530, 530, 0, 0, 0, 1308 0, 0, 0, 466, 0, 0, 0, 147, 530, 530, 1309 97, 530, 530, 147, 147, 0, 0, 0, 0, 0, 1310 0, 0, 0, 0, 0, 0, 147, 0, 0, 147, 1311 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1312 530, 0, 0, 530, 0, 0, 0, 0, 0, 0, 1313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1314 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 1315 0, 0, 530, 530, 530, 530, 531, 0, 0, 0, 1316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1317 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 1318 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 1319 531, 531, 531, 531, 0, 0, 0, 0, 0, 0, 1320 0, 0, 0, 0, 0, 531, 531, 99, 531, 531, 1321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1323 148, 0, 0, 0, 0, 0, 0, 531, 0, 0, 1324 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1325 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 1326 148, 0, 148, 0, 0, 0, 465, 0, 0, 531, 1327 531, 531, 531, 0, 0, 0, 0, 0, 0, 148, 1328 0, 0, 0, 0, 0, 0, 530, 530, 530, 530, 1329 530, 530, 530, 530, 530, 0, 530, 530, 530, 0, 1330 530, 530, 530, 530, 530, 530, 530, 530, 0, 530, 1331 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 1332 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 1333 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 1334 530, 530, 530, 530, 0, 0, 530, 0, 0, 530, 1335 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 1336 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 1337 530, 530, 530, 530, 0, 0, 530, 530, 0, 530, 1338 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 1339 530, 530, 0, 0, 530, 530, 0, 0, 530, 530, 1340 0, 530, 0, 531, 531, 531, 531, 531, 531, 531, 1341 531, 531, 0, 531, 531, 531, 0, 531, 531, 531, 1342 531, 531, 531, 531, 531, 0, 531, 0, 0, 0, 1343 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 1344 531, 531, 531, 531, 531, 0, 0, 0, 531, 531, 1345 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 1346 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 1347 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 1348 531, 531, 531, 531, 531, 0, 0, 531, 531, 531, 1349 531, 0, 0, 531, 531, 0, 531, 531, 0, 531, 1350 531, 531, 531, 531, 531, 531, 531, 531, 531, 278, 1351 0, 531, 531, 0, 0, 531, 531, 0, 531, 278, 1352 0, 0, 0, 0, 0, 148, 0, 148, 148, 148, 1353 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354 0, 0, 531, 0, 0, 0, 278, 278, 0, 531, 1355 278, 278, 278, 92, 278, 278, 278, 0, 0, 0, 1356 0, 0, 0, 465, 0, 0, 0, 148, 278, 278, 1357 100, 278, 278, 148, 148, 0, 0, 0, 0, 0, 1358 0, 0, 0, 0, 0, 0, 148, 0, 0, 148, 1359 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360 278, 0, 0, 278, 0, 0, 0, 0, 0, 0, 1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362 0, 0, 0, 0, 0, 0, 278, 0, 0, 0, 1363 0, 0, 0, 278, 278, 531, 278, 0, 0, 0, 1364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 1366 0, 0, 0, 278, 278, 0, 531, 278, 278, 278, 1367 278, 278, 278, 278, 0, 0, 0, 0, 0, 0, 1368 0, 0, 0, 0, 0, 278, 278, 100, 278, 278, 1369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1370 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 1371 0, 0, 0, 0, 0, 0, 0, 278, 0, 0, 1372 278, 0, 0, 0, 0, 0, 109, 0, 0, 0, 1373 0, 0, 0, 0, 108, 0, 108, 0, 108, 0, 1374 0, 0, 454, 0, 0, 0, 0, 0, 0, 0, 1375 278, 278, 531, 0, 109, 108, 109, 0, 109, 0, 1376 0, 0, 458, 0, 0, 0, 531, 531, 531, 531, 1377 531, 531, 531, 531, 531, 109, 278, 278, 278, 0, 1378 278, 278, 531, 278, 531, 531, 531, 531, 0, 0, 1379 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 1380 278, 278, 531, 278, 278, 278, 278, 278, 0, 0, 1381 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 1382 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 1383 531, 531, 0, 531, 531, 278, 278, 278, 278, 278, 1384 278, 278, 278, 278, 278, 278, 278, 278, 0, 0, 1385 278, 278, 278, 531, 0, 0, 531, 531, 0, 531, 1386 531, 0, 531, 531, 531, 278, 531, 531, 531, 531, 1387 531, 531, 0, 0, 531, 278, 0, 0, 278, 278, 1388 0, 531, 0, 531, 531, 531, 531, 531, 531, 531, 1389 531, 531, 0, 278, 278, 278, 0, 278, 278, 531, 1390 278, 531, 531, 531, 531, 0, 0, 0, 0, 0, 1391 531, 531, 531, 531, 531, 531, 531, 278, 278, 531, 1392 278, 278, 278, 278, 278, 0, 0, 0, 531, 531, 1393 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 1394 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 1395 531, 531, 278, 278, 278, 278, 278, 278, 278, 278, 1396 278, 278, 278, 278, 278, 0, 0, 278, 278, 278, 1397 531, 0, 0, 531, 531, 0, 531, 531, 0, 531, 1398 531, 531, 278, 531, 531, 531, 531, 531, 531, 558, 1399 0, 531, 278, 0, 0, 278, 278, 0, 531, 558, 1400 0, 108, 0, 108, 108, 108, 108, 0, 0, 0, 1401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1402 0, 109, 248, 109, 109, 109, 109, 0, 0, 0, 1403 558, 0, 0, 0, 0, 558, 0, 0, 0, 454, 1404 0, 0, 0, 108, 0, 0, 0, 0, 558, 108, 1405 108, 0, 0, 0, 0, 0, 0, 0, 0, 458, 1406 0, 0, 108, 109, 0, 108, 108, 0, 0, 109, 1407 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1408 0, 0, 109, 0, 0, 109, 109, 0, 0, 0, 1409 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 1410 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 1411 0, 0, 558, 0, 558, 248, 0, 0, 0, 0, 1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1413 0, 0, 391, 391, 0, 0, 391, 391, 391, 391, 1414 391, 391, 391, 0, 0, 0, 0, 0, 0, 0, 1415 0, 0, 0, 391, 391, 391, 96, 391, 391, 0, 1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1418 0, 0, 0, 0, 0, 0, 391, 0, 391, 391, 1419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1421 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 1422 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1424 0, 0, 0, 0, 0, 0, 248, 248, 248, 248, 1425 248, 248, 248, 248, 248, 0, 558, 558, 558, 558, 1426 558, 558, 248, 558, 248, 248, 248, 248, 0, 558, 1427 558, 0, 0, 248, 248, 248, 248, 248, 248, 248, 1428 558, 558, 248, 558, 558, 558, 558, 558, 0, 0, 1429 0, 248, 248, 0, 248, 248, 248, 248, 248, 248, 1430 248, 248, 248, 248, 0, 0, 248, 0, 0, 248, 1431 248, 248, 0, 248, 248, 0, 0, 0, 0, 0, 1432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1433 0, 0, 558, 248, 0, 0, 248, 248, 0, 248, 1434 248, 0, 248, 248, 248, 558, 248, 248, 248, 248, 1435 248, 248, 0, 0, 248, 558, 0, 0, 558, 558, 1436 0, 248, 391, 391, 391, 391, 391, 391, 0, 391, 1437 0, 0, 0, 0, 0, 391, 391, 391, 391, 785, 1438 0, 0, 791, 0, 0, 0, 391, 391, 0, 391, 1439 391, 391, 391, 391, 796, 362, 357, 0, 0, 0, 1440 360, 358, 0, 359, 0, 361, 0, 0, 0, 0, 1441 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 1442 353, 391, 391, 391, 391, 391, 391, 391, 391, 391, 1443 391, 391, 391, 391, 390, 0, 391, 391, 391, 0, 1444 0, 391, 0, 0, 390, 0, 0, 391, 0, 0, 1445 0, 391, 356, 0, 0, 0, 0, 0, 0, 391, 1446 0, 391, 0, 0, 391, 391, 0, 0, 0, 0, 1447 0, 390, 390, 0, 0, 390, 390, 390, 390, 390, 1448 390, 390, 355, 0, 0, 0, 0, 0, 0, 0, 1449 0, 0, 390, 390, 390, 0, 390, 390, 0, 0, 1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1452 0, 0, 0, 0, 0, 390, 0, 390, 390, 0, 1453 0, 0, 0, 0, 0, 0, 0, 0, 460, 0, 1454 0, 0, 0, 0, 0, 0, 0, 0, 460, 0, 1455 0, 0, 0, 0, 917, 0, 919, 390, 390, 390, 1456 920, 0, 0, 0, 0, 0, 924, 0, 0, 0, 1457 0, 0, 929, 0, 0, 460, 460, 0, 0, 460, 1458 460, 460, 460, 460, 460, 460, 0, 0, 0, 0, 1459 0, 0, 0, 0, 0, 0, 460, 460, 460, 95, 1460 460, 460, 0, 0, 0, 0, 0, 0, 0, 0, 1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 1463 0, 460, 460, 0, 0, 0, 0, 0, 0, 0, 1464 972, 0, 0, 0, 0, 973, 0, 974, 0, 976, 1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466 0, 0, 460, 460, 0, 0, 0, 0, 0, 0, 1467 0, 0, 0, 0, 984, 0, 0, 0, 0, 0, 1468 0, 0, 0, 0, 337, 338, 339, 340, 341, 342, 1469 343, 344, 345, 346, 347, 0, 0, 0, 0, 350, 1470 351, 390, 390, 390, 390, 390, 390, 0, 390, 0, 1471 0, 0, 0, 0, 390, 390, 390, 390, 0, 0, 1472 0, 0, 0, 0, 0, 390, 390, 0, 390, 390, 1473 390, 390, 390, 0, 0, 0, 0, 0, 260, 0, 1474 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1476 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 1477 390, 390, 390, 0, 0, 390, 390, 390, 0, 260, 1478 390, 0, 258, 0, 31, 0, 390, 0, 0, 0, 1479 390, 0, 0, 0, 31, 0, 0, 260, 390, 0, 1480 390, 0, 0, 390, 390, 460, 460, 460, 460, 460, 1481 460, 0, 460, 0, 0, 0, 0, 0, 0, 460, 1482 460, 460, 0, 0, 0, 31, 0, 0, 0, 460, 1483 460, 0, 460, 460, 460, 460, 460, 0, 0, 0, 1484 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1486 0, 0, 0, 260, 460, 460, 460, 460, 460, 460, 1487 460, 460, 460, 460, 460, 460, 460, 558, 0, 460, 1488 460, 460, 0, 459, 460, 0, 0, 558, 0, 0, 1489 460, 0, 0, 0, 460, 0, 0, 0, 0, 0, 1490 0, 0, 460, 0, 460, 0, 0, 460, 460, 31, 1491 0, 0, 0, 0, 558, 558, 0, 0, 558, 558, 1492 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 1493 0, 0, 0, 0, 0, 558, 558, 558, 0, 558, 1494 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1496 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 1497 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 1498 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 1499 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 1500 558, 558, 558, 0, 0, 260, 260, 260, 260, 260, 1501 260, 0, 260, 0, 0, 0, 0, 0, 268, 268, 1502 0, 0, 268, 268, 268, 268, 268, 268, 268, 0, 1503 0, 0, 260, 260, 260, 260, 260, 0, 0, 268, 1504 268, 268, 102, 268, 268, 0, 0, 0, 0, 0, 1505 0, 31, 31, 31, 0, 31, 31, 0, 31, 0, 1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1507 0, 0, 268, 0, 268, 268, 0, 0, 31, 31, 1508 31, 31, 31, 0, 260, 0, 0, 0, 0, 0, 1509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1510 0, 0, 0, 0, 260, 268, 268, 260, 260, 0, 1511 0, 0, 0, 362, 357, 0, 0, 0, 360, 358, 1512 0, 359, 0, 361, 0, 0, 0, 0, 0, 0, 1513 0, 0, 0, 0, 0, 0, 354, 0, 353, 0, 1514 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 1515 31, 558, 0, 31, 31, 0, 0, 558, 558, 558, 1516 558, 0, 0, 0, 0, 0, 0, 0, 558, 558, 1517 356, 558, 558, 558, 558, 558, 0, 0, 0, 0, 1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1520 355, 0, 0, 558, 558, 558, 558, 558, 558, 558, 1521 558, 558, 558, 558, 558, 558, 0, 0, 558, 558, 1522 558, 0, 0, 558, 0, 0, 0, 0, 0, 558, 1523 50, 0, 0, 558, 0, 0, 0, 0, 0, 0, 1524 50, 558, 0, 558, 0, 0, 558, 558, 268, 268, 1525 268, 268, 268, 268, 0, 268, 0, 0, 0, 0, 1526 0, 0, 268, 268, 268, 0, 0, 0, 0, 0, 1527 0, 50, 268, 268, 0, 268, 268, 268, 268, 268, 1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1530 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 1531 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1532 279, 0, 268, 268, 268, 0, 0, 268, 0, 0, 1533 279, 0, 0, 268, 0, 0, 0, 268, 0, 0, 1534 0, 0, 0, 0, 0, 268, 0, 268, 0, 0, 1535 268, 268, 0, 0, 0, 50, 0, 279, 279, 0, 1536 0, 279, 279, 279, 279, 279, 279, 279, 0, 0, 1537 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 1538 279, 101, 279, 279, 0, 0, 0, 0, 0, 0, 1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1540 0, 0, 337, 0, 0, 0, 0, 342, 343, 0, 1541 0, 279, 0, 279, 279, 0, 0, 350, 351, 0, 1542 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 1543 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 1544 0, 0, 0, 0, 279, 279, 0, 0, 0, 0, 1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1546 0, 228, 228, 0, 0, 228, 228, 228, 228, 228, 1547 322, 228, 0, 0, 0, 0, 0, 0, 0, 0, 1548 0, 0, 228, 228, 228, 0, 228, 228, 0, 0, 1549 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, 1550 50, 50, 50, 0, 50, 0, 0, 0, 0, 0, 1551 0, 50, 0, 0, 0, 322, 0, 228, 228, 0, 1552 0, 50, 50, 0, 50, 50, 50, 50, 50, 0, 1553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1554 0, 0, 0, 0, 0, 0, 0, 0, 228, 228, 1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1558 0, 0, 0, 0, 0, 0, 0, 279, 279, 279, 1559 279, 279, 279, 0, 279, 0, 50, 0, 0, 50, 1560 50, 279, 279, 279, 0, 0, 0, 0, 0, 0, 1561 0, 279, 279, 0, 279, 279, 279, 279, 279, 0, 1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564 0, 0, 0, 0, 0, 0, 279, 279, 279, 279, 1565 279, 279, 279, 279, 279, 279, 279, 279, 279, 0, 1566 0, 279, 279, 279, 0, 0, 279, 0, 0, 0, 1567 0, 0, 279, 52, 0, 0, 279, 0, 0, 0, 1568 0, 0, 0, 52, 279, 0, 279, 0, 0, 279, 1569 279, 228, 228, 228, 228, 228, 228, 0, 228, 0, 1570 0, 0, 0, 0, 0, 228, 228, 228, 0, 0, 1571 0, 0, 0, 0, 52, 228, 228, 0, 228, 228, 1572 228, 228, 228, 0, 0, 0, 0, 0, 0, 0, 1573 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1575 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 1576 228, 228, 228, 287, 0, 228, 228, 322, 0, 0, 1577 228, 0, 0, 287, 0, 0, 228, 0, 0, 0, 1578 322, 0, 0, 0, 0, 0, 0, 0, 228, 0, 1579 228, 0, 0, 228, 228, 0, 0, 0, 52, 0, 1580 287, 287, 0, 0, 287, 287, 287, 287, 287, 287, 1581 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1582 0, 287, 287, 287, 0, 287, 287, 0, 0, 0, 1583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1585 0, 0, 0, 0, 287, 0, 287, 287, 0, 0, 1586 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 1587 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 1588 0, 0, 0, 0, 0, 0, 0, 287, 287, 0, 1589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1590 0, 0, 0, 0, 558, 558, 0, 0, 558, 558, 1591 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 1592 0, 0, 0, 0, 0, 558, 558, 558, 0, 558, 1593 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1594 52, 52, 52, 52, 52, 52, 0, 52, 0, 0, 1595 0, 0, 0, 0, 52, 0, 0, 0, 558, 0, 1596 558, 558, 0, 0, 52, 52, 0, 52, 52, 52, 1597 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1599 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1603 287, 287, 287, 287, 287, 287, 0, 287, 0, 52, 1604 0, 0, 52, 52, 287, 287, 287, 0, 0, 0, 1605 0, 0, 0, 0, 287, 287, 0, 287, 287, 287, 1606 287, 287, 0, 0, 0, 0, 0, 0, 0, 0, 1607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 1609 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 1610 287, 287, 0, 0, 287, 287, 287, 0, 0, 287, 1611 0, 0, 0, 0, 0, 287, 53, 0, 0, 287, 1612 0, 0, 0, 0, 0, 0, 53, 287, 0, 287, 1613 0, 0, 287, 287, 558, 558, 558, 558, 558, 558, 1614 0, 558, 0, 0, 0, 0, 0, 0, 558, 558, 1615 558, 0, 0, 0, 0, 0, 0, 53, 558, 558, 1616 0, 558, 558, 558, 558, 558, 0, 0, 0, 0, 1617 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 1618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1619 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 1620 558, 558, 558, 558, 558, 558, 452, 0, 558, 558, 1621 558, 0, 0, 558, 0, 0, 452, 0, 0, 558, 1622 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 1623 0, 558, 0, 558, 0, 0, 558, 558, 0, 0, 1624 0, 53, 0, 452, 452, 0, 0, 452, 452, 452, 1625 452, 452, 452, 452, 0, 0, 0, 0, 0, 0, 1626 0, 0, 0, 0, 452, 452, 452, 0, 452, 452, 1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1629 0, 0, 0, 0, 0, 0, 0, 452, 0, 452, 1630 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1633 452, 452, 0, 0, 0, 0, 0, 0, 0, 0, 1634 0, 0, 0, 0, 0, 0, 0, 453, 453, 0, 1635 0, 453, 453, 453, 453, 453, 453, 453, 0, 0, 1636 0, 0, 0, 0, 0, 0, 0, 0, 453, 453, 1637 453, 0, 453, 453, 0, 0, 0, 0, 0, 0, 1638 0, 0, 0, 53, 53, 53, 53, 53, 53, 0, 1639 53, 0, 0, 0, 0, 0, 0, 53, 0, 0, 1640 0, 453, 0, 453, 453, 0, 0, 53, 53, 0, 1641 53, 53, 53, 53, 53, 234, 0, 0, 0, 0, 1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1643 0, 0, 0, 0, 453, 453, 0, 0, 0, 0, 1644 0, 0, 362, 357, 0, 0, 0, 360, 358, 0, 1645 359, 0, 361, 0, 0, 0, 0, 0, 0, 0, 1646 0, 0, 0, 0, 0, 354, 0, 353, 352, 0, 1647 0, 0, 0, 452, 452, 452, 452, 452, 452, 0, 1648 452, 0, 53, 0, 0, 53, 53, 452, 452, 452, 1649 0, 0, 0, 0, 0, 0, 0, 452, 452, 356, 1650 452, 452, 452, 452, 452, 0, 0, 362, 357, 0, 1651 0, 0, 360, 358, 0, 359, 0, 361, 0, 0, 1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 1653 354, 0, 353, 452, 452, 452, 452, 452, 452, 452, 1654 452, 452, 452, 452, 452, 0, 0, 452, 452, 452, 1655 0, 0, 452, 0, 0, 0, 0, 0, 452, 0, 1656 0, 0, 452, 0, 356, 0, 0, 0, 0, 0, 1657 452, 0, 452, 0, 0, 452, 452, 453, 453, 453, 1658 453, 453, 453, 0, 453, 0, 0, 0, 0, 0, 1659 0, 453, 453, 453, 355, 0, 0, 0, 0, 0, 1660 0, 453, 453, 0, 453, 453, 453, 453, 453, 0, 1661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1662 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 1663 0, 0, 0, 0, 0, 0, 318, 453, 453, 453, 1664 453, 453, 453, 453, 453, 453, 453, 453, 453, 0, 1665 0, 453, 453, 453, 0, 0, 453, 0, 0, 0, 1666 0, 0, 453, 318, 318, 0, 453, 318, 318, 318, 1667 318, 318, 318, 318, 453, 0, 453, 0, 0, 453, 1668 453, 0, 0, 0, 0, 318, 318, 0, 318, 318, 1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1671 0, 0, 0, 0, 0, 0, 319, 318, 0, 318, 1672 318, 0, 0, 0, 0, 0, 319, 0, 0, 0, 1673 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1674 346, 347, 348, 349, 0, 0, 350, 351, 0, 0, 1675 318, 318, 0, 319, 319, 0, 0, 319, 319, 319, 1676 319, 319, 319, 319, 0, 0, 0, 0, 0, 0, 1677 0, 0, 0, 0, 0, 319, 319, 0, 319, 319, 1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1679 0, 0, 0, 0, 0, 0, 337, 338, 339, 340, 1680 341, 342, 343, 344, 0, 346, 347, 319, 0, 319, 1681 319, 350, 351, 0, 0, 0, 0, 0, 0, 0, 1682 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1683 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1684 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 1685 0, 0, 0, 0, 0, 0, 0, 282, 282, 0, 1686 0, 282, 282, 282, 282, 282, 282, 282, 0, 0, 1687 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 1688 282, 0, 282, 282, 0, 0, 0, 0, 0, 0, 1689 0, 0, 0, 318, 318, 318, 318, 318, 318, 0, 1690 318, 0, 0, 0, 0, 0, 0, 318, 318, 0, 1691 0, 282, 0, 282, 282, 0, 0, 318, 318, 0, 1692 318, 318, 318, 318, 318, 0, 0, 0, 0, 0, 1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1694 0, 0, 0, 0, 282, 282, 0, 0, 0, 0, 1695 0, 0, 318, 318, 318, 318, 318, 318, 318, 318, 1696 318, 318, 318, 318, 318, 0, 0, 318, 318, 318, 1697 0, 0, 318, 0, 0, 0, 0, 0, 318, 0, 1698 0, 0, 318, 319, 319, 319, 319, 319, 319, 0, 1699 319, 0, 318, 0, 0, 318, 318, 319, 319, 0, 1700 0, 0, 0, 0, 0, 0, 0, 319, 319, 0, 1701 319, 319, 319, 319, 319, 0, 0, 0, 0, 0, 1702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704 0, 0, 319, 319, 319, 319, 319, 319, 319, 319, 1705 319, 319, 319, 319, 319, 0, 0, 319, 319, 319, 1706 0, 0, 319, 0, 0, 0, 0, 0, 319, 0, 1707 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 1708 0, 0, 319, 0, 0, 319, 319, 282, 282, 282, 1709 282, 282, 282, 0, 282, 0, 0, 0, 0, 0, 1710 0, 282, 282, 0, 0, 0, 0, 0, 0, 0, 1711 0, 282, 282, 0, 282, 282, 282, 282, 282, 0, 1712 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 1713 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1714 0, 0, 0, 354, 0, 353, 282, 282, 282, 282, 1715 282, 282, 282, 282, 282, 282, 282, 282, 282, 207, 1716 0, 282, 282, 282, 0, 0, 282, 0, 0, 207, 1717 0, 0, 282, 0, 0, 0, 282, 356, 0, 0, 1718 0, 0, 0, 0, 0, 0, 282, 0, 0, 282, 1719 282, 0, 0, 0, 0, 0, 207, 207, 0, 0, 1720 207, 207, 207, 207, 207, 0, 207, 355, 0, 0, 1721 0, 0, 0, 0, 0, 0, 0, 207, 207, 207, 1722 0, 207, 207, 0, 0, 0, 0, 0, 0, 0, 1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1725 203, 0, 207, 207, 0, 0, 0, 0, 0, 0, 1726 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1728 0, 0, 0, 207, 207, 0, 0, 203, 203, 0, 1729 0, 203, 203, 203, 203, 203, 0, 203, 0, 0, 1730 0, 0, 0, 0, 0, 0, 0, 0, 203, 203, 1731 203, 0, 203, 203, 0, 0, 0, 0, 0, 0, 1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1734 0, 200, 0, 203, 203, 0, 0, 0, 0, 0, 1735 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1737 0, 0, 0, 0, 203, 203, 0, 0, 200, 200, 1738 0, 0, 200, 200, 200, 200, 200, 0, 200, 0, 1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 1740 200, 200, 0, 200, 200, 0, 0, 0, 0, 337, 1741 338, 339, 340, 341, 342, 343, 0, 0, 346, 347, 1742 0, 0, 0, 0, 350, 351, 207, 207, 207, 207, 1743 207, 207, 0, 207, 200, 200, 0, 0, 0, 0, 1744 207, 207, 207, 0, 0, 0, 0, 0, 0, 0, 1745 207, 207, 0, 207, 207, 207, 207, 207, 0, 0, 1746 0, 0, 0, 0, 0, 200, 200, 0, 0, 0, 1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1748 0, 0, 0, 0, 0, 0, 207, 207, 207, 207, 1749 207, 207, 207, 207, 207, 207, 207, 207, 0, 0, 1750 207, 207, 19, 0, 0, 207, 0, 0, 0, 0, 1751 0, 207, 19, 0, 0, 0, 0, 203, 203, 203, 1752 203, 203, 203, 207, 203, 207, 0, 0, 207, 207, 1753 0, 203, 203, 203, 0, 0, 0, 0, 0, 0, 1754 0, 203, 203, 19, 203, 203, 203, 203, 203, 0, 1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1756 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 1757 0, 0, 0, 0, 0, 0, 0, 203, 203, 203, 1758 203, 203, 203, 203, 203, 203, 203, 203, 203, 0, 1759 0, 203, 203, 40, 0, 0, 203, 0, 0, 0, 1760 0, 0, 203, 40, 0, 0, 0, 0, 200, 200, 1761 200, 200, 200, 200, 203, 200, 203, 0, 0, 203, 1762 203, 0, 200, 200, 200, 0, 0, 19, 0, 0, 1763 0, 0, 200, 200, 40, 200, 200, 200, 200, 200, 1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1765 0, 0, 40, 0, 201, 0, 0, 0, 0, 0, 1766 0, 0, 0, 0, 201, 0, 0, 0, 200, 200, 1767 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 1768 0, 0, 200, 200, 0, 0, 0, 200, 0, 0, 1769 0, 201, 201, 200, 0, 201, 201, 201, 201, 201, 1770 0, 201, 0, 0, 0, 200, 0, 200, 0, 0, 1771 200, 200, 201, 201, 201, 0, 201, 201, 40, 0, 1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1774 0, 0, 0, 0, 0, 202, 0, 201, 201, 0, 1775 0, 0, 0, 0, 0, 202, 0, 0, 0, 0, 1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 1777 19, 19, 0, 19, 19, 0, 19, 0, 201, 201, 1778 0, 0, 202, 202, 0, 0, 202, 202, 202, 202, 1779 202, 0, 202, 0, 0, 0, 19, 19, 19, 19, 1780 19, 0, 0, 202, 202, 202, 0, 202, 202, 0, 1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1783 0, 0, 0, 0, 0, 0, 204, 0, 202, 202, 1784 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786 40, 40, 40, 0, 40, 40, 0, 40, 19, 202, 1787 202, 19, 19, 204, 204, 0, 0, 204, 204, 204, 1788 204, 204, 0, 204, 0, 0, 0, 40, 40, 40, 1789 40, 0, 0, 0, 204, 204, 204, 0, 204, 204, 1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1792 0, 201, 201, 201, 201, 201, 201, 0, 201, 204, 1793 204, 0, 0, 0, 0, 201, 201, 201, 0, 0, 1794 0, 0, 0, 0, 0, 201, 201, 0, 201, 201, 1795 201, 201, 201, 0, 0, 0, 0, 0, 0, 40, 1796 204, 204, 40, 40, 0, 0, 0, 0, 0, 0, 1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1798 0, 201, 201, 201, 201, 201, 201, 201, 201, 201, 1799 201, 201, 201, 0, 0, 201, 201, 0, 0, 0, 1800 201, 0, 0, 0, 0, 0, 201, 0, 0, 0, 1801 0, 0, 202, 202, 202, 202, 202, 202, 201, 202, 1802 201, 0, 0, 201, 201, 0, 202, 202, 202, 0, 1803 0, 0, 0, 0, 0, 0, 202, 202, 0, 202, 1804 202, 202, 202, 202, 0, 0, 0, 0, 0, 0, 1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1807 0, 0, 202, 202, 202, 202, 202, 202, 202, 202, 1808 202, 202, 202, 202, 0, 0, 202, 202, 0, 0, 1809 0, 202, 0, 0, 0, 0, 0, 202, 0, 0, 1810 0, 0, 0, 204, 204, 204, 204, 204, 204, 202, 1811 204, 202, 0, 0, 202, 202, 0, 204, 204, 204, 1812 0, 0, 0, 0, 0, 0, 0, 204, 204, 0, 1813 204, 204, 204, 204, 204, 0, 0, 0, 0, 0, 1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 1816 0, 0, 0, 204, 204, 204, 204, 204, 204, 204, 1817 204, 204, 204, 204, 204, 0, 0, 204, 204, 0, 1818 0, 0, 204, 0, 0, 0, 205, 205, 204, 0, 1819 205, 205, 205, 205, 205, 0, 205, 0, 0, 0, 1820 204, 0, 204, 0, 0, 204, 204, 205, 205, 205, 1821 0, 205, 205, 0, 0, 0, 0, 0, 0, 0, 1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1824 391, 0, 205, 205, 0, 0, 0, 0, 0, 0, 1825 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1827 0, 0, 0, 205, 205, 0, 0, 391, 391, 0, 1828 0, 391, 391, 391, 88, 391, 391, 391, 0, 0, 1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 1830 391, 96, 391, 391, 0, 0, 0, 0, 0, 0, 1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1833 0, 391, 0, 391, 391, 0, 0, 0, 0, 0, 1834 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1836 0, 0, 0, 391, 391, 391, 0, 0, 0, 0, 1837 391, 391, 0, 0, 391, 391, 391, 391, 391, 391, 1838 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1839 0, 0, 391, 391, 96, 391, 391, 0, 0, 0, 1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1841 0, 0, 0, 0, 0, 0, 205, 205, 205, 205, 1842 205, 205, 0, 205, 391, 0, 0, 391, 0, 0, 1843 205, 205, 205, 0, 0, 0, 0, 0, 0, 0, 1844 205, 205, 0, 205, 205, 205, 205, 205, 0, 0, 1845 0, 0, 0, 0, 0, 0, 391, 391, 391, 0, 1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1847 0, 0, 0, 0, 0, 0, 205, 205, 205, 205, 1848 205, 205, 205, 205, 205, 205, 205, 205, 0, 0, 1849 205, 205, 0, 0, 0, 205, 0, 0, 0, 0, 1850 0, 205, 0, 0, 0, 0, 0, 391, 391, 391, 1851 0, 391, 391, 205, 391, 205, 0, 0, 205, 205, 1852 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1853 0, 391, 391, 0, 391, 391, 391, 391, 391, 0, 1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1856 0, 0, 0, 0, 0, 0, 391, 391, 391, 391, 1857 391, 391, 391, 391, 391, 391, 391, 391, 391, 0, 1858 0, 391, 391, 391, 0, 0, 0, 0, 0, 0, 1859 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 1860 391, 391, 391, 0, 391, 391, 391, 391, 0, 391, 1861 391, 0, 0, 391, 0, 0, 0, 0, 0, 0, 1862 0, 0, 0, 0, 391, 391, 0, 391, 391, 391, 1863 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 1866 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 1867 391, 391, 460, 0, 391, 391, 391, 0, 0, 0, 1868 0, 0, 460, 0, 0, 0, 0, 0, 0, 391, 1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 1870 0, 0, 391, 391, 0, 0, 0, 0, 0, 460, 1871 460, 0, 0, 460, 460, 460, 87, 460, 460, 460, 1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1873 0, 460, 460, 95, 460, 460, 0, 0, 0, 0, 1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1876 0, 0, 268, 460, 0, 0, 460, 0, 0, 0, 1877 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1879 0, 0, 0, 0, 0, 0, 460, 460, 0, 268, 1880 268, 0, 0, 268, 268, 268, 94, 268, 268, 268, 1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1882 0, 268, 268, 102, 268, 268, 0, 0, 0, 0, 1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1885 0, 0, 0, 268, 0, 0, 268, 0, 0, 0, 1886 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 1887 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 1888 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1890 0, 0, 0, 279, 279, 0, 0, 279, 279, 279, 1891 93, 279, 279, 279, 0, 0, 0, 0, 0, 0, 1892 0, 0, 0, 0, 0, 279, 279, 101, 279, 279, 1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 1894 460, 460, 0, 460, 460, 0, 460, 0, 0, 0, 1895 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 1896 279, 0, 0, 460, 460, 0, 460, 460, 460, 460, 1897 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1899 279, 279, 0, 0, 0, 0, 0, 0, 460, 460, 1900 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 1901 460, 0, 0, 460, 460, 460, 0, 459, 0, 0, 1902 0, 0, 0, 0, 0, 0, 0, 0, 460, 268, 1903 268, 268, 0, 268, 268, 0, 268, 0, 460, 0, 1904 0, 460, 460, 0, 0, 0, 0, 0, 0, 0, 1905 0, 0, 0, 268, 268, 0, 268, 268, 268, 268, 1906 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1908 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 1909 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1910 268, 0, 0, 268, 268, 268, 0, 0, 0, 0, 1911 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 1912 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 1913 0, 268, 268, 279, 279, 279, 0, 279, 279, 0, 1914 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1915 0, 0, 0, 0, 0, 0, 0, 279, 279, 0, 1916 279, 279, 279, 279, 279, 0, 0, 0, 0, 0, 1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1918 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1919 198, 0, 279, 279, 279, 279, 279, 279, 279, 279, 1920 279, 279, 279, 279, 279, 0, 0, 279, 279, 279, 1921 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 1922 0, 198, 279, 198, 198, 198, 0, 0, 0, 0, 1923 0, 0, 279, 0, 0, 279, 279, 0, 198, 198, 1924 198, 0, 198, 198, 0, 0, 0, 0, 0, 0, 1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1927 0, 199, 0, 198, 198, 0, 0, 0, 0, 0, 1928 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1930 0, 0, 0, 0, 198, 198, 0, 0, 0, 199, 1931 0, 0, 199, 0, 199, 199, 199, 0, 0, 0, 1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 1933 199, 199, 0, 199, 199, 0, 0, 0, 0, 0, 1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1936 0, 0, 268, 0, 199, 199, 0, 0, 0, 0, 1937 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939 0, 0, 0, 0, 0, 199, 199, 0, 0, 268, 1940 268, 0, 0, 268, 268, 268, 268, 268, 268, 268, 1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1942 0, 268, 268, 102, 268, 268, 0, 0, 0, 0, 1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1944 0, 0, 0, 0, 0, 0, 0, 198, 198, 198, 1945 198, 198, 198, 268, 198, 0, 268, 0, 0, 0, 1946 0, 198, 198, 198, 0, 0, 0, 0, 0, 0, 1947 0, 198, 198, 0, 198, 198, 198, 198, 198, 0, 1948 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1950 0, 0, 0, 0, 0, 0, 0, 198, 198, 198, 1951 198, 198, 198, 198, 198, 198, 198, 198, 198, 0, 1952 0, 198, 198, 0, 0, 0, 198, 0, 0, 0, 1953 0, 0, 198, 0, 0, 0, 0, 0, 199, 199, 1954 199, 199, 199, 199, 198, 199, 198, 0, 0, 198, 1955 198, 0, 199, 199, 199, 0, 0, 0, 0, 0, 1956 0, 0, 199, 199, 0, 199, 199, 199, 199, 199, 1957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1958 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 1959 0, 0, 0, 0, 223, 0, 0, 0, 199, 199, 1960 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 1961 0, 0, 199, 199, 0, 0, 0, 199, 0, 0, 1962 0, 0, 223, 199, 0, 223, 0, 0, 223, 268, 1963 268, 268, 0, 268, 268, 199, 268, 199, 0, 0, 1964 199, 199, 223, 223, 223, 0, 223, 223, 0, 0, 1965 0, 0, 0, 268, 268, 0, 268, 268, 268, 268, 1966 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1967 0, 0, 0, 0, 0, 224, 0, 223, 223, 0, 1968 0, 0, 0, 0, 0, 224, 0, 0, 268, 268, 1969 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1970 268, 0, 0, 268, 268, 268, 0, 0, 223, 223, 1971 0, 0, 0, 224, 0, 0, 224, 0, 268, 224, 1972 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 1973 0, 268, 268, 224, 224, 224, 0, 224, 224, 0, 1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1976 0, 0, 0, 0, 0, 0, 210, 0, 224, 224, 1977 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 1980 224, 0, 0, 0, 210, 0, 0, 210, 0, 0, 1981 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1982 0, 0, 0, 0, 210, 210, 210, 0, 210, 210, 1983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1985 0, 223, 223, 223, 223, 223, 223, 0, 223, 210, 1986 210, 0, 0, 0, 0, 223, 223, 223, 0, 0, 1987 0, 0, 0, 0, 0, 223, 223, 0, 223, 223, 1988 223, 223, 223, 0, 0, 0, 0, 0, 0, 0, 1989 210, 210, 0, 0, 0, 0, 0, 0, 0, 0, 1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1991 0, 223, 223, 223, 223, 223, 223, 223, 223, 223, 1992 223, 223, 223, 0, 0, 223, 223, 0, 0, 0, 1993 223, 0, 0, 0, 0, 0, 223, 0, 0, 0, 1994 0, 0, 224, 224, 224, 224, 224, 224, 223, 224, 1995 223, 0, 0, 223, 223, 0, 224, 224, 224, 0, 1996 0, 0, 0, 0, 0, 0, 224, 224, 0, 224, 1997 224, 224, 224, 224, 0, 0, 0, 0, 0, 0, 1998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2000 0, 0, 224, 224, 224, 224, 224, 224, 224, 224, 2001 224, 224, 224, 224, 0, 208, 224, 224, 0, 0, 2002 0, 224, 0, 0, 0, 208, 0, 224, 0, 0, 2003 0, 0, 0, 210, 210, 210, 210, 210, 210, 224, 2004 210, 224, 0, 0, 224, 224, 0, 210, 210, 210, 2005 0, 0, 0, 0, 0, 0, 208, 210, 210, 208, 2006 210, 210, 210, 210, 210, 0, 0, 0, 0, 0, 2007 0, 0, 0, 208, 208, 208, 0, 208, 208, 0, 2008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2009 0, 0, 0, 210, 210, 210, 210, 210, 210, 210, 2010 210, 210, 210, 210, 210, 0, 209, 0, 208, 208, 2011 0, 0, 210, 0, 0, 0, 209, 0, 210, 362, 2012 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 2013 210, 0, 210, 0, 0, 210, 210, 0, 0, 208, 2014 208, 0, 354, 0, 353, 352, 0, 209, 0, 0, 2015 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2016 0, 0, 0, 0, 209, 209, 209, 0, 209, 209, 2017 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 2018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2019 0, 0, 0, 0, 0, 0, 0, 213, 0, 209, 2020 209, 0, 0, 0, 0, 0, 355, 213, 0, 0, 2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2023 209, 209, 0, 0, 0, 0, 0, 0, 213, 0, 2024 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 2025 0, 0, 0, 0, 0, 213, 213, 213, 0, 213, 2026 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2028 0, 0, 208, 208, 208, 208, 208, 208, 0, 208, 2029 213, 0, 0, 0, 0, 0, 208, 208, 208, 0, 2030 0, 0, 0, 0, 0, 0, 208, 208, 0, 208, 2031 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, 2032 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 2033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2034 0, 0, 208, 208, 208, 208, 208, 208, 208, 208, 2035 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, 2036 0, 208, 0, 0, 0, 0, 0, 208, 0, 0, 2037 0, 0, 0, 209, 209, 209, 209, 209, 209, 208, 2038 209, 208, 0, 0, 208, 208, 0, 209, 209, 209, 2039 0, 0, 0, 0, 0, 0, 0, 209, 209, 0, 2040 209, 209, 209, 209, 209, 0, 0, 0, 337, 338, 2041 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 2042 349, 0, 0, 350, 351, 0, 0, 0, 439, 0, 2043 0, 0, 0, 209, 209, 209, 209, 209, 209, 209, 2044 209, 209, 209, 209, 209, 0, 215, 0, 0, 0, 2045 0, 0, 209, 0, 0, 0, 215, 0, 209, 0, 2046 0, 0, 0, 0, 213, 213, 213, 213, 213, 213, 2047 209, 213, 209, 0, 0, 209, 209, 0, 213, 213, 2048 213, 0, 0, 0, 0, 0, 0, 215, 213, 213, 2049 215, 213, 213, 213, 213, 213, 0, 0, 0, 0, 2050 0, 0, 0, 0, 215, 215, 215, 0, 215, 215, 2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052 0, 0, 0, 0, 213, 213, 213, 213, 213, 213, 2053 213, 213, 213, 213, 213, 213, 0, 212, 0, 215, 2054 0, 0, 0, 213, 0, 0, 0, 212, 0, 213, 2055 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 2056 361, 213, 0, 213, 0, 0, 213, 213, 0, 0, 2057 0, 215, 0, 354, 0, 353, 352, 0, 212, 0, 2058 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 2059 0, 0, 0, 0, 0, 212, 212, 212, 0, 212, 2060 212, 0, 0, 0, 0, 0, 0, 356, 0, 0, 2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2062 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 2063 212, 0, 0, 0, 0, 0, 0, 355, 214, 0, 2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2066 0, 0, 212, 0, 0, 0, 0, 0, 0, 214, 2067 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 2068 0, 0, 0, 0, 0, 0, 214, 214, 214, 0, 2069 214, 214, 0, 0, 0, 0, 0, 0, 0, 0, 2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071 0, 0, 0, 215, 215, 215, 215, 215, 215, 0, 2072 215, 214, 0, 0, 0, 0, 0, 215, 215, 215, 2073 0, 0, 0, 0, 0, 0, 0, 215, 215, 0, 2074 215, 215, 215, 215, 215, 0, 0, 0, 0, 0, 2075 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2077 0, 0, 0, 215, 215, 215, 215, 215, 215, 215, 2078 215, 215, 215, 215, 215, 0, 0, 0, 0, 0, 2079 0, 0, 215, 0, 0, 0, 0, 0, 215, 0, 2080 0, 0, 0, 0, 212, 212, 212, 212, 212, 212, 2081 215, 212, 215, 0, 0, 215, 215, 0, 212, 212, 2082 212, 0, 0, 0, 0, 0, 0, 0, 212, 212, 2083 0, 212, 212, 212, 212, 212, 0, 0, 0, 337, 2084 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 2085 348, 349, 0, 0, 350, 351, 0, 0, 0, 0, 2086 0, 0, 0, 0, 212, 212, 212, 212, 212, 212, 2087 212, 212, 212, 212, 212, 212, 0, 211, 0, 0, 2088 0, 0, 0, 212, 0, 0, 0, 211, 0, 212, 2089 0, 0, 0, 0, 0, 214, 214, 214, 214, 214, 2090 214, 212, 214, 212, 0, 0, 212, 212, 0, 214, 2091 214, 214, 0, 0, 0, 0, 0, 0, 211, 214, 2092 214, 211, 214, 214, 214, 214, 214, 0, 0, 0, 2093 0, 0, 0, 0, 0, 211, 211, 0, 0, 0, 2094 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2095 0, 0, 0, 0, 0, 214, 214, 214, 214, 214, 2096 214, 214, 214, 214, 214, 214, 214, 0, 216, 0, 2097 211, 0, 0, 0, 214, 0, 0, 0, 216, 0, 2098 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2099 0, 0, 214, 0, 214, 362, 357, 214, 214, 0, 2100 360, 358, 211, 359, 0, 361, 0, 0, 0, 216, 2101 0, 0, 216, 0, 0, 0, 0, 0, 354, 0, 2102 353, 352, 0, 0, 0, 0, 216, 216, 0, 0, 2103 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2105 0, 0, 356, 0, 0, 0, 0, 0, 0, 217, 2106 0, 216, 0, 0, 0, 0, 0, 0, 0, 217, 2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2108 0, 0, 355, 0, 0, 0, 0, 0, 0, 0, 2109 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 2110 217, 0, 0, 217, 0, 0, 0, 0, 0, 0, 2111 0, 0, 0, 0, 0, 0, 0, 217, 217, 0, 2112 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 2113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2114 0, 0, 0, 0, 211, 211, 211, 211, 211, 211, 2115 0, 211, 217, 0, 0, 0, 0, 0, 211, 211, 2116 211, 0, 0, 0, 0, 0, 0, 0, 211, 211, 2117 0, 211, 211, 211, 211, 211, 0, 0, 0, 0, 2118 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2121 211, 211, 0, 0, 211, 211, 0, 0, 0, 0, 2122 0, 0, 0, 211, 0, 0, 0, 0, 0, 211, 2123 0, 0, 0, 0, 0, 216, 216, 216, 216, 216, 2124 216, 211, 216, 211, 0, 0, 211, 211, 0, 216, 2125 216, 216, 0, 0, 0, 0, 717, 0, 0, 216, 2126 216, 0, 216, 216, 216, 216, 216, 0, 0, 0, 2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128 0, 0, 0, 0, 337, 338, 339, 340, 341, 342, 2129 343, 344, 345, 346, 347, 348, 349, 0, 0, 350, 2130 351, 216, 216, 0, 0, 216, 216, 0, 218, 0, 2131 0, 0, 0, 0, 216, 0, 0, 0, 218, 0, 2132 216, 0, 0, 0, 0, 0, 217, 217, 217, 217, 2133 217, 217, 216, 217, 216, 0, 0, 216, 216, 0, 2134 217, 217, 217, 0, 0, 0, 0, 0, 0, 218, 2135 217, 217, 218, 217, 217, 217, 217, 217, 0, 0, 2136 0, 0, 0, 0, 0, 0, 218, 218, 0, 0, 2137 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 2138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2139 0, 0, 217, 217, 0, 0, 217, 217, 0, 225, 2140 0, 218, 0, 0, 0, 217, 0, 0, 0, 225, 2141 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 2142 0, 0, 0, 217, 0, 217, 0, 0, 217, 217, 2143 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 2144 225, 0, 0, 225, 0, 0, 0, 0, 0, 0, 2145 0, 0, 0, 0, 0, 0, 0, 225, 225, 0, 2146 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2149 219, 0, 225, 0, 0, 0, 0, 0, 0, 0, 2150 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2152 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 2153 0, 219, 0, 0, 219, 0, 0, 0, 0, 0, 2154 0, 0, 0, 0, 0, 0, 0, 0, 219, 219, 2155 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2157 0, 0, 0, 0, 0, 218, 218, 218, 218, 218, 2158 218, 0, 218, 219, 0, 0, 0, 0, 0, 218, 2159 218, 218, 0, 0, 0, 0, 0, 0, 0, 218, 2160 218, 0, 218, 218, 218, 218, 218, 0, 0, 0, 2161 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 2162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2164 0, 218, 218, 0, 0, 218, 218, 0, 0, 0, 2165 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 2166 218, 0, 0, 0, 0, 0, 225, 225, 225, 225, 2167 225, 225, 218, 225, 218, 0, 380, 218, 218, 0, 2168 225, 225, 225, 0, 0, 0, 380, 0, 0, 0, 2169 225, 225, 0, 225, 225, 225, 225, 225, 0, 0, 2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 2172 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 2173 0, 0, 225, 225, 0, 380, 225, 225, 0, 220, 2174 0, 0, 0, 0, 0, 225, 0, 0, 0, 220, 2175 0, 225, 0, 0, 0, 0, 0, 219, 219, 219, 2176 219, 219, 219, 225, 219, 225, 0, 0, 225, 225, 2177 0, 219, 219, 219, 0, 0, 0, 0, 0, 0, 2178 220, 219, 219, 220, 219, 219, 219, 219, 219, 0, 2179 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 2180 0, 380, 220, 0, 0, 0, 0, 0, 0, 0, 2181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2182 0, 0, 0, 219, 219, 0, 0, 219, 219, 0, 2183 226, 0, 220, 0, 0, 0, 219, 0, 0, 0, 2184 226, 0, 219, 0, 0, 0, 0, 0, 0, 0, 2185 0, 0, 0, 0, 219, 0, 219, 0, 0, 219, 2186 219, 0, 0, 197, 220, 0, 0, 0, 0, 0, 2187 0, 226, 0, 197, 226, 0, 0, 0, 0, 0, 2188 0, 0, 0, 0, 0, 0, 0, 0, 226, 226, 2189 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 2190 0, 0, 0, 0, 197, 0, 0, 197, 0, 0, 2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2192 0, 197, 197, 226, 0, 0, 197, 0, 0, 0, 2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194 0, 0, 0, 380, 380, 380, 380, 380, 380, 0, 2195 380, 0, 0, 0, 0, 226, 197, 380, 0, 0, 2196 0, 0, 0, 0, 0, 0, 0, 380, 380, 0, 2197 380, 380, 380, 380, 380, 0, 0, 0, 0, 0, 2198 0, 0, 227, 0, 0, 0, 0, 0, 197, 0, 2199 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 2200 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 2201 220, 220, 0, 220, 0, 0, 0, 0, 0, 380, 2202 220, 220, 220, 227, 0, 0, 227, 0, 0, 0, 2203 220, 220, 380, 220, 220, 220, 220, 220, 0, 0, 2204 227, 227, 380, 0, 0, 380, 380, 0, 0, 0, 2205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2207 0, 0, 220, 220, 0, 227, 220, 220, 0, 0, 2208 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 2209 0, 220, 0, 0, 0, 0, 0, 226, 226, 226, 2210 226, 226, 226, 220, 226, 220, 0, 227, 220, 220, 2211 0, 226, 226, 226, 0, 0, 0, 0, 0, 0, 2212 0, 226, 226, 0, 226, 226, 226, 226, 226, 0, 2213 197, 197, 197, 197, 197, 197, 0, 197, 0, 0, 2214 0, 0, 0, 233, 197, 197, 197, 0, 0, 0, 2215 0, 0, 0, 233, 197, 197, 0, 197, 197, 197, 2216 197, 197, 0, 0, 226, 0, 0, 226, 226, 0, 2217 0, 0, 0, 0, 0, 0, 226, 0, 524, 0, 2218 0, 0, 226, 0, 233, 0, 0, 233, 524, 0, 2219 0, 0, 0, 0, 226, 0, 226, 0, 0, 226, 2220 226, 233, 233, 0, 0, 0, 0, 0, 0, 197, 2221 0, 0, 0, 0, 0, 197, 0, 0, 0, 524, 2222 0, 0, 524, 0, 0, 0, 0, 197, 0, 197, 2223 0, 0, 197, 197, 0, 0, 233, 524, 0, 0, 2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 2225 227, 227, 227, 227, 227, 0, 227, 0, 0, 0, 2226 0, 0, 0, 227, 227, 227, 0, 0, 233, 0, 2227 0, 524, 0, 227, 227, 0, 227, 227, 227, 227, 2228 227, 0, 256, 0, 0, 0, 0, 0, 0, 0, 2229 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 2230 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2232 0, 0, 0, 256, 0, 0, 256, 0, 227, 525, 2233 0, 0, 0, 0, 227, 0, 0, 0, 0, 525, 2234 0, 256, 0, 0, 0, 0, 227, 0, 227, 0, 2235 0, 227, 227, 0, 0, 0, 0, 0, 0, 0, 2236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2237 525, 0, 0, 525, 0, 256, 0, 0, 0, 0, 2238 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 2239 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 2240 0, 0, 522, 0, 0, 0, 0, 256, 0, 0, 2241 233, 233, 233, 233, 233, 233, 0, 233, 0, 0, 2242 0, 0, 525, 0, 233, 233, 233, 0, 0, 0, 2243 0, 0, 0, 522, 233, 233, 522, 233, 233, 233, 2244 233, 0, 0, 257, 0, 524, 524, 524, 524, 524, 2245 524, 522, 524, 257, 525, 0, 0, 0, 0, 524, 2246 524, 0, 0, 0, 0, 0, 0, 0, 0, 524, 2247 524, 0, 524, 524, 524, 524, 524, 0, 0, 0, 2248 0, 0, 526, 0, 257, 522, 0, 257, 0, 233, 2249 0, 0, 526, 0, 0, 233, 0, 0, 0, 0, 2250 0, 0, 257, 0, 0, 0, 0, 233, 0, 233, 2251 0, 0, 233, 233, 0, 0, 0, 522, 0, 0, 2252 0, 0, 0, 526, 0, 0, 526, 0, 0, 558, 2253 524, 0, 0, 0, 0, 0, 257, 0, 0, 558, 2254 0, 526, 0, 0, 524, 0, 0, 524, 524, 256, 2255 256, 256, 256, 256, 256, 0, 256, 0, 0, 0, 2256 0, 0, 0, 256, 256, 0, 0, 0, 257, 0, 2257 558, 0, 258, 256, 256, 526, 256, 256, 256, 256, 2258 256, 0, 258, 0, 0, 0, 0, 0, 558, 0, 2259 0, 0, 0, 0, 0, 0, 525, 525, 525, 525, 2260 525, 525, 0, 525, 0, 0, 0, 526, 0, 0, 2261 525, 525, 0, 258, 0, 0, 258, 0, 0, 0, 2262 525, 525, 558, 525, 525, 525, 525, 525, 0, 0, 2263 0, 258, 0, 0, 256, 250, 0, 0, 0, 0, 2264 0, 0, 0, 0, 0, 250, 0, 0, 256, 0, 2265 0, 256, 256, 0, 558, 0, 0, 0, 0, 522, 2266 522, 522, 522, 522, 522, 258, 522, 0, 0, 0, 2267 0, 0, 0, 522, 522, 0, 250, 0, 0, 0, 2268 0, 525, 0, 522, 522, 0, 522, 522, 522, 522, 2269 522, 0, 0, 0, 250, 525, 0, 258, 525, 525, 2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2271 257, 257, 257, 257, 257, 257, 0, 257, 0, 0, 2272 0, 0, 0, 0, 257, 257, 0, 0, 250, 0, 2273 0, 0, 0, 0, 257, 257, 0, 257, 257, 257, 2274 257, 257, 0, 0, 522, 0, 0, 0, 0, 526, 2275 526, 526, 526, 526, 526, 0, 526, 0, 522, 0, 2276 250, 522, 522, 526, 526, 0, 0, 0, 0, 0, 2277 0, 0, 0, 526, 526, 0, 526, 526, 526, 526, 2278 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2279 0, 0, 0, 0, 0, 257, 558, 558, 558, 558, 2280 558, 558, 0, 558, 0, 0, 0, 0, 0, 257, 2281 558, 558, 257, 257, 0, 0, 0, 0, 56, 0, 2282 558, 558, 0, 558, 558, 558, 558, 558, 56, 0, 2283 0, 0, 0, 0, 526, 0, 0, 0, 0, 258, 2284 258, 258, 258, 258, 258, 0, 258, 0, 526, 0, 2285 0, 526, 526, 258, 258, 60, 0, 0, 0, 56, 2286 0, 0, 0, 258, 258, 60, 258, 258, 258, 258, 2287 258, 0, 0, 0, 0, 0, 0, 56, 0, 0, 2288 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, 2289 0, 0, 0, 0, 0, 558, 60, 0, 558, 558, 2290 0, 0, 250, 250, 250, 250, 250, 250, 0, 250, 2291 0, 56, 0, 0, 60, 0, 250, 250, 0, 0, 2292 0, 0, 0, 0, 258, 0, 250, 250, 0, 250, 2293 250, 250, 250, 250, 0, 58, 0, 0, 258, 0, 2294 0, 258, 258, 56, 0, 58, 0, 0, 60, 0, 2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2297 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 2298 60, 0, 0, 0, 0, 0, 0, 250, 103, 0, 2299 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 2300 0, 250, 0, 0, 250, 250, 0, 0, 0, 0, 2301 0, 103, 0, 0, 0, 0, 0, 0, 527, 0, 2302 0, 0, 0, 0, 454, 0, 0, 0, 58, 0, 2303 0, 0, 0, 0, 0, 0, 0, 103, 103, 0, 2304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2306 58, 0, 0, 0, 0, 0, 0, 0, 0, 454, 2307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2308 0, 0, 0, 0, 0, 56, 56, 56, 56, 56, 2309 56, 0, 56, 0, 0, 0, 0, 0, 0, 56, 2310 56, 527, 0, 0, 103, 0, 0, 0, 0, 56, 2311 56, 0, 56, 56, 56, 56, 56, 0, 0, 0, 2312 0, 0, 60, 60, 60, 60, 60, 60, 0, 60, 2313 0, 0, 0, 0, 0, 0, 60, 60, 0, 0, 2314 0, 0, 0, 0, 0, 0, 60, 60, 0, 60, 2315 60, 60, 60, 60, 0, 0, 0, 0, 0, 0, 2316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2318 0, 0, 0, 0, 56, 0, 0, 56, 56, 0, 2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2320 0, 0, 58, 58, 58, 58, 58, 58, 0, 58, 2321 0, 0, 0, 0, 0, 0, 58, 58, 0, 0, 2322 0, 60, 0, 0, 60, 60, 58, 58, 0, 58, 2323 58, 58, 58, 58, 103, 103, 103, 103, 103, 103, 2324 103, 103, 103, 103, 103, 103, 103, 103, 0, 0, 2325 103, 103, 0, 103, 103, 103, 103, 0, 527, 0, 2326 0, 0, 103, 103, 103, 103, 103, 103, 103, 0, 2327 0, 103, 0, 0, 0, 0, 0, 103, 0, 103, 2328 103, 103, 0, 103, 103, 103, 103, 103, 103, 0, 2329 103, 103, 103, 0, 0, 103, 0, 0, 0, 103, 2330 103, 58, 103, 103, 58, 58, 0, 0, 0, 0, 2331 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 2332 0, 454, 103, 0, 0, 103, 103, 0, 103, 103, 2333 0, 103, 0, 103, 454, 103, 103, 103, 103, 103, 2334 103, 0, 104, 103, 103, 0, 0, 103, 103, 528, 2335 103, 0, 0, 0, 0, 458, 0, 0, 0, 0, 2336 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 2337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2340 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2343 0, 0, 528, 0, 0, 104, 103, 0, 0, 0, 2344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 2346 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 2347 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 2348 0, 0, 0, 0, 0, 103, 103, 0, 0, 0, 2349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2351 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 2352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2354 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 2355 0, 0, 103, 0, 0, 0, 0, 234, 0, 0, 2356 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 2357 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 2358 61, 104, 104, 0, 104, 104, 104, 104, 0, 528, 2359 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 2360 0, 0, 104, 0, 0, 0, 233, 0, 104, 0, 2361 104, 104, 104, 0, 104, 104, 104, 104, 104, 104, 2362 0, 104, 104, 104, 0, 0, 104, 0, 0, 0, 2363 104, 104, 0, 104, 104, 0, 0, 0, 0, 0, 2364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2365 0, 0, 458, 104, 0, 0, 104, 104, 0, 104, 2366 104, 0, 104, 0, 104, 458, 104, 104, 104, 104, 2367 104, 104, 0, 62, 104, 104, 0, 0, 104, 104, 2368 0, 104, 103, 103, 103, 103, 103, 103, 103, 103, 2369 103, 103, 103, 103, 103, 103, 0, 0, 103, 103, 2370 0, 103, 103, 103, 103, 0, 534, 0, 0, 0, 2371 103, 103, 103, 103, 103, 103, 103, 0, 0, 103, 2372 0, 0, 104, 0, 0, 103, 0, 103, 103, 103, 2373 0, 103, 103, 103, 103, 103, 103, 0, 103, 103, 2374 103, 0, 0, 103, 0, 104, 0, 103, 103, 0, 2375 103, 103, 531, 0, 0, 0, 0, 0, 278, 0, 2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 2377 103, 104, 104, 103, 103, 0, 103, 103, 0, 103, 2378 0, 103, 534, 103, 103, 103, 103, 103, 103, 0, 2379 0, 103, 103, 0, 0, 103, 103, 0, 103, 0, 2380 0, 0, 0, 278, 4, 5, 6, 7, 8, 9, 2381 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 2382 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 2383 0, 19, 20, 21, 22, 23, 24, 25, 104, 104, 2384 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, 2385 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 2386 39, 40, 104, 0, 41, 0, 0, 0, 42, 43, 2387 0, 44, 45, 0, 0, 279, 0, 0, 0, 0, 2388 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 2389 0, 46, 0, 0, 47, 48, 0, 49, 50, 0, 2390 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 2391 0, 0, 59, 230, 0, 0, 231, 232, 0, 60, 2392 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2395 0, 0, 0, 0, 0, 104, 0, 0, 0, 323, 2396 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 2397 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 2398 104, 104, 323, 0, 104, 104, 0, 104, 104, 104, 2399 104, 0, 0, 0, 0, 0, 104, 104, 104, 104, 2400 104, 104, 104, 0, 0, 104, 0, 0, 323, 0, 2401 0, 104, 0, 104, 104, 104, 0, 104, 104, 104, 2402 104, 104, 104, 0, 104, 104, 104, 0, 0, 104, 2403 0, 0, 0, 104, 104, 0, 104, 104, 0, 0, 2404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2405 0, 0, 0, 0, 0, 278, 104, 0, 0, 104, 2406 104, 0, 104, 104, 0, 104, 0, 104, 278, 104, 2407 104, 104, 104, 104, 104, 323, 469, 104, 104, 0, 2408 0, 104, 104, 0, 104, 104, 104, 104, 104, 104, 2409 104, 104, 104, 104, 104, 104, 104, 104, 104, 469, 2410 0, 104, 104, 0, 104, 104, 104, 104, 0, 0, 2411 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 2412 0, 0, 104, 0, 0, 469, 0, 0, 104, 0, 2413 104, 104, 104, 0, 104, 104, 104, 104, 104, 104, 2414 0, 104, 104, 104, 0, 0, 104, 0, 0, 0, 2415 104, 104, 0, 104, 104, 0, 0, 0, 0, 0, 2416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2417 0, 0, 279, 104, 0, 0, 104, 104, 0, 104, 2418 104, 0, 104, 0, 104, 279, 104, 104, 104, 104, 2419 104, 104, 469, 0, 104, 104, 558, 0, 104, 104, 2420 0, 104, 0, 0, 0, 323, 323, 323, 323, 323, 2421 323, 323, 323, 323, 323, 323, 323, 323, 323, 558, 2422 323, 323, 323, 323, 323, 323, 323, 323, 0, 0, 2423 0, 0, 0, 323, 323, 323, 323, 323, 323, 323, 2424 0, 0, 323, 0, 0, 558, 0, 0, 323, 0, 2425 323, 323, 323, 0, 323, 323, 323, 323, 323, 323, 2426 0, 323, 323, 323, 0, 0, 323, 0, 0, 0, 2427 323, 323, 0, 323, 323, 0, 0, 0, 0, 0, 2428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2429 0, 0, 0, 323, 0, 0, 323, 323, 0, 323, 2430 323, 0, 323, 0, 323, 0, 323, 323, 323, 323, 2431 323, 323, 558, 0, 323, 323, 0, 0, 323, 323, 2432 0, 323, 469, 469, 469, 469, 469, 469, 469, 469, 2433 469, 469, 469, 469, 469, 469, 0, 0, 469, 469, 2434 0, 469, 469, 469, 469, 0, 0, 0, 0, 0, 2435 469, 469, 469, 469, 469, 469, 469, 0, 0, 469, 2436 0, 0, 558, 0, 0, 469, 0, 469, 469, 469, 2437 0, 469, 469, 469, 469, 469, 469, 0, 469, 469, 2438 469, 0, 0, 469, 0, 558, 0, 469, 469, 0, 2439 469, 469, 0, 0, 0, 0, 0, 0, 0, 0, 2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2441 469, 558, 0, 469, 469, 0, 469, 469, 0, 469, 2442 0, 469, 0, 469, 469, 469, 469, 469, 469, 0, 2443 0, 469, 469, 0, 0, 469, 469, 0, 469, 0, 2444 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 2445 558, 558, 558, 0, 0, 558, 0, 0, 0, 558, 2446 0, 558, 558, 558, 558, 0, 0, 0, 0, 0, 2447 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 2448 0, 0, 234, 0, 0, 558, 0, 558, 558, 558, 2449 0, 558, 558, 558, 558, 558, 558, 0, 558, 558, 2450 558, 0, 0, 558, 0, 61, 0, 558, 558, 0, 2451 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2453 558, 233, 0, 558, 558, 0, 558, 558, 0, 558, 2454 0, 558, 0, 558, 558, 558, 558, 558, 558, 0, 2455 0, 558, 558, 0, 0, 558, 558, 0, 558, 0, 2456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2459 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 2460 240, 0, 0, 0, 0, 0, 0, 0, 558, 558, 2461 558, 558, 558, 558, 558, 558, 558, 558, 558, 0, 2462 0, 0, 0, 253, 0, 558, 0, 558, 558, 558, 2463 558, 240, 0, 0, 0, 0, 558, 558, 558, 558, 2464 558, 558, 558, 0, 0, 558, 0, 0, 0, 0, 2465 0, 558, 0, 558, 558, 558, 0, 558, 558, 558, 2466 558, 558, 558, 0, 558, 558, 558, 0, 0, 558, 2467 0, 0, 0, 558, 558, 0, 558, 558, 0, 0, 2468 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 2469 0, 0, 0, 0, 0, 0, 558, 0, 0, 558, 2470 558, 0, 558, 558, 0, 558, 0, 558, 0, 558, 2471 558, 558, 558, 558, 558, 0, 253, 558, 558, 0, 2472 275, 558, 558, 0, 558, 0, 0, 0, 0, 4, 2473 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 2474 0, 0, 0, 272, 0, 14, 0, 15, 16, 17, 2475 18, 275, 0, 0, 0, 0, 19, 20, 21, 22, 2476 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 2477 0, 27, 0, 29, 30, 31, 0, 32, 33, 34, 2478 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 2479 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2481 0, 0, 0, 0, 0, 0, 46, 0, 0, 47, 2482 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 2483 54, 55, 56, 57, 58, 0, 272, 59, 230, 0, 2484 0, 231, 232, 0, 60, 0, 0, 253, 253, 253, 2485 253, 253, 253, 253, 253, 253, 0, 0, 0, 0, 2486 0, 0, 0, 253, 234, 253, 253, 253, 253, 0, 2487 0, 0, 0, 0, 253, 253, 253, 253, 253, 253, 2488 253, 0, 0, 253, 0, 0, 0, 61, 0, 0, 2489 0, 0, 253, 253, 0, 253, 253, 253, 253, 253, 2490 253, 253, 253, 253, 253, 0, 0, 253, 0, 0, 2491 253, 253, 253, 233, 253, 253, 0, 0, 0, 0, 2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2493 0, 0, 0, 0, 253, 0, 0, 253, 253, 0, 2494 253, 253, 0, 253, 253, 253, 0, 253, 253, 253, 2495 253, 253, 253, 0, 0, 253, 0, 0, 0, 0, 2496 0, 0, 253, 0, 0, 0, 0, 272, 272, 272, 2497 272, 272, 272, 272, 272, 272, 272, 0, 0, 0, 2498 62, 234, 0, 272, 0, 272, 272, 272, 272, 0, 2499 0, 0, 0, 0, 272, 272, 272, 272, 272, 272, 2500 272, 0, 0, 272, 61, 0, 0, 0, 0, 272, 2501 0, 272, 272, 272, 0, 272, 272, 272, 272, 272, 2502 272, 0, 272, 272, 272, 0, 0, 272, 0, 0, 2503 0, 272, 272, 0, 272, 272, 0, 0, 0, 0, 2504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2505 0, 0, 0, 0, 272, 0, 0, 272, 272, 0, 2506 272, 272, 0, 272, 0, 272, 0, 272, 272, 272, 2507 272, 272, 272, 0, 0, 272, 0, 0, 0, 0, 2508 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 2509 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 2510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2512 0, 0, 0, 0, 61, 0, 0, 14, 0, 15, 2513 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 2514 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 2515 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 2516 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 2517 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 2518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 2520 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 2521 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 2522 230, 0, 0, 231, 232, 0, 60, 0, 4, 5, 2523 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 2524 0, 0, 254, 0, 14, 0, 15, 16, 17, 18, 2525 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 2526 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 2527 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 2528 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 2529 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 2530 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 2531 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 2532 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 2533 55, 56, 57, 58, 254, 254, 59, 0, 0, 0, 2534 0, 0, 0, 60, 0, 0, 0, 3, 4, 5, 2535 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 2536 0, 61, 0, 0, 14, 0, 15, 16, 17, 18, 2537 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 2538 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 2539 27, 28, 29, 30, 31, 0, 32, 33, 34, 35, 2540 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 2541 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 46, 0, 0, 47, 48, 2544 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 2545 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 2546 0, 0, 0, 60, 0, 0, 254, 254, 254, 254, 2547 254, 254, 254, 254, 254, 0, 0, 0, 0, 61, 2548 0, 0, 254, 0, 254, 254, 254, 254, 0, 0, 2549 0, 0, 0, 254, 254, 254, 254, 254, 254, 254, 2550 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 2551 0, 254, 254, 0, 254, 254, 254, 254, 254, 254, 2552 254, 254, 254, 254, 0, 0, 254, 0, 0, 254, 2553 254, 254, 0, 254, 254, 0, 0, 0, 0, 0, 2554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2555 0, 0, 0, 254, 0, 0, 254, 254, 0, 254, 2556 254, 0, 254, 254, 254, 0, 254, 254, 254, 254, 2557 254, 254, 62, 0, 254, 0, 0, 0, 0, 0, 2558 0, 254, 0, 0, 0, 4, 5, 6, 7, 8, 2559 9, 10, 11, 12, 13, 0, 0, 0, 61, 0, 2560 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 2561 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 2562 0, 26, 0, 0, 0, 0, 0, 27, 28, 29, 2563 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 2564 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 2565 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2567 0, 0, 46, 0, 0, 47, 48, 0, 49, 50, 2568 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 2569 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 2570 60, 0, 276, 4, 5, 6, 7, 8, 9, 10, 2571 11, 12, 13, 0, 0, 0, 248, 0, 0, 14, 2572 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 2573 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2574 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 2575 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 2576 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 2577 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579 46, 0, 0, 277, 48, 0, 49, 50, 0, 51, 2580 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 2581 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 2582 0, 276, 4, 5, 6, 7, 8, 9, 10, 11, 2583 12, 13, 0, 0, 0, 253, 0, 0, 14, 0, 2584 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 2585 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 2586 0, 0, 0, 0, 27, 0, 29, 30, 31, 0, 2587 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 2588 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 2589 45, 0, 0, 0, 0, 253, 0, 0, 0, 0, 2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 2591 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 2592 52, 0, 53, 54, 55, 56, 57, 58, 253, 0, 2593 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 2594 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 2595 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 2596 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 2597 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 2598 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 2599 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 2600 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2602 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 2603 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 2604 53, 54, 55, 56, 247, 58, 62, 0, 59, 230, 2605 0, 0, 231, 232, 0, 60, 0, 0, 0, 253, 2606 253, 253, 253, 253, 253, 253, 253, 253, 0, 0, 2607 0, 0, 61, 0, 0, 253, 0, 253, 253, 253, 2608 253, 0, 0, 0, 0, 0, 253, 253, 253, 253, 2609 253, 253, 253, 0, 0, 253, 0, 0, 0, 0, 2610 0, 0, 0, 0, 253, 253, 0, 253, 253, 253, 2611 253, 253, 253, 253, 253, 253, 253, 0, 0, 253, 2612 0, 0, 253, 253, 253, 0, 253, 253, 0, 0, 2613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2614 0, 0, 0, 0, 0, 0, 253, 0, 0, 253, 2615 253, 0, 253, 253, 0, 253, 253, 253, 0, 253, 2616 253, 253, 253, 253, 253, 62, 0, 253, 0, 0, 2617 0, 0, 0, 0, 253, 0, 0, 4, 5, 6, 2618 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2619 248, 0, 0, 14, 0, 15, 16, 17, 18, 0, 2620 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 2621 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 2622 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 2623 37, 243, 38, 39, 40, 0, 0, 41, 0, 0, 2624 244, 42, 43, 0, 44, 45, 0, 0, 0, 0, 2625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2626 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 2627 49, 50, 0, 245, 246, 52, 0, 53, 54, 55, 2628 56, 247, 58, 62, 0, 59, 0, 0, 0, 0, 2629 0, 0, 60, 0, 0, 0, 4, 5, 6, 7, 2630 8, 9, 10, 11, 12, 13, 0, 0, 0, 248, 2631 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 2632 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 2633 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 2634 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 2635 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 2636 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638 0, 0, 0, 46, 0, 0, 47, 48, 0, 49, 2639 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 2640 57, 58, 248, 0, 59, 0, 0, 0, 0, 0, 2641 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 2642 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 2643 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 2644 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 2645 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 2646 31, 0, 32, 33, 34, 35, 36, 37, 243, 38, 2647 39, 40, 0, 0, 41, 0, 0, 244, 42, 43, 2648 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 2649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2650 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 2651 648, 246, 52, 0, 53, 54, 55, 56, 247, 58, 2652 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 2653 0, 0, 0, 248, 248, 248, 248, 248, 248, 248, 2654 248, 248, 0, 0, 0, 0, 248, 0, 0, 248, 2655 0, 248, 248, 248, 248, 0, 0, 0, 0, 0, 2656 248, 248, 248, 248, 248, 248, 248, 0, 0, 248, 2657 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 2658 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 2659 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 2660 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662 248, 0, 0, 248, 248, 0, 248, 248, 0, 248, 2663 248, 248, 0, 248, 248, 248, 248, 248, 248, 62, 2664 0, 248, 0, 0, 0, 0, 0, 0, 248, 0, 2665 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2666 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 2667 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 2668 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 2669 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 2670 33, 34, 35, 36, 37, 243, 38, 39, 40, 0, 2671 0, 41, 0, 0, 244, 42, 43, 0, 44, 45, 2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2673 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 2674 0, 110, 48, 0, 49, 50, 0, 245, 0, 52, 2675 0, 53, 54, 55, 56, 247, 58, 62, 0, 59, 2676 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 2677 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 2678 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 2679 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 2680 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 2681 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 2682 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 2683 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 2684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2685 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 2686 110, 48, 0, 49, 50, 0, 648, 0, 52, 0, 2687 53, 54, 55, 56, 247, 58, 62, 0, 59, 0, 2688 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 2689 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 2690 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 2691 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 2692 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 2693 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 2694 36, 37, 243, 38, 39, 40, 0, 0, 41, 0, 2695 0, 244, 42, 43, 0, 44, 45, 0, 0, 0, 2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2697 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 2698 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 2699 55, 56, 247, 58, 62, 0, 59, 0, 0, 0, 2700 0, 0, 0, 60, 0, 0, 0, 4, 5, 6, 2701 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2702 248, 0, 0, 14, 0, 15, 16, 17, 18, 0, 2703 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 2704 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 2705 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 2706 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 2707 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2709 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 2710 49, 50, 0, 588, 0, 52, 0, 53, 54, 55, 2711 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 2712 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 2713 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 2714 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 2715 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 2716 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 2717 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 2718 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 2719 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2721 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 2722 0, 245, 0, 52, 0, 53, 54, 55, 56, 57, 2723 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 2724 60, 0, 0, 0, 4, 5, 6, 7, 8, 9, 2725 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 2726 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 2727 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 2728 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 2729 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 2730 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 2731 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2733 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 2734 588, 0, 52, 0, 53, 54, 55, 56, 57, 58, 2735 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 2736 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 2737 12, 0, 0, 0, 0, 61, 0, 0, 14, 0, 2738 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 2739 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 2740 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 2741 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 2742 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 2743 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2744 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 2745 0, 0, 110, 48, 0, 49, 50, 0, 826, 0, 2746 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 2747 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 2748 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2749 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 2750 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 2751 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 2752 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 2753 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 2754 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 2757 0, 110, 48, 0, 49, 50, 0, 648, 0, 52, 2758 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 2759 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 2760 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 2761 0, 0, 248, 0, 0, 14, 0, 15, 16, 17, 2762 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 2763 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 2764 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 2765 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 2766 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 2767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2768 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 2769 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 2770 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 2771 0, 0, 0, 0, 60, 0, 0, 0, 4, 5, 2772 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 2773 0, 545, 0, 0, 14, 0, 100, 101, 17, 18, 2774 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 2775 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 2776 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 2777 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 2778 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2780 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 2781 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 2782 55, 56, 57, 58, 545, 0, 59, 0, 0, 0, 2783 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 2784 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 2785 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 2786 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 2787 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 2788 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 2789 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 2790 42, 43, 0, 44, 45, 0, 189, 0, 0, 0, 2791 188, 183, 0, 0, 0, 186, 184, 0, 185, 0, 2792 187, 0, 0, 199, 0, 0, 110, 48, 0, 49, 2793 50, 0, 0, 180, 52, 179, 53, 54, 55, 56, 2794 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 2795 0, 60, 0, 0, 0, 545, 545, 545, 545, 545, 2796 545, 545, 545, 545, 0, 0, 0, 182, 0, 191, 2797 0, 545, 0, 545, 545, 545, 545, 0, 0, 0, 2798 0, 0, 545, 545, 545, 545, 545, 545, 545, 0, 2799 0, 545, 0, 0, 0, 0, 0, 181, 0, 190, 2800 545, 545, 0, 545, 545, 545, 545, 545, 545, 0, 2801 545, 545, 545, 0, 0, 545, 0, 0, 0, 545, 2802 545, 0, 545, 545, 0, 189, 0, 0, 0, 188, 2803 183, 0, 0, 0, 186, 184, 0, 185, 0, 187, 2804 0, 0, 545, 0, 0, 545, 545, 0, 545, 545, 2805 0, 0, 180, 545, 179, 545, 545, 545, 545, 545, 2806 545, 0, 0, 545, 0, 0, 0, 0, 0, 0, 2807 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2808 0, 0, 0, 0, 0, 0, 182, 0, 191, 0, 2809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2811 0, 0, 0, 0, 0, 0, 181, 0, 190, 0, 2812 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 2813 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 2814 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 2815 140, 141, 142, 143, 0, 0, 0, 144, 145, 146, 2816 217, 218, 219, 220, 151, 152, 153, 0, 0, 0, 2817 0, 0, 154, 155, 156, 221, 222, 159, 223, 161, 2818 301, 302, 224, 303, 0, 0, 0, 0, 0, 0, 2819 304, 0, 0, 0, 0, 0, 0, 163, 164, 165, 2820 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 2821 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 2822 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 2823 0, 0, 0, 0, 305, 0, 0, 0, 0, 598, 2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 2825 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 2826 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 2827 141, 142, 143, 0, 0, 0, 144, 145, 146, 217, 2828 218, 219, 220, 151, 152, 153, 0, 0, 0, 0, 2829 0, 154, 155, 156, 221, 222, 159, 223, 161, 301, 2830 302, 224, 303, 0, 0, 0, 0, 0, 0, 304, 2831 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 2832 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 2833 0, 174, 175, 176, 177, 0, 4, 5, 6, 7, 2834 8, 9, 10, 11, 12, 178, 0, 0, 0, 0, 2835 0, 0, 14, 424, 100, 101, 17, 18, 0, 0, 2836 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 2837 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 2838 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 2839 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 2840 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2842 0, 0, 0, 294, 0, 0, 110, 48, 0, 49, 2843 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 2844 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 2845 0, 111, 4, 5, 6, 7, 8, 9, 10, 11, 2846 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 2847 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 2848 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 2849 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 2850 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 2851 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 2852 189, 0, 0, 0, 188, 183, 0, 0, 0, 186, 2853 184, 0, 185, 0, 187, 0, 0, 0, 0, 294, 2854 0, 0, 110, 48, 0, 49, 50, 180, 0, 179, 2855 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 2856 59, 0, 0, 0, 0, 0, 0, 111, 0, 0, 2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2858 0, 182, 0, 191, 0, 0, 0, 0, 0, 0, 2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2861 0, 181, 0, 190, 0, 0, 0, 0, 0, 0, 2862 0, 189, 0, 0, 0, 188, 183, 0, 192, 0, 2863 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 2864 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 2865 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2868 0, 0, 182, 0, 191, 0, 0, 0, 0, 0, 2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2871 0, 0, 181, 0, 190, 0, 0, 0, 0, 0, 2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2874 0, 0, 0, 0, 120, 121, 122, 123, 124, 125, 2875 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 2876 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 2877 0, 144, 145, 146, 217, 218, 219, 220, 151, 152, 2878 153, 0, 0, 0, 0, 0, 154, 155, 156, 221, 2879 222, 159, 223, 161, 0, 0, 224, 0, 0, 0, 2880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2881 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 2882 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2884 178, 0, 0, 0, 225, 120, 121, 122, 123, 124, 2885 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 2886 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 2887 0, 0, 144, 145, 146, 147, 148, 149, 150, 151, 2888 152, 153, 0, 0, 0, 0, 0, 154, 155, 156, 2889 157, 158, 159, 160, 161, 34, 35, 162, 37, 0, 2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2891 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 2892 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 2893 177, 0, 0, 189, 0, 0, 0, 188, 183, 0, 2894 0, 178, 186, 184, 0, 185, 0, 187, 0, 0, 2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2896 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 2897 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 2898 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 2899 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 2900 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 2901 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 2902 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 2903 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 2904 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 2905 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 2906 0, 187, 181, 0, 190, 0, 0, 0, 0, 0, 2907 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 2908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2910 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 2911 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2912 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 2913 184, 0, 185, 0, 187, 0, 0, 0, 181, 0, 2914 190, 0, 0, 0, 0, 0, 0, 180, 0, 179, 2915 0, 0, 0, 0, 0, 0, 0, 120, 121, 122, 2916 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 2917 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 2918 143, 182, 0, 191, 144, 145, 146, 217, 218, 219, 2919 220, 151, 152, 153, 0, 0, 0, 0, 0, 154, 2920 155, 156, 221, 222, 159, 223, 161, 0, 0, 224, 2921 0, 181, 0, 190, 0, 0, 0, 0, 0, 0, 2922 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 2923 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 2924 175, 176, 177, 561, 562, 0, 0, 563, 0, 0, 2925 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 2926 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 2927 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 2928 177, 569, 570, 0, 0, 571, 0, 0, 0, 0, 2929 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 2930 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 2931 0, 172, 173, 0, 0, 174, 175, 176, 177, 606, 2932 562, 0, 0, 607, 0, 0, 0, 0, 0, 178, 2933 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 2934 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 2935 173, 0, 0, 174, 175, 176, 177, 0, 0, 0, 2936 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 2937 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 2938 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 2939 0, 0, 583, 570, 0, 0, 584, 180, 0, 179, 2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2941 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 2942 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 2943 0, 182, 0, 191, 0, 0, 0, 189, 0, 0, 2944 178, 188, 183, 0, 258, 0, 186, 184, 0, 185, 2945 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 2946 0, 181, 0, 190, 180, 0, 179, 0, 0, 0, 2947 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 2948 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 2949 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 2950 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 2951 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 2952 258, 0, 186, 184, 0, 185, 0, 187, 181, 0, 2953 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 2954 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2956 0, 0, 0, 0, 0, 0, 181, 0, 190, 0, 2957 0, 0, 0, 0, 182, 0, 191, 0, 0, 0, 2958 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 2959 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 2960 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 2961 0, 0, 0, 0, 0, 0, 180, 0, 179, 0, 2962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2964 0, 0, 622, 562, 0, 0, 623, 0, 0, 0, 2965 182, 0, 191, 0, 0, 0, 0, 0, 0, 0, 2966 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 2967 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 2968 181, 0, 190, 0, 0, 0, 0, 0, 0, 0, 2969 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 2971 570, 0, 0, 626, 0, 0, 0, 0, 0, 0, 2972 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 2973 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 2974 173, 0, 0, 174, 175, 176, 177, 632, 562, 0, 2975 0, 633, 0, 0, 0, 0, 0, 178, 0, 0, 2976 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 2977 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 2978 0, 174, 175, 176, 177, 635, 570, 0, 0, 636, 2979 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 2980 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 2981 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 2982 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 2983 0, 0, 0, 178, 0, 0, 0, 0, 0, 189, 2984 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 2985 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 2986 0, 668, 562, 0, 0, 669, 180, 0, 179, 0, 2987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2988 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 2989 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 2990 182, 0, 191, 0, 0, 0, 189, 0, 0, 178, 2991 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 2992 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2993 181, 0, 190, 180, 0, 179, 0, 0, 0, 0, 2994 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 2995 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 2996 0, 0, 0, 0, 0, 0, 0, 182, 0, 191, 2997 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 2998 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 2999 0, 186, 184, 0, 185, 0, 187, 181, 0, 190, 3000 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 3001 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 3002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3003 0, 0, 0, 0, 0, 181, 0, 190, 0, 0, 3004 0, 0, 0, 182, 0, 191, 0, 0, 0, 0, 3005 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 3006 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 3007 185, 0, 187, 181, 0, 190, 0, 0, 0, 0, 3008 0, 0, 0, 0, 0, 180, 0, 179, 0, 0, 3009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3011 0, 671, 570, 0, 0, 672, 0, 0, 0, 182, 3012 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 3013 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 3014 0, 172, 173, 0, 0, 174, 175, 176, 177, 181, 3015 0, 190, 0, 0, 0, 0, 0, 0, 0, 178, 3016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3017 0, 0, 0, 0, 0, 0, 0, 0, 819, 562, 3018 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 3019 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 3020 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 3021 0, 0, 174, 175, 176, 177, 822, 570, 0, 0, 3022 823, 0, 0, 0, 0, 0, 178, 0, 0, 0, 3023 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 3024 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 3025 174, 175, 176, 177, 959, 562, 0, 0, 960, 0, 3026 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 3027 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 3028 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 3029 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 3030 0, 0, 178, 0, 0, 0, 0, 0, 189, 0, 3031 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 3032 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 3033 962, 562, 0, 0, 963, 180, 0, 179, 0, 0, 3034 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 3035 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 3036 172, 173, 0, 0, 174, 175, 176, 177, 0, 182, 3037 0, 191, 0, 0, 0, 189, 0, 0, 178, 188, 3038 183, 0, 0, 0, 186, 184, 0, 185, 0, 187, 3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 3040 0, 190, 180, 0, 179, 0, 0, 0, 0, 0, 3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3042 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 3043 10, 11, 12, 0, 0, 0, 182, 0, 191, 0, 3044 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 3045 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 3046 105, 0, 0, 0, 0, 0, 181, 0, 190, 30, 3047 31, 0, 106, 33, 34, 35, 107, 37, 0, 38, 3048 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 3049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3050 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 3051 0, 109, 0, 0, 110, 48, 0, 49, 50, 0, 3052 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 3053 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 3054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3058 965, 570, 0, 0, 966, 0, 0, 0, 0, 0, 3059 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 3060 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 3061 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 3062 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 3063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3064 0, 0, 0, 0, 0, 0, 0, 583, 570, 0, 3065 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, 3066 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 3067 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 3068 0, 174, 175, 176, 177, 4, 5, 6, 7, 8, 3069 9, 10, 11, 12, 0, 178, 0, 0, 0, 0, 3070 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 3071 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 3072 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 3073 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 3074 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 3075 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3077 0, 0, 210, 0, 0, 47, 48, 0, 49, 50, 3078 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 3079 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 3080 111, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3081 0, 0, 0, 0, 0, 0, 0, 14, 0, 100, 3082 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 3083 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 3084 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 3085 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 3086 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 3087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3088 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 3089 0, 380, 48, 0, 49, 50, 0, 381, 0, 52, 3090 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 3091 0, 0, 0, 0, 0, 0, 111, 4, 5, 6, 3092 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 3093 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 3094 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 3095 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 3096 0, 0, 30, 31, 0, 106, 33, 34, 35, 107, 3097 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 3098 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 3099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3100 0, 0, 0, 0, 109, 0, 0, 110, 48, 0, 3101 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 3102 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 3103 0, 0, 111, 4, 5, 6, 7, 8, 9, 10, 3104 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 3105 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 3106 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 3107 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 3108 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 3109 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 3110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3112 294, 0, 0, 380, 48, 0, 49, 50, 0, 0, 3113 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 3114 0, 59, 0, 0, 0, 0, 0, 0, 111, 4, 3115 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 3116 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 3117 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 3118 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 3119 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 3120 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 3121 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 3122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3123 0, 0, 0, 0, 0, 0, 881, 0, 0, 110, 3124 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 3125 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 3126 0, 0, 0, 0, 111, 4, 5, 6, 7, 8, 3127 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 3128 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 3129 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 3130 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 3131 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 3132 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 3133 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3135 0, 0, 895, 0, 0, 110, 48, 0, 49, 50, 3136 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 3137 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 3138 111, 3139 }, yyCheck = new short[] { 3140 //yyCheck 25161 3141 2, 418, 79, 26, 207, 61, 13, 84, 20, 21, 3142 78, 9, 27, 6, 6, 370, 14, 90, 20, 254, 3143 27, 13, 398, 14, 21, 295, 427, 15, 16, 15, 3144 16, 19, 51, 19, 300, 27, 288, 300, 4, 5, 3145 292, 396, 2, 3, 47, 3, 12, 49, 50, 444, 3146 46, 312, 486, 124, 283, 44, 411, 46, 109, 40, 3147 53, 53, 37, 49, 50, 93, 421, 42, 10, 70, 3148 686, 10, 47, 10, 379, 70, 559, 560, 368, 70, 3149 777, 46, 372, 95, 373, 51, 376, 283, 377, 15, 3150 16, 103, 104, 19, 683, 10, 251, 125, 95, 41, 3151 277, 103, 91, 123, 41, 117, 373, 397, 701, 443, 3152 377, 378, 446, 10, 610, 860, 0, 701, 683, 10, 3153 410, 686, 412, 49, 90, 202, 91, 873, 624, 484, 3154 10, 286, 422, 288, 211, 364, 701, 292, 634, 8, 3155 9, 41, 123, 0, 59, 14, 10, 775, 0, 37, 3156 41, 93, 44, 10, 42, 43, 93, 45, 40, 47, 3157 10, 41, 59, 10, 598, 59, 0, 10, 364, 61, 3158 61, 461, 47, 46, 670, 10, 10, 41, 123, 440, 3159 283, 61, 285, 444, 55, 56, 57, 58, 10, 15, 3160 16, 41, 710, 19, 41, 485, 273, 61, 716, 944, 3161 312, 313, 59, 380, 797, 10, 41, 46, 954, 124, 3162 208, 209, 909, 305, 61, 450, 486, 309, 91, 296, 3163 10, 46, 295, 41, 124, 59, 61, 124, 856, 605, 3164 124, 497, 225, 225, 497, 110, 41, 59, 10, 108, 3165 235, 125, 309, 93, 235, 861, 237, 730, 10, 251, 3166 93, 41, 254, 514, 59, 46, 258, 291, 292, 10, 3167 280, 656, 46, 334, 10, 282, 91, 10, 125, 41, 3168 258, 61, 618, 125, 277, 263, 865, 263, 279, 10, 3169 10, 627, 44, 911, 279, 10, 875, 59, 279, 873, 3170 279, 875, 447, 44, 40, 729, 861, 59, 41, 280, 3171 91, 44, 272, 125, 274, 10, 124, 91, 873, 345, 3172 875, 41, 617, 44, 10, 943, 276, 373, 61, 44, 3173 654, 377, 378, 379, 284, 821, 354, 10, 598, 295, 3174 10, 61, 330, 331, 332, 333, 41, 263, 329, 208, 3175 209, 10, 10, 760, 395, 41, 449, 343, 41, 615, 3176 453, 326, 291, 292, 343, 345, 61, 61, 41, 61, 3177 372, 464, 381, 739, 44, 720, 59, 356, 370, 329, 3178 954, 329, 41, 41, 334, 44, 247, 380, 343, 59, 3179 372, 40, 370, 46, 376, 397, 647, 279, 279, 954, 3180 59, 356, 653, 44, 396, 656, 271, 266, 267, 279, 3181 412, 309, 277, 405, 60, 397, 61, 480, 396, 411, 3182 422, 345, 354, 486, 666, 381, 651, 354, 707, 421, 3183 412, 345, 309, 411, 713, 714, 417, 418, 91, 719, 3184 422, 721, 279, 421, 305, 701, 591, 263, 326, 642, 3185 707, 279, 457, 10, 279, 447, 713, 714, 450, 461, 3186 457, 852, 378, 379, 830, 722, 458, 443, 853, 729, 3187 44, 330, 331, 332, 333, 457, 335, 336, 964, 461, 3188 343, 274, 738, 485, 41, 738, 467, 123, 2, 3, 3189 4, 5, 484, 356, 8, 9, 472, 642, 12, 279, 3190 14, 15, 16, 485, 597, 19, 484, 499, 458, 501, 3191 44, 578, 428, 505, 343, 380, 852, 467, 270, 366, 3192 613, 666, 369, 370, 480, 10, 892, 356, 343, 0, 3193 486, 810, 44, 47, 547, 598, 573, 51, 326, 10, 3194 399, 356, 366, 408, 769, 369, 370, 61, 585, 10, 3195 492, 416, 41, 810, 366, 568, 41, 369, 370, 279, 3196 10, 426, 343, 565, 10, 46, 558, 559, 560, 343, 3197 41, 573, 665, 44, 611, 356, 90, 833, 565, 345, 3198 41, 573, 356, 585, 279, 10, 573, 680, 59, 10, 3199 10, 41, 937, 585, 108, 41, 110, 610, 585, 10, 3200 270, 10, 853, 10, 366, 10, 608, 369, 370, 611, 3201 91, 624, 10, 93, 366, 10, 604, 369, 370, 611, 3202 41, 634, 603, 125, 283, 617, 618, 309, 620, 44, 3203 41, 614, 614, 638, 44, 627, 41, 44, 10, 59, 3204 352, 638, 598, 41, 10, 838, 41, 326, 513, 637, 3205 59, 844, 59, 269, 125, 44, 638, 670, 938, 651, 3206 326, 707, 708, 270, 59, 723, 729, 713, 714, 682, 3207 267, 10, 41, 10, 40, 317, 722, 269, 654, 354, 3208 46, 774, 373, 44, 198, 44, 377, 59, 701, 125, 3209 343, 10, 44, 59, 208, 209, 366, 61, 10, 369, 3210 370, 617, 44, 356, 41, 364, 10, 366, 312, 313, 3211 369, 370, 10, 44, 268, 269, 305, 124, 272, 721, 3212 59, 305, 413, 414, 61, 91, 10, 345, 720, 298, 3213 125, 345, 44, 315, 676, 677, 318, 319, 730, 721, 3214 59, 834, 720, 10, 258, 604, 345, 59, 61, 263, 3215 742, 732, 266, 267, 746, 59, 10, 271, 345, 740, 3216 748, 59, 276, 277, 810, 10, 271, 272, 718, 44, 3217 284, 462, 269, 729, 272, 59, 125, 769, 637, 760, 3218 345, 295, 10, 46, 797, 367, 368, 41, 44, 10, 3219 782, 783, 59, 785, 345, 787, 267, 268, 269, 791, 3220 271, 272, 794, 274, 796, 59, 40, 799, 821, 10, 3221 44, 269, 46, 345, 59, 329, 330, 331, 332, 333, 3222 334, 335, 336, 294, 295, 296, 297, 298, 91, 896, 3223 345, 59, 125, 775, 125, 777, 58, 702, 59, 345, 3224 705, 706, 93, 44, 268, 801, 269, 267, 268, 269, 3225 268, 269, 272, 346, 10, 14, 370, 91, 59, 373, 3226 852, 270, 343, 377, 378, 379, 380, 381, 269, 345, 3227 269, 44, 267, 268, 269, 356, 271, 272, 44, 274, 3228 745, 837, 396, 41, 398, 399, 46, 315, 59, 748, 3229 318, 319, 757, 758, 408, 366, 44, 411, 369, 370, 3230 765, 914, 416, 59, 270, 44, 124, 421, 44, 281, 3231 44, 70, 426, 44, 856, 857, 305, 44, 307, 308, 3232 309, 310, 44, 788, 789, 917, 918, 919, 920, 268, 3233 269, 91, 924, 925, 926, 927, 938, 929, 125, 367, 3234 368, 269, 279, 269, 458, 937, 366, 939, 940, 369, 3235 370, 964, 0, 467, 269, 269, 938, 366, 270, 937, 3236 369, 370, 10, 269, 829, 269, 480, 909, 272, 911, 3237 484, 366, 486, 44, 369, 370, 841, 343, 125, 269, 3238 972, 973, 974, 975, 976, 269, 309, 271, 272, 124, 3239 356, 269, 984, 41, 366, 125, 44, 369, 370, 513, 3240 366, 943, 269, 369, 370, 272, 309, 274, 44, 15, 3241 16, 59, 44, 19, 44, 366, 707, 708, 369, 370, 3242 44, 10, 713, 714, 44, 270, 269, 366, 44, 283, 3243 369, 370, 269, 274, 346, 900, 44, 902, 44, 45, 3244 905, 269, 201, 49, 50, 279, 93, 366, 207, 270, 3245 369, 370, 41, 125, 366, 61, 62, 369, 370, 274, 3246 751, 752, 366, 754, 755, 369, 370, 41, 366, 270, 3247 59, 369, 370, 41, 93, 125, 235, 125, 237, 93, 3248 343, 58, 366, 93, 598, 369, 370, 269, 5, 940, 3249 604, 605, 6, 356, 2, 3, 4, 5, 458, 366, 3250 939, 346, 369, 370, 12, 875, 833, 683, 676, 343, 3251 364, 724, 366, 944, 366, 369, 370, 369, 370, 810, 3252 279, 366, 356, 637, 369, 370, 12, 286, 10, 288, 3253 240, 312, -1, 292, -1, 10, 125, -1, 366, 47, 3254 -1, 369, 370, 51, -1, 366, -1, -1, 369, 370, 3255 294, 295, 296, 297, 298, 846, -1, 125, 40, 41, 3256 -1, -1, 44, -1, 46, 366, -1, -1, 369, 370, 3257 329, 46, 305, -1, 307, 308, 309, 310, 316, 61, 3258 318, 319, 90, 343, 59, -1, 41, -1, 702, -1, 3259 -1, 705, 706, 707, 708, -1, 356, -1, -1, 713, 3260 714, -1, 110, -1, 718, -1, 720, -1, 722, 91, 3261 366, -1, -1, 369, 370, 729, 91, -1, -1, 267, 3262 268, 269, 270, 271, 272, 739, 274, -1, -1, 367, 3263 368, 745, -1, -1, 748, -1, -1, 243, 244, 245, 3264 246, 123, 248, 757, 758, -1, 294, 295, 296, 297, 3265 298, 765, 258, -1, -1, -1, -1, 263, 417, 418, 3266 -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, 3267 125, 0, -1, -1, 788, 789, -1, 38, 267, 268, 3268 269, 10, 271, 272, -1, 274, -1, 801, -1, 305, 3269 198, 307, 308, 309, 310, 41, 810, -1, 346, 267, 3270 268, 269, 313, 271, 272, 316, 274, 318, 467, 320, 3271 -1, 322, 41, 59, -1, 829, 830, -1, 366, -1, 3272 -1, 369, 370, 837, 317, 318, 319, 841, -1, -1, 3273 59, 337, 338, 339, 340, 341, 342, 343, 344, 345, 3274 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 3275 356, 357, 358, 359, 360, 361, 362, -1, -1, -1, 3276 -1, 10, -1, 271, 370, -1, -1, 373, 276, 277, 3277 -1, 377, 378, 379, 367, 368, 284, 366, 892, 125, 3278 369, 370, -1, -1, -1, -1, 900, 295, 902, 38, 3279 396, 905, -1, 42, 10, 270, 125, 279, 280, 305, 3280 -1, 307, 308, 309, 310, 411, 10, 413, 414, 415, 3281 -1, 10, 267, 268, 269, 421, 271, 272, 10, 274, 3282 -1, 329, 428, 937, 40, 41, 334, 438, 44, -1, 3283 46, 437, -1, 439, -1, -1, 40, 443, 444, -1, 3284 -1, 347, 46, -1, 603, 61, -1, 46, 2, 3, 3285 4, 5, 6, -1, 46, 59, 462, 44, 12, 46, 3286 59, 343, -1, -1, -1, 373, 472, 59, 343, 377, 3287 378, -1, 380, 381, 356, 91, -1, -1, 484, -1, 3288 44, 356, 46, 642, -1, -1, -1, 91, -1, -1, 3289 398, 366, 91, 47, 369, 370, -1, 51, -1, 91, 3290 408, 512, 508, -1, 91, -1, -1, 666, 416, 316, 3291 -1, 318, 319, -1, -1, -1, 522, 523, 426, 123, 3292 -1, 267, 268, 269, 37, 271, 272, 91, 274, 42, 3293 43, 123, 45, -1, 47, -1, 90, -1, 267, 268, 3294 269, 270, 271, 272, 305, 274, 307, 308, 309, 310, 3295 458, -1, 281, 10, -1, 10, 110, -1, -1, 467, 3296 367, 368, 291, 292, -1, 294, 295, 296, 297, 298, 3297 -1, -1, 480, 732, -1, 317, 318, 319, 486, -1, 3298 -1, 740, 588, 40, -1, 40, 347, 44, -1, 46, 3299 -1, 46, -1, 354, -1, -1, -1, -1, 10, -1, 3300 -1, 760, 59, -1, 59, 513, -1, -1, -1, -1, 3301 501, 617, -1, -1, 505, 10, -1, -1, 10, -1, 3302 366, -1, -1, 369, 370, 367, 368, -1, -1, 41, 3303 -1, -1, 44, -1, 91, -1, 91, 366, -1, 645, 3304 369, 370, 648, -1, 198, 40, -1, 59, 654, 41, 3305 656, 46, 44, -1, 46, -1, 305, -1, 307, 308, 3306 309, 310, -1, 279, 59, -1, 270, 124, 123, 61, 3307 -1, 270, -1, 38, -1, 40, 280, 42, 270, 838, 3308 -1, 2, 3, -1, -1, 844, -1, -1, 280, -1, 3309 598, 12, 279, -1, -1, -1, 91, 605, 347, 91, 3310 -1, 707, 708, -1, 353, 354, -1, 713, 714, 0, 3311 -1, 717, 124, -1, 720, 279, 722, 271, -1, 10, 3312 726, -1, 276, 277, -1, -1, 47, 343, 123, -1, 3313 284, 315, 316, 317, 318, 319, 320, -1, -1, 343, 3314 356, 295, 10, -1, 343, 751, 752, -1, 754, 755, 3315 41, 343, 356, 44, -1, -1, 343, 356, 764, -1, 3316 -1, -1, 366, -1, 356, 369, 370, 366, 59, 356, 3317 369, 370, -1, 41, 366, 329, 44, 369, 370, 343, 3318 334, -1, -1, 367, 368, -1, -1, 793, -1, 110, 3319 -1, 59, 356, -1, 702, -1, -1, 705, 706, 707, 3320 -1, -1, 93, -1, 810, 713, 714, -1, -1, -1, 3321 718, -1, -1, 326, 722, 270, -1, -1, -1, 38, 3322 826, 729, -1, 42, -1, 280, 380, 381, 341, 342, 3323 -1, 739, -1, -1, 125, -1, -1, 745, -1, -1, 3324 846, -1, -1, -1, 398, 2, 3, 853, -1, 757, 3325 758, -1, -1, -1, 408, -1, 124, 765, 37, 38, 3326 -1, -1, 416, 42, 43, -1, 45, -1, 47, -1, 3327 -1, 283, 426, -1, -1, 270, -1, 198, -1, -1, 3328 788, 789, -1, -1, -1, 280, 343, 279, 343, -1, 3329 47, 782, 783, 801, 785, -1, 787, -1, -1, 356, 3330 791, 356, 810, 794, 458, 796, -1, -1, 799, -1, 3331 -1, 366, -1, 467, 369, 370, 317, 318, 319, 320, 3332 -1, 829, 830, -1, -1, -1, 480, -1, -1, 837, 3333 -1, 937, 486, 841, -1, 317, 318, 319, 320, -1, 3334 305, -1, 307, 308, 309, 310, -1, -1, 343, -1, 3335 271, 343, 364, 110, 366, 276, 277, 369, 370, 513, 3336 -1, 356, -1, 284, 356, -1, 367, 368, 317, 318, 3337 319, 366, -1, -1, 369, 370, 267, 268, 269, 270, 3338 271, 272, 347, 274, 892, 367, 368, -1, 353, 354, 3339 281, 282, 900, -1, 902, -1, -1, 905, -1, 0, 3340 291, 292, -1, 294, 295, 296, 297, 298, 329, 10, 3341 -1, -1, -1, 334, -1, 283, -1, -1, 367, 368, 3342 317, 318, 319, -1, -1, -1, 917, 918, 919, 920, 3343 -1, -1, -1, 924, 925, 926, 927, -1, 929, -1, 3344 41, 198, -1, 44, 598, -1, -1, -1, -1, -1, 3345 -1, 605, 373, -1, -1, -1, 377, 378, 59, 380, 3346 -1, 352, -1, 0, -1, 317, 318, 319, -1, -1, 3347 367, 368, -1, 10, -1, 366, -1, 398, 369, 370, 3348 -1, 972, 973, 974, 975, 976, 305, 408, 307, 308, 3349 309, 310, -1, 984, -1, 416, 364, -1, 366, -1, 3350 -1, 369, 370, -1, 41, 426, 10, 44, -1, 10, 3351 -1, -1, -1, -1, 271, 367, 368, -1, -1, 276, 3352 277, -1, 59, -1, 125, -1, -1, 284, 347, -1, 3353 -1, -1, -1, -1, 353, 354, -1, 458, -1, 40, 3354 41, -1, 46, 44, -1, 46, 467, 326, 702, -1, 3355 10, 705, 706, -1, -1, 59, 93, -1, -1, -1, 3356 61, -1, 341, 342, 718, -1, -1, 317, 318, 319, 3357 -1, -1, 329, -1, -1, 729, -1, 334, 10, -1, 3358 40, 41, -1, -1, 44, 739, 46, 91, 125, -1, 3359 91, 745, 513, 317, 318, 319, -1, -1, 317, 318, 3360 319, 61, -1, 757, 758, -1, 38, -1, 40, -1, 3361 42, 765, -1, -1, 46, -1, 373, 367, 368, -1, 3362 377, 378, 123, 380, -1, -1, -1, 59, -1, -1, 3363 -1, 91, -1, -1, 788, 789, -1, -1, -1, -1, 3364 -1, 398, -1, 367, 368, -1, -1, 801, 367, 368, 3365 -1, 408, -1, -1, -1, -1, -1, -1, -1, 416, 3366 -1, -1, -1, 123, -1, -1, 267, 268, 269, 426, 3367 271, 272, -1, 274, -1, 829, 830, -1, -1, -1, 3368 -1, -1, -1, 837, 605, -1, -1, 841, -1, 10, 3369 291, 292, 10, 294, 295, 296, 297, -1, -1, -1, 3370 -1, 458, -1, 38, -1, 40, -1, 42, -1, -1, 3371 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3372 41, -1, 40, 44, -1, 46, 44, -1, 46, -1, 3373 267, 268, 269, 270, 271, 272, -1, 274, 892, -1, 3374 61, 59, -1, -1, 281, 282, 900, -1, 902, -1, 3375 -1, 905, -1, -1, 291, 292, 513, 294, 295, 296, 3376 297, 298, -1, 4, 5, 366, 270, -1, 369, 370, 3377 91, 12, -1, 91, -1, -1, -1, -1, 279, 280, 3378 -1, 702, -1, -1, 705, 706, 707, -1, -1, -1, 3379 -1, -1, 713, 714, -1, -1, -1, 718, -1, -1, 3380 -1, 722, 123, 44, 45, 123, 124, -1, 49, 50, 3381 51, -1, -1, -1, -1, 352, -1, -1, 739, 279, 3382 280, 62, -1, -1, 745, -1, -1, -1, -1, 366, 3383 -1, -1, 369, 370, -1, -1, 757, 758, -1, 343, 3384 -1, -1, 343, -1, 765, -1, -1, 40, 605, 90, 3385 -1, 44, 356, 46, -1, 356, -1, -1, -1, 10, 3386 -1, -1, 366, -1, -1, 369, 370, 788, 789, -1, 3387 -1, -1, -1, 305, -1, 307, 308, 309, 310, -1, 3388 -1, -1, -1, 343, 0, -1, -1, -1, -1, 810, 3389 41, -1, -1, 44, 10, 46, 356, -1, 91, -1, 3390 -1, -1, -1, -1, -1, -1, -1, -1, 829, 830, 3391 61, 343, -1, -1, -1, 347, 837, -1, -1, -1, 3392 841, 353, 354, -1, -1, 41, -1, -1, 44, -1, 3393 123, -1, 10, -1, 366, -1, -1, 369, 370, -1, 3394 91, -1, 58, 59, -1, 702, -1, 63, 705, 706, 3395 707, -1, -1, -1, -1, -1, 713, 714, 279, 280, 3396 -1, 718, 280, 41, -1, 722, 44, -1, 46, -1, 3397 305, 892, 307, 308, 309, 310, -1, 93, -1, 900, 3398 -1, 902, 739, 61, 905, -1, -1, -1, 745, -1, 3399 -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, 3400 757, 758, 243, 244, 245, 246, -1, 248, 765, 125, 3401 -1, -1, 347, 91, -1, -1, -1, 0, 353, 354, 3402 -1, -1, 343, -1, -1, 343, -1, 10, -1, -1, 3403 -1, 788, 789, 347, -1, 356, 0, -1, 356, 353, 3404 305, -1, 307, 308, 309, 310, 10, -1, -1, -1, 3405 -1, -1, -1, 810, 295, -1, -1, -1, 41, -1, 3406 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, 3407 -1, -1, 829, 830, -1, -1, 59, 41, -1, -1, 3408 44, -1, 347, -1, 841, -1, 279, 280, 353, -1, 3409 -1, -1, -1, -1, 58, 59, 337, 338, 339, 340, 3410 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 3411 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 3412 361, 362, -1, -1, -1, -1, -1, -1, 279, 93, 3413 -1, -1, 40, -1, -1, 892, 44, -1, 46, -1, 3414 381, -1, 125, 900, -1, 902, -1, -1, 905, -1, 3415 343, 267, 268, 269, 270, 271, 272, -1, 274, -1, 3416 -1, 125, 44, 356, 46, 281, 282, 283, -1, -1, 3417 -1, -1, 413, 414, 415, 291, 292, -1, 294, 295, 3418 296, 297, 298, 91, -1, -1, -1, 428, -1, -1, 3419 -1, -1, 343, -1, -1, -1, 437, 0, 439, -1, 3420 -1, 279, 443, 444, -1, 356, -1, 10, -1, 91, 3421 -1, -1, 40, -1, -1, 123, 44, -1, 46, -1, 3422 -1, 462, -1, -1, -1, -1, -1, -1, -1, -1, 3423 346, 472, -1, -1, -1, -1, 352, -1, 41, 480, 3424 -1, 123, -1, -1, -1, 486, -1, -1, 364, -1, 3425 366, -1, -1, 369, 370, -1, 59, -1, -1, -1, 3426 -1, -1, -1, 91, -1, 343, -1, 508, -1, -1, 3427 -1, -1, -1, -1, -1, -1, -1, -1, 356, -1, 3428 -1, 522, 523, -1, 267, 268, 269, 270, 271, 272, 3429 -1, 274, -1, -1, -1, 123, -1, -1, -1, -1, 3430 -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 3431 274, 294, 295, 296, 297, 298, -1, 281, 282, 283, 3432 -1, -1, 125, -1, -1, -1, -1, 291, 292, -1, 3433 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 3434 -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, 3435 -1, -1, -1, -1, -1, -1, -1, 598, -1, -1, 3436 -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, 3437 -1, 279, 280, -1, -1, -1, 617, -1, -1, 0, 3438 -1, -1, 346, 366, -1, -1, 369, 370, 352, 10, 3439 -1, -1, -1, -1, -1, -1, -1, 279, 280, -1, 3440 364, -1, 366, -1, 645, 369, 370, 648, -1, -1, 3441 -1, -1, 33, 654, -1, 656, 37, 38, -1, 40, 3442 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3443 -1, -1, -1, -1, -1, 343, -1, 58, 59, 60, 3444 61, 62, 63, -1, -1, -1, -1, -1, 356, -1, 3445 -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 3446 -1, 343, -1, -1, 267, 268, 269, 270, 271, 272, 3447 91, 274, 93, 94, 356, -1, 717, -1, 281, -1, 3448 -1, -1, -1, -1, -1, 726, -1, -1, 729, -1, 3449 -1, 294, 295, 296, 297, 298, 0, -1, -1, -1, 3450 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3451 751, 752, -1, 754, 755, 343, -1, -1, -1, -1, 3452 -1, -1, -1, 764, -1, -1, -1, -1, 356, 33, 3453 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3454 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3455 -1, -1, 793, -1, 58, 59, 60, 61, 62, 63, 3456 801, -1, -1, 366, -1, -1, 369, 370, -1, -1, 3457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3458 -1, -1, -1, -1, -1, 826, -1, 91, -1, 93, 3459 94, -1, -1, -1, -1, -1, 837, -1, -1, -1, 3460 -1, -1, -1, -1, -1, 846, -1, -1, -1, -1, 3461 -1, -1, 853, -1, -1, -1, -1, -1, -1, 123, 3462 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 3463 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3464 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 3465 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 3466 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 3467 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3468 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3469 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3470 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3471 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3472 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 3473 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 3474 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, 3475 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3476 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 3477 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 3478 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3479 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3480 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3481 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3482 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3483 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3484 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 3485 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3486 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3487 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 3488 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3489 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3490 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3491 -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 3492 61, 62, 63, -1, -1, -1, -1, 94, -1, -1, 3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3495 91, -1, 93, 94, -1, -1, -1, 124, -1, -1, 3496 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3497 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3498 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3500 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3501 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3502 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3503 -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, 3504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3506 -1, -1, -1, -1, -1, -1, -1, 91, -1, 93, 3507 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 3510 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 3511 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3512 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 3513 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3514 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 3515 291, 292, 293, 294, 295, 296, 297, 298, -1, 326, 3516 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3517 311, 312, 313, 314, 341, 342, 317, -1, -1, 320, 3518 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3519 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3520 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 3521 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 3522 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, 3523 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3524 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 3525 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 3526 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3527 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3528 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3529 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3530 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3531 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3532 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 3533 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3534 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3535 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3537 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3538 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3539 -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 3540 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, 3541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3543 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3545 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3546 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3548 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3549 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3550 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3551 -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, 3552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3554 -1, -1, -1, -1, -1, -1, -1, 91, -1, 93, 3555 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3557 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 3558 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 3559 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3560 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 3561 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3562 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 3563 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3564 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3565 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3566 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3567 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3568 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 3569 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 3570 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, 3571 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3572 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 3573 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 3574 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3575 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3576 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3577 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3578 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3579 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3580 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 3581 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3582 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3585 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3586 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 3588 -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, 3589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3590 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3591 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, 3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3593 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3594 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3596 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3597 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3598 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3599 -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, 3600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3602 -1, -1, -1, -1, -1, -1, -1, 91, -1, 93, 3603 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3605 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 3606 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 3607 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3608 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 3609 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3610 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 3611 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3612 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3613 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3614 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3615 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3616 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 3617 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 3618 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, 3619 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3620 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 3621 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 3622 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3623 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3624 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3625 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3626 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3627 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3628 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 3629 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3630 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3631 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3633 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3634 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3635 -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 3636 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3639 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, 3640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3641 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3642 -1, -1, -1, 124, 125, 126, 10, -1, -1, -1, 3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3644 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3645 -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 3646 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3647 -1, -1, -1, -1, -1, 59, 60, -1, 62, 63, 3648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3650 10, -1, -1, -1, -1, -1, -1, 91, -1, 93, 3651 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3652 -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 3653 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 3654 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, 3655 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3656 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 3657 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, 3658 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 3659 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3660 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3661 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3662 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3663 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3664 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 3665 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 3666 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, 3667 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3668 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 3669 274, 275, 276, 277, 278, -1, 280, 281, 282, -1, 3670 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3671 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3672 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3673 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3674 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3675 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3676 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 3677 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3678 -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3679 -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 3680 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, 33, -1, -1, -1, 37, 38, -1, -1, 3682 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3683 -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 3684 -1, 62, 63, 353, 354, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 3686 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3687 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, 3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3689 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3690 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3693 -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 3694 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3695 -1, -1, -1, -1, -1, 59, 60, -1, 62, 63, 3696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3698 10, -1, -1, -1, -1, -1, -1, 91, -1, 93, 3699 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 3701 40, -1, 42, -1, -1, -1, 46, -1, -1, -1, 3702 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, 3703 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3704 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 3705 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3706 281, 282, -1, 284, 285, 286, 287, 288, 289, 290, 3707 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3708 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3709 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3710 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3711 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3712 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 3713 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 3714 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, 3715 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3716 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 3717 274, 275, 276, 277, 278, -1, -1, 281, 282, -1, 3718 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3719 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3720 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3721 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3722 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3723 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3724 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 3725 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3726 -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3727 -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 3728 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3730 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3731 -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 3732 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, 3733 -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 3734 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3735 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3737 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3738 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3740 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3741 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3742 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3743 -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, 3744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3746 10, -1, -1, -1, -1, -1, -1, 91, -1, -1, 3747 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748 -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 3749 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 3750 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, 3751 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3752 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 3753 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3754 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 3755 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3756 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3757 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3758 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3759 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3760 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 3761 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 3762 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, 3763 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3764 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 3765 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 3766 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3767 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3768 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3769 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3770 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3771 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3772 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 3773 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3774 -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3775 -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 3776 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3777 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3778 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3779 -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 3780 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, 3781 -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 3782 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3783 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3785 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3786 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3788 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3789 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3790 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3791 -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, 3792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3794 10, -1, -1, -1, -1, -1, -1, 91, -1, -1, 3795 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3796 -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 3797 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 3798 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, 3799 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3800 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 3801 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3802 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 3803 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3804 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3805 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3806 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3807 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3808 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 3809 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 3810 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, 3811 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3812 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 3813 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 3814 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3815 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3816 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3817 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3818 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3819 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3820 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 3821 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3822 -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3823 -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 3824 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3825 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3826 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3827 -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 3828 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, 3829 -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 3830 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3831 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3833 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3834 -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 3835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3836 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3837 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3838 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3839 -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, 3840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3842 10, -1, -1, -1, -1, -1, -1, 91, -1, -1, 3843 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3844 -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 3845 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 3846 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, 3847 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3848 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 3849 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3850 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 3851 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3852 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3853 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3854 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3855 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3856 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 3857 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 3858 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, 3859 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3860 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 3861 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 3862 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3863 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3864 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3865 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3866 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3867 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3868 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 3869 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3870 -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3871 -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 3872 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3873 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 3874 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 3875 -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 3876 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, 3877 -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 3878 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3879 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 3882 -1, -1, -1, 124, 125, 126, 10, -1, -1, -1, 3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3884 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 3885 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 3886 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 3887 -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, 3888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3889 -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 3890 -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 3891 94, -1, -1, -1, -1, -1, 10, -1, -1, -1, 3892 -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, 3893 -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, 3894 124, 125, 126, -1, 38, 59, 40, -1, 42, -1, 3895 -1, -1, 46, -1, -1, -1, 257, 258, 259, 260, 3896 261, 262, 263, 264, 265, 59, 267, 268, 269, -1, 3897 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, 3898 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 3899 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3900 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3901 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3902 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 3903 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 3904 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 3905 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 3906 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, 3907 -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 3908 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 3909 274, 275, 276, 277, 278, -1, -1, -1, -1, -1, 3910 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 3911 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, 3912 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 3913 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 3914 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 3915 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 3916 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 3917 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 3918 -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, 3919 -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, 3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3921 -1, 305, 33, 307, 308, 309, 310, -1, -1, -1, 3922 41, -1, -1, -1, -1, 46, -1, -1, -1, 343, 3923 -1, -1, -1, 347, -1, -1, -1, -1, 59, 353, 3924 354, -1, -1, -1, -1, -1, -1, -1, -1, 343, 3925 -1, -1, 366, 347, -1, 369, 370, -1, -1, 353, 3926 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3927 -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, 3928 -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 3929 -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, 3930 -1, -1, 123, -1, 125, 126, -1, -1, -1, -1, 3931 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3932 -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 3933 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, 3934 -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, 3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3937 -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, 3938 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3940 -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, 3941 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3943 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 3944 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 3945 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 3946 281, -1, -1, 284, 285, 286, 287, 288, 289, 290, 3947 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, 3948 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 3949 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 3950 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 3951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3952 -1, -1, 343, 344, -1, -1, 347, 348, -1, 350, 3953 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 3954 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, 3955 -1, 372, 267, 268, 269, 270, 271, 272, -1, 274, 3956 -1, -1, -1, -1, -1, 280, 281, 282, 283, 686, 3957 -1, -1, 689, -1, -1, -1, 291, 292, -1, 294, 3958 295, 296, 297, 298, 701, 37, 38, -1, -1, -1, 3959 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, 3960 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 3961 62, 326, 327, 328, 329, 330, 331, 332, 333, 334, 3962 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, 3963 -1, 346, -1, -1, 10, -1, -1, 352, -1, -1, 3964 -1, 356, 94, -1, -1, -1, -1, -1, -1, 364, 3965 -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, 3966 -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 3967 46, 47, 124, -1, -1, -1, -1, -1, -1, -1, 3968 -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, 3969 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3970 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3971 -1, -1, -1, -1, -1, 91, -1, 93, 94, -1, 3972 -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 3973 -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 3974 -1, -1, -1, -1, 861, -1, 863, 123, 124, 125, 3975 867, -1, -1, -1, -1, -1, 873, -1, -1, -1, 3976 -1, -1, 879, -1, -1, 37, 38, -1, -1, 41, 3977 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, 3978 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 3979 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, 3980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3981 -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, 3982 -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, 3983 947, -1, -1, -1, -1, 952, -1, 954, -1, 956, 3984 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3985 -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, 3986 -1, -1, -1, -1, 981, -1, -1, -1, -1, -1, 3987 -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 3988 332, 333, 334, 335, 336, -1, -1, -1, -1, 341, 3989 342, 267, 268, 269, 270, 271, 272, -1, 274, -1, 3990 -1, -1, -1, -1, 280, 281, 282, 283, -1, -1, 3991 -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 3992 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, 3993 -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 3994 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3995 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 3996 336, 337, 338, -1, -1, 341, 342, 343, -1, 41, 3997 346, -1, 44, -1, 0, -1, 352, -1, -1, -1, 3998 356, -1, -1, -1, 10, -1, -1, 59, 364, -1, 3999 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 4000 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 4001 282, 283, -1, -1, -1, 41, -1, -1, -1, 291, 4002 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 4003 -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 4004 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4005 -1, -1, -1, 125, 326, 327, 328, 329, 330, 331, 4006 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 4007 342, 343, -1, 345, 346, -1, -1, 10, -1, -1, 4008 352, -1, -1, -1, 356, -1, -1, -1, -1, -1, 4009 -1, -1, 364, -1, 366, -1, -1, 369, 370, 125, 4010 -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 4011 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, 4012 -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 4013 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4015 -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, 4016 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, 4017 -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, 4018 -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 4019 123, 124, 125, -1, -1, 267, 268, 269, 270, 271, 4020 272, -1, 274, -1, -1, -1, -1, -1, 37, 38, 4021 -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, 4022 -1, -1, 294, 295, 296, 297, 298, -1, -1, 58, 4023 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, 4024 -1, 267, 268, 269, -1, 271, 272, -1, 274, -1, 4025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4026 -1, -1, 91, -1, 93, 94, -1, -1, 294, 295, 4027 296, 297, 298, -1, 346, -1, -1, -1, -1, -1, 4028 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4029 -1, -1, -1, -1, 366, 124, 125, 369, 370, -1, 4030 -1, -1, -1, 37, 38, -1, -1, -1, 42, 43, 4031 -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, 4032 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 4033 -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 4034 366, 274, -1, 369, 370, -1, -1, 280, 281, 282, 4035 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, 4036 94, 294, 295, 296, 297, 298, -1, -1, -1, -1, 4037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4038 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4039 124, -1, -1, 326, 327, 328, 329, 330, 331, 332, 4040 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 4041 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, 4042 0, -1, -1, 356, -1, -1, -1, -1, -1, -1, 4043 10, 364, -1, 366, -1, -1, 369, 370, 267, 268, 4044 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, 4045 -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, 4046 -1, 41, 291, 292, -1, 294, 295, 296, 297, 298, 4047 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 4048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4049 -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 4050 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 4051 0, -1, 341, 342, 343, -1, -1, 346, -1, -1, 4052 10, -1, -1, 352, -1, -1, -1, 356, -1, -1, 4053 -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 4054 369, 370, -1, -1, -1, 125, -1, 37, 38, -1, 4055 -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, 4056 -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 4057 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, 4058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4059 -1, -1, 326, -1, -1, -1, -1, 331, 332, -1, 4060 -1, 91, -1, 93, 94, -1, -1, 341, 342, -1, 4061 -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 4062 -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, 4063 -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, 4064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4065 -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 4066 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, 4067 -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, 4068 -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 4069 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 4070 -1, 281, -1, -1, -1, 91, -1, 93, 94, -1, 4071 -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 4072 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4073 -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, 4074 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4075 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4077 -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 4078 270, 271, 272, -1, 274, -1, 366, -1, -1, 369, 4079 370, 281, 282, 283, -1, -1, -1, -1, -1, -1, 4080 -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 4081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4083 -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 4084 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 4085 -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, 4086 -1, -1, 352, 0, -1, -1, 356, -1, -1, -1, 4087 -1, -1, -1, 10, 364, -1, 366, -1, -1, 369, 4088 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, 4089 -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, 4090 -1, -1, -1, -1, 41, 291, 292, -1, 294, 295, 4091 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 4092 -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, 4093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4094 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 4095 336, 337, 338, 0, -1, 341, 342, 343, -1, -1, 4096 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, 4097 356, -1, -1, -1, -1, -1, -1, -1, 364, -1, 4098 366, -1, -1, 369, 370, -1, -1, -1, 125, -1, 4099 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 4100 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4101 -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, 4102 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4104 -1, -1, -1, -1, 91, -1, 93, 94, -1, -1, 4105 -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 4106 -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 4107 -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, 4108 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4109 -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 4110 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, 4111 -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 4112 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4113 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, 4114 -1, -1, -1, -1, 281, -1, -1, -1, 91, -1, 4115 93, 94, -1, -1, 291, 292, -1, 294, 295, 296, 4116 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 4117 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4118 -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, 4119 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4120 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4122 267, 268, 269, 270, 271, 272, -1, 274, -1, 366, 4123 -1, -1, 369, 370, 281, 282, 283, -1, -1, -1, 4124 -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 4125 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 4126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4127 -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 4128 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 4129 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, 4130 -1, -1, -1, -1, -1, 352, 0, -1, -1, 356, 4131 -1, -1, -1, -1, -1, -1, 10, 364, -1, 366, 4132 -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, 4133 -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 4134 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 4135 -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, 4136 -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, 4137 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4138 -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 4139 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 4140 343, -1, -1, 346, -1, -1, 10, -1, -1, 352, 4141 -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, 4142 -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, 4143 -1, 125, -1, 37, 38, -1, -1, 41, 42, 43, 4144 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 4145 -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, 4146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4148 -1, -1, -1, -1, -1, -1, -1, 91, -1, 93, 4149 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4150 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4151 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4152 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, 4153 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 4154 -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, 4155 -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 4156 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, 4157 -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 4158 274, -1, -1, -1, -1, -1, -1, 281, -1, -1, 4159 -1, 91, -1, 93, 94, -1, -1, 291, 292, -1, 4160 294, 295, 296, 297, 298, 10, -1, -1, -1, -1, 4161 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4162 -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, 4163 -1, -1, 37, 38, -1, -1, -1, 42, 43, -1, 4164 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, 4165 -1, -1, -1, -1, -1, 60, -1, 62, 63, -1, 4166 -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 4167 274, -1, 366, -1, -1, 369, 370, 281, 282, 283, 4168 -1, -1, -1, -1, -1, -1, -1, 291, 292, 94, 4169 294, 295, 296, 297, 298, -1, -1, 37, 38, -1, 4170 -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, 4171 -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 4172 60, -1, 62, 327, 328, 329, 330, 331, 332, 333, 4173 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 4174 -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, 4175 -1, -1, 356, -1, 94, -1, -1, -1, -1, -1, 4176 364, -1, 366, -1, -1, 369, 370, 267, 268, 269, 4177 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 4178 -1, 281, 282, 283, 124, -1, -1, -1, -1, -1, 4179 -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 4180 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4181 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 4182 -1, -1, -1, -1, -1, -1, 10, 327, 328, 329, 4183 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 4184 -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, 4185 -1, -1, 352, 37, 38, -1, 356, 41, 42, 43, 4186 44, 45, 46, 47, 364, -1, 366, -1, -1, 369, 4187 370, -1, -1, -1, -1, 59, 60, -1, 62, 63, 4188 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4190 -1, -1, -1, -1, -1, -1, 0, 91, -1, 93, 4191 94, -1, -1, -1, -1, -1, 10, -1, -1, -1, 4192 -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 4193 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, 4194 124, 125, -1, 37, 38, -1, -1, 41, 42, 43, 4195 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 4196 -1, -1, -1, -1, -1, 59, 60, -1, 62, 63, 4197 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4198 -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 4199 330, 331, 332, 333, -1, 335, 336, 91, -1, 93, 4200 94, 341, 342, -1, -1, -1, -1, -1, -1, -1, 4201 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4202 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4203 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, 4204 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 4205 -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, 4206 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 4207 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, 4208 -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 4209 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, 4210 -1, 91, -1, 93, 94, -1, -1, 291, 292, -1, 4211 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 4212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4213 -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, 4214 -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 4215 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 4216 -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, 4217 -1, -1, 356, 267, 268, 269, 270, 271, 272, -1, 4218 274, -1, 366, -1, -1, 369, 370, 281, 282, -1, 4219 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 4220 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 4221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4223 -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 4224 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 4225 -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, 4226 -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, 4227 -1, -1, 366, -1, -1, 369, 370, 267, 268, 269, 4228 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 4229 -1, 281, 282, -1, -1, -1, -1, -1, -1, -1, 4230 -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 4231 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 4232 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4233 -1, -1, -1, 60, -1, 62, 326, 327, 328, 329, 4234 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, 4235 -1, 341, 342, 343, -1, -1, 346, -1, -1, 10, 4236 -1, -1, 352, -1, -1, -1, 356, 94, -1, -1, 4237 -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 4238 370, -1, -1, -1, -1, -1, 37, 38, -1, -1, 4239 41, 42, 43, 44, 45, -1, 47, 124, -1, -1, 4240 -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 4241 -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, 4242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4244 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 4245 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4247 -1, -1, -1, 124, 125, -1, -1, 37, 38, -1, 4248 -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, 4249 -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 4250 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, 4251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4253 -1, 0, -1, 93, 94, -1, -1, -1, -1, -1, 4254 -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 4255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4256 -1, -1, -1, -1, 124, 125, -1, -1, 37, 38, 4257 -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, 4258 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4259 59, 60, -1, 62, 63, -1, -1, -1, -1, 326, 4260 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, 4261 -1, -1, -1, -1, 341, 342, 267, 268, 269, 270, 4262 271, 272, -1, 274, 93, 94, -1, -1, -1, -1, 4263 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 4264 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, 4265 -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, 4266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4267 -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 4268 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 4269 341, 342, 0, -1, -1, 346, -1, -1, -1, -1, 4270 -1, 352, 10, -1, -1, -1, -1, 267, 268, 269, 4271 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, 4272 -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 4273 -1, 291, 292, 41, 294, 295, 296, 297, 298, -1, 4274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4275 -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, 4276 -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 4277 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 4278 -1, 341, 342, 0, -1, -1, 346, -1, -1, -1, 4279 -1, -1, 352, 10, -1, -1, -1, -1, 267, 268, 4280 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 4281 370, -1, 281, 282, 283, -1, -1, 125, -1, -1, 4282 -1, -1, 291, 292, 41, 294, 295, 296, 297, 298, 4283 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4284 -1, -1, 59, -1, 0, -1, -1, -1, -1, -1, 4285 -1, -1, -1, -1, 10, -1, -1, -1, 327, 328, 4286 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 4287 -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, 4288 -1, 37, 38, 352, -1, 41, 42, 43, 44, 45, 4289 -1, 47, -1, -1, -1, 364, -1, 366, -1, -1, 4290 369, 370, 58, 59, 60, -1, 62, 63, 125, -1, 4291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4293 -1, -1, -1, -1, -1, 0, -1, 93, 94, -1, 4294 -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, 4295 -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 4296 268, 269, -1, 271, 272, -1, 274, -1, 124, 125, 4297 -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 4298 45, -1, 47, -1, -1, -1, 294, 295, 296, 297, 4299 298, -1, -1, 58, 59, 60, -1, 62, 63, -1, 4300 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4302 -1, -1, -1, -1, -1, -1, 0, -1, 93, 94, 4303 -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 4304 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4305 267, 268, 269, -1, 271, 272, -1, 274, 366, 124, 4306 125, 369, 370, 37, 38, -1, -1, 41, 42, 43, 4307 44, 45, -1, 47, -1, -1, -1, 294, 295, 296, 4308 297, -1, -1, -1, 58, 59, 60, -1, 62, 63, 4309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4311 -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, 4312 94, -1, -1, -1, -1, 281, 282, 283, -1, -1, 4313 -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 4314 296, 297, 298, -1, -1, -1, -1, -1, -1, 366, 4315 124, 125, 369, 370, -1, -1, -1, -1, -1, -1, 4316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4317 -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 4318 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 4319 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, 4320 -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 4321 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, 4322 -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 4323 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, 4324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4326 -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 4327 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, 4328 -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, 4329 -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 4330 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, 4331 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 4332 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 4333 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 4334 -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 4335 -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 4336 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, 4337 -1, -1, 346, -1, -1, -1, 37, 38, 352, -1, 4338 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 4339 364, -1, 366, -1, -1, 369, 370, 58, 59, 60, 4340 -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, 4341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4342 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4343 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 4344 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4345 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4346 -1, -1, -1, 124, 125, -1, -1, 37, 38, -1, 4347 -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, 4348 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 4349 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, 4350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4352 -1, 91, -1, 0, 94, -1, -1, -1, -1, -1, 4353 -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 4354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4355 -1, -1, -1, 123, 124, 125, -1, -1, -1, -1, 4356 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 4357 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4358 -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, 4359 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4360 -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 4361 271, 272, -1, 274, 91, -1, -1, 94, -1, -1, 4362 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 4363 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, 4364 -1, -1, -1, -1, -1, -1, 123, 124, 125, -1, 4365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4366 -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 4367 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 4368 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, 4369 -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 4370 -1, 271, 272, 364, 274, 366, -1, -1, 369, 370, 4371 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4372 -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 4373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4375 -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 4376 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 4377 -1, 341, 342, 343, -1, -1, -1, -1, -1, -1, 4378 -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, 4379 267, 268, 269, -1, 271, 272, 366, 274, -1, 369, 4380 370, -1, -1, 280, -1, -1, -1, -1, -1, -1, 4381 -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 4382 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 4383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 4385 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 4386 337, 338, 0, -1, 341, 342, 343, -1, -1, -1, 4387 -1, -1, 10, -1, -1, -1, -1, -1, -1, 356, 4388 -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, 4389 -1, -1, 369, 370, -1, -1, -1, -1, -1, 37, 4390 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, 4391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4392 -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, 4393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4395 -1, -1, 0, 91, -1, -1, 94, -1, -1, -1, 4396 -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 4397 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4398 -1, -1, -1, -1, -1, -1, 124, 125, -1, 37, 4399 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, 4400 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4401 -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, 4402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4404 -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, 4405 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 4406 -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 4407 -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, 4408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4409 -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 4410 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 4411 -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, 4412 -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 4413 268, 269, -1, 271, 272, -1, 274, -1, -1, -1, 4414 -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 4415 94, -1, -1, 291, 292, -1, 294, 295, 296, 297, 4416 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4418 124, 125, -1, -1, -1, -1, -1, -1, 326, 327, 4419 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 4420 338, -1, -1, 341, 342, 343, -1, 345, -1, -1, 4421 -1, -1, -1, -1, -1, -1, -1, -1, 356, 267, 4422 268, 269, -1, 271, 272, -1, 274, -1, 366, -1, 4423 -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, 4424 -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 4425 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4427 -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 4428 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 4429 338, -1, -1, 341, 342, 343, -1, -1, -1, -1, 4430 -1, -1, -1, -1, -1, -1, -1, -1, 356, -1, 4431 -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, 4432 -1, 369, 370, 267, 268, 269, -1, 271, 272, -1, 4433 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4434 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 4435 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 4436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4437 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4438 10, -1, 326, 327, 328, 329, 330, 331, 332, 333, 4439 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 4440 -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 4441 -1, 41, 356, 43, 44, 45, -1, -1, -1, -1, 4442 -1, -1, 366, -1, -1, 369, 370, -1, 58, 59, 4443 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, 4444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4445 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4446 -1, 0, -1, 93, 94, -1, -1, -1, -1, -1, 4447 -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 4448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4449 -1, -1, -1, -1, 124, 125, -1, -1, -1, 38, 4450 -1, -1, 41, -1, 43, 44, 45, -1, -1, -1, 4451 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4452 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, 4453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4454 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4455 -1, -1, 0, -1, 93, 94, -1, -1, -1, -1, 4456 -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 4457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4458 -1, -1, -1, -1, -1, 124, 125, -1, -1, 37, 4459 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, 4460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4461 -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, 4462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4463 -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 4464 270, 271, 272, 91, 274, -1, 94, -1, -1, -1, 4465 -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 4466 -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 4467 -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, 4468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4469 -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 4470 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 4471 -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, 4472 -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 4473 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 4474 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, 4475 -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, 4476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4477 -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 4478 -1, -1, -1, -1, 10, -1, -1, -1, 327, 328, 4479 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 4480 -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, 4481 -1, -1, 38, 352, -1, 41, -1, -1, 44, 267, 4482 268, 269, -1, 271, 272, 364, 274, 366, -1, -1, 4483 369, 370, 58, 59, 60, -1, 62, 63, -1, -1, 4484 -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 4485 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4486 -1, -1, -1, -1, -1, 0, -1, 93, 94, -1, 4487 -1, -1, -1, -1, -1, 10, -1, -1, 326, 327, 4488 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 4489 338, -1, -1, 341, 342, 343, -1, -1, 124, 125, 4490 -1, -1, -1, 38, -1, -1, 41, -1, 356, 44, 4491 -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, 4492 -1, 369, 370, 58, 59, 60, -1, 62, 63, -1, 4493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4495 -1, -1, -1, -1, -1, -1, 0, -1, 93, 94, 4496 -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 4497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4498 -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 4499 125, -1, -1, -1, 38, -1, -1, 41, -1, -1, 4500 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4501 -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, 4502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4504 -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, 4505 94, -1, -1, -1, -1, 281, 282, 283, -1, -1, 4506 -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 4507 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 4508 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, 4509 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4510 -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 4511 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 4512 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, 4513 -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 4514 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, 4515 -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 4516 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, 4517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4519 -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 4520 335, 336, 337, 338, -1, 0, 341, 342, -1, -1, 4521 -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, 4522 -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 4523 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, 4524 -1, -1, -1, -1, -1, -1, 41, 291, 292, 44, 4525 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 4526 -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, 4527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4528 -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 4529 334, 335, 336, 337, 338, -1, 0, -1, 93, 94, 4530 -1, -1, 346, -1, -1, -1, 10, -1, 352, 37, 4531 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, 4532 364, -1, 366, -1, -1, 369, 370, -1, -1, 124, 4533 125, -1, 60, -1, 62, 63, -1, 41, -1, -1, 4534 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4535 -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, 4536 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 4537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4538 -1, -1, -1, -1, -1, -1, -1, 0, -1, 93, 4539 94, -1, -1, -1, -1, -1, 124, 10, -1, -1, 4540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4542 124, 125, -1, -1, -1, -1, -1, -1, 41, -1, 4543 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, 4544 -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 4545 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4547 -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 4548 93, -1, -1, -1, -1, -1, 281, 282, 283, -1, 4549 -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 4550 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, 4551 -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, 4552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4553 -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 4554 335, 336, 337, 338, -1, -1, -1, -1, -1, -1, 4555 -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, 4556 -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 4557 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, 4558 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 4559 294, 295, 296, 297, 298, -1, -1, -1, 326, 327, 4560 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 4561 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, 4562 -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 4563 334, 335, 336, 337, 338, -1, 0, -1, -1, -1, 4564 -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, 4565 -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 4566 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 4567 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 4568 44, 294, 295, 296, 297, 298, -1, -1, -1, -1, 4569 -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, 4570 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4571 -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 4572 333, 334, 335, 336, 337, 338, -1, 0, -1, 93, 4573 -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, 4574 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 4575 47, 364, -1, 366, -1, -1, 369, 370, -1, -1, 4576 -1, 125, -1, 60, -1, 62, 63, -1, 41, -1, 4577 -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, 4578 -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 4579 63, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4581 -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 4582 93, -1, -1, -1, -1, -1, -1, 124, 10, -1, 4583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4585 -1, -1, 125, -1, -1, -1, -1, -1, -1, 41, 4586 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, 4587 -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 4588 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, 4589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4590 -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 4591 274, 93, -1, -1, -1, -1, -1, 281, 282, 283, 4592 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 4593 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 4594 -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 4595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4596 -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 4597 334, 335, 336, 337, 338, -1, -1, -1, -1, -1, 4598 -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, 4599 -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 4600 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 4601 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, 4602 -1, 294, 295, 296, 297, 298, -1, -1, -1, 326, 4603 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 4604 337, 338, -1, -1, 341, 342, -1, -1, -1, -1, 4605 -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 4606 333, 334, 335, 336, 337, 338, -1, 0, -1, -1, 4607 -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, 4608 -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 4609 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 4610 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 4611 292, 44, 294, 295, 296, 297, 298, -1, -1, -1, 4612 -1, -1, -1, -1, -1, 58, 59, -1, -1, -1, 4613 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4614 -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 4615 332, 333, 334, 335, 336, 337, 338, -1, 0, -1, 4616 93, -1, -1, -1, 346, -1, -1, -1, 10, -1, 4617 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4618 -1, -1, 364, -1, 366, 37, 38, 369, 370, -1, 4619 42, 43, 125, 45, -1, 47, -1, -1, -1, 41, 4620 -1, -1, 44, -1, -1, -1, -1, -1, 60, -1, 4621 62, 63, -1, -1, -1, -1, 58, 59, -1, -1, 4622 -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, 4623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4624 -1, -1, 94, -1, -1, -1, -1, -1, -1, 0, 4625 -1, 93, -1, -1, -1, -1, -1, -1, -1, 10, 4626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4627 -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, 4628 -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 4629 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 4630 -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 4631 -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, 4632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4633 -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 4634 -1, 274, 93, -1, -1, -1, -1, -1, 281, 282, 4635 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, 4636 -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, 4637 -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, 4638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4640 333, 334, -1, -1, 337, 338, -1, -1, -1, -1, 4641 -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, 4642 -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 4643 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 4644 282, 283, -1, -1, -1, -1, 298, -1, -1, 291, 4645 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 4646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4647 -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 4648 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 4649 342, 333, 334, -1, -1, 337, 338, -1, 0, -1, 4650 -1, -1, -1, -1, 346, -1, -1, -1, 10, -1, 4651 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 4652 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 4653 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 4654 291, 292, 44, 294, 295, 296, 297, 298, -1, -1, 4655 -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, 4656 -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, 4657 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4658 -1, -1, 333, 334, -1, -1, 337, 338, -1, 0, 4659 -1, 93, -1, -1, -1, 346, -1, -1, -1, 10, 4660 -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, 4661 -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, 4662 -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 4663 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 4664 -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 4665 -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, 4666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4668 0, -1, 93, -1, -1, -1, -1, -1, -1, -1, 4669 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4671 -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, 4672 -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 4673 -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 4674 -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, 4675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4676 -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 4677 272, -1, 274, 93, -1, -1, -1, -1, -1, 281, 4678 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 4679 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 4680 -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, 4681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4683 -1, 333, 334, -1, -1, 337, 338, -1, -1, -1, 4684 -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, 4685 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 4686 271, 272, 364, 274, 366, -1, 0, 369, 370, -1, 4687 281, 282, 283, -1, -1, -1, 10, -1, -1, -1, 4688 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, 4689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4690 -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, 4691 -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, 4692 -1, -1, 333, 334, -1, 59, 337, 338, -1, 0, 4693 -1, -1, -1, -1, -1, 346, -1, -1, -1, 10, 4694 -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 4695 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, 4696 -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 4697 41, 291, 292, 44, 294, 295, 296, 297, 298, -1, 4698 -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 4699 -1, 125, 63, -1, -1, -1, -1, -1, -1, -1, 4700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4701 -1, -1, -1, 333, 334, -1, -1, 337, 338, -1, 4702 0, -1, 93, -1, -1, -1, 346, -1, -1, -1, 4703 10, -1, 352, -1, -1, -1, -1, -1, -1, -1, 4704 -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 4705 370, -1, -1, 0, 125, -1, -1, -1, -1, -1, 4706 -1, 41, -1, 10, 44, -1, -1, -1, -1, -1, 4707 -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 4708 -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, 4709 -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, 4710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4711 -1, 58, 59, 93, -1, -1, 63, -1, -1, -1, 4712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4713 -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 4714 274, -1, -1, -1, -1, 125, 93, 281, -1, -1, 4715 -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 4716 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 4717 -1, -1, 0, -1, -1, -1, -1, -1, 125, -1, 4718 -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 4719 -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 4720 271, 272, -1, 274, -1, -1, -1, -1, -1, 343, 4721 281, 282, 283, 41, -1, -1, 44, -1, -1, -1, 4722 291, 292, 356, 294, 295, 296, 297, 298, -1, -1, 4723 58, 59, 366, -1, -1, 369, 370, -1, -1, -1, 4724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4726 -1, -1, 333, 334, -1, 93, 337, 338, -1, -1, 4727 -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, 4728 -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 4729 270, 271, 272, 364, 274, 366, -1, 125, 369, 370, 4730 -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 4731 -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 4732 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, 4733 -1, -1, -1, 0, 281, 282, 283, -1, -1, -1, 4734 -1, -1, -1, 10, 291, 292, -1, 294, 295, 296, 4735 297, 298, -1, -1, 334, -1, -1, 337, 338, -1, 4736 -1, -1, -1, -1, -1, -1, 346, -1, 0, -1, 4737 -1, -1, 352, -1, 41, -1, -1, 44, 10, -1, 4738 -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 4739 370, 58, 59, -1, -1, -1, -1, -1, -1, 346, 4740 -1, -1, -1, -1, -1, 352, -1, -1, -1, 41, 4741 -1, -1, 44, -1, -1, -1, -1, 364, -1, 366, 4742 -1, -1, 369, 370, -1, -1, 93, 59, -1, -1, 4743 -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 4744 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, 4745 -1, -1, -1, 281, 282, 283, -1, -1, 125, -1, 4746 -1, 93, -1, 291, 292, -1, 294, 295, 296, 297, 4747 298, -1, 0, -1, -1, -1, -1, -1, -1, -1, 4748 -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 4749 -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 4750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4751 -1, -1, -1, 41, -1, -1, 44, -1, 346, 0, 4752 -1, -1, -1, -1, 352, -1, -1, -1, -1, 10, 4753 -1, 59, -1, -1, -1, -1, 364, -1, 366, -1, 4754 -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, 4755 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4756 41, -1, -1, 44, -1, 93, -1, -1, -1, -1, 4757 -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, 4758 -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 4759 -1, -1, 10, -1, -1, -1, -1, 125, -1, -1, 4760 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, 4761 -1, -1, 93, -1, 281, 282, 283, -1, -1, -1, 4762 -1, -1, -1, 41, 291, 292, 44, 294, 295, 296, 4763 297, -1, -1, 0, -1, 267, 268, 269, 270, 271, 4764 272, 59, 274, 10, 125, -1, -1, -1, -1, 281, 4765 282, -1, -1, -1, -1, -1, -1, -1, -1, 291, 4766 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 4767 -1, -1, 0, -1, 41, 93, -1, 44, -1, 346, 4768 -1, -1, 10, -1, -1, 352, -1, -1, -1, -1, 4769 -1, -1, 59, -1, -1, -1, -1, 364, -1, 366, 4770 -1, -1, 369, 370, -1, -1, -1, 125, -1, -1, 4771 -1, -1, -1, 41, -1, -1, 44, -1, -1, 0, 4772 352, -1, -1, -1, -1, -1, 93, -1, -1, 10, 4773 -1, 59, -1, -1, 366, -1, -1, 369, 370, 267, 4774 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, 4775 -1, -1, -1, 281, 282, -1, -1, -1, 125, -1, 4776 41, -1, 0, 291, 292, 93, 294, 295, 296, 297, 4777 298, -1, 10, -1, -1, -1, -1, -1, 59, -1, 4778 -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 4779 271, 272, -1, 274, -1, -1, -1, 125, -1, -1, 4780 281, 282, -1, 41, -1, -1, 44, -1, -1, -1, 4781 291, 292, 93, 294, 295, 296, 297, 298, -1, -1, 4782 -1, 59, -1, -1, 352, 0, -1, -1, -1, -1, 4783 -1, -1, -1, -1, -1, 10, -1, -1, 366, -1, 4784 -1, 369, 370, -1, 125, -1, -1, -1, -1, 267, 4785 268, 269, 270, 271, 272, 93, 274, -1, -1, -1, 4786 -1, -1, -1, 281, 282, -1, 41, -1, -1, -1, 4787 -1, 352, -1, 291, 292, -1, 294, 295, 296, 297, 4788 298, -1, -1, -1, 59, 366, -1, 125, 369, 370, 4789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4790 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, 4791 -1, -1, -1, -1, 281, 282, -1, -1, 93, -1, 4792 -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 4793 297, 298, -1, -1, 352, -1, -1, -1, -1, 267, 4794 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, 4795 125, 369, 370, 281, 282, -1, -1, -1, -1, -1, 4796 -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 4797 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4798 -1, -1, -1, -1, -1, 352, 267, 268, 269, 270, 4799 271, 272, -1, 274, -1, -1, -1, -1, -1, 366, 4800 281, 282, 369, 370, -1, -1, -1, -1, 0, -1, 4801 291, 292, -1, 294, 295, 296, 297, 298, 10, -1, 4802 -1, -1, -1, -1, 352, -1, -1, -1, -1, 267, 4803 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, 4804 -1, 369, 370, 281, 282, 0, -1, -1, -1, 41, 4805 -1, -1, -1, 291, 292, 10, 294, 295, 296, 297, 4806 298, -1, -1, -1, -1, -1, -1, 59, -1, -1, 4807 -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, 4808 -1, -1, -1, -1, -1, 366, 41, -1, 369, 370, 4809 -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 4810 -1, 93, -1, -1, 59, -1, 281, 282, -1, -1, 4811 -1, -1, -1, -1, 352, -1, 291, 292, -1, 294, 4812 295, 296, 297, 298, -1, 0, -1, -1, 366, -1, 4813 -1, 369, 370, 125, -1, 10, -1, -1, 93, -1, 4814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4816 -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, 4817 125, -1, -1, -1, -1, -1, -1, 352, 10, -1, 4818 -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 4819 -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, 4820 -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, 4821 -1, -1, -1, -1, 46, -1, -1, -1, 93, -1, 4822 -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 4823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4824 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4825 125, -1, -1, -1, -1, -1, -1, -1, -1, 91, 4826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4827 -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 4828 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 4829 282, 123, -1, -1, 126, -1, -1, -1, -1, 291, 4830 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 4831 -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 4832 -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, 4833 -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 4834 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, 4835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4837 -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, 4838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4839 -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 4840 -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, 4841 -1, 366, -1, -1, 369, 370, 291, 292, -1, 294, 4842 295, 296, 297, 298, 256, 257, 258, 259, 260, 261, 4843 262, 263, 264, 265, 266, 267, 268, 269, -1, -1, 4844 272, 273, -1, 275, 276, 277, 278, -1, 280, -1, 4845 -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, 4846 -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, 4847 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 4848 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 4849 322, 366, 324, 325, 369, 370, -1, -1, -1, -1, 4850 -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 4851 -1, 343, 344, -1, -1, 347, 348, -1, 350, 351, 4852 -1, 353, -1, 355, 356, 357, 358, 359, 360, 361, 4853 362, -1, 33, 365, 366, -1, -1, 369, 370, 40, 4854 372, -1, -1, -1, -1, 46, -1, -1, -1, -1, 4855 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 4856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4859 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4862 -1, -1, 123, -1, -1, 126, 10, -1, -1, -1, 4863 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4864 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 4865 -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, 4866 -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, 4867 -1, -1, -1, -1, -1, 59, 60, -1, -1, -1, 4868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4870 -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 4871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4873 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 4874 -1, -1, 126, -1, -1, -1, -1, 10, -1, -1, 4875 -1, -1, -1, -1, -1, 256, 257, 258, 259, 260, 4876 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 4877 33, 272, 273, -1, 275, 276, 277, 278, -1, 280, 4878 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 4879 -1, -1, 293, -1, -1, -1, 59, -1, 299, -1, 4880 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 4881 -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 4882 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 4883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4884 -1, -1, 343, 344, -1, -1, 347, 348, -1, 350, 4885 351, -1, 353, -1, 355, 356, 357, 358, 359, 360, 4886 361, 362, -1, 126, 365, 366, -1, -1, 369, 370, 4887 -1, 372, 256, 257, 258, 259, 260, 261, 262, 263, 4888 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4889 -1, 275, 276, 277, 278, -1, 280, -1, -1, -1, 4890 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, 4891 -1, -1, 10, -1, -1, 299, -1, 301, 302, 303, 4892 -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 4893 314, -1, -1, 317, -1, 33, -1, 321, 322, -1, 4894 324, 325, 40, -1, -1, -1, -1, -1, 46, -1, 4895 -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 4896 344, 59, 60, 347, 348, -1, 350, 351, -1, 353, 4897 -1, 355, 356, 357, 358, 359, 360, 361, 362, -1, 4898 -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 4899 -1, -1, -1, 91, 257, 258, 259, 260, 261, 262, 4900 263, 264, 265, 266, -1, -1, -1, -1, -1, -1, 4901 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, 4902 -1, 284, 285, 286, 287, 288, 289, 290, 126, 10, 4903 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 4904 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 4905 313, 314, 33, -1, 317, -1, -1, -1, 321, 322, 4906 -1, 324, 325, -1, -1, 46, -1, -1, -1, -1, 4907 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 4908 -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 4909 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 4910 -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, 4911 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4914 -1, -1, -1, -1, -1, 126, -1, -1, -1, 10, 4915 -1, -1, -1, -1, -1, -1, -1, -1, 256, 257, 4916 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 4917 268, 269, 33, -1, 272, 273, -1, 275, 276, 277, 4918 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 4919 288, 289, 290, -1, -1, 293, -1, -1, 59, -1, 4920 -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 4921 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 4922 -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, 4923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4924 -1, -1, -1, -1, -1, 343, 344, -1, -1, 347, 4925 348, -1, 350, 351, -1, 353, -1, 355, 356, 357, 4926 358, 359, 360, 361, 362, 126, 10, 365, 366, -1, 4927 -1, 369, 370, -1, 372, 256, 257, 258, 259, 260, 4928 261, 262, 263, 264, 265, 266, 267, 268, 269, 33, 4929 -1, 272, 273, -1, 275, 276, 277, 278, -1, -1, 4930 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 4931 -1, -1, 293, -1, -1, 59, -1, -1, 299, -1, 4932 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 4933 -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 4934 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 4935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4936 -1, -1, 343, 344, -1, -1, 347, 348, -1, 350, 4937 351, -1, 353, -1, 355, 356, 357, 358, 359, 360, 4938 361, 362, 126, -1, 365, 366, 10, -1, 369, 370, 4939 -1, 372, -1, -1, -1, 256, 257, 258, 259, 260, 4940 261, 262, 263, 264, 265, 266, 267, 268, 269, 33, 4941 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, 4942 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 4943 -1, -1, 293, -1, -1, 59, -1, -1, 299, -1, 4944 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 4945 -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 4946 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 4947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4948 -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 4949 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 4950 361, 362, 126, -1, 365, 366, -1, -1, 369, 370, 4951 -1, 372, 256, 257, 258, 259, 260, 261, 262, 263, 4952 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4953 -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 4954 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, 4955 -1, -1, 10, -1, -1, 299, -1, 301, 302, 303, 4956 -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 4957 314, -1, -1, 317, -1, 33, -1, 321, 322, -1, 4958 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, 4959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4960 344, 59, -1, 347, 348, -1, 350, 351, -1, 353, 4961 -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, 4962 -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 4963 -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 4964 264, 265, 266, -1, -1, 269, -1, -1, -1, 273, 4965 -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 4966 284, 285, 286, 287, 288, 289, 290, 125, 126, 293, 4967 -1, -1, 10, -1, -1, 299, -1, 301, 302, 303, 4968 -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 4969 314, -1, -1, 317, -1, 33, -1, 321, 322, -1, 4970 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, 4971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4972 344, 59, -1, 347, 348, -1, 350, 351, -1, 353, 4973 -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, 4974 -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 4975 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4976 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4977 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4978 -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, 4979 10, -1, -1, -1, -1, -1, -1, -1, 256, 257, 4980 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, 4981 -1, -1, -1, 33, -1, 273, -1, 275, 276, 277, 4982 278, 41, -1, -1, -1, -1, 284, 285, 286, 287, 4983 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, 4984 -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 4985 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 4986 -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, 4987 -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, 4988 -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 4989 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 4990 358, 359, 360, 361, 362, -1, 126, 365, 366, -1, 4991 10, 369, 370, -1, 372, -1, -1, -1, -1, 257, 4992 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, 4993 -1, -1, -1, 33, -1, 273, -1, 275, 276, 277, 4994 278, 41, -1, -1, -1, -1, 284, 285, 286, 287, 4995 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, 4996 -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 4997 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 4998 -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, 4999 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5000 -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 5001 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 5002 358, 359, 360, 361, 362, -1, 126, 365, 366, -1, 5003 -1, 369, 370, -1, 372, -1, -1, 257, 258, 259, 5004 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 5005 -1, -1, -1, 273, 10, 275, 276, 277, 278, -1, 5006 -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 5007 290, -1, -1, 293, -1, -1, -1, 33, -1, -1, 5008 -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 5009 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 5010 320, 321, 322, 59, 324, 325, -1, -1, -1, -1, 5011 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5012 -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 5013 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 5014 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, 5015 -1, -1, 372, -1, -1, -1, -1, 257, 258, 259, 5016 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, 5017 126, 10, -1, 273, -1, 275, 276, 277, 278, -1, 5018 -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 5019 290, -1, -1, 293, 33, -1, -1, -1, -1, 299, 5020 -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 5021 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, 5022 -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, 5023 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5024 -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 5025 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 5026 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, 5027 -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, 5028 -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, 5029 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5030 -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 5031 -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 5032 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 5033 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 5034 -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 5035 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, 5036 -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, 5037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5038 -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, 5039 -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, 5040 -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, 5041 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 5042 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, 5043 -1, -1, 33, -1, 273, -1, 275, 276, 277, 278, 5044 -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 5045 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 5046 -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 5047 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, 5048 -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, 5049 -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, 5050 -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, 5051 -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 5052 359, 360, 361, 362, 125, 126, 365, -1, -1, -1, 5053 -1, -1, -1, 372, -1, -1, -1, 256, 257, 258, 5054 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, 5055 -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, 5056 -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 5057 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 5058 299, 300, 301, 302, 303, -1, 305, 306, 307, 308, 5059 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, 5060 -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, 5061 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5062 -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, 5063 -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 5064 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, 5065 -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 5066 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, 5067 -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, 5068 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 5069 -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, 5070 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 5071 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 5072 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 5073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5074 -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 5075 351, -1, 353, 354, 355, -1, 357, 358, 359, 360, 5076 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, 5077 -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 5078 262, 263, 264, 265, 266, -1, -1, -1, 33, -1, 5079 -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, 5080 -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, 5081 -1, 293, -1, -1, -1, -1, -1, 299, 300, 301, 5082 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 5083 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 5084 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, 5085 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5086 -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, 5087 -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 5088 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 5089 372, -1, 256, 257, 258, 259, 260, 261, 262, 263, 5090 264, 265, 266, -1, -1, -1, 33, -1, -1, 273, 5091 -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 5092 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, 5093 -1, -1, -1, -1, -1, 299, -1, 301, 302, 303, 5094 -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 5095 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 5096 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, 5097 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5098 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 5099 -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, 5100 -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, 5101 -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 5102 265, 266, -1, -1, -1, 33, -1, -1, 273, -1, 5103 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 5104 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 5105 -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 5106 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 5107 -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 5108 325, -1, -1, -1, -1, 93, -1, -1, -1, -1, 5109 -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 5110 -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 5111 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 5112 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 5113 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 5114 -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 5115 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 5116 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, 5117 -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 5118 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 5119 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, 5120 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5121 -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 5122 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 5123 357, 358, 359, 360, 361, 362, 126, -1, 365, 366, 5124 -1, -1, 369, 370, -1, 372, -1, -1, -1, 257, 5125 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 5126 -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 5127 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 5128 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, 5129 -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 5130 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 5131 -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, 5132 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5133 -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 5134 348, -1, 350, 351, -1, 353, 354, 355, -1, 357, 5135 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, 5136 -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 5137 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 5138 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, 5139 -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 5140 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, 5141 -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 5142 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 5143 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, 5144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5145 -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 5146 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 5147 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, 5148 -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 5149 261, 262, 263, 264, 265, 266, -1, -1, -1, 33, 5150 -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, 5151 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 5152 -1, -1, 293, -1, -1, -1, -1, -1, 299, -1, 5153 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 5154 -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 5155 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 5156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5157 -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 5158 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 5159 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, 5160 -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 5161 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 5162 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, 5163 -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 5164 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 5165 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 5166 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, 5167 -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, 5168 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5169 -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 5170 353, 354, 355, -1, 357, 358, 359, 360, 361, 362, 5171 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, 5172 -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 5173 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, 5174 -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 5175 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, 5176 -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, 5177 -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 5178 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 5179 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, 5180 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5181 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 5182 354, 355, -1, 357, 358, 359, 360, 361, 362, 126, 5183 -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, 5184 -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 5185 -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 5186 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 5187 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 5188 -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 5189 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, 5190 -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 5191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5192 -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, 5193 -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, 5194 -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, 5195 -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 5196 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 5197 -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 5198 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 5199 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, 5200 -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 5201 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 5202 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, 5203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5204 -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 5205 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 5206 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, 5207 -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 5208 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, 5209 -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, 5210 -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 5211 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 5212 -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 5213 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 5214 -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, 5215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5216 -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, 5217 -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 5218 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, 5219 -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 5220 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 5221 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, 5222 -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 5223 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, 5224 -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 5225 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, 5226 -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, 5227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5228 -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 5229 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 5230 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, 5231 -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 5232 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, 5233 -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, 5234 -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, 5235 -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 5236 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 5237 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 5238 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, 5239 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5240 -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, 5241 -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 5242 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 5243 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 5244 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 5245 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, 5246 -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 5247 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 5248 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 5249 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, 5250 -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, 5251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5252 -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 5253 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 5254 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, 5255 -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 5256 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 5257 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 5258 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 5259 -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 5260 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 5261 -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 5262 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5263 -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 5264 -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 5265 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 5266 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 5267 -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 5268 -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 5269 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 5270 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 5271 -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 5272 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, 5273 -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, 5274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5275 -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, 5276 -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, 5277 -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, 5278 -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 5279 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 5280 -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 5281 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 5282 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, 5283 -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 5284 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 5285 -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, 5286 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5287 -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 5288 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 5289 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, 5290 -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 5291 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, 5292 -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, 5293 -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 5294 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 5295 -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 5296 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, 5297 -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, 5298 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5299 -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, 5300 -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 5301 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, 5302 -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 5303 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, 5304 -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, 5305 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 5306 -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, 5307 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 5308 -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 5309 321, 322, -1, 324, 325, -1, 33, -1, -1, -1, 5310 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 5311 47, -1, -1, 344, -1, -1, 347, 348, -1, 350, 5312 351, -1, -1, 60, 355, 62, 357, 358, 359, 360, 5313 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, 5314 -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 5315 262, 263, 264, 265, -1, -1, -1, 94, -1, 96, 5316 -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, 5317 -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, 5318 -1, 293, -1, -1, -1, -1, -1, 124, -1, 126, 5319 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 5320 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 5321 322, -1, 324, 325, -1, 33, -1, -1, -1, 37, 5322 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, 5323 -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, 5324 -1, -1, 60, 355, 62, 357, 358, 359, 360, 361, 5325 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 5326 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5327 -1, -1, -1, -1, -1, -1, 94, -1, 96, -1, 5328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5330 -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, 5331 -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, 5332 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 5333 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 5334 277, 278, 279, 280, -1, -1, -1, 284, 285, 286, 5335 287, 288, 289, 290, 291, 292, 293, -1, -1, -1, 5336 -1, -1, 299, 300, 301, 302, 303, 304, 305, 306, 5337 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, 5338 317, -1, -1, -1, -1, -1, -1, 324, 325, 326, 5339 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, 5340 -1, -1, 339, 340, 341, 342, -1, -1, -1, -1, 5341 -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, 5342 -1, -1, -1, -1, 361, -1, -1, -1, -1, 44, 5343 -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 5344 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 5345 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 5346 278, 279, 280, -1, -1, -1, 284, 285, 286, 287, 5347 288, 289, 290, 291, 292, 293, -1, -1, -1, -1, 5348 -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, 5349 308, 309, 310, -1, -1, -1, -1, -1, -1, 317, 5350 -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 5351 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, 5352 -1, 339, 340, 341, 342, -1, 257, 258, 259, 260, 5353 261, 262, 263, 264, 265, 353, -1, -1, -1, -1, 5354 -1, -1, 273, 361, 275, 276, 277, 278, -1, -1, 5355 -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 5356 -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, 5357 -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 5358 -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 5359 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, 5360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5361 -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 5362 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 5363 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, 5364 -1, 372, 257, 258, 259, 260, 261, 262, 263, 264, 5365 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 5366 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 5367 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 5368 -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 5369 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 5370 -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, 5371 33, -1, -1, -1, 37, 38, -1, -1, -1, 42, 5372 43, -1, 45, -1, 47, -1, -1, -1, -1, 344, 5373 -1, -1, 347, 348, -1, 350, 351, 60, -1, 62, 5374 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 5375 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 5376 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5377 -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, 5378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5379 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5380 -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, 5381 -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 5382 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, 5383 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 5384 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5387 -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, 5388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5389 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5390 -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, 5391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5393 -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 5394 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 5395 273, 274, 275, 276, 277, 278, 279, 280, -1, -1, 5396 -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 5397 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 5398 303, 304, 305, 306, -1, -1, 309, -1, -1, -1, 5399 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5400 -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 5401 -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 5402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5403 353, -1, -1, -1, 357, 257, 258, 259, 260, 261, 5404 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 5405 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 5406 -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 5407 292, 293, -1, -1, -1, -1, -1, 299, 300, 301, 5408 302, 303, 304, 305, 306, 307, 308, 309, 310, -1, 5409 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5410 -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 5411 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 5412 342, -1, -1, 33, -1, -1, -1, 37, 38, -1, 5413 -1, 353, 42, 43, -1, 45, -1, 47, -1, -1, 5414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5415 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 5416 -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 5417 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, 5418 -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 5419 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, 5420 -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, 5421 -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, 5422 -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, 5423 -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, 5424 -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, 5425 -1, 47, 124, -1, 126, -1, -1, -1, -1, -1, 5426 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, 5427 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5429 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 5430 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5431 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 5432 43, -1, 45, -1, 47, -1, -1, -1, 124, -1, 5433 126, -1, -1, -1, -1, -1, -1, 60, -1, 62, 5434 -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 5435 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 5436 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 5437 280, 94, -1, 96, 284, 285, 286, 287, 288, 289, 5438 290, 291, 292, 293, -1, -1, -1, -1, -1, 299, 5439 300, 301, 302, 303, 304, 305, 306, -1, -1, 309, 5440 -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, 5441 -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 5442 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 5443 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, 5444 -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, 5445 -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 5446 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 5447 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, 5448 -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 5449 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 5450 -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 5451 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, 5452 -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 5453 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 5454 336, -1, -1, 339, 340, 341, 342, -1, -1, -1, 5455 -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, 5456 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 5457 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, 5458 -1, -1, 305, 306, -1, -1, 309, 60, -1, 62, 5459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5460 -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 5461 -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 5462 -1, 94, -1, 96, -1, -1, -1, 33, -1, -1, 5463 353, 37, 38, -1, 40, -1, 42, 43, -1, 45, 5464 -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 5465 -1, 124, -1, 126, 60, -1, 62, -1, -1, -1, 5466 -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 5467 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, 5468 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 5469 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, 5470 -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 5471 40, -1, 42, 43, -1, 45, -1, 47, 124, -1, 5472 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, 5473 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 5474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5475 -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, 5476 -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, 5477 -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 5478 -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, 5479 -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, 5480 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 5481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5483 -1, -1, 305, 306, -1, -1, 309, -1, -1, -1, 5484 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, 5485 -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 5486 -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 5487 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 5488 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5489 -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 5490 306, -1, -1, 309, -1, -1, -1, -1, -1, -1, 5491 -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 5492 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 5493 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, 5494 -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, 5495 -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 5496 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, 5497 -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, 5498 -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, 5499 -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 5500 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 5501 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, 5502 -1, -1, -1, 353, -1, -1, -1, -1, -1, 33, 5503 -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, 5504 -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, 5505 -1, 305, 306, -1, -1, 309, 60, -1, 62, -1, 5506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5507 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 5508 -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, 5509 94, -1, 96, -1, -1, -1, 33, -1, -1, 353, 5510 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 5511 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5512 124, -1, 126, 60, -1, 62, -1, -1, -1, -1, 5513 -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, 5514 -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, 5515 -1, -1, -1, -1, -1, -1, -1, 94, -1, 96, 5516 -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, 5517 -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 5518 -1, 42, 43, -1, 45, -1, 47, 124, -1, 126, 5519 -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, 5520 -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 5521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5522 -1, -1, -1, -1, -1, 124, -1, 126, -1, -1, 5523 -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, 5524 -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, 5525 -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 5526 45, -1, 47, 124, -1, 126, -1, -1, -1, -1, 5527 -1, -1, -1, -1, -1, 60, -1, 62, -1, -1, 5528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5530 -1, 305, 306, -1, -1, 309, -1, -1, -1, 94, 5531 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 5532 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 5533 -1, 335, 336, -1, -1, 339, 340, 341, 342, 124, 5534 -1, 126, -1, -1, -1, -1, -1, -1, -1, 353, 5535 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5536 -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 5537 -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, 5538 -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 5539 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, 5540 -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 5541 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, 5542 -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 5543 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 5544 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, 5545 -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, 5546 -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 5547 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 5548 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, 5549 -1, -1, 353, -1, -1, -1, -1, -1, 33, -1, 5550 -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 5551 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, 5552 305, 306, -1, -1, 309, 60, -1, 62, -1, -1, 5553 -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 5554 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 5555 335, 336, -1, -1, 339, 340, 341, 342, -1, 94, 5556 -1, 96, -1, -1, -1, 33, -1, -1, 353, 37, 5557 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, 5558 -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 5559 -1, 126, 60, -1, 62, -1, -1, -1, -1, -1, 5560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5561 -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 5562 263, 264, 265, -1, -1, -1, 94, -1, 96, -1, 5563 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, 5564 -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 5565 293, -1, -1, -1, -1, -1, 124, -1, 126, 302, 5566 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 5567 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, 5568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5569 -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, 5570 -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 5571 -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, 5572 -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, 5573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5577 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 5578 -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 5579 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 5580 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, 5581 -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, 5582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5583 -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, 5584 -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, 5585 -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 5586 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, 5587 -1, 339, 340, 341, 342, 257, 258, 259, 260, 261, 5588 262, 263, 264, 265, -1, 353, -1, -1, -1, -1, 5589 -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, 5590 -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, 5591 -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 5592 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 5593 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 5594 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5596 -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, 5597 -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 5598 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 5599 372, 257, 258, 259, 260, 261, 262, 263, 264, 265, 5600 -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 5601 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 5602 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 5603 -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 5604 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, 5605 -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, 5606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5607 -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, 5608 -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, 5609 -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, 5610 -1, -1, -1, -1, -1, -1, 372, 257, 258, 259, 5611 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 5612 -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, 5613 -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 5614 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, 5615 -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 5616 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, 5617 -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, 5618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5619 -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 5620 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 5621 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, 5622 -1, -1, 372, 257, 258, 259, 260, 261, 262, 263, 5623 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, 5624 -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 5625 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, 5626 -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, 5627 -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 5628 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 5629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5631 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, 5632 -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, 5633 -1, 365, -1, -1, -1, -1, -1, -1, 372, 257, 5634 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 5635 -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 5636 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 5637 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, 5638 -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 5639 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 5640 -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, 5641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5642 -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 5643 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 5644 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, 5645 -1, -1, -1, -1, 372, 257, 258, 259, 260, 261, 5646 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, 5647 -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, 5648 -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, 5649 -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 5650 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 5651 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 5652 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5654 -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, 5655 -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 5656 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 5657 372, 5658 }; 5657 5659 5658 5660 /// <summary> … … 5661 5663 /// </summary> 5662 5664 protected static readonly string[] yyNames = { 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5665 "end-of-file",null,null,null,null,null,null,null,null,null,"'\\n'", 5666 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5667 null,null,null,null,null,null,null,null,"'!'",null,null,null,"'%'", 5668 "'&'",null,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",null,null, 5669 null,null,null,null,null,null,null,null,"':'","';'","'<'","'='","'>'", 5670 "'?'",null,null,null,null,null,null,null,null,null,null,null,null, 5671 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5672 null,"'['",null,"']'","'^'",null,"'`'",null,null,null,null,null,null, 5673 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5674 null,null,null,null,null,null,"'{'","'|'","'}'","'~'",null,null,null, 5675 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5676 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5677 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5678 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5679 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5680 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5681 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5682 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5683 null,null,null,null,null,null,null,null,null,null,null,null,null,null, 5684 null,"keyword_class","keyword_module","keyword_def","keyword_begin", 5685 "keyword_if","keyword_unless","keyword_while","keyword_until", 5686 "keyword_for","keyword_undef","keyword_rescue","keyword_ensure", 5687 "keyword_end","keyword_then","keyword_elsif","keyword_else", 5688 "keyword_case","keyword_when","keyword_break","keyword_next", 5689 "keyword_redo","keyword_retry","keyword_in","keyword_do", 5690 "keyword_do_cond","keyword_do_block","keyword_do_LAMBDA", 5691 "keyword_return","keyword_yield","keyword_super","keyword_self", 5692 "keyword_nil","keyword_true","keyword_false","keyword_and", 5693 "keyword_or","keyword_not","modifier_if","modifier_unless", 5694 "modifier_while","modifier_until","modifier_rescue","keyword_alias", 5695 "keyword_BEGIN","keyword_END","keyword__LINE__","keyword__FILE__", 5696 "keyword__ENCODING__","tIDENTIFIER","tFID","tGVAR","tIVAR", 5697 "tCONSTANT","tCVAR","tLABEL","tINTEGER","tFLOAT","tCHAR","tXSTRING", 5698 "tREGEXP","tSTRING","tSTRING_PART","tSTRING_MID","tLABEL_END", 5699 "tNTH_REF","tBACK_REF","tREGEXP_END","tUPLUS","tUMINUS","tPOW","tCMP", 5700 "tEQ","tEQQ","tNEQ","tGEQ","tLEQ","tANDOP","tOROP","tMATCH","tNMATCH", 5701 "tDOT2","tDOT3","tAREF","tASET","tLSHFT","tRSHFT","tCOLON2","tCOLON3", 5702 "tOP_ASGN","tASSOC","tLPAREN","tLPAREN_ARG","tRPAREN","tLBRACK", 5703 "tLBRACE","tLBRACE_ARG","tSTAR","tAMPER","tLAMBDA","tANDDOT", 5704 "tSYMBEG","tREGEXP_BEG","tWORDS_BEG","tSYMBOLS_BEG","tSTRING_BEG", 5705 "tXSTRING_BEG","tSTRING_DVAR","tLAMBEG","tHEREDOC_BEG","tHEREDOC_END", 5706 "tLITERAL_DELIM","tHD_LITERAL_DELIM","tHD_STRING_PART", 5707 "tHD_STRING_MID","tLOWEST","tUMINUS_NUM","tLAST_TOKEN", 5708 }; 5707 5709 5708 5710 /// <summary> … … 5710 5712 /// </summary> 5711 5713 protected static readonly string[] yyRule = { 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 5714 "$accept : program", 5715 "$$1 :", 5716 "program : $$1 top_compstmt", 5717 "top_compstmt : top_stmts opt_terms", 5718 "top_stmts : none", 5719 "top_stmts : top_stmt", 5720 "top_stmts : top_stmts terms top_stmt", 5721 "top_stmts : error top_stmt", 5722 "top_stmt : stmt", 5723 "$$2 :", 5724 "top_stmt : keyword_BEGIN $$2 '{' top_compstmt '}'", 5725 "bodystmt : compstmt opt_rescue opt_else opt_ensure", 5726 "compstmt : stmts opt_terms", 5727 "stmts : none", 5728 "stmts : stmt", 5729 "stmts : stmts terms stmt", 5730 "stmts : error stmt", 5731 "$$3 :", 5732 "stmt : keyword_alias fsym $$3 fsym", 5733 "stmt : keyword_undef undef_list", 5734 "stmt : stmt modifier_if expr_value", 5735 "stmt : stmt modifier_unless expr_value", 5736 "stmt : stmt modifier_while expr_value", 5737 "stmt : stmt modifier_until expr_value", 5738 "stmt : stmt modifier_rescue stmt", 5739 "stmt : keyword_END '{' compstmt '}'", 5740 "stmt : command_asgn", 5741 "stmt : mlhs '=' command_call", 5742 "stmt : lhs '=' mrhs", 5743 "stmt : mlhs '=' arg", 5744 "stmt : mlhs '=' mrhs", 5745 "stmt : expr", 5746 "command_asgn : lhs '=' command_rhs", 5747 "command_asgn : var_lhs tOP_ASGN command_rhs", 5748 "command_asgn : primary_value '[' opt_call_args rbracket tOP_ASGN command_rhs", 5749 "command_asgn : primary_value call_op tIDENTIFIER tOP_ASGN command_rhs", 5750 "command_asgn : primary_value call_op tCONSTANT tOP_ASGN command_rhs", 5751 "command_asgn : primary_value tCOLON2 tCONSTANT tOP_ASGN command_call", 5752 "command_asgn : primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_rhs", 5753 "command_asgn : backref tOP_ASGN command_rhs", 5754 "command_rhs : command_call", 5755 "command_rhs : command_call modifier_rescue stmt", 5756 "command_rhs : command_asgn", 5757 "expr : command_call", 5758 "expr : expr keyword_and expr", 5759 "expr : expr keyword_or expr", 5760 "expr : keyword_not opt_nl expr", 5761 "expr : '!' command_call", 5762 "expr : arg", 5763 "expr_value : expr", 5764 "command_call : command", 5765 "command_call : block_command", 5766 "block_command : block_call", 5767 "block_command : block_call call_op2 operation2 command_args", 5768 "$$4 :", 5769 "cmd_brace_block : tLBRACE_ARG $$4 opt_block_param compstmt '}'", 5770 "command : operation command_args", 5771 "command : operation command_args cmd_brace_block", 5772 "command : primary_value call_op operation2 command_args", 5773 "command : primary_value call_op operation2 command_args cmd_brace_block", 5774 "command : primary_value tCOLON2 operation2 command_args", 5775 "command : primary_value tCOLON2 operation2 command_args cmd_brace_block", 5776 "command : keyword_super command_args", 5777 "command : keyword_yield command_args", 5778 "command : keyword_return call_args", 5779 "command : keyword_break call_args", 5780 "command : keyword_next call_args", 5781 "mlhs : mlhs_basic", 5782 "mlhs : tLPAREN mlhs_inner rparen", 5783 "mlhs_inner : mlhs_basic", 5784 "mlhs_inner : tLPAREN mlhs_inner rparen", 5785 "mlhs_basic : mlhs_list", 5786 "mlhs_basic : mlhs_list mlhs_item", 5787 "mlhs_basic : mlhs_list tSTAR mlhs_node", 5788 "mlhs_basic : mlhs_list tSTAR mlhs_node ',' mlhs_post", 5789 "mlhs_basic : mlhs_list tSTAR", 5790 "mlhs_basic : mlhs_list tSTAR ',' mlhs_post", 5791 "mlhs_basic : tSTAR mlhs_node", 5792 "mlhs_basic : tSTAR mlhs_node ',' mlhs_post", 5793 "mlhs_basic : tSTAR", 5794 "mlhs_basic : tSTAR ',' mlhs_post", 5795 "mlhs_item : mlhs_node", 5796 "mlhs_item : tLPAREN mlhs_inner rparen", 5797 "mlhs_list : mlhs_item ','", 5798 "mlhs_list : mlhs_list mlhs_item ','", 5799 "mlhs_post : mlhs_item", 5800 "mlhs_post : mlhs_list mlhs_item", 5801 "mlhs_node : variable", 5802 "mlhs_node : primary_value '[' opt_call_args rbracket", 5803 "mlhs_node : primary_value call_op tIDENTIFIER", 5804 "mlhs_node : primary_value tCOLON2 tIDENTIFIER", 5805 "mlhs_node : primary_value call_op tCONSTANT", 5806 "mlhs_node : primary_value tCOLON2 tCONSTANT", 5807 "mlhs_node : tCOLON3 tCONSTANT", 5808 "mlhs_node : backref", 5809 "lhs : variable", 5810 "lhs : primary_value '[' opt_call_args rbracket", 5811 "lhs : primary_value call_op tIDENTIFIER", 5812 "lhs : primary_value tCOLON2 tIDENTIFIER", 5813 "lhs : primary_value call_op tCONSTANT", 5814 "lhs : primary_value tCOLON2 tCONSTANT", 5815 "lhs : tCOLON3 tCONSTANT", 5816 "lhs : backref", 5817 "cname : tIDENTIFIER", 5818 "cname : tCONSTANT", 5819 "cpath : tCOLON3 cname", 5820 "cpath : cname", 5821 "cpath : primary_value tCOLON2 cname", 5822 "fname : tIDENTIFIER", 5823 "fname : tCONSTANT", 5824 "fname : tFID", 5825 "fname : op", 5826 "fname : reswords", 5827 "fsym : fname", 5828 "fsym : basic_symbol", 5829 "undef_list : fsym", 5830 "$$5 :", 5831 "undef_list : undef_list ',' $$5 fsym", 5832 "op : '|'", 5833 "op : '^'", 5834 "op : '&'", 5835 "op : tCMP", 5836 "op : tEQ", 5837 "op : tEQQ", 5838 "op : tMATCH", 5839 "op : tNMATCH", 5840 "op : '>'", 5841 "op : tGEQ", 5842 "op : '<'", 5843 "op : tLEQ", 5844 "op : tNEQ", 5845 "op : tLSHFT", 5846 "op : tRSHFT", 5847 "op : '+'", 5848 "op : '-'", 5849 "op : '*'", 5850 "op : tSTAR", 5851 "op : '/'", 5852 "op : '%'", 5853 "op : tPOW", 5854 "op : '!'", 5855 "op : '~'", 5856 "op : tUPLUS", 5857 "op : tUMINUS", 5858 "op : tAREF", 5859 "op : tASET", 5860 "op : '`'", 5861 "reswords : keyword__LINE__", 5862 "reswords : keyword__FILE__", 5863 "reswords : keyword__ENCODING__", 5864 "reswords : keyword_BEGIN", 5865 "reswords : keyword_END", 5866 "reswords : keyword_alias", 5867 "reswords : keyword_and", 5868 "reswords : keyword_begin", 5869 "reswords : keyword_break", 5870 "reswords : keyword_case", 5871 "reswords : keyword_class", 5872 "reswords : keyword_def", 5873 "reswords : keyword_do", 5874 "reswords : keyword_else", 5875 "reswords : keyword_elsif", 5876 "reswords : keyword_end", 5877 "reswords : keyword_ensure", 5878 "reswords : keyword_false", 5879 "reswords : keyword_for", 5880 "reswords : keyword_in", 5881 "reswords : keyword_module", 5882 "reswords : keyword_next", 5883 "reswords : keyword_nil", 5884 "reswords : keyword_not", 5885 "reswords : keyword_or", 5886 "reswords : keyword_redo", 5887 "reswords : keyword_rescue", 5888 "reswords : keyword_retry", 5889 "reswords : keyword_return", 5890 "reswords : keyword_self", 5891 "reswords : keyword_super", 5892 "reswords : keyword_then", 5893 "reswords : keyword_true", 5894 "reswords : keyword_undef", 5895 "reswords : keyword_when", 5896 "reswords : keyword_yield", 5897 "reswords : keyword_if", 5898 "reswords : keyword_unless", 5899 "reswords : keyword_while", 5900 "reswords : keyword_until", 5901 "arg : lhs '=' arg_rhs", 5902 "arg : var_lhs tOP_ASGN arg_rhs", 5903 "arg : primary_value '[' opt_call_args rbracket tOP_ASGN arg_rhs", 5904 "arg : primary_value call_op tIDENTIFIER tOP_ASGN arg_rhs", 5905 "arg : primary_value call_op tCONSTANT tOP_ASGN arg_rhs", 5906 "arg : primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg_rhs", 5907 "arg : primary_value tCOLON2 tCONSTANT tOP_ASGN arg_rhs", 5908 "arg : tCOLON3 tCONSTANT tOP_ASGN arg_rhs", 5909 "arg : backref tOP_ASGN arg_rhs", 5910 "arg : arg tDOT2 arg", 5911 "arg : arg tDOT3 arg", 5912 "arg : arg '+' arg", 5913 "arg : arg '-' arg", 5914 "arg : arg '*' arg", 5915 "arg : arg '/' arg", 5916 "arg : arg '%' arg", 5917 "arg : arg tPOW arg", 5918 "arg : tUMINUS_NUM tINTEGER tPOW arg", 5919 "arg : tUMINUS_NUM tFLOAT tPOW arg", 5920 "arg : tUPLUS arg", 5921 "arg : tUMINUS arg", 5922 "arg : arg '|' arg", 5923 "arg : arg '^' arg", 5924 "arg : arg '&' arg", 5925 "arg : arg tCMP arg", 5926 "arg : arg '>' arg", 5927 "arg : arg tGEQ arg", 5928 "arg : arg '<' arg", 5929 "arg : arg tLEQ arg", 5930 "arg : arg tEQ arg", 5931 "arg : arg tEQQ arg", 5932 "arg : arg tNEQ arg", 5933 "arg : arg tMATCH arg", 5934 "arg : arg tNMATCH arg", 5935 "arg : '!' arg", 5936 "arg : '~' arg", 5937 "arg : arg tLSHFT arg", 5938 "arg : arg tRSHFT arg", 5939 "arg : arg tANDOP arg", 5940 "arg : arg tOROP arg", 5941 "arg : arg '?' arg opt_nl ':' arg", 5942 "arg : primary", 5943 "aref_args : none", 5944 "aref_args : args trailer", 5945 "aref_args : args comma assocs trailer", 5946 "aref_args : assocs trailer", 5947 "arg_rhs : arg", 5948 "arg_rhs : arg modifier_rescue arg", 5949 "paren_args : '(' opt_call_args rparen", 5950 "opt_paren_args : none", 5951 "opt_paren_args : paren_args", 5952 "opt_call_args : none", 5953 "opt_call_args : call_args", 5954 "opt_call_args : args ','", 5955 "opt_call_args : args comma assocs ','", 5956 "opt_call_args : assocs ','", 5957 "call_args : command", 5958 "call_args : args opt_block_arg", 5959 "call_args : assocs opt_block_arg", 5960 "call_args : args comma assocs opt_block_arg", 5961 "call_args : block_arg", 5962 "$$6 :", 5963 "command_args : $$6 call_args", 5964 "block_arg : tAMPER arg", 5965 "opt_block_arg : comma block_arg", 5966 "opt_block_arg : none", 5967 "comma : ','", 5968 "comma : ',' heredoc_bodies", 5969 "args : arg", 5970 "args : tSTAR arg", 5971 "args : args comma arg", 5972 "args : args comma tSTAR arg", 5973 "mrhs : args comma arg", 5974 "mrhs : args comma tSTAR arg", 5975 "mrhs : tSTAR arg", 5976 "primary : literal", 5977 "primary : string", 5978 "primary : xstring", 5979 "primary : regexp", 5980 "primary : heredoc", 5981 "primary : var_ref", 5982 "primary : backref", 5983 "primary : tFID", 5984 "$$7 :", 5985 "primary : keyword_begin $$7 bodystmt keyword_end", 5986 "$$8 :", 5987 "$$9 :", 5988 "primary : tLPAREN_ARG $$8 stmt $$9 rparen", 5989 "$$10 :", 5990 "primary : tLPAREN_ARG $$10 rparen", 5991 "primary : tLPAREN compstmt ')'", 5992 "primary : primary_value tCOLON2 tCONSTANT", 5993 "primary : tCOLON3 tCONSTANT", 5994 "primary : tLBRACK aref_args ']'", 5995 "primary : tLBRACE assoc_list '}'", 5996 "primary : keyword_return", 5997 "primary : keyword_yield opt_paren_args", 5998 "primary : keyword_not '(' expr rparen", 5999 "primary : keyword_not '(' rparen", 6000 "primary : operation brace_block", 6001 "primary : method_call", 6002 "primary : method_call brace_block", 6003 "$$11 :", 6004 "$$12 :", 6005 "primary : tLAMBDA $$11 f_larglist $$12 lambda_body", 6006 "primary : keyword_if expr_value then compstmt if_tail keyword_end", 6007 "primary : keyword_unless expr_value then compstmt opt_else keyword_end", 6008 "$$13 :", 6009 "$$14 :", 6010 "primary : keyword_while $$13 expr_value do $$14 compstmt keyword_end", 6011 "$$15 :", 6012 "$$16 :", 6013 "primary : keyword_until $$15 expr_value do $$16 compstmt keyword_end", 6014 "primary : keyword_case expr_value opt_terms case_body keyword_end", 6015 "primary : keyword_case opt_terms case_body keyword_end", 6016 "$$17 :", 6017 "$$18 :", 6018 "primary : keyword_for for_var keyword_in $$17 expr_value do $$18 compstmt keyword_end", 6019 "$$19 :", 6020 "primary : keyword_class cpath superclass $$19 bodystmt keyword_end", 6021 "$$20 :", 6022 "$$21 :", 6023 "primary : keyword_class tLSHFT expr $$20 term $$21 bodystmt keyword_end", 6024 "$$22 :", 6025 "primary : keyword_module cpath $$22 bodystmt keyword_end", 6026 "$$23 :", 6027 "$$24 :", 6028 "primary : keyword_def fname $$23 $$24 f_arglist bodystmt keyword_end", 6029 "$$25 :", 6030 "$$26 :", 6031 "primary : keyword_def singleton dot_or_colon $$25 fname $$26 f_arglist bodystmt keyword_end", 6032 "primary : keyword_break", 6033 "primary : keyword_next", 6034 "primary : keyword_redo", 6035 "primary : keyword_retry", 6036 "primary_value : primary", 6037 "then : term", 6038 "then : keyword_then", 6039 "then : term keyword_then", 6040 "do : term", 6041 "do : keyword_do_cond", 6042 "if_tail : opt_else", 6043 "if_tail : keyword_elsif expr_value then compstmt if_tail", 6044 "opt_else : none", 6045 "opt_else : keyword_else compstmt", 6046 "for_var : lhs", 6047 "for_var : mlhs", 6048 "f_marg : f_norm_arg", 6049 "f_marg : tLPAREN f_margs rparen", 6050 "f_marg_list : f_marg", 6051 "f_marg_list : f_marg_list ',' f_marg", 6052 "f_margs : f_marg_list", 6053 "f_margs : f_marg_list ',' tSTAR f_norm_arg", 6054 "f_margs : f_marg_list ',' tSTAR f_norm_arg ',' f_marg_list", 6055 "f_margs : f_marg_list ',' tSTAR", 6056 "f_margs : f_marg_list ',' tSTAR ',' f_marg_list", 6057 "f_margs : tSTAR f_norm_arg", 6058 "f_margs : tSTAR f_norm_arg ',' f_marg_list", 6059 "f_margs : tSTAR", 6060 "f_margs : tSTAR ',' f_marg_list", 6061 "block_param : f_arg ',' f_block_optarg ',' f_rest_arg opt_f_block_arg", 6062 "block_param : f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", 6063 "block_param : f_arg ',' f_block_optarg opt_f_block_arg", 6064 "block_param : f_arg ',' f_block_optarg ',' f_arg opt_f_block_arg", 6065 "block_param : f_arg ',' f_rest_arg opt_f_block_arg", 6066 "block_param : f_arg ','", 6067 "block_param : f_arg ',' f_rest_arg ',' f_arg opt_f_block_arg", 6068 "block_param : f_arg opt_f_block_arg", 6069 "block_param : f_block_optarg ',' f_rest_arg opt_f_block_arg", 6070 "block_param : f_block_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", 6071 "block_param : f_block_optarg opt_f_block_arg", 6072 "block_param : f_block_optarg ',' f_arg opt_f_block_arg", 6073 "block_param : f_rest_arg opt_f_block_arg", 6074 "block_param : f_rest_arg ',' f_arg opt_f_block_arg", 6075 "block_param : f_block_arg", 6076 "opt_block_param : none", 6077 "opt_block_param : block_param_def", 6078 "block_param_def : '|' opt_bv_decl '|'", 6079 "block_param_def : tOROP", 6080 "block_param_def : '|' block_param opt_bv_decl '|'", 6081 "opt_bv_decl : opt_nl", 6082 "opt_bv_decl : opt_nl ';' bv_decls opt_nl", 6083 "bv_decls : bvar", 6084 "bv_decls : bv_decls ',' bvar", 6085 "bvar : tIDENTIFIER", 6086 "bvar : f_bad_arg", 6087 "f_larglist : '(' f_args opt_bv_decl ')'", 6088 "f_larglist : f_args", 6089 "lambda_body : tLAMBEG compstmt '}'", 6090 "lambda_body : keyword_do_LAMBDA compstmt keyword_end", 6091 "$$27 :", 6092 "do_block : keyword_do_block $$27 opt_block_param compstmt keyword_end", 6093 "block_call : command do_block", 6094 "block_call : block_call call_op2 operation2 opt_paren_args", 6095 "block_call : block_call call_op2 operation2 opt_paren_args brace_block", 6096 "block_call : block_call call_op2 operation2 command_args do_block", 6097 "method_call : operation paren_args", 6098 "method_call : primary_value call_op operation2 opt_paren_args", 6099 "method_call : primary_value tCOLON2 operation2 paren_args", 6100 "method_call : primary_value tCOLON2 operation3", 6101 "method_call : primary_value call_op paren_args", 6102 "method_call : primary_value tCOLON2 paren_args", 6103 "method_call : keyword_super paren_args", 6104 "method_call : keyword_super", 6105 "method_call : primary_value '[' opt_call_args rbracket", 6106 "$$28 :", 6107 "brace_block : '{' $$28 opt_block_param compstmt '}'", 6108 "$$29 :", 6109 "brace_block : keyword_do $$29 opt_block_param compstmt keyword_end", 6110 "case_body : keyword_when args then compstmt cases", 6111 "cases : opt_else", 6112 "cases : case_body", 6113 "opt_rescue : keyword_rescue exc_list exc_var then compstmt opt_rescue", 6114 "opt_rescue : none", 6115 "exc_list : arg", 6116 "exc_list : mrhs", 6117 "exc_list : none", 6118 "exc_var : tASSOC lhs", 6119 "exc_var : none", 6120 "opt_ensure : keyword_ensure compstmt", 6121 "opt_ensure : none", 6122 "literal : numeric", 6123 "literal : symbol", 6124 "literal : words", 6125 "literal : symbols", 6126 "string : tCHAR", 6127 "string : tSTRING", 6128 "string : tSTRING_BEG tSTRING", 6129 "string : tSTRING_BEG string_rep tSTRING", 6130 "string_rep : string_interp", 6131 "string_rep : string_rep string_interp", 6132 "string_interp : tSTRING_MID", 6133 "$$30 :", 6134 "string_interp : tSTRING_PART $$30 compstmt '}'", 6135 "string_interp : tLITERAL_DELIM", 6136 "string_interp : tHD_LITERAL_DELIM heredoc_bodies", 6137 "xstring : tXSTRING_BEG tXSTRING", 6138 "xstring : tXSTRING_BEG string_rep tXSTRING", 6139 "regexp : tREGEXP_BEG tREGEXP", 6140 "regexp : tREGEXP_BEG string_rep tREGEXP", 6141 "heredoc : tHEREDOC_BEG", 6142 "heredoc_bodies : heredoc_body", 6143 "heredoc_bodies : heredoc_bodies heredoc_body", 6144 "heredoc_body : tHEREDOC_END", 6145 "heredoc_body : heredoc_string_rep tHEREDOC_END", 6146 "heredoc_string_rep : heredoc_string_interp", 6147 "heredoc_string_rep : heredoc_string_rep heredoc_string_interp", 6148 "heredoc_string_interp : tHD_STRING_MID", 6149 "$$31 :", 6150 "heredoc_string_interp : tHD_STRING_PART $$31 compstmt '}'", 6151 "words : tWORDS_BEG tSTRING", 6152 "words : tWORDS_BEG string_rep tSTRING", 6153 "symbol : basic_symbol", 6154 "symbol : tSYMBEG tSTRING_BEG string_rep tSTRING", 6155 "basic_symbol : tSYMBEG sym", 6156 "sym : fname", 6157 "sym : tIVAR", 6158 "sym : tGVAR", 6159 "sym : tCVAR", 6160 "sym : tSTRING", 6161 "sym : tSTRING_BEG tSTRING", 6162 "symbols : tSYMBOLS_BEG tSTRING", 6163 "symbols : tSYMBOLS_BEG string_rep tSTRING", 6164 "numeric : tINTEGER", 6165 "numeric : tFLOAT", 6166 "numeric : tUMINUS_NUM tINTEGER", 6167 "numeric : tUMINUS_NUM tFLOAT", 6168 "variable : tIDENTIFIER", 6169 "variable : tIVAR", 6170 "variable : tGVAR", 6171 "variable : tCVAR", 6172 "variable : tCONSTANT", 6173 "var_lhs : variable", 6174 "var_ref : variable", 6175 "var_ref : keyword_nil", 6176 "var_ref : keyword_self", 6177 "var_ref : keyword_true", 6178 "var_ref : keyword_false", 6179 "var_ref : keyword__FILE__", 6180 "var_ref : keyword__LINE__", 6181 "backref : tNTH_REF", 6182 "backref : tBACK_REF", 6183 "superclass :", 6184 "$$32 :", 6185 "superclass : '<' $$32 expr_value term", 6186 "f_arglist : '(' f_args rparen", 6187 "f_arglist : f_args term", 6188 "f_args : f_arg ',' f_optarg ',' f_rest_arg opt_f_block_arg", 6189 "f_args : f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", 6190 "f_args : f_arg ',' f_optarg opt_f_block_arg", 6191 "f_args : f_arg ',' f_optarg ',' f_arg opt_f_block_arg", 6192 "f_args : f_arg ',' f_rest_arg opt_f_block_arg", 6193 "f_args : f_arg ',' f_rest_arg ',' f_arg opt_f_block_arg", 6194 "f_args : f_arg opt_f_block_arg", 6195 "f_args : f_optarg ',' f_rest_arg opt_f_block_arg", 6196 "f_args : f_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", 6197 "f_args : f_optarg opt_f_block_arg", 6198 "f_args : f_optarg ',' f_arg opt_f_block_arg", 6199 "f_args : f_rest_arg opt_f_block_arg", 6200 "f_args : f_rest_arg ',' f_arg opt_f_block_arg", 6201 "f_args : f_block_arg", 6202 "f_args :", 6203 "f_bad_arg : tCONSTANT", 6204 "f_bad_arg : tIVAR", 6205 "f_bad_arg : tGVAR", 6206 "f_bad_arg : tCVAR", 6207 "f_norm_arg : f_bad_arg", 6208 "f_norm_arg : tIDENTIFIER", 6209 "f_arg_item : f_norm_arg", 6210 "f_arg_item : tLPAREN f_margs rparen", 6211 "f_arg : f_arg_item", 6212 "f_arg : f_arg ',' f_arg_item", 6213 "f_opt_asgn : tIDENTIFIER '='", 6214 "f_opt : f_opt_asgn arg", 6215 "f_block_opt : f_opt_asgn primary_value", 6216 "f_block_optarg : f_block_opt", 6217 "f_block_optarg : f_block_optarg ',' f_block_opt", 6218 "f_optarg : f_opt", 6219 "f_optarg : f_optarg ',' f_opt", 6220 "restarg_mark : '*'", 6221 "restarg_mark : tSTAR", 6222 "f_rest_arg : restarg_mark tIDENTIFIER", 6223 "f_rest_arg : restarg_mark", 6224 "blkarg_mark : '&'", 6225 "blkarg_mark : tAMPER", 6226 "f_block_arg : blkarg_mark tIDENTIFIER", 6227 "opt_f_block_arg : ',' f_block_arg", 6228 "opt_f_block_arg : none", 6229 "singleton : var_ref", 6230 "$$33 :", 6231 "singleton : '(' $$33 expr rparen", 6232 "assoc_list : none", 6233 "assoc_list : assocs trailer", 6234 "assocs : assoc", 6235 "assocs : assocs ',' assoc", 6236 "assoc : arg tASSOC arg", 6237 "assoc : tLABEL arg", 6238 "assoc : tLABEL_END arg", 6239 "assoc : tSTRING_BEG tLABEL_END arg", 6240 "assoc : tSTRING_BEG string_rep tLABEL_END arg", 6241 "operation : tIDENTIFIER", 6242 "operation : tCONSTANT", 6243 "operation : tFID", 6244 "operation2 : tIDENTIFIER", 6245 "operation2 : tCONSTANT", 6246 "operation2 : tFID", 6247 "operation2 : op", 6248 "operation3 : tIDENTIFIER", 6249 "operation3 : tFID", 6250 "operation3 : op", 6251 "dot_or_colon : '.'", 6252 "dot_or_colon : tCOLON2", 6253 "call_op : '.'", 6254 "call_op : tANDDOT", 6255 "call_op2 : call_op", 6256 "call_op2 : tCOLON2", 6257 "opt_terms :", 6258 "opt_terms : terms", 6259 "opt_nl :", 6260 "opt_nl : nl", 6261 "rparen : opt_nl ')'", 6262 "rbracket : opt_nl ']'", 6263 "trailer :", 6264 "trailer : nl", 6265 "trailer : comma", 6266 "term : ';'", 6267 "term : nl", 6268 "term : heredoc_body", 6269 "nl : '\\n'", 6270 "terms : term", 6271 "terms : terms term", 6272 "none :", 6273 }; 6272 6274 6273 6275 /// <summary> … … 6557 6559 switch (yyN) { 6558 6560 case 1: 6559 #line 181 "mrb_parse.jay" 6560 { 6561 this.lstate = mrb_lex_state_enum.EXPR_BEG; 6562 if (this.locals == null) this.locals = new locals_node(null); 6561 #line 183 "mrb_parse.jay" 6562 { 6563 this.lstate = mrb_lex_state_enum.EXPR_BEG; 6564 if (this.locals == null) this.locals = new locals_node(null); 6565 } 6566 break; 6567 case 2: 6568 #line 188 "mrb_parse.jay" 6569 { 6570 this.tree = new_scope(((node)yyVals[0 + yyTop])); 6571 this.tree.NODE_LINENO(((node)yyVals[0 + yyTop])); 6572 } 6573 break; 6574 case 3: 6575 #line 195 "mrb_parse.jay" 6576 { 6577 yyVal = ((node)yyVals[-1 + yyTop]); 6578 } 6579 break; 6580 case 4: 6581 #line 201 "mrb_parse.jay" 6582 { 6583 yyVal = new_begin(null); 6584 } 6585 break; 6586 case 5: 6587 #line 205 "mrb_parse.jay" 6588 { 6589 yyVal = new_begin(((node)yyVals[0 + yyTop])); 6590 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 6591 } 6592 break; 6593 case 6: 6594 #line 210 "mrb_parse.jay" 6595 { 6596 yyVal = push(((node)yyVals[-2 + yyTop]), newline_node(((node)yyVals[0 + yyTop]))); 6597 } 6598 break; 6599 case 7: 6600 #line 214 "mrb_parse.jay" 6601 { 6602 yyVal = new_begin(null); 6603 } 6604 break; 6605 case 9: 6606 #line 221 "mrb_parse.jay" 6607 { 6608 yyVal = local_switch(); 6609 } 6610 break; 6611 case 10: 6612 #line 225 "mrb_parse.jay" 6613 { 6614 yyError("BEGIN not supported"); 6615 local_resume(((locals_node)yyVals[-3 + yyTop])); 6616 yyVal = null; 6617 } 6618 break; 6619 case 11: 6620 #line 236 "mrb_parse.jay" 6621 { 6622 if (((node)yyVals[-2 + yyTop]) != null) { 6623 yyVal = new_rescue(((node)yyVals[-3 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 6624 ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); 6563 6625 } 6564 break; 6565 case 2: 6566 #line 186 "mrb_parse.jay" 6567 { 6568 this.tree = new_scope(((node)yyVals[0 + yyTop])); 6569 this.tree.NODE_LINENO(((node)yyVals[0 + yyTop])); 6626 else if (((node)yyVals[-1 + yyTop]) != null) { 6627 yyWarning("else without rescue is useless"); 6628 yyVal = push(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 6570 6629 } 6571 break; 6572 case 3: 6573 #line 193 "mrb_parse.jay" 6574 { 6575 yyVal = ((node)yyVals[-1 + yyTop]); 6630 else { 6631 yyVal = ((node)yyVals[-3 + yyTop]); 6576 6632 } 6577 break; 6578 case 4: 6579 #line 199 "mrb_parse.jay" 6580 { 6581 yyVal = new_begin(null); 6633 if (((node)yyVals[0 + yyTop]) != null) { 6634 if (yyVal != null) { 6635 yyVal = new_ensure(((node)yyVal), ((node)yyVals[0 + yyTop])); 6636 } 6637 else { 6638 yyVal = push(((node)yyVals[0 + yyTop]), new_nil()); 6639 } 6582 6640 } 6583 break; 6584 case 5: 6585 #line 203 "mrb_parse.jay" 6586 { 6587 yyVal = new_begin(((node)yyVals[0 + yyTop])); 6588 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 6641 } 6642 break; 6643 case 12: 6644 #line 260 "mrb_parse.jay" 6645 { 6646 yyVal = ((node)yyVals[-1 + yyTop]); 6647 } 6648 break; 6649 case 13: 6650 #line 266 "mrb_parse.jay" 6651 { 6652 yyVal = new_begin(null); 6653 } 6654 break; 6655 case 14: 6656 #line 270 "mrb_parse.jay" 6657 { 6658 yyVal = new_begin(((node)yyVals[0 + yyTop])); 6659 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 6660 } 6661 break; 6662 case 15: 6663 #line 275 "mrb_parse.jay" 6664 { 6665 yyVal = push(((node)yyVals[-2 + yyTop]), newline_node(((node)yyVals[0 + yyTop]))); 6666 } 6667 break; 6668 case 16: 6669 #line 279 "mrb_parse.jay" 6670 { 6671 yyVal = new_begin(((node)yyVals[0 + yyTop])); 6672 } 6673 break; 6674 case 17: 6675 #line 284 "mrb_parse.jay" 6676 { this.lstate = mrb_lex_state_enum.EXPR_FNAME; } 6677 break; 6678 case 18: 6679 #line 285 "mrb_parse.jay" 6680 { 6681 yyVal = new_alias(((mrb_sym)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 6682 } 6683 break; 6684 case 19: 6685 #line 289 "mrb_parse.jay" 6686 { 6687 yyVal = ((node)yyVals[0 + yyTop]); 6688 } 6689 break; 6690 case 20: 6691 #line 293 "mrb_parse.jay" 6692 { 6693 yyVal = new_if(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop]), null); 6694 } 6695 break; 6696 case 21: 6697 #line 297 "mrb_parse.jay" 6698 { 6699 yyVal = new_unless(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop]), null); 6700 } 6701 break; 6702 case 22: 6703 #line 301 "mrb_parse.jay" 6704 { 6705 yyVal = new_while(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop])); 6706 } 6707 break; 6708 case 23: 6709 #line 305 "mrb_parse.jay" 6710 { 6711 yyVal = new_until(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop])); 6712 } 6713 break; 6714 case 24: 6715 #line 309 "mrb_parse.jay" 6716 { 6717 yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6718 } 6719 break; 6720 case 25: 6721 #line 313 "mrb_parse.jay" 6722 { 6723 yyError("END not supported"); 6724 yyVal = new_postexe(((node)yyVals[-1 + yyTop])); 6725 } 6726 break; 6727 case 27: 6728 #line 319 "mrb_parse.jay" 6729 { 6730 yyVal = new_masgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6731 } 6732 break; 6733 case 28: 6734 #line 323 "mrb_parse.jay" 6735 { 6736 yyVal = new_asgn(((node)yyVals[-2 + yyTop]), new_array(((node)yyVals[0 + yyTop]))); 6737 } 6738 break; 6739 case 29: 6740 #line 327 "mrb_parse.jay" 6741 { 6742 yyVal = new_masgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6743 } 6744 break; 6745 case 30: 6746 #line 331 "mrb_parse.jay" 6747 { 6748 yyVal = new_masgn(((node)yyVals[-2 + yyTop]), new_array(((node)yyVals[0 + yyTop]))); 6749 } 6750 break; 6751 case 32: 6752 #line 338 "mrb_parse.jay" 6753 { 6754 yyVal = new_asgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6755 } 6756 break; 6757 case 33: 6758 #line 342 "mrb_parse.jay" 6759 { 6760 yyVal = new_op_asgn(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6761 } 6762 break; 6763 case 34: 6764 #line 346 "mrb_parse.jay" 6765 { 6766 yyVal = new_op_asgn(new_call(((node)yyVals[-5 + yyTop]), intern("[]", 2), ((node)yyVals[-3 + yyTop]), (MrbTokens)'.'), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6767 } 6768 break; 6769 case 35: 6770 #line 350 "mrb_parse.jay" 6771 { 6772 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6773 } 6774 break; 6775 case 36: 6776 #line 354 "mrb_parse.jay" 6777 { 6778 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6779 } 6780 break; 6781 case 37: 6782 #line 358 "mrb_parse.jay" 6783 { 6784 yyError("constant re-assignment"); 6785 yyVal = null; 6786 } 6787 break; 6788 case 38: 6789 #line 363 "mrb_parse.jay" 6790 { 6791 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, MrbTokens.tCOLON2), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6792 } 6793 break; 6794 case 39: 6795 #line 367 "mrb_parse.jay" 6796 { 6797 backref_error(((node)yyVals[-2 + yyTop])); 6798 yyVal = new_begin(null); 6799 } 6800 break; 6801 case 41: 6802 #line 375 "mrb_parse.jay" 6803 { 6804 yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6805 } 6806 break; 6807 case 44: 6808 #line 384 "mrb_parse.jay" 6809 { 6810 yyVal = new_and(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6811 } 6812 break; 6813 case 45: 6814 #line 388 "mrb_parse.jay" 6815 { 6816 yyVal = new_or(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6817 } 6818 break; 6819 case 46: 6820 #line 392 "mrb_parse.jay" 6821 { 6822 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); 6823 } 6824 break; 6825 case 47: 6826 #line 396 "mrb_parse.jay" 6827 { 6828 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); 6829 } 6830 break; 6831 case 49: 6832 #line 403 "mrb_parse.jay" 6833 { 6834 if (((node)yyVals[0 + yyTop]) == null) yyVal = new_nil(); 6835 else { 6836 yyVal = ((node)yyVals[0 + yyTop]); 6589 6837 } 6590 break; 6591 case 6: 6592 #line 208 "mrb_parse.jay" 6593 { 6594 yyVal = push(((node)yyVals[-2 + yyTop]), newline_node(((node)yyVals[0 + yyTop]))); 6838 } 6839 break; 6840 case 53: 6841 #line 417 "mrb_parse.jay" 6842 { 6843 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); 6844 } 6845 break; 6846 case 54: 6847 #line 423 "mrb_parse.jay" 6848 { 6849 local_nest(); 6850 } 6851 break; 6852 case 55: 6853 #line 429 "mrb_parse.jay" 6854 { 6855 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), true); 6856 local_unnest(); 6857 } 6858 break; 6859 case 56: 6860 #line 436 "mrb_parse.jay" 6861 { 6862 yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6863 } 6864 break; 6865 case 57: 6866 #line 440 "mrb_parse.jay" 6867 { 6868 args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6869 yyVal = new_fcall(((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 6870 } 6871 break; 6872 case 58: 6873 #line 445 "mrb_parse.jay" 6874 { 6875 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); 6876 } 6877 break; 6878 case 59: 6879 #line 449 "mrb_parse.jay" 6880 { 6881 args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6882 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); 6883 } 6884 break; 6885 case 60: 6886 #line 454 "mrb_parse.jay" 6887 { 6888 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); 6889 } 6890 break; 6891 case 61: 6892 #line 458 "mrb_parse.jay" 6893 { 6894 args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6895 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), MrbTokens.tCOLON2); 6896 } 6897 break; 6898 case 62: 6899 #line 463 "mrb_parse.jay" 6900 { 6901 yyVal = new_super(((node)yyVals[0 + yyTop])); 6902 } 6903 break; 6904 case 63: 6905 #line 467 "mrb_parse.jay" 6906 { 6907 yyVal = new_yield(((node)yyVals[0 + yyTop])); 6908 } 6909 break; 6910 case 64: 6911 #line 471 "mrb_parse.jay" 6912 { 6913 yyVal = new_return(ret_args(((node)yyVals[0 + yyTop]))); 6914 } 6915 break; 6916 case 65: 6917 #line 475 "mrb_parse.jay" 6918 { 6919 yyVal = new_break(ret_args(((node)yyVals[0 + yyTop]))); 6920 } 6921 break; 6922 case 66: 6923 #line 479 "mrb_parse.jay" 6924 { 6925 yyVal = new_next(ret_args(((node)yyVals[0 + yyTop]))); 6926 } 6927 break; 6928 case 67: 6929 #line 485 "mrb_parse.jay" 6930 { 6931 yyVal = ((node)yyVals[0 + yyTop]); 6932 } 6933 break; 6934 case 68: 6935 #line 489 "mrb_parse.jay" 6936 { 6937 yyVal = ((node)yyVals[-1 + yyTop]); 6938 } 6939 break; 6940 case 70: 6941 #line 496 "mrb_parse.jay" 6942 { 6943 yyVal = ((node)yyVals[-1 + yyTop]); 6944 } 6945 break; 6946 case 71: 6947 #line 502 "mrb_parse.jay" 6948 { 6949 yyVal = list1(((node)yyVals[0 + yyTop])); 6950 } 6951 break; 6952 case 72: 6953 #line 506 "mrb_parse.jay" 6954 { 6955 yyVal = list1(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 6956 } 6957 break; 6958 case 73: 6959 #line 510 "mrb_parse.jay" 6960 { 6961 yyVal = list2(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6962 } 6963 break; 6964 case 74: 6965 #line 514 "mrb_parse.jay" 6966 { 6967 yyVal = list3(((node)yyVals[-4 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6968 } 6969 break; 6970 case 75: 6971 #line 518 "mrb_parse.jay" 6972 { 6973 yyVal = list2(((node)yyVals[-1 + yyTop]), new_nil()); 6974 } 6975 break; 6976 case 76: 6977 #line 522 "mrb_parse.jay" 6978 { 6979 yyVal = list3(((node)yyVals[-3 + yyTop]), new_nil(), ((node)yyVals[0 + yyTop])); 6980 } 6981 break; 6982 case 77: 6983 #line 526 "mrb_parse.jay" 6984 { 6985 yyVal = list2(null, ((node)yyVals[0 + yyTop])); 6986 } 6987 break; 6988 case 78: 6989 #line 530 "mrb_parse.jay" 6990 { 6991 yyVal = list3(null, ((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6992 } 6993 break; 6994 case 79: 6995 #line 534 "mrb_parse.jay" 6996 { 6997 yyVal = list2(null, new_nil()); 6998 } 6999 break; 7000 case 80: 7001 #line 538 "mrb_parse.jay" 7002 { 7003 yyVal = list3(null, new_nil(), ((node)yyVals[0 + yyTop])); 7004 } 7005 break; 7006 case 82: 7007 #line 545 "mrb_parse.jay" 7008 { 7009 yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); 7010 } 7011 break; 7012 case 83: 7013 #line 551 "mrb_parse.jay" 7014 { 7015 yyVal = list1(((node)yyVals[-1 + yyTop])); 7016 } 7017 break; 7018 case 84: 7019 #line 555 "mrb_parse.jay" 7020 { 7021 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 7022 } 7023 break; 7024 case 85: 7025 #line 561 "mrb_parse.jay" 7026 { 7027 yyVal = list1(((node)yyVals[0 + yyTop])); 7028 } 7029 break; 7030 case 86: 7031 #line 565 "mrb_parse.jay" 7032 { 7033 yyVal = push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7034 } 7035 break; 7036 case 87: 7037 #line 571 "mrb_parse.jay" 7038 { 7039 assignable(((node)yyVals[0 + yyTop])); 7040 } 7041 break; 7042 case 88: 7043 #line 575 "mrb_parse.jay" 7044 { 7045 yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); 7046 } 7047 break; 7048 case 89: 7049 #line 579 "mrb_parse.jay" 7050 { 7051 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7052 } 7053 break; 7054 case 90: 7055 #line 583 "mrb_parse.jay" 7056 { 7057 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); 7058 } 7059 break; 7060 case 91: 7061 #line 587 "mrb_parse.jay" 7062 { 7063 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7064 } 7065 break; 7066 case 92: 7067 #line 591 "mrb_parse.jay" 7068 { 7069 if (this.in_def != 0 || this.in_single != 0) 7070 yyError("dynamic constant assignment"); 7071 yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7072 } 7073 break; 7074 case 93: 7075 #line 597 "mrb_parse.jay" 7076 { 7077 if (this.in_def != 0 || this.in_single != 0) 7078 yyError("dynamic constant assignment"); 7079 yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); 7080 } 7081 break; 7082 case 94: 7083 #line 603 "mrb_parse.jay" 7084 { 7085 backref_error(((node)yyVals[0 + yyTop])); 7086 yyVal = null; 7087 } 7088 break; 7089 case 95: 7090 #line 610 "mrb_parse.jay" 7091 { 7092 assignable(((node)yyVals[0 + yyTop])); 7093 } 7094 break; 7095 case 96: 7096 #line 614 "mrb_parse.jay" 7097 { 7098 yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); 7099 } 7100 break; 7101 case 97: 7102 #line 618 "mrb_parse.jay" 7103 { 7104 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7105 } 7106 break; 7107 case 98: 7108 #line 622 "mrb_parse.jay" 7109 { 7110 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); 7111 } 7112 break; 7113 case 99: 7114 #line 626 "mrb_parse.jay" 7115 { 7116 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7117 } 7118 break; 7119 case 100: 7120 #line 630 "mrb_parse.jay" 7121 { 7122 if (this.in_def != 0 || this.in_single != 0) 7123 yyError("dynamic constant assignment"); 7124 yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7125 } 7126 break; 7127 case 101: 7128 #line 636 "mrb_parse.jay" 7129 { 7130 if (this.in_def != 0 || this.in_single != 0) 7131 yyError("dynamic constant assignment"); 7132 yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); 7133 } 7134 break; 7135 case 102: 7136 #line 642 "mrb_parse.jay" 7137 { 7138 backref_error(((node)yyVals[0 + yyTop])); 7139 yyVal = null; 7140 } 7141 break; 7142 case 103: 7143 #line 649 "mrb_parse.jay" 7144 { 7145 yyError("class/module name must be CONSTANT"); 7146 } 7147 break; 7148 case 105: 7149 #line 656 "mrb_parse.jay" 7150 { 7151 yyVal = cons(1, ((mrb_sym)yyVals[0 + yyTop])); 7152 } 7153 break; 7154 case 106: 7155 #line 660 "mrb_parse.jay" 7156 { 7157 yyVal = cons(0, ((mrb_sym)yyVals[0 + yyTop])); 7158 } 7159 break; 7160 case 107: 7161 #line 664 "mrb_parse.jay" 7162 { 7163 void_expr_error(((node)yyVals[-2 + yyTop])); 7164 yyVal = cons(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7165 } 7166 break; 7167 case 111: 7168 #line 674 "mrb_parse.jay" 7169 { 7170 this.lstate = mrb_lex_state_enum.EXPR_ENDFN; 7171 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 7172 } 7173 break; 7174 case 112: 7175 #line 679 "mrb_parse.jay" 7176 { 7177 this.lstate = mrb_lex_state_enum.EXPR_ENDFN; 7178 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 7179 } 7180 break; 7181 case 115: 7182 #line 690 "mrb_parse.jay" 7183 { 7184 yyVal = new_undef(((mrb_sym)yyVals[0 + yyTop])); 7185 } 7186 break; 7187 case 116: 7188 #line 693 "mrb_parse.jay" 7189 { this.lstate = mrb_lex_state_enum.EXPR_FNAME; } 7190 break; 7191 case 117: 7192 #line 694 "mrb_parse.jay" 7193 { 7194 yyVal = push(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7195 } 7196 break; 7197 case 118: 7198 #line 699 "mrb_parse.jay" 7199 { yyVal = intern_c('|'); } 7200 break; 7201 case 119: 7202 #line 700 "mrb_parse.jay" 7203 { yyVal = intern_c('^'); } 7204 break; 7205 case 120: 7206 #line 701 "mrb_parse.jay" 7207 { yyVal = intern_c('&'); } 7208 break; 7209 case 121: 7210 #line 702 "mrb_parse.jay" 7211 { yyVal = intern("<=>", 3); } 7212 break; 7213 case 122: 7214 #line 703 "mrb_parse.jay" 7215 { yyVal = intern("==", 2); } 7216 break; 7217 case 123: 7218 #line 704 "mrb_parse.jay" 7219 { yyVal = intern("===", 3); } 7220 break; 7221 case 124: 7222 #line 705 "mrb_parse.jay" 7223 { yyVal = intern("=~", 2); } 7224 break; 7225 case 125: 7226 #line 706 "mrb_parse.jay" 7227 { yyVal = intern("!~", 2); } 7228 break; 7229 case 126: 7230 #line 707 "mrb_parse.jay" 7231 { yyVal = intern_c('>'); } 7232 break; 7233 case 127: 7234 #line 708 "mrb_parse.jay" 7235 { yyVal = intern(">=", 2); } 7236 break; 7237 case 128: 7238 #line 709 "mrb_parse.jay" 7239 { yyVal = intern_c('<'); } 7240 break; 7241 case 129: 7242 #line 710 "mrb_parse.jay" 7243 { yyVal = intern("<=", 2); } 7244 break; 7245 case 130: 7246 #line 711 "mrb_parse.jay" 7247 { yyVal = intern("!=", 2); } 7248 break; 7249 case 131: 7250 #line 712 "mrb_parse.jay" 7251 { yyVal = intern("<<", 2); } 7252 break; 7253 case 132: 7254 #line 713 "mrb_parse.jay" 7255 { yyVal = intern(">>", 2); } 7256 break; 7257 case 133: 7258 #line 714 "mrb_parse.jay" 7259 { yyVal = intern_c('+'); } 7260 break; 7261 case 134: 7262 #line 715 "mrb_parse.jay" 7263 { yyVal = intern_c('-'); } 7264 break; 7265 case 135: 7266 #line 716 "mrb_parse.jay" 7267 { yyVal = intern_c('*'); } 7268 break; 7269 case 136: 7270 #line 717 "mrb_parse.jay" 7271 { yyVal = intern_c('*'); } 7272 break; 7273 case 137: 7274 #line 718 "mrb_parse.jay" 7275 { yyVal = intern_c('/'); } 7276 break; 7277 case 138: 7278 #line 719 "mrb_parse.jay" 7279 { yyVal = intern_c('%'); } 7280 break; 7281 case 139: 7282 #line 720 "mrb_parse.jay" 7283 { yyVal = intern("**", 2); } 7284 break; 7285 case 140: 7286 #line 721 "mrb_parse.jay" 7287 { yyVal = intern_c('!'); } 7288 break; 7289 case 141: 7290 #line 722 "mrb_parse.jay" 7291 { yyVal = intern_c('~'); } 7292 break; 7293 case 142: 7294 #line 723 "mrb_parse.jay" 7295 { yyVal = intern("+@", 2); } 7296 break; 7297 case 143: 7298 #line 724 "mrb_parse.jay" 7299 { yyVal = intern("-@", 2); } 7300 break; 7301 case 144: 7302 #line 725 "mrb_parse.jay" 7303 { yyVal = intern("[]", 2); } 7304 break; 7305 case 145: 7306 #line 726 "mrb_parse.jay" 7307 { yyVal = intern("[]=", 3); } 7308 break; 7309 case 146: 7310 #line 727 "mrb_parse.jay" 7311 { yyVal = intern_c('`'); } 7312 break; 7313 case 187: 7314 #line 745 "mrb_parse.jay" 7315 { 7316 yyVal = new_asgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7317 } 7318 break; 7319 case 188: 7320 #line 749 "mrb_parse.jay" 7321 { 7322 yyVal = new_op_asgn(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7323 } 7324 break; 7325 case 189: 7326 #line 753 "mrb_parse.jay" 7327 { 7328 yyVal = new_op_asgn(new_call(((node)yyVals[-5 + yyTop]), intern("[]", 2), ((node)yyVals[-3 + yyTop]), (MrbTokens)'.'), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7329 } 7330 break; 7331 case 190: 7332 #line 757 "mrb_parse.jay" 7333 { 7334 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7335 } 7336 break; 7337 case 191: 7338 #line 761 "mrb_parse.jay" 7339 { 7340 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7341 } 7342 break; 7343 case 192: 7344 #line 765 "mrb_parse.jay" 7345 { 7346 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, MrbTokens.tCOLON2), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7347 } 7348 break; 7349 case 193: 7350 #line 769 "mrb_parse.jay" 7351 { 7352 yyError("constant re-assignment"); 7353 yyVal = new_begin(null); 7354 } 7355 break; 7356 case 194: 7357 #line 774 "mrb_parse.jay" 7358 { 7359 yyError("constant re-assignment"); 7360 yyVal = new_begin(null); 7361 } 7362 break; 7363 case 195: 7364 #line 779 "mrb_parse.jay" 7365 { 7366 backref_error(((node)yyVals[-2 + yyTop])); 7367 yyVal = new_begin(null); 7368 } 7369 break; 7370 case 196: 7371 #line 784 "mrb_parse.jay" 7372 { 7373 yyVal = new_dot2(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7374 } 7375 break; 7376 case 197: 7377 #line 788 "mrb_parse.jay" 7378 { 7379 yyVal = new_dot3(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7380 } 7381 break; 7382 case 198: 7383 #line 792 "mrb_parse.jay" 7384 { 7385 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "+", ((node)yyVals[0 + yyTop])); 7386 } 7387 break; 7388 case 199: 7389 #line 796 "mrb_parse.jay" 7390 { 7391 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "-", ((node)yyVals[0 + yyTop])); 7392 } 7393 break; 7394 case 200: 7395 #line 800 "mrb_parse.jay" 7396 { 7397 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "*", ((node)yyVals[0 + yyTop])); 7398 } 7399 break; 7400 case 201: 7401 #line 804 "mrb_parse.jay" 7402 { 7403 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "/", ((node)yyVals[0 + yyTop])); 7404 } 7405 break; 7406 case 202: 7407 #line 808 "mrb_parse.jay" 7408 { 7409 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "%", ((node)yyVals[0 + yyTop])); 7410 } 7411 break; 7412 case 203: 7413 #line 812 "mrb_parse.jay" 7414 { 7415 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])); 7416 } 7417 break; 7418 case 204: 7419 #line 816 "mrb_parse.jay" 7420 { 7421 yyVal = call_uni_op(call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])), "-@"); 7422 } 7423 break; 7424 case 205: 7425 #line 820 "mrb_parse.jay" 7426 { 7427 yyVal = call_uni_op(call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])), "-@"); 7428 } 7429 break; 7430 case 206: 7431 #line 824 "mrb_parse.jay" 7432 { 7433 yyVal = call_uni_op(((node)yyVals[0 + yyTop]), "+@"); 7434 } 7435 break; 7436 case 207: 7437 #line 828 "mrb_parse.jay" 7438 { 7439 yyVal = call_uni_op(((node)yyVals[0 + yyTop]), "-@"); 7440 } 7441 break; 7442 case 208: 7443 #line 832 "mrb_parse.jay" 7444 { 7445 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "|", ((node)yyVals[0 + yyTop])); 7446 } 7447 break; 7448 case 209: 7449 #line 836 "mrb_parse.jay" 7450 { 7451 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "^", ((node)yyVals[0 + yyTop])); 7452 } 7453 break; 7454 case 210: 7455 #line 840 "mrb_parse.jay" 7456 { 7457 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "&", ((node)yyVals[0 + yyTop])); 7458 } 7459 break; 7460 case 211: 7461 #line 844 "mrb_parse.jay" 7462 { 7463 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<=>", ((node)yyVals[0 + yyTop])); 7464 } 7465 break; 7466 case 212: 7467 #line 848 "mrb_parse.jay" 7468 { 7469 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">", ((node)yyVals[0 + yyTop])); 7470 } 7471 break; 7472 case 213: 7473 #line 852 "mrb_parse.jay" 7474 { 7475 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">=", ((node)yyVals[0 + yyTop])); 7476 } 7477 break; 7478 case 214: 7479 #line 856 "mrb_parse.jay" 7480 { 7481 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<", ((node)yyVals[0 + yyTop])); 7482 } 7483 break; 7484 case 215: 7485 #line 860 "mrb_parse.jay" 7486 { 7487 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<=", ((node)yyVals[0 + yyTop])); 7488 } 7489 break; 7490 case 216: 7491 #line 864 "mrb_parse.jay" 7492 { 7493 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "==", ((node)yyVals[0 + yyTop])); 7494 } 7495 break; 7496 case 217: 7497 #line 868 "mrb_parse.jay" 7498 { 7499 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "===", ((node)yyVals[0 + yyTop])); 7500 } 7501 break; 7502 case 218: 7503 #line 872 "mrb_parse.jay" 7504 { 7505 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "!=", ((node)yyVals[0 + yyTop])); 7506 } 7507 break; 7508 case 219: 7509 #line 876 "mrb_parse.jay" 7510 { 7511 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "=~", ((node)yyVals[0 + yyTop])); 7512 } 7513 break; 7514 case 220: 7515 #line 880 "mrb_parse.jay" 7516 { 7517 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "!~", ((node)yyVals[0 + yyTop])); 7518 } 7519 break; 7520 case 221: 7521 #line 884 "mrb_parse.jay" 7522 { 7523 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); 7524 } 7525 break; 7526 case 222: 7527 #line 888 "mrb_parse.jay" 7528 { 7529 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "~"); 7530 } 7531 break; 7532 case 223: 7533 #line 892 "mrb_parse.jay" 7534 { 7535 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<<", ((node)yyVals[0 + yyTop])); 7536 } 7537 break; 7538 case 224: 7539 #line 896 "mrb_parse.jay" 7540 { 7541 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">>", ((node)yyVals[0 + yyTop])); 7542 } 7543 break; 7544 case 225: 7545 #line 900 "mrb_parse.jay" 7546 { 7547 yyVal = new_and(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7548 } 7549 break; 7550 case 226: 7551 #line 904 "mrb_parse.jay" 7552 { 7553 yyVal = new_or(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7554 } 7555 break; 7556 case 227: 7557 #line 908 "mrb_parse.jay" 7558 { 7559 yyVal = new_if(cond(((node)yyVals[-5 + yyTop])), ((node)yyVals[-3 + yyTop]), ((node)yyVals[0 + yyTop]), true); 7560 } 7561 break; 7562 case 228: 7563 #line 912 "mrb_parse.jay" 7564 { 7565 yyVal = ((node)yyVals[0 + yyTop]); 7566 } 7567 break; 7568 case 230: 7569 #line 919 "mrb_parse.jay" 7570 { 7571 yyVal = ((node)yyVals[-1 + yyTop]); 7572 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7573 } 7574 break; 7575 case 231: 7576 #line 924 "mrb_parse.jay" 7577 { 7578 yyVal = push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))); 7579 } 7580 break; 7581 case 232: 7582 #line 928 "mrb_parse.jay" 7583 { 7584 yyVal = cons(new_hash(((node)yyVals[-1 + yyTop])), null); 7585 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7586 } 7587 break; 7588 case 233: 7589 #line 935 "mrb_parse.jay" 7590 { 7591 yyVal = ((node)yyVals[0 + yyTop]); 7592 } 7593 break; 7594 case 234: 7595 #line 939 "mrb_parse.jay" 7596 { 7597 void_expr_error(((node)yyVals[-2 + yyTop])); 7598 void_expr_error(((node)yyVals[0 + yyTop])); 7599 yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7600 } 7601 break; 7602 case 235: 7603 #line 947 "mrb_parse.jay" 7604 { 7605 yyVal = ((node)yyVals[-1 + yyTop]); 7606 } 7607 break; 7608 case 240: 7609 #line 959 "mrb_parse.jay" 7610 { 7611 yyVal = cons(((node)yyVals[-1 + yyTop]), null); 7612 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7613 } 7614 break; 7615 case 241: 7616 #line 964 "mrb_parse.jay" 7617 { 7618 yyVal = cons(push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))), null); 7619 ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); 7620 } 7621 break; 7622 case 242: 7623 #line 969 "mrb_parse.jay" 7624 { 7625 yyVal = cons(list1(new_hash(((node)yyVals[-1 + yyTop]))), null); 7626 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7627 } 7628 break; 7629 case 243: 7630 #line 976 "mrb_parse.jay" 7631 { 7632 void_expr_error(((node)yyVals[0 + yyTop])); 7633 yyVal = cons(list1(((node)yyVals[0 + yyTop])), null); 7634 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7635 } 7636 break; 7637 case 244: 7638 #line 982 "mrb_parse.jay" 7639 { 7640 yyVal = cons(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7641 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7642 } 7643 break; 7644 case 245: 7645 #line 987 "mrb_parse.jay" 7646 { 7647 yyVal = cons(list1(new_hash(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 7648 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7649 } 7650 break; 7651 case 246: 7652 #line 992 "mrb_parse.jay" 7653 { 7654 yyVal = cons(push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 7655 ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); 7656 } 7657 break; 7658 case 247: 7659 #line 997 "mrb_parse.jay" 7660 { 7661 yyVal = cons(null, ((node)yyVals[0 + yyTop])); 7662 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7663 } 7664 break; 7665 case 248: 7666 #line 1003 "mrb_parse.jay" 7667 { 7668 yyVal = (stack_type)this.cmdarg_stack; 7669 CMDARG_PUSH(1); 7670 } 7671 break; 7672 case 249: 7673 #line 1008 "mrb_parse.jay" 7674 { 7675 this.cmdarg_stack = ((stack_type)yyVals[-1 + yyTop]); 7676 yyVal = ((node)yyVals[0 + yyTop]); 7677 } 7678 break; 7679 case 250: 7680 #line 1015 "mrb_parse.jay" 7681 { 7682 yyVal = new_block_arg((node)((node)yyVals[0 + yyTop])); 7683 } 7684 break; 7685 case 251: 7686 #line 1021 "mrb_parse.jay" 7687 { 7688 yyVal = ((node)yyVals[0 + yyTop]); 7689 } 7690 break; 7691 case 252: 7692 #line 1025 "mrb_parse.jay" 7693 { 7694 yyVal = null; 7695 } 7696 break; 7697 case 255: 7698 #line 1035 "mrb_parse.jay" 7699 { 7700 void_expr_error(((node)yyVals[0 + yyTop])); 7701 yyVal = cons(((node)yyVals[0 + yyTop]), null); 7702 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7703 } 7704 break; 7705 case 256: 7706 #line 1041 "mrb_parse.jay" 7707 { 7708 void_expr_error(((node)yyVals[0 + yyTop])); 7709 yyVal = cons(new_splat(((node)yyVals[0 + yyTop])), null); 7710 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7711 } 7712 break; 7713 case 257: 7714 #line 1047 "mrb_parse.jay" 7715 { 7716 void_expr_error(((node)yyVals[0 + yyTop])); 7717 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7718 } 7719 break; 7720 case 258: 7721 #line 1052 "mrb_parse.jay" 7722 { 7723 void_expr_error(((node)yyVals[0 + yyTop])); 7724 yyVal = push(((node)yyVals[-3 + yyTop]), new_splat(((node)yyVals[0 + yyTop]))); 7725 } 7726 break; 7727 case 259: 7728 #line 1059 "mrb_parse.jay" 7729 { 7730 void_expr_error(((node)yyVals[0 + yyTop])); 7731 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7732 } 7733 break; 7734 case 260: 7735 #line 1064 "mrb_parse.jay" 7736 { 7737 void_expr_error(((node)yyVals[0 + yyTop])); 7738 yyVal = push(((node)yyVals[-3 + yyTop]), new_splat(((node)yyVals[0 + yyTop]))); 7739 } 7740 break; 7741 case 261: 7742 #line 1069 "mrb_parse.jay" 7743 { 7744 void_expr_error(((node)yyVals[0 + yyTop])); 7745 yyVal = list1(new_splat(((node)yyVals[0 + yyTop]))); 7746 } 7747 break; 7748 case 269: 7749 #line 1083 "mrb_parse.jay" 7750 { 7751 yyVal = new_fcall(((mrb_sym)yyVals[0 + yyTop]), null); 7752 } 7753 break; 7754 case 270: 7755 #line 1087 "mrb_parse.jay" 7756 { 7757 yyVal = (stack_type)this.cmdarg_stack; 7758 this.cmdarg_stack = 0; 7759 } 7760 break; 7761 case 271: 7762 #line 1093 "mrb_parse.jay" 7763 { 7764 this.cmdarg_stack = ((stack_type)yyVals[-2 + yyTop]); 7765 yyVal = ((node)yyVals[-1 + yyTop]); 7766 } 7767 break; 7768 case 272: 7769 #line 1098 "mrb_parse.jay" 7770 { 7771 yyVal = (stack_type)this.cmdarg_stack; 7772 this.cmdarg_stack = 0; 7773 } 7774 break; 7775 case 273: 7776 #line 1102 "mrb_parse.jay" 7777 { this.lstate = mrb_lex_state_enum.EXPR_ENDARG; } 7778 break; 7779 case 274: 7780 #line 1103 "mrb_parse.jay" 7781 { 7782 this.cmdarg_stack = ((stack_type)yyVals[-3 + yyTop]); 7783 yyVal = ((node)yyVals[-2 + yyTop]); 7784 } 7785 break; 7786 case 275: 7787 #line 1107 "mrb_parse.jay" 7788 { this.lstate = mrb_lex_state_enum.EXPR_ENDARG; } 7789 break; 7790 case 276: 7791 #line 1108 "mrb_parse.jay" 7792 { 7793 yyVal = new_nil(); 7794 } 7795 break; 7796 case 277: 7797 #line 1112 "mrb_parse.jay" 7798 { 7799 yyVal = ((node)yyVals[-1 + yyTop]); 7800 } 7801 break; 7802 case 278: 7803 #line 1116 "mrb_parse.jay" 7804 { 7805 yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7806 } 7807 break; 7808 case 279: 7809 #line 1120 "mrb_parse.jay" 7810 { 7811 yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); 7812 } 7813 break; 7814 case 280: 7815 #line 1124 "mrb_parse.jay" 7816 { 7817 yyVal = new_array(((node)yyVals[-1 + yyTop])); 7818 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7819 } 7820 break; 7821 case 281: 7822 #line 1129 "mrb_parse.jay" 7823 { 7824 yyVal = new_hash(((node)yyVals[-1 + yyTop])); 7825 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7826 } 7827 break; 7828 case 282: 7829 #line 1134 "mrb_parse.jay" 7830 { 7831 yyVal = new_return(null); 7832 } 7833 break; 7834 case 283: 7835 #line 1138 "mrb_parse.jay" 7836 { 7837 yyVal = new_yield(((node)yyVals[0 + yyTop])); 7838 } 7839 break; 7840 case 284: 7841 #line 1142 "mrb_parse.jay" 7842 { 7843 yyVal = call_uni_op(cond(((node)yyVals[-1 + yyTop])), "!"); 7844 } 7845 break; 7846 case 285: 7847 #line 1146 "mrb_parse.jay" 7848 { 7849 yyVal = call_uni_op(new_nil(), "!"); 7850 } 7851 break; 7852 case 286: 7853 #line 1150 "mrb_parse.jay" 7854 { 7855 yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), cons(null, ((node)yyVals[0 + yyTop]))); 7856 } 7857 break; 7858 case 288: 7859 #line 1155 "mrb_parse.jay" 7860 { 7861 call_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7862 yyVal = ((node)yyVals[-1 + yyTop]); 7863 } 7864 break; 7865 case 289: 7866 #line 1160 "mrb_parse.jay" 7867 { 7868 local_nest(); 7869 yyVal = (int)this.lpar_beg; 7870 this.lpar_beg = ++this.paren_nest; 7871 } 7872 break; 7873 case 290: 7874 #line 1166 "mrb_parse.jay" 7875 { 7876 yyVal = (stack_type)this.cmdarg_stack; 7877 this.cmdarg_stack = 0; 7878 } 7879 break; 7880 case 291: 7881 #line 1171 "mrb_parse.jay" 7882 { 7883 this.lpar_beg = ((int)yyVals[-3 + yyTop]); 7884 yyVal = new_lambda(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7885 local_unnest(); 7886 this.cmdarg_stack = ((stack_type)yyVals[-1 + yyTop]); 7887 CMDARG_LEXPOP(); 7888 } 7889 break; 7890 case 292: 7891 #line 1182 "mrb_parse.jay" 7892 { 7893 yyVal = new_if(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 7894 ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); 7895 } 7896 break; 7897 case 293: 7898 #line 1190 "mrb_parse.jay" 7899 { 7900 yyVal = new_unless(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 7901 ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); 7902 } 7903 break; 7904 case 294: 7905 #line 1194 "mrb_parse.jay" 7906 { COND_PUSH(1); } 7907 break; 7908 case 295: 7909 #line 1194 "mrb_parse.jay" 7910 { COND_POP(); } 7911 break; 7912 case 296: 7913 #line 1197 "mrb_parse.jay" 7914 { 7915 yyVal = new_while(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-1 + yyTop])); 7916 ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); 7917 } 7918 break; 7919 case 297: 7920 #line 1201 "mrb_parse.jay" 7921 { COND_PUSH(1); } 7922 break; 7923 case 298: 7924 #line 1201 "mrb_parse.jay" 7925 { COND_POP(); } 7926 break; 7927 case 299: 7928 #line 1204 "mrb_parse.jay" 7929 { 7930 yyVal = new_until(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-1 + yyTop])); 7931 ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); 7932 } 7933 break; 7934 case 300: 7935 #line 1211 "mrb_parse.jay" 7936 { 7937 yyVal = new_case(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 7938 } 7939 break; 7940 case 301: 7941 #line 1215 "mrb_parse.jay" 7942 { 7943 yyVal = new_case(null, ((node)yyVals[-1 + yyTop])); 7944 } 7945 break; 7946 case 302: 7947 #line 1219 "mrb_parse.jay" 7948 { COND_PUSH(1); } 7949 break; 7950 case 303: 7951 #line 1221 "mrb_parse.jay" 7952 { COND_POP(); } 7953 break; 7954 case 304: 7955 #line 1224 "mrb_parse.jay" 7956 { 7957 yyVal = new_for(((node)yyVals[-7 + yyTop]), ((node)yyVals[-4 + yyTop]), ((node)yyVals[-1 + yyTop])); 7958 ((node)yyVal).SET_LINENO(((int)yyVals[-8 + yyTop])); 7959 } 7960 break; 7961 case 305: 7962 #line 1230 "mrb_parse.jay" 7963 { 7964 if (this.in_def != 0 || this.in_single != 0) 7965 yyError("class definition in method body"); 7966 yyVal = local_switch(); 7967 } 7968 break; 7969 case 306: 7970 #line 1237 "mrb_parse.jay" 7971 { 7972 yyVal = new_class(((node)yyVals[-4 + yyTop]), ((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 7973 ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); 7974 local_resume(((locals_node)yyVals[-2 + yyTop])); 7975 } 7976 break; 7977 case 307: 7978 #line 1244 "mrb_parse.jay" 7979 { 7980 yyVal = (int)this.in_def; 7981 this.in_def = 0; 7982 } 7983 break; 7984 case 308: 7985 #line 1249 "mrb_parse.jay" 7986 { 7987 yyVal = cons(local_switch(), this.in_single); 7988 this.in_single = 0; 7989 } 7990 break; 7991 case 309: 7992 #line 1255 "mrb_parse.jay" 7993 { 7994 yyVal = new_sclass(((node)yyVals[-5 + yyTop]), ((node)yyVals[-1 + yyTop])); 7995 ((node)yyVal).SET_LINENO(((int)yyVals[-7 + yyTop])); 7996 local_resume((locals_node)((node)yyVals[-2 + yyTop]).car); 7997 this.in_def = ((int)yyVals[-4 + yyTop]); 7998 this.in_single = (int)(((node)yyVals[-2 + yyTop]).cdr); 7999 } 8000 break; 8001 case 310: 8002 #line 1264 "mrb_parse.jay" 8003 { 8004 if (this.in_def != 0 || this.in_single != 0) 8005 yyError("module definition in method body"); 8006 yyVal = local_switch(); 8007 } 8008 break; 8009 case 311: 8010 #line 1271 "mrb_parse.jay" 8011 { 8012 yyVal = new_module(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 8013 ((node)yyVal).SET_LINENO(((int)yyVals[-4 + yyTop])); 8014 local_resume(((locals_node)yyVals[-2 + yyTop])); 8015 } 8016 break; 8017 case 312: 8018 #line 1277 "mrb_parse.jay" 8019 { 8020 yyVal = (stack_type)this.cmdarg_stack; 8021 this.cmdarg_stack = 0; 8022 } 8023 break; 8024 case 313: 8025 #line 1281 "mrb_parse.jay" 8026 { 8027 this.in_def++; 8028 yyVal = local_switch(); 8029 } 8030 break; 8031 case 314: 8032 #line 1288 "mrb_parse.jay" 8033 { 8034 yyVal = new_def(((mrb_sym)yyVals[-5 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 8035 ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); 8036 local_resume(((locals_node)yyVals[-3 + yyTop])); 8037 this.in_def--; 8038 this.cmdarg_stack = ((stack_type)yyVals[-4 + yyTop]); 8039 } 8040 break; 8041 case 315: 8042 #line 1296 "mrb_parse.jay" 8043 { 8044 this.lstate = mrb_lex_state_enum.EXPR_FNAME; 8045 yyVal = (stack_type)this.cmdarg_stack; 8046 this.cmdarg_stack = 0; 8047 } 8048 break; 8049 case 316: 8050 #line 1302 "mrb_parse.jay" 8051 { 8052 this.in_single++; 8053 this.lstate = mrb_lex_state_enum.EXPR_ENDFN; /* force for args */ 8054 yyVal = local_switch(); 8055 } 8056 break; 8057 case 317: 8058 #line 1310 "mrb_parse.jay" 8059 { 8060 yyVal = new_sdef(((node)yyVals[-7 + yyTop]), ((mrb_sym)yyVals[-4 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 8061 ((node)yyVal).SET_LINENO(((int)yyVals[-8 + yyTop])); 8062 local_resume(((locals_node)yyVals[-3 + yyTop])); 8063 this.in_single--; 8064 this.cmdarg_stack = ((stack_type)yyVals[-5 + yyTop]); 8065 } 8066 break; 8067 case 318: 8068 #line 1318 "mrb_parse.jay" 8069 { 8070 yyVal = new_break(null); 8071 } 8072 break; 8073 case 319: 8074 #line 1322 "mrb_parse.jay" 8075 { 8076 yyVal = new_next(null); 8077 } 8078 break; 8079 case 320: 8080 #line 1326 "mrb_parse.jay" 8081 { 8082 yyVal = new_redo(); 8083 } 8084 break; 8085 case 321: 8086 #line 1330 "mrb_parse.jay" 8087 { 8088 yyVal = new_retry(); 8089 } 8090 break; 8091 case 322: 8092 #line 1336 "mrb_parse.jay" 8093 { 8094 yyVal = ((node)yyVals[0 + yyTop]); 8095 if (yyVal == null) yyVal = new_nil(); 8096 } 8097 break; 8098 case 329: 8099 #line 1355 "mrb_parse.jay" 8100 { 8101 yyVal = new_if(cond(((node)yyVals[-3 + yyTop])), ((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8102 } 8103 break; 8104 case 331: 8105 #line 1362 "mrb_parse.jay" 8106 { 8107 yyVal = ((node)yyVals[0 + yyTop]); 8108 } 8109 break; 8110 case 332: 8111 #line 1368 "mrb_parse.jay" 8112 { 8113 yyVal = list1(list1(((node)yyVals[0 + yyTop]))); 8114 } 8115 break; 8116 case 334: 8117 #line 1375 "mrb_parse.jay" 8118 { 8119 yyVal = new_arg(((mrb_sym)yyVals[0 + yyTop])); 8120 } 8121 break; 8122 case 335: 8123 #line 1379 "mrb_parse.jay" 8124 { 8125 yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); 8126 } 8127 break; 8128 case 336: 8129 #line 1385 "mrb_parse.jay" 8130 { 8131 yyVal = list1(((node)yyVals[0 + yyTop])); 8132 } 8133 break; 8134 case 337: 8135 #line 1389 "mrb_parse.jay" 8136 { 8137 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 8138 } 8139 break; 8140 case 338: 8141 #line 1395 "mrb_parse.jay" 8142 { 8143 yyVal = list3(((node)yyVals[0 + yyTop]), null, null); 8144 } 8145 break; 8146 case 339: 8147 #line 1399 "mrb_parse.jay" 8148 { 8149 yyVal = list3(((node)yyVals[-3 + yyTop]), new_arg(((mrb_sym)yyVals[0 + yyTop])), null); 8150 } 8151 break; 8152 case 340: 8153 #line 1403 "mrb_parse.jay" 8154 { 8155 yyVal = list3(((node)yyVals[-5 + yyTop]), new_arg(((mrb_sym)yyVals[-2 + yyTop])), ((node)yyVals[0 + yyTop])); 8156 } 8157 break; 8158 case 341: 8159 #line 1407 "mrb_parse.jay" 8160 { 8161 yyVal = list3(((node)yyVals[-2 + yyTop]), -1, null); 8162 } 8163 break; 8164 case 342: 8165 #line 1411 "mrb_parse.jay" 8166 { 8167 yyVal = list3(((node)yyVals[-4 + yyTop]), -1, ((node)yyVals[0 + yyTop])); 8168 } 8169 break; 8170 case 343: 8171 #line 1415 "mrb_parse.jay" 8172 { 8173 yyVal = list3(null, new_arg(((mrb_sym)yyVals[0 + yyTop])), null); 8174 } 8175 break; 8176 case 344: 8177 #line 1419 "mrb_parse.jay" 8178 { 8179 yyVal = list3(null, new_arg(((mrb_sym)yyVals[-2 + yyTop])), ((node)yyVals[0 + yyTop])); 8180 } 8181 break; 8182 case 345: 8183 #line 1423 "mrb_parse.jay" 8184 { 8185 yyVal = list3(null, -1, null); 8186 } 8187 break; 8188 case 346: 8189 #line 1427 "mrb_parse.jay" 8190 { 8191 yyVal = list3(null, -1, ((node)yyVals[0 + yyTop])); 8192 } 8193 break; 8194 case 347: 8195 #line 1433 "mrb_parse.jay" 8196 { 8197 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8198 } 8199 break; 8200 case 348: 8201 #line 1437 "mrb_parse.jay" 8202 { 8203 yyVal = new_args(((node)yyVals[-7 + yyTop]), ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8204 } 8205 break; 8206 case 349: 8207 #line 1441 "mrb_parse.jay" 8208 { 8209 yyVal = new_args(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8210 } 8211 break; 8212 case 350: 8213 #line 1445 "mrb_parse.jay" 8214 { 8215 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8216 } 8217 break; 8218 case 351: 8219 #line 1449 "mrb_parse.jay" 8220 { 8221 yyVal = new_args(((node)yyVals[-3 + yyTop]), null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8222 } 8223 break; 8224 case 352: 8225 #line 1453 "mrb_parse.jay" 8226 { 8227 yyVal = new_args(((node)yyVals[-1 + yyTop]), null, (mrb_sym)0, null, 0); 8228 } 8229 break; 8230 case 353: 8231 #line 1457 "mrb_parse.jay" 8232 { 8233 yyVal = new_args(((node)yyVals[-5 + yyTop]), null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8234 } 8235 break; 8236 case 354: 8237 #line 1461 "mrb_parse.jay" 8238 { 8239 yyVal = new_args(((node)yyVals[-1 + yyTop]), null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8240 } 8241 break; 8242 case 355: 8243 #line 1465 "mrb_parse.jay" 8244 { 8245 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8246 } 8247 break; 8248 case 356: 8249 #line 1469 "mrb_parse.jay" 8250 { 8251 yyVal = new_args(null, ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8252 } 8253 break; 8254 case 357: 8255 #line 1473 "mrb_parse.jay" 8256 { 8257 yyVal = new_args(null, ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8258 } 8259 break; 8260 case 358: 8261 #line 1477 "mrb_parse.jay" 8262 { 8263 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8264 } 8265 break; 8266 case 359: 8267 #line 1481 "mrb_parse.jay" 8268 { 8269 yyVal = new_args(null, null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8270 } 8271 break; 8272 case 360: 8273 #line 1485 "mrb_parse.jay" 8274 { 8275 yyVal = new_args(null, null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8276 } 8277 break; 8278 case 361: 8279 #line 1489 "mrb_parse.jay" 8280 { 8281 yyVal = new_args(null, null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8282 } 8283 break; 8284 case 363: 8285 #line 1496 "mrb_parse.jay" 8286 { 8287 this.cmd_start = true; 8288 yyVal = ((node)yyVals[0 + yyTop]); 8289 } 8290 break; 8291 case 364: 8292 #line 1503 "mrb_parse.jay" 8293 { 8294 yyVal = null; 8295 } 8296 break; 8297 case 365: 8298 #line 1507 "mrb_parse.jay" 8299 { 8300 yyVal = null; 8301 } 8302 break; 8303 case 366: 8304 #line 1511 "mrb_parse.jay" 8305 { 8306 yyVal = ((node)yyVals[-2 + yyTop]); 8307 } 8308 break; 8309 case 367: 8310 #line 1518 "mrb_parse.jay" 8311 { 8312 yyVal = null; 8313 } 8314 break; 8315 case 368: 8316 #line 1522 "mrb_parse.jay" 8317 { 8318 yyVal = null; 8319 } 8320 break; 8321 case 371: 8322 #line 1532 "mrb_parse.jay" 8323 { 8324 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 8325 new_bv(((mrb_sym)yyVals[0 + yyTop])); 8326 } 8327 break; 8328 case 373: 8329 #line 1540 "mrb_parse.jay" 8330 { 8331 yyVal = ((node)yyVals[-2 + yyTop]); 8332 } 8333 break; 8334 case 374: 8335 #line 1544 "mrb_parse.jay" 8336 { 8337 yyVal = ((node)yyVals[0 + yyTop]); 8338 } 8339 break; 8340 case 375: 8341 #line 1550 "mrb_parse.jay" 8342 { 8343 yyVal = ((node)yyVals[-1 + yyTop]); 8344 } 8345 break; 8346 case 376: 8347 #line 1554 "mrb_parse.jay" 8348 { 8349 yyVal = ((node)yyVals[-1 + yyTop]); 8350 } 8351 break; 8352 case 377: 8353 #line 1560 "mrb_parse.jay" 8354 { 8355 local_nest(); 8356 } 8357 break; 8358 case 378: 8359 #line 1566 "mrb_parse.jay" 8360 { 8361 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), false); 8362 local_unnest(); 8363 } 8364 break; 8365 case 379: 8366 #line 1573 "mrb_parse.jay" 8367 { 8368 if ((node_type)((node)yyVals[-1 + yyTop]).car == node_type.NODE_YIELD) { 8369 yyError("block given to yield"); 6595 8370 } 6596 break; 6597 case 7: 6598 #line 212 "mrb_parse.jay" 6599 { 6600 yyVal = new_begin(null); 8371 else { 8372 call_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6601 8373 } 6602 break; 6603 case 9: 6604 #line 219 "mrb_parse.jay" 6605 { 6606 yyVal = local_switch(); 8374 yyVal = ((node)yyVals[-1 + yyTop]); 8375 } 8376 break; 8377 case 380: 8378 #line 1583 "mrb_parse.jay" 8379 { 8380 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); 8381 } 8382 break; 8383 case 381: 8384 #line 1587 "mrb_parse.jay" 8385 { 8386 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); 8387 call_with_block((node)yyVal, ((node)yyVals[0 + yyTop])); 8388 } 8389 break; 8390 case 382: 8391 #line 1592 "mrb_parse.jay" 8392 { 8393 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); 8394 call_with_block((node)yyVal, ((node)yyVals[0 + yyTop])); 8395 } 8396 break; 8397 case 383: 8398 #line 1599 "mrb_parse.jay" 8399 { 8400 yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8401 } 8402 break; 8403 case 384: 8404 #line 1603 "mrb_parse.jay" 8405 { 8406 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); 8407 } 8408 break; 8409 case 385: 8410 #line 1607 "mrb_parse.jay" 8411 { 8412 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); 8413 } 8414 break; 8415 case 386: 8416 #line 1611 "mrb_parse.jay" 8417 { 8418 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); 8419 } 8420 break; 8421 case 387: 8422 #line 1615 "mrb_parse.jay" 8423 { 8424 yyVal = new_call(((node)yyVals[-2 + yyTop]), intern("call", 4), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-1 + yyTop])); 8425 } 8426 break; 8427 case 388: 8428 #line 1619 "mrb_parse.jay" 8429 { 8430 yyVal = new_call(((node)yyVals[-2 + yyTop]), intern("call", 4), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); 8431 } 8432 break; 8433 case 389: 8434 #line 1623 "mrb_parse.jay" 8435 { 8436 yyVal = new_super(((node)yyVals[0 + yyTop])); 8437 } 8438 break; 8439 case 390: 8440 #line 1627 "mrb_parse.jay" 8441 { 8442 yyVal = new_zsuper(); 8443 } 8444 break; 8445 case 391: 8446 #line 1631 "mrb_parse.jay" 8447 { 8448 yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); 8449 } 8450 break; 8451 case 392: 8452 #line 1637 "mrb_parse.jay" 8453 { 8454 local_nest(); 8455 yyVal = (int)this.lineno; 8456 } 8457 break; 8458 case 393: 8459 #line 1643 "mrb_parse.jay" 8460 { 8461 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), true); 8462 ((node)yyVal).SET_LINENO(((int)yyVals[-3 + yyTop])); 8463 local_unnest(); 8464 } 8465 break; 8466 case 394: 8467 #line 1649 "mrb_parse.jay" 8468 { 8469 local_nest(); 8470 yyVal = (int)this.lineno; 8471 } 8472 break; 8473 case 395: 8474 #line 1655 "mrb_parse.jay" 8475 { 8476 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), false); 8477 ((node)yyVal).SET_LINENO(((int)yyVals[-3 + yyTop])); 8478 local_unnest(); 8479 } 8480 break; 8481 case 396: 8482 #line 1665 "mrb_parse.jay" 8483 { 8484 yyVal = cons(cons(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])), ((node)yyVals[0 + yyTop])); 8485 } 8486 break; 8487 case 397: 8488 #line 1671 "mrb_parse.jay" 8489 { 8490 if (((node)yyVals[0 + yyTop]) != null) { 8491 yyVal = cons(cons(null, ((node)yyVals[0 + yyTop])), null); 6607 8492 } 6608 break; 6609 case 10: 6610 #line 223 "mrb_parse.jay" 6611 { 6612 yyError("BEGIN not supported"); 6613 local_resume(((locals_node)yyVals[-3 + yyTop])); 8493 else { 6614 8494 yyVal = null; 6615 8495 } 6616 break; 6617 case 11: 6618 #line 234 "mrb_parse.jay" 6619 { 6620 if (((node)yyVals[-2 + yyTop]) != null) { 6621 yyVal = new_rescue(((node)yyVals[-3 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 6622 ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); 6623 } 6624 else if (((node)yyVals[-1 + yyTop]) != null) { 6625 yyWarning("else without rescue is useless"); 6626 yyVal = push(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 6627 } 6628 else { 6629 yyVal = ((node)yyVals[-3 + yyTop]); 6630 } 6631 if (((node)yyVals[0 + yyTop]) != null) { 6632 if (yyVal != null) { 6633 yyVal = new_ensure(((node)yyVal), ((node)yyVals[0 + yyTop])); 6634 } 6635 else { 6636 yyVal = push(((node)yyVals[0 + yyTop]), new_nil()); 6637 } 8496 } 8497 break; 8498 case 399: 8499 #line 1685 "mrb_parse.jay" 8500 { 8501 yyVal = list1(list3(((node)yyVals[-4 + yyTop]), ((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]))); 8502 if (((node)yyVals[0 + yyTop]) != null) yyVal = append(((node)yyVal), ((node)yyVals[0 + yyTop])); 8503 } 8504 break; 8505 case 401: 8506 #line 1693 "mrb_parse.jay" 8507 { 8508 yyVal = list1(((node)yyVals[0 + yyTop])); 8509 } 8510 break; 8511 case 404: 8512 #line 1701 "mrb_parse.jay" 8513 { 8514 yyVal = ((node)yyVals[0 + yyTop]); 8515 } 8516 break; 8517 case 406: 8518 #line 1708 "mrb_parse.jay" 8519 { 8520 yyVal = ((node)yyVals[0 + yyTop]); 8521 } 8522 break; 8523 case 414: 8524 #line 1723 "mrb_parse.jay" 8525 { 8526 yyVal = ((node)yyVals[0 + yyTop]); 8527 } 8528 break; 8529 case 415: 8530 #line 1727 "mrb_parse.jay" 8531 { 8532 yyVal = new_dstr(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8533 } 8534 break; 8535 case 417: 8536 #line 1734 "mrb_parse.jay" 8537 { 8538 yyVal = append(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8539 } 8540 break; 8541 case 418: 8542 #line 1740 "mrb_parse.jay" 8543 { 8544 yyVal = list1(((node)yyVals[0 + yyTop])); 8545 } 8546 break; 8547 case 419: 8548 #line 1744 "mrb_parse.jay" 8549 { 8550 yyVal = (node)this.lex_strterm; 8551 this.lex_strterm = null; 8552 } 8553 break; 8554 case 420: 8555 #line 1750 "mrb_parse.jay" 8556 { 8557 this.lex_strterm = ((node)yyVals[-2 + yyTop]); 8558 yyVal = list2(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 8559 } 8560 break; 8561 case 421: 8562 #line 1755 "mrb_parse.jay" 8563 { 8564 yyVal = list1(new_literal_delim()); 8565 } 8566 break; 8567 case 422: 8568 #line 1759 "mrb_parse.jay" 8569 { 8570 yyVal = list1(new_literal_delim()); 8571 } 8572 break; 8573 case 423: 8574 #line 1765 "mrb_parse.jay" 8575 { 8576 yyVal = ((node)yyVals[0 + yyTop]); 8577 } 8578 break; 8579 case 424: 8580 #line 1769 "mrb_parse.jay" 8581 { 8582 yyVal = new_dxstr(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8583 } 8584 break; 8585 case 425: 8586 #line 1775 "mrb_parse.jay" 8587 { 8588 yyVal = ((node)yyVals[0 + yyTop]); 8589 } 8590 break; 8591 case 426: 8592 #line 1779 "mrb_parse.jay" 8593 { 8594 yyVal = new_dregx(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8595 } 8596 break; 8597 case 430: 8598 #line 1792 "mrb_parse.jay" 8599 { 8600 parser_heredoc_info inf = parsing_heredoc_inf(); 8601 inf.push_doc(new_str(new Uint8Array(0), 0)); 8602 heredoc_end(); 8603 } 8604 break; 8605 case 431: 8606 #line 1798 "mrb_parse.jay" 8607 { 8608 heredoc_end(); 8609 } 8610 break; 8611 case 434: 8612 #line 1808 "mrb_parse.jay" 8613 { 8614 parser_heredoc_info inf = parsing_heredoc_inf(); 8615 inf.push_doc(((node)yyVals[0 + yyTop])); 8616 heredoc_treat_nextline(); 8617 } 8618 break; 8619 case 435: 8620 #line 1814 "mrb_parse.jay" 8621 { 8622 yyVal = (node)this.lex_strterm; 8623 this.lex_strterm = null; 8624 } 8625 break; 8626 case 436: 8627 #line 1820 "mrb_parse.jay" 8628 { 8629 parser_heredoc_info inf = parsing_heredoc_inf(); 8630 this.lex_strterm = ((node)yyVals[-2 + yyTop]); 8631 inf.push_doc(((node)yyVals[-3 + yyTop])); 8632 inf.push_doc(((node)yyVals[-1 + yyTop])); 8633 } 8634 break; 8635 case 437: 8636 #line 1829 "mrb_parse.jay" 8637 { 8638 yyVal = new_words(list1(((node)yyVals[0 + yyTop]))); 8639 } 8640 break; 8641 case 438: 8642 #line 1833 "mrb_parse.jay" 8643 { 8644 yyVal = new_words(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8645 } 8646 break; 8647 case 439: 8648 #line 1840 "mrb_parse.jay" 8649 { 8650 yyVal = new_sym(((mrb_sym)yyVals[0 + yyTop])); 8651 } 8652 break; 8653 case 440: 8654 #line 1844 "mrb_parse.jay" 8655 { 8656 this.lstate = mrb_lex_state_enum.EXPR_END; 8657 yyVal = new_dsym(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8658 } 8659 break; 8660 case 441: 8661 #line 1851 "mrb_parse.jay" 8662 { 8663 this.lstate = mrb_lex_state_enum.EXPR_END; 8664 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 8665 } 8666 break; 8667 case 446: 8668 #line 1862 "mrb_parse.jay" 8669 { 8670 yyVal = new_strsym(((node)yyVals[0 + yyTop])); 8671 } 8672 break; 8673 case 447: 8674 #line 1866 "mrb_parse.jay" 8675 { 8676 yyVal = new_strsym(((node)yyVals[0 + yyTop])); 8677 } 8678 break; 8679 case 448: 8680 #line 1872 "mrb_parse.jay" 8681 { 8682 yyVal = new_symbols(list1(((node)yyVals[0 + yyTop]))); 8683 } 8684 break; 8685 case 449: 8686 #line 1876 "mrb_parse.jay" 8687 { 8688 yyVal = new_symbols(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8689 } 8690 break; 8691 case 452: 8692 #line 1884 "mrb_parse.jay" 8693 { 8694 yyVal = negate_lit(((node)yyVals[0 + yyTop])); 8695 } 8696 break; 8697 case 453: 8698 #line 1888 "mrb_parse.jay" 8699 { 8700 yyVal = negate_lit(((node)yyVals[0 + yyTop])); 8701 } 8702 break; 8703 case 454: 8704 #line 1894 "mrb_parse.jay" 8705 { 8706 yyVal = new_lvar(((mrb_sym)yyVals[0 + yyTop])); 8707 } 8708 break; 8709 case 455: 8710 #line 1898 "mrb_parse.jay" 8711 { 8712 yyVal = new_ivar(((mrb_sym)yyVals[0 + yyTop])); 8713 } 8714 break; 8715 case 456: 8716 #line 1902 "mrb_parse.jay" 8717 { 8718 yyVal = new_gvar(((mrb_sym)yyVals[0 + yyTop])); 8719 } 8720 break; 8721 case 457: 8722 #line 1906 "mrb_parse.jay" 8723 { 8724 yyVal = new_cvar(((mrb_sym)yyVals[0 + yyTop])); 8725 } 8726 break; 8727 case 458: 8728 #line 1910 "mrb_parse.jay" 8729 { 8730 yyVal = new_const(((mrb_sym)yyVals[0 + yyTop])); 8731 } 8732 break; 8733 case 459: 8734 #line 1916 "mrb_parse.jay" 8735 { 8736 assignable(((node)yyVals[0 + yyTop])); 8737 } 8738 break; 8739 case 460: 8740 #line 1922 "mrb_parse.jay" 8741 { 8742 yyVal = var_reference(((node)yyVals[0 + yyTop])); 8743 } 8744 break; 8745 case 461: 8746 #line 1926 "mrb_parse.jay" 8747 { 8748 yyVal = new_nil(); 8749 } 8750 break; 8751 case 462: 8752 #line 1930 "mrb_parse.jay" 8753 { 8754 yyVal = new_self(); 8755 } 8756 break; 8757 case 463: 8758 #line 1934 "mrb_parse.jay" 8759 { 8760 yyVal = new_true(); 8761 } 8762 break; 8763 case 464: 8764 #line 1938 "mrb_parse.jay" 8765 { 8766 yyVal = new_false(); 8767 } 8768 break; 8769 case 465: 8770 #line 1942 "mrb_parse.jay" 8771 { 8772 if (this.filename == null) { 8773 this.mrb_parser_set_filename("(null)"); 8774 } 8775 yyVal = new_filename(this.filename); 8776 } 8777 break; 8778 case 466: 8779 #line 1949 "mrb_parse.jay" 8780 { 8781 yyVal = new_lineno(this.lineno); 8782 } 8783 break; 8784 case 469: 8785 #line 1959 "mrb_parse.jay" 8786 { 8787 yyVal = null; 8788 } 8789 break; 8790 case 470: 8791 #line 1963 "mrb_parse.jay" 8792 { 8793 this.lstate = mrb_lex_state_enum.EXPR_BEG; 8794 this.cmd_start = true; 8795 } 8796 break; 8797 case 471: 8798 #line 1968 "mrb_parse.jay" 8799 { 8800 yyVal = ((node)yyVals[-1 + yyTop]); 8801 } 8802 break; 8803 case 472: 8804 #line 1979 "mrb_parse.jay" 8805 { 8806 yyVal = ((node)yyVals[-1 + yyTop]); 8807 this.lstate = mrb_lex_state_enum.EXPR_BEG; 8808 this.cmd_start = true; 8809 } 8810 break; 8811 case 473: 8812 #line 1985 "mrb_parse.jay" 8813 { 8814 yyVal = ((node)yyVals[-1 + yyTop]); 8815 } 8816 break; 8817 case 474: 8818 #line 1991 "mrb_parse.jay" 8819 { 8820 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8821 } 8822 break; 8823 case 475: 8824 #line 1995 "mrb_parse.jay" 8825 { 8826 yyVal = new_args(((node)yyVals[-7 + yyTop]), ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8827 } 8828 break; 8829 case 476: 8830 #line 1999 "mrb_parse.jay" 8831 { 8832 yyVal = new_args(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8833 } 8834 break; 8835 case 477: 8836 #line 2003 "mrb_parse.jay" 8837 { 8838 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8839 } 8840 break; 8841 case 478: 8842 #line 2007 "mrb_parse.jay" 8843 { 8844 yyVal = new_args(((node)yyVals[-3 + yyTop]), null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8845 } 8846 break; 8847 case 479: 8848 #line 2011 "mrb_parse.jay" 8849 { 8850 yyVal = new_args(((node)yyVals[-5 + yyTop]), null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8851 } 8852 break; 8853 case 480: 8854 #line 2015 "mrb_parse.jay" 8855 { 8856 yyVal = new_args(((node)yyVals[-1 + yyTop]), null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8857 } 8858 break; 8859 case 481: 8860 #line 2019 "mrb_parse.jay" 8861 { 8862 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8863 } 8864 break; 8865 case 482: 8866 #line 2023 "mrb_parse.jay" 8867 { 8868 yyVal = new_args(null, ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8869 } 8870 break; 8871 case 483: 8872 #line 2027 "mrb_parse.jay" 8873 { 8874 yyVal = new_args(null, ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8875 } 8876 break; 8877 case 484: 8878 #line 2031 "mrb_parse.jay" 8879 { 8880 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8881 } 8882 break; 8883 case 485: 8884 #line 2035 "mrb_parse.jay" 8885 { 8886 yyVal = new_args(null, null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8887 } 8888 break; 8889 case 486: 8890 #line 2039 "mrb_parse.jay" 8891 { 8892 yyVal = new_args(null, null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8893 } 8894 break; 8895 case 487: 8896 #line 2043 "mrb_parse.jay" 8897 { 8898 yyVal = new_args(null, null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8899 } 8900 break; 8901 case 488: 8902 #line 2047 "mrb_parse.jay" 8903 { 8904 local_add_f(0); 8905 yyVal = new_args(null, null, 0, null, 0); 8906 } 8907 break; 8908 case 489: 8909 #line 2054 "mrb_parse.jay" 8910 { 8911 yyError("formal argument cannot be a constant"); 8912 yyVal = null; 8913 } 8914 break; 8915 case 490: 8916 #line 2059 "mrb_parse.jay" 8917 { 8918 yyError("formal argument cannot be an instance variable"); 8919 yyVal = null; 8920 } 8921 break; 8922 case 491: 8923 #line 2064 "mrb_parse.jay" 8924 { 8925 yyError("formal argument cannot be a global variable"); 8926 yyVal = null; 8927 } 8928 break; 8929 case 492: 8930 #line 2069 "mrb_parse.jay" 8931 { 8932 yyError("formal argument cannot be a class variable"); 8933 yyVal = null; 8934 } 8935 break; 8936 case 493: 8937 #line 2076 "mrb_parse.jay" 8938 { 8939 yyVal = null; 8940 } 8941 break; 8942 case 494: 8943 #line 2080 "mrb_parse.jay" 8944 { 8945 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 8946 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 8947 } 8948 break; 8949 case 495: 8950 #line 2087 "mrb_parse.jay" 8951 { 8952 yyVal = new_arg(((mrb_sym)yyVals[0 + yyTop])); 8953 } 8954 break; 8955 case 496: 8956 #line 2091 "mrb_parse.jay" 8957 { 8958 yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); 8959 } 8960 break; 8961 case 497: 8962 #line 2097 "mrb_parse.jay" 8963 { 8964 yyVal = list1(((node)yyVals[0 + yyTop])); 8965 } 8966 break; 8967 case 498: 8968 #line 2101 "mrb_parse.jay" 8969 { 8970 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 8971 } 8972 break; 8973 case 499: 8974 #line 2107 "mrb_parse.jay" 8975 { 8976 local_add_f(((mrb_sym)yyVals[-1 + yyTop])); 8977 yyVal = ((mrb_sym)yyVals[-1 + yyTop]); 8978 } 8979 break; 8980 case 500: 8981 #line 2114 "mrb_parse.jay" 8982 { 8983 void_expr_error(((node)yyVals[0 + yyTop])); 8984 yyVal = cons(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8985 } 8986 break; 8987 case 501: 8988 #line 2121 "mrb_parse.jay" 8989 { 8990 void_expr_error(((node)yyVals[0 + yyTop])); 8991 yyVal = cons(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8992 } 8993 break; 8994 case 502: 8995 #line 2128 "mrb_parse.jay" 8996 { 8997 yyVal = list1(((node)yyVals[0 + yyTop])); 8998 } 8999 break; 9000 case 503: 9001 #line 2132 "mrb_parse.jay" 9002 { 9003 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 9004 } 9005 break; 9006 case 504: 9007 #line 2138 "mrb_parse.jay" 9008 { 9009 yyVal = list1(((node)yyVals[0 + yyTop])); 9010 } 9011 break; 9012 case 505: 9013 #line 2142 "mrb_parse.jay" 9014 { 9015 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 9016 } 9017 break; 9018 case 508: 9019 #line 2152 "mrb_parse.jay" 9020 { 9021 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 9022 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 9023 } 9024 break; 9025 case 509: 9026 #line 2157 "mrb_parse.jay" 9027 { 9028 local_add_f(0); 9029 yyVal = -1; 9030 } 9031 break; 9032 case 512: 9033 #line 2168 "mrb_parse.jay" 9034 { 9035 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 9036 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 9037 } 9038 break; 9039 case 513: 9040 #line 2175 "mrb_parse.jay" 9041 { 9042 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 9043 } 9044 break; 9045 case 514: 9046 #line 2179 "mrb_parse.jay" 9047 { 9048 local_add_f(0); 9049 yyVal = 0; 9050 } 9051 break; 9052 case 515: 9053 #line 2186 "mrb_parse.jay" 9054 { 9055 yyVal = ((node)yyVals[0 + yyTop]); 9056 if (yyVal == null) yyVal = new_nil(); 9057 } 9058 break; 9059 case 516: 9060 #line 2190 "mrb_parse.jay" 9061 { this.lstate = mrb_lex_state_enum.EXPR_BEG; } 9062 break; 9063 case 517: 9064 #line 2191 "mrb_parse.jay" 9065 { 9066 if (((int)yyVals[-1 + yyTop]) == 0) { 9067 yyError("can't define singleton method for ()."); 9068 } 9069 else { 9070 switch ((node_type)(((node)yyVals[-1 + yyTop]).car)) { 9071 case node_type.NODE_STR: 9072 case node_type.NODE_DSTR: 9073 case node_type.NODE_XSTR: 9074 case node_type.NODE_DXSTR: 9075 case node_type.NODE_DREGX: 9076 case node_type.NODE_MATCH: 9077 case node_type.NODE_FLOAT: 9078 case node_type.NODE_ARRAY: 9079 case node_type.NODE_HEREDOC: 9080 yyError("can't define singleton method for literals"); 9081 break; 9082 default: 9083 break; 6638 9084 } 6639 9085 } 6640 break; 6641 case 12: 6642 #line 258 "mrb_parse.jay" 6643 { 6644 yyVal = ((node)yyVals[-1 + yyTop]); 6645 } 6646 break; 6647 case 13: 6648 #line 264 "mrb_parse.jay" 6649 { 6650 yyVal = new_begin(null); 6651 } 6652 break; 6653 case 14: 6654 #line 268 "mrb_parse.jay" 6655 { 6656 yyVal = new_begin(((node)yyVals[0 + yyTop])); 6657 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 6658 } 6659 break; 6660 case 15: 6661 #line 273 "mrb_parse.jay" 6662 { 6663 yyVal = push(((node)yyVals[-2 + yyTop]), newline_node(((node)yyVals[0 + yyTop]))); 6664 } 6665 break; 6666 case 16: 6667 #line 277 "mrb_parse.jay" 6668 { 6669 yyVal = new_begin(((node)yyVals[0 + yyTop])); 6670 } 6671 break; 6672 case 17: 6673 #line 282 "mrb_parse.jay" 6674 { this.lstate = mrb_lex_state_enum.EXPR_FNAME; } 6675 break; 6676 case 18: 6677 #line 283 "mrb_parse.jay" 6678 { 6679 yyVal = new_alias(((mrb_sym)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 6680 } 6681 break; 6682 case 19: 6683 #line 287 "mrb_parse.jay" 6684 { 6685 yyVal = ((node)yyVals[0 + yyTop]); 6686 } 6687 break; 6688 case 20: 6689 #line 291 "mrb_parse.jay" 6690 { 6691 yyVal = new_if(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop]), null); 6692 } 6693 break; 6694 case 21: 6695 #line 295 "mrb_parse.jay" 6696 { 6697 yyVal = new_unless(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop]), null); 6698 } 6699 break; 6700 case 22: 6701 #line 299 "mrb_parse.jay" 6702 { 6703 yyVal = new_while(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop])); 6704 } 6705 break; 6706 case 23: 6707 #line 303 "mrb_parse.jay" 6708 { 6709 yyVal = new_until(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop])); 6710 } 6711 break; 6712 case 24: 6713 #line 307 "mrb_parse.jay" 6714 { 6715 yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6716 } 6717 break; 6718 case 25: 6719 #line 311 "mrb_parse.jay" 6720 { 6721 yyError("END not supported"); 6722 yyVal = new_postexe(((node)yyVals[-1 + yyTop])); 6723 } 6724 break; 6725 case 27: 6726 #line 317 "mrb_parse.jay" 6727 { 6728 yyVal = new_masgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6729 } 6730 break; 6731 case 28: 6732 #line 321 "mrb_parse.jay" 6733 { 6734 yyVal = new_asgn(((node)yyVals[-2 + yyTop]), new_array(((node)yyVals[0 + yyTop]))); 6735 } 6736 break; 6737 case 29: 6738 #line 325 "mrb_parse.jay" 6739 { 6740 yyVal = new_masgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6741 } 6742 break; 6743 case 30: 6744 #line 329 "mrb_parse.jay" 6745 { 6746 yyVal = new_masgn(((node)yyVals[-2 + yyTop]), new_array(((node)yyVals[0 + yyTop]))); 6747 } 6748 break; 6749 case 32: 6750 #line 336 "mrb_parse.jay" 6751 { 6752 yyVal = new_asgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6753 } 6754 break; 6755 case 33: 6756 #line 340 "mrb_parse.jay" 6757 { 6758 yyVal = new_op_asgn(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6759 } 6760 break; 6761 case 34: 6762 #line 344 "mrb_parse.jay" 6763 { 6764 yyVal = new_op_asgn(new_call(((node)yyVals[-5 + yyTop]), intern("[]", 2), ((node)yyVals[-3 + yyTop]), (MrbTokens)'.'), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6765 } 6766 break; 6767 case 35: 6768 #line 348 "mrb_parse.jay" 6769 { 6770 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6771 } 6772 break; 6773 case 36: 6774 #line 352 "mrb_parse.jay" 6775 { 6776 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6777 } 6778 break; 6779 case 37: 6780 #line 356 "mrb_parse.jay" 6781 { 6782 yyError("constant re-assignment"); 6783 yyVal = null; 6784 } 6785 break; 6786 case 38: 6787 #line 361 "mrb_parse.jay" 6788 { 6789 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, MrbTokens.tCOLON2), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6790 } 6791 break; 6792 case 39: 6793 #line 365 "mrb_parse.jay" 6794 { 6795 backref_error(((node)yyVals[-2 + yyTop])); 6796 yyVal = new_begin(null); 6797 } 6798 break; 6799 case 41: 6800 #line 373 "mrb_parse.jay" 6801 { 6802 yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6803 } 6804 break; 6805 case 44: 6806 #line 382 "mrb_parse.jay" 6807 { 6808 yyVal = new_and(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6809 } 6810 break; 6811 case 45: 6812 #line 386 "mrb_parse.jay" 6813 { 6814 yyVal = new_or(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6815 } 6816 break; 6817 case 46: 6818 #line 390 "mrb_parse.jay" 6819 { 6820 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); 6821 } 6822 break; 6823 case 47: 6824 #line 394 "mrb_parse.jay" 6825 { 6826 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); 6827 } 6828 break; 6829 case 49: 6830 #line 401 "mrb_parse.jay" 6831 { 6832 if (((node)yyVals[0 + yyTop]) == null) yyVal = new_nil(); 6833 else { 6834 void_expr_error(((node)yyVals[0 + yyTop])); 6835 yyVal = ((node)yyVals[0 + yyTop]); 6836 } 6837 } 6838 break; 6839 case 54: 6840 #line 419 "mrb_parse.jay" 6841 { 6842 local_nest(); 6843 } 6844 break; 6845 case 55: 6846 #line 425 "mrb_parse.jay" 6847 { 6848 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), true); 6849 local_unnest(); 6850 } 6851 break; 6852 case 56: 6853 #line 432 "mrb_parse.jay" 6854 { 6855 yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6856 } 6857 break; 6858 case 57: 6859 #line 436 "mrb_parse.jay" 6860 { 6861 args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6862 yyVal = new_fcall(((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 6863 } 6864 break; 6865 case 58: 6866 #line 441 "mrb_parse.jay" 6867 { 6868 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); 6869 } 6870 break; 6871 case 59: 6872 #line 445 "mrb_parse.jay" 6873 { 6874 args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6875 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); 6876 } 6877 break; 6878 case 60: 6879 #line 450 "mrb_parse.jay" 6880 { 6881 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); 6882 } 6883 break; 6884 case 61: 6885 #line 454 "mrb_parse.jay" 6886 { 6887 args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 6888 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), MrbTokens.tCOLON2); 6889 } 6890 break; 6891 case 62: 6892 #line 459 "mrb_parse.jay" 6893 { 6894 yyVal = new_super(((node)yyVals[0 + yyTop])); 6895 } 6896 break; 6897 case 63: 6898 #line 463 "mrb_parse.jay" 6899 { 6900 yyVal = new_yield(((node)yyVals[0 + yyTop])); 6901 } 6902 break; 6903 case 64: 6904 #line 467 "mrb_parse.jay" 6905 { 6906 yyVal = new_return(ret_args(((node)yyVals[0 + yyTop]))); 6907 } 6908 break; 6909 case 65: 6910 #line 471 "mrb_parse.jay" 6911 { 6912 yyVal = new_break(ret_args(((node)yyVals[0 + yyTop]))); 6913 } 6914 break; 6915 case 66: 6916 #line 475 "mrb_parse.jay" 6917 { 6918 yyVal = new_next(ret_args(((node)yyVals[0 + yyTop]))); 6919 } 6920 break; 6921 case 67: 6922 #line 481 "mrb_parse.jay" 6923 { 6924 yyVal = ((node)yyVals[0 + yyTop]); 6925 } 6926 break; 6927 case 68: 6928 #line 485 "mrb_parse.jay" 6929 { 6930 yyVal = ((node)yyVals[-1 + yyTop]); 6931 } 6932 break; 6933 case 70: 6934 #line 492 "mrb_parse.jay" 6935 { 6936 yyVal = ((node)yyVals[-1 + yyTop]); 6937 } 6938 break; 6939 case 71: 6940 #line 498 "mrb_parse.jay" 6941 { 6942 yyVal = list1(((node)yyVals[0 + yyTop])); 6943 } 6944 break; 6945 case 72: 6946 #line 502 "mrb_parse.jay" 6947 { 6948 yyVal = list1(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 6949 } 6950 break; 6951 case 73: 6952 #line 506 "mrb_parse.jay" 6953 { 6954 yyVal = list2(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6955 } 6956 break; 6957 case 74: 6958 #line 510 "mrb_parse.jay" 6959 { 6960 yyVal = list3(((node)yyVals[-4 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6961 } 6962 break; 6963 case 75: 6964 #line 514 "mrb_parse.jay" 6965 { 6966 yyVal = list2(((node)yyVals[-1 + yyTop]), new_nil()); 6967 } 6968 break; 6969 case 76: 6970 #line 518 "mrb_parse.jay" 6971 { 6972 yyVal = list3(((node)yyVals[-3 + yyTop]), new_nil(), ((node)yyVals[0 + yyTop])); 6973 } 6974 break; 6975 case 77: 6976 #line 522 "mrb_parse.jay" 6977 { 6978 yyVal = list2(null, ((node)yyVals[0 + yyTop])); 6979 } 6980 break; 6981 case 78: 6982 #line 526 "mrb_parse.jay" 6983 { 6984 yyVal = list3(null, ((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 6985 } 6986 break; 6987 case 79: 6988 #line 530 "mrb_parse.jay" 6989 { 6990 yyVal = list2(null, new_nil()); 6991 } 6992 break; 6993 case 80: 6994 #line 534 "mrb_parse.jay" 6995 { 6996 yyVal = list3(null, new_nil(), ((node)yyVals[0 + yyTop])); 6997 } 6998 break; 6999 case 82: 7000 #line 541 "mrb_parse.jay" 7001 { 7002 yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); 7003 } 7004 break; 7005 case 83: 7006 #line 547 "mrb_parse.jay" 7007 { 7008 yyVal = list1(((node)yyVals[-1 + yyTop])); 7009 } 7010 break; 7011 case 84: 7012 #line 551 "mrb_parse.jay" 7013 { 7014 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 7015 } 7016 break; 7017 case 85: 7018 #line 557 "mrb_parse.jay" 7019 { 7020 yyVal = list1(((node)yyVals[0 + yyTop])); 7021 } 7022 break; 7023 case 86: 7024 #line 561 "mrb_parse.jay" 7025 { 7026 yyVal = push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7027 } 7028 break; 7029 case 87: 7030 #line 567 "mrb_parse.jay" 7031 { 7032 assignable(((node)yyVals[0 + yyTop])); 7033 } 7034 break; 7035 case 88: 7036 #line 571 "mrb_parse.jay" 7037 { 7038 yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); 7039 } 7040 break; 7041 case 89: 7042 #line 575 "mrb_parse.jay" 7043 { 7044 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7045 } 7046 break; 7047 case 90: 7048 #line 579 "mrb_parse.jay" 7049 { 7050 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); 7051 } 7052 break; 7053 case 91: 7054 #line 583 "mrb_parse.jay" 7055 { 7056 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7057 } 7058 break; 7059 case 92: 7060 #line 587 "mrb_parse.jay" 7061 { 7062 if (this.in_def != 0 || this.in_single != 0) 7063 yyError("dynamic constant assignment"); 7064 yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7065 } 7066 break; 7067 case 93: 7068 #line 593 "mrb_parse.jay" 7069 { 7070 if (this.in_def != 0 || this.in_single != 0) 7071 yyError("dynamic constant assignment"); 7072 yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); 7073 } 7074 break; 7075 case 94: 7076 #line 599 "mrb_parse.jay" 7077 { 7078 backref_error(((node)yyVals[0 + yyTop])); 7079 yyVal = null; 7080 } 7081 break; 7082 case 95: 7083 #line 606 "mrb_parse.jay" 7084 { 7085 assignable(((node)yyVals[0 + yyTop])); 7086 } 7087 break; 7088 case 96: 7089 #line 610 "mrb_parse.jay" 7090 { 7091 yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); 7092 } 7093 break; 7094 case 97: 7095 #line 614 "mrb_parse.jay" 7096 { 7097 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7098 } 7099 break; 7100 case 98: 7101 #line 618 "mrb_parse.jay" 7102 { 7103 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); 7104 } 7105 break; 7106 case 99: 7107 #line 622 "mrb_parse.jay" 7108 { 7109 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); 7110 } 7111 break; 7112 case 100: 7113 #line 626 "mrb_parse.jay" 7114 { 7115 if (this.in_def != 0 || this.in_single != 0) 7116 yyError("dynamic constant assignment"); 7117 yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7118 } 7119 break; 7120 case 101: 7121 #line 632 "mrb_parse.jay" 7122 { 7123 if (this.in_def != 0 || this.in_single != 0) 7124 yyError("dynamic constant assignment"); 7125 yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); 7126 } 7127 break; 7128 case 102: 7129 #line 638 "mrb_parse.jay" 7130 { 7131 backref_error(((node)yyVals[0 + yyTop])); 7132 yyVal = null; 7133 } 7134 break; 7135 case 103: 7136 #line 645 "mrb_parse.jay" 7137 { 7138 yyError("class/module name must be CONSTANT"); 7139 } 7140 break; 7141 case 105: 7142 #line 652 "mrb_parse.jay" 7143 { 7144 yyVal = cons(1, ((mrb_sym)yyVals[0 + yyTop])); 7145 } 7146 break; 7147 case 106: 7148 #line 656 "mrb_parse.jay" 7149 { 7150 yyVal = cons(0, ((mrb_sym)yyVals[0 + yyTop])); 7151 } 7152 break; 7153 case 107: 7154 #line 660 "mrb_parse.jay" 7155 { 7156 yyVal = cons(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7157 } 7158 break; 7159 case 111: 7160 #line 669 "mrb_parse.jay" 7161 { 7162 this.lstate = mrb_lex_state_enum.EXPR_ENDFN; 7163 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 7164 } 7165 break; 7166 case 112: 7167 #line 674 "mrb_parse.jay" 7168 { 7169 this.lstate = mrb_lex_state_enum.EXPR_ENDFN; 7170 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 7171 } 7172 break; 7173 case 115: 7174 #line 685 "mrb_parse.jay" 7175 { 7176 yyVal = new_undef(((mrb_sym)yyVals[0 + yyTop])); 7177 } 7178 break; 7179 case 116: 7180 #line 688 "mrb_parse.jay" 7181 { this.lstate = mrb_lex_state_enum.EXPR_FNAME; } 7182 break; 7183 case 117: 7184 #line 689 "mrb_parse.jay" 7185 { 7186 yyVal = push(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7187 } 7188 break; 7189 case 118: 7190 #line 694 "mrb_parse.jay" 7191 { yyVal = intern_c('|'); } 7192 break; 7193 case 119: 7194 #line 695 "mrb_parse.jay" 7195 { yyVal = intern_c('^'); } 7196 break; 7197 case 120: 7198 #line 696 "mrb_parse.jay" 7199 { yyVal = intern_c('&'); } 7200 break; 7201 case 121: 7202 #line 697 "mrb_parse.jay" 7203 { yyVal = intern("<=>", 3); } 7204 break; 7205 case 122: 7206 #line 698 "mrb_parse.jay" 7207 { yyVal = intern("==", 2); } 7208 break; 7209 case 123: 7210 #line 699 "mrb_parse.jay" 7211 { yyVal = intern("===", 3); } 7212 break; 7213 case 124: 7214 #line 700 "mrb_parse.jay" 7215 { yyVal = intern("=~", 2); } 7216 break; 7217 case 125: 7218 #line 701 "mrb_parse.jay" 7219 { yyVal = intern("!~", 2); } 7220 break; 7221 case 126: 7222 #line 702 "mrb_parse.jay" 7223 { yyVal = intern_c('>'); } 7224 break; 7225 case 127: 7226 #line 703 "mrb_parse.jay" 7227 { yyVal = intern(">=", 2); } 7228 break; 7229 case 128: 7230 #line 704 "mrb_parse.jay" 7231 { yyVal = intern_c('<'); } 7232 break; 7233 case 129: 7234 #line 705 "mrb_parse.jay" 7235 { yyVal = intern("<=", 2); } 7236 break; 7237 case 130: 7238 #line 706 "mrb_parse.jay" 7239 { yyVal = intern("!=", 2); } 7240 break; 7241 case 131: 7242 #line 707 "mrb_parse.jay" 7243 { yyVal = intern("<<", 2); } 7244 break; 7245 case 132: 7246 #line 708 "mrb_parse.jay" 7247 { yyVal = intern(">>", 2); } 7248 break; 7249 case 133: 7250 #line 709 "mrb_parse.jay" 7251 { yyVal = intern_c('+'); } 7252 break; 7253 case 134: 7254 #line 710 "mrb_parse.jay" 7255 { yyVal = intern_c('-'); } 7256 break; 7257 case 135: 7258 #line 711 "mrb_parse.jay" 7259 { yyVal = intern_c('*'); } 7260 break; 7261 case 136: 7262 #line 712 "mrb_parse.jay" 7263 { yyVal = intern_c('*'); } 7264 break; 7265 case 137: 7266 #line 713 "mrb_parse.jay" 7267 { yyVal = intern_c('/'); } 7268 break; 7269 case 138: 7270 #line 714 "mrb_parse.jay" 7271 { yyVal = intern_c('%'); } 7272 break; 7273 case 139: 7274 #line 715 "mrb_parse.jay" 7275 { yyVal = intern("**", 2); } 7276 break; 7277 case 140: 7278 #line 716 "mrb_parse.jay" 7279 { yyVal = intern_c('!'); } 7280 break; 7281 case 141: 7282 #line 717 "mrb_parse.jay" 7283 { yyVal = intern_c('~'); } 7284 break; 7285 case 142: 7286 #line 718 "mrb_parse.jay" 7287 { yyVal = intern("+@", 2); } 7288 break; 7289 case 143: 7290 #line 719 "mrb_parse.jay" 7291 { yyVal = intern("-@", 2); } 7292 break; 7293 case 144: 7294 #line 720 "mrb_parse.jay" 7295 { yyVal = intern("[]", 2); } 7296 break; 7297 case 145: 7298 #line 721 "mrb_parse.jay" 7299 { yyVal = intern("[]=", 3); } 7300 break; 7301 case 146: 7302 #line 722 "mrb_parse.jay" 7303 { yyVal = intern_c('`'); } 7304 break; 7305 case 187: 7306 #line 740 "mrb_parse.jay" 7307 { 7308 yyVal = new_asgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7309 } 7310 break; 7311 case 188: 7312 #line 744 "mrb_parse.jay" 7313 { 7314 yyVal = new_op_asgn(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7315 } 7316 break; 7317 case 189: 7318 #line 748 "mrb_parse.jay" 7319 { 7320 yyVal = new_op_asgn(new_call(((node)yyVals[-5 + yyTop]), intern("[]", 2), ((node)yyVals[-3 + yyTop]), (MrbTokens)'.'), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7321 } 7322 break; 7323 case 190: 7324 #line 752 "mrb_parse.jay" 7325 { 7326 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7327 } 7328 break; 7329 case 191: 7330 #line 756 "mrb_parse.jay" 7331 { 7332 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7333 } 7334 break; 7335 case 192: 7336 #line 760 "mrb_parse.jay" 7337 { 7338 yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, MrbTokens.tCOLON2), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7339 } 7340 break; 7341 case 193: 7342 #line 764 "mrb_parse.jay" 7343 { 7344 yyError("constant re-assignment"); 7345 yyVal = new_begin(null); 7346 } 7347 break; 7348 case 194: 7349 #line 769 "mrb_parse.jay" 7350 { 7351 yyError("constant re-assignment"); 7352 yyVal = new_begin(null); 7353 } 7354 break; 7355 case 195: 7356 #line 774 "mrb_parse.jay" 7357 { 7358 backref_error(((node)yyVals[-2 + yyTop])); 7359 yyVal = new_begin(null); 7360 } 7361 break; 7362 case 196: 7363 #line 779 "mrb_parse.jay" 7364 { 7365 yyVal = new_dot2(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7366 } 7367 break; 7368 case 197: 7369 #line 783 "mrb_parse.jay" 7370 { 7371 yyVal = new_dot3(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7372 } 7373 break; 7374 case 198: 7375 #line 787 "mrb_parse.jay" 7376 { 7377 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "+", ((node)yyVals[0 + yyTop])); 7378 } 7379 break; 7380 case 199: 7381 #line 791 "mrb_parse.jay" 7382 { 7383 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "-", ((node)yyVals[0 + yyTop])); 7384 } 7385 break; 7386 case 200: 7387 #line 795 "mrb_parse.jay" 7388 { 7389 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "*", ((node)yyVals[0 + yyTop])); 7390 } 7391 break; 7392 case 201: 7393 #line 799 "mrb_parse.jay" 7394 { 7395 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "/", ((node)yyVals[0 + yyTop])); 7396 } 7397 break; 7398 case 202: 7399 #line 803 "mrb_parse.jay" 7400 { 7401 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "%", ((node)yyVals[0 + yyTop])); 7402 } 7403 break; 7404 case 203: 7405 #line 807 "mrb_parse.jay" 7406 { 7407 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])); 7408 } 7409 break; 7410 case 204: 7411 #line 811 "mrb_parse.jay" 7412 { 7413 yyVal = call_uni_op(call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])), "-@"); 7414 } 7415 break; 7416 case 205: 7417 #line 815 "mrb_parse.jay" 7418 { 7419 yyVal = call_uni_op(call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])), "-@"); 7420 } 7421 break; 7422 case 206: 7423 #line 819 "mrb_parse.jay" 7424 { 7425 yyVal = call_uni_op(((node)yyVals[0 + yyTop]), "+@"); 7426 } 7427 break; 7428 case 207: 7429 #line 823 "mrb_parse.jay" 7430 { 7431 yyVal = call_uni_op(((node)yyVals[0 + yyTop]), "-@"); 7432 } 7433 break; 7434 case 208: 7435 #line 827 "mrb_parse.jay" 7436 { 7437 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "|", ((node)yyVals[0 + yyTop])); 7438 } 7439 break; 7440 case 209: 7441 #line 831 "mrb_parse.jay" 7442 { 7443 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "^", ((node)yyVals[0 + yyTop])); 7444 } 7445 break; 7446 case 210: 7447 #line 835 "mrb_parse.jay" 7448 { 7449 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "&", ((node)yyVals[0 + yyTop])); 7450 } 7451 break; 7452 case 211: 7453 #line 839 "mrb_parse.jay" 7454 { 7455 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<=>", ((node)yyVals[0 + yyTop])); 7456 } 7457 break; 7458 case 212: 7459 #line 843 "mrb_parse.jay" 7460 { 7461 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">", ((node)yyVals[0 + yyTop])); 7462 } 7463 break; 7464 case 213: 7465 #line 847 "mrb_parse.jay" 7466 { 7467 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">=", ((node)yyVals[0 + yyTop])); 7468 } 7469 break; 7470 case 214: 7471 #line 851 "mrb_parse.jay" 7472 { 7473 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<", ((node)yyVals[0 + yyTop])); 7474 } 7475 break; 7476 case 215: 7477 #line 855 "mrb_parse.jay" 7478 { 7479 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<=", ((node)yyVals[0 + yyTop])); 7480 } 7481 break; 7482 case 216: 7483 #line 859 "mrb_parse.jay" 7484 { 7485 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "==", ((node)yyVals[0 + yyTop])); 7486 } 7487 break; 7488 case 217: 7489 #line 863 "mrb_parse.jay" 7490 { 7491 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "===", ((node)yyVals[0 + yyTop])); 7492 } 7493 break; 7494 case 218: 7495 #line 867 "mrb_parse.jay" 7496 { 7497 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "!=", ((node)yyVals[0 + yyTop])); 7498 } 7499 break; 7500 case 219: 7501 #line 871 "mrb_parse.jay" 7502 { 7503 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "=~", ((node)yyVals[0 + yyTop])); 7504 } 7505 break; 7506 case 220: 7507 #line 875 "mrb_parse.jay" 7508 { 7509 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "!~", ((node)yyVals[0 + yyTop])); 7510 } 7511 break; 7512 case 221: 7513 #line 879 "mrb_parse.jay" 7514 { 7515 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); 7516 } 7517 break; 7518 case 222: 7519 #line 883 "mrb_parse.jay" 7520 { 7521 yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "~"); 7522 } 7523 break; 7524 case 223: 7525 #line 887 "mrb_parse.jay" 7526 { 7527 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<<", ((node)yyVals[0 + yyTop])); 7528 } 7529 break; 7530 case 224: 7531 #line 891 "mrb_parse.jay" 7532 { 7533 yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">>", ((node)yyVals[0 + yyTop])); 7534 } 7535 break; 7536 case 225: 7537 #line 895 "mrb_parse.jay" 7538 { 7539 yyVal = new_and(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7540 } 7541 break; 7542 case 226: 7543 #line 899 "mrb_parse.jay" 7544 { 7545 yyVal = new_or(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7546 } 7547 break; 7548 case 227: 7549 #line 903 "mrb_parse.jay" 7550 { 7551 yyVal = new_if(cond(((node)yyVals[-5 + yyTop])), ((node)yyVals[-3 + yyTop]), ((node)yyVals[0 + yyTop]), true); 7552 } 7553 break; 7554 case 228: 7555 #line 907 "mrb_parse.jay" 7556 { 7557 yyVal = ((node)yyVals[0 + yyTop]); 7558 } 7559 break; 7560 case 230: 7561 #line 914 "mrb_parse.jay" 7562 { 7563 yyVal = ((node)yyVals[-1 + yyTop]); 7564 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7565 } 7566 break; 7567 case 231: 7568 #line 919 "mrb_parse.jay" 7569 { 7570 yyVal = push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))); 7571 } 7572 break; 7573 case 232: 7574 #line 923 "mrb_parse.jay" 7575 { 7576 yyVal = cons(new_hash(((node)yyVals[-1 + yyTop])), null); 7577 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7578 } 7579 break; 7580 case 233: 7581 #line 930 "mrb_parse.jay" 7582 { 7583 void_expr_error(((node)yyVals[0 + yyTop])); 7584 yyVal = ((node)yyVals[0 + yyTop]); 7585 } 7586 break; 7587 case 234: 7588 #line 935 "mrb_parse.jay" 7589 { 7590 void_expr_error(((node)yyVals[-2 + yyTop])); 7591 yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7592 } 7593 break; 7594 case 235: 7595 #line 942 "mrb_parse.jay" 7596 { 7597 yyVal = ((node)yyVals[-1 + yyTop]); 7598 } 7599 break; 7600 case 240: 7601 #line 954 "mrb_parse.jay" 7602 { 7603 yyVal = cons(((node)yyVals[-1 + yyTop]), null); 7604 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7605 } 7606 break; 7607 case 241: 7608 #line 959 "mrb_parse.jay" 7609 { 7610 yyVal = cons(push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))), null); 7611 ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); 7612 } 7613 break; 7614 case 242: 7615 #line 964 "mrb_parse.jay" 7616 { 7617 yyVal = cons(list1(new_hash(((node)yyVals[-1 + yyTop]))), null); 7618 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7619 } 7620 break; 7621 case 243: 7622 #line 971 "mrb_parse.jay" 7623 { 7624 yyVal = cons(list1(((node)yyVals[0 + yyTop])), null); 7625 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7626 } 7627 break; 7628 case 244: 7629 #line 976 "mrb_parse.jay" 7630 { 7631 yyVal = cons(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7632 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7633 } 7634 break; 7635 case 245: 7636 #line 981 "mrb_parse.jay" 7637 { 7638 yyVal = cons(list1(new_hash(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 7639 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7640 } 7641 break; 7642 case 246: 7643 #line 986 "mrb_parse.jay" 7644 { 7645 yyVal = cons(push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 7646 ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); 7647 } 7648 break; 7649 case 247: 7650 #line 991 "mrb_parse.jay" 7651 { 7652 yyVal = cons(null, ((node)yyVals[0 + yyTop])); 7653 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7654 } 7655 break; 7656 case 248: 7657 #line 997 "mrb_parse.jay" 7658 { 7659 yyVal = (stack_type)this.cmdarg_stack; 7660 CMDARG_PUSH(1); 7661 } 7662 break; 7663 case 249: 7664 #line 1002 "mrb_parse.jay" 7665 { 7666 this.cmdarg_stack = ((stack_type)yyVals[-1 + yyTop]); 7667 yyVal = ((node)yyVals[0 + yyTop]); 7668 } 7669 break; 7670 case 250: 7671 #line 1009 "mrb_parse.jay" 7672 { 7673 yyVal = new_block_arg((node)((node)yyVals[0 + yyTop])); 7674 } 7675 break; 7676 case 251: 7677 #line 1015 "mrb_parse.jay" 7678 { 7679 yyVal = ((node)yyVals[0 + yyTop]); 7680 } 7681 break; 7682 case 252: 7683 #line 1019 "mrb_parse.jay" 7684 { 7685 yyVal = null; 7686 } 7687 break; 7688 case 255: 7689 #line 1029 "mrb_parse.jay" 7690 { 7691 void_expr_error(((node)yyVals[0 + yyTop])); 7692 yyVal = cons(((node)yyVals[0 + yyTop]), null); 7693 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7694 } 7695 break; 7696 case 256: 7697 #line 1035 "mrb_parse.jay" 7698 { 7699 void_expr_error(((node)yyVals[0 + yyTop])); 7700 yyVal = cons(new_splat(((node)yyVals[0 + yyTop])), null); 7701 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 7702 } 7703 break; 7704 case 257: 7705 #line 1041 "mrb_parse.jay" 7706 { 7707 void_expr_error(((node)yyVals[0 + yyTop])); 7708 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7709 } 7710 break; 7711 case 258: 7712 #line 1046 "mrb_parse.jay" 7713 { 7714 void_expr_error(((node)yyVals[0 + yyTop])); 7715 yyVal = push(((node)yyVals[-3 + yyTop]), new_splat(((node)yyVals[0 + yyTop]))); 7716 } 7717 break; 7718 case 259: 7719 #line 1053 "mrb_parse.jay" 7720 { 7721 void_expr_error(((node)yyVals[0 + yyTop])); 7722 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7723 } 7724 break; 7725 case 260: 7726 #line 1058 "mrb_parse.jay" 7727 { 7728 void_expr_error(((node)yyVals[0 + yyTop])); 7729 yyVal = push(((node)yyVals[-3 + yyTop]), new_splat(((node)yyVals[0 + yyTop]))); 7730 } 7731 break; 7732 case 261: 7733 #line 1063 "mrb_parse.jay" 7734 { 7735 void_expr_error(((node)yyVals[0 + yyTop])); 7736 yyVal = list1(new_splat(((node)yyVals[0 + yyTop]))); 7737 } 7738 break; 7739 case 269: 7740 #line 1077 "mrb_parse.jay" 7741 { 7742 yyVal = new_fcall(((mrb_sym)yyVals[0 + yyTop]), null); 7743 } 7744 break; 7745 case 270: 7746 #line 1081 "mrb_parse.jay" 7747 { 7748 yyVal = (stack_type)this.cmdarg_stack; 7749 this.cmdarg_stack = 0; 7750 } 7751 break; 7752 case 271: 7753 #line 1087 "mrb_parse.jay" 7754 { 7755 this.cmdarg_stack = ((stack_type)yyVals[-2 + yyTop]); 7756 yyVal = ((node)yyVals[-1 + yyTop]); 7757 } 7758 break; 7759 case 272: 7760 #line 1092 "mrb_parse.jay" 7761 { 7762 yyVal = (stack_type)this.cmdarg_stack; 7763 this.cmdarg_stack = 0; 7764 } 7765 break; 7766 case 273: 7767 #line 1096 "mrb_parse.jay" 7768 { this.lstate = mrb_lex_state_enum.EXPR_ENDARG; } 7769 break; 7770 case 274: 7771 #line 1097 "mrb_parse.jay" 7772 { 7773 this.cmdarg_stack = ((stack_type)yyVals[-3 + yyTop]); 7774 yyVal = ((node)yyVals[-2 + yyTop]); 7775 } 7776 break; 7777 case 275: 7778 #line 1101 "mrb_parse.jay" 7779 { this.lstate = mrb_lex_state_enum.EXPR_ENDARG; } 7780 break; 7781 case 276: 7782 #line 1102 "mrb_parse.jay" 7783 { 7784 yyVal = new_nil(); 7785 } 7786 break; 7787 case 277: 7788 #line 1106 "mrb_parse.jay" 7789 { 7790 yyVal = ((node)yyVals[-1 + yyTop]); 7791 } 7792 break; 7793 case 278: 7794 #line 1110 "mrb_parse.jay" 7795 { 7796 yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 7797 } 7798 break; 7799 case 279: 7800 #line 1114 "mrb_parse.jay" 7801 { 7802 yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); 7803 } 7804 break; 7805 case 280: 7806 #line 1118 "mrb_parse.jay" 7807 { 7808 yyVal = new_array(((node)yyVals[-1 + yyTop])); 7809 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7810 } 7811 break; 7812 case 281: 7813 #line 1123 "mrb_parse.jay" 7814 { 7815 yyVal = new_hash(((node)yyVals[-1 + yyTop])); 7816 ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); 7817 } 7818 break; 7819 case 282: 7820 #line 1128 "mrb_parse.jay" 7821 { 7822 yyVal = new_return(null); 7823 } 7824 break; 7825 case 283: 7826 #line 1132 "mrb_parse.jay" 7827 { 7828 yyVal = new_yield(((node)yyVals[0 + yyTop])); 7829 } 7830 break; 7831 case 284: 7832 #line 1136 "mrb_parse.jay" 7833 { 7834 yyVal = call_uni_op(cond(((node)yyVals[-1 + yyTop])), "!"); 7835 } 7836 break; 7837 case 285: 7838 #line 1140 "mrb_parse.jay" 7839 { 7840 yyVal = call_uni_op(new_nil(), "!"); 7841 } 7842 break; 7843 case 286: 7844 #line 1144 "mrb_parse.jay" 7845 { 7846 yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), cons(null, ((node)yyVals[0 + yyTop]))); 7847 } 7848 break; 7849 case 288: 7850 #line 1149 "mrb_parse.jay" 7851 { 7852 call_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 7853 yyVal = ((node)yyVals[-1 + yyTop]); 7854 } 7855 break; 7856 case 289: 7857 #line 1154 "mrb_parse.jay" 7858 { 7859 local_nest(); 7860 yyVal = (int)this.lpar_beg; 7861 this.lpar_beg = ++this.paren_nest; 7862 } 7863 break; 7864 case 290: 7865 #line 1160 "mrb_parse.jay" 7866 { 7867 yyVal = (stack_type)this.cmdarg_stack; 7868 this.cmdarg_stack = 0; 7869 } 7870 break; 7871 case 291: 7872 #line 1165 "mrb_parse.jay" 7873 { 7874 this.lpar_beg = ((int)yyVals[-3 + yyTop]); 7875 yyVal = new_lambda(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 7876 local_unnest(); 7877 this.cmdarg_stack = ((stack_type)yyVals[-1 + yyTop]); 7878 CMDARG_LEXPOP(); 7879 } 7880 break; 7881 case 292: 7882 #line 1176 "mrb_parse.jay" 7883 { 7884 yyVal = new_if(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 7885 ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); 7886 } 7887 break; 7888 case 293: 7889 #line 1184 "mrb_parse.jay" 7890 { 7891 yyVal = new_unless(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 7892 ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); 7893 } 7894 break; 7895 case 294: 7896 #line 1188 "mrb_parse.jay" 7897 { COND_PUSH(1); } 7898 break; 7899 case 295: 7900 #line 1188 "mrb_parse.jay" 7901 { COND_POP(); } 7902 break; 7903 case 296: 7904 #line 1191 "mrb_parse.jay" 7905 { 7906 yyVal = new_while(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-1 + yyTop])); 7907 ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); 7908 } 7909 break; 7910 case 297: 7911 #line 1195 "mrb_parse.jay" 7912 { COND_PUSH(1); } 7913 break; 7914 case 298: 7915 #line 1195 "mrb_parse.jay" 7916 { COND_POP(); } 7917 break; 7918 case 299: 7919 #line 1198 "mrb_parse.jay" 7920 { 7921 yyVal = new_until(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-1 + yyTop])); 7922 ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); 7923 } 7924 break; 7925 case 300: 7926 #line 1205 "mrb_parse.jay" 7927 { 7928 yyVal = new_case(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 7929 } 7930 break; 7931 case 301: 7932 #line 1209 "mrb_parse.jay" 7933 { 7934 yyVal = new_case(null, ((node)yyVals[-1 + yyTop])); 7935 } 7936 break; 7937 case 302: 7938 #line 1213 "mrb_parse.jay" 7939 { COND_PUSH(1); } 7940 break; 7941 case 303: 7942 #line 1215 "mrb_parse.jay" 7943 { COND_POP(); } 7944 break; 7945 case 304: 7946 #line 1218 "mrb_parse.jay" 7947 { 7948 yyVal = new_for(((node)yyVals[-7 + yyTop]), ((node)yyVals[-4 + yyTop]), ((node)yyVals[-1 + yyTop])); 7949 ((node)yyVal).SET_LINENO(((int)yyVals[-8 + yyTop])); 7950 } 7951 break; 7952 case 305: 7953 #line 1224 "mrb_parse.jay" 7954 { 7955 if (this.in_def != 0 || this.in_single != 0) 7956 yyError("class definition in method body"); 7957 yyVal = local_switch(); 7958 } 7959 break; 7960 case 306: 7961 #line 1231 "mrb_parse.jay" 7962 { 7963 yyVal = new_class(((node)yyVals[-4 + yyTop]), ((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 7964 ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); 7965 local_resume(((locals_node)yyVals[-2 + yyTop])); 7966 } 7967 break; 7968 case 307: 7969 #line 1238 "mrb_parse.jay" 7970 { 7971 yyVal = (int)this.in_def; 7972 this.in_def = 0; 7973 } 7974 break; 7975 case 308: 7976 #line 1243 "mrb_parse.jay" 7977 { 7978 yyVal = cons(local_switch(), this.in_single); 7979 this.in_single = 0; 7980 } 7981 break; 7982 case 309: 7983 #line 1249 "mrb_parse.jay" 7984 { 7985 yyVal = new_sclass(((node)yyVals[-5 + yyTop]), ((node)yyVals[-1 + yyTop])); 7986 ((node)yyVal).SET_LINENO(((int)yyVals[-7 + yyTop])); 7987 local_resume((locals_node)((node)yyVals[-2 + yyTop]).car); 7988 this.in_def = ((int)yyVals[-4 + yyTop]); 7989 this.in_single = (int)(((node)yyVals[-2 + yyTop]).cdr); 7990 } 7991 break; 7992 case 310: 7993 #line 1258 "mrb_parse.jay" 7994 { 7995 if (this.in_def != 0 || this.in_single != 0) 7996 yyError("module definition in method body"); 7997 yyVal = local_switch(); 7998 } 7999 break; 8000 case 311: 8001 #line 1265 "mrb_parse.jay" 8002 { 8003 yyVal = new_module(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 8004 ((node)yyVal).SET_LINENO(((int)yyVals[-4 + yyTop])); 8005 local_resume(((locals_node)yyVals[-2 + yyTop])); 8006 } 8007 break; 8008 case 312: 8009 #line 1271 "mrb_parse.jay" 8010 { 8011 yyVal = (stack_type)this.cmdarg_stack; 8012 this.cmdarg_stack = 0; 8013 } 8014 break; 8015 case 313: 8016 #line 1275 "mrb_parse.jay" 8017 { 8018 this.in_def++; 8019 yyVal = local_switch(); 8020 } 8021 break; 8022 case 314: 8023 #line 1282 "mrb_parse.jay" 8024 { 8025 yyVal = new_def(((mrb_sym)yyVals[-5 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 8026 ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); 8027 local_resume(((locals_node)yyVals[-3 + yyTop])); 8028 this.in_def--; 8029 this.cmdarg_stack = ((stack_type)yyVals[-4 + yyTop]); 8030 } 8031 break; 8032 case 315: 8033 #line 1290 "mrb_parse.jay" 8034 { 8035 this.lstate = mrb_lex_state_enum.EXPR_FNAME; 8036 yyVal = (stack_type)this.cmdarg_stack; 8037 this.cmdarg_stack = 0; 8038 } 8039 break; 8040 case 316: 8041 #line 1296 "mrb_parse.jay" 8042 { 8043 this.in_single++; 8044 this.lstate = mrb_lex_state_enum.EXPR_ENDFN; /* force for args */ 8045 yyVal = local_switch(); 8046 } 8047 break; 8048 case 317: 8049 #line 1304 "mrb_parse.jay" 8050 { 8051 yyVal = new_sdef(((node)yyVals[-7 + yyTop]), ((mrb_sym)yyVals[-4 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); 8052 ((node)yyVal).SET_LINENO(((int)yyVals[-8 + yyTop])); 8053 local_resume(((locals_node)yyVals[-3 + yyTop])); 8054 this.in_single--; 8055 this.cmdarg_stack = ((stack_type)yyVals[-5 + yyTop]); 8056 } 8057 break; 8058 case 318: 8059 #line 1312 "mrb_parse.jay" 8060 { 8061 yyVal = new_break(null); 8062 } 8063 break; 8064 case 319: 8065 #line 1316 "mrb_parse.jay" 8066 { 8067 yyVal = new_next(null); 8068 } 8069 break; 8070 case 320: 8071 #line 1320 "mrb_parse.jay" 8072 { 8073 yyVal = new_redo(); 8074 } 8075 break; 8076 case 321: 8077 #line 1324 "mrb_parse.jay" 8078 { 8079 yyVal = new_retry(); 8080 } 8081 break; 8082 case 322: 8083 #line 1330 "mrb_parse.jay" 8084 { 8085 yyVal = ((node)yyVals[0 + yyTop]); 8086 if (yyVal == null) yyVal = new_nil(); 8087 } 8088 break; 8089 case 329: 8090 #line 1349 "mrb_parse.jay" 8091 { 8092 yyVal = new_if(cond(((node)yyVals[-3 + yyTop])), ((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8093 } 8094 break; 8095 case 331: 8096 #line 1356 "mrb_parse.jay" 8097 { 8098 yyVal = ((node)yyVals[0 + yyTop]); 8099 } 8100 break; 8101 case 332: 8102 #line 1362 "mrb_parse.jay" 8103 { 8104 yyVal = list1(list1(((node)yyVals[0 + yyTop]))); 8105 } 8106 break; 8107 case 334: 8108 #line 1369 "mrb_parse.jay" 8109 { 8110 yyVal = new_arg(((mrb_sym)yyVals[0 + yyTop])); 8111 } 8112 break; 8113 case 335: 8114 #line 1373 "mrb_parse.jay" 8115 { 8116 yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); 8117 } 8118 break; 8119 case 336: 8120 #line 1379 "mrb_parse.jay" 8121 { 8122 yyVal = list1(((node)yyVals[0 + yyTop])); 8123 } 8124 break; 8125 case 337: 8126 #line 1383 "mrb_parse.jay" 8127 { 8128 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 8129 } 8130 break; 8131 case 338: 8132 #line 1389 "mrb_parse.jay" 8133 { 8134 yyVal = list3(((node)yyVals[0 + yyTop]), null, null); 8135 } 8136 break; 8137 case 339: 8138 #line 1393 "mrb_parse.jay" 8139 { 8140 yyVal = list3(((node)yyVals[-3 + yyTop]), new_arg(((mrb_sym)yyVals[0 + yyTop])), null); 8141 } 8142 break; 8143 case 340: 8144 #line 1397 "mrb_parse.jay" 8145 { 8146 yyVal = list3(((node)yyVals[-5 + yyTop]), new_arg(((mrb_sym)yyVals[-2 + yyTop])), ((node)yyVals[0 + yyTop])); 8147 } 8148 break; 8149 case 341: 8150 #line 1401 "mrb_parse.jay" 8151 { 8152 yyVal = list3(((node)yyVals[-2 + yyTop]), -1, null); 8153 } 8154 break; 8155 case 342: 8156 #line 1405 "mrb_parse.jay" 8157 { 8158 yyVal = list3(((node)yyVals[-4 + yyTop]), -1, ((node)yyVals[0 + yyTop])); 8159 } 8160 break; 8161 case 343: 8162 #line 1409 "mrb_parse.jay" 8163 { 8164 yyVal = list3(null, new_arg(((mrb_sym)yyVals[0 + yyTop])), null); 8165 } 8166 break; 8167 case 344: 8168 #line 1413 "mrb_parse.jay" 8169 { 8170 yyVal = list3(null, new_arg(((mrb_sym)yyVals[-2 + yyTop])), ((node)yyVals[0 + yyTop])); 8171 } 8172 break; 8173 case 345: 8174 #line 1417 "mrb_parse.jay" 8175 { 8176 yyVal = list3(null, -1, null); 8177 } 8178 break; 8179 case 346: 8180 #line 1421 "mrb_parse.jay" 8181 { 8182 yyVal = list3(null, -1, ((node)yyVals[0 + yyTop])); 8183 } 8184 break; 8185 case 347: 8186 #line 1427 "mrb_parse.jay" 8187 { 8188 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8189 } 8190 break; 8191 case 348: 8192 #line 1431 "mrb_parse.jay" 8193 { 8194 yyVal = new_args(((node)yyVals[-7 + yyTop]), ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8195 } 8196 break; 8197 case 349: 8198 #line 1435 "mrb_parse.jay" 8199 { 8200 yyVal = new_args(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8201 } 8202 break; 8203 case 350: 8204 #line 1439 "mrb_parse.jay" 8205 { 8206 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8207 } 8208 break; 8209 case 351: 8210 #line 1443 "mrb_parse.jay" 8211 { 8212 yyVal = new_args(((node)yyVals[-3 + yyTop]), null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8213 } 8214 break; 8215 case 352: 8216 #line 1447 "mrb_parse.jay" 8217 { 8218 yyVal = new_args(((node)yyVals[-1 + yyTop]), null, (mrb_sym)0, null, 0); 8219 } 8220 break; 8221 case 353: 8222 #line 1451 "mrb_parse.jay" 8223 { 8224 yyVal = new_args(((node)yyVals[-5 + yyTop]), null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8225 } 8226 break; 8227 case 354: 8228 #line 1455 "mrb_parse.jay" 8229 { 8230 yyVal = new_args(((node)yyVals[-1 + yyTop]), null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8231 } 8232 break; 8233 case 355: 8234 #line 1459 "mrb_parse.jay" 8235 { 8236 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8237 } 8238 break; 8239 case 356: 8240 #line 1463 "mrb_parse.jay" 8241 { 8242 yyVal = new_args(null, ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8243 } 8244 break; 8245 case 357: 8246 #line 1467 "mrb_parse.jay" 8247 { 8248 yyVal = new_args(null, ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8249 } 8250 break; 8251 case 358: 8252 #line 1471 "mrb_parse.jay" 8253 { 8254 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8255 } 8256 break; 8257 case 359: 8258 #line 1475 "mrb_parse.jay" 8259 { 8260 yyVal = new_args(null, null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8261 } 8262 break; 8263 case 360: 8264 #line 1479 "mrb_parse.jay" 8265 { 8266 yyVal = new_args(null, null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8267 } 8268 break; 8269 case 361: 8270 #line 1483 "mrb_parse.jay" 8271 { 8272 yyVal = new_args(null, null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8273 } 8274 break; 8275 case 363: 8276 #line 1490 "mrb_parse.jay" 8277 { 8278 this.cmd_start = true; 8279 yyVal = ((node)yyVals[0 + yyTop]); 8280 } 8281 break; 8282 case 364: 8283 #line 1497 "mrb_parse.jay" 8284 { 8285 yyVal = null; 8286 } 8287 break; 8288 case 365: 8289 #line 1501 "mrb_parse.jay" 8290 { 8291 yyVal = null; 8292 } 8293 break; 8294 case 366: 8295 #line 1505 "mrb_parse.jay" 8296 { 8297 yyVal = ((node)yyVals[-2 + yyTop]); 8298 } 8299 break; 8300 case 367: 8301 #line 1512 "mrb_parse.jay" 8302 { 8303 yyVal = null; 8304 } 8305 break; 8306 case 368: 8307 #line 1516 "mrb_parse.jay" 8308 { 8309 yyVal = null; 8310 } 8311 break; 8312 case 371: 8313 #line 1526 "mrb_parse.jay" 8314 { 8315 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 8316 new_bv(((mrb_sym)yyVals[0 + yyTop])); 8317 } 8318 break; 8319 case 373: 8320 #line 1534 "mrb_parse.jay" 8321 { 8322 yyVal = ((node)yyVals[-2 + yyTop]); 8323 } 8324 break; 8325 case 374: 8326 #line 1538 "mrb_parse.jay" 8327 { 8328 yyVal = ((node)yyVals[0 + yyTop]); 8329 } 8330 break; 8331 case 375: 8332 #line 1544 "mrb_parse.jay" 8333 { 8334 yyVal = ((node)yyVals[-1 + yyTop]); 8335 } 8336 break; 8337 case 376: 8338 #line 1548 "mrb_parse.jay" 8339 { 8340 yyVal = ((node)yyVals[-1 + yyTop]); 8341 } 8342 break; 8343 case 377: 8344 #line 1554 "mrb_parse.jay" 8345 { 8346 local_nest(); 8347 } 8348 break; 8349 case 378: 8350 #line 1560 "mrb_parse.jay" 8351 { 8352 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), false); 8353 local_unnest(); 8354 } 8355 break; 8356 case 379: 8357 #line 1567 "mrb_parse.jay" 8358 { 8359 if ((node_type)((node)yyVals[-1 + yyTop]).car == node_type.NODE_YIELD) { 8360 yyError("block given to yield"); 8361 } 8362 else { 8363 call_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8364 } 8365 yyVal = ((node)yyVals[-1 + yyTop]); 8366 } 8367 break; 8368 case 380: 8369 #line 1577 "mrb_parse.jay" 8370 { 8371 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); 8372 } 8373 break; 8374 case 381: 8375 #line 1581 "mrb_parse.jay" 8376 { 8377 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); 8378 call_with_block((node)yyVal, ((node)yyVals[0 + yyTop])); 8379 } 8380 break; 8381 case 382: 8382 #line 1586 "mrb_parse.jay" 8383 { 8384 yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); 8385 call_with_block((node)yyVal, ((node)yyVals[0 + yyTop])); 8386 } 8387 break; 8388 case 383: 8389 #line 1593 "mrb_parse.jay" 8390 { 8391 yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8392 } 8393 break; 8394 case 384: 8395 #line 1597 "mrb_parse.jay" 8396 { 8397 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); 8398 } 8399 break; 8400 case 385: 8401 #line 1601 "mrb_parse.jay" 8402 { 8403 yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); 8404 } 8405 break; 8406 case 386: 8407 #line 1605 "mrb_parse.jay" 8408 { 8409 yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); 8410 } 8411 break; 8412 case 387: 8413 #line 1609 "mrb_parse.jay" 8414 { 8415 yyVal = new_call(((node)yyVals[-2 + yyTop]), intern("call", 4), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-1 + yyTop])); 8416 } 8417 break; 8418 case 388: 8419 #line 1613 "mrb_parse.jay" 8420 { 8421 yyVal = new_call(((node)yyVals[-2 + yyTop]), intern("call", 4), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); 8422 } 8423 break; 8424 case 389: 8425 #line 1617 "mrb_parse.jay" 8426 { 8427 yyVal = new_super(((node)yyVals[0 + yyTop])); 8428 } 8429 break; 8430 case 390: 8431 #line 1621 "mrb_parse.jay" 8432 { 8433 yyVal = new_zsuper(); 8434 } 8435 break; 8436 case 391: 8437 #line 1625 "mrb_parse.jay" 8438 { 8439 yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); 8440 } 8441 break; 8442 case 392: 8443 #line 1631 "mrb_parse.jay" 8444 { 8445 local_nest(); 8446 yyVal = (int)this.lineno; 8447 } 8448 break; 8449 case 393: 8450 #line 1637 "mrb_parse.jay" 8451 { 8452 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), true); 8453 ((node)yyVal).SET_LINENO(((int)yyVals[-3 + yyTop])); 8454 local_unnest(); 8455 } 8456 break; 8457 case 394: 8458 #line 1643 "mrb_parse.jay" 8459 { 8460 local_nest(); 8461 yyVal = (int)this.lineno; 8462 } 8463 break; 8464 case 395: 8465 #line 1649 "mrb_parse.jay" 8466 { 8467 yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), false); 8468 ((node)yyVal).SET_LINENO(((int)yyVals[-3 + yyTop])); 8469 local_unnest(); 8470 } 8471 break; 8472 case 396: 8473 #line 1659 "mrb_parse.jay" 8474 { 8475 yyVal = cons(cons(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])), ((node)yyVals[0 + yyTop])); 8476 } 8477 break; 8478 case 397: 8479 #line 1665 "mrb_parse.jay" 8480 { 8481 if (((node)yyVals[0 + yyTop]) != null) { 8482 yyVal = cons(cons(null, ((node)yyVals[0 + yyTop])), null); 8483 } 8484 else { 8485 yyVal = null; 8486 } 8487 } 8488 break; 8489 case 399: 8490 #line 1679 "mrb_parse.jay" 8491 { 8492 yyVal = list1(list3(((node)yyVals[-4 + yyTop]), ((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]))); 8493 if (((node)yyVals[0 + yyTop]) != null) yyVal = append(((node)yyVal), ((node)yyVals[0 + yyTop])); 8494 } 8495 break; 8496 case 401: 8497 #line 1687 "mrb_parse.jay" 8498 { 8499 yyVal = list1(((node)yyVals[0 + yyTop])); 8500 } 8501 break; 8502 case 404: 8503 #line 1695 "mrb_parse.jay" 8504 { 8505 yyVal = ((node)yyVals[0 + yyTop]); 8506 } 8507 break; 8508 case 406: 8509 #line 1702 "mrb_parse.jay" 8510 { 8511 yyVal = ((node)yyVals[0 + yyTop]); 8512 } 8513 break; 8514 case 414: 8515 #line 1717 "mrb_parse.jay" 8516 { 8517 yyVal = ((node)yyVals[0 + yyTop]); 8518 } 8519 break; 8520 case 415: 8521 #line 1721 "mrb_parse.jay" 8522 { 8523 yyVal = new_dstr(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8524 } 8525 break; 8526 case 417: 8527 #line 1728 "mrb_parse.jay" 8528 { 8529 yyVal = append(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8530 } 8531 break; 8532 case 418: 8533 #line 1734 "mrb_parse.jay" 8534 { 8535 yyVal = list1(((node)yyVals[0 + yyTop])); 8536 } 8537 break; 8538 case 419: 8539 #line 1738 "mrb_parse.jay" 8540 { 8541 yyVal = (node)this.lex_strterm; 8542 this.lex_strterm = null; 8543 } 8544 break; 8545 case 420: 8546 #line 1744 "mrb_parse.jay" 8547 { 8548 this.lex_strterm = ((node)yyVals[-2 + yyTop]); 8549 yyVal = list2(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); 8550 } 8551 break; 8552 case 421: 8553 #line 1749 "mrb_parse.jay" 8554 { 8555 yyVal = list1(new_literal_delim()); 8556 } 8557 break; 8558 case 422: 8559 #line 1753 "mrb_parse.jay" 8560 { 8561 yyVal = list1(new_literal_delim()); 8562 } 8563 break; 8564 case 423: 8565 #line 1759 "mrb_parse.jay" 8566 { 8567 yyVal = ((node)yyVals[0 + yyTop]); 8568 } 8569 break; 8570 case 424: 8571 #line 1763 "mrb_parse.jay" 8572 { 8573 yyVal = new_dxstr(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8574 } 8575 break; 8576 case 425: 8577 #line 1769 "mrb_parse.jay" 8578 { 8579 yyVal = ((node)yyVals[0 + yyTop]); 8580 } 8581 break; 8582 case 426: 8583 #line 1773 "mrb_parse.jay" 8584 { 8585 yyVal = new_dregx(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8586 } 8587 break; 8588 case 430: 8589 #line 1786 "mrb_parse.jay" 8590 { 8591 parser_heredoc_info inf = parsing_heredoc_inf(); 8592 inf.push_doc(new_str(new Uint8Array(0), 0)); 8593 heredoc_end(); 8594 } 8595 break; 8596 case 431: 8597 #line 1792 "mrb_parse.jay" 8598 { 8599 heredoc_end(); 8600 } 8601 break; 8602 case 434: 8603 #line 1802 "mrb_parse.jay" 8604 { 8605 parser_heredoc_info inf = parsing_heredoc_inf(); 8606 inf.push_doc(((node)yyVals[0 + yyTop])); 8607 heredoc_treat_nextline(); 8608 } 8609 break; 8610 case 435: 8611 #line 1808 "mrb_parse.jay" 8612 { 8613 yyVal = (node)this.lex_strterm; 8614 this.lex_strterm = null; 8615 } 8616 break; 8617 case 436: 8618 #line 1814 "mrb_parse.jay" 8619 { 8620 parser_heredoc_info inf = parsing_heredoc_inf(); 8621 this.lex_strterm = ((node)yyVals[-2 + yyTop]); 8622 inf.push_doc(((node)yyVals[-3 + yyTop])); 8623 inf.push_doc(((node)yyVals[-1 + yyTop])); 8624 } 8625 break; 8626 case 437: 8627 #line 1823 "mrb_parse.jay" 8628 { 8629 yyVal = new_words(list1(((node)yyVals[0 + yyTop]))); 8630 } 8631 break; 8632 case 438: 8633 #line 1827 "mrb_parse.jay" 8634 { 8635 yyVal = new_words(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8636 } 8637 break; 8638 case 439: 8639 #line 1834 "mrb_parse.jay" 8640 { 8641 yyVal = new_sym(((mrb_sym)yyVals[0 + yyTop])); 8642 } 8643 break; 8644 case 440: 8645 #line 1838 "mrb_parse.jay" 8646 { 8647 this.lstate = mrb_lex_state_enum.EXPR_END; 8648 yyVal = new_dsym(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8649 } 8650 break; 8651 case 441: 8652 #line 1845 "mrb_parse.jay" 8653 { 8654 this.lstate = mrb_lex_state_enum.EXPR_END; 8655 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 8656 } 8657 break; 8658 case 446: 8659 #line 1856 "mrb_parse.jay" 8660 { 8661 yyVal = new_strsym(((node)yyVals[0 + yyTop])); 8662 } 8663 break; 8664 case 447: 8665 #line 1860 "mrb_parse.jay" 8666 { 8667 yyVal = new_strsym(((node)yyVals[0 + yyTop])); 8668 } 8669 break; 8670 case 448: 8671 #line 1866 "mrb_parse.jay" 8672 { 8673 yyVal = new_symbols(list1(((node)yyVals[0 + yyTop]))); 8674 } 8675 break; 8676 case 449: 8677 #line 1870 "mrb_parse.jay" 8678 { 8679 yyVal = new_symbols(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); 8680 } 8681 break; 8682 case 452: 8683 #line 1878 "mrb_parse.jay" 8684 { 8685 yyVal = negate_lit(((node)yyVals[0 + yyTop])); 8686 } 8687 break; 8688 case 453: 8689 #line 1882 "mrb_parse.jay" 8690 { 8691 yyVal = negate_lit(((node)yyVals[0 + yyTop])); 8692 } 8693 break; 8694 case 454: 8695 #line 1888 "mrb_parse.jay" 8696 { 8697 yyVal = new_lvar(((mrb_sym)yyVals[0 + yyTop])); 8698 } 8699 break; 8700 case 455: 8701 #line 1892 "mrb_parse.jay" 8702 { 8703 yyVal = new_ivar(((mrb_sym)yyVals[0 + yyTop])); 8704 } 8705 break; 8706 case 456: 8707 #line 1896 "mrb_parse.jay" 8708 { 8709 yyVal = new_gvar(((mrb_sym)yyVals[0 + yyTop])); 8710 } 8711 break; 8712 case 457: 8713 #line 1900 "mrb_parse.jay" 8714 { 8715 yyVal = new_cvar(((mrb_sym)yyVals[0 + yyTop])); 8716 } 8717 break; 8718 case 458: 8719 #line 1904 "mrb_parse.jay" 8720 { 8721 yyVal = new_const(((mrb_sym)yyVals[0 + yyTop])); 8722 } 8723 break; 8724 case 459: 8725 #line 1910 "mrb_parse.jay" 8726 { 8727 assignable(((node)yyVals[0 + yyTop])); 8728 } 8729 break; 8730 case 460: 8731 #line 1916 "mrb_parse.jay" 8732 { 8733 yyVal = var_reference(((node)yyVals[0 + yyTop])); 8734 } 8735 break; 8736 case 461: 8737 #line 1920 "mrb_parse.jay" 8738 { 8739 yyVal = new_nil(); 8740 } 8741 break; 8742 case 462: 8743 #line 1924 "mrb_parse.jay" 8744 { 8745 yyVal = new_self(); 8746 } 8747 break; 8748 case 463: 8749 #line 1928 "mrb_parse.jay" 8750 { 8751 yyVal = new_true(); 8752 } 8753 break; 8754 case 464: 8755 #line 1932 "mrb_parse.jay" 8756 { 8757 yyVal = new_false(); 8758 } 8759 break; 8760 case 465: 8761 #line 1936 "mrb_parse.jay" 8762 { 8763 if (this.filename == null) { 8764 this.mrb_parser_set_filename("(null)"); 8765 } 8766 yyVal = new_filename(this.filename); 8767 } 8768 break; 8769 case 466: 8770 #line 1943 "mrb_parse.jay" 8771 { 8772 yyVal = new_lineno(this.lineno); 8773 } 8774 break; 8775 case 469: 8776 #line 1953 "mrb_parse.jay" 8777 { 8778 yyVal = null; 8779 } 8780 break; 8781 case 470: 8782 #line 1957 "mrb_parse.jay" 8783 { 8784 this.lstate = mrb_lex_state_enum.EXPR_BEG; 8785 this.cmd_start = true; 8786 } 8787 break; 8788 case 471: 8789 #line 1962 "mrb_parse.jay" 8790 { 8791 yyVal = ((node)yyVals[-1 + yyTop]); 8792 } 8793 break; 8794 case 472: 8795 #line 1973 "mrb_parse.jay" 8796 { 8797 yyVal = ((node)yyVals[-1 + yyTop]); 8798 this.lstate = mrb_lex_state_enum.EXPR_BEG; 8799 this.cmd_start = true; 8800 } 8801 break; 8802 case 473: 8803 #line 1979 "mrb_parse.jay" 8804 { 8805 yyVal = ((node)yyVals[-1 + yyTop]); 8806 } 8807 break; 8808 case 474: 8809 #line 1985 "mrb_parse.jay" 8810 { 8811 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8812 } 8813 break; 8814 case 475: 8815 #line 1989 "mrb_parse.jay" 8816 { 8817 yyVal = new_args(((node)yyVals[-7 + yyTop]), ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8818 } 8819 break; 8820 case 476: 8821 #line 1993 "mrb_parse.jay" 8822 { 8823 yyVal = new_args(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8824 } 8825 break; 8826 case 477: 8827 #line 1997 "mrb_parse.jay" 8828 { 8829 yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8830 } 8831 break; 8832 case 478: 8833 #line 2001 "mrb_parse.jay" 8834 { 8835 yyVal = new_args(((node)yyVals[-3 + yyTop]), null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8836 } 8837 break; 8838 case 479: 8839 #line 2005 "mrb_parse.jay" 8840 { 8841 yyVal = new_args(((node)yyVals[-5 + yyTop]), null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8842 } 8843 break; 8844 case 480: 8845 #line 2009 "mrb_parse.jay" 8846 { 8847 yyVal = new_args(((node)yyVals[-1 + yyTop]), null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8848 } 8849 break; 8850 case 481: 8851 #line 2013 "mrb_parse.jay" 8852 { 8853 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8854 } 8855 break; 8856 case 482: 8857 #line 2017 "mrb_parse.jay" 8858 { 8859 yyVal = new_args(null, ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8860 } 8861 break; 8862 case 483: 8863 #line 2021 "mrb_parse.jay" 8864 { 8865 yyVal = new_args(null, ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8866 } 8867 break; 8868 case 484: 8869 #line 2025 "mrb_parse.jay" 8870 { 8871 yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8872 } 8873 break; 8874 case 485: 8875 #line 2029 "mrb_parse.jay" 8876 { 8877 yyVal = new_args(null, null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); 8878 } 8879 break; 8880 case 486: 8881 #line 2033 "mrb_parse.jay" 8882 { 8883 yyVal = new_args(null, null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); 8884 } 8885 break; 8886 case 487: 8887 #line 2037 "mrb_parse.jay" 8888 { 8889 yyVal = new_args(null, null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); 8890 } 8891 break; 8892 case 488: 8893 #line 2041 "mrb_parse.jay" 8894 { 8895 local_add_f(0); 8896 yyVal = new_args(null, null, 0, null, 0); 8897 } 8898 break; 8899 case 489: 8900 #line 2048 "mrb_parse.jay" 8901 { 8902 yyError("formal argument cannot be a constant"); 8903 yyVal = null; 8904 } 8905 break; 8906 case 490: 8907 #line 2053 "mrb_parse.jay" 8908 { 8909 yyError("formal argument cannot be an instance variable"); 8910 yyVal = null; 8911 } 8912 break; 8913 case 491: 8914 #line 2058 "mrb_parse.jay" 8915 { 8916 yyError("formal argument cannot be a global variable"); 8917 yyVal = null; 8918 } 8919 break; 8920 case 492: 8921 #line 2063 "mrb_parse.jay" 8922 { 8923 yyError("formal argument cannot be a class variable"); 8924 yyVal = null; 8925 } 8926 break; 8927 case 493: 8928 #line 2070 "mrb_parse.jay" 8929 { 8930 yyVal = null; 8931 } 8932 break; 8933 case 494: 8934 #line 2074 "mrb_parse.jay" 8935 { 8936 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 8937 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 8938 } 8939 break; 8940 case 495: 8941 #line 2081 "mrb_parse.jay" 8942 { 8943 yyVal = new_arg(((mrb_sym)yyVals[0 + yyTop])); 8944 } 8945 break; 8946 case 496: 8947 #line 2085 "mrb_parse.jay" 8948 { 8949 yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); 8950 } 8951 break; 8952 case 497: 8953 #line 2091 "mrb_parse.jay" 8954 { 8955 yyVal = list1(((node)yyVals[0 + yyTop])); 8956 } 8957 break; 8958 case 498: 8959 #line 2095 "mrb_parse.jay" 8960 { 8961 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 8962 } 8963 break; 8964 case 499: 8965 #line 2101 "mrb_parse.jay" 8966 { 8967 local_add_f(((mrb_sym)yyVals[-1 + yyTop])); 8968 yyVal = ((mrb_sym)yyVals[-1 + yyTop]); 8969 } 8970 break; 8971 case 500: 8972 #line 2108 "mrb_parse.jay" 8973 { 8974 yyVal = cons(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8975 } 8976 break; 8977 case 501: 8978 #line 2114 "mrb_parse.jay" 8979 { 8980 yyVal = cons(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); 8981 } 8982 break; 8983 case 502: 8984 #line 2120 "mrb_parse.jay" 8985 { 8986 yyVal = list1(((node)yyVals[0 + yyTop])); 8987 } 8988 break; 8989 case 503: 8990 #line 2124 "mrb_parse.jay" 8991 { 8992 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 8993 } 8994 break; 8995 case 504: 8996 #line 2130 "mrb_parse.jay" 8997 { 8998 yyVal = list1(((node)yyVals[0 + yyTop])); 8999 } 9000 break; 9001 case 505: 9002 #line 2134 "mrb_parse.jay" 9003 { 9004 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 9005 } 9006 break; 9007 case 508: 9008 #line 2144 "mrb_parse.jay" 9009 { 9010 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 9011 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 9012 } 9013 break; 9014 case 509: 9015 #line 2149 "mrb_parse.jay" 9016 { 9017 local_add_f(0); 9018 yyVal = -1; 9019 } 9020 break; 9021 case 512: 9022 #line 2160 "mrb_parse.jay" 9023 { 9024 local_add_f(((mrb_sym)yyVals[0 + yyTop])); 9025 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 9026 } 9027 break; 9028 case 513: 9029 #line 2167 "mrb_parse.jay" 9030 { 9031 yyVal = ((mrb_sym)yyVals[0 + yyTop]); 9032 } 9033 break; 9034 case 514: 9035 #line 2171 "mrb_parse.jay" 9036 { 9037 local_add_f(0); 9038 yyVal = 0; 9039 } 9040 break; 9041 case 515: 9042 #line 2178 "mrb_parse.jay" 9043 { 9044 yyVal = ((node)yyVals[0 + yyTop]); 9045 if (yyVal == null) yyVal = new_nil(); 9046 } 9047 break; 9048 case 516: 9049 #line 2182 "mrb_parse.jay" 9050 { this.lstate = mrb_lex_state_enum.EXPR_BEG; } 9051 break; 9052 case 517: 9053 #line 2183 "mrb_parse.jay" 9054 { 9055 if (((int)yyVals[-1 + yyTop]) == 0) { 9056 yyError("can't define singleton method for ()."); 9057 } 9058 else { 9059 switch ((node_type)(((node)yyVals[-1 + yyTop]).car)) { 9060 case node_type.NODE_STR: 9061 case node_type.NODE_DSTR: 9062 case node_type.NODE_XSTR: 9063 case node_type.NODE_DXSTR: 9064 case node_type.NODE_DREGX: 9065 case node_type.NODE_MATCH: 9066 case node_type.NODE_FLOAT: 9067 case node_type.NODE_ARRAY: 9068 case node_type.NODE_HEREDOC: 9069 yyError("can't define singleton method for literals"); 9070 break; 9071 default: 9072 break; 9073 } 9074 } 9075 yyVal = ((node)yyVals[-1 + yyTop]); 9076 } 9077 break; 9086 yyVal = ((node)yyVals[-1 + yyTop]); 9087 } 9088 break; 9078 9089 case 519: 9079 #line 221 0"mrb_parse.jay"9080 9081 9082 9083 9090 #line 2218 "mrb_parse.jay" 9091 { 9092 yyVal = ((node)yyVals[-1 + yyTop]); 9093 } 9094 break; 9084 9095 case 520: 9085 #line 22 16"mrb_parse.jay"9086 9087 9088 9089 9090 9096 #line 2224 "mrb_parse.jay" 9097 { 9098 yyVal = list1(((node)yyVals[0 + yyTop])); 9099 ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); 9100 } 9101 break; 9091 9102 case 521: 9092 #line 222 1"mrb_parse.jay"9093 9094 9095 9096 9103 #line 2229 "mrb_parse.jay" 9104 { 9105 yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 9106 } 9107 break; 9097 9108 case 522: 9098 #line 2227 "mrb_parse.jay" 9099 { 9100 yyVal = cons(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 9101 } 9102 break; 9109 #line 2235 "mrb_parse.jay" 9110 { 9111 void_expr_error(((node)yyVals[-2 + yyTop])); 9112 void_expr_error(((node)yyVals[0 + yyTop])); 9113 yyVal = cons(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); 9114 } 9115 break; 9103 9116 case 523: 9104 #line 2231 "mrb_parse.jay" 9105 { 9106 yyVal = cons(new_sym(((mrb_sym)yyVals[-1 + yyTop])), ((node)yyVals[0 + yyTop])); 9107 } 9108 break; 9117 #line 2241 "mrb_parse.jay" 9118 { 9119 void_expr_error(((node)yyVals[0 + yyTop])); 9120 yyVal = cons(new_sym(((mrb_sym)yyVals[-1 + yyTop])), ((node)yyVals[0 + yyTop])); 9121 } 9122 break; 9109 9123 case 524: 9110 #line 2235 "mrb_parse.jay" 9111 { 9112 yyVal = cons(new_sym(new_strsym(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 9113 } 9114 break; 9124 #line 2246 "mrb_parse.jay" 9125 { 9126 void_expr_error(((node)yyVals[0 + yyTop])); 9127 yyVal = cons(new_sym(new_strsym(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 9128 } 9129 break; 9115 9130 case 525: 9116 #line 2239 "mrb_parse.jay" 9117 { 9118 yyVal = cons(new_sym(new_strsym(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 9119 } 9120 break; 9131 #line 2251 "mrb_parse.jay" 9132 { 9133 void_expr_error(((node)yyVals[0 + yyTop])); 9134 yyVal = cons(new_sym(new_strsym(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 9135 } 9136 break; 9121 9137 case 526: 9122 #line 2243 "mrb_parse.jay" 9123 { 9124 yyVal = cons(new_dsym(push(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 9125 } 9126 break; 9138 #line 2256 "mrb_parse.jay" 9139 { 9140 void_expr_error(((node)yyVals[0 + yyTop])); 9141 yyVal = cons(new_dsym(push(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); 9142 } 9143 break; 9127 9144 case 539: 9128 #line 22 69"mrb_parse.jay"9129 9130 9131 9132 9145 #line 2283 "mrb_parse.jay" 9146 { 9147 yyVal = (MrbTokens)'.'; 9148 } 9149 break; 9133 9150 case 540: 9134 #line 22 73"mrb_parse.jay"9135 9136 9137 9138 9151 #line 2287 "mrb_parse.jay" 9152 { 9153 yyVal = (MrbTokens)0; 9154 } 9155 break; 9139 9156 case 542: 9140 #line 22 80"mrb_parse.jay"9141 9142 9143 9144 9157 #line 2294 "mrb_parse.jay" 9158 { 9159 yyVal = MrbTokens.tCOLON2; 9160 } 9161 break; 9145 9162 case 552: 9146 #line 23 04"mrb_parse.jay"9147 9148 9163 #line 2318 "mrb_parse.jay" 9164 { yyErrorFlag = 0; } 9165 break; 9149 9166 case 555: 9150 #line 23 10"mrb_parse.jay"9151 9152 9153 9154 9155 9167 #line 2324 "mrb_parse.jay" 9168 { 9169 this.lineno++; 9170 this.column = 0; 9171 } 9172 break; 9156 9173 case 558: 9157 #line 23 21"mrb_parse.jay"9158 9159 9160 9161 9174 #line 2335 "mrb_parse.jay" 9175 { 9176 yyVal = null; 9177 } 9178 break; 9162 9179 #line default 9163 9180 } … … 9190 9207 } 9191 9208 } 9192 #line 23 26"mrb_parse.jay"9209 #line 2340 "mrb_parse.jay" 9193 9210 9194 9211 } // must specify trailing } for parser class -
EcnlProtoTool/trunk/webapp/webmrbc/mrb_parse.jay
r321 r430 10 10 // [this has not been done here to stress-test the skeleton] 11 11 using System; 12 using System.Collections.Generic; 13 using System.Text.RegularExpressions; 12 14 using Bridge; 13 15 using Bridge.Html5; … … 402 404 if ($1 == null) $$ = new_nil(); 403 405 else{ 404 void_expr_error($1);405 406 $$ = $1; 406 407 } … … 414 415 block_command : block_call 415 416 | block_call call_op2 operation2 command_args 417 { 418 $$ = new_call($1, $3, $4, $2); 419 } 416 420 ; 417 421 … … 659 663 | primary_value tCOLON2 cname 660 664 { 665 void_expr_error($1); 661 666 $$ = cons($1, $3); 662 667 } … … 929 934 arg_rhs : arg %prec tOP_ASGN 930 935 { 936 $$ = $1; 937 } 938 | arg modifier_rescue arg 939 { 931 940 void_expr_error($1); 932 $$ = $1; 933 } 934 | arg modifier_rescue arg 935 { 936 void_expr_error($1); 941 void_expr_error($3); 937 942 $$ = new_mod_rescue($1, $3); 938 943 } … … 970 975 call_args : command 971 976 { 977 void_expr_error($1); 972 978 $$ = cons(list1($1), null); 973 979 $<node>$.NODE_LINENO($1); … … 2107 2113 f_opt : f_opt_asgn arg 2108 2114 { 2115 void_expr_error($2); 2109 2116 $$ = cons($1, $2); 2110 2117 } … … 2113 2120 f_block_opt : f_opt_asgn primary_value 2114 2121 { 2122 void_expr_error($2); 2115 2123 $$ = cons($1, $2); 2116 2124 } … … 2226 2234 assoc : arg tASSOC arg 2227 2235 { 2236 void_expr_error($1); 2237 void_expr_error($3); 2228 2238 $$ = cons($1, $3); 2229 2239 } 2230 2240 | tLABEL arg 2231 2241 { 2242 void_expr_error($2); 2232 2243 $$ = cons(new_sym($1), $2); 2233 2244 } 2234 2245 | tLABEL_END arg 2235 2246 { 2247 void_expr_error($2); 2236 2248 $$ = cons(new_sym(new_strsym($1)), $2); 2237 2249 } 2238 2250 | tSTRING_BEG tLABEL_END arg 2239 2251 { 2252 void_expr_error($3); 2240 2253 $$ = cons(new_sym(new_strsym($2)), $3); 2241 2254 } 2242 2255 | tSTRING_BEG string_rep tLABEL_END arg 2243 2256 { 2257 void_expr_error($4); 2244 2258 $$ = cons(new_dsym(push($2, $3)), $4); 2245 2259 }
Note:
See TracChangeset
for help on using the changeset viewer.