727480019a01200094394076cf70dc7cca845afc
[sdk] / compiler / bootstrap / libec / bootstrap / grammar.c
1 /* Code generated from eC source file: grammar.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #if defined(_WIN32)
39 #   if defined(__GNUC__) || defined(__TINYC__)
40 #      define ecere_stdcall __attribute__((__stdcall__))
41 #      define ecere_gcc_struct __attribute__((gcc_struct))
42 #   else
43 #      define ecere_stdcall __stdcall
44 #      define ecere_gcc_struct
45 #   endif
46 #else
47 #   define ecere_stdcall
48 #   define ecere_gcc_struct
49 #endif
50 #include <stdint.h>
51 #include <sys/types.h>
52 enum yytokentype
53 {
54 IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372, WIDE_STRING_LITERAL = 373, BUILTIN_OFFSETOF = 374
55 };
56
57 extern char * yytext;
58
59 int yylex();
60
61 int yyerror();
62
63 unsigned int guess;
64
65 unsigned int deleteWatchable = 0;
66
67 int memberAccessStack[256];
68
69 int defaultMemberAccess = -1;
70
71 typedef unsigned char yytype_uint8;
72
73 typedef signed char yytype_int8;
74
75 typedef unsigned short int yytype_uint16;
76
77 typedef short int yytype_int16;
78
79 void * malloc(size_t);
80
81 void free(void *);
82
83 static const yytype_uint8 yytranslate[] =
84 {
85 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 139, 2, 2, 133, 141, 136, 2, 123, 124, 120, 137, 128, 138, 131, 140, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 132, 126, 121, 127, 122, 144, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 134, 2, 135, 142, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 130, 143, 129, 125, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119
86 };
87
88 static const yytype_uint16 yyprhs[] =
89 {
90 0, 0, 3, 6, 9, 11, 14, 16, 18, 20, 25, 30, 33, 35, 39, 44, 48, 51, 54, 56, 60, 63, 66, 69, 72, 75, 78, 81, 85, 88, 90, 93, 95, 98, 101, 104, 107, 110, 113, 115, 117, 121, 123, 127, 131, 133, 135, 139, 143, 145, 149, 153, 157, 161, 163, 166, 169, 171, 173, 176, 179, 182, 185, 188, 191, 193, 195, 197, 200, 203, 205, 208, 211, 214, 217, 219, 222, 225, 229, 234, 240, 245, 249, 254, 257, 261, 266, 272, 277, 281, 286, 292, 298, 303, 306, 310, 314, 318, 322, 325, 330, 334, 338, 341, 346, 350, 353, 357, 360, 364, 367, 369, 372, 376, 380, 384, 387, 389, 393, 397, 399, 403, 407, 410, 415, 421, 425, 430, 434, 436, 440, 444, 448, 451, 455, 458, 463, 469, 473, 478, 482, 484, 488, 492, 495, 497, 500, 503, 506, 508, 511, 517, 525, 535, 542, 551, 556, 563, 565, 568, 572, 577, 580, 583, 585, 587, 590, 593, 595, 597, 599, 601, 609, 611, 614, 619, 621, 623, 626, 630, 633, 636, 639, 643, 645, 648, 651, 654, 656, 658, 660, 663, 666, 669, 673, 677, 679, 681, 684, 687, 689, 692, 695, 698, 701, 703, 706, 708, 711, 714, 719, 724, 731, 734, 739, 744, 751, 753, 755, 759, 761, 766, 772, 774, 776, 778, 780, 784, 786, 788, 790, 794, 798, 802, 804, 808, 810, 813, 816, 820, 824, 830, 836, 843, 850, 853, 856, 860, 864, 868, 872, 876, 880, 884, 888, 892, 896, 900, 902, 904, 908, 910, 913, 918, 920, 922, 924, 929, 934, 940, 949, 952, 954, 956, 958, 961, 968, 975, 981, 987, 994, 1001, 1007, 1013, 1021, 1029, 1036, 1043, 1051, 1059, 1066, 1073, 1078, 1084, 1089, 1096, 1101, 1103, 1105, 1107, 1109, 1113, 1116, 1118, 1121, 1124, 1127, 1129, 1134, 1139, 1143, 1148, 1153, 1157, 1161, 1164, 1167, 1172, 1177, 1181, 1186, 1190, 1194, 1197, 1200, 1202, 1204, 1208, 1212, 1214, 1216, 1220, 1224, 1227, 1230, 1233, 1236, 1239, 1242, 1247, 1253, 1259, 1262, 1267, 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1301, 1303, 1307, 1311, 1315, 1319, 1323, 1327, 1329, 1333, 1337, 1341, 1345, 1347, 1351, 1355, 1359, 1363, 1366, 1368, 1371, 1375, 1379, 1383, 1387, 1391, 1395, 1399, 1401, 1405, 1409, 1413, 1417, 1421, 1425, 1429, 1433, 1435, 1439, 1443, 1447, 1451, 1453, 1457, 1461, 1465, 1469, 1471, 1475, 1479, 1483, 1487, 1489, 1493, 1497, 1499, 1503, 1507, 1509, 1515, 1521, 1527, 1533, 1539, 1545, 1551, 1557, 1563, 1569, 1575, 1581, 1587, 1593, 1599, 1605, 1607, 1611, 1615, 1619, 1623, 1627, 1631, 1635, 1639, 1641, 1643, 1645, 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1667, 1671, 1674, 1676, 1680, 1684, 1686, 1688, 1691, 1694, 1698, 1702, 1706, 1710, 1714, 1718, 1722, 1725, 1728, 1731, 1734, 1737, 1743, 1750, 1757, 1760, 1766, 1768, 1770, 1772, 1777, 1779, 1783, 1787, 1791, 1795, 1799, 1803, 1805, 1809, 1813, 1817, 1821, 1823, 1827, 1831, 1835, 1839, 1841, 1844, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1874, 1878, 1882, 1886, 1890, 1894, 1898, 1902, 1906, 1908, 1912, 1916, 1920, 1924, 1926, 1930, 1934, 1938, 1942, 1944, 1948, 1952, 1956, 1960, 1962, 1966, 1970, 1972, 1976, 1980, 1982, 1988, 1994, 2000, 2006, 2011, 2016, 2021, 2026, 2032, 2038, 2044, 2050, 2055, 2060, 2065, 2070, 2076, 2082, 2088, 2094, 2100, 2106, 2112, 2118, 2122, 2126, 2129, 2132, 2134, 2138, 2142, 2146, 2150, 2152, 2155, 2159, 2163, 2166, 2169, 2172, 2174, 2177, 2181, 2185, 2187, 2189, 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205, 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2223, 2227, 2229, 2233, 2236, 2238, 2241, 2244, 2247, 2252, 2257, 2261, 2265, 2270, 2276, 2281, 2288, 2295, 2300, 2306, 2311, 2318, 2325, 2331, 2337, 2340, 2343, 2346, 2352, 2356, 2362, 2369, 2375, 2383, 2391, 2400, 2409, 2417, 2425, 2429, 2433, 2437, 2442, 2446, 2452, 2458, 2465, 2473, 2480, 2485, 2487, 2489, 2491, 2493, 2495, 2497, 2499, 2501, 2503, 2506, 2508, 2510, 2512, 2514, 2516, 2518, 2520, 2522, 2524, 2526, 2528, 2530, 2532, 2534, 2536, 2538, 2543, 2548, 2553, 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569, 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, 2603, 2605, 2607, 2612, 2617, 2622, 2624, 2626, 2629, 2632, 2636, 2642, 2645, 2649, 2655, 2661, 2667, 2669, 2673, 2676, 2679, 2683, 2687, 2690, 2694, 2698, 2703, 2707, 2711, 2715, 2719, 2723, 2727, 2732, 2737, 2742, 2744, 2746, 2751, 2755, 2758, 2762, 2766, 2770, 2774, 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2808, 2810, 2812, 2815, 2817, 2820, 2822, 2825, 2827, 2830, 2832, 2835, 2837, 2840, 2842, 2845, 2847, 2850, 2852, 2855, 2857, 2860, 2862, 2865, 2867, 2870, 2872, 2875, 2877, 2880, 2882, 2885, 2887, 2890, 2892, 2895, 2897, 2900, 2902, 2905, 2907, 2910, 2912, 2915, 2917, 2920, 2922, 2925, 2927, 2930, 2932, 2935, 2937, 2940, 2942, 2944, 2946, 2949, 2951, 2954, 2956, 2959, 2961, 2964, 2969, 2975, 2977, 2979, 2981, 2984, 2986, 2989, 2991, 2994, 2996, 2999, 3004, 3010, 3012, 3015, 3017, 3020, 3022, 3025, 3027, 3030, 3032, 3035, 3037, 3040, 3045, 3051, 3053, 3056, 3058, 3061, 3063, 3066, 3068, 3071, 3073, 3076, 3078, 3081, 3086, 3092, 3096, 3100, 3102, 3106, 3110, 3114, 3118, 3120, 3122, 3124, 3129, 3134, 3139, 3143, 3148, 3153, 3158, 3162, 3164, 3168, 3173, 3177, 3182, 3187, 3192, 3197, 3201, 3204, 3208, 3212, 3216, 3220, 3223, 3226, 3229, 3233, 3238, 3240, 3242, 3245, 3249, 3253, 3257, 3261, 3264, 3267, 3270, 3274, 3279, 3281, 3283, 3285, 3287, 3289, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308, 3310, 3312, 3317, 3319, 3322, 3326, 3333, 3339, 3343, 3348, 3351, 3355, 3359, 3363, 3367, 3372, 3377, 3382, 3385, 3389, 3393, 3397, 3402, 3407, 3411, 3416, 3419, 3423, 3427, 3431, 3436, 3441, 3443, 3446, 3449, 3453, 3455, 3457, 3460, 3463, 3467, 3469, 3471, 3474, 3477, 3481, 3483, 3486, 3490, 3493, 3496, 3498, 3501, 3505, 3508, 3510, 3513, 3517, 3521, 3523, 3526, 3530, 3534, 3536, 3539, 3543, 3547, 3549, 3552, 3556, 3560, 3562, 3565, 3569, 3573, 3575, 3579, 3584, 3586, 3591, 3594, 3600, 3604, 3606, 3608, 3610, 3612, 3614, 3616, 3620, 3624, 3627, 3630, 3632, 3634, 3638, 3641, 3645, 3647, 3651, 3655, 3659, 3663, 3667, 3669, 3672, 3676, 3680, 3682, 3685, 3687, 3690, 3693, 3696, 3699, 3703, 3705, 3707, 3711, 3715, 3717, 3721, 3726, 3730, 3735, 3739, 3743, 3748, 3752, 3757, 3759, 3763, 3767, 3772, 3776, 3780, 3784, 3789, 3791, 3795, 3799, 3803, 3807, 3811, 3813, 3817, 3820, 3822, 3824, 3826, 3828, 3830, 3833, 3835, 3837, 3839, 3841, 3844, 3847, 3850, 3852, 3854, 3856, 3858, 3860, 3863, 3865, 3867, 3872, 3880, 3882, 3886, 3887, 3894, 3903, 3914, 3927, 3936, 3947, 3958, 3964, 3972, 3982, 3994, 4002, 4012, 4022, 4026, 4031, 4036, 4040, 4044, 4048, 4053, 4058, 4062, 4066, 4070, 4075, 4080, 4084, 4087, 4091, 4094, 4098, 4103, 4108, 4112, 4116, 4118, 4120, 4122, 4124, 4126, 4129, 4133, 4136, 4139, 4142, 4146, 4150, 4153, 4159, 4166, 4169, 4172, 4175, 4178, 4181, 4184, 4186, 4189, 4192, 4196, 4198, 4201, 4203, 4206, 4209, 4211, 4214, 4217, 4220, 4223, 4226, 4229, 4231, 4233, 4236, 4239, 4241, 4243, 4246, 4249, 4251, 4254, 4257, 4259, 4262, 4264, 4267, 4270, 4276, 4282, 4290, 4298, 4304, 4310, 4314, 4317, 4323, 4328, 4333, 4341, 4348, 4355, 4361, 4369, 4376, 4381, 4389, 4399, 4403, 4408, 4413, 4419, 4425, 4432, 4440, 4447, 4454, 4460, 4466, 4471, 4475, 4478, 4480, 4483, 4488, 4492, 4498, 4503, 4507, 4510, 4513, 4516, 4520, 4524, 4528, 4532, 4535, 4538, 4540, 4542, 4547, 4551, 4556, 4560, 4564, 4567, 4572, 4576, 4581, 4585, 4589, 4592, 4594, 4597, 4599, 4601, 4604, 4606, 4609, 4613, 4617, 4619, 4622, 4625, 4628, 4632, 4637, 4642, 4645, 4648, 4651, 4654, 4656, 4659, 4661, 4664, 4666, 4669, 4672, 4674, 4677, 4679, 4682, 4685, 4688, 4691, 4693, 4696, 4699, 4703, 4705, 4707, 4708, 4715, 4722, 4728, 4733, 4735, 4738, 4741, 4743, 4747, 4751, 4756, 4758, 4760, 4763, 4766, 4773, 4780, 4787
91 };
92
93 static const yytype_int16 yyrhs[] =
94 {
95 391, 0, -1, 217, 120, -1, 217, 121, -1, 150, -1, 217, 217, -1, 28, -1, 28, -1, 148, -1, 148, 121, 211, 122, -1, 148, 121, 211, 11, -1, 300, 335, -1, 333, -1, 300, 123, 124, -1, 125, 300, 123, 124, -1, 78, 300, 335, -1, 78, 333, -1, 300, 336, -1, 334, -1, 78, 300, 336, -1, 78, 334, -1, 151, 375, -1, 154, 375, -1, 154, 126, -1, 152, 375, -1, 153, 375, -1, 151, 126, -1, 151, 325, 126, -1, 151, 376, -1, 155, -1, 154, 376, -1, 156, -1, 156, 126, -1, 299, 335, -1, 299, 337, -1, 299, 336, -1, 159, 375, -1, 159, 376, -1, 160, -1, 159, -1, 225, 127, 340, -1, 340, -1, 225, 127, 341, -1, 225, 127, 1, -1, 341, -1, 163, -1, 165, 128, 163, -1, 166, 128, 163, -1, 164, -1, 165, 128, 164, -1, 166, 128, 164, -1, 165, 128, 1, -1, 166, 128, 1, -1, 128, -1, 165, 126, -1, 166, 126, -1, 167, -1, 161, -1, 170, 167, -1, 170, 161, -1, 168, 167, -1, 168, 161, -1, 170, 126, -1, 168, 126, -1, 126, -1, 168, -1, 165, -1, 168, 165, -1, 170, 165, -1, 162, -1, 169, 162, -1, 170, 162, -1, 168, 162, -1, 168, 166, -1, 166, -1, 165, 1, -1, 172, 129, -1, 172, 1, 129, -1, 299, 217, 130, 170, -1, 299, 217, 130, 169, 1, -1, 299, 217, 130, 169, -1, 299, 217, 130, -1, 299, 217, 130, 1, -1, 174, 129, -1, 174, 1, 129, -1, 300, 217, 130, 170, -1, 300, 217, 130, 169, 1, -1, 300, 217, 130, 169, -1, 300, 217, 130, -1, 300, 217, 130, 1, -1, 301, 217, 130, 169, 129, -1, 301, 217, 130, 170, 129, -1, 301, 217, 130, 129, -1, 177, 129, -1, 177, 1, 129, -1, 150, 130, 169, -1, 217, 130, 169, -1, 150, 130, 170, -1, 150, 130, -1, 150, 130, 169, 1, -1, 150, 130, 1, -1, 217, 130, 170, -1, 217, 130, -1, 217, 130, 169, 1, -1, 217, 130, 1, -1, 179, 129, -1, 179, 1, 129, -1, 130, 170, -1, 130, 169, 1, -1, 130, 1, -1, 130, -1, 130, 169, -1, 225, 127, 340, -1, 225, 127, 341, -1, 225, 127, 1, -1, 225, 1, -1, 180, -1, 182, 128, 180, -1, 183, 128, 180, -1, 181, -1, 182, 128, 181, -1, 183, 128, 181, -1, 182, 1, -1, 68, 305, 217, 130, -1, 68, 305, 329, 217, 130, -1, 68, 305, 130, -1, 68, 305, 329, 130, -1, 68, 1, 130, -1, 184, -1, 185, 69, 375, -1, 185, 70, 375, -1, 185, 95, 375, -1, 185, 91, -1, 185, 97, 219, -1, 185, 129, -1, 99, 305, 217, 130, -1, 99, 305, 329, 217, 130, -1, 99, 305, 130, -1, 99, 305, 329, 130, -1, 99, 1, 130, -1, 187, -1, 188, 69, 375, -1, 188, 70, 375, -1, 188, 129, -1, 217, -1, 190, 217, -1, 190, 375, -1, 73, 375, -1, 191, -1, 192, 191, -1, 88, 123, 190, 124, 375, -1, 88, 123, 244, 124, 130, 192, 129, -1, 244, 131, 88, 123, 244, 124, 130, 192, 129, -1, 89, 123, 244, 128, 190, 124, -1, 244, 131, 89, 123, 244, 128, 190, 124, -1, 89, 123, 244, 124, -1, 244, 131, 89, 123, 244, 124, -1, 90, -1, 90, 190, -1, 225, 131, 90, -1, 244, 131, 90, 190, -1, 198, 126, -1, 182, 126, -1, 157, -1, 186, -1, 363, 157, -1, 363, 186, -1, 189, -1, 91, -1, 93, -1, 94, -1, 99, 123, 217, 124, 127, 340, 126, -1, 126, -1, 363, 132, -1, 363, 123, 217, 124, -1, 158, -1, 300, -1, 300, 287, -1, 363, 300, 287, -1, 363, 300, -1, 363, 176, -1, 363, 173, -1, 98, 300, 287, -1, 193, -1, 92, 217, -1, 92, 150, -1, 96, 217, -1, 176, -1, 173, -1, 182, -1, 174, 1, -1, 177, 1, -1, 363, 158, -1, 363, 174, 1, -1, 363, 177, 1, -1, 183, -1, 197, -1, 199, 197, -1, 200, 197, -1, 198, -1, 199, 1, -1, 200, 1, -1, 199, 198, -1, 200, 198, -1, 300, -1, 300, 329, -1, 300, -1, 300, 329, -1, 65, 217, -1, 65, 217, 127, 202, -1, 65, 217, 132, 201, -1, 65, 217, 132, 201, 127, 202, -1, 65, 149, -1, 65, 149, 127, 202, -1, 65, 149, 132, 201, -1, 65, 149, 132, 201, 127, 202, -1, 217, -1, 217, -1, 217, 127, 204, -1, 234, -1, 300, 217, 127, 206, -1, 300, 329, 217, 127, 206, -1, 203, -1, 205, -1, 207, -1, 208, -1, 209, 128, 208, -1, 206, -1, 204, -1, 202, -1, 217, 127, 206, -1, 217, 127, 204, -1, 217, 127, 202, -1, 210, -1, 211, 128, 210, -1, 65, -1, 212, 217, -1, 212, 148, -1, 217, 212, 217, -1, 217, 212, 148, -1, 212, 217, 121, 209, 122, -1, 212, 148, 121, 209, 122, -1, 217, 212, 217, 121, 209, 122, -1, 217, 212, 148, 121, 209, 122, -1, 216, 129, -1, 215, 126, -1, 213, 130, 129, -1, 215, 130, 129, -1, 212, 217, 126, -1, 212, 147, 126, -1, 213, 132, 304, -1, 213, 130, 200, -1, 215, 130, 200, -1, 213, 130, 199, -1, 215, 130, 199, -1, 213, 130, 1, -1, 215, 130, 1, -1, 3, -1, 221, -1, 123, 246, 124, -1, 386, -1, 133, 386, -1, 133, 386, 131, 386, -1, 4, -1, 217, -1, 176, -1, 85, 123, 375, 124, -1, 85, 123, 246, 124, -1, 85, 123, 347, 124, 338, -1, 85, 123, 347, 124, 123, 347, 124, 338, -1, 220, 217, -1, 220, -1, 219, -1, 118, -1, 123, 124, -1, 71, 307, 330, 134, 266, 135, -1, 71, 307, 330, 134, 267, 135, -1, 71, 307, 134, 266, 135, -1, 71, 307, 134, 267, 135, -1, 102, 307, 330, 134, 266, 135, -1, 102, 307, 330, 134, 267, 135, -1, 102, 307, 134, 266, 135, -1, 102, 307, 134, 267, 135, -1, 72, 266, 306, 330, 134, 266, 135, -1, 72, 266, 306, 330, 134, 267, 135, -1, 72, 266, 306, 134, 266, 135, -1, 72, 266, 306, 134, 267, 135, -1, 103, 266, 306, 330, 134, 266, 135, -1, 103, 266, 306, 330, 134, 267, 135, -1, 103, 266, 306, 134, 266, 135, -1, 103, 266, 306, 134, 267, 135, -1, 65, 123, 299, 124, -1, 65, 123, 299, 329, 124, -1, 65, 123, 217, 124, -1, 104, 123, 244, 128, 347, 124, -1, 98, 123, 217, 124, -1, 398, -1, 399, -1, 400, -1, 401, -1, 134, 226, 135, -1, 134, 135, -1, 178, -1, 179, 1, -1, 123, 246, -1, 123, 264, -1, 218, -1, 225, 134, 246, 135, -1, 225, 134, 264, 135, -1, 225, 123, 124, -1, 225, 123, 226, 124, -1, 225, 123, 227, 124, -1, 225, 131, 217, -1, 225, 7, 217, -1, 225, 8, -1, 225, 9, -1, 248, 134, 246, 135, -1, 248, 134, 264, 135, -1, 248, 123, 124, -1, 248, 123, 226, 124, -1, 248, 131, 217, -1, 248, 7, 217, -1, 248, 8, -1, 248, 9, -1, 244, -1, 222, -1, 226, 128, 244, -1, 226, 128, 222, -1, 263, -1, 223, -1, 226, 128, 263, -1, 226, 128, 223, -1, 226, 128, -1, 8, 229, -1, 9, 229, -1, 230, 231, -1, 230, 222, -1, 6, 229, -1, 6, 123, 348, 124, -1, 6, 123, 65, 147, 124, -1, 6, 123, 65, 146, 124, -1, 109, 229, -1, 109, 123, 348, 124, -1, 119, 123, 348, 128, 217, 124, -1, 228, -1, 225, -1, 136, -1, 120, -1, 137, -1, 138, -1, 125, -1, 139, -1, 73, -1, 84, -1, 229, -1, 123, 347, 124, 231, -1, 231, -1, 232, 120, 231, -1, 232, 140, 231, -1, 232, 141, 231, -1, 252, 120, 231, -1, 252, 140, 231, -1, 252, 141, 231, -1, 232, -1, 233, 137, 232, -1, 233, 138, 232, -1, 253, 137, 232, -1, 253, 138, 232, -1, 233, -1, 234, 10, 233, -1, 234, 11, 233, -1, 254, 10, 233, -1, 254, 11, 233, -1, 236, 121, -1, 234, -1, 235, 234, -1, 236, 122, 234, -1, 236, 12, 234, -1, 236, 13, 234, -1, 255, 121, 234, -1, 255, 122, 234, -1, 255, 12, 234, -1, 255, 13, 234, -1, 236, -1, 237, 14, 236, -1, 237, 15, 236, -1, 256, 14, 236, -1, 256, 15, 236, -1, 237, 14, 222, -1, 237, 15, 222, -1, 256, 14, 222, -1, 256, 15, 222, -1, 237, -1, 238, 136, 237, -1, 257, 136, 237, -1, 238, 136, 222, -1, 257, 136, 222, -1, 238, -1, 239, 142, 238, -1, 258, 142, 238, -1, 239, 142, 222, -1, 258, 142, 222, -1, 239, -1, 240, 143, 239, -1, 259, 143, 239, -1, 240, 143, 222, -1, 259, 143, 222, -1, 240, -1, 241, 16, 240, -1, 260, 16, 240, -1, 241, -1, 242, 17, 241, -1, 261, 17, 241, -1, 242, -1, 242, 144, 246, 132, 243, -1, 242, 144, 264, 132, 243, -1, 261, 144, 246, 132, 243, -1, 261, 144, 264, 132, 243, -1, 242, 144, 247, 132, 243, -1, 242, 144, 265, 132, 243, -1, 261, 144, 247, 132, 243, -1, 261, 144, 265, 132, 243, -1, 242, 144, 246, 132, 222, -1, 242, 144, 264, 132, 222, -1, 261, 144, 246, 132, 222, -1, 261, 144, 264, 132, 222, -1, 242, 144, 247, 132, 222, -1, 242, 144, 265, 132, 222, -1, 261, 144, 247, 132, 222, -1, 261, 144, 265, 132, 222, -1, 243, -1, 229, 245, 244, -1, 250, 245, 244, -1, 243, 245, 244, -1, 262, 245, 244, -1, 229, 245, 222, -1, 250, 245, 222, -1, 243, 245, 222, -1, 262, 245, 222, -1, 127, -1, 18, -1, 19, -1, 20, -1, 21, -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, 27, -1, 244, -1, 246, 128, 244, -1, 264, 128, 244, -1, 264, 124, -1, 222, -1, 246, 128, 222, -1, 264, 128, 222, -1, 224, -1, 1, -1, 225, 1, -1, 177, 1, -1, 225, 7, 1, -1, 248, 7, 1, -1, 225, 123, 226, -1, 225, 123, 227, -1, 225, 131, 1, -1, 248, 123, 227, -1, 248, 131, 1, -1, 8, 250, -1, 9, 250, -1, 230, 251, -1, 230, 223, -1, 6, 250, -1, 6, 123, 348, 124, 1, -1, 6, 123, 65, 147, 124, 1, -1, 6, 123, 65, 146, 124, 1, -1, 109, 250, -1, 109, 123, 348, 124, 1, -1, 249, -1, 248, -1, 250, -1, 123, 347, 124, 251, -1, 251, -1, 232, 120, 251, -1, 232, 140, 251, -1, 232, 141, 251, -1, 252, 120, 251, -1, 252, 140, 251, -1, 252, 141, 251, -1, 252, -1, 233, 137, 252, -1, 233, 138, 252, -1, 253, 137, 252, -1, 253, 138, 252, -1, 253, -1, 234, 10, 253, -1, 234, 11, 253, -1, 254, 10, 253, -1, 254, 11, 253, -1, 254, -1, 235, 254, -1, 236, 122, 254, -1, 236, 12, 254, -1, 236, 13, 254, -1, 255, 121, 254, -1, 255, 122, 254, -1, 255, 12, 254, -1, 255, 13, 254, -1, 255, -1, 237, 14, 255, -1, 237, 15, 255, -1, 256, 14, 255, -1, 256, 15, 255, -1, 237, 14, 223, -1, 237, 15, 223, -1, 256, 14, 223, -1, 256, 15, 223, -1, 256, -1, 238, 136, 256, -1, 257, 136, 256, -1, 238, 136, 223, -1, 257, 136, 223, -1, 257, -1, 239, 142, 257, -1, 258, 142, 257, -1, 239, 142, 223, -1, 258, 142, 223, -1, 258, -1, 240, 143, 258, -1, 259, 143, 258, -1, 240, 143, 223, -1, 259, 143, 223, -1, 259, -1, 241, 16, 259, -1, 260, 16, 259, -1, 260, -1, 242, 17, 260, -1, 261, 17, 260, -1, 261, -1, 242, 144, 246, 132, 261, -1, 242, 144, 264, 132, 261, -1, 261, 144, 246, 132, 261, -1, 261, 144, 264, 132, 261, -1, 242, 144, 246, 132, -1, 242, 144, 264, 132, -1, 261, 144, 246, 132, -1, 261, 144, 264, 132, -1, 242, 144, 247, 132, 261, -1, 242, 144, 265, 132, 261, -1, 261, 144, 247, 132, 261, -1, 261, 144, 265, 132, 261, -1, 242, 144, 247, 132, -1, 242, 144, 265, 132, -1, 261, 144, 247, 132, -1, 261, 144, 265, 132, -1, 242, 144, 246, 132, 223, -1, 242, 144, 264, 132, 223, -1, 261, 144, 246, 132, 223, -1, 261, 144, 264, 132, 223, -1, 242, 144, 247, 132, 223, -1, 242, 144, 265, 132, 223, -1, 261, 144, 247, 132, 223, -1, 261, 144, 265, 132, 223, -1, 242, 144, 132, -1, 261, 144, 132, -1, 242, 144, -1, 261, 144, -1, 262, -1, 229, 245, 263, -1, 250, 245, 263, -1, 229, 245, 223, -1, 250, 245, 223, -1, 263, -1, 244, 1, -1, 246, 128, 263, -1, 264, 128, 263, -1, 246, 246, -1, 264, 246, -1, 246, 264, -1, 223, -1, 222, 1, -1, 246, 128, 223, -1, 264, 128, 223, -1, 243, -1, 262, -1, 29, -1, 30, -1, 31, -1, 117, -1, 32, -1, 33, -1, 116, -1, 29, -1, 30, -1, 31, -1, 117, -1, 32, -1, 33, -1, 116, -1, 217, -1, 217, 127, 266, -1, 217, 127, 267, -1, 270, -1, 271, 128, 270, -1, 271, 128, -1, 50, -1, 272, 217, -1, 272, 150, -1, 275, 129, -1, 272, 217, 130, 129, -1, 272, 150, 130, 129, -1, 272, 130, 271, -1, 272, 130, 1, -1, 272, 217, 130, 271, -1, 272, 217, 130, 271, 1, -1, 272, 217, 130, 1, -1, 272, 217, 130, 271, 126, 199, -1, 272, 217, 130, 271, 126, 200, -1, 272, 150, 130, 271, -1, 272, 150, 130, 271, 1, -1, 272, 150, 130, 1, -1, 272, 150, 130, 271, 126, 199, -1, 272, 150, 130, 271, 126, 200, -1, 272, 217, 130, 271, 126, -1, 272, 150, 130, 271, 126, -1, 272, 217, -1, 272, 150, -1, 278, 129, -1, 276, 132, 304, 130, 129, -1, 276, 130, 129, -1, 276, 132, 304, 130, 271, -1, 276, 132, 304, 130, 271, 1, -1, 276, 132, 304, 130, 1, -1, 276, 132, 304, 130, 271, 126, 199, -1, 276, 132, 304, 130, 271, 126, 200, -1, 276, 132, 304, 130, 271, 1, 126, 199, -1, 276, 132, 304, 130, 271, 1, 126, 200, -1, 276, 132, 304, 130, 1, 126, 199, -1, 276, 132, 304, 130, 1, 126, 200, -1, 272, 130, 271, -1, 272, 130, 1, -1, 276, 130, 271, -1, 276, 130, 271, 1, -1, 276, 130, 1, -1, 276, 130, 271, 126, 199, -1, 276, 130, 271, 126, 200, -1, 276, 132, 304, 130, 271, 126, -1, 276, 132, 304, 130, 271, 1, 126, -1, 276, 132, 304, 130, 1, 126, -1, 276, 130, 271, 126, -1, 277, -1, 294, -1, 278, -1, 295, -1, 320, -1, 44, -1, 45, -1, 281, -1, 282, -1, 283, 282, -1, 46, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, 47, -1, 39, -1, 42, -1, 43, -1, 40, -1, 41, -1, 85, -1, 291, -1, 273, -1, 147, -1, 87, 123, 244, 124, -1, 100, 123, 147, 124, -1, 100, 123, 217, 124, -1, 66, -1, 82, -1, 83, -1, 113, -1, 112, -1, 114, -1, 115, -1, 46, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, 47, -1, 39, -1, 42, -1, 43, -1, 40, -1, 41, -1, 85, -1, 291, -1, 273, -1, 150, -1, 113, -1, 112, -1, 114, -1, 115, -1, 87, 123, 244, 124, -1, 100, 123, 147, 124, -1, 100, 123, 217, 124, -1, 66, -1, 337, -1, 337, 325, -1, 132, 266, -1, 337, 132, 266, -1, 337, 132, 266, 132, 266, -1, 132, 267, -1, 337, 132, 267, -1, 337, 132, 266, 132, 267, -1, 337, 132, 267, 132, 267, -1, 337, 132, 267, 132, 266, -1, 286, -1, 287, 128, 286, -1, 296, 217, -1, 296, 148, -1, 296, 320, 217, -1, 296, 320, 148, -1, 290, 129, -1, 288, 130, 129, -1, 296, 130, 129, -1, 296, 320, 130, 129, -1, 288, 130, 199, -1, 288, 130, 200, -1, 288, 130, 1, -1, 296, 130, 199, -1, 296, 130, 200, -1, 296, 130, 1, -1, 296, 320, 130, 199, -1, 296, 320, 130, 200, -1, 296, 320, 130, 1, -1, 288, -1, 288, -1, 288, 121, 209, 122, -1, 292, 132, 304, -1, 295, 129, -1, 293, 130, 129, -1, 292, 130, 129, -1, 296, 130, 129, -1, 293, 130, 199, -1, 293, 130, 200, -1, 293, 130, 1, -1, 292, 130, 199, -1, 292, 130, 200, -1, 292, 130, 1, -1, 296, 130, 199, -1, 296, 130, 200, -1, 296, 130, 1, -1, 48, -1, 49, -1, 282, -1, 297, 282, -1, 284, -1, 297, 284, -1, 274, -1, 297, 274, -1, 289, -1, 297, 289, -1, 282, -1, 298, 282, -1, 284, -1, 298, 284, -1, 146, -1, 298, 146, -1, 274, -1, 298, 274, -1, 289, -1, 298, 289, -1, 268, -1, 299, 268, -1, 282, -1, 299, 282, -1, 285, -1, 299, 285, -1, 274, -1, 299, 274, -1, 289, -1, 299, 289, -1, 268, -1, 300, 268, -1, 282, -1, 300, 282, -1, 284, -1, 300, 284, -1, 146, -1, 300, 146, -1, 289, -1, 300, 289, -1, 274, -1, 300, 274, -1, 269, -1, 301, 269, -1, 282, -1, 301, 282, -1, 284, -1, 301, 284, -1, 146, -1, 301, 146, -1, 279, -1, 301, 279, -1, 280, -1, 301, 280, -1, 81, -1, 80, -1, 268, -1, 303, 268, -1, 282, -1, 303, 282, -1, 285, -1, 303, 285, -1, 217, -1, 303, 217, -1, 217, 121, 211, 122, -1, 303, 217, 121, 211, 122, -1, 303, -1, 296, -1, 268, -1, 305, 268, -1, 282, -1, 305, 282, -1, 285, -1, 305, 285, -1, 217, -1, 305, 217, -1, 217, 121, 211, 122, -1, 305, 217, 121, 211, 122, -1, 268, -1, 306, 268, -1, 282, -1, 306, 282, -1, 285, -1, 306, 285, -1, 289, -1, 306, 289, -1, 274, -1, 306, 274, -1, 217, -1, 306, 217, -1, 217, 121, 211, 122, -1, 306, 217, 121, 211, 122, -1, 268, -1, 307, 268, -1, 282, -1, 307, 282, -1, 285, -1, 307, 285, -1, 289, -1, 307, 289, -1, 274, -1, 307, 274, -1, 217, -1, 307, 217, -1, 217, 121, 211, 122, -1, 307, 217, 121, 211, 122, -1, 309, 128, 1, -1, 308, 128, 1, -1, 217, -1, 309, 128, 217, -1, 308, 128, 217, -1, 351, 128, 217, -1, 352, 128, 217, -1, 311, -1, 148, -1, 37, -1, 148, 134, 266, 135, -1, 148, 134, 267, 135, -1, 148, 134, 147, 135, -1, 148, 134, 135, -1, 310, 134, 266, 135, -1, 310, 134, 267, 135, -1, 310, 134, 147, 135, -1, 310, 134, 135, -1, 217, -1, 123, 331, 124, -1, 123, 320, 331, 124, -1, 123, 332, 124, -1, 123, 320, 332, 124, -1, 311, 134, 266, 135, -1, 311, 134, 267, 135, -1, 311, 134, 147, 135, -1, 311, 134, 135, -1, 311, 123, -1, 312, 353, 124, -1, 312, 354, 124, -1, 312, 309, 124, -1, 312, 308, 124, -1, 312, 124, -1, 312, 308, -1, 312, 1, -1, 312, 351, 123, -1, 312, 300, 217, 123, -1, 313, -1, 311, -1, 310, 123, -1, 316, 353, 124, -1, 316, 354, 124, -1, 316, 309, 124, -1, 316, 308, 124, -1, 316, 124, -1, 316, 308, -1, 316, 1, -1, 316, 351, 123, -1, 316, 300, 217, 123, -1, 317, -1, 310, -1, 74, -1, 75, -1, 325, -1, 86, 123, 386, 124, -1, 79, -1, 110, -1, 111, -1, 3, -1, 28, -1, 75, -1, 74, -1, 44, -1, 322, -1, 322, 123, 246, 124, -1, 323, -1, 324, 323, -1, 324, 128, 323, -1, 321, 123, 123, 324, 124, 124, -1, 321, 123, 123, 124, 124, -1, 123, 329, 124, -1, 123, 320, 329, 124, -1, 134, 135, -1, 134, 266, 135, -1, 134, 267, 135, -1, 134, 147, 135, -1, 326, 134, 135, -1, 326, 134, 266, 135, -1, 326, 134, 147, 135, -1, 326, 134, 267, 135, -1, 123, 124, -1, 123, 353, 124, -1, 123, 354, 124, -1, 326, 123, 124, -1, 326, 123, 353, 124, -1, 326, 123, 354, 124, -1, 123, 330, 124, -1, 123, 320, 330, 124, -1, 123, 124, -1, 123, 353, 124, -1, 123, 354, 124, -1, 327, 123, 124, -1, 327, 123, 353, 124, -1, 327, 123, 354, 124, -1, 120, -1, 120, 283, -1, 120, 328, -1, 120, 283, 328, -1, 328, -1, 326, -1, 328, 326, -1, 320, 328, -1, 320, 328, 326, -1, 328, -1, 327, -1, 328, 327, -1, 320, 328, -1, 320, 328, 327, -1, 315, -1, 328, 315, -1, 320, 328, 315, -1, 331, 320, -1, 337, 320, -1, 319, -1, 328, 319, -1, 320, 328, 319, -1, 332, 320, -1, 313, -1, 328, 313, -1, 320, 328, 313, -1, 328, 320, 313, -1, 314, -1, 328, 314, -1, 320, 328, 314, -1, 328, 320, 314, -1, 317, -1, 328, 317, -1, 320, 328, 317, -1, 328, 320, 317, -1, 318, -1, 328, 318, -1, 320, 328, 318, -1, 328, 320, 318, -1, 310, -1, 328, 310, -1, 320, 328, 310, -1, 328, 320, 310, -1, 244, -1, 130, 342, 129, -1, 130, 342, 128, 129, -1, 263, -1, 130, 342, 129, 1, -1, 130, 342, -1, 130, 342, 128, 129, 1, -1, 130, 342, 128, -1, 243, -1, 222, -1, 262, -1, 223, -1, 338, -1, 339, -1, 342, 128, 338, -1, 342, 128, 339, -1, 342, 338, -1, 342, 339, -1, 331, -1, 332, -1, 331, 127, 338, -1, 331, 1, -1, 331, 127, 339, -1, 343, -1, 345, 128, 343, -1, 37, 128, 343, -1, 38, 128, 343, -1, 148, 128, 343, -1, 346, 128, 343, -1, 344, -1, 343, 1, -1, 345, 128, 344, -1, 346, 128, 344, -1, 297, -1, 297, 329, -1, 298, -1, 298, 329, -1, 300, 332, -1, 300, 329, -1, 300, 136, -1, 300, 136, 332, -1, 300, -1, 65, -1, 300, 332, 1, -1, 300, 329, 1, -1, 349, -1, 351, 128, 349, -1, 351, 1, 128, 349, -1, 352, 128, 349, -1, 352, 1, 128, 349, -1, 1, 128, 349, -1, 309, 128, 349, -1, 309, 1, 128, 349, -1, 308, 128, 349, -1, 308, 1, 128, 349, -1, 350, -1, 351, 128, 350, -1, 352, 128, 350, -1, 352, 1, 128, 350, -1, 1, 128, 350, -1, 309, 128, 350, -1, 308, 128, 350, -1, 308, 1, 128, 350, -1, 351, -1, 351, 128, 51, -1, 352, 128, 51, -1, 309, 128, 51, -1, 308, 128, 51, -1, 1, 128, 51, -1, 352, -1, 351, 128, 1, -1, 352, 1, -1, 360, -1, 325, -1, 375, -1, 126, -1, 132, -1, 246, 126, -1, 378, -1, 380, -1, 382, -1, 359, -1, 196, 126, -1, 195, 126, -1, 194, 126, -1, 361, -1, 381, -1, 376, -1, 379, -1, 383, -1, 382, 1, -1, 264, -1, 386, -1, 386, 123, 244, 124, -1, 134, 217, 135, 386, 123, 244, 124, -1, 357, -1, 358, 128, 357, -1, -1, 86, 282, 123, 386, 124, 126, -1, 86, 282, 123, 386, 132, 358, 124, 126, -1, 86, 282, 123, 386, 132, 358, 132, 358, 124, 126, -1, 86, 282, 123, 386, 132, 358, 132, 358, 132, 358, 124, 126, -1, 86, 282, 123, 386, 3, 358, 124, 126, -1, 86, 282, 123, 386, 3, 358, 132, 358, 124, 126, -1, 86, 282, 123, 386, 132, 358, 3, 358, 124, 126, -1, 86, 123, 386, 124, 126, -1, 86, 123, 386, 132, 358, 124, 126, -1, 86, 123, 386, 132, 358, 132, 358, 124, 126, -1, 86, 123, 386, 132, 358, 132, 358, 132, 358, 124, 126, -1, 86, 123, 386, 3, 358, 124, 126, -1, 86, 123, 386, 3, 358, 132, 358, 124, 126, -1, 86, 123, 386, 132, 358, 3, 358, 124, 126, -1, 217, 132, 355, -1, 52, 266, 132, 355, -1, 52, 267, 132, 355, -1, 52, 132, 355, -1, 53, 132, 355, -1, 217, 132, 364, -1, 52, 266, 132, 364, -1, 52, 267, 132, 364, -1, 52, 132, 364, -1, 53, 132, 364, -1, 217, 132, 356, -1, 52, 266, 132, 356, -1, 52, 267, 132, 356, -1, 52, 132, 356, -1, 52, 132, -1, 53, 132, 356, -1, 53, 132, -1, 217, 132, 367, -1, 52, 266, 132, 367, -1, 52, 267, 132, 367, -1, 52, 132, 367, -1, 53, 132, 367, -1, 80, -1, 81, -1, 53, -1, 80, -1, 81, -1, 299, 126, -1, 299, 345, 126, -1, 171, 126, -1, 367, 126, -1, 301, 126, -1, 301, 345, 126, -1, 302, 345, 126, -1, 175, 126, -1, 77, 217, 127, 243, 126, -1, 31, 77, 217, 127, 243, 126, -1, 301, 1, -1, 299, 1, -1, 367, 1, -1, 172, 1, -1, 171, 1, -1, 299, 346, -1, 364, -1, 368, 364, -1, 369, 364, -1, 368, 1, 126, -1, 367, -1, 368, 367, -1, 355, -1, 370, 355, -1, 371, 355, -1, 356, -1, 370, 356, -1, 371, 356, -1, 370, 364, -1, 371, 364, -1, 370, 367, -1, 371, 367, -1, 370, -1, 368, -1, 368, 370, -1, 369, 370, -1, 371, -1, 369, -1, 368, 371, -1, 369, 371, -1, 130, -1, 376, 129, -1, 374, 373, -1, 374, -1, 374, 372, -1, 126, -1, 246, 126, -1, 264, 126, -1, 54, 123, 246, 124, 355, -1, 54, 123, 264, 124, 355, -1, 54, 123, 246, 124, 355, 64, 355, -1, 54, 123, 264, 124, 355, 64, 355, -1, 55, 123, 246, 124, 355, -1, 55, 123, 264, 124, 355, -1, 54, 123, 264, -1, 378, 1, -1, 56, 123, 246, 124, 355, -1, 56, 123, 264, 355, -1, 56, 123, 124, 355, -1, 57, 355, 56, 123, 246, 124, 126, -1, 57, 355, 56, 123, 264, 126, -1, 58, 123, 377, 377, 124, 355, -1, 58, 123, 377, 124, 355, -1, 58, 123, 377, 377, 246, 124, 355, -1, 58, 123, 377, 377, 264, 355, -1, 58, 123, 124, 355, -1, 58, 123, 217, 132, 246, 124, 355, -1, 58, 123, 217, 132, 246, 126, 246, 124, 355, -1, 58, 123, 1, -1, 58, 123, 264, 1, -1, 58, 123, 377, 1, -1, 58, 123, 377, 264, 1, -1, 58, 123, 377, 377, 264, -1, 58, 123, 377, 377, 124, 356, -1, 58, 123, 377, 377, 246, 124, 356, -1, 58, 123, 377, 377, 264, 356, -1, 57, 355, 56, 123, 246, 124, -1, 57, 355, 56, 123, 246, -1, 57, 355, 56, 123, 264, -1, 57, 355, 56, 123, -1, 57, 355, 56, -1, 57, 355, -1, 57, -1, 56, 1, -1, 56, 123, 124, 1, -1, 56, 123, 264, -1, 56, 123, 246, 124, 356, -1, 56, 123, 264, 356, -1, 59, 217, 126, -1, 60, 126, -1, 61, 126, -1, 62, 126, -1, 62, 246, 126, -1, 62, 264, 126, -1, 62, 222, 126, -1, 62, 223, 126, -1, 62, 264, -1, 62, 223, -1, 62, -1, 59, -1, 301, 333, 368, 375, -1, 301, 333, 375, -1, 301, 335, 368, 375, -1, 301, 335, 375, -1, 333, 368, 375, -1, 333, 375, -1, 301, 333, 368, 376, -1, 301, 333, 376, -1, 301, 335, 368, 376, -1, 301, 335, 376, -1, 333, 368, 376, -1, 333, 376, -1, 5, -1, 386, 5, -1, 384, -1, 214, -1, 301, 214, -1, 365, -1, 76, 386, -1, 76, 31, 386, -1, 76, 217, 386, -1, 126, -1, 362, 384, -1, 362, 214, -1, 362, 365, -1, 362, 76, 386, -1, 362, 76, 31, 386, -1, 362, 76, 217, 386, -1, 362, 132, -1, 31, 132, -1, 101, 217, -1, 101, 150, -1, 392, -1, 362, 392, -1, 216, -1, 301, 216, -1, 385, -1, 362, 216, -1, 362, 385, -1, 366, -1, 362, 366, -1, 388, -1, 390, 388, -1, 389, 388, -1, 390, 1, -1, 389, 1, -1, 387, -1, 390, 387, -1, 389, 214, -1, 389, 362, 214, -1, 390, -1, 389, -1, -1, 105, 386, 217, 130, 397, 129, -1, 105, 386, 150, 130, 397, 129, -1, 105, 386, 130, 397, 129, -1, 300, 217, 386, 126, -1, 217, -1, 122, 217, -1, 121, 217, -1, 394, -1, 395, 128, 394, -1, 107, 395, 126, -1, 107, 395, 217, 126, -1, 393, -1, 396, -1, 397, 393, -1, 397, 396, -1, 108, 123, 244, 128, 244, 124, -1, 106, 123, 386, 128, 217, 124, -1, 107, 123, 386, 128, 217, 124, -1, 105, 123, 386, 124, -1
96 };
97
98 static const yytype_uint16 yyrline[] =
99 {
100 0, 284, 284, 303, 342, 343, 423, 427, 430, 431, 432, 471, 473, 478, 483, 488, 490, 495, 497, 502, 504, 509, 511, 513, 515, 517, 521, 525, 538, 540, 542, 544, 546, 552, 554, 559, 564, 569, 571, 573, 578, 579, 583, 584, 595, 599, 600, 602, 607, 608, 610, 613, 625, 636, 655, 657, 662, 663, 664, 665, 666, 667, 668, 669, 682, 686, 687, 688, 689, 693, 694, 695, 696, 697, 698, 699, 703, 705, 710, 712, 714, 716, 718, 748, 750, 755, 757, 759, 761, 763, 792, 794, 796, 801, 803, 808, 810, 814, 816, 818, 820, 825, 828, 831, 834, 899, 901, 906, 908, 910, 912, 914, 945, 949, 950, 951, 955, 956, 957, 961, 962, 963, 964, 968, 971, 974, 977, 980, 985, 986, 988, 990, 992, 994, 999, 1003, 1006, 1009, 1012, 1015, 1020, 1021, 1023, 1028, 1032, 1034, 1039, 1041, 1046, 1048, 1053, 1058, 1060, 1065, 1067, 1069, 1071, 1076, 1078, 1080, 1082, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1099, 1100, 1102, 1106, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1124, 1125, 1129, 1130, 1131, 1135, 1139, 1140, 1141, 1145, 1146, 1147, 1148, 1149, 1153, 1154, 1166, 1167, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1182, 1186, 1187, 1191, 1199, 1200, 1204, 1205, 1206, 1210, 1211, 1215, 1216, 1217, 1218, 1219, 1220, 1260, 1261, 1265, 1273, 1274, 1282, 1283, 1285, 1286, 1295, 1296, 1300, 1307, 1314, 1320, 1327, 1333, 1342, 1349, 1355, 1361, 1367, 1373, 1379, 1390, 1395, 1396, 1401, 1402, 1403, 1407, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1455, 1456, 1457, 1458, 1459, 1461, 1462, 1466, 1470, 1474, 1475, 1479, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1525, 1526, 1527, 1528, 1532, 1533, 1534, 1535, 1536, 1540, 1541, 1542, 1543, 1545, 1546, 1547, 1548, 1551, 1552, 1554, 1558, 1559, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1579, 1580, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1594, 1595, 1596, 1597, 1598, 1602, 1603, 1604, 1605, 1606, 1610, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1630, 1631, 1632, 1633, 1634, 1636, 1637, 1638, 1639, 1643, 1644, 1645, 1647, 1648, 1652, 1653, 1654, 1656, 1657, 1661, 1662, 1663, 1665, 1666, 1670, 1671, 1672, 1676, 1677, 1678, 1682, 1683, 1684, 1685, 1686, 1688, 1689, 1690, 1691, 1693, 1694, 1695, 1696, 1698, 1699, 1700, 1701, 1705, 1706, 1707, 1708, 1709, 1711, 1712, 1713, 1714, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1732, 1733, 1734, 1735, 1739, 1740, 1741, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1754, 1759, 1761, 1766, 1794, 1795, 1796, 1797, 1799, 1800, 1801, 1802, 1804, 1805, 1809, 1810, 1819, 1820, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1834, 1835, 1839, 1843, 1847, 1854, 1855, 1856, 1857, 1858, 1862, 1863, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1916, 1917, 1918, 1919, 1920, 1927, 1928, 1929, 1930, 1934, 1935, 1936, 1938, 1939, 1943, 1944, 1945, 1947, 1948, 1952, 1953, 1954, 1956, 1957, 1961, 1962, 1963, 1967, 1968, 1969, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2002, 2010, 2014, 2019, 2026, 2027, 2031, 2036, 2037, 2041, 2042, 2043, 2044, 2050, 2051, 2052, 2056, 2057, 2058, 2059, 2063, 2065, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2089, 2090, 2091, 2095, 2096, 2097, 2101, 2105, 2106, 2110, 2111, 2112, 2116, 2117, 2119, 2120, 2121, 2122, 2123, 2125, 2126, 2127, 2128, 2129, 2131, 2132, 2136, 2137, 2141, 2142, 2143, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2157, 2158, 2160, 2161, 2162, 2163, 2164, 2166, 2167, 2168, 2169, 2173, 2174, 2178, 2179, 2183, 2187, 2188, 2189, 2194, 2195, 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, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2257, 2259, 2261, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2280, 2281, 2285, 2291, 2297, 2304, 2314, 2315, 2316, 2317, 2321, 2322, 2323, 2325, 2326, 2327, 2329, 2330, 2331, 2335, 2339, 2347, 2356, 2365, 2366, 2368, 2369, 2373, 2380, 2387, 2390, 2403, 2417, 2420, 2422, 2424, 2429, 2430, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2499, 2500, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2514, 2516, 2524, 2534, 2535, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2555, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2584, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2613, 2622, 2623, 2627, 2628, 2629, 2630, 2631, 2635, 2636, 2643, 2645, 2654, 2663, 2672, 2681, 2682, 2683, 2684, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2700, 2704, 2705, 2706, 2707, 2708, 2713, 2722, 2731, 2740, 2754, 2755, 2760, 2764, 2765, 2766, 2767, 2768, 2773, 2782, 2791, 2800, 2814, 2815, 2864, 2865, 2866, 2867, 2879, 2880, 2881, 2886, 2887, 2888, 2889, 2890, 2894, 2895, 2899, 2900, 2901, 2905, 2906, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2940, 2941, 2942, 2943, 2947, 2948, 2949, 2950, 2951, 2955, 2956, 2957, 2958, 2959, 2963, 2964, 2966, 2968, 2970, 2975, 2976, 2978, 2980, 2985, 2986, 2987, 2988, 2992, 2993, 2994, 2995, 2999, 3000, 3001, 3002, 3006, 3007, 3008, 3009, 3013, 3014, 3015, 3016, 3020, 3021, 3022, 3039, 3040, 3041, 3042, 3055, 3072, 3073, 3078, 3079, 3083, 3084, 3085, 3086, 3089, 3090, 3094, 3095, 3096, 3100, 3104, 3108, 3109, 3110, 3111, 3112, 3121, 3130, 3131, 3132, 3133, 3137, 3138, 3142, 3143, 3148, 3149, 3150, 3151, 3152, 3153, 3172, 3173, 3177, 3178, 3179, 3180, 3181, 3182, 3184, 3185, 3186, 3187, 3191, 3192, 3193, 3194, 3195, 3197, 3198, 3199, 3203, 3204, 3205, 3206, 3207, 3208, 3212, 3213, 3214, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3245, 3246, 3247, 3251, 3252, 3253, 3257, 3258, 3259, 3260, 3262, 3263, 3264, 3266, 3267, 3268, 3269, 3271, 3272, 3273, 3277, 3278, 3279, 3280, 3281, 3283, 3284, 3285, 3286, 3287, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3299, 3300, 3301, 3302, 3303, 3307, 3308, 3309, 3313, 3314, 3318, 3319, 3320, 3321, 3325, 3326, 3327, 3329, 3330, 3331, 3335, 3339, 3340, 3342, 3343, 3344, 3348, 3349, 3350, 3351, 3355, 3356, 3360, 3361, 3362, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3376, 3377, 3378, 3379, 3383, 3384, 3385, 3386, 3390, 3394, 3398, 3400, 3403, 3409, 3410, 3411, 3415, 3416, 3417, 3418, 3419, 3420, 3424, 3425, 3429, 3430, 3431, 3433, 3434, 3436, 3437, 3438, 3439, 3440, 3442, 3443, 3447, 3448, 3449, 3450, 3454, 3455, 3456, 3457, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3468, 3472, 3473, 3477, 3478, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3493, 3494, 3495, 3496, 3502, 3503, 3505, 3506, 3509, 3510, 3513, 3514, 3515, 3516, 3517, 3518, 3522, 3523, 3535, 3536, 3539, 3542, 3544, 3545, 3546, 3556, 3558, 3559, 3561, 3562, 3563, 3564, 3574, 3575, 3576, 3577, 3578, 3579, 3583, 3584, 3593, 3595, 3596, 3598, 3600, 3604, 3605, 3606, 3607, 3608, 3612, 3613, 3614, 3616, 3621, 3622, 3623, 3627, 3628, 3629, 3633, 3637, 3638, 3639, 3643, 3644, 3648, 3649, 3653, 3654, 3655, 3656, 3660, 3664, 3668, 3672
101 };
102
103 static const char * const yytname[] =
104 {
105 "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT", "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR", "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT", "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION", "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO", "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS", "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP", "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE", "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT", "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING", "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION", "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY", "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS", "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD", "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "BOOL", "_BOOL", "_COMPLEX", "_IMAGINARY", "RESTRICT", "THREAD", "WIDE_STRING_LITERAL", "BUILTIN_OFFSETOF", "'*'", "'<'", "'>'", "'('", "')'", "'~'", "';'", "'='", "','", "'}'", "'{'", "'.'", "':'", "'$'", "'['", "']'", "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "$accept", "guess_type", "type", "base_strict_type", "base_strict_type_name", "strict_type", "class_function_definition_start", "constructor_function_definition_start", "destructor_function_definition_start", "virtual_class_function_definition_start", "class_function_definition_start_error", "virtual_class_function_definition_start_error", "class_function_definition", "class_function_definition_error", "instance_class_function_definition_start", "instance_class_function_definition_start_error", "instance_class_function_definition", "instance_class_function_definition_error", "data_member_initialization", "data_member_initialization_error", "data_member_initialization_list", "data_member_initialization_list_error", "data_member_initialization_list_coloned", "members_initialization_list_coloned", "members_initialization_list", "members_initialization_list_error", "instantiation_named", "instantiation_named_error", "guess_instantiation_named", "guess_instantiation_named_error", "external_guess_instantiation_named", "instantiation_unnamed", "instantiation_unnamed_error", "instantiation_anon", "instantiation_anon_error", "default_property", "default_property_error", "default_property_list", "default_property_list_error", "property_start", "property_body", "property", "class_property_start", "class_property_body", "class_property", "watch_property_list", "property_watch", "property_watch_list", "self_watch_definition", "watch_definition", "stopwatching", "firewatchers", "struct_declaration", "struct_declaration_error", "struct_declaration_list", "struct_declaration_list_error", "template_datatype", "template_type_argument", "template_type_parameter", "template_identifier_argument", "template_identifier_parameter", "template_expression_argument", "template_expression_parameter", "template_parameter", "template_parameters_list", "template_argument", "template_arguments_list", "class_entry", "class_decl", "class", "class_head", "class_error", "identifier", "primary_expression", "i18n_string", "constant", "simple_primary_expression", "anon_instantiation_expression", "anon_instantiation_expression_error", "primary_expression_error", "postfix_expression", "argument_expression_list", "argument_expression_list_error", "common_unary_expression", "unary_expression", "unary_operator", "cast_expression", "multiplicative_expression", "additive_expression", "shift_expression", "relational_expression_smaller_than", "relational_expression", "equality_expression", "and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression", "logical_or_expression", "conditional_expression", "assignment_expression", "assignment_operator", "expression", "expression_anon_inst", "postfix_expression_error", "common_unary_expression_error", "unary_expression_error", "cast_expression_error", "multiplicative_expression_error", "additive_expression_error", "shift_expression_error", "relational_expression_error", "equality_expression_error", "and_expression_error", "exclusive_or_expression_error", "inclusive_or_expression_error", "logical_and_expression_error", "logical_or_expression_error", "conditional_expression_error", "assignment_expression_error", "expression_error", "expression_anon_inst_error", "constant_expression", "constant_expression_error", "storage_class_specifier", "external_storage_class_specifier", "enumerator", "enumerator_list", "enum_specifier", "enum_specifier_nocompound", "enum_specifier_compound", "enum_specifier_compound_error", "enum_decl", "enum_class", "enum_class_error", "class_specifier", "class_specifier_error", "ext_storage", "type_qualifier", "type_qualifier_list", "type_specifier", "strict_type_specifier", "struct_declarator", "struct_declarator_list", "struct_entry", "struct_or_union_specifier_compound", "struct_or_union_specifier_compound_error", "struct_or_union_specifier_nocompound", "struct_decl", "struct_head", "struct_class", "struct_class_error", "struct_or_union", "specifier_qualifier_list", "guess_specifier_qualifier_list", "declaration_specifiers", "guess_declaration_specifiers", "external_guess_declaration_specifiers", "external_guess_declaration_specifiers_error", "_inheritance_specifiers", "inheritance_specifiers", "property_specifiers", "renew_specifiers", "new_specifiers", "identifier_list_error", "identifier_list", "direct_declarator_nofunction_type_ok", "direct_declarator_nofunction", "direct_declarator_function_start", "direct_declarator_function", "direct_declarator_function_error", "direct_declarator", "direct_declarator_function_start_type_ok", "direct_declarator_function_type_ok", "direct_declarator_function_error_type_ok", "direct_declarator_type_ok", "ext_decl", "_attrib", "attribute_word", "attribute", "attribs_list", "attrib", "direct_abstract_declarator", "direct_abstract_declarator_noarray", "pointer", "abstract_declarator", "abstract_declarator_noarray", "declarator", "declarator_type_ok", "declarator_function", "declarator_function_error", "declarator_function_type_ok", "declarator_function_error_type_ok", "declarator_nofunction_type_ok", "initializer", "initializer_error", "initializer_condition", "initializer_condition_error", "initializer_list", "init_declarator", "init_declarator_error", "init_declarator_list", "init_declarator_list_error", "type_name", "guess_type_name", "parameter_declaration", "parameter_declaration_error", "parameter_list", "parameter_list_error", "parameter_type_list", "parameter_type_list_error", "statement", "statement_error", "asm_field", "asm_field_list", "asm_statement", "labeled_statement", "labeled_statement_error", "declaration_mode", "member_access", "declaration", "external_guess_declaration", "external_guess_declaration_error", "declaration_error", "declaration_list", "declaration_list_error", "statement_list", "statement_list_error", "compound_inside", "compound_inside_error", "compound_start", "compound_statement", "compound_statement_error", "expression_statement", "selection_statement", "selection_statement_error", "iteration_statement", "iteration_statement_error", "jump_statement", "jump_statement_error", "function_definition", "function_definition_error", "string_literal", "external_declaration", "external_declaration_error", "translation_unit_error", "translation_unit", "thefile", "dbtable_definition", "dbfield_entry", "dbindex_item", "dbindex_item_list", "dbindex_entry", "dbfield_definition_list", "database_open", "dbfield", "dbindex", "dbtable", 0
106 };
107
108 static const yytype_uint16 yyr1[] =
109 {
110 0, 145, 146, 146, 147, 147, 148, 149, 150, 150, 150, 151, 151, 152, 153, 154, 154, 155, 155, 156, 156, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 159, 159, 160, 161, 162, 162, 162, 163, 163, 164, 164, 164, 165, 165, 165, 166, 166, 166, 166, 166, 166, 167, 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 171, 171, 172, 172, 172, 172, 172, 173, 173, 174, 174, 174, 174, 174, 175, 175, 175, 176, 176, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 178, 178, 179, 179, 179, 179, 179, 180, 181, 181, 181, 182, 182, 182, 183, 183, 183, 183, 184, 184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 187, 187, 187, 187, 187, 188, 188, 188, 189, 190, 190, 191, 191, 192, 192, 193, 194, 194, 195, 195, 195, 195, 196, 196, 196, 196, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 199, 199, 199, 200, 200, 200, 200, 200, 201, 201, 202, 202, 203, 203, 203, 203, 203, 203, 203, 203, 204, 205, 205, 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, 210, 210, 210, 210, 211, 211, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 215, 216, 216, 216, 216, 216, 216, 217, 218, 218, 219, 219, 219, 220, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, 223, 224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 251, 251, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, 266, 267, 268, 268, 268, 268, 268, 268, 268, 269, 269, 269, 269, 269, 269, 269, 270, 270, 270, 271, 271, 271, 272, 273, 273, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 277, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 279, 279, 280, 280, 281, 282, 282, 282, 283, 283, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 287, 288, 288, 288, 288, 289, 289, 289, 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 292, 292, 293, 294, 294, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 295, 296, 296, 297, 297, 297, 297, 297, 297, 297, 297, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 302, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 304, 304, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 309, 309, 309, 309, 309, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 311, 311, 311, 311, 311, 311, 311, 311, 311, 312, 313, 313, 313, 313, 313, 314, 314, 314, 314, 315, 315, 316, 317, 317, 317, 317, 317, 318, 318, 318, 318, 319, 319, 320, 320, 320, 320, 321, 321, 321, 322, 322, 322, 322, 322, 323, 323, 324, 324, 324, 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 327, 327, 327, 327, 327, 327, 327, 327, 328, 328, 328, 328, 329, 329, 329, 329, 329, 330, 330, 330, 330, 330, 331, 331, 331, 331, 331, 332, 332, 332, 332, 333, 333, 333, 333, 334, 334, 334, 334, 335, 335, 335, 335, 336, 336, 336, 336, 337, 337, 337, 337, 338, 338, 338, 339, 339, 339, 339, 339, 340, 340, 341, 341, 342, 342, 342, 342, 342, 342, 343, 343, 343, 344, 344, 345, 345, 345, 345, 345, 345, 346, 346, 346, 346, 347, 347, 348, 348, 349, 349, 349, 349, 349, 349, 350, 350, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 352, 352, 352, 352, 352, 352, 352, 352, 353, 353, 353, 353, 353, 353, 354, 354, 354, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 356, 356, 356, 356, 356, 356, 356, 357, 357, 357, 358, 358, 358, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 362, 362, 362, 363, 363, 364, 364, 364, 364, 365, 365, 365, 365, 365, 365, 366, 367, 367, 367, 367, 367, 368, 368, 368, 368, 369, 369, 370, 370, 370, 371, 371, 371, 371, 371, 371, 371, 372, 372, 372, 372, 373, 373, 373, 373, 374, 375, 376, 376, 376, 377, 377, 377, 378, 378, 378, 378, 378, 378, 379, 379, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 382, 382, 382, 382, 383, 383, 383, 383, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 386, 386, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 388, 388, 388, 388, 388, 388, 388, 389, 389, 389, 389, 389, 390, 390, 390, 390, 391, 391, 391, 392, 392, 392, 393, 394, 394, 394, 395, 395, 396, 396, 397, 397, 397, 397, 398, 399, 400, 401
111 };
112
113 static const yytype_uint8 yyr2[] =
114 {
115 0, 2, 2, 2, 1, 2, 1, 1, 1, 4, 4, 2, 1, 3, 4, 3, 2, 2, 1, 3, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 3, 1, 3, 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 3, 4, 5, 4, 3, 4, 2, 3, 4, 5, 4, 3, 4, 5, 5, 4, 2, 3, 3, 3, 3, 2, 4, 3, 3, 2, 4, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 2, 1, 3, 3, 1, 3, 3, 2, 4, 5, 3, 4, 3, 1, 3, 3, 3, 2, 3, 2, 4, 5, 3, 4, 3, 1, 3, 3, 2, 1, 2, 2, 2, 1, 2, 5, 7, 9, 6, 8, 4, 6, 1, 2, 3, 4, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 7, 1, 2, 4, 1, 1, 2, 3, 2, 2, 2, 3, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 3, 3, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 4, 4, 6, 2, 4, 4, 6, 1, 1, 3, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 1, 3, 1, 2, 2, 3, 3, 5, 5, 6, 6, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 2, 4, 1, 1, 1, 4, 4, 5, 8, 2, 1, 1, 1, 2, 6, 6, 5, 5, 6, 6, 5, 5, 7, 7, 6, 6, 7, 7, 6, 6, 4, 5, 4, 6, 4, 1, 1, 1, 1, 3, 2, 1, 2, 2, 2, 1, 4, 4, 3, 4, 4, 3, 3, 2, 2, 4, 4, 3, 4, 3, 3, 2, 2, 1, 1, 3, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 5, 5, 2, 4, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 3, 3, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 5, 6, 6, 2, 5, 1, 1, 1, 4, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 2, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 2, 2, 1, 3, 3, 3, 3, 1, 2, 3, 3, 2, 2, 2, 1, 2, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 2, 1, 2, 2, 2, 4, 4, 3, 3, 4, 5, 4, 6, 6, 4, 5, 4, 6, 6, 5, 5, 2, 2, 2, 5, 3, 5, 6, 5, 7, 7, 8, 8, 7, 7, 3, 3, 3, 4, 3, 5, 5, 6, 7, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 2, 2, 3, 5, 2, 3, 5, 5, 5, 1, 3, 2, 2, 3, 3, 2, 3, 3, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 1, 1, 4, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 4, 4, 4, 3, 4, 4, 4, 3, 1, 3, 4, 3, 4, 4, 4, 4, 3, 2, 3, 3, 3, 3, 2, 2, 2, 3, 4, 1, 1, 2, 3, 3, 3, 3, 2, 2, 2, 3, 4, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 3, 6, 5, 3, 4, 2, 3, 3, 3, 3, 4, 4, 4, 2, 3, 3, 3, 4, 4, 3, 4, 2, 3, 3, 3, 4, 4, 1, 2, 2, 3, 1, 1, 2, 2, 3, 1, 1, 2, 2, 3, 1, 2, 3, 2, 2, 1, 2, 3, 2, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 3, 4, 1, 4, 2, 5, 3, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 1, 1, 3, 2, 3, 1, 3, 3, 3, 3, 3, 1, 2, 3, 3, 1, 2, 1, 2, 2, 2, 2, 3, 1, 1, 3, 3, 1, 3, 4, 3, 4, 3, 3, 4, 3, 4, 1, 3, 3, 4, 3, 3, 3, 4, 1, 3, 3, 3, 3, 3, 1, 3, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 4, 7, 1, 3, 0, 6, 8, 10, 12, 8, 10, 10, 5, 7, 9, 11, 7, 9, 9, 3, 4, 4, 3, 3, 3, 4, 4, 3, 3, 3, 4, 4, 3, 2, 3, 2, 3, 4, 4, 3, 3, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 3, 3, 2, 5, 6, 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 5, 5, 7, 7, 5, 5, 3, 2, 5, 4, 4, 7, 6, 6, 5, 7, 6, 4, 7, 9, 3, 4, 4, 5, 5, 6, 7, 6, 6, 5, 5, 4, 3, 2, 1, 2, 4, 3, 5, 4, 3, 2, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 4, 3, 4, 3, 3, 2, 4, 3, 4, 3, 3, 2, 1, 2, 1, 1, 2, 1, 2, 3, 3, 1, 2, 2, 2, 3, 4, 4, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 3, 1, 1, 0, 6, 6, 5, 4, 1, 2, 2, 1, 3, 3, 4, 1, 1, 2, 2, 6, 6, 6, 4
116 };
117
118 static const yytype_uint16 yydefact[] =
119 {
120 1290, 257, 6, 592, 593, 594, 596, 597, 661, 662, 663, 664, 665, 667, 670, 671, 668, 669, 655, 656, 660, 666, 756, 757, 605, 1135, 235, 679, 913, 914, 0, 0, 917, 1133, 1134, 680, 681, 672, 0, 0, 0, 0, 0, 918, 919, 683, 682, 684, 685, 598, 595, 956, 0, 1259, 804, 675, 8, 4, 0, 0, 0, 1253, 0, 1272, 880, 798, 0, 674, 0, 650, 652, 806, 808, 657, 800, 802, 739, 673, 0, 0, 651, 653, 0, 0, 0, 0, 0, 979, 654, 0, 915, 0, 0, 0, 1255, 1277, 1252, 1274, 1284, 1279, 0, 0, 0, 1270, 0, 1267, 1250, 0, 0, 1256, 0, 0, 0, 0, 1269, 1268, 0, 658, 957, 654, 958, 871, 870, 880, 912, 869, 899, 970, 0, 911, 975, 0, 0, 0, 0, 0, 0, 1145, 0, 237, 236, 0, 0, 245, 0, 244, 2, 3, 0, 5, 0, 607, 606, 0, 0, 627, 0, 0, 0, 0, 743, 0, 723, 722, 0, 1148, 594, 664, 665, 1142, 805, 8, 1254, 1273, 880, 799, 807, 809, 801, 803, 979, 987, 654, 0, 0, 1018, 0, 0, 0, 1028, 0, 0, 871, 0, 870, 0, 0, 889, 0, 0, 585, 586, 587, 589, 590, 1041, 591, 588, 894, 792, 864, 786, 0, 796, 0, 788, 790, 739, 794, 0, 0, 1040, 0, 0, 1044, 1054, 0, 0, 0, 0, 0, 0, 980, 0, 687, 688, 689, 690, 691, 693, 696, 697, 694, 695, 686, 692, 709, 698, 0, 0, 703, 702, 704, 705, 1178, 701, 0, 0, 776, 700, 782, 778, 780, 784, 699, 0, 1154, 0, 0, 0, 0, 1243, 1249, 594, 0, 1266, 1261, 1275, 0, 1262, 1278, 1260, 1276, 1271, 1283, 1286, 0, 0, 0, 0, 0, 1281, 1282, 1285, 1280, 1, 0, 1257, 1258, 1251, 0, 0, 458, 263, 0, 0, 0, 0, 0, 0, 352, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 347, 0, 350, 0, 0, 346, 348, 349, 351, 0, 265, 0, 264, 306, 272, 271, 258, 457, 0, 344, 354, 0, 356, 363, 368, 374, 0, 383, 392, 397, 402, 407, 410, 413, 430, 0, 479, 478, 480, 482, 489, 494, 499, 508, 517, 522, 527, 532, 535, 538, 0, 260, 296, 297, 298, 299, 0, 0, 0, 0, 0, 659, 959, 0, 901, 0, 906, 0, 0, 0, 0, 0, 0, 0, 912, 971, 976, 0, 881, 973, 883, 978, 974, 672, 4, 229, 228, 227, 233, 0, 264, 354, 219, 480, 0, 206, 249, 0, 0, 248, 255, 0, 0, 1136, 1137, 0, 168, 0, 169, 170, 0, 0, 0, 0, 0, 172, 246, 0, 0, 0, 0, 29, 31, 163, 175, 188, 0, 187, 0, 116, 119, 0, 195, 128, 0, 164, 140, 0, 167, 183, 196, 199, 0, 0, 264, 0, 0, 176, 0, 983, 654, 0, 12, 18, 0, 811, 810, 818, 812, 0, 814, 816, 739, 823, 822, 250, 256, 247, 0, 0, 239, 238, 640, 599, 602, 639, 643, 629, 0, 0, 0, 222, 223, 224, 225, 0, 217, 0, 752, 745, 0, 0, 742, 749, 744, 0, 0, 755, 746, 0, 0, 725, 724, 0, 0, 0, 0, 0, 980, 988, 0, 1020, 0, 0, 1239, 1245, 0, 1241, 1247, 1029, 1143, 0, 0, 0, 1144, 888, 0, 264, 583, 584, 0, 0, 0, 0, 607, 606, 608, 0, 726, 0, 0, 664, 0, 0, 1038, 793, 8, 880, 787, 797, 789, 791, 795, 912, 869, 654, 961, 960, 0, 0, 0, 893, 0, 0, 892, 0, 0, 0, 1070, 0, 890, 891, 981, 0, 982, 0, 0, 1152, 1140, 1151, 76, 1149, 690, 691, 1138, 880, 777, 783, 779, 781, 785, 654, 0, 1153, 1150, 1141, 0, 1155, 0, 1242, 1248, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 0, 698, 0, 0, 0, 157, 1074, 1075, 701, 0, 0, 0, 264, 0, 354, 0, 0, 480, 567, 572, 0, 1072, 1160, 1163, 1080, 1071, 1084, 0, 0, 0, 0, 1182, 1180, 1073, 1086, 0, 1087, 1078, 1085, 0, 1088, 1179, 0, 0, 1263, 880, 0, 0, 0, 1273, 0, 869, 987, 654, 0, 0, 0, 0, 1249, 1287, 0, 0, 413, 0, 0, 916, 0, 337, 472, 0, 333, 468, 334, 469, 0, 858, 848, 856, 850, 852, 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 476, 0, 274, 0, 0, 0, 762, 758, 760, 764, 1032, 0, 261, 0, 301, 302, 0, 325, 0, 324, 0, 460, 93, 0, 270, 459, 0, 314, 315, 0, 0, 0, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 439, 0, 0, 336, 471, 335, 470, 0, 0, 0, 0, 0, 0, 0, 375, 500, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 676, 0, 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 677, 678, 0, 0, 0, 1302, 1303, 0, 0, 0, 875, 0, 0, 0, 879, 0, 0, 0, 905, 904, 902, 903, 912, 971, 976, 882, 884, 998, 10, 9, 0, 0, 0, 654, 960, 207, 0, 0, 264, 206, 0, 0, 830, 824, 826, 828, 0, 0, 0, 16, 20, 0, 185, 184, 186, 0, 0, 0, 0, 347, 0, 264, 0, 26, 0, 21, 28, 24, 0, 25, 23, 22, 30, 32, 190, 83, 191, 122, 162, 0, 0, 0, 0, 132, 0, 0, 134, 0, 0, 143, 161, 200, 197, 202, 201, 198, 203, 115, 0, 0, 0, 880, 720, 177, 995, 0, 991, 654, 0, 11, 17, 710, 896, 1040, 0, 0, 0, 984, 0, 0, 173, 165, 192, 181, 0, 180, 0, 166, 880, 179, 0, 607, 606, 819, 813, 815, 817, 0, 0, 0, 604, 642, 0, 0, 7, 212, 208, 741, 0, 0, 0, 0, 1017, 1024, 1025, 1026, 64, 53, 92, 39, 38, 57, 69, 45, 48, 0, 74, 56, 0, 0, 0, 1008, 1010, 0, 1007, 1009, 0, 41, 44, 912, 981, 972, 989, 977, 998, 990, 0, 999, 1002, 1019, 1021, 1238, 1244, 1240, 1246, 1023, 1030, 1027, 1031, 887, 885, 886, 1067, 1049, 1058, 612, 611, 0, 0, 458, 727, 0, 0, 458, 728, 0, 0, 0, 942, 880, 0, 0, 654, 960, 0, 0, 0, 934, 0, 0, 0, 0, 0, 1039, 963, 0, 0, 962, 1043, 1042, 0, 863, 1066, 866, 1052, 1060, 0, 862, 1065, 865, 1050, 1059, 0, 1069, 1063, 867, 1045, 1055, 0, 1064, 868, 1047, 1056, 920, 921, 924, 923, 922, 0, 925, 927, 0, 0, 0, 0, 77, 0, 1139, 1157, 0, 0, 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 1072, 1219, 1077, 1079, 0, 0, 1227, 1228, 1229, 0, 1235, 0, 0, 0, 0, 0, 0, 158, 144, 1083, 1082, 1081, 0, 0, 0, 573, 0, 1076, 0, 0, 0, 0, 453, 0, 0, 458, 0, 0, 0, 0, 1161, 1164, 1166, 0, 1162, 1165, 1167, 0, 1193, 1089, 1264, 1265, 237, 236, 0, 0, 0, 988, 0, 0, 1245, 0, 1247, 1248, 0, 0, 1146, 0, 0, 770, 264, 772, 766, 768, 774, 1034, 0, 0, 0, 0, 0, 0, 859, 849, 857, 851, 853, 855, 654, 966, 965, 0, 844, 834, 842, 836, 838, 840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 763, 759, 761, 765, 1033, 0, 0, 458, 0, 0, 0, 105, 0, 300, 458, 0, 0, 94, 458, 0, 0, 461, 313, 309, 329, 463, 464, 328, 465, 312, 0, 0, 435, 431, 303, 357, 483, 358, 484, 359, 485, 364, 490, 365, 491, 369, 495, 370, 496, 377, 502, 378, 503, 376, 501, 388, 513, 384, 509, 389, 514, 385, 510, 395, 520, 393, 518, 400, 525, 398, 523, 405, 530, 403, 528, 408, 533, 411, 536, 563, 0, 579, 0, 0, 0, 0, 437, 433, 462, 321, 318, 0, 466, 467, 320, 0, 0, 436, 432, 360, 486, 361, 487, 362, 488, 366, 492, 367, 493, 371, 497, 372, 498, 381, 506, 382, 507, 379, 504, 380, 505, 390, 515, 386, 511, 391, 516, 387, 512, 396, 521, 394, 519, 401, 526, 399, 524, 406, 531, 404, 529, 409, 534, 412, 537, 564, 0, 0, 0, 0, 438, 434, 0, 0, 1295, 1298, 0, 0, 1293, 1304, 1305, 0, 0, 874, 872, 873, 878, 876, 877, 234, 232, 231, 230, 264, 654, 963, 241, 0, 207, 240, 127, 0, 125, 831, 825, 827, 829, 0, 654, 0, 15, 19, 0, 182, 995, 654, 0, 139, 0, 137, 831, 0, 264, 654, 0, 27, 84, 117, 120, 118, 121, 129, 130, 131, 133, 141, 142, 114, 112, 113, 13, 712, 715, 0, 0, 908, 1040, 0, 0, 0, 996, 992, 0, 0, 711, 880, 897, 985, 986, 880, 193, 194, 178, 0, 0, 0, 0, 600, 601, 603, 0, 0, 632, 628, 0, 0, 0, 0, 0, 226, 218, 216, 0, 0, 0, 36, 37, 75, 54, 0, 55, 0, 63, 61, 72, 67, 73, 60, 90, 39, 70, 62, 91, 59, 71, 68, 0, 58, 0, 690, 33, 35, 34, 1011, 1012, 0, 620, 610, 0, 615, 609, 0, 458, 729, 0, 0, 0, 960, 0, 932, 943, 944, 937, 935, 936, 0, 964, 945, 0, 0, 938, 0, 0, 0, 1053, 1061, 1040, 1051, 1046, 1048, 1057, 931, 0, 0, 0, 928, 706, 707, 708, 458, 0, 0, 1114, 1124, 1119, 0, 0, 0, 1115, 1126, 1120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, 1206, 0, 1183, 264, 0, 0, 0, 1226, 1232, 1233, 1230, 1231, 0, 0, 0, 0, 145, 1111, 1121, 1116, 0, 159, 570, 568, 0, 0, 0, 451, 574, 571, 569, 452, 575, 0, 989, 1244, 1246, 1147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 771, 773, 767, 769, 775, 1035, 0, 293, 291, 0, 0, 950, 654, 0, 0, 0, 0, 0, 0, 968, 0, 967, 0, 0, 0, 845, 835, 843, 837, 839, 841, 0, 267, 0, 266, 295, 0, 0, 0, 0, 0, 0, 1309, 0, 0, 0, 0, 0, 355, 481, 262, 108, 106, 327, 326, 99, 103, 310, 0, 311, 307, 308, 580, 0, 0, 0, 0, 0, 0, 319, 316, 317, 0, 0, 0, 0, 1297, 1296, 1300, 0, 0, 0, 1292, 1291, 0, 960, 218, 0, 0, 123, 126, 0, 0, 0, 0, 0, 996, 0, 135, 138, 0, 14, 458, 0, 0, 721, 0, 880, 909, 997, 993, 994, 713, 716, 898, 174, 820, 0, 243, 242, 0, 631, 0, 213, 214, 204, 209, 210, 220, 0, 0, 51, 46, 49, 52, 47, 50, 37, 43, 40, 42, 0, 0, 1015, 1016, 619, 0, 614, 0, 963, 962, 933, 946, 947, 940, 939, 941, 1037, 1036, 0, 930, 929, 79, 1112, 1122, 1117, 0, 1113, 1123, 1118, 0, 0, 0, 0, 0, 1222, 1196, 0, 0, 1195, 1225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1203, 0, 1184, 1207, 1185, 1208, 0, 0, 0, 1096, 916, 1096, 0, 0, 155, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 292, 860, 0, 965, 0, 948, 951, 952, 277, 278, 0, 969, 953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 281, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 477, 0, 331, 330, 455, 581, 422, 555, 414, 539, 426, 559, 418, 547, 456, 582, 423, 556, 415, 540, 427, 560, 419, 548, 424, 557, 416, 541, 428, 561, 420, 549, 425, 558, 417, 542, 429, 562, 421, 550, 1299, 1301, 1294, 832, 0, 124, 150, 997, 0, 136, 86, 910, 0, 0, 821, 0, 0, 0, 0, 0, 0, 205, 0, 221, 0, 0, 1013, 1014, 1003, 0, 0, 0, 0, 926, 1186, 1187, 1190, 1191, 1194, 1224, 0, 0, 0, 0, 0, 0, 0, 1200, 1209, 0, 0, 0, 0, 1094, 0, 1091, 1104, 0, 1096, 0, 1096, 0, 0, 0, 0, 475, 474, 967, 949, 861, 954, 955, 275, 276, 846, 285, 286, 0, 0, 0, 0, 279, 280, 289, 290, 0, 0, 294, 1307, 1308, 1306, 343, 833, 0, 714, 717, 719, 718, 0, 0, 215, 211, 0, 1000, 1005, 0, 0, 0, 0, 0, 0, 0, 1214, 1198, 0, 0, 1199, 1211, 0, 1202, 1213, 0, 0, 0, 1096, 0, 1096, 0, 1096, 0, 1097, 0, 0, 0, 148, 0, 153, 0, 156, 0, 847, 283, 284, 0, 287, 288, 171, 1001, 1188, 1189, 0, 0, 1197, 1204, 0, 1201, 1212, 0, 1108, 1095, 0, 0, 0, 1105, 0, 0, 1096, 1096, 0, 1096, 147, 146, 151, 149, 0, 0, 355, 481, 269, 0, 0, 0, 1092, 0, 0, 1096, 1101, 0, 0, 1098, 0, 0, 154, 1205, 0, 1109, 1110, 1106, 0, 0, 0, 0, 1096, 152, 0, 0, 1102, 1103, 1099, 0, 1093, 1107, 0, 1100
121 };
122
123 static const yytype_int16 yydefgoto[] =
124 {
125 -1, 209, 55, 56, 975, 333, 441, 442, 443, 444, 445, 446, 447, 448, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 256, 257, 449, 450, 58, 334, 335, 746, 775, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 2093, 2094, 2095, 463, 646, 647, 648, 464, 465, 466, 467, 1787, 409, 505, 410, 506, 411, 507, 508, 867, 412, 413, 59, 60, 61, 62, 63, 336, 337, 338, 339, 340, 1001, 1002, 341, 342, 749, 1269, 343, 651, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 734, 829, 653, 1326, 360, 361, 654, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 655, 656, 1127, 1328, 554, 555, 211, 65, 498, 499, 212, 67, 213, 214, 68, 69, 70, 71, 72, 73, 215, 118, 216, 262, 932, 933, 217, 218, 219, 77, 78, 79, 80, 81, 220, 741, 1203, 265, 471, 83, 84, 488, 489, 877, 1226, 718, 1050, 1051, 124, 85, 472, 87, 473, 127, 128, 129, 936, 130, 119, 89, 1099, 1100, 1101, 90, 580, 1217, 475, 582, 1219, 133, 185, 476, 477, 187, 940, 135, 1019, 1537, 1007, 1008, 1538, 188, 189, 190, 191, 742, 1204, 224, 225, 226, 227, 228, 229, 659, 660, 2013, 2014, 661, 662, 663, 93, 478, 266, 94, 95, 267, 268, 269, 666, 667, 668, 669, 270, 670, 898, 1621, 1130, 673, 674, 675, 1131, 677, 96, 97, 375, 98, 99, 100, 101, 102, 103, 835, 1398, 1399, 836, 837, 376, 377, 378, 379
126 };
127
128 static const int yypact[] =
129 {
130 39187, -1899, -1899, -1899, -1899, 28, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1069, 108, -1899, -1899, -1899, -1899, -1899, -1899, 247, 289, 412, 684, 114, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 2473, 2733, -1899, -1899, -1899, 241, -1899, 473, 684, 570, -1899, 243, 511, 1084, -1899, 314, -1899, 630, -1899, 602, -1899, -1899, -1899, -1899, -1899, 1093, -1899, 669, 710, -1899, 768, 1102, 38788, 2421, 232, 39484, -1899, 660, 811, -1899, 1887, 42123, 37351, -1899, -1899, -1899, -1899, -1899, -1899, 39290, 38383, 939, -1899, 108, -1899, -1899, 114, 114, 946, 873, 114, 29983, 684, -1899, -1899, 608, -1899, 2473, -1899, -1899, -1899, 822, -1899, 309, 1051, -1899, -1899, 39582, -1899, -1899, 2733, 1716, 1792, 2148, 1291, 23700, -1899, 897, 66, 555, 31128, 41746, -1899, 31255, -1899, -1899, -1899, 684, -1899, 1240, 1213, 1331, 166, 41746, -1899, 41476, 31382, 41746, 31509, -1899, 31636, -1899, -1899, 684, -1899, -1899, 271, 947, -1899, -1899, 950, -1899, 511, 649, -1899, -1899, -1899, -1899, -1899, 1262, 1409, 660, 1716, 1265, 1291, 42123, 42123, 416, -1899, 1354, 952, 961, 947, 535, 660, 1363, -1899, 28283, 979, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 672, -1899, 395, -1899, 991, -1899, -1899, 1013, -1899, 1019, 1548, 36431, 408, 515, -1899, -1899, 758, 775, 1038, 1056, 144, 1064, -1899, 144, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1104, 1107, -1899, -1899, -1899, -1899, -1899, -1899, 181, 36, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 38988, -1899, 17556, 6071, 42328, 17696, -1899, 1063, 1174, 1137, -1899, -1899, 511, 38888, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 602, 768, 40072, 42123, 40360, -1899, -1899, -1899, -1899, -1899, 1164, 946, 946, -1899, 29983, 504, -1899, -1899, 30068, 30153, 30153, 1142, 41926, 29983, -1899, -1899, 1198, 1232, 41926, 29983, 1237, 1244, 1271, 1280, 1283, 30238, -1899, 1311, -1899, 11066, -1899, 114, 25648, -1899, -1899, -1899, -1899, 1325, -1899, 84, 1341, -1899, -1899, 108, -1899, -1899, 12949, -1899, 1485, 28368, -1899, 1014, 902, 1199, 29983, 844, 1114, 1305, 1376, 1359, 1514, 135, 1485, 1412, 719, -1899, 1485, -1899, 1097, 1168, 1550, 1113, 1615, 1404, 1403, 1406, 1536, 286, 1485, 946, -1899, -1899, -1899, -1899, 1462, 159, 41566, 1473, 1480, -1899, -1899, 28453, -1899, 28538, -1899, 786, 829, 1497, 1519, 1716, 2692, 2694, 309, -1899, -1899, 905, -1899, -1899, -1899, -1899, -1899, 1198, 1325, -1899, -1899, -1899, -1899, 682, 971, -1899, 1199, -1899, 1550, 36546, -1899, 23823, 41476, -1899, 697, 41206, 40456, -1899, -1899, 1469, -1899, 684, -1899, -1899, 108, 40648, 40264, 10801, 41836, -1899, -1899, 1413, 1506, 1506, 806, -1899, 1538, -1899, -1899, -1899, 93, 1048, 137, -1899, -1899, 30485, 1539, -1899, 1223, -1899, -1899, 696, -1899, -1899, -1899, 1544, 30620, 30747, 439, 399, 719, 37561, 39680, -1899, 660, 1887, -1899, -1899, 37456, -1899, -1899, 1556, -1899, 684, -1899, -1899, -1899, 2130, 41926, -1899, 697, -1899, 30874, 31001, 1561, 1572, -1899, 1557, -1899, 1566, -1899, -1899, 2525, 1575, 927, -1899, -1899, -1899, -1899, 847, 627, 36546, 863, -1899, 31763, 31890, -1899, 863, -1899, 32017, 32144, 863, -1899, 32271, 32398, -1899, -1899, 2733, 2733, 2733, 21893, 905, 1262, 1409, 905, -1899, 28623, 6071, -1899, 1063, 6071, -1899, 1063, -1899, -1899, 2733, 2733, 905, -1899, -1899, 1564, 328, -1899, -1899, 1567, 1573, 41296, 1512, 1585, 1586, -1899, 32525, -1899, 32652, 547, -1899, 36198, 28708, 2733, -1899, 1138, 672, -1899, -1899, -1899, -1899, -1899, 309, 1583, 660, 556, 70, 379, 1617, 1581, -1899, 40936, 1590, -1899, 41026, 1593, 41116, 1594, 41386, -1899, -1899, -1899, 1294, -1899, 29983, 684, -1899, -1899, 1595, -1899, -1899, 271, 947, -1899, 1596, -1899, -1899, -1899, -1899, -1899, 660, 1388, 952, -1899, -1899, 1597, -1899, 17836, -1899, 1063, -1899, 222, 28793, 1598, 1602, 1606, 190, 17976, 1608, 108, 1607, 1611, 18116, 1198, 2305, 1609, 1616, 108, -1899, -1899, 1325, 1622, 1623, 1624, 1395, 16151, 1485, 16296, 25733, 1485, 1485, -1899, 16436, 39088, -1899, -1899, -1899, -1899, -1899, 18256, 18396, 18536, 18676, -1899, -1899, -1899, 1063, 18816, -1899, -1899, -1899, 18956, -1899, -1899, 114, 114, 946, 685, 684, 1396, 1604, -1899, 309, 232, -1899, 660, 1716, 42123, 42123, 6071, -1899, -1899, 40168, 29983, 347, 1628, 448, -1899, 11861, -1899, -1899, 28878, -1899, -1899, -1899, -1899, 41926, 1636, -1899, -1899, -1899, -1899, -1899, 36891, 41926, 23946, 108, 37006, 41926, 29983, 114, 114, 114, 29983, 11066, -1899, -1899, 10428, -1899, 13106, 13251, 13396, -1899, -1899, -1899, -1899, 10253, 1635, 94, 22032, -1899, -1899, 175, -1899, -26, -1899, 22171, 1631, -1899, 22310, -1899, -1899, 1563, -1899, -1899, 25818, 1569, 29983, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 28368, 198, -1899, -1899, -1899, -1899, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 1199, 1550, 29983, 29983, -1899, 29983, 28368, 28368, 28368, 28368, 28368, 29983, 29983, 13541, 28368, -1899, 1579, -1899, -1899, 25903, 1580, 29983, 28368, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 28368, 28368, 28368, 28368, 28368, 29983, 29983, 13686, 28368, -1899, -1899, 257, 672, 41836, -1899, -1899, 38482, 41566, 41566, -1899, 1630, 1632, 1633, -1899, 1634, 1637, 1639, -1899, -1899, -1899, -1899, 309, -1899, -1899, -1899, -1899, 1641, -1899, -1899, 23700, 23700, 36316, 660, 718, -1899, 337, 849, 1735, 36546, 870, 1646, 1645, -1899, -1899, -1899, 2130, 36661, 40552, -1899, -1899, 108, -1899, -1899, -1899, 37666, 1648, 108, 36776, 1981, 24069, 2321, 40744, -1899, 1656, -1899, 1063, -1899, 1063, -1899, -1899, -1899, 1063, -1899, 1642, -1899, 1010, -1899, -1899, 4135, 4135, 1506, 1506, -1899, 1506, 212, -1899, 1506, 1506, -1899, -1899, 893, -1899, 1544, 893, -1899, 1544, 1150, 28963, 2288, 29983, 892, -1899, 1658, 309, 39778, -1899, 660, 1716, -1899, -1899, 916, 979, 36431, 30350, 793, 144, -1899, 144, 2733, -1899, -1899, -1899, -1899, 201, -1899, 227, -1899, 439, 37561, 23700, -1899, -1899, 1663, -1899, -1899, -1899, 41476, 41476, 29983, 108, -1899, 32779, 193, -1899, 650, 747, -1899, 41476, 108, 651, 108, 1411, -1899, -1899, -1899, -1899, -1899, -1899, 1506, -1899, -1899, -1899, -1899, -1899, 37771, 1465, -1899, 22449, 42226, 22588, -1899, -1899, 12607, -1899, -1899, 40840, -1899, -1899, 309, 1262, -1899, 1409, -1899, 309, -1899, 28623, -1899, -1899, -1899, -1899, -1899, 1063, -1899, 1063, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1566, 206, 299, 1668, -1899, 32906, 33033, 1669, -1899, 33160, 33287, 33414, -1899, 615, 478, 517, 1873, 1966, 1676, 1679, 1680, -1899, 1672, 1675, 1678, 660, 905, 1291, 70, 39876, 29048, 556, -1899, -1899, 41656, -1899, -1899, 672, -1899, -1899, 41656, -1899, -1899, 672, -1899, -1899, 41656, -1899, -1899, 672, -1899, -1899, 41656, -1899, 672, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1690, 1692, -1899, 1078, 1693, 1694, 170, -1899, 22727, -1899, -1899, 19096, 1684, 1687, 19236, 29983, 29983, -1899, 29133, 29218, 1691, 1701, 1706, 11397, 1707, 108, 25988, 2583, 1468, 26073, -1899, 1775, -1899, -1899, 26158, 1712, -1899, -1899, -1899, 1717, 1722, 26243, 16576, 114, 1709, 29983, 29983, 108, -1899, -1899, -1899, -1899, 21615, 358, 28368, -1899, 1360, -1899, 29983, 13831, 13976, 28368, -1899, 29983, 14121, 1597, 19376, 19516, 19656, 19796, -1899, -1899, -1899, 19936, -1899, -1899, -1899, 20076, -1899, -1899, 946, 946, 1721, 1730, 35954, 36080, 905, -1899, 905, 6071, -1899, 6071, -1899, -1899, 1727, 28368, -1899, 28368, 861, -1899, 439, -1899, -1899, -1899, -1899, 10253, 1736, 1744, 42016, 23700, 39386, 29983, 1733, -1899, -1899, -1899, -1899, -1899, 660, 1710, 1746, 1738, 1756, -1899, -1899, -1899, -1899, -1899, 37121, 26328, 1755, 1758, 1763, 29983, 1757, 37236, 1752, 618, 35, 72, 1764, 1770, 1768, -1899, 108, -1899, -1899, -1899, -1899, -1899, 29983, 114, 239, 37873, 22866, 1771, -1899, 28368, -1899, 254, 37975, 23005, -1899, 262, 38077, 23144, -1899, -1899, -1899, -1899, 1136, 1773, -1899, -1899, -1899, 26413, 6546, -1899, -1899, 1771, -1899, -1899, -1899, -1899, -1899, -1899, 1014, 1097, 1014, 1097, 902, 1168, 902, 1168, 1199, 1550, 1199, 1550, 1199, 1550, -1899, -1899, 844, 1113, -1899, -1899, 844, 1113, -1899, -1899, 1114, 1615, -1899, -1899, 1305, 1404, -1899, -1899, 1376, 1403, 1359, 1406, 1514, 1536, -1899, 53, -1899, 26498, 1767, 7374, 1772, -1899, -1899, -1899, -1899, -1899, 1218, -1899, -1899, -1899, 26583, 24713, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1014, 1097, 1014, 1097, 902, 1168, 902, 1168, 1199, 1550, 1199, 1550, 1199, 1550, 1199, 1550, -1899, -1899, 844, 1113, -1899, -1899, 844, 1113, -1899, -1899, 1114, 1615, -1899, -1899, 1305, 1404, -1899, -1899, 1376, 1403, 1359, 1406, 1514, 1536, -1899, 26668, 1776, 24798, 1777, -1899, -1899, 108, 108, -1899, -1899, 208, 1108, -1899, -1899, -1899, 38584, 38686, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1287, 2555, 718, -1899, 23700, 108, -1899, -1899, 23700, -1899, -6, -1899, -1899, -1899, 518, 660, 1716, -1899, -1899, 294, 1658, 1641, 660, 1716, -1899, 1788, -1899, 565, 559, 1467, 2733, 1801, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1316, -1899, -1899, -1899, -1899, -1899, 23283, 2369, 979, 36431, 12778, 817, 905, 309, -1899, 905, 29983, -1899, 587, -1899, -1899, -1899, 1802, 1642, 1631, 1658, 888, 23700, 955, 1041, -1899, -1899, -1899, 33541, 33668, 1803, -1899, 3552, 41836, 41836, 41836, 41836, -1899, -1899, -1899, 29983, 1800, 29303, -1899, 1063, -1899, -1899, 29388, -1899, 29473, -1899, -1899, -1899, 1491, 1465, -1899, -1899, 1506, -1899, -1899, -1899, -1899, -1899, 1491, 1465, -1899, 29558, 4798, -1899, -1899, -1899, -1899, -1899, 20216, -1899, -1899, 215, -1899, -1899, 248, 1804, -1899, 33795, 33922, 660, 1966, 1806, -1899, -1899, -1899, -1899, -1899, -1899, 905, 556, -1899, 1808, 1810, -1899, 1805, 1807, 1809, -1899, -1899, 36431, -1899, -1899, -1899, -1899, -1899, 29983, 1811, 1275, -1899, -1899, -1899, -1899, 268, 38179, 23422, -1899, -1899, -1899, 20356, 21615, 21615, -1899, -1899, -1899, 20496, 26753, 16716, 26838, 26923, 24435, 27008, 16856, 21754, 1814, 1817, 21754, 29983, 29643, 1880, 27093, 1722, 24883, 114, 21754, 1815, 12175, 11397, -1899, 1496, 27178, 24968, 27263, -1899, -1899, -1899, -1899, -1899, 107, 114, 1813, 1250, -1899, -1899, -1899, -1899, 20636, -1899, -1899, -1899, 1818, 1820, 108, -1899, -1899, -1899, -1899, -1899, -1899, 41476, -1899, -1899, -1899, -1899, 27348, 1819, 25053, 1821, 27433, 1822, 25138, 1826, 1836, 1839, -1899, -1899, -1899, -1899, -1899, -1899, 14266, -1899, -1899, 1840, 1073, -1899, 2824, 1841, 1843, 1846, 1837, 1852, 23700, 1746, 39974, 1710, 29983, 23700, 29983, 1829, -1899, -1899, -1899, -1899, -1899, 1847, -1899, 29728, -1899, -1899, 1860, 1864, 29983, 29983, 1870, 10428, -1899, 108, 108, 29983, 14411, 108, -1899, -1899, 946, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 14556, -1899, -1899, -1899, -1899, 28368, 14701, 14846, 28368, 14991, 15136, -1899, -1899, -1899, 15281, 15426, 15571, 15716, -1899, -1899, -1899, 257, 1845, 344, -1899, -1899, 660, 718, 1994, 1118, 23700, -1899, -1899, 1876, 905, 905, 1506, 905, 1641, 1881, -1899, -1899, 1884, -1899, 281, 38281, 23561, -1899, 660, 881, -1899, 309, -1899, -1899, 1888, 1891, -1899, -1899, -1899, 1152, -1899, -1899, 34049, 1890, 34176, -1899, 1892, 36546, -1899, 1897, -1899, 29983, 28623, 1907, -1899, -1899, 1907, -1899, -1899, -1899, 1907, -1899, -1899, 20776, 20916, -1899, -1899, -1899, 34303, -1899, 34430, 70, 556, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1291, 27518, -1899, -1899, -1899, -1899, -1899, -1899, 21056, -1899, -1899, -1899, 21196, 11397, 24157, 11397, 24157, 12412, -1899, 24574, 16996, -1899, -1899, 21754, 21754, 27603, 11397, 27688, 24296, 1904, 25223, 27773, 140, 21336, -1899, 29983, -1899, 12412, -1899, 12175, 11397, 25308, 29813, 12, 1906, 12, 200, 1900, -1899, 108, 29983, 29983, 108, 28368, 28368, 28368, 28368, 28368, 28368, 28368, 28368, 15861, 16006, -1899, -1899, -1899, 660, 1746, 1909, -1899, -1899, -1899, -1899, -1899, 1167, 1710, -1899, 1910, 1911, 1901, 1908, 1187, 1918, 1919, 23700, 29983, 11066, -1899, -1899, -1899, 1922, 1926, 1927, 1928, 29983, 1920, 1940, 1944, 1946, -1899, 1949, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, -1899, 1231, -1899, -1899, 1641, 28368, -1899, -1899, -1899, 29983, 29983, -1899, 34557, 34684, 34811, 34938, 35065, 41836, -1899, 41836, -1899, 25393, 21476, -1899, -1899, -1899, 35192, 35319, 35446, 35573, -1899, 1978, 1982, -1899, -1899, -1899, -1899, 11397, 29983, 29898, 1906, 17136, 17276, 25478, -1899, 12412, 24574, 27858, 17416, 108, -1899, 1124, 593, -1899, 126, 12, 1953, 12, 360, 616, 1951, 1255, -1899, -1899, 1710, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1236, 1945, 1948, 1957, -1899, -1899, -1899, -1899, 1950, 1959, -1899, -1899, -1899, -1899, -1899, -1899, 1960, -1899, -1899, -1899, -1899, 35700, 35827, -1899, -1899, 27943, -1899, -1899, 11397, 11397, 28028, 25563, 11397, 28113, 24296, 1962, -1899, 11397, 29983, -1899, -1899, 24574, -1899, -1899, 1961, 1980, 12, 12, 29983, 12, 1983, 12, 1349, -1899, 205, 1506, 579, -1899, 621, -1899, 1974, -1899, 108, -1899, -1899, -1899, 29303, -1899, -1899, -1899, -1899, -1899, -1899, 1962, 11397, -1899, -1899, 28198, -1899, -1899, 114, -1899, -1899, 1256, 1984, 1257, -1899, 1431, 1986, 12, 12, 1987, 12, -1899, -1899, -1899, -1899, 360, 721, -1899, -1899, -1899, 11397, 610, 1989, -1899, 1990, 1992, 12, -1899, 1298, 1301, -1899, 1533, 623, -1899, -1899, 29983, -1899, -1899, -1899, 1312, 1993, 1995, 1996, 12, -1899, 2001, 2000, -1899, -1899, -1899, 1338, -1899, -1899, 2011, -1899
131 };
132
133 static const yytype_int16 yypgoto[] =
134 {
135 -1899, 151, 58, 9484, -1899, 2031, -1899, -1899, -1899, -1899, -1899, -1899, 1649, 1662, -966, -1899, -972, -339, 121, 130, -953, -943, -892, -1899, -691, -682, -1899, -1899, 1664, 1665, -1899, 2123, 3736, -1899, -225, 736, 753, -1899, -1899, -1899, -1899, 1671, -1899, -1899, -1899, -634, -1898, -14, -1899, -1899, -1899, -1899, -278, 2317, -22, 11, 652, -847, -1899, -793, -1899, -855, -1899, 1176, -124, 1296, -884, 1, 1872, -13, 1874, -4, 0, -1899, 1248, -1899, -1899, 3946, 4235, -1899, 5852, -413, 1362, -1899, 3731, -1899, -330, 503, 799, 401, -1899, -436, -703, -470, -151, -423, -10, 596, 7321, 4625, -178, 8783, -803, 1754, -1899, 4298, -326, 629, 853, 1443, 275, 24, 67, 238, 189, 287, 699, 5125, -422, 7552, -799, -114, 1044, 10555, -59, 1195, -144, 2639, 11101, 8232, -1899, -1899, -1899, -64, -40, -35, -1899, 6856, -1899, 1474, 2550, 702, -810, 3233, 8991, -1899, 11338, -1899, -1899, -1899, -29, 3260, -1899, -1899, 1130, 6347, -19, -1899, -1899, 1310, 1734, 1451, 1862, -84, -70, 7545, 10130, 4094, 6722, -448, -127, -421, 666, -920, 74, 2901, -1899, -1899, -1078, -1899, 4468, -559, -1208, 7654, 362, -625, 50, 359, 218, 1740, -281, -566, -458, -995, -533, -924, -917, 385, 755, 1128, -38, 1914, -708, 261, 197, -468, -438, -1899, -89, -77, 8198, 146, 97, -1371, -1899, -1899, -1899, 2082, -1899, 2219, 2090, -58, 2586, -8, 1916, 1011, 1015, -1899, -1899, -1899, -91, 367, -1531, -203, -1899, -1899, -1899, 6, -1899, 2091, -55, 19, 2094, 1587, -1899, -1899, -1899, 2098, -817, 454, -1899, -795, 851, -1899, -1899, -1899, -1899
136 };
137
138 static const yytype_int16 yytable[] =
139 {
140 64, 271, 222, 1020, 1461, 399, 1415, 693, 1145, 502, 1684, 1462, 1228, 941, 1413, 778, 223, 106, 1474, 779, 1402, 1536, 1067, 1578, 175, 1390, 1516, 947, 1526, 1392, 108, 110, 509, 1522, 945, 280, 286, 603, 282, 393, 299, 115, 1403, 176, 391, 1518, 196, 1528, 177, 109, 935, 394, 123, 1251, 1725, 1519, 399, 1529, 392, 140, 1258, 116, 1252, 1262, 149, 148, 152, 672, 1414, 1259, 172, 287, 1263, 1, 278, 1436, 1486, 299, 1852, 173, 276, 288, 163, 174, 123, 752, 210, 285, 1034, 277, 1863, 123, 1308, 64, 904, 538, 541, 1232, 2, 299, 64, 64, 1255, 747, 296, 104, 1520, 121, 1530, 1256, 1864, 1, 299, 381, 1018, 1751, 384, 138, 1075, 106, 1374, 1081, 492, 1087, 1752, 1092, 297, 298, 210, 2086, 301, 123, 123, 184, 184, 514, 414, 519, 906, 523, 149, 468, 481, 1864, 468, 299, 2012, 1, 495, 1485, 497, 54, 799, 497, 481, 493, 510, 468, 481, 468, 105, 468, 1, 1706, 526, 604, 774, 500, 515, 1, 520, 380, 524, 1, 149, 148, 1253, 623, 537, 540, 801, 396, 601, 123, 809, -454, 1503, 421, 922, 925, 939, 1115, -8, 566, 1495, 719, 1, 2133, 551, 1277, 1707, 723, 1483, 2018, 567, 299, 400, 1539, 2127, 1, 149, 1, 559, 753, 922, 925, 1808, 106, 92, 175, 163, 571, 905, 618, 286, 1249, 286, 616, 1484, 175, 123, 1865, 280, 123, 170, 282, 922, 925, 176, 1866, -109, 922, 925, 177, 54, 922, 925, 1435, 176, 1810, 2087, 54, 54, 2133, 2083, -100, 550, 400, 2088, 287, 1, 287, 664, -104, 2003, 609, 753, 52, 853, -82, 649, 697, 1866, 842, 680, 846, 676, 696, 682, 800, 1526, 694, -89, 831, 686, 1522, 277, 1526, 64, 683, 64, 1526, 1522, 681, 1581, 501, 1522, 1, 870, 1528, 1542, 186, 1, 827, 1254, 1067, 1528, 602, 712, 1529, 1528, 92, 1434, 1116, 712, 184, 1529, 1, 289, 92, 1529, 2002, 1496, 1673, 2019, 551, 1312, 1254, 184, 2128, 905, 1, 2020, 2083, 1741, 1540, 1742, 2129, 1270, 755, 1, 1809, 2, 970, -618, 327, 743, 1268, 619, 299, 895, 897, 899, 901, 1378, 197, 753, 1300, 1304, 1271, 1530, 1, 136, 1, 799, 974, 198, 1530, -109, 143, 111, 1530, 569, 144, 1811, 1318, 970, -613, 1395, 1396, 1068, 149, 833, -100, 1270, 1366, 1370, 551, 944, 551, 1654, -104, 1658, 1334, 1656, 123, 1660, -82, 1, 527, 927, 123, 223, 1384, 1011, -871, 757, 758, 759, 584, -89, 134, 112, 1036, 149, 1583, 693, 543, 1757, 833, 1011, 868, 510, 2, 1584, 872, 571, 941, 1543, 170, 828, 883, 388, 2092, 884, 833, 872, 891, 833, 170, 1534, 54, 1, 389, 150, 841, 1021, 845, 1636, 1023, 1278, 1280, 1282, 1059, 1279, 1281, 1283, 935, 754, 272, 711, 672, 672, 672, 672, 827, 468, 468, 149, 854, 1962, 931, 210, 1152, 1896, 123, 1159, 1055, 958, 584, 1342, 1344, 1346, 962, 1343, 1345, 1347, 163, 963, 1056, 397, 1193, 468, 468, 1067, 2017, 186, 1471, 1480, 1824, 1481, 941, -1037, -1037, 976, 1559, 692, -1037, 289, 299, 149, 980, 1474, 1110, 468, 468, 587, 935, 587, 468, 468, 1, 760, 468, 468, 557, 928, 123, 123, 123, 761, 123, 585, 762, 123, 113, 586, 416, 935, 1041, 1750, 1045, -1022, 1806, -1022, 123, 123, 123, 1535, 747, 1, 149, 1773, 539, 542, 1774, 833, 497, 1, 146, 147, 468, 1, 468, 526, 1415, 1049, 551, 123, 754, 569, 149, 1042, 1413, 1046, 2, 747, 982, 982, 982, 583, 123, 1, 1676, 747, 935, 1073, 1402, 1402, 1079, 1, 1085, 1195, 1090, 1018, 184, 184, 1433, 299, 137, 1104, 1694, 1568, 1780, 747, 1013, 586, 1802, 1703, 1403, 1403, 1, 1526, 299, 1803, 299, -864, 1522, 1, 1, 1573, 1013, 569, 299, 1, 1058, 1, 1749, 702, 1229, 1, 1528, 1126, 286, 1133, 624, 2, 671, 175, 588, 145, 1529, 1146, 589, 879, 589, 1316, 2089, 1753, 2091, 1791, 1786, 1, 1789, 1, 400, 695, 176, 1103, 1517, 1523, 1527, 569, 529, 649, 649, 649, 649, 287, 387, 676, 676, 676, 676, 1382, 1, 422, 1047, 939, 1065, 2027, 423, 149, 1181, 1187, 1189, 1751, 1, 1, 1762, 1066, 123, 1530, 858, 2092, 1761, 2092, 571, 1178, 1179, 141, 1908, 142, 1198, -458, -458, -458, 146, 147, 254, 1777, 1205, 2, 2120, 26, 2122, 2085, 2124, 1210, 1220, 551, 1230, 1210, 1220, 1, 1533, 803, 804, 805, 1198, 1638, 155, 833, 2154, 1643, 146, 147, 1645, 382, 1647, 2096, 1242, 1705, -864, 1235, 1236, 1237, 146, 147, 181, 2132, 787, 2163, 1033, 979, 2147, 2148, 1265, 2150, 590, 153, 1272, 154, 922, 925, 917, 918, 922, 925, 146, 147, 146, 147, 1055, 2158, 1766, 592, 1498, 1505, 530, 51, 865, 1499, 1074, 1767, 1056, 1080, 584, 1086, 1320, 1091, 2169, 146, 147, 590, 1526, 134, 1895, 1536, 157, 1522, 158, 1902, 1332, 859, 146, 147, 1337, 896, 1986, 860, 902, 1169, 1173, 1528, 530, 1464, 1386, 590, 1309, 1454, 1455, 416, 1456, 1529, 919, 1458, 1459, -458, 1497, 587, -458, 1397, 149, 1400, 1773, 1774, 833, 833, 833, 159, 862, 806, 1488, 1489, 2152, 393, 1375, 170, 533, 807, 1470, 567, 808, 1197, 1490, 789, 790, 394, 1559, 414, 1416, 210, 1313, 1, 392, 976, 1964, 149, 980, -458, -458, -458, 981, 1500, 1530, 163, 1426, 571, 1501, 1197, 1146, -1062, 1197, 1, 571, 591, 1441, 1443, 2, 1445, 1379, 833, 1541, 1544, 1, 699, 160, 1508, -1068, -458, -458, -458, 593, 1022, 699, 672, 1024, 1, 672, 848, 699, 1523, 1527, 586, 692, 1479, -1062, 1711, 1523, 1527, 591, 1712, 1523, 1527, 134, 399, 1063, 1054, 123, 1, 149, 900, 2, 231, 210, 254, 1983, 123, 295, 1771, -1062, 121, 1478, 181, 591, 123, 672, 123, 1482, 1493, 299, 1565, 849, 689, 974, 387, 589, 149, 931, 414, 672, 672, 672, 672, 791, 792, 510, 510, 977, 497, 1419, 468, 497, 1, 978, 1561, 978, 510, 1504, 149, 1506, -216, 1494, 711, 569, -458, 1319, 1562, 1806, 1239, 1813, 1422, 1240, -458, 32, 1916, -458, 978, 701, 300, 146, 147, 1603, 1971, 1807, 123, 1873, 701, 941, 1779, 935, 146, 147, 701, 1385, 860, -460, -460, -460, 569, 2037, 1466, 420, -458, 1547, 43, 44, 52, 569, 747, 671, 671, 671, 671, 1317, 569, 497, 497, 783, 784, 468, 468, 569, 2053, 468, 468, 468, 1476, 149, 1889, 935, 123, 123, 935, -265, -265, -265, 1548, 1188, 1190, 1191, 123, 1383, 123, 210, 551, 1986, 1301, 1305, 833, 136, 1, 149, 106, 528, 833, 1781, 529, 149, 546, 1093, 833, 978, 387, 149, 1321, 1, 833, 527, 149, 146, 147, -216, 569, 1679, 1367, 1371, 861, -216, 107, 754, 396, 1247, 149, 1, 1094, 556, 2138, 649, 569, 1, 649, 106, 1387, 676, 1018, 1699, 676, 1677, 560, 1126, 1095, 1133, 1564, 817, 818, 400, 793, 794, 2, 1678, 1618, 2060, 780, 2061, 400, 689, 1013, 1260, 1, -460, 106, 561, -870, 1631, -870, -870, 562, 26, 649, 1272, 1096, 1097, 781, 782, 676, -459, -459, -459, 1627, 492, 594, 1782, 649, 649, 649, 649, 679, 978, 676, 676, 676, 676, 197, -265, 28, 29, -900, -265, 595, 32, 468, 468, 123, 198, 123, 597, 38, 1813, 1292, 1294, 678, 1296, 493, 1886, 833, 1012, 149, 2040, 1015, 860, 1576, 833, 146, 147, 1577, 414, 210, 785, 786, -870, 43, 44, 156, 922, 925, 810, 1356, 1358, 1360, 1362, -870, -740, 1054, -740, 1688, 599, 146, 147, 600, 1421, 161, 1688, 819, 820, 2022, 811, 812, 1430, 1963, 496, 149, 1, 1523, 1527, 860, -870, 2082, 134, 1444, 104, 2083, 1559, 1662, 1586, 2084, -870, 1592, 136, 1720, 416, 416, -899, 1721, 711, 535, 1567, 1713, 922, 925, 1987, 387, 1570, 1974, -870, -870, -870, 1093, 1571, 860, -459, 983, 984, 985, 1572, 1284, 1286, 134, 2029, 1, 698, 911, 912, 699, 860, 1633, 1093, -216, 1923, 1025, 1027, 583, 1094, 1643, 813, 814, 1647, 134, 2034, 1169, 1173, 1169, 1173, 913, 860, 1348, 1350, 914, 1095, 915, 720, 1094, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 935, 935, -899, -899, 1095, 28, 29, -899, 1732, -626, 32, -626, 1721, 1661, -899, 1096, 1097, 38, 916, 2052, 1663, 721, 1509, 1185, 2100, 860, 724, 416, 1775, 689, 860, 28, 29, 725, 1096, 1097, 32, 1018, -899, -899, 1869, 43, 44, 38, 1870, 2098, 2141, 2143, 1018, 2099, 2083, 2083, 672, 672, -899, -899, -899, -1017, 536, -1017, 726, 1739, 1740, 701, 672, 1743, 149, 43, 44, 727, 833, 833, 728, 146, 147, -216, -911, 397, 1285, 1287, 1551, -216, 149, 754, 1098, 1744, 1416, 1506, 2159, 853, 414, 2160, 2083, 1523, 1527, 2083, 1754, 843, 123, 847, 732, 1631, 2165, -458, -458, 123, 2083, 795, 1349, 1351, 1763, 149, 123, -458, 1639, 1640, 1641, 1807, -458, -458, -458, 751, -458, -458, -458, -458, -458, -625, 2172, -625, 503, 2135, 2083, 123, 516, 1770, 1, 754, 123, 2125, 75, 123, 671, 2083, 149, 671, 544, 2126, 545, -911, -911, 28, 29, 414, -911, 548, 32, 545, 32, 468, 468, -911, 396, 38, 833, 833, 833, 833, 797, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 1035, 1107, 1, 545, 671, 796, -911, -911, 43, 44, 43, 44, 754, 1182, 1150, 142, 1987, 798, 671, 671, 671, 671, -911, 802, -911, 1507, 893, 823, -880, -880, 254, 689, 824, -880, 468, 468, 825, 123, 1, 826, -880, 1650, 2144, 1651, 179, 123, 2083, 815, 816, 1018, 2145, 1264, 1668, 1, 75, 1672, 571, 1271, 1900, 1, 1903, 75, 75, 2, -880, -880, 418, 1331, 1336, 1, 1, 1288, 1290, 830, 1911, 1913, 649, 649, 1513, 881, 1514, 1898, 676, 676, 754, 754, 1126, 1613, 649, 1126, 838, 1185, 1126, 1899, 676, 416, 1618, 839, 1060, 773, 1126, 1352, 1354, 1126, 1511, 1069, 1512, 569, 850, 28, 29, 854, 689, 754, 32, 1856, 821, 822, 1853, 1013, 1795, 38, 1798, 254, 672, 1289, 1291, 1018, 1146, 1796, 851, 1799, 1450, 1452, 1867, 510, 747, 747, 747, 747, 747, 747, 747, 747, 2161, 43, 44, 1006, 2083, 1451, 1453, 903, 2162, 1966, 910, 1353, 1355, 920, 1111, 689, 1026, 1028, 1164, 1166, 960, 563, 1165, 1167, 414, 967, 210, 969, 1011, 414, 291, 294, 1404, 1405, 28, 29, 968, 970, 575, 32, 922, 925, 1029, 922, 925, 1030, 38, 1242, 973, 1917, 1918, 1031, 1070, 1921, 922, 925, 922, 925, 1037, 1038, 198, 1076, 1, 569, 1082, 1088, 1108, 1105, 1113, 1106, 43, 44, 1114, 1112, 1132, 1143, 1134, 1183, 1827, 1831, 1135, 1, 1144, -1036, -1036, 1397, 747, 2, -1036, -216, 1843, 1147, 1148, 1149, 414, 179, 121, 1194, 123, 123, 1207, 123, 1248, 1260, 1975, 179, 1978, 75, 1406, 1424, 1407, 1408, 1409, 149, 1449, 1410, 2136, 1411, 389, 1423, 2137, 1440, 1551, 922, 925, 1448, 468, 1487, 468, 1467, 1989, 833, 1991, 28, 29, 2038, 788, 1976, 32, 1979, -732, -735, 739, 1552, 2045, 38, 1553, 1554, 397, 672, 1555, 672, 468, 1556, 468, 123, 1557, 1574, 1575, 1589, 1579, 1580, 1590, 1990, 416, 1992, 1605, 1606, 416, 43, 44, 583, 1607, 1609, 1614, 1628, 1683, 1126, 1126, 1126, 1126, 1622, 52, 649, 1206, 1648, 1623, 1126, 1126, 676, 1126, 1624, 1126, 1649, 422, 1015, 1652, 1681, 146, 147, -216, 2054, 2056, 1669, 1126, 1420, -216, 418, 754, 28, 29, 1670, 1208, 1146, 32, 1685, 1631, 1006, 672, 1, 1686, 38, 1696, 1704, 1006, 1697, 2015, 1006, 2015, 1013, 1698, 416, 1800, 1, 1701, 1708, 575, 1709, 470, 1710, 1722, 470, 1728, 1715, 2, 43, 44, 1731, 414, 416, 551, 1736, 1738, 121, 470, 1760, 470, -458, 470, 402, -458, -458, -458, -458, -458, -458, -458, -458, 1764, 1778, 1792, 1821, 1783, 1814, 1820, 1815, -738, 1816, 1823, 1850, 1868, 1854, 569, 1817, 1871, 1818, 1872, 1819, 575, 1844, 28, 29, 1845, 1905, 1875, 32, 1877, 1879, 2058, 671, 671, 1881, 38, 1882, 28, 29, 1883, 1885, 1890, 32, 1891, 671, 1, 1892, 1961, 1893, 38, 1465, 468, 468, 468, 468, 468, 833, 1906, 833, 43, 44, 575, 1999, 1894, 2059, 468, 468, 468, 468, 51, 2, 1909, 566, 43, 44, 1910, 1126, 2130, 2131, 121, 1915, -231, 1965, 567, 1968, 649, 52, 649, 2081, 1491, 1969, 676, 1977, 676, -956, 1980, 1972, 1146, 1631, 1973, 1982, 18, 19, 2001, -458, -458, 2021, 57, 2016, 2028, 2030, 2031, 2032, 2015, -458, 2015, 28, 29, 2065, 2033, 2047, 32, 2066, -458, -458, -458, -458, -458, 38, 2035, 2036, 28, 29, 2041, 468, 468, 32, 2042, 2043, 2044, 2048, 1126, 1126, 38, 2049, 1126, 2050, 1126, 114, 2051, 1126, 2097, 43, 44, 649, 2090, 2101, 2103, 416, 2102, 676, 2104, 2106, 416, 2112, 566, 57, 43, 44, 1631, 2105, 1146, 2117, 151, 1185, 1146, 567, 51, 2015, 2015, 2134, 2015, 2118, 2015, 2142, 2123, 1566, 1126, 2146, 2149, 57, 2155, 2156, 57, 2157, 2166, 2151, 2167, 2168, 255, 57, 2170, 2171, 951, 1006, 1006, 1006, 57, 57, 1, 1146, 1631, 2140, 2173, 1649, 1126, 952, 1015, 953, 954, 57, 2015, 2015, 383, 2015, 957, 1981, 1146, 416, 1790, 1502, 2077, 1412, 2080, 2, 57, 684, 1604, 685, 1457, 2015, 1492, 880, 408, 1335, 1768, 888, 179, 408, 255, 1233, 408, 722, 1201, 1984, 617, 2119, 2015, 290, 279, 281, 255, 665, 57, 408, 255, 408, 283, 408, 416, 739, 293, 1960, 0, 0, 0, 0, 0, 0, 1201, 28, 29, 1201, 671, 0, 32, 0, 0, 0, 0, 0, 1245, 38, 255, 255, 0, 470, 470, 28, 29, 2116, 0, 0, 32, 0, 408, 0, 0, 1293, 1295, 38, 1297, 1006, 0, 0, 0, 43, 44, 0, 558, 0, 0, 470, 470, 0, 0, 0, 0, 57, 1680, 0, 0, 0, 0, 43, 44, 1357, 1359, 1361, 1363, 451, 0, 0, 451, 470, 470, 0, 0, 404, 470, 470, 1700, 0, 470, 470, 0, 451, 0, 451, 0, 451, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 255, 0, 0, 255, 255, 645, 0, 418, 418, 0, 416, 0, 575, 57, 0, 0, 0, 0, 0, 470, 2, 470, 0, 57, 255, 57, 0, 699, 699, 121, 699, 699, 0, 0, 0, 699, 699, 699, 699, 0, 0, 0, 0, 255, 0, 0, 0, 575, 0, 255, 0, 0, 0, 18, 19, 0, 575, 0, 0, 0, 408, 0, 0, 575, 0, 0, 28, 29, 739, 0, 575, 32, 0, 0, 0, 0, 1, 0, 38, 0, 671, 0, 671, 28, 29, 1006, 1006, 0, 32, 0, 0, 0, 1006, 1006, 0, 38, 1006, 1006, 0, -880, -880, 2, 43, 44, -880, 0, 0, 418, 0, 0, 121, -880, 51, 0, 0, 52, 1463, 57, 0, 43, 44, 575, 408, 0, 408, 1649, 1015, 0, 1, 0, 1929, 1933, 1141, 1939, 1943, -880, -880, 575, 1947, 1951, 1955, 1959, 0, 0, 0, 0, 0, 28, 29, 671, 0, 0, 32, 2, 57, 754, 408, 57, 0, 38, 255, 57, 192, 193, 0, 0, 882, 0, 0, 0, 57, 255, 0, 57, 699, 699, 699, 699, 699, 699, 699, 699, 0, 43, 44, 0, 0, 0, 0, 0, 0, 621, 625, 51, 0, 0, 52, 0, 0, 28, 29, 408, 408, 0, 32, 930, 57, 57, 0, 0, 0, 38, 0, 408, 0, 0, 0, 0, 961, 0, 0, 18, 19, 255, 1776, 0, 0, 408, 408, 0, 971, 0, -641, 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 51, 57, 0, 52, 408, 408, 28, 29, 0, 408, 408, 32, -641, 408, 408, 0, 0, 0, 38, 0, 645, -641, -641, 699, 0, 0, 0, 255, 0, 0, 255, 0, 701, 701, 701, 701, 701, 701, 701, 701, 0, 0, 43, 44, 0, 0, 57, 0, 451, 451, 0, 408, 51, 408, 0, 1006, 57, 408, -641, -641, 955, 0, 0, -641, 0, 0, 0, 0, 0, 0, -641, 0, 0, 0, 451, 451, 57, 0, 0, 57, 0, 57, 0, 57, 0, 0, 18, 19, 28, 29, 57, 0, 0, 32, -641, -641, 451, 451, 66, 0, 38, 451, 451, 0, -641, 451, 451, -641, 0, 418, 972, 0, 970, -641, 0, 0, 28, 29, 0, 0, 0, 32, 470, 470, 43, 44, 701, 0, 38, 0, 0, 0, 0, 0, 51, 0, 1666, 862, 0, 0, 0, 0, 0, 451, 0, 451, 0, 0, 567, 0, 0, 485, 43, 44, 645, 645, 645, 645, 0, 0, 0, 0, 0, 485, 0, 1612, 0, 485, 0, 0, 0, 0, 1006, 1006, 0, 0, 0, 0, 0, 0, 0, 66, 255, 255, 255, 470, 0, 57, 1901, 0, 1904, 66, 0, 408, 0, 1, 0, 0, 66, 66, 0, 255, 0, 0, 1912, 1914, 0, 0, 255, 255, 408, 0, 255, 255, 0, 621, 0, 0, 621, 408, 2, 0, 57, 0, 0, 28, 29, 28, 29, 121, 32, 57, 32, 0, 645, 0, 0, 38, 0, 38, 483, 645, 923, 926, 645, 0, 0, 0, 0, 0, 0, 0, 483, 0, 470, 470, 483, 0, 470, 470, 470, 43, 44, 43, 44, 0, 28, 29, 923, 926, 0, 32, 0, 0, 613, 855, 0, 856, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 923, 926, 0, 0, 0, 923, 926, 0, 0, 923, 926, 0, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 51, 622, 626, 52, 0, 716, 0, 0, 0, 0, 418, 716, 57, 0, 418, 57, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 625, 1170, 1174, 0, 0, 0, 0, 408, 408, 57, 0, 0, 1006, 1006, 28, 29, 57, 88, 0, 32, 0, 0, 0, 0, 255, 57, 38, 0, 0, 621, 0, 0, 57, 66, 0, 255, 0, 408, 0, 57, 0, 0, 0, 66, 0, 66, 418, 0, 0, 0, 43, 44, 470, 470, 0, 0, 0, 0, 0, 575, 51, 0, 0, 1208, 418, 0, 2039, 0, 0, 131, 0, 0, 0, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 57, 875, 0, 0, 0, 0, 0, 0, 0, 164, 182, 195, 875, 0, 0, 0, 57, 408, 233, 0, 88, 0, 0, 0, 57, 57, 0, 88, 88, 408, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 2055, 2057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 255, 645, 195, 401, 403, 405, 406, 255, 966, 0, 0, 0, 474, 575, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 0, 474, 0, 474, 0, 483, 0, 0, 0, 0, 0, 0, 0, 408, 408, 0, 483, 408, 408, 408, 0, 0, 0, 0, 0, 534, 403, 405, 0, 0, 0, 0, 0, 0, 0, 0, 451, 57, 408, 0, 0, 0, 57, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 57, 0, 564, 579, 622, 418, 0, 622, 483, 0, 418, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 645, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451, 451, 615, 0, 451, 451, 451, 0, 0, 0, 0, 0, 0, 0, 739, 182, 0, 645, 0, 0, 0, 0, 0, 0, 0, 690, 0, 88, 0, 0, 418, 645, 645, 645, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 408, 0, 0, 0, 255, 0, 255, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 76, 57, 418, 0, 255, 408, 57, 0, 0, 0, 0, 0, 0, 0, 470, 470, 0, 622, 626, 1171, 1175, 0, 0, 0, 255, 0, 0, 82, 0, 575, 0, 255, 0, 0, 0, 1214, 1224, 0, 0, 1214, 1224, 0, 0, 0, 0, 0, 0, 622, 0, 255, 645, 0, 0, 0, 0, 0, 255, 645, 0, 0, 255, 645, 0, 401, 403, 405, 0, 0, 470, 470, 0, 0, 451, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 863, 0, 0, 0, 0, 0, 76, 474, 1587, 0, 0, 1593, 0, 76, 76, 0, 66, 0, 131, 0, 0, 0, 0, 82, 0, 0, 0, 0, 418, 0, 0, 0, 0, 82, 0, 0, 0, 0, 923, 926, 82, 82, 923, 926, 0, 0, 0, 474, 474, 1634, 0, 0, 937, 0, 0, 486, 948, 0, 0, 474, 0, 739, 0, 1170, 1174, 1170, 1174, 486, 164, 0, 0, 486, 0, 474, 474, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 621, 0, 621, 0, 0, 0, 863, 0, 487, 474, 474, 0, 487, 0, 474, 474, 0, 0, 474, 474, 0, 1429, 195, 195, 195, 0, 0, 0, 0, 57, 57, 0, 1429, 0, 0, 0, 0, 0, 0, 0, 195, 195, 0, 0, 0, 408, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 474, 0, 474, 0, 0, 1052, 0, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 483, 0, 408, 0, 0, 76, 0, 76, 408, 408, 0, 483, 0, 57, 57, 57, 57, 0, 0, 0, 0, 470, 82, 470, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 82, 0, 0, 1784, 0, -630, 613, 0, 0, 0, 0, 0, 0, 470, 0, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 408, -630, 0, 0, 0, 0, 0, 0, 0, 0, -630, -630, 0, 1186, 0, 0, 0, 0, 0, 690, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 645, 451, 451, 0, 1216, 645, 645, 0, 1216, 0, 0, -630, -630, 0, 0, 0, -630, 0, 645, 0, 0, 645, 0, -630, 0, 0, 0, 863, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, 0, 0, -630, -630, 0, 0, 0, 0, 0, 486, 451, 451, -630, 0, 0, -630, 0, 0, 1785, 57, 970, -630, 0, 0, 0, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1588, 876, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 57, 0, 0, 408, 0, 0, 0, 486, 0, 0, 0, 0, 0, 0, 0, 470, 470, 470, 470, 470, 0, 57, 1635, 0, 0, 0, 0, 0, 0, 470, 470, 470, 470, 0, 876, 0, 1171, 1175, 1171, 1175, 0, 0, 613, 0, 0, 0, 0, 0, 0, 1417, 0, 0, 0, 0, 0, 0, 863, 0, 0, 622, 0, 622, 1692, 164, 863, 1431, 0, 0, 408, 1692, 0, 0, 1438, 0, 0, 863, 0, 1446, 0, 0, 0, 0, 0, 255, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1828, 1832, 923, 926, 470, 470, 408, 0, 408, 0, 0, 57, 0, 1587, 0, 0, 1593, 0, 0, 0, 0, 0, 131, 0, 1634, 0, 0, 0, 0, 0, 0, 1475, 408, 0, 408, 344, 579, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, 0, 923, 926, 0, 415, 0, 0, 0, 0, 0, 474, 0, 645, 645, 452, 0, 0, 452, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 452, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 451, 937, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 76, 0, 451, 0, 451, 0, 408, 0, 408, 0, 0, 0, 474, 474, 0, 0, 474, 474, 474, 0, 0, 0, 0, 1549, 401, 0, 0, 82, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 408, 408, 408, 408, 57, 0, 57, 0, 0, 0, 0, 0, 0, 408, 408, 408, 408, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 704, 707, 709, 0, 0, 415, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 1828, 1832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 415, 0, 474, 474, 0, 0, 0, 0, 408, 408, 0, 0, 0, 86, 0, 0, 0, 451, 451, 451, 451, 451, 0, 863, 0, 0, 863, 0, 1675, 486, 0, 451, 451, 451, 451, 0, 0, 415, 0, 415, 486, 0, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 1216, 0, 302, 876, 1, 303, 106, 0, 0, 0, 0, 0, 86, 0, 876, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1829, 1833, 86, 86, 0, 0, 451, 451, 0, 0, 86, 0, 86, 626, 0, 0, 626, 0, 0, 86, 86, 0, 0, 0, 626, 307, 0, 452, 452, 0, 0, 308, 309, 0, 0, 0, 0, 0, 0, 956, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 86, 86, 0, 452, 452, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 0, 0, 0, 0, 0, 0, 452, 452, 0, 322, 0, 452, 452, 0, 706, 452, 452, 415, 0, 0, 0, 0, 0, 0, 327, 328, 0, 0, 0, 0, 748, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, 923, 926, 0, 923, 926, 452, 415, 452, 0, 0, 0, 0, 0, 0, 923, 926, 923, 926, 0, 0, 0, 0, 0, 0, 0, 0, 1747, 0, 0, 0, 0, 0, 86, 0, 0, 86, 0, 0, 344, 0, 0, 1756, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 86, 0, 0, 0, 0, 0, 0, 0, 0, 1769, 0, 579, 0, 86, 0, 0, 923, 926, 0, 0, 0, 0, 0, 86, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 626, 626, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 474, 0, 401, 0, 0, 0, 344, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 415, 0, 0, 415, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 415, 415, 415, 415, 415, 415, 415, 0, 0, 415, 415, 0, 415, 415, 415, 415, 415, 415, 415, 415, 86, 344, 0, 0, 0, 0, 0, 0, 0, 344, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1887, 0, 0, 0, 777, 0, 0, 1137, 0, 0, 0, 0, 0, 0, 0, 415, 415, 0, 0, 0, 0, 0, 417, 0, 0, 0, 705, 708, 710, 0, 0, 417, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 731, 0, 86, 86, 86, 0, 86, 362, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86, 86, 0, 417, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 86, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 417, 474, 417, 0, 863, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 748, 0, 452, 0, 474, 0, 474, 0, 0, 0, 0, 0, 0, 417, 1275, 0, 405, 0, 0, 0, 0, 0, 0, 415, 0, 415, 0, 0, 0, 0, 0, 359, 658, 1298, 1302, 1306, 1310, 1314, 0, 0, 1323, 1329, 0, 0, 0, 0, 748, 0, 0, 1340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 1368, 1372, 1376, 1380, 0, 0, 1323, 1393, 0, 452, 452, 0, 0, 452, 452, 452, 0, 86, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 415, 0, -871, 0, 0, -871, -871, -871, 0, -871, -871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -871, 0, 417, 0, 0, 0, -871, -871, -871, 1138, 0, 344, 344, 474, 474, 474, 474, 474, 0, -871, 0, 0, 0, 0, 0, 0, 0, 474, 474, 474, 474, 0, 652, -871, 362, 0, 0, -871, -871, -871, -871, -871, -871, -871, -871, 0, 894, 0, 0, 0, 0, 0, 0, -871, -871, 452, 452, 0, 0, 0, -871, -871, 417, -871, -871, -871, 0, 0, -871, -871, 0, -871, -871, -871, -871, 415, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 0, 0, 0, 0, 0, 474, 474, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 415, 86, 0, 344, 0, 0, 0, 415, 0, 0, 0, 415, 1267, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 86, 0, 0, 362, 0, 1299, 1303, 1307, 1311, 1315, 0, 0, 1324, 0, 0, 0, 0, 0, 1267, 417, 86, 0, 0, 0, 0, 0, 417, 0, 0, 417, 0, 0, 0, 1365, 1369, 1373, 1377, 1381, 0, 0, 1324, 0, 0, 0, 0, 0, 0, 1137, 0, 362, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 0, 0, 417, 417, 0, 417, 417, 417, 417, 417, 417, 417, 417, 1275, 362, 1128, 0, 0, 0, 0, 1340, 0, 362, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 362, 0, 0, 0, 0, 658, 658, 658, 658, 0, 0, 0, 1323, 0, 1323, 0, 0, 0, 0, 86, 86, 0, 0, 0, 415, 0, 0, 0, 415, 0, 0, 417, 417, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 1716, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 1102, 0, 417, 0, 417, 452, 452, 0, 0, 0, 0, 0, 415, 374, 344, 0, 0, 0, 0, 415, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 417, 0, 0, 0, 415, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 86, 0, 0, 452, 452, 0, 0, 0, 0, 652, 652, 652, 652, 0, 0, 0, 417, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 1238, 0, 0, 0, 0, 0, 1610, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 0, 1637, 0, 0, 0, 0, 0, 0, 1644, 0, 0, 0, 0, 1276, 0, 0, 0, 0, 417, 0, 0, 0, 0, 1477, 0, 0, 415, 0, 0, 417, 415, 415, 415, 0, 0, 0, 0, 0, 0, 0, 1330, 344, 1324, 0, 1324, 750, 415, 415, 1341, 0, 0, 0, 0, 344, 0, 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 1394, 0, 0, 0, 415, 415, 0, 415, 415, 0, 0, 0, 415, 415, 415, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 417, 0, 417, 0, 0, 0, 0, 553, 0, 553, 0, 0, 0, 0, 452, 0, 452, 0, 415, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 452, 417, 452, 0, 0, 417, 0, 0, 362, 0, 0, 0, 417, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 344, 0, 415, 415, 415, 415, 415, 415, 415, 415, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 658, 658, 658, 415, 415, 0, 0, 0, 1017, 0, 0, 86, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 0, 0, 0, 1924, 1926, 1930, 1934, 1936, 1940, 0, 0, 0, 1944, 1948, 1952, 1956, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 415, 415, 0, 0, 0, 0, 0, 0, 452, 452, 452, 452, 452, 0, 0, 417, 0, 0, 0, 417, 0, 374, 452, 452, 452, 452, 0, 0, 0, 0, 0, 652, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 1629, 1630, 0, 0, 0, 0, 417, 652, 0, 1276, 0, 0, 0, 1642, 0, 0, 1341, 417, 1646, 0, 0, 652, 652, 652, 652, 0, 452, 452, 0, 0, 0, 0, 0, 0, 0, 417, 0, 362, 0, 0, 0, 0, 417, 0, 417, 0, 0, 0, 344, 0, 0, 0, 1926, 1930, 1936, 1940, 1944, 1948, 1952, 1956, 0, 417, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 1005, 1717, 0, 417, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 1922, 0, 0, 0, 0, 1925, 1927, 1931, 1935, 1937, 1941, 0, 0, 0, 1945, 1949, 1953, 1957, 0, 0, 0, 0, 0, 417, 0, 0, 0, 417, 417, 417, 0, 0, 0, 0, 0, 0, 0, 469, 362, 0, 469, 0, 0, 417, 417, 0, 0, 0, 0, 0, 362, 0, 0, 469, 0, 469, 0, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 417, 0, 417, 417, 0, 0, 0, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 1005, 0, 553, 0, 658, 658, 0, 0, 0, 0, 0, 0, 417, 0, 1128, 0, 1128, 658, 0, 620, 658, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 1128, 0, 0, 0, 0, 0, 417, 0, 0, 0, 553, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 650, 1005, 0, 1005, 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, 362, 362, 249, 417, 417, 417, 417, 417, 417, 417, 417, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 417, 652, 652, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 652, 652, 0, 0, 652, 1005, 0, 0, 0, 0, 0, 0, 652, 0, 0, 652, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 374, 374, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1128, 1128, 1128, 1128, 0, 0, 1128, 0, 0, 0, 658, 658, 0, 1128, 0, 1128, 469, 469, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 1919, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 469, 1717, 0, 0, 0, 0, 1642, 0, 0, 1646, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 469, 0, 0, 0, 469, 469, 0, 0, 469, 469, 1005, 0, 0, 374, 0, 1003, 362, 1005, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 0, 469, 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 652, 652, 652, 652, 0, 0, 652, 0, 0, 1128, 652, 652, 0, 652, 0, 652, 221, 0, 1128, 0, 1128, 0, 0, 0, 419, 650, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2023, 2024, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650, 650, 650, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1128, 1128, 0, 0, 1128, 0, 1128, 0, 0, 1128, 0, 0, 0, 1128, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 1003, 0, 0, 0, 0, 553, 0, 1003, 0, 0, 1003, 1128, 0, 1017, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 311, 312, 374, 0, 652, 0, 652, 1005, 0, 1005, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 1005, 0, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 1724, 329, 330, 331, 332, 0, 1017, 0, 0, 652, 652, 0, 0, 652, 0, 652, 0, 0, 652, 0, 0, 0, 652, 0, 0, 0, 0, 0, 1005, 2121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 834, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 469, 0, 652, 0, 0, 0, 869, 511, 0, 0, 0, 878, 126, 0, 0, 0, 0, 2164, 0, 0, 885, 0, 0, 892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 126, 0, 0, 0, 553, 0, 553, 232, 0, 0, 0, 0, 0, 943, 0, 374, 0, 0, 469, 959, 553, 553, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1003, 0, 1003, 126, 126, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 469, 469, 0, 0, 469, 469, 469, 0, 0, 0, 221, 0, 532, 0, 117, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 221, 0, 221, 178, 221, 0, 0, 0, 0, 0, 0, 0, 261, 74, 0, 0, 596, 0, 0, 598, 74, 74, 1003, 0, 0, 650, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 650, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 374, 374, 484, 0, 180, 0, 650, 0, 0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 484, 0, 650, 650, 650, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 469, 469, 0, 0, 0, 0, 553, 0, 261, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, 0, 0, 0, 0, 0, 1003, 0, 0, 0, 0, 0, 0, 1003, 0, 0, 0, 1003, 0, 126, 0, 0, 0, 612, 0, 0, 261, 261, 261, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 261, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 834, 834, 834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 419, 221, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 126, 0, 1010, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 126, 0, 0, 0, 0, 0, 574, 0, 0, 0, 374, 0, 874, 1469, 0, 0, 0, 0, 0, 126, 0, 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 511, 511, 0, 0, 1003, 0, 0, 0, 0, 0, 0, 511, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 965, 469, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1003, 0, 1003, 574, 0, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 261, 0, 0, 0, 0, 0, 0, 261, 0, 0, 261, 0, 0, 469, 469, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 232, 0, 0, 0, 221, 0, 0, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 221, 1003, 0, 0, 307, 0, 650, 650, 0, 0, 308, 309, 310, 0, 0, 0, 650, 0, 650, 650, 0, 0, 650, 311, 312, 0, 0, 0, 0, 0, 650, 0, 0, 650, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, 0, 0, 0, 0, 322, 323, 324, 1142, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1730, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 552, 261, 261, 261, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 261, 0, 0, 178, 419, 221, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 1213, 1223, 738, 0, 1213, 1223, 0, 0, 0, 0, 0, 1200, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 1244, 0, 0, 261, 0, 0, 0, 0, 0, 0, 261, 0, 0, 261, 0, 126, 0, 0, 0, 0, 0, 0, 1003, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 469, 552, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 91, 0, 0, 0, 0, 0, 0, 469, 0, 469, 0, 0, 0, 0, 596, 0, 598, 126, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 650, 650, 650, 650, 574, 0, 650, 0, 0, 0, 650, 650, 0, 650, 0, 650, 0, 0, 0, 120, 132, 0, 552, 0, 552, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 398, 0, 0, 0, 0, 1428, 574, 0, 0, 183, 132, 0, 0, 574, 230, 0, 1428, 117, 738, 91, 574, 0, 0, 834, 834, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 419, 0, 0, 0, 419, 386, 0, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 657, 0, 0, 0, 0, 469, 469, 469, 469, 469, 0, 687, 419, 0, 531, 0, 0, 0, 0, 469, 469, 469, 469, 419, 1788, 419, 1788, 547, 0, 1004, 650, 0, 261, 261, 261, 0, 0, 0, 0, 650, 612, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 598, 0, 469, 469, 0, 0, 0, 0, 0, 650, 650, 132, 0, 650, 0, 650, 0, 0, 650, 0, 0, 0, 650, 0, 183, 0, 0, 0, 0, 0, 0, 0, 852, 0, 691, 0, 91, 0, 857, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 650, 0, 261, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142, 0, 0, 0, 0, 0, 0, 0, 736, 0, 650, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 934, 0, 0, 1192, 261, 261, 261, 261, 0, 0, 0, 0, 419, 0, 221, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 612, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 1004, 864, 0, 1004, 1009, 0, 0, 1014, 0, 0, 1691, 0, 0, 0, 0, 0, 0, 1691, 0, 132, 1009, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, 0, 0, 577, 261, 261, 0, 0, 261, 261, 0, 0, 0, 0, 0, 938, 577, 0, 946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 0, 0, 0, 0, 0, 1140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 657, 657, 657, 1053, 0, 1062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1064, 0, 0, 687, 0, 0, 0, 0, 0, 687, 0, 0, 0, 0, 0, 0, 1004, 0, 552, 419, 0, 0, 736, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 547, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 1158, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1274, 0, 0, 0, 0, 1004, 0, 1004, 261, 0, 260, 574, 0, 419, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 0, 0, 0, 0, 0, 0, 691, 1327, 0, 0, 0, 0, 0, 0, 0, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, 0, 0, 0, 1218, 0, 0, 0, 1391, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, 0, 0, 687, 0, 574, 0, 1004, 0, 0, 1437, 0, 0, 0, 0, 0, 0, 0, 552, 261, 261, 0, 736, 0, 0, 261, 261, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 261, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1473, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 260, 260, 260, 0, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 864, 1418, 0, 0, 0, 260, 0, 864, 0, 0, 0, 0, 0, 0, 552, 864, 1432, 0, 126, 0, 0, 0, 0, 1439, 714, 0, 864, 120, 132, 0, 714, 0, 0, 0, 0, 934, 552, 0, 0, 0, 0, 737, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 132, 1004, 0, 0, 0, 0, 0, 0, 1472, 0, 0, 0, 0, 0, 581, 398, 0, 0, 0, 0, 132, 0, 0, 0, 577, 0, 577, 0, 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 938, 657, 0, 0, 657, 1596, 1598, 0, 1601, 0, 0, 0, 0, 0, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 1620, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 657, 573, 0, 0, 1550, 0, 0, 1158, 0, 0, 0, 0, 1158, 1558, 657, 657, 657, 657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 0, 687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 1655, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 738, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 1129, 0, 0, 1004, 0, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 864, 0, 0, 864, 0, 1218, 0, 1168, 1172, 0, 0, 0, 0, 1682, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 1218, 0, 0, 0, 0, 0, 0, 1218, 0, 0, 1158, 0, 0, 0, 0, 0, 260, 260, 260, 260, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 1199, 0, 0, 0, 0, 0, 1158, 0, 260, 0, 0, 0, 0, 0, 0, 1212, 1222, 737, 0, 1212, 1222, 0, 0, 0, 0, 0, 1199, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, 260, 687, 0, 0, 0, 0, 0, 260, 1759, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 552, 0, 0, 0, 1437, 0, 577, 0, 0, 1772, 0, 0, 1014, 0, 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1928, 1932, 0, 1938, 1942, 0, 0, 0, 1946, 1950, 1954, 1958, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 1748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 1755, 0, 0, 1004, 0, 0, 0, 1758, 0, 0, 852, 0, 0, 0, 0, 395, 573, 0, 577, 0, 0, 0, 0, 735, 0, 573, 0, 0, 0, 577, 0, 0, 573, 0, 0, 0, 1439, 737, 581, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 657, 0, 0, 0, 0, 1158, 0, 1158, 0, 0, 1158, 657, 0, 0, 0, 0, 1846, 1849, 0, 1851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 1862, 0, 573, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 1928, 1932, 1938, 1942, 1946, 1950, 1954, 1958, 1812, 0, 1158, 0, 0, 0, 1158, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 581, 0, 0, 0, 552, 0, 0, 260, 260, 260, 0, 0, 0, 552, 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 552, 552, 0, 0, 0, 0, 717, 687, 687, 0, 1967, 0, 717, 0, 1585, 0, 0, 1591, 0, 0, 0, 0, 0, 740, 0, 0, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1888, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 260, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0, 0, 1009, 0, 0, 0, 0, 1168, 1172, 1168, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 1158, 0, 0, 260, 260, 260, 260, 1158, 1418, 0, 0, 1851, 0, 2005, 0, 0, 0, 576, 0, 0, 0, 0, 2011, 0, 0, 0, 260, 1139, 260, 0, 1758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 1157, 0, 611, 0, 1162, 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1690, 736, 0, 0, 576, 0, 0, 1690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, 735, 0, 0, 735, 260, 260, 0, 0, 260, 260, 0, 0, 0, 0, 0, 0, 576, 1227, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 1157, 1162, 0, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 122, 0, 0, 0, 0, 1682, 0, 139, 0, 1273, 0, 0, 0, 0, 0, 0, 0, 2068, 2071, 0, 1158, 0, 1158, 0, 0, 657, 1158, 657, 0, 0, 162, 171, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1325, 0, 0, 0, 0, 0, 0, 0, 1338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1389, 0, 0, 0, 122, 122, 0, 0, 1158, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 657, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, 263, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 1158, 122, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 260, 0, 0, 573, 263, 0, 162, 570, 0, 0, 0, 1215, 1225, 740, 0, 1215, 1225, 0, 0, 0, 0, 0, 1202, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 0, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1826, 1830, 0, 0, 0, 0, 0, 0, 0, 0, 1839, 0, 1842, 1585, 573, 0, 1591, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 1855, 260, 260, 0, 0, 0, 0, 260, 260, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 576, 0, 0, 122, 0, 740, 0, 576, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1595, 1597, 0, 1600, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 1162, 0, 0, 0, 0, 1619, 0, 0, 0, 0, 0, 570, 1157, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 737, 0, 0, 0, 1157, 1162, 0, 0, 0, 1157, 0, 0, 0, 0, 576, 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 1653, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 614, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 122, 122, 122, 0, 122, 0, 0, 122, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 1994, 1995, 1996, 1997, 0, 0, 1998, 0, 0, 0, 1826, 1830, 0, 1839, 0, 1842, 525, 0, 570, 0, 122, 0, 0, 0, 1157, 1162, 0, 2007, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 1157, 0, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 737, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 1157, 0, 1162, 122, 0, 0, 263, 0, 263, 570, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1667, 0, 0, 614, 1998, 0, 0, 0, 0, 0, 0, 0, 0, 2076, 0, 2079, 0, 0, 0, 125, 125, 0, 0, 1693, 0, 0, 0, 0, 0, 0, 1693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 263, 263, 0, 0, 263, 263, 0, 1, 0, 0, 0, 0, 125, 125, 2108, 2109, 0, 0, 2076, 0, 2079, 0, 0, 2113, 0, 0, 0, 2115, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 2115, 0, 0, 0, 125, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 2153, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 40, 0, 0, 0, 0, 1822, 0, 162, 0, 570, 43, 44, 45, 46, 47, 48, 570, 0, 0, 0, 51, 570, 0, 862, 0, 1157, 1162, 1157, 1162, 0, 1157, 1841, 0, 0, 567, 0, 1595, 1848, 0, 1619, 0, 1162, 125, 0, 0, 0, 0, 0, 0, 1157, 1162, 1619, 0, 0, 0, 125, 0, 0, 0, 0, 122, 0, 0, 0, 0, 688, 0, 0, 0, 122, 0, 0, 0, 0, 570, 0, 0, 0, 1, 0, 122, 0, 0, 1157, 0, 1162, 0, 1157, 0, 1162, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 263, 0, 0, 576, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 40, 0, 0, 578, 0, 0, 0, 0, 122, 122, 43, 44, 45, 46, 47, 48, 0, 0, 122, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 578, 0, 0, 263, 1157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 0, 0, 0, 0, 1162, 0, 1157, 1841, 0, 1162, 1619, 0, 2004, 0, 2006, 0, 0, 0, 0, 0, 1162, 2010, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 125, 125, 0, 125, 0, 0, 688, 0, 0, 0, 122, 0, 122, 0, 0, 0, 0, 125, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 740, 125, 482, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, 578, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 576, 0, 0, 0, 0, 2067, 2070, 0, 1157, 1162, 1157, 0, 0, 0, 1157, 1841, 0, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 688, 0, 258, 258, 258, 0, 688, 0, 2, 0, 0, 0, 0, 0, 263, 263, 0, 121, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 1157, 1162, 0, 1157, 1841, 0, 0, 0, 2114, 0, 0, 0, 0, 713, 0, 0, 307, 0, 0, 713, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 740, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 122, 0, 0, 322, 323, 889, 0, 122, 890, 733, 326, 0, 0, 0, 122, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 570, 0, 0, 122, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 122, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 572, 302, 578, 1, 303, 106, 304, 578, 305, 306, 0, 0, 0, 125, 0, 0, 0, 0, 0, 258, 0, 0, 0, 578, 0, 0, 258, 0, 2, 258, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 578, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 125, 125, 322, 323, 324, 0, 0, 325, 733, 326, 578, 259, 578, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 0, 122, 259, 0, 0, 0, 258, 258, 258, 0, 0, 0, 0, 0, 259, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 1211, 1221, 0, 0, 1211, 1221, 0, 0, 0, 0, 0, 0, 0, 0, 259, 259, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 258, 0, 0, 0, 0, 0, 0, 258, 0, 0, 258, 0, 0, 0, 0, 688, 0, 688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 259, 0, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 259, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 572, 2, 0, 0, 0, 0, 264, 0, 1427, 572, 0, 0, 0, 0, 0, 0, 572, 0, 0, 1427, 0, 0, 0, 572, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 264, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 264, 0, 0, 313, 264, 0, 572, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 572, 322, 323, 324, 0, 0, 325, 0, 326, 643, 264, 264, 259, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 0, 0, 0, 0, 0, 610, 578, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 578, 0, 578, 0, 0, 578, 264, 0, 578, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 258, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 0, 264, 0, 259, 259, 259, 259, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 1689, 0, 0, 0, 0, 0, 0, 1689, 0, 0, 0, 0, 259, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 259, 258, 258, 0, 0, 258, 258, 259, 259, 0, 0, 259, 259, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 264, 305, 306, 0, 0, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, 0, 578, 578, 0, 578, 2, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1196, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 125, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 0, 259, 322, 323, 324, 0, 0, 325, 733, 326, 0, 0, 259, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 572, 0, 0, 0, 0, 0, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, 0, 259, 259, 259, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 259, 0, 0, 259, 0, 0, 259, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, 0, 0, 0, -458, -458, -458, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, -458, -458, 0, 0, 0, 0, 259, 259, 259, 259, 0, 0, 0, 0, -458, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 259, 0, 259, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, -458, 259, -458, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 258, 258, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 0, 264, 264, 264, 0, 0, 0, 0, 572, 264, 0, 0, 0, 0, 0, 0, 0, 259, 259, 0, 0, 0, 0, 0, 259, 259, 0, 0, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 264, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, 0, 0, 0, -458, -458, -458, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, -458, -458, 0, 0, 0, 0, 264, 264, 264, 264, 0, 0, 0, 0, -458, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 264, 0, 264, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, -458, -458, 0, 0, -458, 264, -458, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 259, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 0, 264, 264, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 757, 758, 759, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, 0, 0, 0, 0, 0, 0, 0, -345, -345, 0, 259, 259, -345, 0, 0, 0, 259, 259, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, -345, 0, 0, 0, 0, 0, 0, 259, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, -345, -345, -345, 760, 0, 0, -345, 1531, -345, -345, 0, 761, 0, 0, 762, 0, -345, -345, -345, 0, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -907, 584, 0, -907, -907, -907, -907, 0, -907, -907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, 0, 0, -907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -907, -907, 0, -907, 0, 0, -907, -907, -907, -907, -907, 0, 0, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, 259, 259, -907, -907, -907, -907, 0, -907, 0, -907, -907, -907, 0, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, 0, 0, -907, 848, -907, -907, 0, 586, -907, -907, 0, 0, -907, -907, 0, -907, -907, -907, -907, 0, 0, 0, 264, 264, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 264, 0, 259, 259, 0, 0, -345, 756, 264, -345, -345, -345, -345, 757, 758, 759, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, -345, -345, 0, -345, 0, 0, -345, -345, -345, -345, -345, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, 0, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 760, -345, -345, -345, -345, -345, -345, -345, 761, -345, -345, 762, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 264, -450, 1153, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, 0, -450, -450, 0, -450, 0, 0, -450, -450, -450, -450, -450, 264, 264, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, 0, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -304, 302, 0, 1, 303, 106, 304, -304, 305, 306, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 2, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, 0, 307, -304, 0, -304, 0, 0, 308, 309, 310, -304, -304, 0, 0, -304, -304, -304, -304, -304, -304, 311, 312, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, -304, 0, 313, -304, -304, 0, 314, 315, 316, 317, 318, 319, 320, 321, -304, -304, -304, -304, -304, -304, -304, -304, 322, 323, 324, -304, -304, 325, 1241, 326, -304, -304, 1156, -304, -304, -304, -304, 327, 328, -304, 329, 330, 331, 332, -304, -304, -304, -304, -304, -305, 302, 0, 1, 303, 106, 304, -305, 305, 306, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 2, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, 0, 307, -305, 0, -305, 0, 0, 308, 309, 310, -305, -305, 0, 0, -305, -305, -305, -305, -305, -305, 311, 312, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, -305, 0, 313, -305, -305, 0, 314, 315, 316, 317, 318, 319, 320, 321, -305, -305, -305, -305, -305, -305, -305, -305, 322, 323, 324, -305, -305, 325, 1160, 326, -305, -305, 1161, -305, -305, -305, -305, 327, 328, -305, 329, 330, 331, 332, -305, -305, -305, -305, -305, -565, 302, 0, 1, 303, 106, 304, -565, 305, 306, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, 2, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, 0, 307, -565, 0, -565, 0, 0, 308, 309, 310, -565, -565, 0, 0, -565, -565, -565, -565, -565, -565, 311, 312, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, -565, 0, 313, -565, -565, 0, 314, 315, 316, 317, 318, 319, 320, 321, -565, -565, -565, -565, -565, -565, -565, -565, 322, 323, 324, -565, -565, 325, -565, 326, -565, -565, -565, -565, 744, -565, 1322, 327, 328, -565, 329, 330, 331, 332, -565, -565, -565, -565, -565, -566, 302, 0, 1, 303, 106, 304, -566, 305, 306, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, 2, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, 0, 307, -566, 0, -566, 0, 0, 308, 309, 310, -566, -566, 0, 0, -566, -566, -566, -566, -566, -566, 311, 312, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, -566, 0, 313, -566, -566, 0, 314, 315, 316, 317, 318, 319, 320, 321, -566, -566, -566, -566, -566, -566, -566, -566, 322, 323, 324, -566, -566, 325, -566, 326, -566, -566, -566, -566, 744, -566, 1388, 327, 328, -566, 329, 330, 331, 332, -566, -566, -566, -566, -566, -576, 302, 0, 1, 303, 106, 304, -576, 305, 306, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, 2, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, 0, 307, -576, 0, -576, 0, 0, 308, 309, 310, -576, -576, 0, 0, -576, -576, -576, -576, -576, -576, 311, 312, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, -576, 0, 313, -576, -576, 0, 314, 315, 316, 317, 318, 319, 320, 321, -576, -576, -576, -576, -576, -576, -576, -576, 322, 323, 324, -576, -576, 325, -576, 326, -576, -576, 1156, -576, -576, -576, -576, 327, 328, -576, 329, 330, 331, 332, -576, -576, -576, -576, -576, -578, 302, 0, 1, 303, 106, 304, -578, 305, 306, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, 2, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, 0, 307, -578, 0, -578, 0, 0, 308, 309, 310, -578, -578, 0, 0, -578, -578, -578, -578, -578, -578, 311, 312, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, -578, 0, 313, -578, -578, 0, 314, 315, 316, 317, 318, 319, 320, 321, -578, -578, -578, -578, -578, -578, -578, -578, 322, 323, 324, -578, -578, 325, 1160, 326, -578, -578, 1161, -578, -578, -578, -578, 327, 328, -578, 329, 330, 331, 332, -578, -578, -578, -578, -578, -577, 302, 0, 1, 303, 106, 304, -577, 305, 306, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 2, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, 0, 307, -577, 0, -577, 0, 0, 308, 309, 310, -577, -577, 0, 0, -577, -577, -577, -577, -577, -577, 311, 312, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, 0, 313, -577, -577, 0, 314, 315, 316, 317, 318, 319, 320, 321, -577, -577, -577, -577, -577, -577, -577, -577, 322, 323, 324, -577, -577, 325, -577, 326, -577, -577, 1156, -577, -577, -577, -577, 327, 328, -577, 329, 330, 331, 332, -577, -577, -577, -577, -577, -338, 1884, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 0, 0, -338, -338, 0, -338, 0, 0, -338, -338, -338, -338, -338, 0, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 0, -338, 0, -338, -338, -338, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -342, 1920, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, 0, -342, -342, 0, -342, 0, 0, -342, -342, -342, -342, -342, 0, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, -342, 0, -342, -342, -342, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -332, 302, 0, 1, 303, 106, 304, -332, 305, 306, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 2, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, 0, 307, -332, 0, -332, 0, 0, 308, 309, 310, -332, -332, 0, 0, -332, -332, -332, -332, -332, -332, 311, 312, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, -332, 0, 313, -332, -332, 0, 314, 315, 316, 317, 318, 319, 320, 321, -332, -332, -332, -332, -332, -332, -332, -332, 322, 323, 324, -332, -332, 325, -332, 326, -332, -332, -332, -332, 744, -332, -332, 327, 328, -332, 329, 330, 331, 332, -332, -332, -332, -332, -332, -543, 302, 0, 1, 303, 106, 304, -543, 305, 306, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, 2, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, 0, 307, -543, 0, -543, 0, 0, 308, 309, 310, -543, -543, 0, 0, -543, -543, -543, -543, -543, -543, 311, 312, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, -543, 0, 313, -543, -543, 0, 314, 315, 316, 317, 318, 319, 320, 321, -543, -543, -543, -543, -543, -543, -543, -543, 322, 323, 324, -543, -543, 325, -543, 326, -543, -543, -543, -543, 744, -543, -543, 327, 328, -543, 329, 330, 331, 332, -543, -543, -543, -543, -543, -551, 302, 0, 1, 303, 106, 304, -551, 305, 306, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, 2, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, 0, 307, -551, 0, -551, 0, 0, 308, 309, 310, -551, -551, 0, 0, -551, -551, -551, -551, -551, -551, 311, 312, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, -551, 0, 313, -551, -551, 0, 314, 315, 316, 317, 318, 319, 320, 321, -551, -551, -551, -551, -551, -551, -551, -551, 322, 323, 324, -551, -551, 325, -551, 326, -551, -551, -551, -551, 744, -551, -551, 327, 328, -551, 329, 330, 331, 332, -551, -551, -551, -551, -551, -544, 302, 0, 1, 303, 106, 304, -544, 305, 306, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, 2, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, 0, 307, -544, 0, -544, 0, 0, 308, 309, 310, -544, -544, 0, 0, -544, -544, -544, -544, -544, -544, 311, 312, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, -544, 0, 313, -544, -544, 0, 314, 315, 316, 317, 318, 319, 320, 321, -544, -544, -544, -544, -544, -544, -544, -544, 322, 323, 324, -544, -544, 325, -544, 326, -544, -544, -544, -544, 744, -544, -544, 327, 328, -544, 329, 330, 331, 332, -544, -544, -544, -544, -544, -552, 302, 0, 1, 303, 106, 304, -552, 305, 306, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, 2, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, 0, 307, -552, 0, -552, 0, 0, 308, 309, 310, -552, -552, 0, 0, -552, -552, -552, -552, -552, -552, 311, 312, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, -552, 0, 313, -552, -552, 0, 314, 315, 316, 317, 318, 319, 320, 321, -552, -552, -552, -552, -552, -552, -552, -552, 322, 323, 324, -552, -552, 325, -552, 326, -552, -552, -552, -552, 744, -552, -552, 327, 328, -552, 329, 330, 331, 332, -552, -552, -552, -552, -552, -545, 302, 0, 1, 303, 106, 304, -545, 305, 306, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, 2, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, 0, 307, -545, 0, -545, 0, 0, 308, 309, 310, -545, -545, 0, 0, -545, -545, -545, -545, -545, -545, 311, 312, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, -545, 0, 313, -545, -545, 0, 314, 315, 316, 317, 318, 319, 320, 321, -545, -545, -545, -545, -545, -545, -545, -545, 322, 323, 324, -545, -545, 325, -545, 326, -545, -545, -545, -545, 744, -545, -545, 327, 328, -545, 329, 330, 331, 332, -545, -545, -545, -545, -545, -553, 302, 0, 1, 303, 106, 304, -553, 305, 306, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, 2, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, 0, 307, -553, 0, -553, 0, 0, 308, 309, 310, -553, -553, 0, 0, -553, -553, -553, -553, -553, -553, 311, 312, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, -553, 0, 313, -553, -553, 0, 314, 315, 316, 317, 318, 319, 320, 321, -553, -553, -553, -553, -553, -553, -553, -553, 322, 323, 324, -553, -553, 325, -553, 326, -553, -553, -553, -553, 744, -553, -553, 327, 328, -553, 329, 330, 331, 332, -553, -553, -553, -553, -553, -546, 302, 0, 1, 303, 106, 304, -546, 305, 306, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, 2, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, 0, 307, -546, 0, -546, 0, 0, 308, 309, 310, -546, -546, 0, 0, -546, -546, -546, -546, -546, -546, 311, 312, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, -546, 0, 313, -546, -546, 0, 314, 315, 316, 317, 318, 319, 320, 321, -546, -546, -546, -546, -546, -546, -546, -546, 322, 323, 324, -546, -546, 325, -546, 326, -546, -546, -546, -546, 744, -546, -546, 327, 328, -546, 329, 330, 331, 332, -546, -546, -546, -546, -546, -554, 302, 0, 1, 303, 106, 304, -554, 305, 306, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, 2, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, 0, 307, -554, 0, -554, 0, 0, 308, 309, 310, -554, -554, 0, 0, -554, -554, -554, -554, -554, -554, 311, 312, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, -554, 0, 313, -554, -554, 0, 314, 315, 316, 317, 318, 319, 320, 321, -554, -554, -554, -554, -554, -554, -554, -554, 322, 323, 324, -554, -554, 325, -554, 326, -554, -554, -554, -554, 744, -554, -554, 327, 328, -554, 329, 330, 331, 332, -554, -554, -554, -554, -554, -340, 2025, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 0, 0, -340, -340, 0, -340, 0, 0, -340, -340, -340, -340, -340, 0, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 0, -340, 0, -340, -340, -340, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -339, 2026, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 0, 0, -339, -339, 0, -339, 0, 0, -339, -339, -339, -339, -339, 0, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 0, -339, 0, -339, -339, -339, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -345, 756, 0, -345, -345, -345, -345, 757, 758, 759, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, -345, -345, 0, -345, 0, 0, -345, -345, -345, -345, -345, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, 0, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 760, -345, -345, -345, -345, -345, -345, -345, 1151, -345, -345, 762, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -450, 1153, 0, -450, -450, -450, -450, 0, -450, -450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, 0, -450, -450, 0, -450, 0, 0, -450, -450, -450, -450, -450, 0, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, 0, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, 0, -450, -450, -450, -450, 0, -450, -450, -450, 1154, -450, -450, -450, 0, -450, -450, -450, -450, -1090, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 0, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 0, 0, 307, -1090, 0, -1090, 0, 0, 308, 309, 310, -1090, -1090, 0, 0, -1090, -1090, -1090, -1090, -1090, -1090, 311, 312, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 0, -1090, 0, 313, -1090, -1090, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 322, 323, 324, 0, 0, 325, 1160, 326, -1090, 0, 1161, -1090, -1090, 0, -1090, 327, 328, 0, 329, 330, 331, 332, -1234, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 0, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 0, 0, 307, -1234, 0, -1234, 0, 0, 308, 309, 310, -1234, -1234, 0, 0, -1234, -1234, -1234, -1234, -1234, -1234, 311, 312, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 0, -1234, 0, 313, -1234, -1234, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 322, 323, 324, 0, 0, 325, 1160, 326, 1626, 0, 1161, -1234, -1234, 0, -1234, 327, 328, 0, 329, 330, 331, 332, -1192, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 0, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 0, 0, 307, -1192, 0, -1192, 0, 0, 308, 309, 310, -1192, -1192, 0, 0, -1192, -1192, -1192, -1192, -1192, -1192, 311, 312, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 0, -1192, 0, 313, -1192, -1192, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 322, 323, 324, 0, 0, 325, 1835, 326, -1192, 0, 1161, -1192, -1192, 0, -1192, 327, 328, 0, 329, 330, 331, 332, -1223, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, -1223, 0, -1223, 0, 0, 308, 309, 310, -1223, -1223, 0, 0, -1223, 32, -1223, -1223, -1223, -1223, 311, 312, 1125, -1223, 640, 641, 642, -1223, -1223, -1223, -1223, 0, -1223, 0, 313, -1223, -1223, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1223, -1223, -1223, -1223, -1223, -1223, 322, 323, 324, 0, 0, 325, 1160, 326, 643, 0, 1161, -1223, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -577, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, 0, 307, -577, 0, -577, 0, 0, 308, 309, 310, -577, -577, 0, 0, -577, -577, -577, -577, -577, -577, 311, 312, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, 0, 313, -577, -577, 0, 314, 315, 316, 317, 318, 319, 320, 321, -577, -577, -577, -577, -577, -577, -577, -577, 322, 323, 324, 0, 0, 325, -577, 326, 1155, 0, 1156, -577, -577, 0, -577, 327, 328, 0, 329, 330, 331, 332, -1215, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 0, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 0, 0, 307, -1215, 0, -1215, 0, 0, 308, 309, 310, -1215, -1215, 0, 0, -1215, -1215, -1215, -1215, -1215, -1215, 311, 312, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 0, -1215, 0, 313, -1215, -1215, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 322, 323, 324, 0, 0, 325, 2072, 326, -1215, 0, 1156, -1215, -1215, 0, -1215, 327, 328, 0, 329, 330, 331, 332, -1216, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 0, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 0, 0, 307, -1216, 0, -1216, 0, 0, 308, 309, 310, -1216, -1216, 0, 0, -1216, -1216, -1216, -1216, -1216, -1216, 311, 312, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 0, -1216, 0, 313, -1216, -1216, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 322, 323, 324, 0, 0, 325, 1160, 326, 2073, 0, 1161, -1216, -1216, 0, -1216, 327, 328, 0, 329, 330, 331, 332, -1210, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, -1210, 0, -1210, 0, 0, 308, 309, 310, -1210, -1210, 0, 0, -1210, 32, -1210, -1210, -1210, -1210, 311, 312, 1125, -1210, 640, 641, 642, -1210, -1210, -1210, -1210, 0, -1210, 0, 313, -1210, -1210, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1210, -1210, -1210, -1210, -1210, -1210, 322, 323, 324, 0, 0, 325, 1160, 326, 643, 0, 1161, -1210, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1158, 618, 0, -1158, -1158, -1158, -1158, 0, -1158, -1158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, 0, -1158, -1158, 0, -1158, 0, 0, -1158, -1158, -1158, -1158, -1158, 0, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, -1158, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, 0, -1158, 0, -1158, 619, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, -1158, -1181, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1181, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1181, 32, -1181, -1181, -1181, -1181, 311, 638, 639, 248, 640, 641, 642, -1181, -1181, -1181, -1181, 0, -1181, 0, 313, -1181, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1181, -1181, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1159, 618, 0, -1159, -1159, -1159, -1159, 0, -1159, -1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, 0, -1159, -1159, 0, -1159, 0, 0, -1159, -1159, -1159, -1159, -1159, 0, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, -1159, 0, -1159, -1159, -1159, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, 0, -1159, 0, -1159, 619, 0, -1159, -1159, -1159, 0, -1159, -1159, -1159, 0, -1159, -1159, -1159, -1159, -1220, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, -1220, 0, -1220, 0, 0, 308, 309, 310, -1220, -1220, 0, 0, -1220, 32, -1220, -1220, -1220, -1220, 311, 312, 1125, -1220, 640, 641, 642, -1220, -1220, -1220, -1220, 0, -1220, 0, 313, -1220, -1220, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1220, -1220, -1220, -1220, -1220, -1220, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1220, -1220, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1236, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 0, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 0, 0, 307, -1236, 0, -1236, 0, 0, 308, 309, 310, -1236, -1236, 0, 0, -1236, -1236, -1236, -1236, -1236, -1236, 311, 312, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 0, -1236, 0, 313, -1236, -1236, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 322, 323, 324, 0, 0, 325, 0, 326, 1136, 0, -1236, -1236, 744, 0, -1236, 327, 328, 0, 329, 330, 331, 332, -1171, 1163, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1171, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1171, 32, -1171, -1171, -1171, -1171, 311, 638, 639, 248, 640, 641, 642, -1171, -1171, -1171, -1171, 0, -1171, 0, 313, -1171, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1171, -1171, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1175, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1175, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1175, 32, -1175, -1175, -1175, -1175, 311, 638, 639, 248, 640, 641, 642, -1175, -1175, -1175, -1175, 0, -1175, 0, 313, -1175, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1175, -1175, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1170, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1170, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1170, 32, -1170, -1170, -1170, -1170, 311, 638, 639, 248, 640, 641, 642, -1170, -1170, -1170, -1170, 0, -1170, 0, 313, -1170, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1170, -1170, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1174, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1174, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1174, 32, -1174, -1174, -1174, -1174, 311, 638, 639, 248, 640, 641, 642, -1174, -1174, -1174, -1174, 0, -1174, 0, 313, -1174, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1174, -1174, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1077, 1176, 0, -1077, -1077, -1077, -1077, 0, -1077, -1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, 0, -1077, -1077, 0, -1077, 0, 0, -1077, -1077, -1077, -1077, -1077, 0, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, -1077, 0, -1077, -1077, -1077, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, 0, -1077, 0, -1077, -1077, 0, -1077, -1077, -1077, 0, -1077, -1077, -1077, 0, -1077, -1077, -1077, -1077, -1079, 1177, 0, -1079, -1079, -1079, -1079, 0, -1079, -1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, 0, -1079, -1079, 0, -1079, 0, 0, -1079, -1079, -1079, -1079, -1079, 0, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, -1079, 0, -1079, -1079, -1079, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, 0, -1079, 0, -1079, -1079, 0, -1079, -1079, -1079, 0, -1079, -1079, -1079, 0, -1079, -1079, -1079, -1079, -1125, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1125, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1125, 32, -1125, -1125, -1125, -1125, 311, 638, 639, 248, 640, 641, 642, -1125, -1125, -1125, -1125, 0, -1125, 0, 313, -1125, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1125, -1125, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1127, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1127, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1127, 32, -1127, -1127, -1127, -1127, 311, 638, 639, 248, 640, 641, 642, -1127, -1127, -1127, -1127, 0, -1127, 0, 313, -1127, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1127, -1127, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1172, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1172, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1172, 32, -1172, -1172, -1172, -1172, 311, 638, 639, 248, 640, 641, 642, -1172, -1172, -1172, -1172, 0, -1172, 0, 313, -1172, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1172, -1172, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1176, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1176, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1176, 32, -1176, -1176, -1176, -1176, 311, 638, 639, 248, 640, 641, 642, -1176, -1176, -1176, -1176, 0, -1176, 0, 313, -1176, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1176, -1176, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1173, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1173, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1173, 32, -1173, -1173, -1173, -1173, 311, 638, 639, 248, 640, 641, 642, -1173, -1173, -1173, -1173, 0, -1173, 0, 313, -1173, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1173, -1173, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1177, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1177, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1177, 32, -1177, -1177, -1177, -1177, 311, 638, 639, 248, 640, 641, 642, -1177, -1177, -1177, -1177, 0, -1177, 0, 313, -1177, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1177, -1177, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1168, 618, 0, -1168, -1168, -1168, -1168, 0, -1168, -1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, 0, -1168, -1168, 0, -1168, 0, 0, -1168, -1168, -1168, -1168, -1168, 0, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, -1168, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, 0, -1168, 0, -1168, 619, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, -1168, -1169, 618, 0, -1169, -1169, -1169, -1169, 0, -1169, -1169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, 0, -1169, -1169, 0, -1169, 0, 0, -1169, -1169, -1169, -1169, -1169, 0, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, -1169, 0, -1169, -1169, -1169, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, 0, -1169, 0, -1169, 619, 0, -1169, -1169, -1169, 0, -1169, -1169, -1169, 0, -1169, -1169, -1169, -1169, -1004, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 0, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 0, 0, 307, -1004, 0, -1004, 0, 0, 308, 309, 310, -1004, -1004, 0, 0, -1004, -1004, -1004, -1004, -1004, -1004, 311, 312, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 0, -1004, 0, 313, -1004, -1004, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 322, 323, 324, 0, 0, 325, 0, 326, -1004, 0, 1804, 1805, 1016, 0, -1004, 327, 328, 0, 329, 330, 331, 332, -1131, 618, 0, -1131, -1131, -1131, -1131, 0, -1131, -1131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, 0, -1131, -1131, 0, -1131, 0, 0, -1131, -1131, -1131, -1131, -1131, 0, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, -1131, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, 0, -1131, 0, -1131, 619, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1132, 618, 0, -1132, -1132, -1132, -1132, 0, -1132, -1132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, 0, -1132, -1132, 0, -1132, 0, 0, -1132, -1132, -1132, -1132, -1132, 0, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, -1132, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, 0, -1132, 0, -1132, 619, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, -1132, -1128, 618, 0, -1128, -1128, -1128, -1128, 0, -1128, -1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, 0, -1128, -1128, 0, -1128, 0, 0, -1128, -1128, -1128, -1128, -1128, 0, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, -1128, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, 0, -1128, 0, -1128, 619, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, -1128, -1006, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, 0, 307, -1006, 0, -1006, 0, 0, 308, 309, 310, -1006, -1006, 0, 0, -1006, -1006, -1006, -1006, -1006, -1006, 311, 312, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, -1006, 0, 313, -1006, -1006, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 322, 323, 324, 0, 0, 325, 0, 326, -1006, 0, -1006, 1985, 1016, 0, -1006, 327, 328, 0, 329, 330, 331, 332, -1000, 1988, 0, -1000, -1000, -1000, -1000, 0, -1000, -1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, 0, -1000, -1000, 0, -1000, 0, 0, -1000, -1000, -1000, -1000, -1000, 0, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, 0, -1000, 0, -1000, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, -1000, -1129, 618, 0, -1129, -1129, -1129, -1129, 0, -1129, -1129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, 0, -1129, -1129, 0, -1129, 0, 0, -1129, -1129, -1129, -1129, -1129, 0, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, -1129, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, 0, -1129, 0, -1129, 619, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, -1129, -1130, 618, 0, -1130, -1130, -1130, -1130, 0, -1130, -1130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, 0, -1130, -1130, 0, -1130, 0, 0, -1130, -1130, -1130, -1130, -1130, 0, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, -1130, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, 0, -1130, 0, -1130, 619, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, -1130, -1217, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 0, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 0, 0, 307, -1217, 0, -1217, 0, 0, 308, 309, 310, -1217, -1217, 0, 0, -1217, -1217, -1217, -1217, -1217, -1217, 311, 312, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 0, -1217, 0, 313, -1217, -1217, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 322, 323, 324, 0, 0, 325, 0, 326, -1217, 0, -1217, -1217, -1217, 0, -1217, 327, 328, 0, 329, 330, 331, 332, -1001, 2064, 0, -1001, -1001, -1001, -1001, 0, -1001, -1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, 0, -1001, -1001, 0, -1001, 0, 0, -1001, -1001, -1001, -1001, -1001, 0, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, -1001, 0, -1001, -1001, -1001, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, 0, -1001, 0, -1001, -1001, 0, -1001, -1001, -1001, 0, -1001, -1001, -1001, 0, -1001, -1001, -1001, -1001, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 639, 248, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 639, 248, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, 988, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1250, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -110, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1257, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -98, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1261, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -102, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1515, 0, 987, -65, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, 1525, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1582, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -81, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -107, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -97, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -101, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1765, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -88, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -78, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -85, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 206, 207, 322, 323, 324, 0, 0, 325, 302, 326, 1, 303, 106, 304, 0, 305, 306, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 866, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 206, 207, 322, 323, 324, 0, 0, 325, 302, 326, 1, 303, 106, 304, 0, 305, 306, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 0, 0, 322, 323, 324, 0, 0, 325, 302, 326, 1, 303, 106, 304, 254, 305, 306, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 2, 0, 322, 323, 889, 0, 0, 890, 733, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, -453, 326, 643, 0, -453, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 643, 0, 1161, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 1838, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 1734, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1737, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1858, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1626, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1859, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1876, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1880, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 2008, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1859, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1859, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 2062, 2063, 1016, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2074, 326, 2075, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 2073, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 745, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1155, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1266, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1333, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1136, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1615, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1616, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1625, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1695, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 1723, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1727, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 1733, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1735, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1834, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1836, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1837, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1840, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1616, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1860, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1857, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1861, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1874, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1878, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1993, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1835, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2000, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1861, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2078, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 2107, 1016, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2110, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2111, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2139, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 549, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 840, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 844, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 1016, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 1057, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 1109, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1460, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 733, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 1563, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1599, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 1602, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1794, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 1793, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1797, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1801, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1847, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 1907, 0, 326, 0, 0, 0, 0, 1793, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2009, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2069, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 703, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 706, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, -895, 584, 0, -895, -895, -895, 322, 323, 324, 0, 0, 729, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, 0, 0, -895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -895, -895, 0, -895, 0, 0, -895, -895, 0, -895, -895, 0, 0, -895, -895, -895, -895, -895, -895, 0, -895, -895, -895, -895, 0, 0, -895, -895, -895, -895, 0, -895, 0, -895, -895, -895, 0, -895, -895, -895, -895, -895, -895, -895, 0, -895, -895, -895, -895, -895, -895, -895, -895, -895, 0, -895, 0, 0, -895, 585, -895, -895, 0, 586, -895, 0, 0, 0, -895, -895, -189, 907, 0, -189, -189, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 0, 0, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -189, -189, 0, -189, 0, 0, -189, -189, 0, -189, -189, 0, 0, -189, -189, -189, -189, -189, -189, 0, -189, -189, -189, -189, 0, 0, -189, -189, -189, -189, 0, -189, 0, -189, -189, -189, 0, -189, -189, -189, -189, -189, -189, -189, 0, -189, -189, -189, -189, -189, -189, -189, -189, -189, 0, -189, 0, 0, -189, 0, -189, 908, 0, 909, -189, 0, 0, 0, -189, -189, -253, 921, 0, 1, 303, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, -251, 924, -253, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, -254, 921, -251, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, -252, 924, -254, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 424, -252, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 490, 440, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 512, 491, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 517, 513, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 521, 518, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, 522, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -750, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -751, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -747, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -748, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -753, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 1039, -754, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 1043, 1040, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, 1044, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -649, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -730, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -731, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -733, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 1545, -734, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, 1546, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -644, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -645, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -736, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -737, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -648, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -646, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -624, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -623, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -637, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -638, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -647, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -633, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -634, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -621, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -622, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -616, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -617, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -635, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 424, -636, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 490, 0, 1, 303, 106, 0, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 199, 51, 1, 0, 437, 0, 438, 439, 0, 0, 0, 0, 0, 0, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 199, 51, 1, 0, 566, 1048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 1, 0, 51, 0, 0, 862, 1048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 1, 0, 51, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 568, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 1, 0, 51, 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 862, 0, 0, 0, 0, 0, 0, 1425, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 862, 0, 0, 0, 0, 0, 0, 1442, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1687, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 273, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 274, 31, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 42, 0, 0, 1, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 275, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 425, 0, 0, 0, 0, 0, 28, 29, 0, 0, 426, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 949, 0, 438, 0, 0, 0, 0, 0, 0, 950, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 930, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 1510, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 930, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, -66, -66, 0, 0, 0, -66, 0, 0, 0, 0, 0, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 1714, 0, 0, 0, 0, 0, 0, -66, -66, -66, -66, -66, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 1511, 0, 1512, -66, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1718, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1719, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1825, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1970, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, -1288, 292, 0, 1, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 1, 0, 0, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 53, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 1, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1401, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 1, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1745, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 165, 0, 1, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1746, 2, 3, 4, 166, 6, 7, 8, 9, 10, 167, 168, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 165, 0, 1, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 169, 0, 2, 3, 4, 166, 6, 7, 8, 9, 10, 167, 168, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 605, 0, 1, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 169, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 606, 607, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, -915, 0, -915, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 51, 0, 0, 52, 0, 0, 608, 0, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -915, 0, 0, 0, 0, 0, 0, 0, -915, -915, 0, 0, 0, -915, 0, 0, 0, 0, 0, -915, -915, -915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -915, 0, 1, 0, 0, 0, 0, 0, 0, 0, -915, -915, -915, -915, -915, -915, -915, -915, 0, 0, -915, 0, 0, -915, 0, 0, -915, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 0, -1289, 284, 42, 1, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 2, 3, 4, 166, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 33, 34, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 1208, 1674, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 208, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 390, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1468, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 208, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 390, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 1560, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 1897, 0, 2, 3, 4, 166, 6, 7, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 3, 4, 166, 6, 7, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 887, 2, 3, 4, 166, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 721, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 1447, 2, 200, 201, 202, 203, 204, 234, 235, 236, 1532, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1071, 0, 1, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 1077, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 1083, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 871, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 504, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 479, 480, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 51, 0, 0, 862, 1671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1521, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207
141 };
142
143 static const yytype_int16 yycheck[] =
144 {
145 0, 92, 86, 536, 928, 132, 861, 288, 642, 153, 1218, 928, 720, 471, 861, 345, 86, 5, 938, 345, 837, 1016, 581, 1101, 83, 828, 998, 475, 1000, 828, 30, 31, 156, 999, 472, 93, 100, 1, 93, 128, 5, 41, 837, 83, 128, 998, 84, 1000, 83, 30, 471, 128, 52, 744, 1, 998, 183, 1000, 128, 59, 751, 42, 744, 754, 64, 64, 66, 270, 861, 751, 83, 100, 754, 3, 93, 885, 960, 5, 1609, 83, 93, 100, 82, 83, 84, 1, 86, 100, 556, 93, 1621, 91, 795, 93, 1, 186, 187, 722, 28, 5, 100, 101, 128, 328, 104, 77, 998, 37, 1000, 135, 3, 3, 5, 113, 536, 121, 116, 59, 586, 5, 823, 589, 144, 591, 130, 593, 107, 108, 128, 3, 111, 131, 132, 83, 84, 157, 136, 159, 1, 161, 140, 141, 142, 3, 144, 5, 134, 3, 148, 959, 150, 0, 17, 153, 154, 144, 156, 157, 158, 159, 132, 161, 3, 128, 164, 129, 344, 1, 157, 3, 159, 113, 161, 3, 174, 174, 1, 268, 186, 187, 358, 131, 1, 183, 362, 132, 979, 121, 466, 467, 471, 1, 126, 123, 1, 309, 3, 2095, 198, 1, 128, 315, 1, 3, 134, 5, 132, 1, 3, 3, 210, 3, 212, 129, 492, 493, 1, 5, 0, 278, 220, 221, 129, 1, 288, 131, 290, 265, 1, 288, 230, 124, 290, 233, 83, 290, 514, 515, 278, 132, 1, 519, 520, 278, 93, 523, 524, 881, 288, 1, 124, 100, 101, 2151, 128, 1, 198, 183, 132, 288, 3, 290, 270, 1, 124, 265, 129, 123, 395, 1, 270, 290, 132, 387, 274, 389, 270, 290, 278, 144, 1252, 289, 1, 124, 288, 1251, 290, 1259, 288, 288, 290, 1263, 1258, 274, 124, 129, 1262, 3, 422, 1252, 1, 83, 3, 17, 129, 864, 1259, 126, 308, 1252, 1263, 93, 878, 123, 314, 265, 1259, 3, 100, 101, 1263, 1852, 129, 1207, 124, 325, 796, 129, 278, 124, 129, 3, 132, 128, 126, 129, 128, 132, 760, 339, 3, 126, 28, 128, 129, 133, 327, 760, 126, 5, 441, 442, 443, 444, 824, 123, 129, 793, 794, 1, 1252, 3, 121, 3, 17, 28, 134, 1259, 129, 126, 123, 1263, 221, 130, 126, 798, 128, 129, 121, 122, 1, 381, 382, 129, 806, 821, 822, 387, 472, 389, 1193, 129, 1195, 806, 1193, 395, 1195, 129, 3, 128, 1, 401, 472, 826, 531, 134, 7, 8, 9, 1, 129, 52, 123, 557, 414, 1106, 697, 1, 124, 419, 547, 421, 422, 28, 1106, 425, 426, 885, 129, 278, 144, 431, 123, 73, 434, 435, 436, 437, 438, 288, 1006, 290, 3, 134, 130, 387, 537, 389, 90, 540, 780, 781, 782, 567, 780, 781, 782, 878, 130, 92, 123, 664, 665, 666, 667, 17, 466, 467, 468, 395, 126, 471, 472, 651, 1682, 475, 654, 566, 478, 1, 810, 811, 812, 483, 810, 811, 812, 487, 488, 566, 131, 144, 492, 493, 1053, 1866, 278, 935, 946, 1577, 948, 959, 123, 124, 504, 1064, 288, 128, 290, 5, 510, 511, 1432, 627, 514, 515, 1, 938, 1, 519, 520, 3, 123, 523, 524, 130, 127, 527, 528, 529, 131, 531, 124, 134, 534, 123, 128, 136, 959, 561, 1424, 563, 126, 1538, 128, 545, 546, 547, 1006, 774, 3, 551, 1472, 186, 187, 1475, 556, 557, 3, 120, 121, 561, 3, 563, 564, 1420, 566, 567, 568, 130, 419, 571, 561, 1420, 563, 28, 801, 527, 528, 529, 221, 581, 3, 1208, 809, 1006, 586, 1404, 1405, 589, 3, 591, 144, 593, 1016, 545, 546, 878, 5, 126, 600, 1226, 1070, 1487, 829, 531, 128, 1531, 1233, 1404, 1405, 3, 1584, 5, 1531, 5, 1, 1583, 3, 3, 1088, 547, 471, 5, 3, 567, 3, 1420, 124, 720, 3, 1584, 632, 697, 634, 268, 28, 270, 697, 124, 129, 1584, 642, 128, 426, 128, 797, 2018, 130, 2020, 1505, 1498, 3, 1500, 3, 581, 289, 697, 600, 998, 999, 1000, 511, 128, 664, 665, 666, 667, 697, 134, 664, 665, 666, 667, 825, 3, 121, 130, 959, 123, 1888, 126, 682, 683, 692, 693, 121, 3, 3, 130, 134, 691, 1584, 11, 73, 130, 73, 697, 679, 680, 130, 1696, 132, 703, 7, 8, 9, 120, 121, 130, 123, 711, 28, 2084, 65, 2086, 123, 2088, 718, 719, 720, 721, 722, 723, 3, 1006, 7, 8, 9, 729, 1152, 129, 732, 123, 1156, 120, 121, 1159, 130, 1161, 124, 741, 124, 128, 725, 726, 727, 120, 121, 83, 129, 350, 129, 556, 127, 2126, 2127, 757, 2129, 1, 130, 761, 132, 1041, 1042, 69, 70, 1045, 1046, 120, 121, 120, 121, 862, 2145, 1466, 1, 127, 127, 130, 120, 419, 132, 586, 1466, 862, 589, 1, 591, 799, 593, 2162, 120, 121, 1, 1767, 437, 1681, 1793, 130, 1766, 132, 1686, 803, 122, 120, 121, 807, 441, 1804, 128, 444, 666, 667, 1767, 130, 930, 827, 1, 795, 911, 912, 421, 914, 1767, 129, 917, 918, 131, 973, 1, 134, 832, 833, 834, 1755, 1756, 837, 838, 839, 130, 123, 123, 967, 968, 124, 935, 823, 697, 183, 131, 935, 134, 134, 703, 969, 12, 13, 935, 1418, 860, 861, 862, 796, 3, 935, 866, 1751, 868, 869, 7, 8, 9, 511, 127, 1767, 876, 877, 878, 132, 729, 881, 124, 732, 3, 885, 128, 887, 888, 28, 890, 824, 892, 1037, 1038, 3, 300, 129, 989, 124, 7, 8, 9, 128, 537, 309, 1109, 540, 3, 1112, 124, 315, 1251, 1252, 128, 697, 123, 124, 1248, 1258, 1259, 128, 1248, 1262, 1263, 566, 1053, 568, 566, 929, 3, 931, 126, 28, 123, 935, 130, 1792, 938, 0, 123, 124, 37, 943, 278, 128, 946, 1150, 948, 949, 972, 5, 1066, 124, 288, 28, 134, 128, 958, 959, 960, 1164, 1165, 1166, 1167, 121, 122, 967, 968, 122, 970, 122, 972, 973, 3, 128, 1065, 128, 978, 979, 980, 981, 11, 972, 123, 834, 123, 798, 1065, 1984, 729, 1550, 122, 732, 131, 79, 1704, 134, 128, 300, 127, 120, 121, 1117, 123, 1538, 1006, 1641, 309, 1467, 122, 1432, 120, 121, 315, 826, 128, 7, 8, 9, 869, 1905, 130, 126, 131, 1047, 110, 111, 123, 878, 1255, 664, 665, 666, 667, 797, 885, 1037, 1038, 137, 138, 1041, 1042, 892, 1968, 1045, 1046, 1047, 132, 1049, 1675, 1472, 1052, 1053, 1475, 7, 8, 9, 1047, 692, 693, 694, 1062, 825, 1064, 1065, 1066, 2062, 793, 794, 1070, 121, 3, 1073, 5, 128, 1076, 122, 128, 1079, 128, 3, 1082, 128, 134, 1085, 799, 3, 1088, 128, 1090, 120, 121, 122, 943, 1209, 821, 822, 127, 128, 31, 130, 1052, 741, 1104, 3, 28, 128, 2103, 1109, 959, 3, 1112, 5, 827, 1109, 1538, 1231, 1112, 1208, 129, 1121, 44, 1123, 1066, 12, 13, 1053, 14, 15, 28, 1208, 1132, 1980, 120, 1982, 1062, 471, 1064, 129, 3, 131, 5, 130, 6, 1145, 8, 9, 129, 65, 1150, 1151, 74, 75, 140, 141, 1150, 7, 8, 9, 1141, 1183, 124, 122, 1164, 1165, 1166, 1167, 31, 128, 1164, 1165, 1166, 1167, 123, 127, 74, 75, 127, 131, 124, 79, 1182, 1183, 1184, 134, 1186, 123, 86, 1748, 789, 790, 129, 792, 1183, 122, 1196, 531, 1198, 1907, 534, 128, 124, 1203, 120, 121, 128, 1207, 1208, 10, 11, 73, 110, 111, 121, 1493, 1494, 120, 817, 818, 819, 820, 84, 130, 862, 132, 1226, 123, 120, 121, 123, 869, 130, 1233, 121, 122, 1870, 140, 141, 877, 122, 1, 1242, 3, 1583, 1584, 128, 109, 124, 890, 888, 77, 128, 1812, 1196, 1109, 132, 119, 1112, 121, 124, 860, 861, 1, 128, 123, 1, 1070, 1249, 1547, 1548, 1804, 134, 1076, 122, 137, 138, 139, 3, 1082, 128, 131, 527, 528, 529, 1088, 783, 784, 929, 122, 3, 127, 69, 70, 698, 128, 1150, 3, 11, 1721, 545, 546, 943, 28, 1726, 137, 138, 1729, 949, 122, 1164, 1165, 1166, 1167, 91, 128, 813, 814, 95, 44, 97, 123, 28, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1755, 1756, 74, 75, 44, 74, 75, 79, 124, 130, 79, 132, 128, 1196, 86, 74, 75, 86, 129, 122, 1203, 123, 989, 691, 122, 128, 123, 960, 1476, 697, 128, 74, 75, 123, 74, 75, 79, 1793, 110, 111, 124, 110, 111, 86, 128, 124, 124, 124, 1804, 128, 128, 128, 1589, 1590, 126, 127, 128, 126, 127, 128, 123, 1395, 1396, 698, 1601, 1399, 1400, 110, 111, 123, 1404, 1405, 123, 120, 121, 122, 1, 1052, 783, 784, 1052, 128, 1416, 130, 124, 1400, 1420, 1421, 124, 1550, 1424, 124, 128, 1766, 1767, 128, 1430, 387, 1432, 389, 123, 1435, 124, 121, 122, 1439, 128, 136, 813, 814, 1444, 1445, 1446, 131, 88, 89, 90, 1984, 136, 137, 138, 130, 140, 141, 142, 143, 144, 130, 124, 132, 154, 2099, 128, 1467, 158, 1469, 3, 130, 1472, 124, 0, 1475, 1109, 128, 1478, 1112, 126, 132, 128, 74, 75, 74, 75, 1487, 79, 126, 79, 128, 79, 1493, 1494, 86, 1446, 86, 1498, 1499, 1500, 1501, 143, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1, 126, 3, 128, 1150, 142, 110, 111, 110, 111, 110, 111, 130, 130, 132, 132, 2062, 16, 1164, 1165, 1166, 1167, 126, 124, 128, 127, 126, 136, 74, 75, 130, 878, 142, 79, 1547, 1548, 143, 1550, 3, 16, 86, 1187, 124, 1189, 83, 1558, 128, 10, 11, 1984, 132, 1, 1203, 3, 93, 1206, 1569, 1, 1685, 3, 1687, 100, 101, 28, 110, 111, 136, 1, 1, 3, 3, 785, 786, 124, 1701, 1702, 1589, 1590, 126, 123, 128, 1683, 1589, 1590, 130, 130, 1599, 132, 1601, 1602, 130, 938, 1605, 1683, 1601, 1207, 1609, 130, 567, 127, 1613, 815, 816, 1616, 126, 1, 128, 1469, 124, 74, 75, 1550, 959, 130, 79, 132, 14, 15, 1612, 1558, 1512, 86, 1514, 130, 1840, 785, 786, 2062, 1641, 1512, 124, 1514, 909, 910, 1628, 1648, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 124, 110, 111, 530, 128, 909, 910, 126, 132, 1757, 128, 815, 816, 126, 627, 1006, 545, 546, 664, 665, 121, 130, 664, 665, 1681, 121, 1683, 127, 1812, 1686, 100, 101, 838, 839, 74, 75, 121, 128, 221, 79, 1975, 1976, 135, 1978, 1979, 135, 86, 1704, 130, 1706, 1707, 135, 128, 1710, 1989, 1990, 1991, 1992, 130, 130, 134, 128, 3, 1569, 128, 128, 126, 129, 123, 130, 110, 111, 123, 132, 123, 123, 126, 130, 1589, 1590, 126, 3, 123, 123, 124, 1742, 1968, 28, 128, 11, 1601, 126, 126, 126, 1751, 278, 37, 126, 1755, 1756, 121, 1758, 124, 129, 1783, 288, 1785, 290, 135, 121, 135, 135, 135, 1770, 129, 135, 2103, 135, 134, 130, 2103, 130, 1417, 2058, 2059, 126, 1783, 121, 1785, 128, 1809, 1788, 1811, 74, 75, 1906, 350, 1783, 79, 1785, 129, 129, 325, 124, 1915, 86, 124, 124, 1446, 2009, 135, 2011, 1809, 135, 1811, 1812, 135, 124, 123, 132, 124, 124, 132, 1809, 1420, 1811, 132, 123, 1424, 110, 111, 1469, 123, 123, 56, 123, 123, 1834, 1835, 1836, 1837, 126, 123, 1840, 711, 121, 126, 1844, 1845, 1840, 1847, 126, 1849, 1184, 121, 1186, 126, 121, 120, 121, 122, 1972, 1973, 124, 1861, 127, 128, 421, 130, 74, 75, 124, 123, 1870, 79, 134, 1873, 744, 2078, 3, 121, 86, 124, 128, 751, 124, 1864, 754, 1866, 1812, 124, 1487, 1522, 3, 134, 128, 419, 124, 141, 128, 124, 144, 132, 129, 28, 110, 111, 132, 1905, 1505, 1907, 132, 132, 37, 157, 124, 159, 7, 161, 124, 10, 11, 12, 13, 14, 15, 16, 17, 124, 124, 127, 1569, 126, 124, 1569, 124, 129, 124, 124, 56, 124, 123, 1788, 135, 123, 135, 123, 135, 471, 132, 74, 75, 132, 121, 132, 79, 132, 132, 1977, 1589, 1590, 132, 86, 124, 74, 75, 124, 124, 124, 79, 124, 1601, 3, 124, 126, 135, 86, 930, 1975, 1976, 1977, 1978, 1979, 1980, 134, 1982, 110, 111, 511, 1840, 135, 1977, 1989, 1990, 1991, 1992, 120, 28, 135, 123, 110, 111, 135, 2000, 2092, 2093, 37, 134, 11, 130, 134, 127, 2009, 123, 2011, 2012, 969, 130, 2009, 126, 2011, 37, 127, 132, 2021, 2022, 132, 127, 44, 45, 123, 121, 122, 130, 0, 126, 124, 124, 124, 135, 2018, 131, 2020, 74, 75, 64, 135, 124, 79, 64, 140, 141, 142, 143, 144, 86, 135, 135, 74, 75, 135, 2058, 2059, 79, 135, 135, 135, 124, 2065, 2066, 86, 124, 2069, 124, 2071, 41, 124, 2074, 124, 110, 111, 2078, 126, 135, 124, 1681, 135, 2078, 135, 126, 1686, 126, 123, 59, 110, 111, 2093, 135, 2095, 135, 66, 1432, 2099, 134, 120, 2083, 2084, 130, 2086, 126, 2088, 124, 126, 1066, 2111, 126, 126, 83, 126, 126, 86, 126, 126, 2134, 126, 126, 92, 93, 124, 126, 478, 998, 999, 1000, 100, 101, 3, 2134, 2135, 2117, 126, 1472, 2139, 478, 1475, 478, 478, 113, 2126, 2127, 116, 2129, 478, 1788, 2151, 1751, 1501, 978, 2009, 860, 2011, 28, 128, 288, 1117, 288, 915, 2145, 970, 426, 136, 806, 1467, 436, 697, 141, 142, 723, 144, 314, 703, 1793, 265, 2083, 2162, 100, 93, 93, 154, 270, 156, 157, 158, 159, 93, 161, 1792, 720, 101, 1742, -1, -1, -1, -1, -1, -1, 729, 74, 75, 732, 1840, -1, 79, -1, -1, -1, -1, -1, 741, 86, 186, 187, -1, 466, 467, 74, 75, 2078, -1, -1, 79, -1, 198, -1, -1, 789, 790, 86, 792, 1106, -1, -1, -1, 110, 111, -1, 212, -1, -1, 492, 493, -1, -1, -1, -1, 221, 1209, -1, -1, -1, -1, 110, 111, 817, 818, 819, 820, 141, -1, -1, 144, 514, 515, -1, -1, 124, 519, 520, 1231, -1, 523, 524, -1, 157, -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, 860, 861, -1, 1905, -1, 834, 278, -1, -1, -1, -1, -1, 561, 28, 563, -1, 288, 289, 290, -1, 1727, 1728, 37, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, 308, -1, -1, -1, 869, -1, 314, -1, -1, -1, 44, 45, -1, 878, -1, -1, -1, 325, -1, -1, 885, -1, -1, 74, 75, 890, -1, 892, 79, -1, -1, -1, -1, 3, -1, 86, -1, 2009, -1, 2011, 74, 75, 1251, 1252, -1, 79, -1, -1, -1, 1258, 1259, -1, 86, 1262, 1263, -1, 74, 75, 28, 110, 111, 79, -1, -1, 960, -1, -1, 37, 86, 120, -1, -1, 123, 124, 382, -1, 110, 111, 943, 387, -1, 389, 1755, 1756, -1, 3, -1, 1727, 1728, 123, 1730, 1731, 110, 111, 959, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, 74, 75, 2078, -1, -1, 79, 28, 419, 130, 421, 422, -1, 86, 425, 426, 37, 38, -1, -1, 431, -1, -1, -1, 435, 436, -1, 438, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, 110, 111, -1, -1, -1, -1, -1, -1, 268, 269, 120, -1, -1, 123, -1, -1, 74, 75, 466, 467, -1, 79, 132, 471, 472, -1, -1, -1, 86, -1, 478, -1, -1, -1, -1, 483, -1, -1, 44, 45, 488, 1476, -1, -1, 492, 493, -1, 1, -1, 3, -1, -1, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, 120, 511, -1, 123, 514, 515, 74, 75, -1, 519, 520, 79, 28, 523, 524, -1, -1, -1, 86, -1, 530, 37, 38, 1968, -1, -1, -1, 537, -1, -1, 540, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, -1, 110, 111, -1, -1, 556, -1, 466, 467, -1, 561, 120, 563, -1, 1466, 566, 567, 74, 75, 478, -1, -1, 79, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, 492, 493, 586, -1, -1, 589, -1, 591, -1, 593, -1, -1, 44, 45, 74, 75, 600, -1, -1, 79, 110, 111, 514, 515, 0, -1, 86, 519, 520, -1, 120, 523, 524, 123, -1, 1207, 126, -1, 128, 129, -1, -1, 74, 75, -1, -1, -1, 79, 909, 910, 110, 111, 1968, -1, 86, -1, -1, -1, -1, -1, 120, -1, 1203, 123, -1, -1, -1, -1, -1, 561, -1, 563, -1, -1, 134, -1, -1, 142, 110, 111, 664, 665, 666, 667, -1, -1, -1, -1, -1, 154, -1, 123, -1, 158, -1, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, -1, -1, -1, 83, 692, 693, 694, 972, -1, 697, 1685, -1, 1687, 93, -1, 703, -1, 3, -1, -1, 100, 101, -1, 711, -1, -1, 1701, 1702, -1, -1, 718, 719, 720, -1, 722, 723, -1, 537, -1, -1, 540, 729, 28, -1, 732, -1, -1, 74, 75, 74, 75, 37, 79, 741, 79, -1, 744, -1, -1, 86, -1, 86, 142, 751, 466, 467, 754, -1, -1, -1, -1, -1, -1, -1, 154, -1, 1041, 1042, 158, -1, 1045, 1046, 1047, 110, 111, 110, 111, -1, 74, 75, 492, 493, -1, 79, -1, -1, 265, 124, -1, 124, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, 515, -1, -1, -1, 519, 520, -1, -1, 523, 524, -1, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, 120, 268, 269, 123, -1, 308, -1, -1, -1, -1, 1420, 314, 834, -1, 1424, 837, 838, 839, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, 860, 861, 862, -1, -1, 1766, 1767, 74, 75, 869, 0, -1, 79, -1, -1, -1, -1, 877, 878, 86, -1, -1, 694, -1, -1, 885, 278, -1, 888, -1, 890, -1, 892, -1, -1, -1, 288, -1, 290, 1487, -1, -1, -1, 110, 111, 1182, 1183, -1, -1, -1, -1, -1, 1469, 120, -1, -1, 123, 1505, -1, 1906, -1, -1, 52, -1, -1, -1, -1, -1, 1915, -1, -1, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, 943, 425, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 436, -1, -1, -1, 959, 960, 91, -1, 93, -1, -1, -1, 967, 968, -1, 100, 101, 972, -1, -1, -1, -1, -1, 978, -1, -1, -1, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, 999, 1000, 131, 132, 133, 134, 135, 1006, 488, -1, -1, -1, 141, 1569, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, 161, -1, 425, -1, -1, -1, -1, -1, -1, -1, 1041, 1042, -1, 436, 1045, 1046, 1047, -1, -1, -1, -1, -1, 183, 184, 185, -1, -1, -1, -1, -1, -1, -1, -1, 972, 1065, 1066, -1, -1, -1, 1070, -1, -1, -1, -1, -1, 1076, -1, -1, -1, -1, -1, 1082, -1, -1, -1, -1, -1, 1088, -1, 220, 221, 537, 1681, -1, 540, 488, -1, 1686, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1041, 1042, 265, -1, 1045, 1046, 1047, -1, -1, -1, -1, -1, -1, -1, 1704, 278, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, 1751, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1182, 1183, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, -1, -1, -1, 1196, -1, -1, -1, -1, -1, 0, 1203, 1792, -1, 1206, 1207, 1208, -1, -1, -1, -1, -1, -1, -1, 1493, 1494, -1, 664, 665, 666, 667, -1, -1, -1, 1226, -1, -1, 0, -1, 1788, -1, 1233, -1, -1, -1, 718, 719, -1, -1, 722, 723, -1, -1, -1, -1, -1, -1, 694, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, 395, 396, 397, -1, -1, 1547, 1548, -1, -1, 1182, 1183, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, 419, -1, -1, -1, -1, -1, 93, 426, 1109, -1, -1, 1112, -1, 100, 101, -1, 697, -1, 437, -1, -1, -1, -1, 83, -1, -1, -1, -1, 1905, -1, -1, -1, -1, 93, -1, -1, -1, -1, 1041, 1042, 100, 101, 1045, 1046, -1, -1, -1, 466, 467, 1150, -1, -1, 471, -1, -1, 142, 475, -1, -1, 478, -1, 1907, -1, 1164, 1165, 1166, 1167, 154, 487, -1, -1, 158, -1, 492, 493, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, 511, -1, 154, 514, 515, -1, 158, -1, 519, 520, -1, -1, 523, 524, -1, 877, 527, 528, 529, -1, -1, -1, -1, 1404, 1405, -1, 888, -1, -1, -1, -1, -1, -1, -1, 545, 546, -1, -1, -1, 1420, -1, -1, -1, 1424, -1, -1, -1, -1, -1, -1, 561, -1, 563, -1, -1, 566, -1, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 583, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, 1469, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, 877, -1, 1487, -1, -1, 288, -1, 290, 1493, 1494, -1, 888, -1, 1498, 1499, 1500, 1501, -1, -1, -1, -1, 1783, 278, 1785, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, 1, -1, 3, 1006, -1, -1, -1, -1, -1, -1, 1809, -1, 1811, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1547, 1548, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 691, -1, -1, -1, -1, -1, 697, -1, 1569, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1583, 1584, 1493, 1494, -1, 718, 1589, 1590, -1, 722, -1, -1, 74, 75, -1, -1, -1, 79, -1, 1602, -1, -1, 1605, -1, 86, -1, -1, -1, 741, -1, 1613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 425, -1, -1, -1, 110, 111, -1, -1, -1, -1, -1, 436, 1547, 1548, 120, -1, -1, 123, -1, -1, 126, 1648, 128, 129, -1, -1, -1, 425, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1109, 436, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1681, -1, 1683, -1, -1, 1686, -1, -1, -1, 488, -1, -1, -1, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, 1704, 1150, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, 488, -1, 1164, 1165, 1166, 1167, -1, -1, 1206, -1, -1, -1, -1, -1, -1, 862, -1, -1, -1, -1, -1, -1, 869, -1, -1, 1187, -1, 1189, 1226, 876, 877, 878, -1, -1, 1751, 1233, -1, -1, 885, -1, -1, 888, -1, 890, -1, -1, -1, -1, -1, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, 1493, 1494, 2058, 2059, 1783, -1, 1785, -1, -1, 1788, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, 929, -1, 1613, -1, -1, -1, -1, -1, -1, 938, 1809, -1, 1811, 112, 943, -1, -1, -1, -1, -1, 949, -1, -1, -1, -1, -1, -1, -1, -1, -1, 959, -1, -1, -1, 1547, 1548, -1, 136, -1, -1, -1, -1, -1, 972, -1, 1844, 1845, 141, -1, -1, 144, -1, -1, 982, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, 1783, 1006, 1785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, 697, -1, 1809, -1, 1811, -1, 1905, -1, 1907, -1, -1, -1, 1041, 1042, -1, -1, 1045, 1046, 1047, -1, -1, -1, -1, 1052, 1053, -1, -1, 697, -1, -1, -1, -1, -1, -1, 1063, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, 1980, -1, 1982, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, -1, -1, -1, -1, -1, -1, 300, -1, -1, -1, 304, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 315, -1, -1, -1, -1, -1, 321, -1, -1, -1, -1, -1, -1, 328, -1, -1, -1, 1844, 1845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, -1, -1, -1, -1, 350, -1, 1182, 1183, -1, -1, -1, -1, 2058, 2059, -1, -1, -1, 0, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, 1203, -1, -1, 1206, -1, 1208, 877, -1, 1989, 1990, 1991, 1992, -1, -1, 387, -1, 389, 888, -1, -1, -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, 1, 877, 3, 4, 5, -1, -1, -1, -1, -1, 52, -1, 888, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, 83, 84, -1, -1, 2058, 2059, -1, -1, 91, -1, 93, 1602, -1, -1, 1605, -1, -1, 100, 101, -1, -1, -1, 1613, 65, -1, 466, 467, -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 478, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, 131, 132, -1, 492, 493, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, 514, 515, -1, 118, -1, 519, 520, -1, 123, 523, 524, 530, -1, -1, -1, -1, -1, -1, 133, 134, -1, -1, -1, -1, 328, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 1975, 1976, -1, 1978, 1979, 561, 567, 563, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, -1, -1, -1, -1, -1, -1, -1, 1417, -1, -1, -1, -1, -1, 230, -1, -1, 233, -1, -1, 599, -1, -1, 1432, -1, -1, -1, -1, -1, -1, 1439, -1, -1, -1, -1, -1, -1, 1446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 627, 265, -1, -1, -1, -1, -1, -1, -1, -1, 1467, -1, 1469, -1, 278, -1, -1, 2058, 2059, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1493, 1494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 698, 1844, 1845, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1547, 1548, -1, 1550, -1, -1, -1, 724, -1, -1, -1, 728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, -1, -1, -1, -1, 774, -1, -1, -1, -1, -1, 780, 781, 782, 783, 784, 785, 786, -1, -1, 789, 790, -1, 792, 793, 794, 795, 796, 797, 798, 799, 437, 801, -1, -1, -1, -1, -1, -1, -1, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, -1, 829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1675, -1, -1, -1, 345, -1, -1, 637, -1, -1, -1, -1, -1, -1, -1, 860, 861, -1, -1, -1, -1, -1, 300, -1, -1, -1, 304, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 315, -1, -1, -1, -1, -1, 321, -1, 527, 528, 529, -1, 531, 328, -1, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, 547, -1, 345, -1, -1, -1, -1, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 928, 566, 930, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1783, 387, 1785, 389, -1, 1788, -1, 960, -1, -1, -1, -1, -1, -1, -1, -1, 969, -1, -1, -1, -1, -1, 760, -1, 972, -1, 1809, -1, 1811, -1, -1, -1, -1, -1, -1, 421, 774, -1, 1821, -1, -1, -1, -1, -1, -1, 998, -1, 1000, -1, -1, -1, -1, -1, 112, 270, 793, 794, 795, 796, 797, -1, -1, 800, 801, -1, -1, -1, -1, 806, -1, -1, 809, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 821, 822, 823, 824, 825, -1, -1, 828, 829, -1, 1041, 1042, -1, -1, 1045, 1046, 1047, -1, 691, -1, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, 1066, -1, 1, -1, -1, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 567, -1, -1, -1, 71, 72, 73, 637, -1, 1143, 1144, 1975, 1976, 1977, 1978, 1979, -1, 84, -1, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, 270, 98, 599, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, 441, -1, -1, -1, -1, -1, -1, 118, 119, 1182, 1183, -1, -1, -1, 125, 126, 627, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1207, -1, 1209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, -1, -1, -1, -1, -1, 2058, 2059, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1248, -1, -1, -1, 1252, 890, -1, 1255, -1, -1, -1, 1259, -1, -1, -1, 1263, 760, 698, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, 929, -1, -1, 728, -1, 793, 794, 795, 796, 797, -1, -1, 800, -1, -1, -1, -1, -1, 806, 744, 949, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, 821, 822, 823, 824, 825, -1, -1, 828, -1, -1, -1, -1, -1, -1, 1124, -1, 774, -1, -1, -1, -1, -1, 780, 781, 782, 783, 784, 785, 786, -1, -1, 789, 790, -1, 792, 793, 794, 795, 796, 797, 798, 799, 1152, 801, 632, -1, -1, -1, -1, 1159, -1, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, -1, 829, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, 1193, -1, 1195, -1, -1, -1, -1, 1052, 1053, -1, -1, -1, 1420, -1, -1, -1, 1424, -1, -1, 860, 861, -1, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, 1255, -1, -1, -1, -1, -1, 1476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487, -1, -1, -1, -1, -1, 599, -1, 928, -1, 930, 1493, 1494, -1, -1, -1, -1, -1, 1505, 112, 1507, -1, -1, -1, -1, 1512, -1, 1514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 632, 960, -1, -1, -1, 1531, -1, -1, -1, -1, 969, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, 1186, -1, -1, 1547, 1548, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, 998, -1, 1000, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1584, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, -1, -1, -1, 728, -1, -1, -1, -1, -1, 1124, -1, -1, -1, -1, 1066, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 760, -1, 1152, -1, -1, -1, -1, -1, -1, 1159, -1, -1, -1, -1, 774, -1, -1, -1, -1, 1106, -1, -1, -1, -1, 941, -1, -1, 1681, -1, -1, 1117, 1685, 1686, 1687, -1, -1, -1, -1, -1, -1, -1, 801, 1696, 1193, -1, 1195, 806, 1701, 1702, 809, -1, -1, -1, -1, 1708, -1, 1143, 1144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, 829, -1, -1, -1, 1727, 1728, -1, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1751, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, -1, -1, -1, -1, -1, -1, 1207, -1, 1209, -1, -1, -1, -1, 387, -1, 389, -1, -1, -1, -1, 1783, -1, 1785, -1, 1792, -1, -1, -1, -1, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1446, -1, -1, -1, -1, 1809, 1248, 1811, -1, -1, 1252, -1, -1, 1255, -1, -1, -1, 1259, -1, -1, -1, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, 1121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1871, 1872, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1164, 1165, 1166, 1167, 1905, 1906, -1, -1, -1, 1016, -1, -1, 1550, -1, 1915, -1, -1, -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1721, -1, -1, -1, -1, 1726, 1727, 1728, 1729, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, -1, 567, -1, -1, -1, -1, -1, -1, 1968, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, -1, 1420, -1, -1, -1, 1424, -1, 599, 1989, 1990, 1991, 1992, -1, -1, -1, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, 1121, -1, -1, -1, -1, -1, 627, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, 1143, 1144, -1, -1, -1, -1, 1476, 1150, -1, 1152, -1, -1, -1, 1156, -1, -1, 1159, 1487, 1161, -1, -1, 1164, 1165, 1166, 1167, -1, 2058, 2059, -1, -1, -1, -1, -1, -1, -1, 1505, -1, 1507, -1, -1, -1, -1, 1512, -1, 1514, -1, -1, -1, 2085, -1, -1, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, 1531, -1, -1, -1, -1, 2103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, -1, -1, -1, 728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, 1255, -1, 1584, -1, -1, 2154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 774, -1, -1, -1, -1, -1, -1, 1812, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 801, -1, -1, -1, -1, -1, -1, -1, 809, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 829, -1, 1721, -1, -1, -1, -1, 1726, 1727, 1728, 1729, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, 1681, -1, -1, -1, 1685, 1686, 1687, -1, -1, -1, -1, -1, -1, -1, 141, 1696, -1, 144, -1, -1, 1701, 1702, -1, -1, -1, -1, -1, 1708, -1, -1, 157, -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1727, 1728, -1, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1751, -1, -1, -1, 928, -1, 930, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, 1767, -1, 1599, -1, 1601, 1602, -1, 1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, -1, -1, -1, -1, -1, 1792, -1, -1, -1, 969, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 270, 998, -1, 1000, -1, -1, -1, -1, -1, -1, 1507, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, 1538, -1, -1, -1, -1, -1, 1871, 1872, 100, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 1066, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, 1905, 1906, -1, -1, -1, -1, -1, -1, -1, -1, 1915, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, 1601, 1602, -1, -1, 1605, 1106, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, 1117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1968, -1, 1143, 1144, 1972, 1973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1834, 1835, 1836, 1837, -1, -1, 1840, -1, -1, -1, 1844, 1845, -1, 1847, -1, 1849, 466, 467, -1, 1696, -1, -1, -1, -1, -1, -1, -1, 1861, -1, -1, -1, 1708, 1209, -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, 493, 1721, -1, -1, -1, -1, 1726, -1, -1, 1729, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, 515, -1, -1, -1, 519, 520, -1, -1, 523, 524, 1252, -1, -1, 1255, -1, 530, 2085, 1259, -1, -1, -1, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 561, -1, 563, -1, -1, 1793, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2154, -1, -1, -1, -1, -1, -1, 1834, 1835, 1836, 1837, -1, -1, 1840, -1, -1, 2000, 1844, 1845, -1, 1847, -1, 1849, 128, -1, 2009, -1, 2011, -1, -1, -1, 136, 632, -1, 1861, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1871, 1872, -1, -1, -1, -1, -1, 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2065, 2066, -1, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, 2111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, -1, 744, -1, -1, -1, -1, 1476, -1, 751, -1, -1, 754, 2139, -1, 1984, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 2000, -1, -1, -1, -1, 84, 85, 1507, -1, 2009, -1, 2011, 1512, -1, 1514, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 1531, -1, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, 2062, -1, -1, 2065, 2066, -1, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, -1, -1, -1, -1, -1, 1584, 2085, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2103, 382, -1, -1, -1, -1, -1, -1, 2111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 909, 910, -1, 2139, -1, -1, -1, 421, 422, -1, -1, -1, 426, 52, -1, -1, -1, -1, 2154, -1, -1, 435, -1, -1, 438, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 1685, -1, 1687, 91, -1, -1, -1, -1, -1, 472, -1, 1696, -1, -1, 972, 478, 1701, 1702, -1, -1, -1, -1, -1, 1708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, -1, 1000, 131, 132, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, 1041, 1042, -1, -1, 1045, 1046, 1047, -1, -1, -1, 556, -1, 183, -1, 51, -1, -1, -1, -1, -1, 566, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 586, -1, -1, 589, -1, 591, 83, 593, -1, -1, -1, -1, -1, -1, -1, 92, 93, -1, -1, 230, -1, -1, 233, 100, 101, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, 1121, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, 1871, 1872, 142, -1, 278, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, 158, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1906, -1, -1, 1182, 1183, -1, -1, -1, -1, 1915, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, -1, 1252, -1, -1, -1, -1, -1, -1, 1259, -1, -1, -1, 1263, -1, 395, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 437, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, -1, -1, 837, 838, 839, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, 860, 861, 862, 2085, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 529, -1, 531, -1, -1, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, 547, -1, -1, -1, -1, -1, 419, -1, -1, -1, 2154, -1, 425, 935, -1, -1, -1, -1, -1, 566, -1, -1, -1, 436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 960, -1, -1, -1, -1, -1, -1, 967, 968, -1, -1, 1466, -1, -1, -1, -1, -1, -1, 978, -1, 471, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 488, 1493, 1494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1512, -1, 1514, 511, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, 530, -1, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, 1547, 1548, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1065, 691, -1, -1, -1, 1070, -1, -1, -1, -1, -1, 1076, -1, -1, -1, -1, -1, 1082, -1, -1, -1, -1, -1, 1088, 1584, -1, -1, 65, -1, 1589, 1590, -1, -1, 71, 72, 73, -1, -1, -1, 1599, -1, 1601, 1602, -1, -1, 1605, 84, 85, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, 118, 119, 120, 639, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, 198, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, 697, 1207, 1208, -1, -1, -1, 703, -1, -1, -1, -1, -1, -1, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, 720, -1, 722, 723, -1, -1, -1, -1, -1, 729, -1, -1, 732, -1, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, 890, -1, -1, -1, -1, -1, -1, 1767, -1, 300, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, 1783, 315, 1785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 929, -1, -1, 0, -1, -1, -1, -1, -1, -1, 1809, -1, 1811, -1, -1, -1, -1, 946, -1, 948, 949, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, 1834, 1835, 1836, 1837, 834, -1, 1840, -1, -1, -1, 1844, 1845, -1, 1847, -1, 1849, -1, -1, -1, 51, 52, -1, 387, -1, 389, -1, -1, 1861, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 869, -1, -1, 183, -1, -1, -1, -1, 877, 878, -1, -1, 83, 84, -1, -1, 885, 88, -1, 888, 889, 890, 93, 892, -1, -1, 1404, 1405, -1, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, 1420, -1, -1, -1, 1424, 118, -1, 1052, 1053, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 943, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 959, -1, -1, -1, -1, -1, -1, 270, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, 288, 1487, -1, 182, -1, -1, -1, -1, 1989, 1990, 1991, 1992, 1498, 1499, 1500, 1501, 195, -1, 530, 2000, -1, 998, 999, 1000, -1, -1, -1, -1, 2009, 1006, 2011, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, 1186, -1, 2058, 2059, -1, -1, -1, -1, -1, 2065, 2066, 265, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, -1, 278, -1, -1, -1, -1, -1, -1, -1, 395, -1, 288, -1, 290, -1, 401, -1, 627, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1106, 2111, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1125, -1, -1, -1, -1, -1, -1, -1, 437, -1, 2139, -1, -1, -1, 1648, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, -1, -1, 698, 1164, 1165, 1166, 1167, -1, -1, -1, -1, 1681, -1, 1683, -1, -1, 1686, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, -1, -1, 1206, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, 419, -1, 754, 531, -1, -1, 534, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, 437, 547, -1, -1, -1, -1, -1, 1751, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, 568, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, 471, 581, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 511, -1, -1, 1446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 529, -1, -1, -1, -1, -1, 637, -1, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, -1, -1, -1, -1, 653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, 566, -1, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 579, -1, -1, 691, -1, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, -1, 928, -1, 930, 1905, -1, -1, 703, -1, -1, 706, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 615, -1, -1, 1550, -1, -1, -1, -1, -1, -1, -1, -1, 729, -1, -1, -1, -1, -1, 735, -1, -1, 969, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 762, -1, -1, -1, -1, 998, -1, 1000, 1466, -1, 92, 1469, -1, 1980, -1, 1982, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 690, -1, -1, -1, -1, -1, -1, 697, 800, -1, -1, -1, -1, -1, -1, -1, 808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, -1, -1, 722, -1, -1, -1, 828, -1, -1, -1, -1, -1, -1, 1066, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 187, -1, -1, -1, 878, -1, 1569, -1, 1106, -1, -1, 885, -1, -1, -1, -1, -1, -1, -1, 1117, 1583, 1584, -1, 890, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, 221, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 938, -1, -1, -1, -1, 943, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, 959, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 862, 863, -1, -1, -1, 289, -1, 869, -1, -1, -1, -1, -1, -1, 1209, 877, 878, -1, 1812, -1, -1, -1, -1, 885, 308, -1, 888, 889, 890, -1, 314, -1, -1, -1, -1, 1006, 1231, -1, -1, -1, -1, 325, -1, -1, 1704, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1252, -1, -1, -1, -1, -1, -1, 1259, -1, -1, 929, 1263, -1, -1, -1, -1, -1, -1, 937, -1, -1, -1, -1, -1, 943, 1053, -1, -1, -1, -1, 949, -1, -1, -1, 1062, -1, 1064, -1, -1, -1, 959, -1, -1, -1, -1, -1, -1, -1, -1, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1788, -1, -1, -1, -1, -1, -1, 419, -1, -1, -1, -1, -1, -1, -1, -1, 1006, 1109, -1, -1, 1112, 1113, 1114, -1, 1116, -1, -1, -1, -1, -1, -1, -1, 1124, -1, -1, -1, -1, -1, -1, -1, 1132, -1, -1, -1, -1, -1, -1, 1139, -1, -1, -1, -1, -1, -1, -1, -1, 1844, 1845, 1150, 471, -1, -1, 1052, -1, -1, 1157, -1, -1, -1, -1, 1162, 1061, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, 1186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 511, -1, 1193, -1, 1195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 1907, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, -1, -1, 1227, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1273, -1, -1, -1, -1, 632, -1, -1, 1512, -1, 1514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1531, -1, -1, -1, -1, 1203, -1, -1, 1206, -1, 1208, -1, 666, 667, -1, -1, -1, -1, 1216, -1, -1, -1, -1, -1, -1, 1325, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, -1, 1338, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, 1584, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, 703, -1, -1, -1, -1, -1, 1389, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, 720, -1, 722, 723, -1, -1, -1, -1, -1, 729, -1, -1, 732, -1, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, 744, 1432, -1, -1, -1, -1, -1, 751, 1439, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1685, -1, 1687, -1, -1, -1, 1467, -1, 1469, -1, -1, 1472, -1, -1, 1475, -1, 1701, 1702, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1727, 1728, -1, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, 834, -1, -1, -1, -1, 1417, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, 1431, -1, -1, 1767, -1, -1, -1, 1438, -1, -1, 1550, -1, -1, -1, -1, 1446, 869, -1, 1558, -1, -1, -1, -1, 325, -1, 878, -1, -1, -1, 1569, -1, -1, 885, -1, -1, -1, 1467, 890, 1469, 892, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, 1595, -1, 1597, -1, -1, 1600, 1601, -1, -1, -1, -1, 1606, 1607, -1, 1609, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1619, -1, 1621, -1, 943, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 959, -1, -1, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1549, -1, 1653, -1, -1, -1, 1657, -1, -1, 221, -1, -1, -1, -1, -1, -1, -1, 437, -1, -1, 1569, -1, -1, -1, 1906, -1, -1, 998, 999, 1000, -1, -1, -1, 1915, -1, 1006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, 1968, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, 308, 1755, 1756, -1, 1758, -1, 314, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, 325, -1, -1, 1121, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1675, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, 1812, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, 1822, -1, -1, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1840, 1841, -1, -1, 1164, 1165, 1166, 1167, 1848, 1747, -1, -1, 1852, -1, 1854, -1, -1, -1, 419, -1, -1, -1, -1, 1863, -1, -1, -1, 1187, 637, 1189, -1, 1769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, 653, -1, 1206, -1, 657, -1, 1788, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1226, 1907, -1, -1, 471, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, 703, -1, -1, 706, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, -1, 511, 720, -1, -1, -1, -1, -1, -1, -1, -1, 729, -1, -1, -1, -1, -1, 735, 736, -1, 530, -1, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, 52, -1, -1, -1, -1, 1887, -1, 59, -1, 762, -1, -1, -1, -1, -1, -1, -1, 2001, 2002, -1, 2004, -1, 2006, -1, -1, 2009, 2010, 2011, -1, -1, 82, 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 800, -1, -1, -1, -1, -1, -1, -1, 808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 828, -1, -1, -1, 131, 132, -1, -1, 2067, -1, -1, 2070, -1, -1, -1, -1, -1, -1, -1, 2078, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, 2114, 183, -1, -1, -1, -1, -1, 890, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, 703, -1, -1, -1, 1466, -1, -1, 1469, 711, -1, 220, 221, -1, -1, -1, 718, 719, 720, -1, 722, 723, -1, -1, -1, -1, -1, 729, -1, -1, 732, -1, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, 1601, 1602, 1569, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, 834, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 869, -1, -1, -1, -1, -1, -1, -1, -1, 878, -1, -1, -1, -1, -1, -1, 885, -1, -1, 395, -1, 890, -1, 892, -1, 401, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1113, 1114, -1, 1116, -1, -1, -1, -1, -1, -1, -1, 1124, -1, -1, 1127, -1, -1, -1, -1, 1132, -1, -1, -1, -1, -1, 437, 1139, 1140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 943, -1, 1704, -1, -1, -1, 1157, 1158, -1, -1, -1, 1162, -1, -1, -1, -1, 959, -1, -1, -1, -1, 471, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, -1, -1, 1193, -1, 1195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, 999, 1000, -1, -1, -1, -1, -1, 1006, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1227, 527, 528, 529, -1, 531, -1, -1, 534, -1, 1788, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, 547, 1834, 1835, 1836, 1837, -1, -1, 1840, -1, -1, -1, 1844, 1845, -1, 1847, -1, 1849, 564, -1, 566, -1, 568, -1, -1, -1, 1273, 1274, -1, 1861, -1, -1, -1, -1, -1, 581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1844, 1845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, 1325, -1, 1327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1338, 1339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1907, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, 683, -1, -1, -1, -1, 1389, -1, 1391, 691, -1, -1, 1187, -1, 1189, 697, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, -1, -1, 1206, 2000, -1, -1, -1, -1, -1, -1, -1, -1, 2009, -1, 2011, -1, -1, -1, 83, 84, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, 3, -1, -1, -1, -1, 131, 132, 2065, 2066, -1, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, 2111, -1, -1, -1, 183, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 2139, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, 100, -1, -1, -1, -1, 1575, -1, 876, -1, 878, 110, 111, 112, 113, 114, 115, 885, -1, -1, -1, 120, 890, -1, 123, -1, 1595, 1596, 1597, 1598, -1, 1600, 1601, -1, -1, 134, -1, 1606, 1607, -1, 1609, -1, 1611, 265, -1, -1, -1, -1, -1, -1, 1619, 1620, 1621, -1, -1, -1, 278, -1, -1, -1, -1, 929, -1, -1, -1, -1, 288, -1, -1, -1, 938, -1, -1, -1, -1, 943, -1, -1, -1, 3, -1, 949, -1, -1, 1653, -1, 1655, -1, 1657, -1, 1659, 959, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 1466, -1, -1, 1469, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1006, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, 100, -1, -1, 401, -1, -1, -1, -1, 1052, 1053, 110, 111, 112, 113, 114, 115, -1, -1, 1062, -1, 1064, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, -1, 437, -1, -1, -1, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, 471, -1, -1, 1613, 1822, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1841, -1, -1, -1, -1, 1846, -1, 1848, 1849, -1, 1851, 1852, -1, 1854, -1, 1856, -1, -1, -1, -1, -1, 1862, 1863, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 529, -1, 531, -1, -1, 534, -1, -1, -1, 1184, -1, 1186, -1, -1, -1, -1, 545, 546, 547, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1907, -1, -1, -1, -1, 1704, 566, 142, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, 581, -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, -1, 1788, -1, -1, -1, -1, 2001, 2002, -1, 2004, 2005, 2006, -1, -1, -1, 2010, 2011, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, 691, -1, 268, 269, 270, -1, 697, -1, 28, -1, -1, -1, -1, -1, 1844, 1845, -1, 37, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, 2067, 2068, -1, 2070, 2071, -1, -1, -1, 2075, -1, -1, -1, -1, 308, -1, -1, 65, -1, -1, 314, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2114, 1907, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, 1432, -1, -1, 118, 119, 120, -1, 1439, 123, 124, 125, -1, -1, -1, 1446, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1467, -1, 1469, -1, -1, 1472, -1, -1, 1475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 419, -1, -1, -1, -1, -1, 425, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 878, -1, -1, -1, -1, -1, -1, 885, -1, -1, -1, -1, 890, -1, -1, -1, -1, -1, 471, -1, -1, -1, -1, -1, -1, -1, 1550, -1, -1, -1, -1, -1, -1, -1, 1558, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, 929, -1, -1, -1, -1, -1, -1, 511, 1, 938, 3, 4, 5, 6, 943, 8, 9, -1, -1, -1, 949, -1, -1, -1, -1, -1, 530, -1, -1, -1, 959, -1, -1, 537, -1, 28, 540, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, 1006, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1052, 1053, 118, 119, 120, -1, -1, 123, 124, 125, 1062, 92, 1064, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1755, 1756, -1, 1758, 142, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, -1, -1, 722, 723, -1, -1, -1, -1, -1, -1, -1, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, 1812, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, -1, 1184, -1, 1186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 834, 289, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, 869, 28, -1, -1, -1, -1, 92, -1, 877, 878, -1, -1, -1, -1, -1, -1, 885, -1, -1, 888, -1, -1, -1, 892, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, 142, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, 154, -1, -1, 98, 158, -1, 943, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, 959, 118, 119, 120, -1, -1, 123, -1, 125, 126, 186, 187, 425, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, 999, 1000, -1, -1, -1, -1, -1, 1006, 1432, -1, -1, -1, -1, -1, -1, 1439, -1, -1, -1, -1, -1, -1, 1446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 488, -1, -1, -1, -1, -1, -1, -1, 1467, -1, 1469, -1, -1, 1472, 265, -1, 1475, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1550, -1, -1, -1, -1, -1, -1, -1, 1558, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1206, -1, 425, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, 436, -1, -1, -1, -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, 711, 1258, 1259, -1, -1, 1262, 1263, 718, 719, -1, -1, 722, 723, -1, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 530, 8, 9, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, -1, -1, 1755, 1756, -1, 1758, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, 1812, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, -1, 877, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 888, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, 1469, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, -1, -1, 722, 723, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, -1, -1, -1, 998, 999, 1000, -1, -1, -1, -1, -1, 1006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, 877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 1187, -1, 1189, -1, -1, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, 131, 1206, 133, 134, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, 1766, 1767, -1, -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, 998, 999, 1000, -1, -1, -1, -1, 1788, 1006, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1844, 1845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 1187, -1, 1189, -1, -1, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, -1, -1, 131, 1206, 133, 134, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, -1, 1226, -1, -1, 1466, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, 1583, 1584, 79, -1, -1, -1, 1589, 1590, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, 100, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, 121, 122, 123, -1, -1, 126, 127, 128, 129, -1, 131, -1, -1, 134, -1, 136, 137, 138, -1, 140, 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 1766, 1767, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, 1844, 1845, -1, -1, 0, 1, 1613, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1766, 1767, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, 1844, 1845, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, 131, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 1, 125, 3, 4, 5, 6, -1, 8, 9, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 1, 125, 3, 4, 5, 6, -1, 8, 9, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, -1, -1, 118, 119, 120, -1, -1, 123, 1, 125, 3, 4, 5, 6, 130, 8, 9, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 28, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, 0, 1, -1, 3, 4, 5, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, -1, -1, -1, 133, 134, 0, 1, -1, 3, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, -1, -1, -1, 133, 134, 0, 1, -1, 3, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 0, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 0, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 0, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 1, -1, 3, 4, 5, -1, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 1, 120, 3, -1, 123, -1, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 1, 120, 3, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, 136, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, 76, 77, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, 105, -1, -1, 3, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 68, -1, -1, -1, -1, -1, 74, 75, -1, -1, 78, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, 3, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, 3, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, 1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, 0, 1, -1, 3, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, 76, 77, -1, 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 3, -1, -1, 105, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, 3, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, 3, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, 3, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 1, -1, 3, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 1, -1, 3, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 1, -1, 3, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, 3, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, 76, 77, -1, 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, 0, 1, 105, 3, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117
146 };
147
148 static const yytype_uint16 yystos[] =
149 {
150 0, 3, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53, 65, 66, 74, 75, 76, 77, 79, 80, 81, 82, 83, 85, 86, 87, 100, 101, 105, 110, 111, 112, 113, 114, 115, 116, 117, 120, 123, 126, 146, 147, 148, 150, 175, 212, 213, 214, 215, 216, 217, 269, 272, 273, 276, 277, 278, 279, 280, 281, 282, 284, 288, 291, 292, 293, 294, 295, 296, 301, 302, 311, 312, 313, 320, 321, 325, 328, 333, 362, 365, 366, 384, 385, 387, 388, 389, 390, 391, 392, 77, 132, 5, 31, 217, 386, 217, 123, 123, 123, 150, 217, 386, 282, 283, 320, 328, 37, 148, 217, 310, 311, 313, 315, 316, 317, 319, 320, 328, 331, 332, 337, 121, 126, 147, 148, 217, 130, 132, 126, 130, 129, 120, 121, 212, 217, 130, 150, 217, 130, 132, 129, 121, 130, 132, 130, 129, 130, 148, 217, 320, 1, 31, 37, 38, 126, 146, 148, 214, 216, 217, 269, 279, 280, 282, 284, 313, 317, 320, 328, 331, 332, 333, 335, 343, 344, 345, 346, 37, 38, 148, 320, 345, 123, 134, 1, 29, 30, 31, 32, 33, 65, 116, 117, 124, 146, 217, 268, 272, 274, 275, 282, 284, 288, 289, 290, 296, 300, 308, 309, 349, 350, 351, 352, 353, 354, 328, 123, 313, 320, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 47, 66, 85, 87, 100, 112, 113, 114, 115, 130, 150, 171, 172, 268, 273, 274, 282, 285, 289, 291, 299, 364, 367, 368, 369, 374, 375, 376, 31, 76, 132, 214, 216, 301, 365, 366, 384, 385, 392, 1, 214, 278, 295, 301, 333, 362, 388, 1, 387, 388, 0, 217, 386, 386, 5, 127, 386, 1, 4, 6, 8, 9, 65, 71, 72, 73, 84, 85, 98, 102, 103, 104, 105, 106, 107, 108, 109, 118, 119, 120, 123, 125, 133, 134, 136, 137, 138, 139, 150, 176, 177, 217, 218, 219, 220, 221, 224, 225, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 386, 398, 399, 400, 401, 147, 217, 130, 150, 217, 282, 328, 134, 123, 134, 124, 308, 309, 353, 354, 328, 331, 332, 310, 315, 319, 320, 124, 320, 124, 320, 320, 85, 150, 202, 204, 206, 210, 211, 217, 229, 234, 250, 254, 300, 126, 121, 121, 126, 1, 68, 78, 80, 81, 88, 91, 92, 93, 94, 96, 98, 99, 123, 125, 126, 129, 151, 152, 153, 154, 155, 156, 157, 158, 173, 174, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 193, 197, 198, 199, 200, 217, 225, 248, 300, 312, 314, 320, 328, 333, 334, 363, 80, 81, 217, 268, 272, 282, 285, 288, 296, 303, 304, 1, 129, 199, 200, 148, 217, 1, 217, 270, 271, 1, 129, 271, 304, 65, 203, 205, 207, 208, 209, 217, 300, 1, 129, 199, 200, 304, 1, 129, 199, 200, 1, 129, 199, 200, 148, 217, 128, 128, 128, 130, 328, 313, 317, 320, 1, 127, 368, 375, 376, 368, 375, 376, 1, 126, 128, 128, 328, 126, 135, 147, 217, 243, 262, 266, 267, 128, 130, 150, 217, 129, 130, 129, 130, 320, 37, 123, 134, 136, 146, 148, 217, 268, 274, 282, 284, 289, 310, 311, 320, 326, 328, 329, 332, 1, 124, 128, 1, 124, 128, 1, 128, 1, 128, 124, 124, 313, 123, 313, 123, 123, 1, 126, 1, 129, 1, 37, 38, 126, 217, 268, 274, 282, 285, 289, 320, 345, 346, 1, 126, 1, 364, 367, 375, 376, 364, 367, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 85, 86, 88, 89, 90, 126, 132, 150, 194, 195, 196, 217, 225, 229, 244, 246, 250, 262, 263, 264, 325, 355, 356, 359, 360, 361, 368, 369, 370, 371, 372, 373, 375, 376, 378, 379, 380, 381, 382, 383, 129, 31, 217, 386, 217, 212, 213, 215, 216, 310, 311, 317, 320, 328, 333, 335, 368, 376, 214, 301, 127, 242, 243, 261, 124, 123, 229, 250, 123, 229, 250, 229, 250, 123, 217, 268, 274, 282, 285, 289, 307, 266, 123, 123, 307, 266, 123, 123, 123, 123, 123, 123, 229, 250, 123, 124, 244, 246, 264, 274, 282, 284, 289, 297, 347, 386, 130, 135, 178, 179, 222, 226, 244, 130, 1, 129, 130, 217, 1, 7, 8, 9, 123, 131, 134, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 127, 245, 179, 222, 223, 231, 251, 120, 140, 141, 137, 138, 10, 11, 234, 254, 12, 13, 121, 122, 14, 15, 136, 142, 143, 16, 17, 144, 245, 124, 7, 8, 9, 123, 131, 134, 245, 120, 140, 141, 137, 138, 10, 11, 12, 13, 121, 122, 14, 15, 136, 142, 143, 16, 17, 144, 245, 124, 124, 107, 217, 300, 393, 396, 397, 130, 130, 135, 147, 266, 267, 135, 147, 266, 267, 124, 124, 124, 124, 310, 315, 319, 124, 124, 310, 11, 122, 128, 127, 123, 320, 328, 329, 65, 209, 217, 300, 209, 1, 217, 268, 282, 285, 296, 305, 300, 333, 334, 123, 150, 217, 217, 300, 1, 123, 305, 120, 123, 217, 300, 126, 325, 375, 376, 375, 376, 375, 126, 375, 376, 126, 1, 129, 1, 1, 126, 128, 128, 69, 70, 91, 95, 97, 129, 69, 70, 129, 126, 1, 197, 198, 1, 197, 198, 1, 127, 123, 132, 217, 286, 287, 310, 316, 318, 320, 328, 335, 336, 337, 1, 300, 308, 351, 328, 314, 320, 123, 132, 157, 158, 173, 174, 176, 177, 186, 217, 300, 121, 150, 217, 217, 268, 282, 285, 121, 121, 127, 128, 1, 126, 130, 28, 149, 217, 122, 128, 127, 217, 329, 331, 343, 343, 343, 126, 128, 129, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 222, 223, 225, 243, 262, 299, 340, 341, 310, 313, 315, 317, 319, 310, 317, 130, 244, 263, 338, 339, 375, 376, 375, 376, 343, 344, 343, 344, 135, 135, 135, 51, 349, 350, 1, 271, 130, 130, 1, 129, 199, 200, 1, 129, 199, 200, 130, 124, 217, 308, 309, 320, 328, 329, 353, 354, 135, 147, 266, 267, 320, 328, 332, 328, 123, 134, 326, 1, 1, 128, 1, 51, 217, 349, 350, 128, 1, 51, 217, 349, 350, 128, 1, 51, 217, 349, 350, 128, 51, 217, 349, 350, 3, 28, 44, 74, 75, 124, 322, 323, 324, 244, 147, 217, 129, 130, 126, 126, 132, 266, 267, 132, 123, 123, 1, 123, 52, 53, 54, 56, 57, 58, 59, 62, 86, 217, 264, 325, 355, 378, 382, 123, 217, 126, 126, 126, 222, 223, 246, 264, 123, 282, 123, 123, 190, 217, 126, 126, 126, 132, 131, 245, 1, 131, 126, 128, 246, 264, 245, 124, 128, 246, 1, 370, 371, 370, 371, 355, 356, 364, 367, 355, 356, 364, 367, 1, 1, 386, 386, 148, 217, 130, 130, 328, 317, 320, 368, 376, 368, 376, 376, 243, 144, 126, 144, 65, 146, 217, 274, 282, 284, 289, 298, 348, 217, 299, 121, 123, 134, 217, 268, 274, 282, 285, 289, 320, 327, 328, 330, 217, 268, 274, 282, 285, 289, 306, 246, 347, 375, 217, 134, 330, 306, 244, 386, 386, 386, 244, 348, 348, 124, 217, 274, 282, 284, 289, 329, 124, 131, 1, 169, 170, 1, 129, 128, 135, 1, 169, 170, 129, 1, 169, 170, 1, 217, 124, 223, 226, 227, 263, 1, 217, 246, 264, 222, 244, 1, 231, 251, 231, 251, 231, 251, 232, 252, 232, 252, 233, 253, 233, 253, 234, 254, 234, 254, 234, 254, 222, 223, 236, 255, 222, 223, 236, 255, 222, 223, 237, 256, 222, 223, 238, 257, 222, 223, 239, 258, 240, 259, 241, 260, 132, 222, 223, 246, 247, 264, 265, 222, 244, 1, 217, 124, 226, 227, 1, 217, 246, 264, 222, 244, 231, 251, 231, 251, 231, 251, 232, 252, 232, 252, 233, 253, 233, 253, 234, 254, 234, 254, 234, 254, 234, 254, 222, 223, 236, 255, 222, 223, 236, 255, 222, 223, 237, 256, 222, 223, 238, 257, 222, 223, 239, 258, 240, 259, 241, 260, 132, 246, 247, 264, 265, 222, 244, 121, 122, 217, 394, 395, 217, 129, 393, 396, 397, 397, 135, 135, 135, 135, 135, 135, 210, 202, 204, 206, 217, 320, 328, 122, 127, 329, 122, 130, 121, 130, 217, 268, 282, 285, 329, 320, 328, 335, 336, 190, 287, 310, 320, 328, 130, 217, 130, 217, 329, 217, 320, 123, 126, 129, 180, 181, 180, 181, 375, 375, 375, 219, 375, 375, 1, 340, 341, 124, 266, 267, 130, 128, 1, 300, 308, 351, 328, 310, 318, 320, 132, 325, 217, 123, 314, 314, 217, 1, 1, 287, 211, 121, 209, 209, 266, 267, 270, 199, 200, 1, 129, 271, 127, 132, 127, 132, 208, 204, 217, 127, 217, 127, 375, 376, 1, 126, 128, 126, 128, 126, 161, 162, 165, 166, 167, 129, 159, 162, 126, 129, 161, 162, 165, 166, 167, 127, 37, 335, 336, 337, 338, 339, 342, 1, 129, 271, 1, 129, 271, 1, 129, 199, 200, 320, 328, 329, 124, 124, 124, 135, 135, 135, 328, 326, 124, 353, 354, 135, 147, 266, 267, 349, 350, 300, 349, 349, 349, 350, 124, 123, 124, 128, 323, 124, 124, 124, 1, 169, 170, 355, 356, 364, 367, 132, 132, 355, 356, 364, 367, 246, 264, 246, 264, 124, 246, 264, 132, 266, 267, 132, 123, 123, 355, 123, 223, 264, 123, 132, 56, 1, 124, 126, 217, 246, 264, 377, 126, 126, 126, 126, 126, 386, 123, 244, 244, 217, 355, 356, 364, 367, 90, 223, 263, 88, 89, 90, 244, 263, 223, 263, 244, 263, 121, 317, 376, 376, 126, 246, 247, 264, 265, 246, 247, 264, 265, 146, 147, 146, 274, 282, 284, 289, 329, 124, 124, 124, 329, 211, 124, 320, 330, 353, 354, 266, 267, 121, 328, 123, 327, 134, 121, 134, 217, 268, 274, 282, 285, 289, 330, 124, 124, 124, 124, 266, 267, 134, 134, 330, 128, 124, 128, 128, 128, 124, 128, 231, 251, 386, 1, 129, 222, 244, 1, 1, 124, 128, 124, 135, 135, 1, 128, 132, 132, 128, 132, 132, 124, 135, 135, 132, 132, 132, 132, 217, 217, 126, 128, 217, 386, 129, 129, 320, 328, 204, 211, 121, 130, 130, 217, 328, 320, 124, 328, 310, 124, 130, 130, 217, 124, 1, 169, 170, 286, 320, 217, 123, 310, 318, 318, 266, 267, 123, 124, 122, 211, 122, 122, 126, 1, 126, 202, 201, 300, 202, 201, 206, 127, 130, 1, 163, 164, 1, 163, 164, 376, 1, 340, 341, 128, 129, 338, 339, 1, 126, 1, 126, 328, 326, 124, 124, 124, 135, 135, 135, 329, 332, 246, 124, 323, 1, 355, 356, 364, 367, 355, 356, 364, 367, 124, 124, 124, 124, 1, 355, 124, 246, 355, 356, 132, 132, 264, 124, 246, 264, 56, 264, 377, 386, 123, 355, 132, 126, 1, 126, 1, 124, 264, 377, 3, 124, 132, 386, 124, 124, 128, 123, 123, 190, 132, 132, 132, 132, 132, 132, 132, 132, 124, 124, 1, 124, 122, 320, 328, 330, 124, 124, 124, 135, 135, 211, 327, 124, 353, 354, 266, 267, 211, 266, 267, 121, 134, 123, 338, 135, 135, 266, 267, 266, 267, 134, 347, 217, 217, 244, 1, 217, 223, 263, 222, 223, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 394, 126, 126, 122, 211, 130, 375, 310, 127, 130, 1, 123, 132, 132, 122, 199, 200, 126, 199, 200, 127, 329, 127, 206, 342, 129, 338, 339, 1, 199, 200, 199, 200, 124, 355, 355, 355, 355, 355, 356, 124, 123, 377, 124, 246, 264, 246, 355, 1, 124, 246, 264, 134, 357, 358, 386, 126, 358, 3, 124, 132, 130, 190, 244, 244, 1, 1, 327, 124, 122, 124, 124, 135, 135, 122, 135, 135, 211, 266, 267, 347, 135, 135, 135, 135, 266, 267, 124, 124, 124, 124, 124, 122, 340, 266, 267, 266, 267, 199, 200, 202, 202, 128, 129, 1, 64, 64, 246, 264, 124, 246, 264, 124, 126, 124, 126, 355, 356, 124, 355, 356, 217, 124, 128, 132, 123, 3, 124, 132, 358, 126, 358, 73, 190, 191, 192, 124, 124, 124, 128, 122, 135, 135, 124, 135, 135, 126, 129, 355, 355, 124, 124, 126, 355, 246, 355, 356, 135, 126, 357, 358, 244, 358, 126, 358, 124, 132, 3, 124, 132, 375, 375, 129, 191, 130, 190, 231, 251, 338, 124, 386, 124, 124, 124, 124, 132, 126, 358, 358, 126, 358, 192, 124, 355, 123, 126, 126, 126, 358, 124, 124, 124, 132, 129, 244, 124, 126, 126, 126, 358, 124, 126, 124, 126
151 };
152
153 void exit(int status);
154
155 void * calloc(size_t nmemb, size_t size);
156
157 void free(void * ptr);
158
159 void * malloc(size_t size);
160
161 void * realloc(void * ptr, size_t size);
162
163 long int strtol(const char * nptr, char ** endptr, int base);
164
165 long long int strtoll(const char * nptr, char ** endptr, int base);
166
167 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
168
169 typedef __builtin_va_list va_list;
170
171 typedef void FILE;
172
173 FILE * bsl_stdin(void);
174
175 FILE * bsl_stdout(void);
176
177 FILE * bsl_stderr(void);
178
179 char * fgets(char * s, int size, FILE * stream);
180
181 FILE * fopen(const char * path, const char * mode);
182
183 int fclose(FILE * fp);
184
185 int fflush(FILE * stream);
186
187 int fgetc(FILE * stream);
188
189 int fprintf(FILE * stream, const char * format, ...);
190
191 int fputc(int c, FILE * stream);
192
193 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
194
195 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
196
197 int vsnprintf(char *, size_t, const char *, va_list args);
198
199 int snprintf(char * str, size_t, const char * format, ...);
200
201 int fseek(FILE * stream, long offset, int whence);
202
203 long ftell(FILE * stream);
204
205 int feof(FILE * stream);
206
207 int ferror(FILE * stream);
208
209 int fileno(FILE * stream);
210
211 int yydebug;
212
213 int yyparse(void);
214
215 int yychar;
216
217 int yynerrs;
218
219 extern unsigned int skipErrors;
220
221 extern int structDeclMode;
222
223 extern int declMode;
224
225 extern int defaultDeclMode;
226
227 struct __ecereNameSpace__ecere__sys__OldList
228 {
229 void *  first;
230 void *  last;
231 int count;
232 unsigned int offset;
233 unsigned int circ;
234 } ecere_gcc_struct;
235
236 struct __ecereNameSpace__ecere__sys__BTNode;
237
238 struct Type;
239
240 struct __ecereNameSpace__ecere__com__DataValue
241 {
242 union
243 {
244 char c;
245 unsigned char uc;
246 short s;
247 unsigned short us;
248 int i;
249 unsigned int ui;
250 void *  p;
251 float f;
252 double d;
253 long long i64;
254 uint64 ui64;
255 } ecere_gcc_struct __anon1;
256 } ecere_gcc_struct;
257
258 struct __ecereNameSpace__ecere__com__SerialBuffer
259 {
260 unsigned char *  _buffer;
261 unsigned int count;
262 unsigned int _size;
263 unsigned int pos;
264 } ecere_gcc_struct;
265
266 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
267
268 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
269
270 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
271
272 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
273
274 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
275
276 struct Enumerator;
277
278 struct Pointer;
279
280 struct TypeName;
281
282 struct Context;
283
284 struct ExtDecl;
285
286 struct PropertyWatch;
287
288 struct TemplateParameter;
289
290 struct TemplateDatatype;
291
292 struct DBTableEntry;
293
294 struct DBIndexItem;
295
296 struct CodePosition
297 {
298 int line;
299 int charPos;
300 int pos;
301 int included;
302 } ecere_gcc_struct;
303
304 extern char *  __ecereNameSpace__ecere__sys__CopyString(const char *  string);
305
306 struct ModuleImport;
307
308 struct ClassImport;
309
310 extern size_t strlen(const char * );
311
312 extern void Compiler_Error(const char *  format, ...);
313
314 extern const char *  __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char *  string, const char *  stringAndContext);
315
316 extern char *  __ecereNameSpace__ecere__sys__RSearchString(const char *  buffer, const char *  subStr, int maxLen, unsigned int matchCase, unsigned int matchWord);
317
318 extern char *  strcpy(char * , const char * );
319
320 extern char *  strcat(char * , const char * );
321
322 extern void Compiler_Warning(const char *  format, ...);
323
324 extern void *  memcpy(void * , const void * , size_t size);
325
326 struct __ecereNameSpace__ecere__com__LinkList
327 {
328 void * first;
329 void * last;
330 int count;
331 } ecere_gcc_struct;
332
333 extern int strcmp(const char * , const char * );
334
335 static void yy_stack_print(yytype_int16 * yybottom, yytype_int16 * yytop)
336 {
337 fprintf((bsl_stderr()), "Stack now");
338 for(; yybottom <= yytop; yybottom++)
339 {
340 int yybot = *yybottom;
341
342 fprintf((bsl_stderr()), " %d", yybot);
343 }
344 fprintf((bsl_stderr()), "\n");
345 }
346
347 struct __ecereNameSpace__ecere__sys__OldList * ast;
348
349 extern void FreeList(struct __ecereNameSpace__ecere__sys__OldList * list, void (*  FreeFunction)(void * ));
350
351 extern struct __ecereNameSpace__ecere__sys__OldList *  MkList(void);
352
353 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void *  item);
354
355 extern struct __ecereNameSpace__ecere__sys__OldList *  MkListOne(void *  item);
356
357 extern void FreeEnumerator(struct Enumerator * enumerator);
358
359 extern void FreePointer(struct Pointer * pointer);
360
361 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
362
363 extern void FreeTypeName(struct TypeName * typeName);
364
365 extern struct Context * curContext;
366
367 extern void PopContext(struct Context * ctx);
368
369 extern void FreeContext(struct Context * context);
370
371 extern struct Context * globalContext;
372
373 extern struct Context * PushContext(void);
374
375 extern void FreeExtDecl(struct ExtDecl * extDecl);
376
377 extern struct ExtDecl * MkExtDeclString(char * s);
378
379 extern void FreeTemplateParameter(struct TemplateParameter * param);
380
381 extern void FreeTemplateDataType(struct TemplateDatatype * type);
382
383 struct Location
384 {
385 struct CodePosition start;
386 struct CodePosition end;
387 } ecere_gcc_struct;
388
389 extern void resetScannerPos(struct CodePosition * pos);
390
391 extern struct Location yylloc;
392
393 struct Location yylloc;
394
395 struct Attrib
396 {
397 struct Location loc;
398 int type;
399 struct __ecereNameSpace__ecere__sys__OldList *  attribs;
400 } ecere_gcc_struct;
401
402 extern void FreeAttrib(struct Attrib * attr);
403
404 extern struct ExtDecl * MkExtDeclAttrib(struct Attrib * attr);
405
406 extern struct Attrib * MkAttrib(int type, struct __ecereNameSpace__ecere__sys__OldList *  attribs);
407
408 struct __ecereNameSpace__ecere__com__Class;
409
410 struct __ecereNameSpace__ecere__com__Instance
411 {
412 void * *  _vTbl;
413 struct __ecereNameSpace__ecere__com__Class * _class;
414 int _refCount;
415 } ecere_gcc_struct;
416
417 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
418
419 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
420
421 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
422
423 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
424
425 extern struct __ecereNameSpace__ecere__com__Instance * fileInput;
426
427 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
428
429 struct __ecereNameSpace__ecere__com__Property;
430
431 struct __ecereNameSpace__ecere__com__Property
432 {
433 struct __ecereNameSpace__ecere__com__Property * prev;
434 struct __ecereNameSpace__ecere__com__Property * next;
435 const char *  name;
436 unsigned int isProperty;
437 int memberAccess;
438 int id;
439 struct __ecereNameSpace__ecere__com__Class * _class;
440 const char *  dataTypeString;
441 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
442 struct Type * dataType;
443 void (*  Set)(void * , int);
444 int (*  Get)(void * );
445 unsigned int (*  IsSet)(void * );
446 void *  data;
447 void *  symbol;
448 int vid;
449 unsigned int conversion;
450 unsigned int watcherOffset;
451 const char *  category;
452 unsigned int compiled;
453 unsigned int selfWatchable;
454 unsigned int isWatchable;
455 } ecere_gcc_struct;
456
457 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
458
459 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
460
461 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
462
463 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
464
465 struct Specifier;
466
467 extern void FreeSpecifier(struct Specifier * spec);
468
469 extern struct Specifier * MkSpecifierName(const char *  name);
470
471 extern void SetClassTemplateArgs(struct Specifier * spec, struct __ecereNameSpace__ecere__sys__OldList * templateArgs);
472
473 extern struct Specifier * MkSpecifier(int specifier);
474
475 extern struct Specifier * MkSpecifierExtended(struct ExtDecl * extDecl);
476
477 extern struct Specifier * MkSpecifierSubClass(struct Specifier * _class);
478
479 extern void AddStructDefinitions(struct Specifier * spec, struct __ecereNameSpace__ecere__sys__OldList * definitions);
480
481 extern struct Specifier * MkSpecifierNameArgs(const char *  name, struct __ecereNameSpace__ecere__sys__OldList *  templateArgs);
482
483 struct ClassFunction;
484
485 extern void FreeClassFunction(struct ClassFunction * func);
486
487 struct MemberInit;
488
489 extern void FreeMemberInit(struct MemberInit * init);
490
491 struct MembersInit;
492
493 extern void FreeMembersInit(struct MembersInit * init);
494
495 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
496
497 struct MembersInit
498 {
499 struct MembersInit * prev;
500 struct MembersInit * next;
501 struct Location loc;
502 int type;
503 union
504 {
505 struct __ecereNameSpace__ecere__sys__OldList *  dataMembers;
506 struct ClassFunction * function;
507 } ecere_gcc_struct __anon1;
508 } ecere_gcc_struct;
509
510 extern struct MembersInit * MkMembersInitMethod(struct ClassFunction * function);
511
512 struct Instantiation;
513
514 extern void FreeInstance(struct Instantiation * inst);
515
516 struct PropertyDef;
517
518 extern void FreeProperty(struct PropertyDef * def);
519
520 struct ClassDef;
521
522 extern void FreeClassDef(struct ClassDef * def);
523
524 extern struct ClassDef * MkClassDefDefaultProperty(struct __ecereNameSpace__ecere__sys__OldList * defProperties);
525
526 extern struct ClassDef * MkClassDefFunction(struct ClassFunction * function);
527
528 extern struct ClassDef * MkClassDefProperty(struct PropertyDef * propertyDef);
529
530 extern struct ClassDef * MkClassDefClassProperty(struct PropertyDef * propertyDef);
531
532 extern struct ClassDef * MkClassDefNoExpansion(void);
533
534 extern struct ClassDef * MkClassDefFixed(void);
535
536 extern struct ClassDef * MkClassDefMemberAccess(void);
537
538 extern struct ClassDef * MkClassDefPropertyWatch(struct PropertyWatch * watcher);
539
540 extern struct ClassDef * MkClassDefDesigner(const char *  designer);
541
542 struct TemplateArgument;
543
544 extern void FreeTemplateArgument(struct TemplateArgument * arg);
545
546 extern struct TemplateArgument * MkTemplateTypeArgument(struct TemplateDatatype * tplDatatype);
547
548 struct ClassDefinition;
549
550 extern void FreeClass(struct ClassDefinition * _class);
551
552 struct Identifier;
553
554 extern void FreeIdentifier(struct Identifier * id);
555
556 extern struct ClassDef * MkClassDefAccessOverride(int access, struct Identifier * id);
557
558 extern struct ClassDef * MkClassDefDesignerDefaultProperty(struct Identifier * id);
559
560 extern struct TemplateParameter * MkTypeTemplateParameter(struct Identifier * identifier, struct TemplateDatatype * baseTplDatatype, struct TemplateArgument * defaultArgument);
561
562 extern struct Identifier * MkIdentifier(const char *  string);
563
564 extern struct TemplateArgument * MkTemplateIdentifierArgument(struct Identifier * ident);
565
566 extern struct TemplateParameter * MkIdentifierTemplateParameter(struct Identifier * identifier, int memberType, struct TemplateArgument * defaultArgument);
567
568 extern struct TemplateParameter * MkExpressionTemplateParameter(struct Identifier * identifier, struct TemplateDatatype * dataType, struct TemplateArgument * defaultArgument);
569
570 extern struct Specifier * MkEnum(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * list);
571
572 extern struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions);
573
574 extern struct DBTableEntry * MkDBFieldEntry(struct TypeName * type, struct Identifier * id, char *  name);
575
576 extern struct DBIndexItem * MkDBIndexItem(struct Identifier * id, int order);
577
578 extern struct DBTableEntry * MkDBIndexEntry(struct __ecereNameSpace__ecere__sys__OldList *  items, struct Identifier * id);
579
580 struct Expression;
581
582 extern void FreeExpression(struct Expression * exp);
583
584 extern struct Expression * MkExpDummy(void);
585
586 extern struct Instantiation * MkInstantiationNamed(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
587
588 extern struct Expression * MkExpIdentifier(struct Identifier * id);
589
590 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
591
592 extern struct TemplateArgument * MkTemplateExpressionArgument(struct Expression * expr);
593
594 struct TemplateArgument
595 {
596 struct TemplateArgument * prev;
597 struct TemplateArgument * next;
598 struct Location loc;
599 struct Identifier * name;
600 int type;
601 union
602 {
603 struct Expression * expression;
604 struct Identifier * identifier;
605 struct TemplateDatatype * templateDatatype;
606 } ecere_gcc_struct __anon1;
607 } ecere_gcc_struct;
608
609 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
610
611 extern struct Expression * MkExpString(const char *  string);
612
613 extern struct Expression * MkExpIntlString(const char *  string, const char *  context);
614
615 extern struct Expression * MkExpConstant(const char *  string);
616
617 extern struct Expression * MkExpInstance(struct Instantiation * inst);
618
619 extern struct Expression * MkExpExtensionExpression(struct __ecereNameSpace__ecere__sys__OldList *  expressions);
620
621 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
622
623 extern struct Expression * MkExpWideString(const char *  string);
624
625 extern struct Expression * MkExpNew(struct TypeName * type, struct Expression * size);
626
627 extern struct Expression * MkExpNew0(struct TypeName * type, struct Expression * size);
628
629 extern struct Expression * MkExpRenew(struct Expression * memExp, struct TypeName * type, struct Expression * size);
630
631 extern struct Expression * MkExpRenew0(struct Expression * memExp, struct TypeName * type, struct Expression * size);
632
633 extern struct Expression * MkExpVaArg(struct Expression * exp, struct TypeName * type);
634
635 extern struct Expression * MkExpClassData(struct Identifier * id);
636
637 extern struct Expression * MkExpArray(struct __ecereNameSpace__ecere__sys__OldList *  expressions);
638
639 extern struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index);
640
641 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
642
643 extern struct Expression * MkExpPointer(struct Expression * expression, struct Identifier * member);
644
645 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
646
647 extern struct Expression * MkExpTypeSize(struct TypeName * typeName);
648
649 extern struct Expression * MkExpClassSize(struct Specifier * _class);
650
651 extern struct Expression * MkExpTypeAlign(struct TypeName * typeName);
652
653 extern struct Expression * MkExpOffsetOf(struct TypeName * typeName, struct Identifier * id);
654
655 extern struct Expression * MkExpCast(struct TypeName * typeName, struct Expression * expression);
656
657 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
658
659 extern struct Enumerator * MkEnumerator(struct Identifier * id, struct Expression * exp);
660
661 extern struct Specifier * MkSpecifierTypeOf(struct Expression * expression);
662
663 extern struct Expression * MkExpDBOpen(struct Expression * ds, struct Expression * dbName);
664
665 extern struct Expression * MkExpDBField(char *  table, struct Identifier * id);
666
667 extern struct Expression * MkExpDBIndex(char *  table, struct Identifier * id);
668
669 extern struct Expression * MkExpDBTable(char *  table);
670
671 struct Declarator;
672
673 extern void FreeDeclarator(struct Declarator * decl);
674
675 extern struct ClassFunction * MkClassFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Specifier * _class, struct Declarator * decl, struct __ecereNameSpace__ecere__sys__OldList * declList);
676
677 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
678
679 extern struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters);
680
681 extern struct TemplateDatatype * MkTemplateDatatype(struct __ecereNameSpace__ecere__sys__OldList *  specifiers, struct Declarator * decl);
682
683 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
684
685 extern struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList *  specifiers, struct Declarator * decl);
686
687 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
688
689 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
690
691 extern struct Declarator * MkDeclaratorEnumArray(struct Declarator * declarator, struct Specifier * _class);
692
693 extern struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator);
694
695 extern struct Declarator * MkDeclaratorExtended(struct ExtDecl * extended, struct Declarator * declarator);
696
697 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
698
699 extern struct Declarator * MkDeclaratorExtendedEnd(struct ExtDecl * extended, struct Declarator * declarator);
700
701 extern struct TypeName * MkTypeNameGuessDecl(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
702
703 struct Attribute;
704
705 extern void FreeAttribute(struct Attribute * attr);
706
707 extern struct Attribute * MkAttribute(char * attr, struct Expression * exp);
708
709 struct Attribute
710 {
711 struct Attribute * prev;
712 struct Attribute * next;
713 struct Location loc;
714 char * attr;
715 struct Expression * exp;
716 } ecere_gcc_struct;
717
718 struct Initializer;
719
720 extern void FreeInitializer(struct Initializer * initializer);
721
722 extern struct MemberInit * MkMemberInitExp(struct Expression * idExp, struct Initializer * initializer);
723
724 struct MemberInit
725 {
726 struct MemberInit * prev;
727 struct MemberInit * next;
728 struct Location loc;
729 struct Location realLoc;
730 struct __ecereNameSpace__ecere__sys__OldList *  identifiers;
731 struct Initializer * initializer;
732 unsigned int used;
733 unsigned int variable;
734 unsigned int takeOutExp;
735 } ecere_gcc_struct;
736
737 struct Initializer
738 {
739 struct Initializer * prev;
740 struct Initializer * next;
741 struct Location loc;
742 int type;
743 union
744 {
745 struct Expression * exp;
746 struct __ecereNameSpace__ecere__sys__OldList *  list;
747 } ecere_gcc_struct __anon1;
748 unsigned int isConstant;
749 struct Identifier * id;
750 } ecere_gcc_struct;
751
752 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
753
754 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
755
756 extern struct ClassDef * MkClassDefClassPropertyValue(struct Identifier * id, struct Initializer * initializer);
757
758 extern struct Expression * MkExpExtensionInitializer(struct TypeName * typeName, struct Initializer * initializer);
759
760 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
761
762 struct InitDeclarator;
763
764 extern void FreeInitDeclarator(struct InitDeclarator * decl);
765
766 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
767
768 struct InitDeclarator
769 {
770 struct InitDeclarator * prev;
771 struct InitDeclarator * next;
772 struct Location loc;
773 struct Declarator * declarator;
774 struct Initializer * initializer;
775 } ecere_gcc_struct;
776
777 struct Statement;
778
779 extern void FreeStatement(struct Statement * stmt);
780
781 extern void ProcessClassFunctionBody(struct ClassFunction * func, struct Statement * body);
782
783 struct Expression
784 {
785 struct Expression * prev;
786 struct Expression * next;
787 struct Location loc;
788 int type;
789 union
790 {
791 struct
792 {
793 char *  constant;
794 struct Identifier * identifier;
795 } ecere_gcc_struct __anon1;
796 struct Statement * compound;
797 struct Instantiation * instance;
798 struct
799 {
800 char *  string;
801 unsigned int intlString;
802 unsigned int wideString;
803 } ecere_gcc_struct __anon2;
804 struct __ecereNameSpace__ecere__sys__OldList *  list;
805 struct
806 {
807 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
808 struct Declarator * decl;
809 } ecere_gcc_struct _classExp;
810 struct
811 {
812 struct Identifier * id;
813 } ecere_gcc_struct classData;
814 struct
815 {
816 struct Expression * exp;
817 struct __ecereNameSpace__ecere__sys__OldList * arguments;
818 struct Location argLoc;
819 } ecere_gcc_struct call;
820 struct
821 {
822 struct Expression * exp;
823 struct __ecereNameSpace__ecere__sys__OldList * index;
824 } ecere_gcc_struct index;
825 struct
826 {
827 struct Expression * exp;
828 struct Identifier * member;
829 int memberType;
830 unsigned int thisPtr;
831 } ecere_gcc_struct member;
832 struct
833 {
834 int op;
835 struct Expression * exp1;
836 struct Expression * exp2;
837 } ecere_gcc_struct op;
838 struct TypeName * typeName;
839 struct Specifier * _class;
840 struct
841 {
842 struct TypeName * typeName;
843 struct Expression * exp;
844 } ecere_gcc_struct cast;
845 struct
846 {
847 struct Expression * cond;
848 struct __ecereNameSpace__ecere__sys__OldList * exp;
849 struct Expression * elseExp;
850 } ecere_gcc_struct cond;
851 struct
852 {
853 struct TypeName * typeName;
854 struct Expression * size;
855 } ecere_gcc_struct _new;
856 struct
857 {
858 struct TypeName * typeName;
859 struct Expression * size;
860 struct Expression * exp;
861 } ecere_gcc_struct _renew;
862 struct
863 {
864 char * table;
865 struct Identifier * id;
866 } ecere_gcc_struct db;
867 struct
868 {
869 struct Expression * ds;
870 struct Expression * name;
871 } ecere_gcc_struct dbopen;
872 struct
873 {
874 struct TypeName * typeName;
875 struct Initializer * initializer;
876 } ecere_gcc_struct initializer;
877 struct
878 {
879 struct Expression * exp;
880 struct TypeName * typeName;
881 } ecere_gcc_struct vaArg;
882 struct
883 {
884 struct TypeName * typeName;
885 struct Identifier * id;
886 } ecere_gcc_struct offset;
887 } ecere_gcc_struct __anon1;
888 unsigned int debugValue;
889 struct __ecereNameSpace__ecere__com__DataValue val;
890 uint64 address;
891 unsigned int hasAddress;
892 struct Type * expType;
893 struct Type * destType;
894 unsigned int usage;
895 int tempCount;
896 unsigned int byReference;
897 unsigned int isConstant;
898 unsigned int addedThis;
899 unsigned int needCast;
900 unsigned int thisPtr;
901 unsigned int opDestType;
902 unsigned int needTemplateCast;
903 } ecere_gcc_struct;
904
905 extern struct PropertyDef * MkProperty(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Identifier * id, struct Statement * setStmt, struct Statement * getStmt);
906
907 extern struct PropertyWatch * MkPropertyWatch(struct __ecereNameSpace__ecere__sys__OldList * properties, struct Statement * compound);
908
909 extern struct PropertyWatch * MkDeleteWatch(struct Statement * compound);
910
911 extern struct Statement * MkWatchStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
912
913 extern struct Statement * MkStopWatchingStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
914
915 extern struct Statement * MkFireWatchersStmt(struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
916
917 extern struct Expression * MkExpExtensionCompound(struct Statement * compound);
918
919 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
920
921 extern struct Statement * MkAsmStmt(struct Specifier * spec, char *  statements, struct __ecereNameSpace__ecere__sys__OldList * inputFields, struct __ecereNameSpace__ecere__sys__OldList * outputFields, struct __ecereNameSpace__ecere__sys__OldList * clobberedFields);
922
923 extern struct Statement * MkLabeledStmt(struct Identifier * id, struct Statement * statement);
924
925 extern struct Statement * MkCaseStmt(struct Expression * exp, struct Statement * statement);
926
927 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
928
929 extern struct Statement * MkIfStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement, struct Statement * elseStmt);
930
931 extern struct Statement * MkSwitchStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement);
932
933 extern struct Statement * MkWhileStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement);
934
935 extern struct Statement * MkDoWhileStmt(struct Statement * statement, struct __ecereNameSpace__ecere__sys__OldList * exp);
936
937 extern struct Statement * MkForStmt(struct Statement * init, struct Statement * check, struct __ecereNameSpace__ecere__sys__OldList * inc, struct Statement * statement);
938
939 extern struct Statement * MkForEachStmt(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * exp, struct __ecereNameSpace__ecere__sys__OldList * filter, struct Statement * statement);
940
941 extern struct Statement * MkGotoStmt(struct Identifier * id);
942
943 extern struct Statement * MkContinueStmt(void);
944
945 extern struct Statement * MkBreakStmt(void);
946
947 extern struct Statement * MkReturnStmt(struct __ecereNameSpace__ecere__sys__OldList * exp);
948
949 struct Declaration;
950
951 extern void FreeDeclaration(struct Declaration * decl);
952
953 struct Statement
954 {
955 struct Statement * prev;
956 struct Statement * next;
957 struct Location loc;
958 int type;
959 union
960 {
961 struct __ecereNameSpace__ecere__sys__OldList *  expressions;
962 struct
963 {
964 struct Identifier * id;
965 struct Statement * stmt;
966 } ecere_gcc_struct labeled;
967 struct
968 {
969 struct Expression * exp;
970 struct Statement * stmt;
971 } ecere_gcc_struct caseStmt;
972 struct
973 {
974 struct __ecereNameSpace__ecere__sys__OldList * declarations;
975 struct __ecereNameSpace__ecere__sys__OldList * statements;
976 struct Context * context;
977 unsigned int isSwitch;
978 } ecere_gcc_struct compound;
979 struct
980 {
981 struct __ecereNameSpace__ecere__sys__OldList * exp;
982 struct Statement * stmt;
983 struct Statement * elseStmt;
984 } ecere_gcc_struct ifStmt;
985 struct
986 {
987 struct __ecereNameSpace__ecere__sys__OldList * exp;
988 struct Statement * stmt;
989 } ecere_gcc_struct switchStmt;
990 struct
991 {
992 struct __ecereNameSpace__ecere__sys__OldList * exp;
993 struct Statement * stmt;
994 } ecere_gcc_struct whileStmt;
995 struct
996 {
997 struct __ecereNameSpace__ecere__sys__OldList * exp;
998 struct Statement * stmt;
999 } ecere_gcc_struct doWhile;
1000 struct
1001 {
1002 struct Statement * init;
1003 struct Statement * check;
1004 struct __ecereNameSpace__ecere__sys__OldList * increment;
1005 struct Statement * stmt;
1006 } ecere_gcc_struct forStmt;
1007 struct
1008 {
1009 struct Identifier * id;
1010 } ecere_gcc_struct gotoStmt;
1011 struct
1012 {
1013 struct Specifier * spec;
1014 char * statements;
1015 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
1016 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
1017 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
1018 } ecere_gcc_struct asmStmt;
1019 struct
1020 {
1021 struct Expression * watcher;
1022 struct Expression * object;
1023 struct __ecereNameSpace__ecere__sys__OldList * watches;
1024 } ecere_gcc_struct _watch;
1025 struct
1026 {
1027 struct Identifier * id;
1028 struct __ecereNameSpace__ecere__sys__OldList * exp;
1029 struct __ecereNameSpace__ecere__sys__OldList * filter;
1030 struct Statement * stmt;
1031 } ecere_gcc_struct forEachStmt;
1032 struct Declaration * decl;
1033 } ecere_gcc_struct __anon1;
1034 } ecere_gcc_struct;
1035
1036 struct ClassDef
1037 {
1038 struct ClassDef * prev;
1039 struct ClassDef * next;
1040 struct Location loc;
1041 int type;
1042 union
1043 {
1044 struct Declaration * decl;
1045 struct ClassFunction * function;
1046 struct __ecereNameSpace__ecere__sys__OldList *  defProperties;
1047 struct PropertyDef * propertyDef;
1048 struct PropertyWatch * propertyWatch;
1049 char *  designer;
1050 struct Identifier * defaultProperty;
1051 struct
1052 {
1053 struct Identifier * id;
1054 struct Initializer * initializer;
1055 } ecere_gcc_struct __anon1;
1056 } ecere_gcc_struct __anon1;
1057 int memberAccess;
1058 void *  object;
1059 } ecere_gcc_struct;
1060
1061 extern struct ClassDef * MkClassDefDeclaration(struct Declaration * decl);
1062
1063 extern struct Declaration * MkStructDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * declarators, struct Specifier * extStorage);
1064
1065 extern struct Declaration * MkDeclarationClassInst(struct Instantiation * inst);
1066
1067 extern struct ClassDef * MkClassDefClassData(struct Declaration * decl);
1068
1069 extern struct Statement * MkBadDeclStmt(struct Declaration * decl);
1070
1071 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
1072
1073 extern struct Declaration * MkDeclarationInst(struct Instantiation * inst);
1074
1075 extern struct Declaration * MkDeclarationDefine(struct Identifier * id, struct Expression * exp);
1076
1077 struct FunctionDefinition;
1078
1079 extern void FreeFunction(struct FunctionDefinition * func);
1080
1081 extern struct FunctionDefinition * MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList);
1082
1083 extern void ProcessFunctionBody(struct FunctionDefinition * func, struct Statement * body);
1084
1085 struct External;
1086
1087 extern void FreeExternal(struct External * external);
1088
1089 extern struct External * MkExternalFunction(struct FunctionDefinition * function);
1090
1091 extern struct External * MkExternalClass(struct ClassDefinition * _class);
1092
1093 extern struct External * MkExternalDeclaration(struct Declaration * declaration);
1094
1095 extern struct External * MkExternalImport(char *  name, int importType, int importAccess);
1096
1097 extern struct External * MkExternalNameSpace(struct Identifier * identifier);
1098
1099 struct Symbol;
1100
1101 extern struct Symbol * _DeclClass(struct Specifier * _class, const char *  name);
1102
1103 struct Identifier
1104 {
1105 struct Identifier * prev;
1106 struct Identifier * next;
1107 struct Location loc;
1108 struct Symbol * classSym;
1109 struct Specifier * _class;
1110 char *  string;
1111 struct Identifier * badID;
1112 } ecere_gcc_struct;
1113
1114 struct Specifier
1115 {
1116 struct Specifier * prev;
1117 struct Specifier * next;
1118 struct Location loc;
1119 int type;
1120 union
1121 {
1122 int specifier;
1123 struct
1124 {
1125 struct ExtDecl * extDecl;
1126 char *  name;
1127 struct Symbol * symbol;
1128 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
1129 struct Specifier * nsSpec;
1130 } ecere_gcc_struct __anon1;
1131 struct
1132 {
1133 struct Identifier * id;
1134 struct __ecereNameSpace__ecere__sys__OldList *  list;
1135 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
1136 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1137 unsigned int addNameSpace;
1138 struct Context * ctx;
1139 struct ExtDecl * extDeclStruct;
1140 } ecere_gcc_struct __anon2;
1141 struct Expression * expression;
1142 struct Specifier * _class;
1143 struct TemplateParameter * templateParameter;
1144 } ecere_gcc_struct __anon1;
1145 } ecere_gcc_struct;
1146
1147 struct ClassFunction
1148 {
1149 struct ClassFunction * prev;
1150 struct ClassFunction * next;
1151 struct Location loc;
1152 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1153 struct Declarator * declarator;
1154 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1155 struct Statement * body;
1156 struct __ecereNameSpace__ecere__com__Class * _class;
1157 struct __ecereNameSpace__ecere__sys__OldList attached;
1158 int declMode;
1159 struct Type * type;
1160 struct Symbol * propSet;
1161 unsigned int isVirtual;
1162 unsigned int isConstructor;
1163 unsigned int isDestructor;
1164 unsigned int dontMangle;
1165 int id;
1166 int idCode;
1167 } ecere_gcc_struct;
1168
1169 struct Declarator
1170 {
1171 struct Declarator * prev;
1172 struct Declarator * next;
1173 struct Location loc;
1174 int type;
1175 struct Symbol * symbol;
1176 struct Declarator * declarator;
1177 union
1178 {
1179 struct Identifier * identifier;
1180 struct
1181 {
1182 struct Expression * exp;
1183 struct Expression * posExp;
1184 struct Attrib * attrib;
1185 } ecere_gcc_struct structDecl;
1186 struct
1187 {
1188 struct Expression * exp;
1189 struct Specifier * enumClass;
1190 } ecere_gcc_struct array;
1191 struct
1192 {
1193 struct __ecereNameSpace__ecere__sys__OldList * parameters;
1194 } ecere_gcc_struct function;
1195 struct
1196 {
1197 struct Pointer * pointer;
1198 } ecere_gcc_struct pointer;
1199 struct
1200 {
1201 struct ExtDecl * extended;
1202 } ecere_gcc_struct extended;
1203 } ecere_gcc_struct __anon1;
1204 } ecere_gcc_struct;
1205
1206 struct Instantiation
1207 {
1208 struct Instantiation * prev;
1209 struct Instantiation * next;
1210 struct Location loc;
1211 struct Specifier * _class;
1212 struct Expression * exp;
1213 struct __ecereNameSpace__ecere__sys__OldList *  members;
1214 struct Symbol * symbol;
1215 unsigned int fullSet;
1216 unsigned int isConstant;
1217 unsigned char *  data;
1218 struct Location nameLoc;
1219 struct Location insideLoc;
1220 unsigned int built;
1221 } ecere_gcc_struct;
1222
1223 struct PropertyDef
1224 {
1225 struct PropertyDef * prev;
1226 struct PropertyDef * next;
1227 struct Location loc;
1228 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1229 struct Declarator * declarator;
1230 struct Identifier * id;
1231 struct Statement * getStmt;
1232 struct Statement * setStmt;
1233 struct Statement * issetStmt;
1234 struct Symbol * symbol;
1235 struct Expression * category;
1236 struct
1237 {
1238 unsigned int conversion : 1;
1239 unsigned int isWatchable : 1;
1240 unsigned int isDBProp : 1;
1241 } ecere_gcc_struct __anon1;
1242 } ecere_gcc_struct;
1243
1244 struct Declaration
1245 {
1246 struct Declaration * prev;
1247 struct Declaration * next;
1248 struct Location loc;
1249 int type;
1250 union
1251 {
1252 struct
1253 {
1254 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1255 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
1256 } ecere_gcc_struct __anon1;
1257 struct Instantiation * inst;
1258 struct
1259 {
1260 struct Identifier * id;
1261 struct Expression * exp;
1262 } ecere_gcc_struct __anon2;
1263 } ecere_gcc_struct __anon1;
1264 struct Specifier * extStorage;
1265 struct Symbol * symbol;
1266 int declMode;
1267 } ecere_gcc_struct;
1268
1269 extern struct Symbol * DeclClassAddNameSpace(struct Specifier * _class, const char *  className);
1270
1271 extern struct Symbol * DeclClass(struct Specifier * _class, const char *  name);
1272
1273 struct ClassDefinition
1274 {
1275 struct ClassDefinition * prev;
1276 struct ClassDefinition * next;
1277 struct Location loc;
1278 struct Specifier * _class;
1279 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
1280 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1281 struct Symbol * symbol;
1282 struct Location blockStart;
1283 struct Location nameLoc;
1284 int declMode;
1285 unsigned int deleteWatchable;
1286 } ecere_gcc_struct;
1287
1288 extern struct ClassDefinition * MkClass(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs, struct __ecereNameSpace__ecere__sys__OldList * definitions);
1289
1290 extern void SetupBaseSpecs(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs);
1291
1292 struct FunctionDefinition
1293 {
1294 struct FunctionDefinition * prev;
1295 struct FunctionDefinition * next;
1296 struct Location loc;
1297 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1298 struct Declarator * declarator;
1299 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1300 struct Statement * body;
1301 struct __ecereNameSpace__ecere__com__Class * _class;
1302 struct __ecereNameSpace__ecere__sys__OldList attached;
1303 int declMode;
1304 struct Type * type;
1305 struct Symbol * propSet;
1306 int tempCount;
1307 unsigned int propertyNoThis;
1308 } ecere_gcc_struct;
1309
1310 struct DBTableDef
1311 {
1312 char *  name;
1313 struct Symbol * symbol;
1314 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1315 int declMode;
1316 } ecere_gcc_struct;
1317
1318 struct External
1319 {
1320 struct External * prev;
1321 struct External * next;
1322 struct Location loc;
1323 int type;
1324 struct Symbol * symbol;
1325 union
1326 {
1327 struct FunctionDefinition * function;
1328 struct ClassDefinition * _class;
1329 struct Declaration * declaration;
1330 char *  importString;
1331 struct Identifier * id;
1332 struct DBTableDef * table;
1333 } ecere_gcc_struct __anon1;
1334 int importType;
1335 struct External * fwdDecl;
1336 struct __ecereNameSpace__ecere__com__Instance * outgoing;
1337 struct __ecereNameSpace__ecere__com__Instance * incoming;
1338 int nonBreakableIncoming;
1339 } ecere_gcc_struct;
1340
1341 extern struct External * MkExternalDBTable(struct DBTableDef * table);
1342
1343 extern struct DBTableDef * MkDBTableDef(char *  name, struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList *  definitions);
1344
1345 struct __ecereNameSpace__ecere__sys__BinaryTree;
1346
1347 struct __ecereNameSpace__ecere__sys__BinaryTree
1348 {
1349 struct __ecereNameSpace__ecere__sys__BTNode * root;
1350 int count;
1351 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
1352 void (*  FreeKey)(void *  key);
1353 } ecere_gcc_struct;
1354
1355 struct __ecereNameSpace__ecere__com__Method;
1356
1357 struct __ecereNameSpace__ecere__com__Method
1358 {
1359 const char *  name;
1360 struct __ecereNameSpace__ecere__com__Method * parent;
1361 struct __ecereNameSpace__ecere__com__Method * left;
1362 struct __ecereNameSpace__ecere__com__Method * right;
1363 int depth;
1364 int (*  function)();
1365 int vid;
1366 int type;
1367 struct __ecereNameSpace__ecere__com__Class * _class;
1368 void *  symbol;
1369 const char *  dataTypeString;
1370 struct Type * dataType;
1371 int memberAccess;
1372 } ecere_gcc_struct;
1373
1374 struct Symbol
1375 {
1376 char *  string;
1377 struct Symbol * parent;
1378 struct Symbol * left;
1379 struct Symbol * right;
1380 int depth;
1381 struct Type * type;
1382 union
1383 {
1384 struct __ecereNameSpace__ecere__com__Method * method;
1385 struct __ecereNameSpace__ecere__com__Property * _property;
1386 struct __ecereNameSpace__ecere__com__Class * registered;
1387 } ecere_gcc_struct __anon1;
1388 unsigned int notYetDeclared;
1389 union
1390 {
1391 struct
1392 {
1393 struct External * pointerExternal;
1394 struct External * structExternal;
1395 } ecere_gcc_struct __anon1;
1396 struct
1397 {
1398 struct External * externalGet;
1399 struct External * externalSet;
1400 struct External * externalPtr;
1401 struct External * externalIsSet;
1402 } ecere_gcc_struct __anon2;
1403 struct
1404 {
1405 struct External * methodExternal;
1406 struct External * methodCodeExternal;
1407 } ecere_gcc_struct __anon3;
1408 } ecere_gcc_struct __anon2;
1409 unsigned int imported;
1410 unsigned int declaredStructSym;
1411 struct __ecereNameSpace__ecere__com__Class * _class;
1412 unsigned int declaredStruct;
1413 unsigned int needConstructor;
1414 unsigned int needDestructor;
1415 char *  constructorName;
1416 char *  structName;
1417 char *  className;
1418 char *  destructorName;
1419 struct ModuleImport * module;
1420 struct ClassImport * _import;
1421 struct Location nameLoc;
1422 unsigned int isParam;
1423 unsigned int isRemote;
1424 unsigned int isStruct;
1425 unsigned int fireWatchersDone;
1426 int declaring;
1427 unsigned int classData;
1428 unsigned int isStatic;
1429 char *  shortName;
1430 struct __ecereNameSpace__ecere__sys__OldList *  templateParams;
1431 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
1432 struct Context * ctx;
1433 int isIterator;
1434 struct Expression * propCategory;
1435 unsigned int mustRegister;
1436 } ecere_gcc_struct;
1437
1438 struct AsmField;
1439
1440 typedef union YYSTYPE
1441 {
1442 int specifierType;
1443 int i;
1444 int declMode;
1445 struct Identifier * id;
1446 struct Expression * exp;
1447 struct Specifier * specifier;
1448 struct __ecereNameSpace__ecere__sys__OldList * list;
1449 struct Enumerator * enumerator;
1450 struct Declarator * declarator;
1451 struct Pointer * pointer;
1452 struct Initializer * initializer;
1453 struct InitDeclarator * initDeclarator;
1454 struct TypeName * typeName;
1455 struct Declaration * declaration;
1456 struct Statement * stmt;
1457 struct FunctionDefinition * function;
1458 struct External * external;
1459 struct Context * context;
1460 struct AsmField * asmField;
1461 struct Attrib * attrib;
1462 struct ExtDecl * extDecl;
1463 struct Attribute * attribute;
1464 struct Instantiation * instance;
1465 struct MembersInit * membersInit;
1466 struct MemberInit * memberInit;
1467 struct ClassFunction * classFunction;
1468 struct ClassDefinition * _class;
1469 struct ClassDef * classDef;
1470 struct PropertyDef * prop;
1471 char * string;
1472 struct Symbol * symbol;
1473 struct PropertyWatch * propertyWatch;
1474 struct TemplateParameter * templateParameter;
1475 struct TemplateArgument * templateArgument;
1476 struct TemplateDatatype * templateDatatype;
1477 struct DBTableEntry * dbtableEntry;
1478 struct DBIndexItem * dbindexItem;
1479 struct DBTableDef * dbtableDef;
1480 } ecere_gcc_struct YYSTYPE;
1481
1482 extern YYSTYPE yylval;
1483
1484 union yyalloc
1485 {
1486 yytype_int16 yyss_alloc;
1487 YYSTYPE yyvs_alloc;
1488 struct Location yyls_alloc;
1489 } ecere_gcc_struct;
1490
1491 static void yy_symbol_value_print(FILE * yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct Location const * const yylocationp)
1492 {
1493 if(!yyvaluep)
1494 return ;
1495 ((void)(yylocationp));
1496 ((void)(yyoutput));
1497 switch(yytype)
1498 {
1499 default:
1500 break;
1501 }
1502 }
1503
1504 YYSTYPE yylval;
1505
1506 extern struct AsmField * MkAsmField(char *  command, struct Expression * expression, struct Identifier * symbolic);
1507
1508 struct AsmField
1509 {
1510 struct AsmField * prev;
1511 struct AsmField * next;
1512 struct Location loc;
1513 char *  command;
1514 struct Expression * expression;
1515 struct Identifier * symbolic;
1516 } ecere_gcc_struct;
1517
1518 static void yy_symbol_print(FILE * yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct Location const * const yylocationp)
1519 {
1520 if(yytype < 145)
1521 fprintf(yyoutput, "token %s (", yytname[yytype]);
1522 else
1523 fprintf(yyoutput, "nterm %s (", yytname[yytype]);
1524 ((void)0);
1525 fprintf(yyoutput, ": ");
1526 yy_symbol_value_print(yyoutput, yytype, yyvaluep, yylocationp);
1527 fprintf(yyoutput, ")");
1528 }
1529
1530 static void yy_reduce_print(YYSTYPE * yyvsp, struct Location * yylsp, int yyrule)
1531 {
1532 int yynrhs = yyr2[yyrule];
1533 int yyi;
1534 unsigned long int yylno = yyrline[yyrule];
1535
1536 fprintf((bsl_stderr()), "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno);
1537 for(yyi = 0; yyi < yynrhs; yyi++)
1538 {
1539 fprintf((bsl_stderr()), "   $%d = ", yyi + 1);
1540 yy_symbol_print((bsl_stderr()), yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]), &(yylsp[(yyi + 1) - (yynrhs)]));
1541 fprintf((bsl_stderr()), "\n");
1542 }
1543 }
1544
1545 struct __ecereNameSpace__ecere__com__NameSpace;
1546
1547 struct __ecereNameSpace__ecere__com__NameSpace
1548 {
1549 const char *  name;
1550 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
1551 struct __ecereNameSpace__ecere__com__NameSpace *  left;
1552 struct __ecereNameSpace__ecere__com__NameSpace *  right;
1553 int depth;
1554 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
1555 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1556 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1557 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1558 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1559 } ecere_gcc_struct;
1560
1561 struct __ecereNameSpace__ecere__com__Application
1562 {
1563 int argc;
1564 const char * *  argv;
1565 int exitCode;
1566 unsigned int isGUIApp;
1567 struct __ecereNameSpace__ecere__sys__OldList allModules;
1568 char *  parsedCommand;
1569 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1570 } ecere_gcc_struct;
1571
1572 struct __ecereNameSpace__ecere__com__DataMember;
1573
1574 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
1575 {
1576 union
1577 {
1578 struct
1579 {
1580 const char *  dataTypeString;
1581 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1582 } ecere_gcc_struct __anon1;
1583 struct __ecereNameSpace__ecere__com__DataValue expression;
1584 struct
1585 {
1586 const char *  memberString;
1587 union
1588 {
1589 struct __ecereNameSpace__ecere__com__DataMember * member;
1590 struct __ecereNameSpace__ecere__com__Property * prop;
1591 struct __ecereNameSpace__ecere__com__Method * method;
1592 } ecere_gcc_struct __anon1;
1593 } ecere_gcc_struct __anon2;
1594 } ecere_gcc_struct __anon1;
1595 } ecere_gcc_struct;
1596
1597 struct __ecereNameSpace__ecere__com__DataMember
1598 {
1599 struct __ecereNameSpace__ecere__com__DataMember * prev;
1600 struct __ecereNameSpace__ecere__com__DataMember * next;
1601 const char *  name;
1602 unsigned int isProperty;
1603 int memberAccess;
1604 int id;
1605 struct __ecereNameSpace__ecere__com__Class * _class;
1606 const char *  dataTypeString;
1607 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1608 struct Type * dataType;
1609 int type;
1610 int offset;
1611 int memberID;
1612 struct __ecereNameSpace__ecere__sys__OldList members;
1613 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
1614 int memberOffset;
1615 short structAlignment;
1616 short pointerAlignment;
1617 } ecere_gcc_struct;
1618
1619 struct __ecereNameSpace__ecere__com__Module;
1620
1621 struct __ecereNameSpace__ecere__com__Module
1622 {
1623 struct __ecereNameSpace__ecere__com__Instance * application;
1624 struct __ecereNameSpace__ecere__sys__OldList classes;
1625 struct __ecereNameSpace__ecere__sys__OldList defines;
1626 struct __ecereNameSpace__ecere__sys__OldList functions;
1627 struct __ecereNameSpace__ecere__sys__OldList modules;
1628 struct __ecereNameSpace__ecere__com__Instance * prev;
1629 struct __ecereNameSpace__ecere__com__Instance * next;
1630 const char *  name;
1631 void *  library;
1632 void *  Unload;
1633 int importType;
1634 int origImportType;
1635 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1636 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1637 } ecere_gcc_struct;
1638
1639 struct __ecereNameSpace__ecere__com__Class
1640 {
1641 struct __ecereNameSpace__ecere__com__Class * prev;
1642 struct __ecereNameSpace__ecere__com__Class * next;
1643 const char *  name;
1644 int offset;
1645 int structSize;
1646 void * *  _vTbl;
1647 int vTblSize;
1648 unsigned int (*  Constructor)(void * );
1649 void (*  Destructor)(void * );
1650 int offsetClass;
1651 int sizeClass;
1652 struct __ecereNameSpace__ecere__com__Class * base;
1653 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
1654 struct __ecereNameSpace__ecere__sys__BinaryTree members;
1655 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
1656 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
1657 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1658 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1659 int memberID;
1660 int startMemberID;
1661 int type;
1662 struct __ecereNameSpace__ecere__com__Instance * module;
1663 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
1664 const char *  dataTypeString;
1665 struct Type * dataType;
1666 int typeSize;
1667 int defaultAlignment;
1668 void (*  Initialize)();
1669 int memberOffset;
1670 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1671 const char *  designerClass;
1672 unsigned int noExpansion;
1673 const char *  defaultProperty;
1674 unsigned int comRedefinition;
1675 int count;
1676 int isRemote;
1677 unsigned int internalDecl;
1678 void *  data;
1679 unsigned int computeSize;
1680 short structAlignment;
1681 short pointerAlignment;
1682 int destructionWatchOffset;
1683 unsigned int fixed;
1684 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1685 int inheritanceAccess;
1686 const char *  fullName;
1687 void *  symbol;
1688 struct __ecereNameSpace__ecere__sys__OldList conversions;
1689 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1690 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
1691 struct __ecereNameSpace__ecere__com__Class * templateClass;
1692 struct __ecereNameSpace__ecere__sys__OldList templatized;
1693 int numParams;
1694 unsigned int isInstanceClass;
1695 unsigned int byValueSystemClass;
1696 } ecere_gcc_struct;
1697
1698 void __ecereRegisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module)
1699 {
1700 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
1701
1702 }
1703
1704 void __ecereUnregisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module)
1705 {
1706
1707 }
1708
1709 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
1710
1711 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1712
1713 static void yydestruct(const char * yymsg, int yytype, YYSTYPE * yyvaluep, struct Location * yylocationp)
1714 {
1715 ((void)(yyvaluep));
1716 ((void)(yylocationp));
1717 if(!yymsg)
1718 yymsg = "Deleting";
1719 do
1720 {
1721 if(yydebug)
1722 {
1723 fprintf((bsl_stderr()), "%s ", yymsg);
1724 yy_symbol_print((bsl_stderr()), yytype, yyvaluep, yylocationp);
1725 fprintf((bsl_stderr()), "\n");
1726 }
1727 }while((0));
1728 switch(yytype)
1729 {
1730 case 146:
1731 {
1732 FreeSpecifier((*yyvaluep).specifier);
1733 }
1734 ;
1735 break;
1736 case 147:
1737 {
1738 FreeSpecifier((*yyvaluep).specifier);
1739 }
1740 ;
1741 break;
1742 case 148:
1743 {
1744 FreeSpecifier((*yyvaluep).specifier);
1745 }
1746 ;
1747 break;
1748 case 149:
1749 {
1750 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
1751 }
1752 ;
1753 break;
1754 case 150:
1755 {
1756 FreeSpecifier((*yyvaluep).specifier);
1757 }
1758 ;
1759 break;
1760 case 151:
1761 {
1762 FreeClassFunction((*yyvaluep).classFunction);
1763 }
1764 ;
1765 break;
1766 case 152:
1767 {
1768 FreeClassFunction((*yyvaluep).classFunction);
1769 }
1770 ;
1771 break;
1772 case 153:
1773 {
1774 FreeClassFunction((*yyvaluep).classFunction);
1775 }
1776 ;
1777 break;
1778 case 154:
1779 {
1780 FreeClassFunction((*yyvaluep).classFunction);
1781 }
1782 ;
1783 break;
1784 case 155:
1785 {
1786 FreeClassFunction((*yyvaluep).classFunction);
1787 }
1788 ;
1789 break;
1790 case 156:
1791 {
1792 FreeClassFunction((*yyvaluep).classFunction);
1793 }
1794 ;
1795 break;
1796 case 157:
1797 {
1798 FreeClassFunction((*yyvaluep).classFunction);
1799 }
1800 ;
1801 break;
1802 case 158:
1803 {
1804 FreeClassFunction((*yyvaluep).classFunction);
1805 }
1806 ;
1807 break;
1808 case 159:
1809 {
1810 FreeClassFunction((*yyvaluep).classFunction);
1811 }
1812 ;
1813 break;
1814 case 160:
1815 {
1816 FreeClassFunction((*yyvaluep).classFunction);
1817 }
1818 ;
1819 break;
1820 case 161:
1821 {
1822 FreeClassFunction((*yyvaluep).classFunction);
1823 }
1824 ;
1825 break;
1826 case 162:
1827 {
1828 FreeClassFunction((*yyvaluep).classFunction);
1829 }
1830 ;
1831 break;
1832 case 163:
1833 {
1834 FreeMemberInit((*yyvaluep).memberInit);
1835 }
1836 ;
1837 break;
1838 case 164:
1839 {
1840 FreeMemberInit((*yyvaluep).memberInit);
1841 }
1842 ;
1843 break;
1844 case 165:
1845 {
1846 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1847 }
1848 ;
1849 break;
1850 case 166:
1851 {
1852 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1853 }
1854 ;
1855 break;
1856 case 167:
1857 {
1858 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1859 }
1860 ;
1861 break;
1862 case 168:
1863 {
1864 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1865 }
1866 ;
1867 break;
1868 case 169:
1869 {
1870 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1871 }
1872 ;
1873 break;
1874 case 170:
1875 {
1876 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1877 }
1878 ;
1879 break;
1880 case 171:
1881 {
1882 FreeInstance((*yyvaluep).instance);
1883 }
1884 ;
1885 break;
1886 case 172:
1887 {
1888 FreeInstance((*yyvaluep).instance);
1889 }
1890 ;
1891 break;
1892 case 176:
1893 {
1894 FreeInstance((*yyvaluep).instance);
1895 }
1896 ;
1897 break;
1898 case 177:
1899 {
1900 FreeInstance((*yyvaluep).instance);
1901 }
1902 ;
1903 break;
1904 case 180:
1905 {
1906 FreeMemberInit((*yyvaluep).memberInit);
1907 }
1908 ;
1909 break;
1910 case 181:
1911 {
1912 FreeMemberInit((*yyvaluep).memberInit);
1913 }
1914 ;
1915 break;
1916 case 182:
1917 {
1918 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1919 }
1920 ;
1921 break;
1922 case 183:
1923 {
1924 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1925 }
1926 ;
1927 break;
1928 case 186:
1929 {
1930 FreeProperty((*yyvaluep).prop);
1931 }
1932 ;
1933 break;
1934 case 197:
1935 {
1936 FreeClassDef((*yyvaluep).classDef);
1937 }
1938 ;
1939 break;
1940 case 198:
1941 {
1942 FreeClassDef((*yyvaluep).classDef);
1943 }
1944 ;
1945 break;
1946 case 199:
1947 {
1948 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1949 }
1950 ;
1951 break;
1952 case 200:
1953 {
1954 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1955 }
1956 ;
1957 break;
1958 case 201:
1959 {
1960 FreeTemplateDataType((*yyvaluep).templateDatatype);
1961 }
1962 ;
1963 break;
1964 case 202:
1965 {
1966 FreeTemplateArgument((*yyvaluep).templateArgument);
1967 }
1968 ;
1969 break;
1970 case 203:
1971 {
1972 FreeTemplateParameter((*yyvaluep).templateParameter);
1973 }
1974 ;
1975 break;
1976 case 204:
1977 {
1978 FreeTemplateArgument((*yyvaluep).templateArgument);
1979 }
1980 ;
1981 break;
1982 case 205:
1983 {
1984 FreeTemplateParameter((*yyvaluep).templateParameter);
1985 }
1986 ;
1987 break;
1988 case 206:
1989 {
1990 FreeTemplateArgument((*yyvaluep).templateArgument);
1991 }
1992 ;
1993 break;
1994 case 207:
1995 {
1996 FreeTemplateParameter((*yyvaluep).templateParameter);
1997 }
1998 ;
1999 break;
2000 case 208:
2001 {
2002 FreeTemplateParameter((*yyvaluep).templateParameter);
2003 }
2004 ;
2005 break;
2006 case 209:
2007 {
2008 FreeList((*yyvaluep).list, (void *)(FreeTemplateParameter));
2009 }
2010 ;
2011 break;
2012 case 210:
2013 {
2014 FreeTemplateArgument((*yyvaluep).templateArgument);
2015 }
2016 ;
2017 break;
2018 case 211:
2019 {
2020 FreeList((*yyvaluep).list, (void *)(FreeTemplateArgument));
2021 }
2022 ;
2023 break;
2024 case 212:
2025 {
2026 struct Context * ctx = curContext;
2027
2028 PopContext(ctx);
2029 FreeContext(ctx);
2030 ((ctx ? __extension__ ({
2031 void * __ecerePtrToDelete = (ctx);
2032
2033 __ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2034 }) : 0), ctx = 0);
2035 }
2036 ;
2037 break;
2038 case 213:
2039 {
2040 struct Context * ctx = curContext;
2041
2042 PopContext(ctx);
2043 FreeContext(ctx);
2044 ((ctx ? __extension__ ({
2045 void * __ecerePtrToDelete = (ctx);
2046
2047 __ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2048 }) : 0), ctx = 0);
2049 }
2050 ;
2051 break;
2052 case 214:
2053 {
2054 FreeClass((*yyvaluep)._class);
2055 }
2056 ;
2057 break;
2058 case 215:
2059 {
2060 FreeClass((*yyvaluep)._class);
2061 }
2062 ;
2063 break;
2064 case 216:
2065 {
2066 FreeClass((*yyvaluep)._class);
2067 }
2068 ;
2069 break;
2070 case 217:
2071 {
2072 FreeIdentifier((*yyvaluep).id);
2073 }
2074 ;
2075 break;
2076 case 218:
2077 {
2078 FreeExpression((*yyvaluep).exp);
2079 }
2080 ;
2081 break;
2082 case 219:
2083 {
2084 FreeExpression((*yyvaluep).exp);
2085 }
2086 ;
2087 break;
2088 case 224:
2089 {
2090 FreeExpression((*yyvaluep).exp);
2091 }
2092 ;
2093 break;
2094 case 225:
2095 {
2096 FreeExpression((*yyvaluep).exp);
2097 }
2098 ;
2099 break;
2100 case 226:
2101 {
2102 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2103 }
2104 ;
2105 break;
2106 case 227:
2107 {
2108 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2109 }
2110 ;
2111 break;
2112 case 229:
2113 {
2114 FreeExpression((*yyvaluep).exp);
2115 }
2116 ;
2117 break;
2118 case 231:
2119 {
2120 FreeExpression((*yyvaluep).exp);
2121 }
2122 ;
2123 break;
2124 case 232:
2125 {
2126 FreeExpression((*yyvaluep).exp);
2127 }
2128 ;
2129 break;
2130 case 233:
2131 {
2132 FreeExpression((*yyvaluep).exp);
2133 }
2134 ;
2135 break;
2136 case 234:
2137 {
2138 FreeExpression((*yyvaluep).exp);
2139 }
2140 ;
2141 break;
2142 case 236:
2143 {
2144 FreeExpression((*yyvaluep).exp);
2145 }
2146 ;
2147 break;
2148 case 237:
2149 {
2150 FreeExpression((*yyvaluep).exp);
2151 }
2152 ;
2153 break;
2154 case 238:
2155 {
2156 FreeExpression((*yyvaluep).exp);
2157 }
2158 ;
2159 break;
2160 case 239:
2161 {
2162 FreeExpression((*yyvaluep).exp);
2163 }
2164 ;
2165 break;
2166 case 240:
2167 {
2168 FreeExpression((*yyvaluep).exp);
2169 }
2170 ;
2171 break;
2172 case 241:
2173 {
2174 FreeExpression((*yyvaluep).exp);
2175 }
2176 ;
2177 break;
2178 case 242:
2179 {
2180 FreeExpression((*yyvaluep).exp);
2181 }
2182 ;
2183 break;
2184 case 243:
2185 {
2186 FreeExpression((*yyvaluep).exp);
2187 }
2188 ;
2189 break;
2190 case 244:
2191 {
2192 FreeExpression((*yyvaluep).exp);
2193 }
2194 ;
2195 break;
2196 case 246:
2197 {
2198 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2199 }
2200 ;
2201 break;
2202 case 248:
2203 {
2204 FreeExpression((*yyvaluep).exp);
2205 }
2206 ;
2207 break;
2208 case 250:
2209 {
2210 FreeExpression((*yyvaluep).exp);
2211 }
2212 ;
2213 break;
2214 case 251:
2215 {
2216 FreeExpression((*yyvaluep).exp);
2217 }
2218 ;
2219 break;
2220 case 252:
2221 {
2222 FreeExpression((*yyvaluep).exp);
2223 }
2224 ;
2225 break;
2226 case 253:
2227 {
2228 FreeExpression((*yyvaluep).exp);
2229 }
2230 ;
2231 break;
2232 case 254:
2233 {
2234 FreeExpression((*yyvaluep).exp);
2235 }
2236 ;
2237 break;
2238 case 255:
2239 {
2240 FreeExpression((*yyvaluep).exp);
2241 }
2242 ;
2243 break;
2244 case 256:
2245 {
2246 FreeExpression((*yyvaluep).exp);
2247 }
2248 ;
2249 break;
2250 case 257:
2251 {
2252 FreeExpression((*yyvaluep).exp);
2253 }
2254 ;
2255 break;
2256 case 258:
2257 {
2258 FreeExpression((*yyvaluep).exp);
2259 }
2260 ;
2261 break;
2262 case 259:
2263 {
2264 FreeExpression((*yyvaluep).exp);
2265 }
2266 ;
2267 break;
2268 case 260:
2269 {
2270 FreeExpression((*yyvaluep).exp);
2271 }
2272 ;
2273 break;
2274 case 261:
2275 {
2276 FreeExpression((*yyvaluep).exp);
2277 }
2278 ;
2279 break;
2280 case 262:
2281 {
2282 FreeExpression((*yyvaluep).exp);
2283 }
2284 ;
2285 break;
2286 case 263:
2287 {
2288 FreeExpression((*yyvaluep).exp);
2289 }
2290 ;
2291 break;
2292 case 264:
2293 {
2294 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2295 }
2296 ;
2297 break;
2298 case 266:
2299 {
2300 FreeExpression((*yyvaluep).exp);
2301 }
2302 ;
2303 break;
2304 case 267:
2305 {
2306 FreeExpression((*yyvaluep).exp);
2307 }
2308 ;
2309 break;
2310 case 268:
2311 {
2312 FreeSpecifier((*yyvaluep).specifier);
2313 }
2314 ;
2315 break;
2316 case 269:
2317 {
2318 FreeSpecifier((*yyvaluep).specifier);
2319 }
2320 ;
2321 break;
2322 case 270:
2323 {
2324 FreeEnumerator((*yyvaluep).enumerator);
2325 }
2326 ;
2327 break;
2328 case 271:
2329 {
2330 FreeList((*yyvaluep).list, (void *)(FreeEnumerator));
2331 }
2332 ;
2333 break;
2334 case 273:
2335 {
2336 FreeSpecifier((*yyvaluep).specifier);
2337 }
2338 ;
2339 break;
2340 case 274:
2341 {
2342 FreeSpecifier((*yyvaluep).specifier);
2343 }
2344 ;
2345 break;
2346 case 275:
2347 {
2348 FreeSpecifier((*yyvaluep).specifier);
2349 }
2350 ;
2351 break;
2352 case 277:
2353 {
2354 FreeSpecifier((*yyvaluep).specifier);
2355 }
2356 ;
2357 break;
2358 case 278:
2359 {
2360 FreeSpecifier((*yyvaluep).specifier);
2361 }
2362 ;
2363 break;
2364 case 279:
2365 {
2366 FreeSpecifier((*yyvaluep).specifier);
2367 }
2368 ;
2369 break;
2370 case 280:
2371 {
2372 FreeSpecifier((*yyvaluep).specifier);
2373 }
2374 ;
2375 break;
2376 case 281:
2377 {
2378 FreeSpecifier((*yyvaluep).specifier);
2379 }
2380 ;
2381 break;
2382 case 282:
2383 {
2384 FreeSpecifier((*yyvaluep).specifier);
2385 }
2386 ;
2387 break;
2388 case 283:
2389 {
2390 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2391 }
2392 ;
2393 break;
2394 case 284:
2395 {
2396 FreeSpecifier((*yyvaluep).specifier);
2397 }
2398 ;
2399 break;
2400 case 285:
2401 {
2402 FreeSpecifier((*yyvaluep).specifier);
2403 }
2404 ;
2405 break;
2406 case 286:
2407 {
2408 FreeDeclarator((*yyvaluep).declarator);
2409 }
2410 ;
2411 break;
2412 case 287:
2413 {
2414 FreeList((*yyvaluep).list, (void *)(FreeDeclarator));
2415 }
2416 ;
2417 break;
2418 case 288:
2419 {
2420 FreeSpecifier((*yyvaluep).specifier);
2421 }
2422 ;
2423 break;
2424 case 289:
2425 {
2426 FreeSpecifier((*yyvaluep).specifier);
2427 }
2428 ;
2429 break;
2430 case 290:
2431 {
2432 FreeSpecifier((*yyvaluep).specifier);
2433 }
2434 ;
2435 break;
2436 case 291:
2437 {
2438 FreeSpecifier((*yyvaluep).specifier);
2439 }
2440 ;
2441 break;
2442 case 292:
2443 {
2444 FreeSpecifier((*yyvaluep).specifier);
2445 }
2446 ;
2447 break;
2448 case 293:
2449 {
2450 FreeSpecifier((*yyvaluep).specifier);
2451 }
2452 ;
2453 break;
2454 case 294:
2455 {
2456 FreeSpecifier((*yyvaluep).specifier);
2457 }
2458 ;
2459 break;
2460 case 295:
2461 {
2462 FreeSpecifier((*yyvaluep).specifier);
2463 }
2464 ;
2465 break;
2466 case 297:
2467 {
2468 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2469 }
2470 ;
2471 break;
2472 case 298:
2473 {
2474 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2475 }
2476 ;
2477 break;
2478 case 299:
2479 {
2480 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2481 }
2482 ;
2483 break;
2484 case 300:
2485 {
2486 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2487 }
2488 ;
2489 break;
2490 case 301:
2491 {
2492 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2493 }
2494 ;
2495 break;
2496 case 302:
2497 {
2498 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2499 }
2500 ;
2501 break;
2502 case 303:
2503 {
2504 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2505 }
2506 ;
2507 break;
2508 case 304:
2509 {
2510 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2511 }
2512 ;
2513 break;
2514 case 308:
2515 {
2516 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2517 }
2518 ;
2519 break;
2520 case 309:
2521 {
2522 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2523 }
2524 ;
2525 break;
2526 case 310:
2527 {
2528 FreeDeclarator((*yyvaluep).declarator);
2529 }
2530 ;
2531 break;
2532 case 311:
2533 {
2534 FreeDeclarator((*yyvaluep).declarator);
2535 }
2536 ;
2537 break;
2538 case 312:
2539 {
2540 FreeDeclarator((*yyvaluep).declarator);
2541 }
2542 ;
2543 break;
2544 case 313:
2545 {
2546 FreeDeclarator((*yyvaluep).declarator);
2547 }
2548 ;
2549 break;
2550 case 314:
2551 {
2552 FreeDeclarator((*yyvaluep).declarator);
2553 }
2554 ;
2555 break;
2556 case 315:
2557 {
2558 FreeDeclarator((*yyvaluep).declarator);
2559 }
2560 ;
2561 break;
2562 case 316:
2563 {
2564 FreeDeclarator((*yyvaluep).declarator);
2565 }
2566 ;
2567 break;
2568 case 317:
2569 {
2570 FreeDeclarator((*yyvaluep).declarator);
2571 }
2572 ;
2573 break;
2574 case 318:
2575 {
2576 FreeDeclarator((*yyvaluep).declarator);
2577 }
2578 ;
2579 break;
2580 case 319:
2581 {
2582 FreeDeclarator((*yyvaluep).declarator);
2583 }
2584 ;
2585 break;
2586 case 320:
2587 {
2588 FreeExtDecl((*yyvaluep).extDecl);
2589 }
2590 ;
2591 break;
2592 case 322:
2593 {
2594 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2595 }
2596 ;
2597 break;
2598 case 323:
2599 {
2600 FreeAttribute((*yyvaluep).attribute);
2601 }
2602 ;
2603 break;
2604 case 324:
2605 {
2606 FreeList((*yyvaluep).list, (void *)(FreeAttribute));
2607 }
2608 ;
2609 break;
2610 case 325:
2611 {
2612 FreeAttrib((*yyvaluep).attrib);
2613 }
2614 ;
2615 break;
2616 case 326:
2617 {
2618 FreeDeclarator((*yyvaluep).declarator);
2619 }
2620 ;
2621 break;
2622 case 327:
2623 {
2624 FreeDeclarator((*yyvaluep).declarator);
2625 }
2626 ;
2627 break;
2628 case 328:
2629 {
2630 FreePointer((*yyvaluep).pointer);
2631 }
2632 ;
2633 break;
2634 case 329:
2635 {
2636 FreeDeclarator((*yyvaluep).declarator);
2637 }
2638 ;
2639 break;
2640 case 330:
2641 {
2642 FreeDeclarator((*yyvaluep).declarator);
2643 }
2644 ;
2645 break;
2646 case 331:
2647 {
2648 FreeDeclarator((*yyvaluep).declarator);
2649 }
2650 ;
2651 break;
2652 case 332:
2653 {
2654 FreeDeclarator((*yyvaluep).declarator);
2655 }
2656 ;
2657 break;
2658 case 333:
2659 {
2660 FreeDeclarator((*yyvaluep).declarator);
2661 }
2662 ;
2663 break;
2664 case 334:
2665 {
2666 FreeDeclarator((*yyvaluep).declarator);
2667 }
2668 ;
2669 break;
2670 case 335:
2671 {
2672 FreeDeclarator((*yyvaluep).declarator);
2673 }
2674 ;
2675 break;
2676 case 336:
2677 {
2678 FreeDeclarator((*yyvaluep).declarator);
2679 }
2680 ;
2681 break;
2682 case 337:
2683 {
2684 FreeDeclarator((*yyvaluep).declarator);
2685 }
2686 ;
2687 break;
2688 case 338:
2689 {
2690 FreeInitializer((*yyvaluep).initializer);
2691 }
2692 ;
2693 break;
2694 case 339:
2695 {
2696 FreeInitializer((*yyvaluep).initializer);
2697 }
2698 ;
2699 break;
2700 case 340:
2701 {
2702 FreeInitializer((*yyvaluep).initializer);
2703 }
2704 ;
2705 break;
2706 case 341:
2707 {
2708 FreeInitializer((*yyvaluep).initializer);
2709 }
2710 ;
2711 break;
2712 case 342:
2713 {
2714 FreeList((*yyvaluep).list, (void *)(FreeInitializer));
2715 }
2716 ;
2717 break;
2718 case 343:
2719 {
2720 FreeInitDeclarator((*yyvaluep).initDeclarator);
2721 }
2722 ;
2723 break;
2724 case 344:
2725 {
2726 FreeInitDeclarator((*yyvaluep).initDeclarator);
2727 }
2728 ;
2729 break;
2730 case 345:
2731 {
2732 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2733 }
2734 ;
2735 break;
2736 case 346:
2737 {
2738 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2739 }
2740 ;
2741 break;
2742 case 347:
2743 {
2744 FreeTypeName((*yyvaluep).typeName);
2745 }
2746 ;
2747 break;
2748 case 348:
2749 {
2750 FreeTypeName((*yyvaluep).typeName);
2751 }
2752 ;
2753 break;
2754 case 349:
2755 {
2756 FreeTypeName((*yyvaluep).typeName);
2757 }
2758 ;
2759 break;
2760 case 350:
2761 {
2762 FreeTypeName((*yyvaluep).typeName);
2763 }
2764 ;
2765 break;
2766 case 351:
2767 {
2768 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2769 }
2770 ;
2771 break;
2772 case 352:
2773 {
2774 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2775 }
2776 ;
2777 break;
2778 case 353:
2779 {
2780 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2781 }
2782 ;
2783 break;
2784 case 354:
2785 {
2786 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2787 }
2788 ;
2789 break;
2790 case 355:
2791 {
2792 FreeStatement((*yyvaluep).stmt);
2793 }
2794 ;
2795 break;
2796 case 356:
2797 {
2798 FreeStatement((*yyvaluep).stmt);
2799 }
2800 ;
2801 break;
2802 case 360:
2803 {
2804 FreeStatement((*yyvaluep).stmt);
2805 }
2806 ;
2807 break;
2808 case 361:
2809 {
2810 FreeStatement((*yyvaluep).stmt);
2811 }
2812 ;
2813 break;
2814 case 362:
2815 {
2816 }
2817 ;
2818 break;
2819 case 364:
2820 {
2821 FreeDeclaration((*yyvaluep).declaration);
2822 }
2823 ;
2824 break;
2825 case 368:
2826 {
2827 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2828 }
2829 ;
2830 break;
2831 case 369:
2832 {
2833 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2834 }
2835 ;
2836 break;
2837 case 370:
2838 {
2839 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2840 }
2841 ;
2842 break;
2843 case 371:
2844 {
2845 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2846 }
2847 ;
2848 break;
2849 case 372:
2850 {
2851 FreeStatement((*yyvaluep).stmt);
2852 }
2853 ;
2854 break;
2855 case 373:
2856 {
2857 FreeStatement((*yyvaluep).stmt);
2858 }
2859 ;
2860 break;
2861 case 374:
2862 {
2863 PopContext((*yyvaluep).context);
2864 FreeContext((*yyvaluep).context);
2865 (((*yyvaluep).context ? __extension__ ({
2866 void * __ecerePtrToDelete = ((*yyvaluep).context);
2867
2868 __ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2869 }) : 0), (*yyvaluep).context = 0);
2870 }
2871 ;
2872 break;
2873 case 375:
2874 {
2875 FreeStatement((*yyvaluep).stmt);
2876 }
2877 ;
2878 break;
2879 case 376:
2880 {
2881 FreeStatement((*yyvaluep).stmt);
2882 }
2883 ;
2884 break;
2885 case 377:
2886 {
2887 FreeStatement((*yyvaluep).stmt);
2888 }
2889 ;
2890 break;
2891 case 378:
2892 {
2893 FreeStatement((*yyvaluep).stmt);
2894 }
2895 ;
2896 break;
2897 case 379:
2898 {
2899 FreeStatement((*yyvaluep).stmt);
2900 }
2901 ;
2902 break;
2903 case 380:
2904 {
2905 FreeStatement((*yyvaluep).stmt);
2906 }
2907 ;
2908 break;
2909 case 381:
2910 {
2911 FreeStatement((*yyvaluep).stmt);
2912 }
2913 ;
2914 break;
2915 case 382:
2916 {
2917 FreeStatement((*yyvaluep).stmt);
2918 }
2919 ;
2920 break;
2921 case 383:
2922 {
2923 FreeStatement((*yyvaluep).stmt);
2924 }
2925 ;
2926 break;
2927 case 384:
2928 {
2929 FreeFunction((*yyvaluep).function);
2930 }
2931 ;
2932 break;
2933 case 385:
2934 {
2935 FreeFunction((*yyvaluep).function);
2936 }
2937 ;
2938 break;
2939 case 386:
2940 {
2941 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2942 }
2943 ;
2944 break;
2945 case 387:
2946 {
2947 FreeExternal((*yyvaluep).external);
2948 }
2949 ;
2950 break;
2951 case 388:
2952 {
2953 FreeExternal((*yyvaluep).external);
2954 }
2955 ;
2956 break;
2957 case 389:
2958 {
2959 if((*yyvaluep).list != ast)
2960 FreeList((*yyvaluep).list, (void *)(FreeExternal));
2961 }
2962 ;
2963 break;
2964 case 390:
2965 {
2966 if((*yyvaluep).list != ast)
2967 FreeList((*yyvaluep).list, (void *)(FreeExternal));
2968 }
2969 ;
2970 break;
2971 default:
2972 break;
2973 }
2974 }
2975
2976 int yyparse(void)
2977 {
2978 int yystate;
2979 int yyerrstatus;
2980 yytype_int16 yyssa[200];
2981 yytype_int16 * yyss;
2982 yytype_int16 * yyssp;
2983 YYSTYPE yyvsa[200];
2984 YYSTYPE * yyvs;
2985 YYSTYPE * yyvsp;
2986 struct Location yylsa[200];
2987 struct Location * yyls;
2988 struct Location * yylsp;
2989 struct Location yyerror_range[2];
2990 size_t yystacksize;
2991 int yyn;
2992 int yyresult;
2993 int yytoken;
2994 YYSTYPE yyval;
2995 struct Location yyloc;
2996 int yylen = 0;
2997
2998 yytoken = 0;
2999 yyss = yyssa;
3000 yyvs = yyvsa;
3001 yyls = yylsa;
3002 yystacksize = 200;
3003 do
3004 {
3005 if(yydebug)
3006 fprintf((bsl_stderr()), "Starting parse\n");
3007 }while((0));
3008 yystate = 0;
3009 yyerrstatus = 0;
3010 yynerrs = 0;
3011 yychar = (-2);
3012 yyssp = yyss;
3013 yyvsp = yyvs;
3014 yylsp = yyls;
3015 goto yysetstate;
3016 yynewstate:
3017 yyssp++;
3018 yysetstate:
3019 *yyssp = yystate;
3020 if(yyss + yystacksize - 1 <= yyssp)
3021 {
3022 size_t yysize = yyssp - yyss + 1;
3023
3024 if(10000 <= yystacksize)
3025 goto yyexhaustedlab;
3026 yystacksize *= 2;
3027 if(10000 < yystacksize)
3028 yystacksize = 10000;
3029 {
3030 yytype_int16 * yyss1 = yyss;
3031 union yyalloc * yyptr = (union yyalloc *)malloc(((yystacksize) * (sizeof(yytype_int16) + sizeof(YYSTYPE) + sizeof(struct Location)) + 2 * (sizeof(union yyalloc) - 1)));
3032
3033 if(!yyptr)
3034 goto yyexhaustedlab;
3035 do
3036 {
3037 size_t yynewbytes;
3038
3039 __builtin_memcpy(&(*yyptr).yyss_alloc, yyss, (yysize) * sizeof (*(yyss)));
3040 yyss = &(*yyptr).yyss_alloc;
3041 yynewbytes = yystacksize * sizeof (*yyss) + (sizeof(union yyalloc) - 1);
3042 yyptr += yynewbytes / sizeof (*yyptr);
3043 }while((0));
3044 do
3045 {
3046 size_t yynewbytes;
3047
3048 __builtin_memcpy(&(*yyptr).yyvs_alloc, yyvs, (yysize) * sizeof (*(yyvs)));
3049 yyvs = &(*yyptr).yyvs_alloc;
3050 yynewbytes = yystacksize * sizeof (*yyvs) + (sizeof(union yyalloc) - 1);
3051 yyptr += yynewbytes / sizeof (*yyptr);
3052 }while((0));
3053 do
3054 {
3055 size_t yynewbytes;
3056
3057 __builtin_memcpy(&(*yyptr).yyls_alloc, yyls, (yysize) * sizeof (*(yyls)));
3058 yyls = &(*yyptr).yyls_alloc;
3059 yynewbytes = yystacksize * sizeof (*yyls) + (sizeof(union yyalloc) - 1);
3060 yyptr += yynewbytes / sizeof (*yyptr);
3061 }while((0));
3062 if(yyss1 != yyssa)
3063 free(yyss1);
3064 }
3065 yyssp = yyss + yysize - 1;
3066 yyvsp = yyvs + yysize - 1;
3067 yylsp = yyls + yysize - 1;
3068 do
3069 {
3070 if(yydebug)
3071 fprintf((bsl_stderr()), "Stack size increased to %lu\n", (unsigned long int)yystacksize);
3072 }while((0));
3073 if(yyss + yystacksize - 1 <= yyssp)
3074 goto yyabortlab;
3075 }
3076 do
3077 {
3078 if(yydebug)
3079 fprintf((bsl_stderr()), "Entering state %d\n", yystate);
3080 }while((0));
3081 if(yystate == 295)
3082 goto yyacceptlab;
3083 goto yybackup;
3084 yybackup:
3085 yyn = yypact[yystate];
3086 if(yyn == -1899)
3087 goto yydefault;
3088 if(yychar == (-2))
3089 {
3090 do
3091 {
3092 if(yydebug)
3093 fprintf((bsl_stderr()), "Reading a token: ");
3094 }while((0));
3095 yychar = yylex();
3096 }
3097 if(yychar <= 0)
3098 {
3099 yychar = yytoken = 0;
3100 do
3101 {
3102 if(yydebug)
3103 fprintf((bsl_stderr()), "Now at end of input.\n");
3104 }while((0));
3105 }
3106 else
3107 {
3108 yytoken = ((unsigned int)(yychar) <= 374 ? yytranslate[yychar] : 2);
3109 do
3110 {
3111 if(yydebug)
3112 {
3113 fprintf((bsl_stderr()), "%s ", "Next token is");
3114 yy_symbol_print((bsl_stderr()), yytoken, &yylval, &yylloc);
3115 fprintf((bsl_stderr()), "\n");
3116 }
3117 }while((0));
3118 }
3119 yyn += yytoken;
3120 if(yyn < 0 || 42445 < yyn || yycheck[yyn] != yytoken)
3121 goto yydefault;
3122 yyn = yytable[yyn];
3123 if(yyn <= 0)
3124 {
3125 if(yyn == 0 || yyn == -1290)
3126 goto yyerrlab;
3127 yyn = -yyn;
3128 goto yyreduce;
3129 }
3130 if(yyerrstatus)
3131 yyerrstatus--;
3132 do
3133 {
3134 if(yydebug)
3135 {
3136 fprintf((bsl_stderr()), "%s ", "Shifting");
3137 yy_symbol_print((bsl_stderr()), yytoken, &yylval, &yylloc);
3138 fprintf((bsl_stderr()), "\n");
3139 }
3140 }while((0));
3141 yychar = (-2);
3142 yystate = yyn;
3143 *++yyvsp = yylval;
3144 *++yylsp = yylloc;
3145 goto yynewstate;
3146 yydefault:
3147 yyn = yydefact[yystate];
3148 if(yyn == 0)
3149 goto yyerrlab;
3150 goto yyreduce;
3151 yyreduce:
3152 yylen = yyr2[yyn];
3153 yyval = yyvsp[1 - yylen];
3154 (yyloc.start = ((yylsp - yylen))[1].start);
3155 (yyloc.end = ((yylsp - yylen))[yylen].end);
3156 ;
3157 do
3158 {
3159 if(yydebug)
3160 yy_reduce_print(yyvsp, yylsp, yyn);
3161 }while((0));
3162 switch(yyn)
3163 {
3164 case 2:
3165 {
3166 yyval.specifier = (((void *)0));
3167 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3168 FreeIdentifier(yyvsp[(1) - (2)].id);
3169 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3170 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3171
3172 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3173 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
3174 resetScannerPos(&(yylsp[(1) - (2)]).start);
3175 (yychar = (-2));
3176 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3177 yystate = *yyssp;
3178 do
3179 {
3180 if(yydebug)
3181 yy_stack_print((yyss), (yyssp));
3182 }while((0));
3183 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3184 yystate = *yyssp;
3185 do
3186 {
3187 if(yydebug)
3188 yy_stack_print((yyss), (yyssp));
3189 }while((0));
3190 goto yysetstate;
3191 ;
3192 }
3193 break;
3194 case 3:
3195 {
3196 yyval.specifier = (((void *)0));
3197 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3198 FreeIdentifier(yyvsp[(1) - (2)].id);
3199 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3200 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3201
3202 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3203 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
3204 resetScannerPos(&(yylsp[(1) - (2)]).start);
3205 (yychar = (-2));
3206 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3207 yystate = *yyssp;
3208 do
3209 {
3210 if(yydebug)
3211 yy_stack_print((yyss), (yyssp));
3212 }while((0));
3213 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3214 yystate = *yyssp;
3215 do
3216 {
3217 if(yydebug)
3218 yy_stack_print((yyss), (yyssp));
3219 }while((0));
3220 goto yysetstate;
3221 ;
3222 }
3223 break;
3224 case 4:
3225 {
3226 yyval.specifier = yyvsp[(1) - (1)].specifier;
3227 ;
3228 }
3229 break;
3230 case 5:
3231 {
3232 if(!yyvsp[(1) - (2)].id->string[0])
3233 {
3234 yyval.specifier = MkSpecifierName(yyvsp[(1) - (2)].id->string);
3235 FreeIdentifier(yyvsp[(1) - (2)].id);
3236 FreeIdentifier(yyvsp[(2) - (2)].id);
3237 }
3238 else
3239 {
3240 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3241 FreeIdentifier(yyvsp[(1) - (2)].id);
3242 FreeIdentifier(yyvsp[(2) - (2)].id);
3243 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3244 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3245
3246 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3247 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
3248 resetScannerPos(&(yylsp[(1) - (2)]).start);
3249 (yychar = (-2));
3250 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3251 yystate = *yyssp;
3252 do
3253 {
3254 if(yydebug)
3255 yy_stack_print((yyss), (yyssp));
3256 }while((0));
3257 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3258 yystate = *yyssp;
3259 do
3260 {
3261 if(yydebug)
3262 yy_stack_print((yyss), (yyssp));
3263 }while((0));
3264 goto yysetstate;
3265 }
3266 ;
3267 }
3268 break;
3269 case 6:
3270 {
3271 yyval.specifier = MkSpecifierName(yytext);
3272 ;
3273 }
3274 break;
3275 case 7:
3276 {
3277 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
3278 ;
3279 }
3280 break;
3281 case 9:
3282 {
3283 yyval.specifier = yyvsp[(1) - (4)].specifier;
3284 SetClassTemplateArgs(yyval.specifier, yyvsp[(3) - (4)].list);
3285 yyval.specifier->loc = (yyloc);
3286 ;
3287 }
3288 break;
3289 case 10:
3290 {
3291 yyval.specifier = yyvsp[(1) - (4)].specifier;
3292 SetClassTemplateArgs(yyval.specifier, yyvsp[(3) - (4)].list);
3293 yyval.specifier->loc = (yyloc);
3294 (yylsp[(4) - (4)]).end.pos--;
3295 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3296 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3297
3298 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3299 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(4) - (4)]).end.pos, 0);
3300 resetScannerPos(&(yylsp[(4) - (4)]).end);
3301 (yychar = (-2));
3302 ;
3303 }
3304 break;
3305 case 11:
3306 {
3307 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3308 yyval.classFunction->loc = (yyloc);
3309 ;
3310 }
3311 break;
3312 case 12:
3313 {
3314 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(1) - (1)].declarator, (((void *)0)));
3315 yyval.classFunction->loc = (yyloc);
3316 ;
3317 }
3318 break;
3319 case 13:
3320 {
3321 yyval.classFunction = MkClassFunction(yyvsp[(1) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)));
3322 yyval.classFunction->isConstructor = 1;
3323 yyval.classFunction->loc = (yyloc);
3324 ;
3325 }
3326 break;
3327 case 14:
3328 {
3329 yyval.classFunction = MkClassFunction(yyvsp[(2) - (4)].list, (((void *)0)), (((void *)0)), (((void *)0)));
3330 yyval.classFunction->isDestructor = 1;
3331 yyval.classFunction->loc = (yyloc);
3332 ;
3333 }
3334 break;
3335 case 15:
3336 {
3337 yyval.classFunction = MkClassFunction(yyvsp[(2) - (3)].list, (((void *)0)), yyvsp[(3) - (3)].declarator, (((void *)0)));
3338 yyval.classFunction->isVirtual = 1;
3339 yyval.classFunction->loc = (yyloc);
3340 ;
3341 }
3342 break;
3343 case 16:
3344 {
3345 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3346 yyval.classFunction->isVirtual = 1;
3347 yyval.classFunction->loc = (yyloc);
3348 ;
3349 }
3350 break;
3351 case 17:
3352 {
3353 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3354 yyval.classFunction->loc = (yyloc);
3355 ;
3356 }
3357 break;
3358 case 18:
3359 {
3360 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(1) - (1)].declarator, (((void *)0)));
3361 yyval.classFunction->loc = (yyloc);
3362 ;
3363 }
3364 break;
3365 case 19:
3366 {
3367 yyval.classFunction = MkClassFunction(yyvsp[(2) - (3)].list, (((void *)0)), yyvsp[(3) - (3)].declarator, (((void *)0)));
3368 yyval.classFunction->isVirtual = 1;
3369 yyval.classFunction->loc = (yyloc);
3370 ;
3371 }
3372 break;
3373 case 20:
3374 {
3375 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3376 yyval.classFunction->isVirtual = 1;
3377 yyval.classFunction->loc = (yyloc);
3378 ;
3379 }
3380 break;
3381 case 21:
3382 {
3383 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3384 yyval.classFunction->loc = (yyloc);
3385 ;
3386 }
3387 break;
3388 case 22:
3389 {
3390 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3391 yyval.classFunction->loc = (yyloc);
3392 ;
3393 }
3394 break;
3395 case 23:
3396 {
3397 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3398 yyval.classFunction->loc = (yyloc);
3399 ;
3400 }
3401 break;
3402 case 24:
3403 {
3404 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3405 yyval.classFunction->loc = (yyloc);
3406 ;
3407 }
3408 break;
3409 case 25:
3410 {
3411 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3412 yyval.classFunction->loc = (yyloc);
3413 ;
3414 }
3415 break;
3416 case 26:
3417 {
3418 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3419 yyval.classFunction->loc = (yyloc);
3420 ;
3421 }
3422 break;
3423 case 27:
3424 {
3425 if(yyvsp[(1) - (3)].classFunction->declarator)
3426 {
3427 yyvsp[(1) - (3)].classFunction->declarator = MkStructDeclarator(yyvsp[(1) - (3)].classFunction->declarator, (((void *)0)));
3428 yyvsp[(1) - (3)].classFunction->declarator->__anon1.structDecl.attrib = yyvsp[(2) - (3)].attrib;
3429 }
3430 ProcessClassFunctionBody(yyvsp[(1) - (3)].classFunction, (((void *)0)));
3431 yyval.classFunction->loc = (yyloc);
3432 ;
3433 }
3434 break;
3435 case 28:
3436 {
3437 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3438 yyval.classFunction->loc = (yyloc);
3439 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3440 ;
3441 }
3442 break;
3443 case 29:
3444 {
3445 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3446 yyval.classFunction->loc = (yyloc);
3447 yyval.classFunction->loc.end.charPos++;
3448 yyval.classFunction->loc.end.pos++;
3449 ;
3450 }
3451 break;
3452 case 30:
3453 {
3454 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3455 yyval.classFunction->loc = (yyloc);
3456 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3457 ;
3458 }
3459 break;
3460 case 31:
3461 {
3462 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3463 yyval.classFunction->loc = (yyloc);
3464 yyval.classFunction->loc.end.charPos++;
3465 yyval.classFunction->loc.end.pos++;
3466 ;
3467 }
3468 break;
3469 case 32:
3470 {
3471 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3472 yyval.classFunction->loc = (yyloc);
3473 yyval.classFunction->loc.end.charPos++;
3474 yyval.classFunction->loc.end.pos++;
3475 ;
3476 }
3477 break;
3478 case 33:
3479 {
3480 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3481 yyval.classFunction->loc = (yyloc);
3482 ;
3483 }
3484 break;
3485 case 34:
3486 {
3487 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), MkDeclaratorFunction(yyvsp[(2) - (2)].declarator, (((void *)0))), (((void *)0)));
3488 yyval.classFunction->loc = (yyloc);
3489 ;
3490 }
3491 break;
3492 case 35:
3493 {
3494 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3495 yyval.classFunction->loc = (yyloc);
3496 ;
3497 }
3498 break;
3499 case 36:
3500 {
3501 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3502 yyval.classFunction->loc = (yyloc);
3503 ;
3504 }
3505 break;
3506 case 37:
3507 {
3508 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3509 yyval.classFunction->loc = (yyloc);
3510 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3511 yyval.classFunction->loc.end.charPos++;
3512 yyval.classFunction->loc.end.pos++;
3513 ;
3514 }
3515 break;
3516 case 38:
3517 {
3518 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3519 yyval.classFunction->loc = (yyloc);
3520 yyval.classFunction->loc.end.charPos++;
3521 yyval.classFunction->loc.end.pos++;
3522 ;
3523 }
3524 break;
3525 case 39:
3526 {
3527 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3528 yyval.classFunction->loc = (yyloc);
3529 yyval.classFunction->loc.end.charPos++;
3530 yyval.classFunction->loc.end.pos++;
3531 ;
3532 }
3533 break;
3534 case 40:
3535 {
3536 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
3537 yyval.memberInit->loc = (yyloc);
3538 yyval.memberInit->realLoc = (yyloc);
3539 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
3540 ;
3541 }
3542 break;
3543 case 41:
3544 {
3545 yyval.memberInit = MkMemberInit((((void *)0)), yyvsp[(1) - (1)].initializer);
3546 yyval.memberInit->loc = (yyloc);
3547 yyval.memberInit->realLoc = (yyloc);
3548 ;
3549 }
3550 break;
3551 case 42:
3552 {
3553 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
3554 yyval.memberInit->loc = (yyloc);
3555 yyval.memberInit->realLoc = (yyloc);
3556 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
3557 ;
3558 }
3559 break;
3560 case 43:
3561 {
3562 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, MkInitializerAssignment(MkExpDummy()));
3563 yyval.memberInit->loc = (yyloc);
3564 yyval.memberInit->realLoc = (yyloc);
3565 yyval.memberInit->initializer->loc.start = yyval.memberInit->initializer->loc.end = (yylsp[(2) - (3)]).end;
3566 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3567 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3568
3569 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3570 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(2) - (3)]).end.pos, 0);
3571 (yychar = (-2));
3572 resetScannerPos(&(yylsp[(2) - (3)]).end);
3573 (yyloc.start = (yylsp[(1) - (3)]).start);
3574 (yyloc.end = (yylsp[(2) - (3)]).end);
3575 ;
3576 }
3577 break;
3578 case 44:
3579 {
3580 yyval.memberInit = MkMemberInit((((void *)0)), yyvsp[(1) - (1)].initializer);
3581 yyval.memberInit->loc = (yyloc);
3582 yyval.memberInit->realLoc = (yyloc);
3583 ;
3584 }
3585 break;
3586 case 45:
3587 {
3588 yyval.list = MkList();
3589 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
3590 ;
3591 }
3592 break;
3593 case 46:
3594 {
3595 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3596 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3597 yyval.list = yyvsp[(1) - (3)].list;
3598 ;
3599 }
3600 break;
3601 case 47:
3602 {
3603 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3604 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3605 yyval.list = yyvsp[(1) - (3)].list;
3606 ;
3607 }
3608 break;
3609 case 48:
3610 {
3611 yyval.list = MkList();
3612 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
3613 ;
3614 }
3615 break;
3616 case 49:
3617 {
3618 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3619 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3620 yyval.list = yyvsp[(1) - (3)].list;
3621 ;
3622 }
3623 break;
3624 case 50:
3625 {
3626 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3627 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3628 yyval.list = yyvsp[(1) - (3)].list;
3629 ;
3630 }
3631 break;
3632 case 51:
3633 {
3634 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(2) - (3)]).end;
3635 {
3636 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3637 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3638
3639 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(2) - (3)]).end;
3640 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(2) - (3)]).end;
3641 ListAdd(yyvsp[(1) - (3)].list, memberInit);
3642 }
3643 yyval.list = yyvsp[(1) - (3)].list;
3644 ;
3645 }
3646 break;
3647 case 52:
3648 {
3649 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(2) - (3)]).end;
3650 {
3651 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3652 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3653
3654 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(2) - (3)]).end;
3655 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(2) - (3)]).end;
3656 ListAdd(yyvsp[(1) - (3)].list, memberInit);
3657 }
3658 yyval.list = yyvsp[(1) - (3)].list;
3659 ;
3660 }
3661 break;
3662 case 53:
3663 {
3664 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3665 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3666
3667 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(1) - (1)]).start;
3668 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(1) - (1)]).start;
3669 yyval.list = MkList();
3670 ListAdd(yyval.list, memberInit);
3671 dummy = MkInitializerAssignment(MkExpDummy());
3672 memberInit = MkMemberInit((((void *)0)), dummy);
3673 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(1) - (1)]).end;
3674 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(1) - (1)]).end;
3675 ListAdd(yyval.list, memberInit);
3676 ;
3677 }
3678 break;
3679 case 54:
3680 {
3681 if((*yyvsp[(1) - (2)].list).last)
3682 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).end;
3683 yyval.list = yyvsp[(1) - (2)].list;
3684 ;
3685 }
3686 break;
3687 case 55:
3688 {
3689 if((*yyvsp[(1) - (2)].list).last)
3690 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).end;
3691 yyval.list = yyvsp[(1) - (2)].list;
3692 ;
3693 }
3694 break;
3695 case 56:
3696 {
3697 struct MembersInit * members = MkMembersInitList(yyvsp[(1) - (1)].list);
3698
3699 yyval.list = MkList();
3700 ListAdd(yyval.list, members);
3701 members->loc = (yylsp[(1) - (1)]);
3702 ;
3703 }
3704 break;
3705 case 57:
3706 {
3707 yyval.list = MkList();
3708 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(1) - (1)].classFunction));
3709 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3710 ;
3711 }
3712 break;
3713 case 58:
3714 {
3715 struct MembersInit * members = MkMembersInitList(yyvsp[(2) - (2)].list);
3716
3717 ListAdd(yyval.list, members);
3718 members->loc = (yylsp[(2) - (2)]);
3719 yyval.list = yyvsp[(1) - (2)].list;
3720 ;
3721 }
3722 break;
3723 case 59:
3724 {
3725 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3726 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3727 yyval.list = yyvsp[(1) - (2)].list;
3728 ;
3729 }
3730 break;
3731 case 60:
3732 {
3733 struct MembersInit * members = MkMembersInitList(yyvsp[(2) - (2)].list);
3734
3735 ListAdd(yyval.list, members);
3736 members->loc = (yylsp[(2) - (2)]);
3737 yyval.list = yyvsp[(1) - (2)].list;
3738 ;
3739 }
3740 break;
3741 case 61:
3742 {
3743 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3744 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3745 yyval.list = yyvsp[(1) - (2)].list;
3746 ;
3747 }
3748 break;
3749 case 63:
3750 {
3751 struct MembersInit * members = (struct MembersInit *)(*yyval.list).last;
3752
3753 if(members->type == 0)
3754 (members->loc.end = yyloc.end);
3755 else
3756 {
3757 struct MembersInit * members = MkMembersInitList(MkList());
3758
3759 ListAdd(yyval.list, members);
3760 members->loc = (yylsp[(2) - (2)]);
3761 }
3762 yyval.list = yyvsp[(1) - (2)].list;
3763 ;
3764 }
3765 break;
3766 case 64:
3767 {
3768 struct MembersInit * members = MkMembersInitList(MkList());
3769
3770 yyval.list = MkList();
3771 ListAdd(yyval.list, members);
3772 members->loc = (yylsp[(1) - (1)]);
3773 ;
3774 }
3775 break;
3776 case 66:
3777 {
3778 yyval.list = MkList();
3779 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (1)].list));
3780 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3781 ;
3782 }
3783 break;
3784 case 67:
3785 {
3786 ListAdd(yyvsp[(1) - (2)].list, MkMembersInitList(yyvsp[(2) - (2)].list));
3787 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3788 ;
3789 }
3790 break;
3791 case 68:
3792 {
3793 ListAdd(yyvsp[(1) - (2)].list, MkMembersInitList(yyvsp[(2) - (2)].list));
3794 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3795 ;
3796 }
3797 break;
3798 case 69:
3799 {
3800 yyval.list = MkList();
3801 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(1) - (1)].classFunction));
3802 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3803 ;
3804 }
3805 break;
3806 case 70:
3807 {
3808 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3809 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3810 yyval.list = yyvsp[(1) - (2)].list;
3811 ;
3812 }
3813 break;
3814 case 71:
3815 {
3816 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3817 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3818 yyval.list = yyvsp[(1) - (2)].list;
3819 ;
3820 }
3821 break;
3822 case 72:
3823 {
3824 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3825 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3826 yyval.list = yyvsp[(1) - (2)].list;
3827 ;
3828 }
3829 break;
3830 case 73:
3831 {
3832 ListAdd(yyval.list, MkMembersInitList(yyvsp[(2) - (2)].list));
3833 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3834 yyval.list = yyvsp[(1) - (2)].list;
3835 ;
3836 }
3837 break;
3838 case 74:
3839 {
3840 yyval.list = MkList();
3841 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (1)].list));
3842 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3843 ;
3844 }
3845 break;
3846 case 75:
3847 {
3848 yyval.list = MkList();
3849 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (2)].list));
3850 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3851 ;
3852 }
3853 break;
3854 case 76:
3855 {
3856 yyval.instance->loc = (yyloc);
3857 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
3858 yyval.instance = yyvsp[(1) - (2)].instance;
3859 ;
3860 }
3861 break;
3862 case 77:
3863 {
3864 yyval.instance->loc = (yyloc);
3865 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
3866 yyval.instance = yyvsp[(1) - (3)].instance;
3867 ;
3868 }
3869 break;
3870 case 78:
3871 {
3872 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3873 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3874 yyval.instance->loc = (yyloc);
3875 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3876 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3877 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3878 yyval.instance->loc.end.charPos++;
3879 yyval.instance->loc.end.pos++;
3880 ;
3881 }
3882 break;
3883 case 79:
3884 {
3885 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
3886 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
3887 yyval.instance->loc = (yyloc);
3888 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
3889 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
3890 yyval.instance->insideLoc.end = (yylsp[(4) - (5)]).end;
3891 yyval.instance->loc.end.charPos++;
3892 yyval.instance->loc.end.pos++;
3893 ;
3894 }
3895 break;
3896 case 80:
3897 {
3898 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3899 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3900 yyval.instance->loc = (yyloc);
3901 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3902 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3903 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3904 yyval.instance->loc.end.charPos++;
3905 yyval.instance->loc.end.pos++;
3906 ;
3907 }
3908 break;
3909 case 81:
3910 {
3911 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (3)].list, MkExpIdentifier(yyvsp[(2) - (3)].id), (((void *)0)));
3912 yyval.instance->exp->loc = (yylsp[(2) - (3)]);
3913 yyval.instance->loc = (yyloc);
3914 yyval.instance->nameLoc = (yylsp[(2) - (3)]);
3915 yyval.instance->insideLoc.start = (yylsp[(3) - (3)]).end;
3916 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
3917 yyval.instance->loc.end.charPos++;
3918 yyval.instance->loc.end.pos++;
3919 ;
3920 }
3921 break;
3922 case 82:
3923 {
3924 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), (((void *)0)));
3925 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3926 yyval.instance->loc = (yyloc);
3927 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3928 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3929 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
3930 yyval.instance->loc.end.charPos++;
3931 yyval.instance->loc.end.pos++;
3932 ;
3933 }
3934 break;
3935 case 83:
3936 {
3937 yyval.instance->loc = (yyloc);
3938 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
3939 ;
3940 }
3941 break;
3942 case 84:
3943 {
3944 yyval.instance->loc = (yyloc);
3945 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
3946 ;
3947 }
3948 break;
3949 case 85:
3950 {
3951 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3952 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3953 yyval.instance->loc = (yyloc);
3954 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3955 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3956 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3957 yyval.instance->loc.end.charPos++;
3958 yyval.instance->loc.end.pos++;
3959 ;
3960 }
3961 break;
3962 case 86:
3963 {
3964 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
3965 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
3966 yyval.instance->loc = (yyloc);
3967 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
3968 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
3969 yyval.instance->insideLoc.end = (yylsp[(4) - (5)]).end;
3970 yyval.instance->loc.end.charPos++;
3971 yyval.instance->loc.end.pos++;
3972 ;
3973 }
3974 break;
3975 case 87:
3976 {
3977 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3978 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3979 yyval.instance->loc = (yyloc);
3980 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3981 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3982 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3983 yyval.instance->loc.end.charPos++;
3984 yyval.instance->loc.end.pos++;
3985 ;
3986 }
3987 break;
3988 case 88:
3989 {
3990 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (3)].list, MkExpIdentifier(yyvsp[(2) - (3)].id), (((void *)0)));
3991 yyval.instance->exp->loc = (yylsp[(2) - (3)]);
3992 yyval.instance->loc = (yyloc);
3993 yyval.instance->nameLoc = (yylsp[(2) - (3)]);
3994 yyval.instance->insideLoc.start = (yylsp[(3) - (3)]).end;
3995 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
3996 yyval.instance->loc.end.charPos++;
3997 yyval.instance->loc.end.pos++;
3998 ;
3999 }
4000 break;
4001 case 89:
4002 {
4003 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), (((void *)0)));
4004 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
4005 yyval.instance->loc = (yyloc);
4006 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
4007 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
4008 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4009 yyval.instance->loc.end.charPos++;
4010 yyval.instance->loc.end.pos++;
4011 ;
4012 }
4013 break;
4014 case 90:
4015 {
4016 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
4017 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
4018 yyval.instance->loc = (yyloc);
4019 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
4020 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
4021 yyval.instance->insideLoc.end = (yylsp[(5) - (5)]).start;
4022 ;
4023 }
4024 break;
4025 case 91:
4026 {
4027 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
4028 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
4029 yyval.instance->loc = (yyloc);
4030 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
4031 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
4032 yyval.instance->insideLoc.end = (yylsp[(5) - (5)]).start;
4033 ;
4034 }
4035 break;
4036 case 92:
4037 {
4038 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), MkList());
4039 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
4040 yyval.instance->loc = (yyloc);
4041 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
4042 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
4043 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).start;
4044 ;
4045 }
4046 break;
4047 case 93:
4048 {
4049 yyval.instance->loc = (yyloc);
4050 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
4051 yyval.instance = yyvsp[(1) - (2)].instance;
4052 ;
4053 }
4054 break;
4055 case 94:
4056 {
4057 yyval.instance->loc = (yyloc);
4058 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
4059 yyval.instance = yyvsp[(1) - (3)].instance;
4060 ;
4061 }
4062 break;
4063 case 95:
4064 {
4065 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), yyvsp[(3) - (3)].list);
4066 yyval.instance->loc = (yyloc);
4067 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4068 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4069 yyval.instance->loc.end.charPos++;
4070 yyval.instance->loc.end.pos++;
4071 ;
4072 }
4073 break;
4074 case 96:
4075 {
4076 struct Location tmpLoc = yylloc;
4077
4078 yylloc = (yylsp[(1) - (3)]);
4079 yylloc = tmpLoc;
4080 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), yyvsp[(3) - (3)].list);
4081 yyval.instance->loc = (yyloc);
4082 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4083 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4084 FreeIdentifier(yyvsp[(1) - (3)].id);
4085 ;
4086 }
4087 break;
4088 case 97:
4089 {
4090 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), yyvsp[(3) - (3)].list);
4091 yyval.instance->loc = (yyloc);
4092 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4093 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4094 yyval.instance->loc.end.charPos++;
4095 yyval.instance->loc.end.pos++;
4096 ;
4097 }
4098 break;
4099 case 98:
4100 {
4101 yyval.instance = MkInstantiation(yyvsp[(1) - (2)].specifier, (((void *)0)), (((void *)0)));
4102 yyval.instance->loc = (yyloc);
4103 yyval.instance->insideLoc.start = (yylsp[(2) - (2)]).end;
4104 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4105 yyval.instance->loc.end.charPos++;
4106 yyval.instance->loc.end.pos++;
4107 ;
4108 }
4109 break;
4110 case 99:
4111 {
4112 yyval.instance = MkInstantiation(yyvsp[(1) - (4)].specifier, (((void *)0)), yyvsp[(3) - (4)].list);
4113 yyval.instance->loc = (yyloc);
4114 yyval.instance->insideLoc.start = (yylsp[(2) - (4)]).end;
4115 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4116 yyval.instance->loc.end.charPos++;
4117 yyval.instance->loc.end.pos++;
4118 ;
4119 }
4120 break;
4121 case 100:
4122 {
4123 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), (((void *)0)));
4124 yyval.instance->loc = (yyloc);
4125 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4126 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4127 yyval.instance->loc.end.charPos++;
4128 yyval.instance->loc.end.pos++;
4129 ;
4130 }
4131 break;
4132 case 101:
4133 {
4134 struct Location tmpLoc = yylloc;
4135
4136 yylloc = (yylsp[(1) - (3)]);
4137 yylloc = tmpLoc;
4138 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), yyvsp[(3) - (3)].list);
4139 yyval.instance->loc = (yyloc);
4140 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4141 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4142 yyval.instance->loc.end.charPos++;
4143 yyval.instance->loc.end.pos++;
4144 FreeIdentifier(yyvsp[(1) - (3)].id);
4145 ;
4146 }
4147 break;
4148 case 102:
4149 {
4150 struct Location tmpLoc = yylloc;
4151
4152 yylloc = (yylsp[(1) - (2)]);
4153 yylloc = tmpLoc;
4154 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (2)].id->string), (((void *)0)), (((void *)0)));
4155 yyval.instance->loc = (yyloc);
4156 yyval.instance->insideLoc.start = (yylsp[(2) - (2)]).end;
4157 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4158 yyval.instance->loc.end.charPos++;
4159 yyval.instance->loc.end.pos++;
4160 FreeIdentifier(yyvsp[(1) - (2)].id);
4161 ;
4162 }
4163 break;
4164 case 103:
4165 {
4166 struct Location tmpLoc = yylloc;
4167
4168 yylloc = (yylsp[(1) - (4)]);
4169 yylloc = tmpLoc;
4170 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (4)].id->string), (((void *)0)), yyvsp[(3) - (4)].list);
4171 yyval.instance->loc = (yyloc);
4172 yyval.instance->insideLoc.start = (yylsp[(2) - (4)]).end;
4173 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4174 yyval.instance->loc.end.charPos++;
4175 yyval.instance->loc.end.pos++;
4176 FreeIdentifier(yyvsp[(1) - (4)].id);
4177 ;
4178 }
4179 break;
4180 case 104:
4181 {
4182 struct Location tmpLoc = yylloc;
4183
4184 yylloc = (yylsp[(1) - (3)]);
4185 yylloc = tmpLoc;
4186 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), (((void *)0)));
4187 yyval.instance->loc = (yyloc);
4188 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4189 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4190 yyval.instance->loc.end.charPos++;
4191 yyval.instance->loc.end.pos++;
4192 FreeIdentifier(yyvsp[(1) - (3)].id);
4193 ;
4194 }
4195 break;
4196 case 105:
4197 {
4198 yyval.instance->loc = (yyloc);
4199 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
4200 ;
4201 }
4202 break;
4203 case 106:
4204 {
4205 yyval.instance->loc = (yyloc);
4206 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
4207 ;
4208 }
4209 break;
4210 case 107:
4211 {
4212 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].list);
4213 yyval.instance->loc = (yyloc);
4214 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4215 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4216 yyval.instance->loc.end.charPos++;
4217 yyval.instance->loc.end.pos++;
4218 ;
4219 }
4220 break;
4221 case 108:
4222 {
4223 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (3)].list);
4224 yyval.instance->loc = (yyloc);
4225 yyval.instance->insideLoc.start = (yylsp[(1) - (3)]).end;
4226 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4227 yyval.instance->loc.end.charPos++;
4228 yyval.instance->loc.end.pos++;
4229 ;
4230 }
4231 break;
4232 case 109:
4233 {
4234 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), (((void *)0)));
4235 yyval.instance->loc = (yyloc);
4236 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4237 yyval.instance->insideLoc.end = (yylsp[(1) - (2)]).end;
4238 yyval.instance->loc.end.charPos++;
4239 yyval.instance->loc.end.pos++;
4240 ;
4241 }
4242 break;
4243 case 110:
4244 {
4245 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), (((void *)0)));
4246 yyval.instance->loc = (yyloc);
4247 yyval.instance->insideLoc.start = (yylsp[(1) - (1)]).end;
4248 yyval.instance->insideLoc.end = (yylsp[(1) - (1)]).end;
4249 yyval.instance->loc.end.charPos++;
4250 yyval.instance->loc.end.pos++;
4251 ;
4252 }
4253 break;
4254 case 111:
4255 {
4256 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].list);
4257 yyval.instance->loc = (yyloc);
4258 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4259 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4260 yyval.instance->loc.end.charPos++;
4261 yyval.instance->loc.end.pos++;
4262 ;
4263 }
4264 break;
4265 case 112:
4266 {
4267 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
4268 yyval.memberInit->loc = (yyloc);
4269 yyval.memberInit->realLoc = (yyloc);
4270 ;
4271 }
4272 break;
4273 case 113:
4274 {
4275 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
4276 yyval.memberInit->loc = (yyloc);
4277 yyval.memberInit->realLoc = (yyloc);
4278 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
4279 ;
4280 }
4281 break;
4282 case 114:
4283 {
4284 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, MkInitializerAssignment(MkExpDummy()));
4285 yyval.memberInit->loc = (yyloc);
4286 yyval.memberInit->realLoc = (yyloc);
4287 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
4288 yyval.memberInit->initializer->loc.end = (yylsp[(2) - (3)]).end;
4289 ;
4290 }
4291 break;
4292 case 115:
4293 {
4294 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (2)].exp, (((void *)0)));
4295 yyval.memberInit->loc = (yyloc);
4296 yyval.memberInit->realLoc = (yyloc);
4297 ;
4298 }
4299 break;
4300 case 116:
4301 {
4302 yyval.list = MkList();
4303 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
4304 ((struct MemberInit *)(*yyval.list).last)->loc = (yyloc);
4305 ;
4306 }
4307 break;
4308 case 117:
4309 {
4310 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4311 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4312 yyval.list = yyvsp[(1) - (3)].list;
4313 ;
4314 }
4315 break;
4316 case 118:
4317 {
4318 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4319 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4320 yyval.list = yyvsp[(1) - (3)].list;
4321 ;
4322 }
4323 break;
4324 case 119:
4325 {
4326 yyval.list = MkList();
4327 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
4328 ((struct MemberInit *)(*yyval.list).last)->loc = (yyloc);
4329 ;
4330 }
4331 break;
4332 case 120:
4333 {
4334 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4335 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4336 yyval.list = yyvsp[(1) - (3)].list;
4337 ;
4338 }
4339 break;
4340 case 121:
4341 {
4342 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4343 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4344 yyval.list = yyvsp[(1) - (3)].list;
4345 ;
4346 }
4347 break;
4348 case 123:
4349 {
4350 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, (((void *)0)), yyvsp[(3) - (4)].id, (((void *)0)), (((void *)0)));
4351 yyval.prop->loc = (yyloc);
4352 ;
4353 }
4354 break;
4355 case 124:
4356 {
4357 yyval.prop = MkProperty(yyvsp[(2) - (5)].list, yyvsp[(3) - (5)].declarator, yyvsp[(4) - (5)].id, (((void *)0)), (((void *)0)));
4358 yyval.prop->loc = (yyloc);
4359 ;
4360 }
4361 break;
4362 case 125:
4363 {
4364 yyval.prop = MkProperty(yyvsp[(2) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4365 yyval.prop->loc = (yyloc);
4366 ;
4367 }
4368 break;
4369 case 126:
4370 {
4371 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].declarator, (((void *)0)), (((void *)0)), (((void *)0)));
4372 yyval.prop->loc = (yyloc);
4373 ;
4374 }
4375 break;
4376 case 127:
4377 {
4378 yyval.prop = MkProperty((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4379 yyval.prop->loc = (yyloc);
4380 ;
4381 }
4382 break;
4383 case 129:
4384 {
4385 yyvsp[(1) - (3)].prop->setStmt = yyvsp[(3) - (3)].stmt;
4386 ;
4387 }
4388 break;
4389 case 130:
4390 {
4391 yyvsp[(1) - (3)].prop->getStmt = yyvsp[(3) - (3)].stmt;
4392 ;
4393 }
4394 break;
4395 case 131:
4396 {
4397 yyvsp[(1) - (3)].prop->issetStmt = yyvsp[(3) - (3)].stmt;
4398 ;
4399 }
4400 break;
4401 case 132:
4402 {
4403 yyvsp[(1) - (2)].prop->__anon1.isWatchable = 1;
4404 ;
4405 }
4406 break;
4407 case 133:
4408 {
4409 yyvsp[(1) - (3)].prop->category = yyvsp[(3) - (3)].exp;
4410 ;
4411 }
4412 break;
4413 case 134:
4414 {
4415 yyvsp[(1) - (2)].prop->loc.end = (yylsp[(2) - (2)]).end;
4416 yyval.prop = yyvsp[(1) - (2)].prop;
4417 ;
4418 }
4419 break;
4420 case 135:
4421 {
4422 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, (((void *)0)), yyvsp[(3) - (4)].id, (((void *)0)), (((void *)0)));
4423 yyval.prop->loc = (yyloc);
4424 ;
4425 }
4426 break;
4427 case 136:
4428 {
4429 yyval.prop = MkProperty(yyvsp[(2) - (5)].list, yyvsp[(3) - (5)].declarator, yyvsp[(4) - (5)].id, (((void *)0)), (((void *)0)));
4430 yyval.prop->loc = (yyloc);
4431 ;
4432 }
4433 break;
4434 case 137:
4435 {
4436 yyval.prop = MkProperty(yyvsp[(2) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4437 yyval.prop->loc = (yyloc);
4438 ;
4439 }
4440 break;
4441 case 138:
4442 {
4443 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].declarator, (((void *)0)), (((void *)0)), (((void *)0)));
4444 yyval.prop->loc = (yyloc);
4445 ;
4446 }
4447 break;
4448 case 139:
4449 {
4450 yyval.prop = MkProperty((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4451 yyval.prop->loc = (yyloc);
4452 ;
4453 }
4454 break;
4455 case 141:
4456 {
4457 yyvsp[(1) - (3)].prop->setStmt = yyvsp[(3) - (3)].stmt;
4458 ;
4459 }
4460 break;
4461 case 142:
4462 {
4463 yyvsp[(1) - (3)].prop->getStmt = yyvsp[(3) - (3)].stmt;
4464 ;
4465 }
4466 break;
4467 case 143:
4468 {
4469 yyvsp[(1) - (2)].prop->loc.end = (yylsp[(2) - (2)]).end;
4470 ;
4471 }
4472 break;
4473 case 144:
4474 {
4475 yyval.list = MkListOne(yyvsp[(1) - (1)].id);
4476 ;
4477 }
4478 break;
4479 case 145:
4480 {
4481 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].id);
4482 ;
4483 }
4484 break;
4485 case 146:
4486 {
4487 yyval.propertyWatch = MkPropertyWatch(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
4488 ;
4489 }
4490 break;
4491 case 147:
4492 {
4493 yyval.propertyWatch = MkDeleteWatch(yyvsp[(2) - (2)].stmt);
4494 ;
4495 }
4496 break;
4497 case 148:
4498 {
4499 yyval.list = MkListOne(yyvsp[(1) - (1)].propertyWatch);
4500 ;
4501 }
4502 break;
4503 case 149:
4504 {
4505 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].propertyWatch);
4506 ;
4507 }
4508 break;
4509 case 150:
4510 {
4511 yyval.propertyWatch = MkPropertyWatch(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
4512 ;
4513 }
4514 break;
4515 case 151:
4516 {
4517 yyval.stmt = MkWatchStmt((((void *)0)), yyvsp[(3) - (7)].exp, yyvsp[(6) - (7)].list);
4518 ;
4519 }
4520 break;
4521 case 152:
4522 {
4523 yyval.stmt = MkWatchStmt(yyvsp[(1) - (9)].exp, yyvsp[(5) - (9)].exp, yyvsp[(8) - (9)].list);
4524 ;
4525 }
4526 break;
4527 case 153:
4528 {
4529 yyval.stmt = MkStopWatchingStmt((((void *)0)), yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].list);
4530 ;
4531 }
4532 break;
4533 case 154:
4534 {
4535 yyval.stmt = MkStopWatchingStmt(yyvsp[(1) - (8)].exp, yyvsp[(5) - (8)].exp, yyvsp[(7) - (8)].list);
4536 ;
4537 }
4538 break;
4539 case 155:
4540 {
4541 yyval.stmt = MkStopWatchingStmt((((void *)0)), yyvsp[(3) - (4)].exp, (((void *)0)));
4542 ;
4543 }
4544 break;
4545 case 156:
4546 {
4547 yyval.stmt = MkStopWatchingStmt(yyvsp[(1) - (6)].exp, yyvsp[(5) - (6)].exp, (((void *)0)));
4548 ;
4549 }
4550 break;
4551 case 157:
4552 {
4553 yyval.stmt = MkFireWatchersStmt((((void *)0)), (((void *)0)));
4554 ;
4555 }
4556 break;
4557 case 158:
4558 {
4559 yyval.stmt = MkFireWatchersStmt((((void *)0)), yyvsp[(2) - (2)].list);
4560 ;
4561 }
4562 break;
4563 case 159:
4564 {
4565 yyval.stmt = MkFireWatchersStmt(yyvsp[(1) - (3)].exp, (((void *)0)));
4566 ;
4567 }
4568 break;
4569 case 160:
4570 {
4571 yyval.stmt = MkFireWatchersStmt(yyvsp[(1) - (4)].exp, yyvsp[(4) - (4)].list);
4572 ;
4573 }
4574 break;
4575 case 161:
4576 {
4577 yyval.classDef = yyvsp[(1) - (2)].classDef;
4578 yyval.classDef->loc.end = (yylsp[(2) - (2)]).end;
4579 ;
4580 }
4581 break;
4582 case 162:
4583 {
4584 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (2)].list);
4585 if((*yyvsp[(1) - (2)].list).last)
4586 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).start;
4587 yyval.classDef->loc = (yyloc);
4588 ;
4589 }
4590 break;
4591 case 163:
4592 {
4593 yyval.classDef = MkClassDefFunction(yyvsp[(1) - (1)].classFunction);
4594 yyval.classDef->loc = (yyloc);
4595 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4596 ;
4597 }
4598 break;
4599 case 164:
4600 {
4601 yyval.classDef = MkClassDefProperty(yyvsp[(1) - (1)].prop);
4602 yyval.classDef->loc = (yyloc);
4603 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4604 ;
4605 }
4606 break;
4607 case 165:
4608 {
4609 yyval.classDef = MkClassDefFunction(yyvsp[(2) - (2)].classFunction);
4610 yyval.classDef->loc = (yyloc);
4611 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4612 ;
4613 }
4614 break;
4615 case 166:
4616 {
4617 yyval.classDef = MkClassDefProperty(yyvsp[(2) - (2)].prop);
4618 yyval.classDef->loc = (yyloc);
4619 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4620 ;
4621 }
4622 break;
4623 case 167:
4624 {
4625 yyval.classDef = MkClassDefClassProperty(yyvsp[(1) - (1)].prop);
4626 yyval.classDef->loc = (yyloc);
4627 ;
4628 }
4629 break;
4630 case 168:
4631 {
4632 yyval.classDef = (((void *)0));
4633 deleteWatchable = 1;
4634 ;
4635 }
4636 break;
4637 case 169:
4638 {
4639 yyval.classDef = MkClassDefNoExpansion();
4640 ;
4641 }
4642 break;
4643 case 170:
4644 {
4645 yyval.classDef = MkClassDefFixed();
4646 ;
4647 }
4648 break;
4649 case 171:
4650 {
4651 yyval.classDef = MkClassDefClassPropertyValue(yyvsp[(3) - (7)].id, yyvsp[(6) - (7)].initializer);
4652 yyval.classDef->loc = (yyloc);
4653 ;
4654 }
4655 break;
4656 case 172:
4657 {
4658 yyval.classDef = (((void *)0));
4659 ;
4660 }
4661 break;
4662 case 173:
4663 {
4664 memberAccessStack[defaultMemberAccess] = yyvsp[(1) - (2)].declMode;
4665 if(defaultMemberAccess == 0)
4666 {
4667 yyval.classDef = MkClassDefMemberAccess();
4668 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4669 yyval.classDef->loc = (yyloc);
4670 }
4671 else
4672 yyval.classDef = (((void *)0));
4673 ;
4674 }
4675 break;
4676 case 174:
4677 {
4678 yyval.classDef = MkClassDefAccessOverride(yyvsp[(1) - (4)].declMode, yyvsp[(3) - (4)].id);
4679 yyval.classDef->loc = (yyloc);
4680 ;
4681 }
4682 break;
4683 case 175:
4684 {
4685 yyval.classDef = MkClassDefFunction(yyvsp[(1) - (1)].classFunction);
4686 yyval.classDef->loc = yyvsp[(1) - (1)].classFunction->loc;
4687 yyval.classDef->loc.end.charPos++;
4688 yyval.classDef->loc.end.pos++;
4689 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4690 ;
4691 }
4692 break;
4693 case 176:
4694 {
4695 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(1) - (1)].list, (((void *)0)), (((void *)0))));
4696 yyval.classDef->__anon1.decl->loc = (yyloc);
4697 yyval.classDef->loc = (yyloc);
4698 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4699 ;
4700 }
4701 break;
4702 case 177:
4703 {
4704 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list, (((void *)0))));
4705 yyval.classDef->__anon1.decl->loc = (yyloc);
4706 yyval.classDef->loc = (yyloc);
4707 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4708 ;
4709 }
4710 break;
4711 case 178:
4712 {
4713 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].list, (((void *)0))));
4714 yyval.classDef->__anon1.decl->loc = (yyloc);
4715 yyval.classDef->loc = (yyloc);
4716 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4717 ;
4718 }
4719 break;
4720 case 179:
4721 {
4722 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(2) - (2)].list, (((void *)0)), (((void *)0))));
4723 yyval.classDef->__anon1.decl->loc = (yyloc);
4724 yyval.classDef->loc = (yyloc);
4725 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4726 ;
4727 }
4728 break;
4729 case 180:
4730 {
4731 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (2)].instance));
4732 yyval.classDef->loc = (yyloc);
4733 yyval.classDef->__anon1.decl->loc = (yyloc);
4734 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4735 ;
4736 }
4737 break;
4738 case 181:
4739 {
4740 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (2)].instance));
4741 yyval.classDef->loc = (yyloc);
4742 yyval.classDef->__anon1.decl->loc = (yyloc);
4743 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4744 ;
4745 }
4746 break;
4747 case 182:
4748 {
4749 yyval.classDef = MkClassDefClassData(MkStructDeclaration(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].list, (((void *)0))));
4750 yyval.classDef->__anon1.decl->loc = (yyloc);
4751 yyval.classDef->loc = (yyloc);
4752 ;
4753 }
4754 break;
4755 case 183:
4756 {
4757 yyval.classDef = MkClassDefPropertyWatch(yyvsp[(1) - (1)].propertyWatch);
4758 yyval.classDef->loc = (yyloc);
4759 ;
4760 }
4761 break;
4762 case 184:
4763 {
4764 yyval.classDef = MkClassDefDesigner(yyvsp[(2) - (2)].id->string);
4765 FreeIdentifier(yyvsp[(2) - (2)].id);
4766 ;
4767 }
4768 break;
4769 case 185:
4770 {
4771 yyval.classDef = MkClassDefDesigner(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
4772 FreeSpecifier(yyvsp[(2) - (2)].specifier);
4773 ;
4774 }
4775 break;
4776 case 186:
4777 {
4778 yyval.classDef = MkClassDefDesignerDefaultProperty(yyvsp[(2) - (2)].id);
4779 ;
4780 }
4781 break;
4782 case 187:
4783 {
4784 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (1)].instance));
4785 yyval.classDef->loc = (yyloc);
4786 yyval.classDef->__anon1.decl->loc = (yyloc);
4787 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4788 ;
4789 }
4790 break;
4791 case 188:
4792 {
4793 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (1)].instance));
4794 yyval.classDef->loc = (yyloc);
4795 yyval.classDef->__anon1.decl->loc = (yyloc);
4796 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4797 ;
4798 }
4799 break;
4800 case 189:
4801 {
4802 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (1)].list);
4803 if((*yyvsp[(1) - (1)].list).last)
4804 ((struct MemberInit *)(*yyvsp[(1) - (1)].list).last)->loc.end = (yylsp[(1) - (1)]).end;
4805 yyval.classDef->loc = (yyloc);
4806 ;
4807 }
4808 break;
4809 case 190:
4810 {
4811 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (2)].instance));
4812 yyval.classDef->loc = yyvsp[(1) - (2)].instance->loc;
4813 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4814 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4815 ;
4816 }
4817 break;
4818 case 191:
4819 {
4820 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (2)].instance));
4821 yyval.classDef->loc = yyvsp[(1) - (2)].instance->loc;
4822 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4823 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4824 ;
4825 }
4826 break;
4827 case 192:
4828 {
4829 yyval.classDef = MkClassDefFunction(yyvsp[(2) - (2)].classFunction);
4830 yyval.classDef->loc = (yyloc);
4831 yyval.classDef->loc.end.charPos++;
4832 yyval.classDef->loc.end.pos++;
4833 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4834 ;
4835 }
4836 break;
4837 case 193:
4838 {
4839 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (3)].instance));
4840 yyval.classDef->loc = (yyloc);
4841 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4842 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4843 ;
4844 }
4845 break;
4846 case 194:
4847 {
4848 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (3)].instance));
4849 yyval.classDef->loc = (yyloc);
4850 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4851 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4852 ;
4853 }
4854 break;
4855 case 195:
4856 {
4857 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (1)].list);
4858 yyval.classDef->loc = (yyloc);
4859 yyval.classDef->loc.end.charPos++;
4860 yyval.classDef->loc.end.pos++;
4861 ;
4862 }
4863 break;
4864 case 196:
4865 {
4866 yyval.list = MkList();
4867 ListAdd(yyval.list, yyvsp[(1) - (1)].classDef);
4868 ;
4869 }
4870 break;
4871 case 197:
4872 {
4873 yyval.list = yyvsp[(1) - (2)].list;
4874 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].classDef);
4875 ;
4876 }
4877 break;
4878 case 198:
4879 {
4880 yyval.list = yyvsp[(1) - (2)].list;
4881 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].classDef);
4882 ;
4883 }
4884 break;
4885 case 199:
4886 {
4887 yyerror();
4888 yyval.list = MkList();
4889 ListAdd(yyval.list, yyvsp[(1) - (1)].classDef);
4890 ;
4891 }
4892 break;
4893 case 202:
4894 {
4895 yyerror();
4896 yyval.list = yyvsp[(1) - (2)].list;
4897 ListAdd(yyval.list, yyvsp[(2) - (2)].classDef);
4898 ;
4899 }
4900 break;
4901 case 203:
4902 {
4903 yyval.list = yyvsp[(1) - (2)].list;
4904 ListAdd(yyval.list, yyvsp[(2) - (2)].classDef);
4905 ;
4906 }
4907 break;
4908 case 204:
4909 {
4910 yyval.templateDatatype = MkTemplateDatatype(yyvsp[(1) - (1)].list, (((void *)0)));
4911 ;
4912 }
4913 break;
4914 case 205:
4915 {
4916 yyval.templateDatatype = MkTemplateDatatype(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
4917 ;
4918 }
4919 break;
4920 case 206:
4921 {
4922 yyval.templateArgument = MkTemplateTypeArgument(MkTemplateDatatype(yyvsp[(1) - (1)].list, (((void *)0))));
4923 ;
4924 }
4925 break;
4926 case 207:
4927 {
4928 yyval.templateArgument = MkTemplateTypeArgument(MkTemplateDatatype(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator));
4929 ;
4930 }
4931 break;
4932 case 208:
4933 {
4934 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (2)].id, (((void *)0)), (((void *)0)));
4935 ;
4936 }
4937 break;
4938 case 209:
4939 {
4940 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (4)].id, (((void *)0)), yyvsp[(4) - (4)].templateArgument);
4941 ;
4942 }
4943 break;
4944 case 210:
4945 {
4946 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (4)].id, yyvsp[(4) - (4)].templateDatatype, (((void *)0)));
4947 ;
4948 }
4949 break;
4950 case 211:
4951 {
4952 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].templateDatatype, yyvsp[(6) - (6)].templateArgument);
4953 ;
4954 }
4955 break;
4956 case 212:
4957 {
4958 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (2)].string), (((void *)0)), (((void *)0)));
4959 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (2)].string), yyvsp[(2) - (2)].string = 0);
4960 ;
4961 }
4962 break;
4963 case 213:
4964 {
4965 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (4)].string), (((void *)0)), yyvsp[(4) - (4)].templateArgument);
4966 ;
4967 }
4968 break;
4969 case 214:
4970 {
4971 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (4)].string), yyvsp[(4) - (4)].templateDatatype, (((void *)0)));
4972 ;
4973 }
4974 break;
4975 case 215:
4976 {
4977 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (6)].string), yyvsp[(4) - (6)].templateDatatype, yyvsp[(6) - (6)].templateArgument);
4978 ;
4979 }
4980 break;
4981 case 216:
4982 {
4983 yyval.templateArgument = MkTemplateIdentifierArgument(yyvsp[(1) - (1)].id);
4984 ;
4985 }
4986 break;
4987 case 217:
4988 {
4989 yyval.templateParameter = MkIdentifierTemplateParameter(yyvsp[(1) - (1)].id, 0, (((void *)0)));
4990 ;
4991 }
4992 break;
4993 case 218:
4994 {
4995 yyval.templateParameter = MkIdentifierTemplateParameter(yyvsp[(1) - (3)].id, 0, yyvsp[(3) - (3)].templateArgument);
4996 ;
4997 }
4998 break;
4999 case 219:
5000 {
5001 yyval.templateArgument = MkTemplateExpressionArgument(yyvsp[(1) - (1)].exp);
5002 ;
5003 }
5004 break;
5005 case 220:
5006 {
5007 yyval.templateParameter = MkExpressionTemplateParameter(yyvsp[(2) - (4)].id, MkTemplateDatatype(yyvsp[(1) - (4)].list, (((void *)0))), yyvsp[(4) - (4)].templateArgument);
5008 ;
5009 }
5010 break;
5011 case 221:
5012 {
5013 yyval.templateParameter = MkExpressionTemplateParameter(yyvsp[(3) - (5)].id, MkTemplateDatatype(yyvsp[(1) - (5)].list, yyvsp[(2) - (5)].declarator), yyvsp[(5) - (5)].templateArgument);
5014 ;
5015 }
5016 break;
5017 case 225:
5018 {
5019 yyval.list = MkList();
5020 ListAdd(yyval.list, yyvsp[(1) - (1)].templateParameter);
5021 ;
5022 }
5023 break;
5024 case 226:
5025 {
5026 yyval.list = yyvsp[(1) - (3)].list;
5027 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].templateParameter);
5028 ;
5029 }
5030 break;
5031 case 230:
5032 {
5033 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5034 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5035 yyval.templateArgument->loc = (yyloc);
5036 ;
5037 }
5038 break;
5039 case 231:
5040 {
5041 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5042 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5043 yyval.templateArgument->loc = (yyloc);
5044 ;
5045 }
5046 break;
5047 case 232:
5048 {
5049 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5050 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5051 yyval.templateArgument->loc = (yyloc);
5052 ;
5053 }
5054 break;
5055 case 233:
5056 {
5057 yyval.list = MkList();
5058 ListAdd(yyval.list, yyvsp[(1) - (1)].templateArgument);
5059 ;
5060 }
5061 break;
5062 case 234:
5063 {
5064 yyval.list = yyvsp[(1) - (3)].list;
5065 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].templateArgument);
5066 ;
5067 }
5068 break;
5069 case 235:
5070 {
5071 if(curContext != globalContext)
5072 PopContext(curContext);
5073 yyval.context = PushContext();
5074 ;
5075 }
5076 break;
5077 case 236:
5078 {
5079 (void)yyvsp[(1) - (2)].context;
5080 yyval.symbol = DeclClassAddNameSpace(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
5081 FreeIdentifier(yyvsp[(2) - (2)].id);
5082 yyval.symbol->nameLoc = (yylsp[(2) - (2)]);
5083 memberAccessStack[++defaultMemberAccess] = 2;
5084 ;
5085 }
5086 break;
5087 case 237:
5088 {
5089 (void)yyvsp[(1) - (2)].context;
5090 yyval.symbol = DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
5091 yyval.symbol->nameLoc = (yylsp[(2) - (2)]);
5092 FreeSpecifier(yyvsp[(2) - (2)].specifier);
5093 ++defaultMemberAccess;
5094 memberAccessStack[defaultMemberAccess] = 2;
5095 ;
5096 }
5097 break;
5098 case 238:
5099 {
5100 (void)yyvsp[(2) - (3)].context;
5101 yyval.symbol = DeclClassAddNameSpace(yyvsp[(3) - (3)].id->_class, yyvsp[(3) - (3)].id->string);
5102 FreeIdentifier(yyvsp[(1) - (3)].id);
5103 FreeIdentifier(yyvsp[(3) - (3)].id);
5104 yyval.symbol->nameLoc = (yylsp[(3) - (3)]);
5105 yyval.symbol->isRemote = 1;
5106 memberAccessStack[++defaultMemberAccess] = 2;
5107 ;
5108 }
5109 break;
5110 case 239:
5111 {
5112 (void)yyvsp[(2) - (3)].context;
5113 yyval.symbol = DeclClass(yyvsp[(3) - (3)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (3)].specifier->__anon1.__anon1.name);
5114 FreeIdentifier(yyvsp[(1) - (3)].id);
5115 yyval.symbol->nameLoc = (yylsp[(3) - (3)]);
5116 yyval.symbol->isRemote = 1;
5117 FreeSpecifier(yyvsp[(3) - (3)].specifier);
5118 memberAccessStack[++defaultMemberAccess] = 2;
5119 ;
5120 }
5121 break;
5122 case 240:
5123 {
5124 (void)yyvsp[(1) - (5)].context;
5125 yyval.symbol = DeclClassAddNameSpace(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
5126 yyval.symbol->templateParams = yyvsp[(4) - (5)].list;
5127 FreeIdentifier(yyvsp[(2) - (5)].id);
5128 yyval.symbol->nameLoc = (yylsp[(2) - (5)]);
5129 memberAccessStack[++defaultMemberAccess] = 2;
5130 ;
5131 }
5132 break;
5133 case 241:
5134 {
5135 (void)yyvsp[(1) - (5)].context;
5136 yyval.symbol = DeclClass(yyvsp[(2) - (5)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name);
5137 yyval.symbol->templateParams = yyvsp[(4) - (5)].list;
5138 yyval.symbol->nameLoc = (yylsp[(2) - (5)]);
5139 FreeSpecifier(yyvsp[(2) - (5)].specifier);
5140 ++defaultMemberAccess;
5141 memberAccessStack[defaultMemberAccess] = 2;
5142 ;
5143 }
5144 break;
5145 case 242:
5146 {
5147 (void)yyvsp[(2) - (6)].context;
5148 yyval.symbol = DeclClassAddNameSpace(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
5149 yyval.symbol->templateParams = yyvsp[(5) - (6)].list;
5150 FreeIdentifier(yyvsp[(1) - (6)].id);
5151 FreeIdentifier(yyvsp[(3) - (6)].id);
5152 yyval.symbol->nameLoc = (yylsp[(3) - (6)]);
5153 yyval.symbol->isRemote = 1;
5154 memberAccessStack[++defaultMemberAccess] = 2;
5155 ;
5156 }
5157 break;
5158 case 243:
5159 {
5160 (void)yyvsp[(2) - (6)].context;
5161 yyval.symbol = DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
5162 yyval.symbol->templateParams = yyvsp[(5) - (6)].list;
5163 FreeIdentifier(yyvsp[(1) - (6)].id);
5164 yyval.symbol->nameLoc = (yylsp[(3) - (6)]);
5165 yyval.symbol->isRemote = 1;
5166 FreeSpecifier(yyvsp[(3) - (6)].specifier);
5167 memberAccessStack[++defaultMemberAccess] = 2;
5168 ;
5169 }
5170 break;
5171 case 244:
5172 {
5173 yyval._class->loc = (yyloc);
5174 yyval._class = yyvsp[(1) - (2)]._class;
5175 ;
5176 }
5177 break;
5178 case 245:
5179 {
5180 yyval._class = yyvsp[(1) - (2)]._class;
5181 yyval._class->definitions = MkList();
5182 yyval._class->blockStart = (yylsp[(2) - (2)]);
5183 yyval._class->loc = (yyloc);
5184 if(defaultMemberAccess > -1)
5185 defaultMemberAccess--;
5186 PopContext(curContext);
5187 ;
5188 }
5189 break;
5190 case 246:
5191 {
5192 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), MkList());
5193 yyval._class->blockStart = (yylsp[(2) - (3)]);
5194 yyval._class->loc = (yyloc);
5195 if(defaultMemberAccess > -1)
5196 defaultMemberAccess--;
5197 PopContext(curContext);
5198 ;
5199 }
5200 break;
5201 case 247:
5202 {
5203 yyval._class = yyvsp[(1) - (3)]._class;
5204 yyval._class->definitions = MkList();
5205 yyval._class->blockStart = (yylsp[(2) - (3)]);
5206 yyval._class->loc = (yyloc);
5207 if(defaultMemberAccess > -1)
5208 defaultMemberAccess--;
5209 PopContext(curContext);
5210 ;
5211 }
5212 break;
5213 case 248:
5214 {
5215 (void)yyvsp[(1) - (3)].context;
5216 yyval._class = MkClass(DeclClassAddNameSpace(yyvsp[(2) - (3)].id->_class, yyvsp[(2) - (3)].id->string), (((void *)0)), (((void *)0)));
5217 FreeIdentifier(yyvsp[(2) - (3)].id);
5218 if(defaultMemberAccess > -1)
5219 defaultMemberAccess--;
5220 PopContext(curContext);
5221 ;
5222 }
5223 break;
5224 case 249:
5225 {
5226 (void)yyvsp[(1) - (3)].context;
5227 yyval._class = MkClass(DeclClass(yyvsp[(2) - (3)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (3)].specifier->__anon1.__anon1.name), (((void *)0)), (((void *)0)));
5228 FreeSpecifier(yyvsp[(2) - (3)].specifier);
5229 if(defaultMemberAccess > -1)
5230 defaultMemberAccess--;
5231 PopContext(curContext);
5232 ;
5233 }
5234 break;
5235 case 250:
5236 {
5237 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, yyvsp[(3) - (3)].list, (((void *)0)));
5238 ;
5239 }
5240 break;
5241 case 251:
5242 {
5243 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), yyvsp[(3) - (3)].list);
5244 yyval._class->deleteWatchable = deleteWatchable;
5245 deleteWatchable = 0;
5246 yyval._class->blockStart = (yylsp[(2) - (3)]);
5247 yyval._class->loc = (yyloc);
5248 yyval._class->loc.end.charPos++;
5249 yyval._class->loc.end.pos++;
5250 if(defaultMemberAccess > -1)
5251 defaultMemberAccess--;
5252 PopContext(curContext);
5253 ;
5254 }
5255 break;
5256 case 252:
5257 {
5258 yyval._class = yyvsp[(1) - (3)]._class;
5259 yyval._class->definitions = yyvsp[(3) - (3)].list;
5260 yyval._class->deleteWatchable = deleteWatchable;
5261 deleteWatchable = 0;
5262 yyval._class->blockStart = (yylsp[(2) - (3)]);
5263 yyval._class->loc = (yyloc);
5264 yyval._class->loc.end.charPos++;
5265 yyval._class->loc.end.pos++;
5266 if(defaultMemberAccess > -1)
5267 defaultMemberAccess--;
5268 PopContext(curContext);
5269 ;
5270 }
5271 break;
5272 case 253:
5273 {
5274 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), yyvsp[(3) - (3)].list);
5275 yyval._class->deleteWatchable = deleteWatchable;
5276 deleteWatchable = 0;
5277 yyval._class->blockStart = (yylsp[(2) - (3)]);
5278 yyval._class->loc = (yyloc);
5279 yyval._class->loc.end.charPos++;
5280 yyval._class->loc.end.pos++;
5281 if(defaultMemberAccess > -1)
5282 defaultMemberAccess--;
5283 PopContext(curContext);
5284 ;
5285 }
5286 break;
5287 case 254:
5288 {
5289 yyval._class = yyvsp[(1) - (3)]._class;
5290 yyval._class->definitions = yyvsp[(3) - (3)].list;
5291 yyval._class->deleteWatchable = deleteWatchable;
5292 deleteWatchable = 0;
5293 yyval._class->blockStart = (yylsp[(2) - (3)]);
5294 yyval._class->loc = (yyloc);
5295 yyval._class->loc.end.charPos++;
5296 yyval._class->loc.end.pos++;
5297 if(defaultMemberAccess > -1)
5298 defaultMemberAccess--;
5299 PopContext(curContext);
5300 ;
5301 }
5302 break;
5303 case 255:
5304 {
5305 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), MkList());
5306 yyval._class->deleteWatchable = deleteWatchable;
5307 deleteWatchable = 0;
5308 yyval._class->blockStart = (yylsp[(2) - (3)]);
5309 yyval._class->loc = (yyloc);
5310 yyval._class->loc.end.charPos++;
5311 yyval._class->loc.end.pos++;
5312 if(defaultMemberAccess > -1)
5313 defaultMemberAccess--;
5314 PopContext(curContext);
5315 ;
5316 }
5317 break;
5318 case 256:
5319 {
5320 yyval._class = yyvsp[(1) - (3)]._class;
5321 yyval._class->definitions = MkList();
5322 yyval._class->deleteWatchable = deleteWatchable;
5323 deleteWatchable = 0;
5324 yyval._class->blockStart = (yylsp[(2) - (3)]);
5325 yyval._class->loc = (yyloc);
5326 yyval._class->loc.end.charPos++;
5327 yyval._class->loc.end.pos++;
5328 if(defaultMemberAccess > -1)
5329 defaultMemberAccess--;
5330 PopContext(curContext);
5331 ;
5332 }
5333 break;
5334 case 257:
5335 {
5336 yyval.id = MkIdentifier(yytext);
5337 yyval.id->loc = (yylsp[(1) - (1)]);
5338 ;
5339 }
5340 break;
5341 case 259:
5342 {
5343 yyval.exp = MkExpBrackets(yyvsp[(2) - (3)].list);
5344 yyval.exp->loc = (yyloc);
5345 ;
5346 }
5347 break;
5348 case 260:
5349 {
5350 yyval.exp = MkExpString(yyvsp[(1) - (1)].string);
5351 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(1) - (1)].string), yyvsp[(1) - (1)].string = 0);
5352 yyval.exp->loc = (yyloc);
5353 ;
5354 }
5355 break;
5356 case 261:
5357 {
5358 yyval.exp = MkExpIntlString(yyvsp[(2) - (2)].string, (((void *)0)));
5359 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (2)].string), yyvsp[(2) - (2)].string = 0);
5360 yyval.exp->loc = (yyloc);
5361 ;
5362 }
5363 break;
5364 case 262:
5365 {
5366 yyval.exp = MkExpIntlString(yyvsp[(4) - (4)].string, yyvsp[(2) - (4)].string);
5367 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (4)].string), yyvsp[(2) - (4)].string = 0);
5368 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(4) - (4)].string), yyvsp[(4) - (4)].string = 0);
5369 yyval.exp->loc = (yyloc);
5370 ;
5371 }
5372 break;
5373 case 263:
5374 {
5375 yyval.exp = MkExpConstant(yytext);
5376 yyval.exp->loc = (yyloc);
5377 ;
5378 }
5379 break;
5380 case 264:
5381 {
5382 yyval.exp = MkExpIdentifier(yyvsp[(1) - (1)].id);
5383 yyval.exp->loc = (yyloc);
5384 ;
5385 }
5386 break;
5387 case 265:
5388 {
5389 yyval.exp = MkExpInstance(yyvsp[(1) - (1)].instance);
5390 yyval.exp->loc = (yyloc);
5391 ;
5392 }
5393 break;
5394 case 266:
5395 {
5396 yyval.exp = MkExpExtensionCompound(yyvsp[(3) - (4)].stmt);
5397 yyval.exp->loc = (yyloc);
5398 ;
5399 }
5400 break;
5401 case 267:
5402 {
5403 yyval.exp = MkExpExtensionExpression(yyvsp[(3) - (4)].list);
5404 yyval.exp->loc = (yyloc);
5405 ;
5406 }
5407 break;
5408 case 268:
5409 {
5410 yyval.exp = MkExpExtensionInitializer(yyvsp[(3) - (5)].typeName, yyvsp[(5) - (5)].initializer);
5411 yyval.exp->loc = (yyloc);
5412 ;
5413 }
5414 break;
5415 case 269:
5416 {
5417 yyval.exp = MkExpExtensionInitializer(yyvsp[(3) - (8)].typeName, MkInitializerAssignment(MkExpExtensionInitializer(yyvsp[(6) - (8)].typeName, yyvsp[(8) - (8)].initializer)));
5418 yyval.exp->loc = (yyloc);
5419 ;
5420 }
5421 break;
5422 case 270:
5423 {
5424 char * constant = yyvsp[(1) - (2)].exp->__anon1.__anon1.constant;
5425 int len = strlen(constant);
5426
5427 if(constant[len - 1] == '.')
5428 {
5429 constant[len - 1] = 0;
5430 yyval.exp = MkExpMember(yyvsp[(1) - (2)].exp, yyvsp[(2) - (2)].id);
5431 yyval.exp->loc = (yyloc);
5432 }
5433 else
5434 yyerror();
5435 ;
5436 }
5437 break;
5438 case 271:
5439 {
5440 yyval.exp = yyvsp[(1) - (1)].exp;
5441 ;
5442 }
5443 break;
5444 case 273:
5445 {
5446 yyval.exp = MkExpWideString(yytext);
5447 yyval.exp->loc = (yyloc);
5448 ;
5449 }
5450 break;
5451 case 274:
5452 {
5453 struct Expression * exp = MkExpDummy();
5454
5455 exp->loc.start = (yylsp[(1) - (2)]).end;
5456 exp->loc.end = (yylsp[(2) - (2)]).start;
5457 yyval.exp = MkExpBrackets(MkListOne(exp));
5458 yyval.exp->loc = (yyloc);
5459 yyerror();
5460 ;
5461 }
5462 break;
5463 case 275:
5464 {
5465 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5466 yyval.exp->loc = (yyloc);
5467 ;
5468 }
5469 break;
5470 case 276:
5471 {
5472 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5473 yyval.exp->loc = (yyloc);
5474 ;
5475 }
5476 break;
5477 case 277:
5478 {
5479 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5480 yyval.exp->loc = (yyloc);
5481 ;
5482 }
5483 break;
5484 case 278:
5485 {
5486 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5487 yyval.exp->loc = (yyloc);
5488 ;
5489 }
5490 break;
5491 case 279:
5492 {
5493 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5494 yyval.exp->loc = (yyloc);
5495 ;
5496 }
5497 break;
5498 case 280:
5499 {
5500 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5501 yyval.exp->loc = (yyloc);
5502 ;
5503 }
5504 break;
5505 case 281:
5506 {
5507 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5508 yyval.exp->loc = (yyloc);
5509 ;
5510 }
5511 break;
5512 case 282:
5513 {
5514 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5515 yyval.exp->loc = (yyloc);
5516 ;
5517 }
5518 break;
5519 case 283:
5520 {
5521 yyval.exp = MkExpRenew(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5522 yyval.exp->loc = (yyloc);
5523 ;
5524 }
5525 break;
5526 case 284:
5527 {
5528 yyval.exp = MkExpRenew(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5529 yyval.exp->loc = (yyloc);
5530 ;
5531 }
5532 break;
5533 case 285:
5534 {
5535 yyval.exp = MkExpRenew(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5536 yyval.exp->loc = (yyloc);
5537 ;
5538 }
5539 break;
5540 case 286:
5541 {
5542 yyval.exp = MkExpRenew(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5543 yyval.exp->loc = (yyloc);
5544 ;
5545 }
5546 break;
5547 case 287:
5548 {
5549 yyval.exp = MkExpRenew0(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5550 yyval.exp->loc = (yyloc);
5551 ;
5552 }
5553 break;
5554 case 288:
5555 {
5556 yyval.exp = MkExpRenew0(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5557 yyval.exp->loc = (yyloc);
5558 ;
5559 }
5560 break;
5561 case 289:
5562 {
5563 yyval.exp = MkExpRenew0(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5564 yyval.exp->loc = (yyloc);
5565 ;
5566 }
5567 break;
5568 case 290:
5569 {
5570 yyval.exp = MkExpRenew0(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5571 yyval.exp->loc = (yyloc);
5572 ;
5573 }
5574 break;
5575 case 291:
5576 {
5577 yyval.exp = MkExpClass(yyvsp[(3) - (4)].list, (((void *)0)));
5578 yyval.exp->loc = (yyloc);
5579 ;
5580 }
5581 break;
5582 case 292:
5583 {
5584 yyval.exp = MkExpClass(yyvsp[(3) - (5)].list, yyvsp[(4) - (5)].declarator);
5585 yyval.exp->loc = (yyloc);
5586 ;
5587 }
5588 break;
5589 case 293:
5590 {
5591 yyval.exp = MkExpClass(MkListOne(MkSpecifierName(yyvsp[(3) - (4)].id->string)), (((void *)0)));
5592 FreeIdentifier(yyvsp[(3) - (4)].id);
5593 yyval.exp->loc = (yyloc);
5594 ;
5595 }
5596 break;
5597 case 294:
5598 {
5599 yyval.exp = MkExpVaArg(yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].typeName);
5600 yyval.exp->loc = (yyloc);
5601 ;
5602 }
5603 break;
5604 case 295:
5605 {
5606 yyval.exp = MkExpClassData(yyvsp[(3) - (4)].id);
5607 yyval.exp->loc = (yyloc);
5608 ;
5609 }
5610 break;
5611 case 300:
5612 {
5613 yyval.exp = MkExpArray(yyvsp[(2) - (3)].list);
5614 yyval.exp->loc = (yyloc);
5615 ;
5616 }
5617 break;
5618 case 301:
5619 {
5620 yyval.exp = MkExpArray((((void *)0)));
5621 yyval.exp->loc = (yyloc);
5622 ;
5623 }
5624 break;
5625 case 302:
5626 {
5627 yyval.exp = MkExpInstance(yyvsp[(1) - (1)].instance);
5628 yyval.exp->loc = (yyloc);
5629 ;
5630 }
5631 break;
5632 case 303:
5633 {
5634 yyval.exp = MkExpInstance(yyvsp[(1) - (2)].instance);
5635 yyval.exp->loc = (yyloc);
5636 ;
5637 }
5638 break;
5639 case 304:
5640 {
5641 yyerror();
5642 yyval.exp = MkExpBrackets(yyvsp[(2) - (2)].list);
5643 yyval.exp->loc = (yyloc);
5644 ;
5645 }
5646 break;
5647 case 305:
5648 {
5649 yyval.exp = MkExpBrackets(yyvsp[(2) - (2)].list);
5650 yyval.exp->loc = (yyloc);
5651 ;
5652 }
5653 break;
5654 case 307:
5655 {
5656 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5657 yyval.exp->loc = (yyloc);
5658 ;
5659 }
5660 break;
5661 case 308:
5662 {
5663 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5664 yyval.exp->loc = (yyloc);
5665 ;
5666 }
5667 break;
5668 case 309:
5669 {
5670 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, MkList());
5671 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
5672 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
5673 yyval.exp->loc = (yyloc);
5674 ;
5675 }
5676 break;
5677 case 310:
5678 {
5679 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5680 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5681 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5682 yyval.exp->loc = (yyloc);
5683 ;
5684 }
5685 break;
5686 case 311:
5687 {
5688 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5689 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5690 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5691 yyval.exp->loc = (yyloc);
5692 if((*yyvsp[(3) - (4)].list).last)
5693 ((struct Expression *)(*yyvsp[(3) - (4)].list).last)->loc.end = (yylsp[(4) - (4)]).start;
5694 ;
5695 }
5696 break;
5697 case 312:
5698 {
5699 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5700 yyval.exp->loc = (yyloc);
5701 ;
5702 }
5703 break;
5704 case 313:
5705 {
5706 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5707 yyval.exp->loc = (yyloc);
5708 ;
5709 }
5710 break;
5711 case 314:
5712 {
5713 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, INC_OP, (((void *)0)));
5714 yyval.exp->loc = (yyloc);
5715 ;
5716 }
5717 break;
5718 case 315:
5719 {
5720 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, DEC_OP, (((void *)0)));
5721 yyval.exp->loc = (yyloc);
5722 ;
5723 }
5724 break;
5725 case 316:
5726 {
5727 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5728 yyval.exp->loc = (yyloc);
5729 ;
5730 }
5731 break;
5732 case 317:
5733 {
5734 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5735 yyval.exp->loc = (yyloc);
5736 ;
5737 }
5738 break;
5739 case 318:
5740 {
5741 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, MkList());
5742 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
5743 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
5744 yyval.exp->loc = (yyloc);
5745 ;
5746 }
5747 break;
5748 case 319:
5749 {
5750 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5751 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5752 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5753 yyval.exp->loc = (yyloc);
5754 ;
5755 }
5756 break;
5757 case 320:
5758 {
5759 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5760 yyval.exp->loc = (yyloc);
5761 ;
5762 }
5763 break;
5764 case 321:
5765 {
5766 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5767 yyval.exp->loc = (yyloc);
5768 ;
5769 }
5770 break;
5771 case 322:
5772 {
5773 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, INC_OP, (((void *)0)));
5774 yyval.exp->loc = (yyloc);
5775 ;
5776 }
5777 break;
5778 case 323:
5779 {
5780 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, DEC_OP, (((void *)0)));
5781 yyval.exp->loc = (yyloc);
5782 ;
5783 }
5784 break;
5785 case 324:
5786 {
5787 yyval.list = MkList();
5788 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5789 ;
5790 }
5791 break;
5792 case 325:
5793 {
5794 yyval.list = MkList();
5795 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5796 ;
5797 }
5798 break;
5799 case 326:
5800 {
5801 yyval.list = yyvsp[(1) - (3)].list;
5802 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5803 ;
5804 }
5805 break;
5806 case 327:
5807 {
5808 yyval.list = yyvsp[(1) - (3)].list;
5809 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5810 ;
5811 }
5812 break;
5813 case 328:
5814 {
5815 yyval.list = MkList();
5816 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5817 ;
5818 }
5819 break;
5820 case 329:
5821 {
5822 yyval.list = MkList();
5823 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5824 ;
5825 }
5826 break;
5827 case 330:
5828 {
5829 yyval.list = yyvsp[(1) - (3)].list;
5830 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5831 ;
5832 }
5833 break;
5834 case 331:
5835 {
5836 yyval.list = yyvsp[(1) - (3)].list;
5837 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5838 ;
5839 }
5840 break;
5841 case 332:
5842 {
5843 struct Expression * exp = MkExpDummy();
5844
5845 yyerror();
5846 exp->loc.start = (yylsp[(2) - (2)]).end;
5847 exp->loc.end = (yylsp[(2) - (2)]).end;
5848 yyval.list = yyvsp[(1) - (2)].list;
5849 ListAdd(yyvsp[(1) - (2)].list, exp);
5850 ;
5851 }
5852 break;
5853 case 333:
5854 {
5855 yyval.exp = MkExpOp((((void *)0)), INC_OP, yyvsp[(2) - (2)].exp);
5856 yyval.exp->loc = (yyloc);
5857 ;
5858 }
5859 break;
5860 case 334:
5861 {
5862 yyval.exp = MkExpOp((((void *)0)), DEC_OP, yyvsp[(2) - (2)].exp);
5863 yyval.exp->loc = (yyloc);
5864 ;
5865 }
5866 break;
5867 case 335:
5868 {
5869 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
5870 yyval.exp->loc = (yyloc);
5871 ;
5872 }
5873 break;
5874 case 336:
5875 {
5876 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
5877 yyval.exp->loc = (yyloc);
5878 ;
5879 }
5880 break;
5881 case 337:
5882 {
5883 yyval.exp = MkExpOp((((void *)0)), SIZEOF, yyvsp[(2) - (2)].exp);
5884 yyval.exp->loc = (yyloc);
5885 ;
5886 }
5887 break;
5888 case 338:
5889 {
5890 yyval.exp = MkExpTypeSize(yyvsp[(3) - (4)].typeName);
5891 yyval.exp->loc = (yyloc);
5892 ;
5893 }
5894 break;
5895 case 339:
5896 {
5897 yyval.exp = MkExpClassSize(yyvsp[(4) - (5)].specifier);
5898 yyval.exp->loc = (yyloc);
5899 ;
5900 }
5901 break;
5902 case 340:
5903 {
5904 yyval.exp = MkExpClassSize(yyvsp[(4) - (5)].specifier);
5905 yyval.exp->loc = (yyloc);
5906 ;
5907 }
5908 break;
5909 case 341:
5910 {
5911 yyval.exp = MkExpOp((((void *)0)), ALIGNOF, yyvsp[(2) - (2)].exp);
5912 yyval.exp->loc = (yyloc);
5913 ;
5914 }
5915 break;
5916 case 342:
5917 {
5918 yyval.exp = MkExpTypeAlign(yyvsp[(3) - (4)].typeName);
5919 yyval.exp->loc = (yyloc);
5920 ;
5921 }
5922 break;
5923 case 343:
5924 {
5925 yyval.exp = MkExpOffsetOf(yyvsp[(3) - (6)].typeName, yyvsp[(5) - (6)].id);
5926 yyval.exp->loc = (yyloc);
5927 ;
5928 }
5929 break;
5930 case 346:
5931 {
5932 yyval.i = '&';
5933 ;
5934 }
5935 break;
5936 case 347:
5937 {
5938 yyval.i = '*';
5939 ;
5940 }
5941 break;
5942 case 348:
5943 {
5944 yyval.i = '+';
5945 ;
5946 }
5947 break;
5948 case 349:
5949 {
5950 yyval.i = '-';
5951 ;
5952 }
5953 break;
5954 case 350:
5955 {
5956 yyval.i = '~';
5957 ;
5958 }
5959 break;
5960 case 351:
5961 {
5962 yyval.i = '!';
5963 ;
5964 }
5965 break;
5966 case 352:
5967 {
5968 yyval.i = DELETE;
5969 ;
5970 }
5971 break;
5972 case 353:
5973 {
5974 yyval.i = _INCREF;
5975 ;
5976 }
5977 break;
5978 case 355:
5979 {
5980 yyval.exp = MkExpCast(yyvsp[(2) - (4)].typeName, yyvsp[(4) - (4)].exp);
5981 yyval.exp->loc = (yyloc);
5982 ;
5983 }
5984 break;
5985 case 357:
5986 {
5987 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
5988 yyval.exp->loc = (yyloc);
5989 ;
5990 }
5991 break;
5992 case 358:
5993 {
5994 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
5995 yyval.exp->loc = (yyloc);
5996 ;
5997 }
5998 break;
5999 case 359:
6000 {
6001 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6002 yyval.exp->loc = (yyloc);
6003 ;
6004 }
6005 break;
6006 case 360:
6007 {
6008 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6009 yyval.exp->loc = (yyloc);
6010 ;
6011 }
6012 break;
6013 case 361:
6014 {
6015 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6016 yyval.exp->loc = (yyloc);
6017 ;
6018 }
6019 break;
6020 case 362:
6021 {
6022 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6023 yyval.exp->loc = (yyloc);
6024 ;
6025 }
6026 break;
6027 case 364:
6028 {
6029 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6030 yyval.exp->loc = (yyloc);
6031 ;
6032 }
6033 break;
6034 case 365:
6035 {
6036 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6037 yyval.exp->loc = (yyloc);
6038 ;
6039 }
6040 break;
6041 case 366:
6042 {
6043 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6044 yyval.exp->loc = (yyloc);
6045 ;
6046 }
6047 break;
6048 case 367:
6049 {
6050 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6051 yyval.exp->loc = (yyloc);
6052 ;
6053 }
6054 break;
6055 case 369:
6056 {
6057 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6058 yyval.exp->loc = (yyloc);
6059 ;
6060 }
6061 break;
6062 case 370:
6063 {
6064 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6065 yyval.exp->loc = (yyloc);
6066 ;
6067 }
6068 break;
6069 case 371:
6070 {
6071 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6072 yyval.exp->loc = (yyloc);
6073 ;
6074 }
6075 break;
6076 case 372:
6077 {
6078 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6079 yyval.exp->loc = (yyloc);
6080 ;
6081 }
6082 break;
6083 case 373:
6084 {
6085 yyval.exp = yyvsp[(1) - (2)].exp;
6086 skipErrors = 1;
6087 ;
6088 }
6089 break;
6090 case 375:
6091 {
6092 skipErrors = 0;
6093 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, '<', yyvsp[(2) - (2)].exp);
6094 yyval.exp->loc = (yyloc);
6095 ;
6096 }
6097 break;
6098 case 376:
6099 {
6100 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6101 yyval.exp->loc = (yyloc);
6102 ;
6103 }
6104 break;
6105 case 377:
6106 {
6107 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6108 yyval.exp->loc = (yyloc);
6109 ;
6110 }
6111 break;
6112 case 378:
6113 {
6114 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6115 yyval.exp->loc = (yyloc);
6116 ;
6117 }
6118 break;
6119 case 379:
6120 {
6121 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '<', yyvsp[(3) - (3)].exp);
6122 yyval.exp->loc = (yyloc);
6123 ;
6124 }
6125 break;
6126 case 380:
6127 {
6128 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6129 yyval.exp->loc = (yyloc);
6130 ;
6131 }
6132 break;
6133 case 381:
6134 {
6135 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6136 yyval.exp->loc = (yyloc);
6137 ;
6138 }
6139 break;
6140 case 382:
6141 {
6142 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6143 yyval.exp->loc = (yyloc);
6144 ;
6145 }
6146 break;
6147 case 384:
6148 {
6149 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6150 yyval.exp->loc = (yyloc);
6151 ;
6152 }
6153 break;
6154 case 385:
6155 {
6156 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6157 yyval.exp->loc = (yyloc);
6158 ;
6159 }
6160 break;
6161 case 386:
6162 {
6163 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6164 yyval.exp->loc = (yyloc);
6165 ;
6166 }
6167 break;
6168 case 387:
6169 {
6170 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6171 yyval.exp->loc = (yyloc);
6172 ;
6173 }
6174 break;
6175 case 388:
6176 {
6177 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6178 yyval.exp->loc = (yyloc);
6179 ;
6180 }
6181 break;
6182 case 389:
6183 {
6184 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6185 yyval.exp->loc = (yyloc);
6186 ;
6187 }
6188 break;
6189 case 390:
6190 {
6191 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6192 yyval.exp->loc = (yyloc);
6193 ;
6194 }
6195 break;
6196 case 391:
6197 {
6198 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6199 yyval.exp->loc = (yyloc);
6200 ;
6201 }
6202 break;
6203 case 393:
6204 {
6205 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6206 yyval.exp->loc = (yyloc);
6207 ;
6208 }
6209 break;
6210 case 394:
6211 {
6212 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6213 yyval.exp->loc = (yyloc);
6214 ;
6215 }
6216 break;
6217 case 395:
6218 {
6219 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6220 yyval.exp->loc = (yyloc);
6221 ;
6222 }
6223 break;
6224 case 396:
6225 {
6226 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6227 yyval.exp->loc = (yyloc);
6228 ;
6229 }
6230 break;
6231 case 398:
6232 {
6233 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6234 yyval.exp->loc = (yyloc);
6235 ;
6236 }
6237 break;
6238 case 399:
6239 {
6240 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6241 yyval.exp->loc = (yyloc);
6242 ;
6243 }
6244 break;
6245 case 400:
6246 {
6247 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6248 yyval.exp->loc = (yyloc);
6249 ;
6250 }
6251 break;
6252 case 401:
6253 {
6254 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6255 yyval.exp->loc = (yyloc);
6256 ;
6257 }
6258 break;
6259 case 403:
6260 {
6261 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6262 yyval.exp->loc = (yyloc);
6263 ;
6264 }
6265 break;
6266 case 404:
6267 {
6268 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6269 yyval.exp->loc = (yyloc);
6270 ;
6271 }
6272 break;
6273 case 405:
6274 {
6275 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6276 yyval.exp->loc = (yyloc);
6277 ;
6278 }
6279 break;
6280 case 406:
6281 {
6282 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6283 yyval.exp->loc = (yyloc);
6284 ;
6285 }
6286 break;
6287 case 408:
6288 {
6289 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
6290 yyval.exp->loc = (yyloc);
6291 ;
6292 }
6293 break;
6294 case 409:
6295 {
6296 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
6297 yyval.exp->loc = (yyloc);
6298 ;
6299 }
6300 break;
6301 case 411:
6302 {
6303 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
6304 yyval.exp->loc = (yyloc);
6305 ;
6306 }
6307 break;
6308 case 412:
6309 {
6310 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
6311 yyval.exp->loc = (yyloc);
6312 ;
6313 }
6314 break;
6315 case 414:
6316 {
6317 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6318 yyval.exp->loc = (yyloc);
6319 ;
6320 }
6321 break;
6322 case 415:
6323 {
6324 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6325 yyval.exp->loc = (yyloc);
6326 ;
6327 }
6328 break;
6329 case 416:
6330 {
6331 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6332 yyval.exp->loc = (yyloc);
6333 ;
6334 }
6335 break;
6336 case 417:
6337 {
6338 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6339 yyval.exp->loc = (yyloc);
6340 ;
6341 }
6342 break;
6343 case 418:
6344 {
6345 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6346 yyval.exp->loc = (yyloc);
6347 ;
6348 }
6349 break;
6350 case 419:
6351 {
6352 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6353 yyval.exp->loc = (yyloc);
6354 ;
6355 }
6356 break;
6357 case 420:
6358 {
6359 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6360 yyval.exp->loc = (yyloc);
6361 ;
6362 }
6363 break;
6364 case 421:
6365 {
6366 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6367 yyval.exp->loc = (yyloc);
6368 ;
6369 }
6370 break;
6371 case 422:
6372 {
6373 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6374 yyval.exp->loc = (yyloc);
6375 ;
6376 }
6377 break;
6378 case 423:
6379 {
6380 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6381 yyval.exp->loc = (yyloc);
6382 ;
6383 }
6384 break;
6385 case 424:
6386 {
6387 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6388 yyval.exp->loc = (yyloc);
6389 ;
6390 }
6391 break;
6392 case 425:
6393 {
6394 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6395 yyval.exp->loc = (yyloc);
6396 ;
6397 }
6398 break;
6399 case 426:
6400 {
6401 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6402 yyval.exp->loc = (yyloc);
6403 ;
6404 }
6405 break;
6406 case 427:
6407 {
6408 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6409 yyval.exp->loc = (yyloc);
6410 ;
6411 }
6412 break;
6413 case 428:
6414 {
6415 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6416 yyval.exp->loc = (yyloc);
6417 ;
6418 }
6419 break;
6420 case 429:
6421 {
6422 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6423 yyval.exp->loc = (yyloc);
6424 ;
6425 }
6426 break;
6427 case 431:
6428 {
6429 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6430 yyval.exp->loc = (yyloc);
6431 ;
6432 }
6433 break;
6434 case 432:
6435 {
6436 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6437 yyval.exp->loc = (yyloc);
6438 ;
6439 }
6440 break;
6441 case 433:
6442 {
6443 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "l-value expected\n", (((void *)0))));
6444 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6445 yyval.exp->loc = (yyloc);
6446 ;
6447 }
6448 break;
6449 case 434:
6450 {
6451 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "l-value expected\n", (((void *)0))));
6452 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6453 yyval.exp->loc = (yyloc);
6454 ;
6455 }
6456 break;
6457 case 435:
6458 {
6459 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6460 yyval.exp->loc = (yyloc);
6461 ;
6462 }
6463 break;
6464 case 436:
6465 {
6466 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6467 yyval.exp->loc = (yyloc);
6468 ;
6469 }
6470 break;
6471 case 437:
6472 {
6473 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6474 yyval.exp->loc = (yyloc);
6475 ;
6476 }
6477 break;
6478 case 438:
6479 {
6480 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6481 yyval.exp->loc = (yyloc);
6482 ;
6483 }
6484 break;
6485 case 439:
6486 {
6487 yyval.i = '=';
6488 ;
6489 }
6490 break;
6491 case 440:
6492 {
6493 yyval.i = MUL_ASSIGN;
6494 ;
6495 }
6496 break;
6497 case 441:
6498 {
6499 yyval.i = DIV_ASSIGN;
6500 ;
6501 }
6502 break;
6503 case 442:
6504 {
6505 yyval.i = MOD_ASSIGN;
6506 ;
6507 }
6508 break;
6509 case 443:
6510 {
6511 yyval.i = ADD_ASSIGN;
6512 ;
6513 }
6514 break;
6515 case 444:
6516 {
6517 yyval.i = SUB_ASSIGN;
6518 ;
6519 }
6520 break;
6521 case 445:
6522 {
6523 yyval.i = LEFT_ASSIGN;
6524 ;
6525 }
6526 break;
6527 case 446:
6528 {
6529 yyval.i = RIGHT_ASSIGN;
6530 ;
6531 }
6532 break;
6533 case 447:
6534 {
6535 yyval.i = AND_ASSIGN;
6536 ;
6537 }
6538 break;
6539 case 448:
6540 {
6541 yyval.i = XOR_ASSIGN;
6542 ;
6543 }
6544 break;
6545 case 449:
6546 {
6547 yyval.i = OR_ASSIGN;
6548 ;
6549 }
6550 break;
6551 case 450:
6552 {
6553 yyval.list = MkList();
6554 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
6555 ;
6556 }
6557 break;
6558 case 451:
6559 {
6560 yyval.list = yyvsp[(1) - (3)].list;
6561 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6562 ;
6563 }
6564 break;
6565 case 452:
6566 {
6567 yyval.list = yyvsp[(1) - (3)].list;
6568 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6569 ;
6570 }
6571 break;
6572 case 454:
6573 {
6574 yyval.list = MkList();
6575 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
6576 ;
6577 }
6578 break;
6579 case 455:
6580 {
6581 yyval.list = yyvsp[(1) - (3)].list;
6582 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6583 ;
6584 }
6585 break;
6586 case 456:
6587 {
6588 yyval.list = yyvsp[(1) - (3)].list;
6589 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6590 ;
6591 }
6592 break;
6593 case 458:
6594 {
6595 yyval.exp = MkExpDummy();
6596 yyval.exp->loc = (yyloc);
6597 ;
6598 }
6599 break;
6600 case 460:
6601 {
6602 yyval.exp = MkExpInstance(yyvsp[(1) - (2)].instance);
6603 yyval.exp->loc = (yyloc);
6604 ;
6605 }
6606 break;
6607 case 461:
6608 {
6609 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, (((void *)0)));
6610 yyval.exp->loc = (yyloc);
6611 ;
6612 }
6613 break;
6614 case 462:
6615 {
6616 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, (((void *)0)));
6617 yyval.exp->loc = (yyloc);
6618 ;
6619 }
6620 break;
6621 case 463:
6622 {
6623 yyerror();
6624 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6625 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6626 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6627 yyval.exp->loc = (yyloc);
6628 yyval.exp->__anon1.call.argLoc.end.charPos++;
6629 ;
6630 }
6631 break;
6632 case 464:
6633 {
6634 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6635 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6636 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6637 yyval.exp->loc = (yyloc);
6638 yyval.exp->__anon1.call.argLoc.end.charPos++;
6639 ;
6640 }
6641 break;
6642 case 465:
6643 {
6644 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, (((void *)0)));
6645 yyval.exp->loc = (yyloc);
6646 ;
6647 }
6648 break;
6649 case 466:
6650 {
6651 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6652 yyval.exp->loc = (yyloc);
6653 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6654 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6655 yyval.exp->__anon1.call.argLoc.end.charPos++;
6656 ;
6657 }
6658 break;
6659 case 467:
6660 {
6661 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, (((void *)0)));
6662 yyval.exp->loc = (yyloc);
6663 ;
6664 }
6665 break;
6666 case 468:
6667 {
6668 yyval.exp = MkExpOp((((void *)0)), INC_OP, yyvsp[(2) - (2)].exp);
6669 yyval.exp->loc = (yyloc);
6670 ;
6671 }
6672 break;
6673 case 469:
6674 {
6675 yyval.exp = MkExpOp((((void *)0)), DEC_OP, yyvsp[(2) - (2)].exp);
6676 yyval.exp->loc = (yyloc);
6677 ;
6678 }
6679 break;
6680 case 470:
6681 {
6682 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
6683 yyval.exp->loc = (yyloc);
6684 ;
6685 }
6686 break;
6687 case 471:
6688 {
6689 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
6690 yyval.exp->loc = (yyloc);
6691 ;
6692 }
6693 break;
6694 case 472:
6695 {
6696 yyval.exp = MkExpOp((((void *)0)), SIZEOF, yyvsp[(2) - (2)].exp);
6697 yyval.exp->loc = (yyloc);
6698 ;
6699 }
6700 break;
6701 case 473:
6702 {
6703 yyval.exp = MkExpTypeSize(yyvsp[(3) - (5)].typeName);
6704 yyval.exp->loc = (yyloc);
6705 ;
6706 }
6707 break;
6708 case 474:
6709 {
6710 yyval.exp = MkExpClassSize(yyvsp[(4) - (6)].specifier);
6711 yyval.exp->loc = (yyloc);
6712 ;
6713 }
6714 break;
6715 case 475:
6716 {
6717 yyval.exp = MkExpClassSize(yyvsp[(4) - (6)].specifier);
6718 yyval.exp->loc = (yyloc);
6719 ;
6720 }
6721 break;
6722 case 476:
6723 {
6724 yyval.exp = MkExpOp((((void *)0)), ALIGNOF, yyvsp[(2) - (2)].exp);
6725 yyval.exp->loc = (yyloc);
6726 ;
6727 }
6728 break;
6729 case 477:
6730 {
6731 yyval.exp = MkExpTypeAlign(yyvsp[(3) - (5)].typeName);
6732 yyval.exp->loc = (yyloc);
6733 ;
6734 }
6735 break;
6736 case 481:
6737 {
6738 yyval.exp = MkExpCast(yyvsp[(2) - (4)].typeName, yyvsp[(4) - (4)].exp);
6739 yyval.exp->loc = (yyloc);
6740 ;
6741 }
6742 break;
6743 case 483:
6744 {
6745 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6746 yyval.exp->loc = (yyloc);
6747 ;
6748 }
6749 break;
6750 case 484:
6751 {
6752 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6753 yyval.exp->loc = (yyloc);
6754 ;
6755 }
6756 break;
6757 case 485:
6758 {
6759 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6760 yyval.exp->loc = (yyloc);
6761 ;
6762 }
6763 break;
6764 case 486:
6765 {
6766 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6767 yyval.exp->loc = (yyloc);
6768 ;
6769 }
6770 break;
6771 case 487:
6772 {
6773 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6774 yyval.exp->loc = (yyloc);
6775 ;
6776 }
6777 break;
6778 case 488:
6779 {
6780 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6781 yyval.exp->loc = (yyloc);
6782 ;
6783 }
6784 break;
6785 case 490:
6786 {
6787 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6788 yyval.exp->loc = (yyloc);
6789 ;
6790 }
6791 break;
6792 case 491:
6793 {
6794 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6795 yyval.exp->loc = (yyloc);
6796 ;
6797 }
6798 break;
6799 case 492:
6800 {
6801 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6802 yyval.exp->loc = (yyloc);
6803 ;
6804 }
6805 break;
6806 case 493:
6807 {
6808 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6809 yyval.exp->loc = (yyloc);
6810 ;
6811 }
6812 break;
6813 case 495:
6814 {
6815 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6816 yyval.exp->loc = (yyloc);
6817 ;
6818 }
6819 break;
6820 case 496:
6821 {
6822 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6823 yyval.exp->loc = (yyloc);
6824 ;
6825 }
6826 break;
6827 case 497:
6828 {
6829 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6830 yyval.exp->loc = (yyloc);
6831 ;
6832 }
6833 break;
6834 case 498:
6835 {
6836 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6837 yyval.exp->loc = (yyloc);
6838 ;
6839 }
6840 break;
6841 case 500:
6842 {
6843 if(yyvsp[(1) - (2)].exp->type == 0)
6844 {
6845 _DeclClass(yyvsp[(1) - (2)].exp->__anon1.__anon1.identifier->_class, yyvsp[(1) - (2)].exp->__anon1.__anon1.identifier->string);
6846 skipErrors = 0;
6847 FreeExpression(yyvsp[(1) - (2)].exp);
6848 FreeExpression(yyvsp[(2) - (2)].exp);
6849 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
6850 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
6851
6852 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
6853 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
6854 resetScannerPos(&(yylsp[(1) - (2)]).start);
6855 (yychar = (-2));
6856 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
6857 yystate = *yyssp;
6858 do
6859 {
6860 if(yydebug)
6861 yy_stack_print((yyss), (yyssp));
6862 }while((0));
6863 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
6864 yystate = *yyssp;
6865 do
6866 {
6867 if(yydebug)
6868 yy_stack_print((yyss), (yyssp));
6869 }while((0));
6870 (yyerrstatus = 0);
6871 goto yysetstate;
6872 }
6873 else
6874 {
6875 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, '<', yyvsp[(2) - (2)].exp);
6876 yyval.exp->loc = (yyloc);
6877 }
6878 skipErrors = 0;
6879 ;
6880 }
6881 break;
6882 case 501:
6883 {
6884 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6885 yyval.exp->loc = (yyloc);
6886 ;
6887 }
6888 break;
6889 case 502:
6890 {
6891 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6892 yyval.exp->loc = (yyloc);
6893 ;
6894 }
6895 break;
6896 case 503:
6897 {
6898 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6899 yyval.exp->loc = (yyloc);
6900 ;
6901 }
6902 break;
6903 case 504:
6904 {
6905 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '<', yyvsp[(3) - (3)].exp);
6906 yyval.exp->loc = (yyloc);
6907 ;
6908 }
6909 break;
6910 case 505:
6911 {
6912 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6913 yyval.exp->loc = (yyloc);
6914 ;
6915 }
6916 break;
6917 case 506:
6918 {
6919 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6920 yyval.exp->loc = (yyloc);
6921 ;
6922 }
6923 break;
6924 case 507:
6925 {
6926 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6927 yyval.exp->loc = (yyloc);
6928 ;
6929 }
6930 break;
6931 case 509:
6932 {
6933 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6934 yyval.exp->loc = (yyloc);
6935 ;
6936 }
6937 break;
6938 case 510:
6939 {
6940 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6941 yyval.exp->loc = (yyloc);
6942 ;
6943 }
6944 break;
6945 case 511:
6946 {
6947 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6948 yyval.exp->loc = (yyloc);
6949 ;
6950 }
6951 break;
6952 case 512:
6953 {
6954 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6955 yyval.exp->loc = (yyloc);
6956 ;
6957 }
6958 break;
6959 case 513:
6960 {
6961 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6962 yyval.exp->loc = (yyloc);
6963 ;
6964 }
6965 break;
6966 case 514:
6967 {
6968 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6969 yyval.exp->loc = (yyloc);
6970 ;
6971 }
6972 break;
6973 case 515:
6974 {
6975 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6976 yyval.exp->loc = (yyloc);
6977 ;
6978 }
6979 break;
6980 case 516:
6981 {
6982 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6983 yyval.exp->loc = (yyloc);
6984 ;
6985 }
6986 break;
6987 case 518:
6988 {
6989 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6990 yyval.exp->loc = (yyloc);
6991 ;
6992 }
6993 break;
6994 case 519:
6995 {
6996 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6997 yyval.exp->loc = (yyloc);
6998 ;
6999 }
7000 break;
7001 case 520:
7002 {
7003 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
7004 yyval.exp->loc = (yyloc);
7005 ;
7006 }
7007 break;
7008 case 521:
7009 {
7010 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
7011 yyval.exp->loc = (yyloc);
7012 ;
7013 }
7014 break;
7015 case 523:
7016 {
7017 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7018 yyval.exp->loc = (yyloc);
7019 ;
7020 }
7021 break;
7022 case 524:
7023 {
7024 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7025 yyval.exp->loc = (yyloc);
7026 ;
7027 }
7028 break;
7029 case 525:
7030 {
7031 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7032 yyval.exp->loc = (yyloc);
7033 ;
7034 }
7035 break;
7036 case 526:
7037 {
7038 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7039 yyval.exp->loc = (yyloc);
7040 ;
7041 }
7042 break;
7043 case 528:
7044 {
7045 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7046 yyval.exp->loc = (yyloc);
7047 ;
7048 }
7049 break;
7050 case 529:
7051 {
7052 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7053 yyval.exp->loc = (yyloc);
7054 ;
7055 }
7056 break;
7057 case 530:
7058 {
7059 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7060 yyval.exp->loc = (yyloc);
7061 ;
7062 }
7063 break;
7064 case 531:
7065 {
7066 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7067 yyval.exp->loc = (yyloc);
7068 ;
7069 }
7070 break;
7071 case 533:
7072 {
7073 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
7074 yyval.exp->loc = (yyloc);
7075 ;
7076 }
7077 break;
7078 case 534:
7079 {
7080 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
7081 yyval.exp->loc = (yyloc);
7082 ;
7083 }
7084 break;
7085 case 536:
7086 {
7087 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
7088 yyval.exp->loc = (yyloc);
7089 ;
7090 }
7091 break;
7092 case 537:
7093 {
7094 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
7095 yyval.exp->loc = (yyloc);
7096 ;
7097 }
7098 break;
7099 case 539:
7100 {
7101 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7102 yyval.exp->loc = (yyloc);
7103 ;
7104 }
7105 break;
7106 case 540:
7107 {
7108 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7109 yyval.exp->loc = (yyloc);
7110 ;
7111 }
7112 break;
7113 case 541:
7114 {
7115 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7116 yyval.exp->loc = (yyloc);
7117 ;
7118 }
7119 break;
7120 case 542:
7121 {
7122 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7123 yyval.exp->loc = (yyloc);
7124 ;
7125 }
7126 break;
7127 case 543:
7128 {
7129 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7130 yyval.exp->loc = (yyloc);
7131 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7132 ;
7133 }
7134 break;
7135 case 544:
7136 {
7137 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7138 yyval.exp->loc = (yyloc);
7139 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7140 ;
7141 }
7142 break;
7143 case 545:
7144 {
7145 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7146 yyval.exp->loc = (yyloc);
7147 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7148 ;
7149 }
7150 break;
7151 case 546:
7152 {
7153 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7154 yyval.exp->loc = (yyloc);
7155 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7156 ;
7157 }
7158 break;
7159 case 547:
7160 {
7161 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7162 yyval.exp->loc = (yyloc);
7163 ;
7164 }
7165 break;
7166 case 548:
7167 {
7168 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7169 yyval.exp->loc = (yyloc);
7170 ;
7171 }
7172 break;
7173 case 549:
7174 {
7175 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7176 yyval.exp->loc = (yyloc);
7177 ;
7178 }
7179 break;
7180 case 550:
7181 {
7182 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7183 yyval.exp->loc = (yyloc);
7184 ;
7185 }
7186 break;
7187 case 551:
7188 {
7189 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7190 yyval.exp->loc = (yyloc);
7191 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7192 ;
7193 }
7194 break;
7195 case 552:
7196 {
7197 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7198 yyval.exp->loc = (yyloc);
7199 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7200 ;
7201 }
7202 break;
7203 case 553:
7204 {
7205 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7206 yyval.exp->loc = (yyloc);
7207 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7208 ;
7209 }
7210 break;
7211 case 554:
7212 {
7213 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7214 yyval.exp->loc = (yyloc);
7215 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7216 ;
7217 }
7218 break;
7219 case 555:
7220 {
7221 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7222 yyval.exp->loc = (yyloc);
7223 ;
7224 }
7225 break;
7226 case 556:
7227 {
7228 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7229 yyval.exp->loc = (yyloc);
7230 ;
7231 }
7232 break;
7233 case 557:
7234 {
7235 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7236 yyval.exp->loc = (yyloc);
7237 ;
7238 }
7239 break;
7240 case 558:
7241 {
7242 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7243 yyval.exp->loc = (yyloc);
7244 ;
7245 }
7246 break;
7247 case 559:
7248 {
7249 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7250 yyval.exp->loc = (yyloc);
7251 ;
7252 }
7253 break;
7254 case 560:
7255 {
7256 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7257 yyval.exp->loc = (yyloc);
7258 ;
7259 }
7260 break;
7261 case 561:
7262 {
7263 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7264 yyval.exp->loc = (yyloc);
7265 ;
7266 }
7267 break;
7268 case 562:
7269 {
7270 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7271 yyval.exp->loc = (yyloc);
7272 ;
7273 }
7274 break;
7275 case 563:
7276 {
7277 yyerror();
7278 yyval.exp = MkExpCondition(yyvsp[(1) - (3)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7279 yyval.exp->loc = (yyloc);
7280 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (3)]);
7281 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (3)]);
7282 ;
7283 }
7284 break;
7285 case 564:
7286 {
7287 yyval.exp = MkExpCondition(yyvsp[(1) - (3)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7288 yyval.exp->loc = (yyloc);
7289 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (3)]);
7290 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (3)]);
7291 ;
7292 }
7293 break;
7294 case 565:
7295 {
7296 yyerror();
7297 yyval.exp = MkExpCondition(yyvsp[(1) - (2)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7298 yyval.exp->loc = (yyloc);
7299 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (2)]);
7300 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(2) - (2)]);
7301 ;
7302 }
7303 break;
7304 case 566:
7305 {
7306 yyval.exp = MkExpCondition(yyvsp[(1) - (2)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7307 yyval.exp->loc = (yyloc);
7308 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (2)]);
7309 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(2) - (2)]);
7310 ;
7311 }
7312 break;
7313 case 568:
7314 {
7315 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7316 yyval.exp->loc = (yyloc);
7317 ;
7318 }
7319 break;
7320 case 569:
7321 {
7322 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7323 yyval.exp->loc = (yyloc);
7324 ;
7325 }
7326 break;
7327 case 570:
7328 {
7329 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7330 yyval.exp->loc = (yyloc);
7331 ;
7332 }
7333 break;
7334 case 571:
7335 {
7336 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7337 yyval.exp->loc = (yyloc);
7338 ;
7339 }
7340 break;
7341 case 572:
7342 {
7343 yyval.list = MkList();
7344 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
7345 ;
7346 }
7347 break;
7348 case 573:
7349 {
7350 yyval.list = MkList();
7351 ListAdd(yyval.list, yyvsp[(1) - (2)].exp);
7352 ;
7353 }
7354 break;
7355 case 574:
7356 {
7357 yyval.list = yyvsp[(1) - (3)].list;
7358 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7359 ;
7360 }
7361 break;
7362 case 575:
7363 {
7364 yyval.list = yyvsp[(1) - (3)].list;
7365 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7366 ;
7367 }
7368 break;
7369 case 576:
7370 {
7371 yyerror();
7372 yyval.list = yyvsp[(1) - (2)].list;
7373 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7374 ;
7375 }
7376 break;
7377 case 577:
7378 {
7379 yyval.list = yyvsp[(1) - (2)].list;
7380 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7381 ;
7382 }
7383 break;
7384 case 578:
7385 {
7386 yyval.list = yyvsp[(1) - (2)].list;
7387 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7388 ;
7389 }
7390 break;
7391 case 579:
7392 {
7393 yyval.list = MkList();
7394 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
7395 ;
7396 }
7397 break;
7398 case 580:
7399 {
7400 yyval.list = MkList();
7401 ListAdd(yyval.list, yyvsp[(1) - (2)].exp);
7402 ;
7403 }
7404 break;
7405 case 581:
7406 {
7407 yyval.list = yyvsp[(1) - (3)].list;
7408 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7409 ;
7410 }
7411 break;
7412 case 582:
7413 {
7414 yyval.list = yyvsp[(1) - (3)].list;
7415 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7416 ;
7417 }
7418 break;
7419 case 585:
7420 {
7421 yyval.specifier = MkSpecifier(TYPEDEF);
7422 ;
7423 }
7424 break;
7425 case 586:
7426 {
7427 yyval.specifier = MkSpecifier(EXTERN);
7428 ;
7429 }
7430 break;
7431 case 587:
7432 {
7433 yyval.specifier = MkSpecifier(STATIC);
7434 ;
7435 }
7436 break;
7437 case 588:
7438 {
7439 yyval.specifier = MkSpecifier(THREAD);
7440 ;
7441 }
7442 break;
7443 case 589:
7444 {
7445 yyval.specifier = MkSpecifier(AUTO);
7446 ;
7447 }
7448 break;
7449 case 590:
7450 {
7451 yyval.specifier = MkSpecifier(REGISTER);
7452 ;
7453 }
7454 break;
7455 case 591:
7456 {
7457 yyval.specifier = MkSpecifier(RESTRICT);
7458 ;
7459 }
7460 break;
7461 case 592:
7462 {
7463 yyval.specifier = MkSpecifier(TYPEDEF);
7464 structDeclMode = declMode = 0;
7465 ;
7466 }
7467 break;
7468 case 593:
7469 {
7470 yyval.specifier = MkSpecifier(EXTERN);
7471 ;
7472 }
7473 break;
7474 case 594:
7475 {
7476 yyval.specifier = MkSpecifier(STATIC);
7477 structDeclMode = declMode = 3;
7478 ;
7479 }
7480 break;
7481 case 595:
7482 {
7483 yyval.specifier = MkSpecifier(THREAD);
7484 ;
7485 }
7486 break;
7487 case 596:
7488 {
7489 yyval.specifier = MkSpecifier(AUTO);
7490 ;
7491 }
7492 break;
7493 case 597:
7494 {
7495 yyval.specifier = MkSpecifier(REGISTER);
7496 ;
7497 }
7498 break;
7499 case 598:
7500 {
7501 yyval.specifier = MkSpecifier(RESTRICT);
7502 ;
7503 }
7504 break;
7505 case 599:
7506 {
7507 yyval.enumerator = MkEnumerator(yyvsp[(1) - (1)].id, (((void *)0)));
7508 ;
7509 }
7510 break;
7511 case 600:
7512 {
7513 yyval.enumerator = MkEnumerator(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].exp);
7514 ;
7515 }
7516 break;
7517 case 601:
7518 {
7519 yyval.enumerator = MkEnumerator(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].exp);
7520 ;
7521 }
7522 break;
7523 case 602:
7524 {
7525 yyval.list = MkList();
7526 ListAdd(yyval.list, yyvsp[(1) - (1)].enumerator);
7527 ;
7528 }
7529 break;
7530 case 603:
7531 {
7532 yyval.list = yyvsp[(1) - (3)].list;
7533 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].enumerator);
7534 ;
7535 }
7536 break;
7537 case 605:
7538 {
7539 memberAccessStack[++defaultMemberAccess] = 1;
7540 ;
7541 }
7542 break;
7543 case 606:
7544 {
7545 yyval.specifier = MkEnum(yyvsp[(2) - (2)].id, (((void *)0)));
7546 if(defaultMemberAccess > -1)
7547 defaultMemberAccess--;
7548 ;
7549 }
7550 break;
7551 case 607:
7552 {
7553 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
7554 if(defaultMemberAccess > -1)
7555 defaultMemberAccess--;
7556 ;
7557 }
7558 break;
7559 case 608:
7560 {
7561 yyval.specifier->loc = (yyloc);
7562 if(defaultMemberAccess > -1)
7563 defaultMemberAccess--;
7564 yyval.specifier = yyvsp[(1) - (2)].specifier;
7565 ;
7566 }
7567 break;
7568 case 609:
7569 {
7570 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, (((void *)0)));
7571 yyval.specifier->loc = (yyloc);
7572 if(defaultMemberAccess > -1)
7573 defaultMemberAccess--;
7574 ;
7575 }
7576 break;
7577 case 610:
7578 {
7579 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), (((void *)0)));
7580 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7581 yyval.specifier->loc = (yyloc);
7582 if(defaultMemberAccess > -1)
7583 defaultMemberAccess--;
7584 ;
7585 }
7586 break;
7587 case 611:
7588 {
7589 yyval.specifier = MkEnum((((void *)0)), yyvsp[(3) - (3)].list);
7590 yyval.specifier->loc = (yyloc);
7591 if(defaultMemberAccess > -1)
7592 defaultMemberAccess--;
7593 ;
7594 }
7595 break;
7596 case 612:
7597 {
7598 yyval.specifier = MkEnum((((void *)0)), (((void *)0)));
7599 yyval.specifier->loc = (yyloc);
7600 if(defaultMemberAccess > -1)
7601 defaultMemberAccess--;
7602 ;
7603 }
7604 break;
7605 case 613:
7606 {
7607 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, yyvsp[(4) - (4)].list);
7608 yyval.specifier->loc = (yyloc);
7609 if(defaultMemberAccess > -1)
7610 defaultMemberAccess--;
7611 ;
7612 }
7613 break;
7614 case 614:
7615 {
7616 yyval.specifier = MkEnum(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
7617 yyval.specifier->loc = (yyloc);
7618 if(defaultMemberAccess > -1)
7619 defaultMemberAccess--;
7620 ;
7621 }
7622 break;
7623 case 615:
7624 {
7625 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, (((void *)0)));
7626 yyval.specifier->loc = (yyloc);
7627 if(defaultMemberAccess > -1)
7628 defaultMemberAccess--;
7629 ;
7630 }
7631 break;
7632 case 616:
7633 {
7634 yyval.specifier = MkEnum(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].list);
7635 yyval.specifier->loc = (yyloc);
7636 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7637 if(defaultMemberAccess > -1)
7638 defaultMemberAccess--;
7639 ;
7640 }
7641 break;
7642 case 617:
7643 {
7644 yyval.specifier = MkEnum(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].list);
7645 yyval.specifier->loc = (yyloc);
7646 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7647 if(defaultMemberAccess > -1)
7648 defaultMemberAccess--;
7649 ;
7650 }
7651 break;
7652 case 618:
7653 {
7654 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), yyvsp[(4) - (4)].list);
7655 yyval.specifier->loc = (yyloc);
7656 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7657 if(defaultMemberAccess > -1)
7658 defaultMemberAccess--;
7659 ;
7660 }
7661 break;
7662 case 619:
7663 {
7664 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
7665 yyval.specifier->loc = (yyloc);
7666 FreeSpecifier(yyvsp[(2) - (5)].specifier);
7667 if(defaultMemberAccess > -1)
7668 defaultMemberAccess--;
7669 ;
7670 }
7671 break;
7672 case 620:
7673 {
7674 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), (((void *)0)));
7675 yyval.specifier->loc = (yyloc);
7676 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7677 if(defaultMemberAccess > -1)
7678 defaultMemberAccess--;
7679 ;
7680 }
7681 break;
7682 case 621:
7683 {
7684 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (6)].specifier->__anon1.__anon1.name), yyvsp[(4) - (6)].list);
7685 yyval.specifier->loc = (yyloc);
7686 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7687 FreeSpecifier(yyvsp[(2) - (6)].specifier);
7688 if(defaultMemberAccess > -1)
7689 defaultMemberAccess--;
7690 ;
7691 }
7692 break;
7693 case 622:
7694 {
7695 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (6)].specifier->__anon1.__anon1.name), yyvsp[(4) - (6)].list);
7696 yyval.specifier->loc = (yyloc);
7697 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7698 FreeSpecifier(yyvsp[(2) - (6)].specifier);
7699 if(defaultMemberAccess > -1)
7700 defaultMemberAccess--;
7701 ;
7702 }
7703 break;
7704 case 623:
7705 {
7706 yyval.specifier = MkEnum(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
7707 yyval.specifier->loc = (yyloc);
7708 if(defaultMemberAccess > -1)
7709 defaultMemberAccess--;
7710 ;
7711 }
7712 break;
7713 case 624:
7714 {
7715 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
7716 yyval.specifier->loc = (yyloc);
7717 FreeSpecifier(yyvsp[(2) - (5)].specifier);
7718 if(defaultMemberAccess > -1)
7719 defaultMemberAccess--;
7720 ;
7721 }
7722 break;
7723 case 625:
7724 {
7725 yyval.id = yyvsp[(2) - (2)].id;
7726 if(declMode)
7727 DeclClassAddNameSpace(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
7728 ;
7729 }
7730 break;
7731 case 626:
7732 {
7733 yyval.id = MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
7734 if(declMode)
7735 DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
7736 FreeSpecifier(yyvsp[(2) - (2)].specifier);
7737 ;
7738 }
7739 break;
7740 case 627:
7741 {
7742 yyval.specifier = yyvsp[(1) - (2)].specifier;
7743 yyval.specifier->loc = (yyloc);
7744 ;
7745 }
7746 break;
7747 case 628:
7748 {
7749 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, (((void *)0)));
7750 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7751 yyval.specifier->loc = (yyloc);
7752 if(defaultMemberAccess > -1)
7753 defaultMemberAccess--;
7754 ;
7755 }
7756 break;
7757 case 629:
7758 {
7759 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, (((void *)0)));
7760 if(defaultMemberAccess > -1)
7761 defaultMemberAccess--;
7762 ;
7763 }
7764 break;
7765 case 630:
7766 {
7767 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(5) - (5)].list);
7768 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7769 yyval.specifier->loc = (yyloc);
7770 if(defaultMemberAccess > -1)
7771 defaultMemberAccess--;
7772 ;
7773 }
7774 break;
7775 case 631:
7776 {
7777 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, yyvsp[(5) - (6)].list);
7778 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7779 yyval.specifier->loc = (yyloc);
7780 if(defaultMemberAccess > -1)
7781 defaultMemberAccess--;
7782 ;
7783 }
7784 break;
7785 case 632:
7786 {
7787 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, (((void *)0)));
7788 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7789 yyval.specifier->loc = (yyloc);
7790 if(defaultMemberAccess > -1)
7791 defaultMemberAccess--;
7792 ;
7793 }
7794 break;
7795 case 633:
7796 {
7797 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7798 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7799 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7800 yyval.specifier->loc = (yyloc);
7801 if(defaultMemberAccess > -1)
7802 defaultMemberAccess--;
7803 ;
7804 }
7805 break;
7806 case 634:
7807 {
7808 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7809 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7810 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7811 yyval.specifier->loc = (yyloc);
7812 if(defaultMemberAccess > -1)
7813 defaultMemberAccess--;
7814 ;
7815 }
7816 break;
7817 case 635:
7818 {
7819 yyval.specifier = MkEnum(yyvsp[(1) - (8)].id, yyvsp[(5) - (8)].list);
7820 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (8)].list;
7821 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(8) - (8)].list;
7822 yyval.specifier->loc = (yyloc);
7823 if(defaultMemberAccess > -1)
7824 defaultMemberAccess--;
7825 ;
7826 }
7827 break;
7828 case 636:
7829 {
7830 yyval.specifier = MkEnum(yyvsp[(1) - (8)].id, yyvsp[(5) - (8)].list);
7831 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (8)].list;
7832 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(8) - (8)].list;
7833 yyval.specifier->loc = (yyloc);
7834 if(defaultMemberAccess > -1)
7835 defaultMemberAccess--;
7836 ;
7837 }
7838 break;
7839 case 637:
7840 {
7841 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, (((void *)0)));
7842 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7843 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7844 yyval.specifier->loc = (yyloc);
7845 if(defaultMemberAccess > -1)
7846 defaultMemberAccess--;
7847 ;
7848 }
7849 break;
7850 case 638:
7851 {
7852 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, (((void *)0)));
7853 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7854 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7855 yyval.specifier->loc = (yyloc);
7856 if(defaultMemberAccess > -1)
7857 defaultMemberAccess--;
7858 ;
7859 }
7860 break;
7861 case 639:
7862 {
7863 yyval.specifier = MkEnum((((void *)0)), yyvsp[(3) - (3)].list);
7864 yyval.specifier->loc = (yyloc);
7865 if(defaultMemberAccess > -1)
7866 defaultMemberAccess--;
7867 ;
7868 }
7869 break;
7870 case 640:
7871 {
7872 yyval.specifier = MkEnum((((void *)0)), (((void *)0)));
7873 yyval.specifier->loc = (yyloc);
7874 if(defaultMemberAccess > -1)
7875 defaultMemberAccess--;
7876 ;
7877 }
7878 break;
7879 case 641:
7880 {
7881 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].list);
7882 yyval.specifier->loc = (yyloc);
7883 if(defaultMemberAccess > -1)
7884 defaultMemberAccess--;
7885 ;
7886 }
7887 break;
7888 case 642:
7889 {
7890 yyval.specifier = MkEnum(yyvsp[(1) - (4)].id, yyvsp[(3) - (4)].list);
7891 yyval.specifier->loc = (yyloc);
7892 if(defaultMemberAccess > -1)
7893 defaultMemberAccess--;
7894 ;
7895 }
7896 break;
7897 case 643:
7898 {
7899 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, (((void *)0)));
7900 yyval.specifier->loc = (yyloc);
7901 if(defaultMemberAccess > -1)
7902 defaultMemberAccess--;
7903 ;
7904 }
7905 break;
7906 case 644:
7907 {
7908 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(3) - (5)].list);
7909 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(5) - (5)].list;
7910 yyval.specifier->loc = (yyloc);
7911 if(defaultMemberAccess > -1)
7912 defaultMemberAccess--;
7913 ;
7914 }
7915 break;
7916 case 645:
7917 {
7918 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(3) - (5)].list);
7919 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(5) - (5)].list;
7920 yyval.specifier->loc = (yyloc);
7921 if(defaultMemberAccess > -1)
7922 defaultMemberAccess--;
7923 ;
7924 }
7925 break;
7926 case 646:
7927 {
7928 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, yyvsp[(5) - (6)].list);
7929 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7930 yyval.specifier->loc = (yyloc);
7931 if(defaultMemberAccess > -1)
7932 defaultMemberAccess--;
7933 ;
7934 }
7935 break;
7936 case 647:
7937 {
7938 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7939 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7940 yyval.specifier->loc = (yyloc);
7941 if(defaultMemberAccess > -1)
7942 defaultMemberAccess--;
7943 ;
7944 }
7945 break;
7946 case 648:
7947 {
7948 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, (((void *)0)));
7949 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7950 yyval.specifier->loc = (yyloc);
7951 if(defaultMemberAccess > -1)
7952 defaultMemberAccess--;
7953 ;
7954 }
7955 break;
7956 case 649:
7957 {
7958 yyval.specifier = MkEnum(yyvsp[(1) - (4)].id, yyvsp[(3) - (4)].list);
7959 yyval.specifier->loc = (yyloc);
7960 if(defaultMemberAccess > -1)
7961 defaultMemberAccess--;
7962 ;
7963 }
7964 break;
7965 case 654:
7966 {
7967 yyval.specifier = MkSpecifierExtended(yyvsp[(1) - (1)].extDecl);
7968 ;
7969 }
7970 break;
7971 case 655:
7972 {
7973 yyval.specifier = MkSpecifier(CONST);
7974 ;
7975 }
7976 break;
7977 case 656:
7978 {
7979 yyval.specifier = MkSpecifier(VOLATILE);
7980 ;
7981 }
7982 break;
7983 case 657:
7984 {
7985 yyval.specifier = yyvsp[(1) - (1)].specifier;
7986 ;
7987 }
7988 break;
7989 case 658:
7990 {
7991 yyval.list = MkList();
7992 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
7993 ;
7994 }
7995 break;
7996 case 659:
7997 {
7998 yyval.list = yyvsp[(1) - (2)].list;
7999 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8000 ;
8001 }
8002 break;
8003 case 660:
8004 {
8005 yyval.specifier = MkSpecifier(VOID);
8006 ;
8007 }
8008 break;
8009 case 661:
8010 {
8011 yyval.specifier = MkSpecifier(CHAR);
8012 ;
8013 }
8014 break;
8015 case 662:
8016 {
8017 yyval.specifier = MkSpecifier(SHORT);
8018 ;
8019 }
8020 break;
8021 case 663:
8022 {
8023 yyval.specifier = MkSpecifier(INT);
8024 ;
8025 }
8026 break;
8027 case 664:
8028 {
8029 yyval.specifier = MkSpecifier(UINT);
8030 ;
8031 }
8032 break;
8033 case 665:
8034 {
8035 yyval.specifier = MkSpecifier(INT64);
8036 ;
8037 }
8038 break;
8039 case 666:
8040 {
8041 yyval.specifier = MkSpecifier(VALIST);
8042 ;
8043 }
8044 break;
8045 case 667:
8046 {
8047 yyval.specifier = MkSpecifier(LONG);
8048 ;
8049 }
8050 break;
8051 case 668:
8052 {
8053 yyval.specifier = MkSpecifier(FLOAT);
8054 ;
8055 }
8056 break;
8057 case 669:
8058 {
8059 yyval.specifier = MkSpecifier(DOUBLE);
8060 ;
8061 }
8062 break;
8063 case 670:
8064 {
8065 yyval.specifier = MkSpecifier(SIGNED);
8066 ;
8067 }
8068 break;
8069 case 671:
8070 {
8071 yyval.specifier = MkSpecifier(UNSIGNED);
8072 ;
8073 }
8074 break;
8075 case 672:
8076 {
8077 yyval.specifier = MkSpecifier(EXTENSION);
8078 ;
8079 }
8080 break;
8081 case 676:
8082 {
8083 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8084 ;
8085 }
8086 break;
8087 case 677:
8088 {
8089 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8090 ;
8091 }
8092 break;
8093 case 678:
8094 {
8095 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8096 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8097 FreeIdentifier(yyvsp[(3) - (4)].id);
8098 ;
8099 }
8100 break;
8101 case 679:
8102 {
8103 yyval.specifier = MkSpecifier(THISCLASS);
8104 ;
8105 }
8106 break;
8107 case 680:
8108 {
8109 yyval.specifier = MkSpecifier(TYPED_OBJECT);
8110 ;
8111 }
8112 break;
8113 case 681:
8114 {
8115 yyval.specifier = MkSpecifier(ANY_OBJECT);
8116 ;
8117 }
8118 break;
8119 case 682:
8120 {
8121 yyval.specifier = MkSpecifier(_BOOL);
8122 ;
8123 }
8124 break;
8125 case 683:
8126 {
8127 yyval.specifier = MkSpecifier(BOOL);
8128 ;
8129 }
8130 break;
8131 case 684:
8132 {
8133 yyval.specifier = MkSpecifier(_COMPLEX);
8134 ;
8135 }
8136 break;
8137 case 685:
8138 {
8139 yyval.specifier = MkSpecifier(_IMAGINARY);
8140 ;
8141 }
8142 break;
8143 case 686:
8144 {
8145 yyval.specifier = MkSpecifier(VOID);
8146 ;
8147 }
8148 break;
8149 case 687:
8150 {
8151 yyval.specifier = MkSpecifier(CHAR);
8152 ;
8153 }
8154 break;
8155 case 688:
8156 {
8157 yyval.specifier = MkSpecifier(SHORT);
8158 ;
8159 }
8160 break;
8161 case 689:
8162 {
8163 yyval.specifier = MkSpecifier(INT);
8164 ;
8165 }
8166 break;
8167 case 690:
8168 {
8169 yyval.specifier = MkSpecifier(UINT);
8170 ;
8171 }
8172 break;
8173 case 691:
8174 {
8175 yyval.specifier = MkSpecifier(INT64);
8176 ;
8177 }
8178 break;
8179 case 692:
8180 {
8181 yyval.specifier = MkSpecifier(VALIST);
8182 ;
8183 }
8184 break;
8185 case 693:
8186 {
8187 yyval.specifier = MkSpecifier(LONG);
8188 ;
8189 }
8190 break;
8191 case 694:
8192 {
8193 yyval.specifier = MkSpecifier(FLOAT);
8194 ;
8195 }
8196 break;
8197 case 695:
8198 {
8199 yyval.specifier = MkSpecifier(DOUBLE);
8200 ;
8201 }
8202 break;
8203 case 696:
8204 {
8205 yyval.specifier = MkSpecifier(SIGNED);
8206 ;
8207 }
8208 break;
8209 case 697:
8210 {
8211 yyval.specifier = MkSpecifier(UNSIGNED);
8212 ;
8213 }
8214 break;
8215 case 698:
8216 {
8217 yyval.specifier = MkSpecifier(EXTENSION);
8218 ;
8219 }
8220 break;
8221 case 702:
8222 {
8223 yyval.specifier = MkSpecifier(_BOOL);
8224 ;
8225 }
8226 break;
8227 case 703:
8228 {
8229 yyval.specifier = MkSpecifier(BOOL);
8230 ;
8231 }
8232 break;
8233 case 704:
8234 {
8235 yyval.specifier = MkSpecifier(_COMPLEX);
8236 ;
8237 }
8238 break;
8239 case 705:
8240 {
8241 yyval.specifier = MkSpecifier(_IMAGINARY);
8242 ;
8243 }
8244 break;
8245 case 706:
8246 {
8247 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8248 ;
8249 }
8250 break;
8251 case 707:
8252 {
8253 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8254 ;
8255 }
8256 break;
8257 case 708:
8258 {
8259 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8260 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8261 FreeIdentifier(yyvsp[(3) - (4)].id);
8262 ;
8263 }
8264 break;
8265 case 709:
8266 {
8267 yyval.specifier = MkSpecifier(THISCLASS);
8268 ;
8269 }
8270 break;
8271 case 710:
8272 {
8273 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
8274 yyval.declarator->loc = (yyloc);
8275 ;
8276 }
8277 break;
8278 case 711:
8279 {
8280 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
8281 yyval.declarator->__anon1.structDecl.attrib = yyvsp[(2) - (2)].attrib;
8282 yyval.declarator->loc = (yyloc);
8283 ;
8284 }
8285 break;
8286 case 712:
8287 {
8288 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8289 yyval.declarator->loc = (yyloc);
8290 ;
8291 }
8292 break;
8293 case 713:
8294 {
8295 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8296 yyval.declarator->loc = (yyloc);
8297 ;
8298 }
8299 break;
8300 case 714:
8301 {
8302 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8303 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8304 yyval.declarator->loc = (yyloc);
8305 ;
8306 }
8307 break;
8308 case 715:
8309 {
8310 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8311 yyval.declarator->loc = (yyloc);
8312 ;
8313 }
8314 break;
8315 case 716:
8316 {
8317 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8318 yyval.declarator->loc = (yyloc);
8319 ;
8320 }
8321 break;
8322 case 717:
8323 {
8324 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8325 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8326 yyval.declarator->loc = (yyloc);
8327 ;
8328 }
8329 break;
8330 case 718:
8331 {
8332 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8333 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8334 yyval.declarator->loc = (yyloc);
8335 ;
8336 }
8337 break;
8338 case 719:
8339 {
8340 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8341 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8342 yyval.declarator->loc = (yyloc);
8343 ;
8344 }
8345 break;
8346 case 720:
8347 {
8348 yyval.list = MkList();
8349 ListAdd(yyval.list, yyvsp[(1) - (1)].declarator);
8350 ;
8351 }
8352 break;
8353 case 721:
8354 {
8355 yyval.list = yyvsp[(1) - (3)].list;
8356 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].declarator);
8357 ;
8358 }
8359 break;
8360 case 722:
8361 {
8362 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, yyvsp[(2) - (2)].id, (((void *)0)));
8363 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8364 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8365 ;
8366 }
8367 break;
8368 case 723:
8369 {
8370 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
8371 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8372 FreeSpecifier(yyvsp[(2) - (2)].specifier);
8373 ;
8374 }
8375 break;
8376 case 724:
8377 {
8378 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, yyvsp[(3) - (3)].id, (((void *)0)));
8379 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8380 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8381 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8382 ;
8383 }
8384 break;
8385 case 725:
8386 {
8387 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, MkIdentifier(yyvsp[(3) - (3)].specifier->__anon1.__anon1.name), (((void *)0)));
8388 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8389 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8390 FreeSpecifier(yyvsp[(3) - (3)].specifier);
8391 ;
8392 }
8393 break;
8394 case 726:
8395 {
8396 yyval.specifier = yyvsp[(1) - (2)].specifier;
8397 yyval.specifier->loc = (yyloc);
8398 ;
8399 }
8400 break;
8401 case 727:
8402 {
8403 yyval.specifier = yyvsp[(1) - (3)].specifier;
8404 yyval.specifier->loc = (yyloc);
8405 if(defaultMemberAccess > -1)
8406 defaultMemberAccess--;
8407 PopContext(curContext);
8408 ;
8409 }
8410 break;
8411 case 728:
8412 {
8413 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8414 yyval.specifier->loc = (yyloc);
8415 if(defaultMemberAccess > -1)
8416 defaultMemberAccess--;
8417 ;
8418 }
8419 break;
8420 case 729:
8421 {
8422 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8423 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8424 yyval.specifier->loc = (yyloc);
8425 if(defaultMemberAccess > -1)
8426 defaultMemberAccess--;
8427 ;
8428 }
8429 break;
8430 case 730:
8431 {
8432 yyval.specifier = yyvsp[(1) - (3)].specifier;
8433 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8434 if(defaultMemberAccess > -1)
8435 defaultMemberAccess--;
8436 PopContext(curContext);
8437 ;
8438 }
8439 break;
8440 case 731:
8441 {
8442 yyval.specifier = yyvsp[(1) - (3)].specifier;
8443 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8444 if(defaultMemberAccess > -1)
8445 defaultMemberAccess--;
8446 PopContext(curContext);
8447 ;
8448 }
8449 break;
8450 case 732:
8451 {
8452 yyval.specifier = yyvsp[(1) - (3)].specifier;
8453 if(defaultMemberAccess > -1)
8454 defaultMemberAccess--;
8455 PopContext(curContext);
8456 ;
8457 }
8458 break;
8459 case 733:
8460 {
8461 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8462 if(defaultMemberAccess > -1)
8463 defaultMemberAccess--;
8464 ;
8465 }
8466 break;
8467 case 734:
8468 {
8469 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8470 if(defaultMemberAccess > -1)
8471 defaultMemberAccess--;
8472 ;
8473 }
8474 break;
8475 case 735:
8476 {
8477 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8478 if(defaultMemberAccess > -1)
8479 defaultMemberAccess--;
8480 ;
8481 }
8482 break;
8483 case 736:
8484 {
8485 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8486 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8487 if(defaultMemberAccess > -1)
8488 defaultMemberAccess--;
8489 ;
8490 }
8491 break;
8492 case 737:
8493 {
8494 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8495 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8496 if(defaultMemberAccess > -1)
8497 defaultMemberAccess--;
8498 ;
8499 }
8500 break;
8501 case 738:
8502 {
8503 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8504 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8505 if(defaultMemberAccess > -1)
8506 defaultMemberAccess--;
8507 ;
8508 }
8509 break;
8510 case 739:
8511 {
8512 yyval.specifier = yyvsp[(1) - (1)].specifier;
8513 if(defaultMemberAccess > -1)
8514 defaultMemberAccess--;
8515 PopContext(curContext);
8516 ;
8517 }
8518 break;
8519 case 740:
8520 {
8521 yyval.specifier = yyvsp[(1) - (1)].specifier;
8522 if(declMode)
8523 {
8524 (yyvsp[(1) - (1)].specifier->__anon1.__anon2.addNameSpace ? DeclClassAddNameSpace : DeclClass)(yyvsp[(1) - (1)].specifier->__anon1.__anon2.id->_class, yyvsp[(1) - (1)].specifier->__anon1.__anon2.id->string);
8525 }
8526 ;
8527 }
8528 break;
8529 case 741:
8530 {
8531 struct Symbol * symbol = (yyvsp[(1) - (4)].specifier->__anon1.__anon2.addNameSpace ? DeclClassAddNameSpace : DeclClass)(yyvsp[(1) - (4)].specifier->__anon1.__anon2.id->_class, yyvsp[(1) - (4)].specifier->__anon1.__anon2.id->string);
8532
8533 yyval.specifier = yyvsp[(1) - (4)].specifier;
8534 symbol->templateParams = yyvsp[(3) - (4)].list;
8535 ;
8536 }
8537 break;
8538 case 742:
8539 {
8540 yyval.specifier = yyvsp[(1) - (3)].specifier;
8541 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (3)].list;
8542 SetupBaseSpecs((((void *)0)), yyvsp[(3) - (3)].list);
8543 ;
8544 }
8545 break;
8546 case 743:
8547 {
8548 yyval.specifier = yyvsp[(1) - (2)].specifier;
8549 yyval.specifier->loc = (yyloc);
8550 ;
8551 }
8552 break;
8553 case 744:
8554 {
8555 yyval.specifier = yyvsp[(1) - (3)].specifier;
8556 if(defaultMemberAccess > -1)
8557 defaultMemberAccess--;
8558 PopContext(curContext);
8559 ;
8560 }
8561 break;
8562 case 745:
8563 {
8564 yyval.specifier = yyvsp[(1) - (3)].specifier;
8565 if(defaultMemberAccess > -1)
8566 defaultMemberAccess--;
8567 PopContext(curContext);
8568 ;
8569 }
8570 break;
8571 case 746:
8572 {
8573 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8574 if(defaultMemberAccess > -1)
8575 defaultMemberAccess--;
8576 ;
8577 }
8578 break;
8579 case 747:
8580 {
8581 yyval.specifier = yyvsp[(1) - (3)].specifier;
8582 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8583 if(defaultMemberAccess > -1)
8584 defaultMemberAccess--;
8585 PopContext(curContext);
8586 ;
8587 }
8588 break;
8589 case 748:
8590 {
8591 yyval.specifier = yyvsp[(1) - (3)].specifier;
8592 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8593 if(defaultMemberAccess > -1)
8594 defaultMemberAccess--;
8595 PopContext(curContext);
8596 ;
8597 }
8598 break;
8599 case 749:
8600 {
8601 yyval.specifier = yyvsp[(1) - (3)].specifier;
8602 if(defaultMemberAccess > -1)
8603 defaultMemberAccess--;
8604 PopContext(curContext);
8605 ;
8606 }
8607 break;
8608 case 750:
8609 {
8610 PopContext(curContext);
8611 if(!declMode)
8612 {
8613 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8614 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8615 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8616 }
8617 else
8618 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8619 if(defaultMemberAccess > -1)
8620 defaultMemberAccess--;
8621 ;
8622 }
8623 break;
8624 case 751:
8625 {
8626 PopContext(curContext);
8627 if(!declMode)
8628 {
8629 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8630 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8631 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8632 }
8633 else
8634 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8635 if(defaultMemberAccess > -1)
8636 defaultMemberAccess--;
8637 ;
8638 }
8639 break;
8640 case 752:
8641 {
8642 yyval.specifier = yyvsp[(1) - (3)].specifier;
8643 if(defaultMemberAccess > -1)
8644 defaultMemberAccess--;
8645 PopContext(curContext);
8646 ;
8647 }
8648 break;
8649 case 753:
8650 {
8651 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8652 if(defaultMemberAccess > -1)
8653 defaultMemberAccess--;
8654 ;
8655 }
8656 break;
8657 case 754:
8658 {
8659 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8660 if(defaultMemberAccess > -1)
8661 defaultMemberAccess--;
8662 ;
8663 }
8664 break;
8665 case 755:
8666 {
8667 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8668 if(defaultMemberAccess > -1)
8669 defaultMemberAccess--;
8670 ;
8671 }
8672 break;
8673 case 756:
8674 {
8675 yyval.specifierType = 3;
8676 memberAccessStack[++defaultMemberAccess] = 1;
8677 ;
8678 }
8679 break;
8680 case 757:
8681 {
8682 yyval.specifierType = 4;
8683 memberAccessStack[++defaultMemberAccess] = 1;
8684 ;
8685 }
8686 break;
8687 case 758:
8688 {
8689 yyval.list = MkList();
8690 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8691 ;
8692 }
8693 break;
8694 case 759:
8695 {
8696 yyval.list = yyvsp[(1) - (2)].list;
8697 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8698 ;
8699 }
8700 break;
8701 case 760:
8702 {
8703 yyval.list = MkList();
8704 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8705 ;
8706 }
8707 break;
8708 case 761:
8709 {
8710 yyval.list = yyvsp[(1) - (2)].list;
8711 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8712 ;
8713 }
8714 break;
8715 case 762:
8716 {
8717 yyval.list = MkList();
8718 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8719 ;
8720 }
8721 break;
8722 case 763:
8723 {
8724 yyval.list = yyvsp[(1) - (2)].list;
8725 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8726 ;
8727 }
8728 break;
8729 case 764:
8730 {
8731 yyval.list = MkList();
8732 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8733 ;
8734 }
8735 break;
8736 case 765:
8737 {
8738 yyval.list = yyvsp[(1) - (2)].list;
8739 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8740 ;
8741 }
8742 break;
8743 case 766:
8744 {
8745 yyval.list = MkList();
8746 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8747 ;
8748 }
8749 break;
8750 case 767:
8751 {
8752 yyval.list = yyvsp[(1) - (2)].list;
8753 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8754 ;
8755 }
8756 break;
8757 case 768:
8758 {
8759 yyval.list = MkList();
8760 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8761 ;
8762 }
8763 break;
8764 case 769:
8765 {
8766 yyval.list = yyvsp[(1) - (2)].list;
8767 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8768 ;
8769 }
8770 break;
8771 case 770:
8772 {
8773 yyval.list = MkList();
8774 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8775 ;
8776 }
8777 break;
8778 case 771:
8779 {
8780 yyval.list = yyvsp[(1) - (2)].list;
8781 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8782 ;
8783 }
8784 break;
8785 case 772:
8786 {
8787 yyval.list = MkList();
8788 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8789 ;
8790 }
8791 break;
8792 case 773:
8793 {
8794 yyval.list = yyvsp[(1) - (2)].list;
8795 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8796 ;
8797 }
8798 break;
8799 case 774:
8800 {
8801 yyval.list = MkList();
8802 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8803 ;
8804 }
8805 break;
8806 case 775:
8807 {
8808 yyval.list = yyvsp[(1) - (2)].list;
8809 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8810 ;
8811 }
8812 break;
8813 case 776:
8814 {
8815 yyval.list = MkList();
8816 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8817 ;
8818 }
8819 break;
8820 case 777:
8821 {
8822 yyval.list = yyvsp[(1) - (2)].list;
8823 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8824 ;
8825 }
8826 break;
8827 case 778:
8828 {
8829 yyval.list = MkList();
8830 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8831 ;
8832 }
8833 break;
8834 case 779:
8835 {
8836 yyval.list = yyvsp[(1) - (2)].list;
8837 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8838 ;
8839 }
8840 break;
8841 case 780:
8842 {
8843 yyval.list = MkList();
8844 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8845 ;
8846 }
8847 break;
8848 case 781:
8849 {
8850 yyval.list = yyvsp[(1) - (2)].list;
8851 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8852 ;
8853 }
8854 break;
8855 case 782:
8856 {
8857 yyval.list = MkList();
8858 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8859 ;
8860 }
8861 break;
8862 case 783:
8863 {
8864 yyval.list = yyvsp[(1) - (2)].list;
8865 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8866 ;
8867 }
8868 break;
8869 case 784:
8870 {
8871 yyval.list = MkList();
8872 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8873 ;
8874 }
8875 break;
8876 case 785:
8877 {
8878 yyval.list = yyvsp[(1) - (2)].list;
8879 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8880 ;
8881 }
8882 break;
8883 case 786:
8884 {
8885 yyval.list = MkList();
8886 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8887 ;
8888 }
8889 break;
8890 case 787:
8891 {
8892 yyval.list = yyvsp[(1) - (2)].list;
8893 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8894 ;
8895 }
8896 break;
8897 case 788:
8898 {
8899 yyval.list = MkList();
8900 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8901 ;
8902 }
8903 break;
8904 case 789:
8905 {
8906 yyval.list = yyvsp[(1) - (2)].list;
8907 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8908 ;
8909 }
8910 break;
8911 case 790:
8912 {
8913 yyval.list = MkList();
8914 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8915 ;
8916 }
8917 break;
8918 case 791:
8919 {
8920 yyval.list = yyvsp[(1) - (2)].list;
8921 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8922 ;
8923 }
8924 break;
8925 case 792:
8926 {
8927 yyval.list = MkList();
8928 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8929 ;
8930 }
8931 break;
8932 case 793:
8933 {
8934 yyval.list = yyvsp[(1) - (2)].list;
8935 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8936 ;
8937 }
8938 break;
8939 case 794:
8940 {
8941 yyval.list = MkList();
8942 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8943 ;
8944 }
8945 break;
8946 case 795:
8947 {
8948 yyval.list = yyvsp[(1) - (2)].list;
8949 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8950 ;
8951 }
8952 break;
8953 case 796:
8954 {
8955 yyval.list = MkList();
8956 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8957 ;
8958 }
8959 break;
8960 case 797:
8961 {
8962 yyval.list = yyvsp[(1) - (2)].list;
8963 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8964 ;
8965 }
8966 break;
8967 case 798:
8968 {
8969 yyval.list = MkList();
8970 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8971 ;
8972 }
8973 break;
8974 case 799:
8975 {
8976 yyval.list = yyvsp[(1) - (2)].list;
8977 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8978 ;
8979 }
8980 break;
8981 case 800:
8982 {
8983 yyval.list = MkList();
8984 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8985 ;
8986 }
8987 break;
8988 case 801:
8989 {
8990 yyval.list = yyvsp[(1) - (2)].list;
8991 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8992 ;
8993 }
8994 break;
8995 case 802:
8996 {
8997 yyval.list = MkList();
8998 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8999 ;
9000 }
9001 break;
9002 case 803:
9003 {
9004 yyval.list = yyvsp[(1) - (2)].list;
9005 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9006 ;
9007 }
9008 break;
9009 case 804:
9010 {
9011 yyval.list = MkList();
9012 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9013 ;
9014 }
9015 break;
9016 case 805:
9017 {
9018 yyval.list = yyvsp[(1) - (2)].list;
9019 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9020 ;
9021 }
9022 break;
9023 case 806:
9024 {
9025 yyval.list = MkList();
9026 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9027 ;
9028 }
9029 break;
9030 case 807:
9031 {
9032 yyval.list = yyvsp[(1) - (2)].list;
9033 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9034 ;
9035 }
9036 break;
9037 case 808:
9038 {
9039 yyval.list = MkList();
9040 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9041 ;
9042 }
9043 break;
9044 case 809:
9045 {
9046 yyval.list = yyvsp[(1) - (2)].list;
9047 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9048 ;
9049 }
9050 break;
9051 case 810:
9052 {
9053 yyval.list = MkList();
9054 ListAdd(yyval.list, MkSpecifier(PRIVATE));
9055 ;
9056 }
9057 break;
9058 case 811:
9059 {
9060 yyval.list = MkList();
9061 ListAdd(yyval.list, MkSpecifier(PUBLIC));
9062 ;
9063 }
9064 break;
9065 case 812:
9066 {
9067 yyval.list = MkList();
9068 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9069 ;
9070 }
9071 break;
9072 case 813:
9073 {
9074 yyval.list = yyvsp[(1) - (2)].list;
9075 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9076 ;
9077 }
9078 break;
9079 case 814:
9080 {
9081 yyval.list = MkList();
9082 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9083 ;
9084 }
9085 break;
9086 case 815:
9087 {
9088 yyval.list = yyvsp[(1) - (2)].list;
9089 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9090 ;
9091 }
9092 break;
9093 case 816:
9094 {
9095 yyval.list = MkList();
9096 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9097 ;
9098 }
9099 break;
9100 case 817:
9101 {
9102 yyval.list = yyvsp[(1) - (2)].list;
9103 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9104 ;
9105 }
9106 break;
9107 case 818:
9108 {
9109 _DeclClass(yyvsp[(1) - (1)].id->_class, yyvsp[(1) - (1)].id->string);
9110 yyval.list = MkListOne(MkSpecifierName(yyvsp[(1) - (1)].id->string));
9111 FreeIdentifier(yyvsp[(1) - (1)].id);
9112 ;
9113 }
9114 break;
9115 case 819:
9116 {
9117 yyval.list = yyvsp[(1) - (2)].list;
9118 _DeclClass(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
9119 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9120 FreeIdentifier(yyvsp[(2) - (2)].id);
9121 ;
9122 }
9123 break;
9124 case 820:
9125 {
9126 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9127 yyval.list = MkList();
9128 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9129 FreeIdentifier(yyvsp[(1) - (4)].id);
9130 ;
9131 }
9132 break;
9133 case 821:
9134 {
9135 yyval.list = yyvsp[(1) - (5)].list;
9136 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9137 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9138 FreeIdentifier(yyvsp[(2) - (5)].id);
9139 ;
9140 }
9141 break;
9142 case 823:
9143 {
9144 yyval.list = MkListOne(MkStructOrUnion(yyvsp[(1) - (1)].specifierType, (((void *)0)), (((void *)0))));
9145 if(defaultMemberAccess > -1)
9146 defaultMemberAccess--;
9147 ;
9148 }
9149 break;
9150 case 824:
9151 {
9152 yyval.list = MkList();
9153 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9154 ;
9155 }
9156 break;
9157 case 825:
9158 {
9159 yyval.list = yyvsp[(1) - (2)].list;
9160 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9161 ;
9162 }
9163 break;
9164 case 826:
9165 {
9166 yyval.list = MkList();
9167 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9168 ;
9169 }
9170 break;
9171 case 827:
9172 {
9173 yyval.list = yyvsp[(1) - (2)].list;
9174 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9175 ;
9176 }
9177 break;
9178 case 828:
9179 {
9180 yyval.list = MkList();
9181 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9182 ;
9183 }
9184 break;
9185 case 829:
9186 {
9187 yyval.list = yyvsp[(1) - (2)].list;
9188 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9189 ;
9190 }
9191 break;
9192 case 830:
9193 {
9194 yyval.list = MkList();
9195 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9196 FreeIdentifier(yyvsp[(1) - (1)].id);
9197 }
9198 break;
9199 case 831:
9200 {
9201 yyval.list = yyvsp[(1) - (2)].list;
9202 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9203 FreeIdentifier(yyvsp[(2) - (2)].id);
9204 }
9205 break;
9206 case 832:
9207 {
9208 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9209 yyval.list = MkList();
9210 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9211 FreeIdentifier(yyvsp[(1) - (4)].id);
9212 ;
9213 }
9214 break;
9215 case 833:
9216 {
9217 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9218 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9219 FreeIdentifier(yyvsp[(2) - (5)].id);
9220 ;
9221 }
9222 break;
9223 case 834:
9224 {
9225 yyval.list = MkList();
9226 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9227 ;
9228 }
9229 break;
9230 case 835:
9231 {
9232 yyval.list = yyvsp[(1) - (2)].list;
9233 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9234 ;
9235 }
9236 break;
9237 case 836:
9238 {
9239 yyval.list = MkList();
9240 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9241 ;
9242 }
9243 break;
9244 case 837:
9245 {
9246 yyval.list = yyvsp[(1) - (2)].list;
9247 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9248 ;
9249 }
9250 break;
9251 case 838:
9252 {
9253 yyval.list = MkList();
9254 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9255 ;
9256 }
9257 break;
9258 case 839:
9259 {
9260 yyval.list = yyvsp[(1) - (2)].list;
9261 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9262 ;
9263 }
9264 break;
9265 case 840:
9266 {
9267 yyval.list = MkList();
9268 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9269 ;
9270 }
9271 break;
9272 case 841:
9273 {
9274 yyval.list = yyvsp[(1) - (2)].list;
9275 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9276 ;
9277 }
9278 break;
9279 case 842:
9280 {
9281 yyval.list = MkList();
9282 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9283 ;
9284 }
9285 break;
9286 case 843:
9287 {
9288 yyval.list = yyvsp[(1) - (2)].list;
9289 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9290 ;
9291 }
9292 break;
9293 case 844:
9294 {
9295 yyval.list = MkList();
9296 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9297 FreeIdentifier(yyvsp[(1) - (1)].id);
9298 }
9299 break;
9300 case 845:
9301 {
9302 yyval.list = yyvsp[(1) - (2)].list;
9303 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9304 FreeIdentifier(yyvsp[(2) - (2)].id);
9305 }
9306 break;
9307 case 846:
9308 {
9309 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9310 yyval.list = MkList();
9311 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9312 FreeIdentifier(yyvsp[(1) - (4)].id);
9313 ;
9314 }
9315 break;
9316 case 847:
9317 {
9318 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9319 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9320 FreeIdentifier(yyvsp[(2) - (5)].id);
9321 ;
9322 }
9323 break;
9324 case 848:
9325 {
9326 yyval.list = MkList();
9327 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9328 ;
9329 }
9330 break;
9331 case 849:
9332 {
9333 yyval.list = yyvsp[(1) - (2)].list;
9334 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9335 ;
9336 }
9337 break;
9338 case 850:
9339 {
9340 yyval.list = MkList();
9341 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9342 ;
9343 }
9344 break;
9345 case 851:
9346 {
9347 yyval.list = yyvsp[(1) - (2)].list;
9348 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9349 ;
9350 }
9351 break;
9352 case 852:
9353 {
9354 yyval.list = MkList();
9355 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9356 ;
9357 }
9358 break;
9359 case 853:
9360 {
9361 yyval.list = yyvsp[(1) - (2)].list;
9362 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9363 ;
9364 }
9365 break;
9366 case 854:
9367 {
9368 yyval.list = MkList();
9369 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9370 ;
9371 }
9372 break;
9373 case 855:
9374 {
9375 yyval.list = yyvsp[(1) - (2)].list;
9376 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9377 ;
9378 }
9379 break;
9380 case 856:
9381 {
9382 yyval.list = MkList();
9383 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9384 ;
9385 }
9386 break;
9387 case 857:
9388 {
9389 yyval.list = yyvsp[(1) - (2)].list;
9390 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9391 ;
9392 }
9393 break;
9394 case 858:
9395 {
9396 yyval.list = MkList();
9397 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9398 FreeIdentifier(yyvsp[(1) - (1)].id);
9399 }
9400 break;
9401 case 859:
9402 {
9403 yyval.list = yyvsp[(1) - (2)].list;
9404 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9405 FreeIdentifier(yyvsp[(2) - (2)].id);
9406 }
9407 break;
9408 case 860:
9409 {
9410 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9411 yyval.list = MkList();
9412 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9413 FreeIdentifier(yyvsp[(1) - (4)].id);
9414 ;
9415 }
9416 break;
9417 case 861:
9418 {
9419 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9420 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9421 FreeIdentifier(yyvsp[(2) - (5)].id);
9422 ;
9423 }
9424 break;
9425 case 862:
9426 {
9427 yyval.list = yyvsp[(1) - (3)].list;
9428 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9429 ;
9430 }
9431 break;
9432 case 863:
9433 {
9434 yyval.list = yyvsp[(1) - (3)].list;
9435 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9436 ;
9437 }
9438 break;
9439 case 864:
9440 {
9441 yyval.list = MkList();
9442 ListAdd(yyval.list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(1) - (1)].id)));
9443 ;
9444 }
9445 break;
9446 case 865:
9447 {
9448 yyval.list = yyvsp[(1) - (3)].list;
9449 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9450 ;
9451 }
9452 break;
9453 case 866:
9454 {
9455 yyval.list = yyvsp[(1) - (3)].list;
9456 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9457 ;
9458 }
9459 break;
9460 case 867:
9461 {
9462 yyval.list = yyvsp[(1) - (3)].list;
9463 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9464 ;
9465 }
9466 break;
9467 case 868:
9468 {
9469 yyval.list = yyvsp[(1) - (3)].list;
9470 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9471 ;
9472 }
9473 break;
9474 case 870:
9475 {
9476 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name), 1, 0);
9477 char * s = colon ? colon + 2 : yyvsp[(1) - (1)].specifier->__anon1.__anon1.name;
9478
9479 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier(s));
9480 FreeSpecifier(yyvsp[(1) - (1)].specifier);
9481 ;
9482 }
9483 break;
9484 case 871:
9485 {
9486 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier("uint"));
9487 ;
9488 }
9489 break;
9490 case 872:
9491 {
9492 struct Declarator * decl;
9493 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9494 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9495
9496 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9497 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9498 yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
9499 ;
9500 }
9501 break;
9502 case 873:
9503 {
9504 struct Declarator * decl;
9505 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9506 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9507
9508 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9509 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9510 yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
9511 ;
9512 }
9513 break;
9514 case 874:
9515 {
9516 struct Declarator * decl;
9517 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9518 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9519
9520 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9521 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9522 yyval.declarator = MkDeclaratorEnumArray(decl, yyvsp[(3) - (4)].specifier);
9523 ;
9524 }
9525 break;
9526 case 875:
9527 {
9528 struct Declarator * decl;
9529 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
9530 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
9531
9532 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9533 FreeSpecifier(yyvsp[(1) - (3)].specifier);
9534 yyval.declarator = MkDeclaratorEnumArray(decl, (((void *)0)));
9535 ;
9536 }
9537 break;
9538 case 876:
9539 {
9540 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9541 ;
9542 }
9543 break;
9544 case 877:
9545 {
9546 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9547 ;
9548 }
9549 break;
9550 case 878:
9551 {
9552 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9553 ;
9554 }
9555 break;
9556 case 879:
9557 {
9558 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9559 ;
9560 }
9561 break;
9562 case 880:
9563 {
9564 yyval.declarator = MkDeclaratorIdentifier(yyvsp[(1) - (1)].id);
9565 ;
9566 }
9567 break;
9568 case 881:
9569 {
9570 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9571 ;
9572 }
9573 break;
9574 case 882:
9575 {
9576 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9577 ;
9578 }
9579 break;
9580 case 883:
9581 {
9582 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9583 ;
9584 }
9585 break;
9586 case 884:
9587 {
9588 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9589 ;
9590 }
9591 break;
9592 case 885:
9593 {
9594 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9595 ;
9596 }
9597 break;
9598 case 886:
9599 {
9600 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9601 ;
9602 }
9603 break;
9604 case 887:
9605 {
9606 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9607 ;
9608 }
9609 break;
9610 case 888:
9611 {
9612 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9613 ;
9614 }
9615 break;
9616 case 890:
9617 {
9618 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9619 ;
9620 }
9621 break;
9622 case 891:
9623 {
9624 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9625 ;
9626 }
9627 break;
9628 case 892:
9629 {
9630 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9631 ;
9632 }
9633 break;
9634 case 893:
9635 {
9636 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9637 ;
9638 }
9639 break;
9640 case 894:
9641 {
9642 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9643 ;
9644 }
9645 break;
9646 case 895:
9647 {
9648 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9649 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9650 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9651
9652 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9653 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9654 (yychar = (-2));
9655 resetScannerPos(&(yylsp[(1) - (2)]).end);
9656 (yyloc.start = (yylsp[(1) - (2)]).start);
9657 (yyloc.end = (yylsp[(1) - (2)]).end);
9658 ;
9659 }
9660 break;
9661 case 896:
9662 {
9663 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9664 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9665 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9666
9667 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9668 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9669 (yychar = (-2));
9670 resetScannerPos(&(yylsp[(1) - (2)]).end);
9671 (yyloc.start = (yylsp[(1) - (2)]).start);
9672 (yyloc.end = (yylsp[(1) - (2)]).end);
9673 ;
9674 }
9675 break;
9676 case 897:
9677 {
9678 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9679 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9680 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9681
9682 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9683 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (3)]).end.pos, 0);
9684 (yychar = (-2));
9685 resetScannerPos(&(yylsp[(1) - (3)]).end);
9686 (yyloc.start = (yylsp[(1) - (3)]).start);
9687 (yyloc.end = (yylsp[(1) - (3)]).end);
9688 ;
9689 }
9690 break;
9691 case 898:
9692 {
9693 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9694 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9695 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9696
9697 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9698 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (4)]).end.pos, 0);
9699 (yychar = (-2));
9700 resetScannerPos(&(yylsp[(1) - (4)]).end);
9701 (yyloc.start = (yylsp[(1) - (4)]).start);
9702 (yyloc.end = (yylsp[(1) - (4)]).end);
9703 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9704 FreeIdentifier(yyvsp[(3) - (4)].id);
9705 ;
9706 }
9707 break;
9708 case 902:
9709 {
9710 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9711 ;
9712 }
9713 break;
9714 case 903:
9715 {
9716 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9717 ;
9718 }
9719 break;
9720 case 904:
9721 {
9722 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9723 ;
9724 }
9725 break;
9726 case 905:
9727 {
9728 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9729 ;
9730 }
9731 break;
9732 case 906:
9733 {
9734 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9735 ;
9736 }
9737 break;
9738 case 907:
9739 {
9740 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9741 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9742 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9743
9744 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9745 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9746 (yychar = (-2));
9747 resetScannerPos(&(yylsp[(1) - (2)]).end);
9748 (yyloc.start = (yylsp[(1) - (2)]).start);
9749 (yyloc.end = (yylsp[(1) - (2)]).end);
9750 ;
9751 }
9752 break;
9753 case 908:
9754 {
9755 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9756 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9757 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9758
9759 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9760 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9761 (yychar = (-2));
9762 resetScannerPos(&(yylsp[(1) - (2)]).end);
9763 (yyloc.start = (yylsp[(1) - (2)]).start);
9764 (yyloc.end = (yylsp[(1) - (2)]).end);
9765 ;
9766 }
9767 break;
9768 case 909:
9769 {
9770 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9771 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9772 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9773
9774 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9775 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (3)]).end.pos, 0);
9776 (yychar = (-2));
9777 resetScannerPos(&(yylsp[(1) - (3)]).end);
9778 (yyloc.start = (yylsp[(1) - (3)]).start);
9779 (yyloc.end = (yylsp[(1) - (3)]).end);
9780 ;
9781 }
9782 break;
9783 case 910:
9784 {
9785 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9786 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9787 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9788
9789 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9790 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (4)]).end.pos, 0);
9791 (yychar = (-2));
9792 resetScannerPos(&(yylsp[(1) - (4)]).end);
9793 (yyloc.start = (yylsp[(1) - (4)]).start);
9794 (yyloc.end = (yylsp[(1) - (4)]).end);
9795 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9796 FreeIdentifier(yyvsp[(3) - (4)].id);
9797 ;
9798 }
9799 break;
9800 case 913:
9801 {
9802 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9803 ;
9804 }
9805 break;
9806 case 914:
9807 {
9808 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9809 ;
9810 }
9811 break;
9812 case 915:
9813 {
9814 yyval.extDecl = MkExtDeclAttrib(yyvsp[(1) - (1)].attrib);
9815 ;
9816 }
9817 break;
9818 case 916:
9819 {
9820 char temp[1024];
9821
9822 strcpy(temp, "__asm__(");
9823 strcat(temp, yyvsp[(3) - (4)].string);
9824 strcat(temp, ")");
9825 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(temp));
9826 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(3) - (4)].string), yyvsp[(3) - (4)].string = 0);
9827 ;
9828 }
9829 break;
9830 case 917:
9831 {
9832 yyval.i = ATTRIB;
9833 ;
9834 }
9835 break;
9836 case 918:
9837 {
9838 yyval.i = ATTRIB_DEP;
9839 ;
9840 }
9841 break;
9842 case 919:
9843 {
9844 yyval.i = __ATTRIB;
9845 ;
9846 }
9847 break;
9848 case 920:
9849 {
9850 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9851 ;
9852 }
9853 break;
9854 case 921:
9855 {
9856 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9857 ;
9858 }
9859 break;
9860 case 922:
9861 {
9862 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9863 ;
9864 }
9865 break;
9866 case 923:
9867 {
9868 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9869 ;
9870 }
9871 break;
9872 case 924:
9873 {
9874 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9875 ;
9876 }
9877 break;
9878 case 925:
9879 {
9880 yyval.attribute = MkAttribute(yyvsp[(1) - (1)].string, (((void *)0)));
9881 yyval.attribute->loc = (yyloc);
9882 ;
9883 }
9884 break;
9885 case 926:
9886 {
9887 yyval.attribute = MkAttribute(yyvsp[(1) - (4)].string, MkExpBrackets(yyvsp[(3) - (4)].list));
9888 yyval.attribute->loc = (yyloc);
9889 ;
9890 }
9891 break;
9892 case 927:
9893 {
9894 yyval.list = MkListOne(yyvsp[(1) - (1)].attribute);
9895 ;
9896 }
9897 break;
9898 case 928:
9899 {
9900 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].attribute);
9901 yyval.list = yyvsp[(1) - (2)].list;
9902 ;
9903 }
9904 break;
9905 case 929:
9906 {
9907 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].attribute);
9908 yyval.list = yyvsp[(1) - (3)].list;
9909 ;
9910 }
9911 break;
9912 case 930:
9913 {
9914 yyval.attrib = MkAttrib(yyvsp[(1) - (6)].i, yyvsp[(4) - (6)].list);
9915 yyval.attrib->loc = (yyloc);
9916 ;
9917 }
9918 break;
9919 case 931:
9920 {
9921 yyval.attrib = MkAttrib(yyvsp[(1) - (5)].i, (((void *)0)));
9922 yyval.attrib->loc = (yyloc);
9923 ;
9924 }
9925 break;
9926 case 932:
9927 {
9928 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9929 ;
9930 }
9931 break;
9932 case 933:
9933 {
9934 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9935 ;
9936 }
9937 break;
9938 case 934:
9939 {
9940 yyval.declarator = MkDeclaratorArray((((void *)0)), (((void *)0)));
9941 ;
9942 }
9943 break;
9944 case 935:
9945 {
9946 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
9947 ;
9948 }
9949 break;
9950 case 936:
9951 {
9952 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
9953 ;
9954 }
9955 break;
9956 case 937:
9957 {
9958 yyval.declarator = MkDeclaratorEnumArray((((void *)0)), yyvsp[(2) - (3)].specifier);
9959 ;
9960 }
9961 break;
9962 case 938:
9963 {
9964 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9965 ;
9966 }
9967 break;
9968 case 939:
9969 {
9970 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9971 ;
9972 }
9973 break;
9974 case 940:
9975 {
9976 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9977 ;
9978 }
9979 break;
9980 case 941:
9981 {
9982 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9983 ;
9984 }
9985 break;
9986 case 942:
9987 {
9988 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
9989 ;
9990 }
9991 break;
9992 case 943:
9993 {
9994 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
9995 ;
9996 }
9997 break;
9998 case 944:
9999 {
10000 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10001 ;
10002 }
10003 break;
10004 case 945:
10005 {
10006 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
10007 ;
10008 }
10009 break;
10010 case 946:
10011 {
10012 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10013 ;
10014 }
10015 break;
10016 case 947:
10017 {
10018 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10019 ;
10020 }
10021 break;
10022 case 948:
10023 {
10024 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
10025 ;
10026 }
10027 break;
10028 case 949:
10029 {
10030 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
10031 ;
10032 }
10033 break;
10034 case 950:
10035 {
10036 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
10037 ;
10038 }
10039 break;
10040 case 951:
10041 {
10042 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10043 ;
10044 }
10045 break;
10046 case 952:
10047 {
10048 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10049 ;
10050 }
10051 break;
10052 case 953:
10053 {
10054 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
10055 ;
10056 }
10057 break;
10058 case 954:
10059 {
10060 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10061 ;
10062 }
10063 break;
10064 case 955:
10065 {
10066 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10067 ;
10068 }
10069 break;
10070 case 956:
10071 {
10072 yyval.pointer = MkPointer((((void *)0)), (((void *)0)));
10073 ;
10074 }
10075 break;
10076 case 957:
10077 {
10078 yyval.pointer = MkPointer(yyvsp[(2) - (2)].list, (((void *)0)));
10079 ;
10080 }
10081 break;
10082 case 958:
10083 {
10084 yyval.pointer = MkPointer((((void *)0)), yyvsp[(2) - (2)].pointer);
10085 ;
10086 }
10087 break;
10088 case 959:
10089 {
10090 yyval.pointer = MkPointer(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].pointer);
10091 ;
10092 }
10093 break;
10094 case 960:
10095 {
10096 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10097 ;
10098 }
10099 break;
10100 case 962:
10101 {
10102 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10103 ;
10104 }
10105 break;
10106 case 963:
10107 {
10108 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10109 ;
10110 }
10111 break;
10112 case 964:
10113 {
10114 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10115 ;
10116 }
10117 break;
10118 case 965:
10119 {
10120 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10121 ;
10122 }
10123 break;
10124 case 967:
10125 {
10126 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10127 ;
10128 }
10129 break;
10130 case 968:
10131 {
10132 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10133 ;
10134 }
10135 break;
10136 case 969:
10137 {
10138 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10139 ;
10140 }
10141 break;
10142 case 971:
10143 {
10144 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10145 ;
10146 }
10147 break;
10148 case 972:
10149 {
10150 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10151 ;
10152 }
10153 break;
10154 case 973:
10155 {
10156 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10157 ;
10158 }
10159 break;
10160 case 974:
10161 {
10162 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10163 ;
10164 }
10165 break;
10166 case 976:
10167 {
10168 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10169 ;
10170 }
10171 break;
10172 case 977:
10173 {
10174 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10175 ;
10176 }
10177 break;
10178 case 978:
10179 {
10180 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10181 ;
10182 }
10183 break;
10184 case 980:
10185 {
10186 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10187 ;
10188 }
10189 break;
10190 case 981:
10191 {
10192 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10193 ;
10194 }
10195 break;
10196 case 982:
10197 {
10198 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10199 ;
10200 }
10201 break;
10202 case 984:
10203 {
10204 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10205 ;
10206 }
10207 break;
10208 case 985:
10209 {
10210 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10211 ;
10212 }
10213 break;
10214 case 986:
10215 {
10216 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10217 ;
10218 }
10219 break;
10220 case 988:
10221 {
10222 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10223 ;
10224 }
10225 break;
10226 case 989:
10227 {
10228 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10229 ;
10230 }
10231 break;
10232 case 990:
10233 {
10234 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10235 ;
10236 }
10237 break;
10238 case 992:
10239 {
10240 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10241 ;
10242 }
10243 break;
10244 case 993:
10245 {
10246 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10247 ;
10248 }
10249 break;
10250 case 994:
10251 {
10252 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10253 ;
10254 }
10255 break;
10256 case 996:
10257 {
10258 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10259 ;
10260 }
10261 break;
10262 case 997:
10263 {
10264 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10265 ;
10266 }
10267 break;
10268 case 998:
10269 {
10270 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10271 ;
10272 }
10273 break;
10274 case 999:
10275 {
10276 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10277 yyval.initializer->loc = (yyloc);
10278 ;
10279 }
10280 break;
10281 case 1000:
10282 {
10283 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10284 yyval.initializer->loc = (yyloc);
10285 ;
10286 }
10287 break;
10288 case 1001:
10289 {
10290 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "extra comma\n", (((void *)0))));
10291 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10292 yyval.initializer->loc = (yyloc);
10293 {
10294 struct Expression * exp = MkExpDummy();
10295 struct Initializer * init = MkInitializerAssignment(exp);
10296
10297 init->loc = (yylsp[(3) - (4)]);
10298 exp->loc = (yylsp[(3) - (4)]);
10299 ListAdd(yyvsp[(2) - (4)].list, init);
10300 }
10301 ;
10302 }
10303 break;
10304 case 1002:
10305 {
10306 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10307 yyval.initializer->loc = (yyloc);
10308 ;
10309 }
10310 break;
10311 case 1003:
10312 {
10313 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10314 yyval.initializer->loc = (yyloc);
10315 ;
10316 }
10317 break;
10318 case 1004:
10319 {
10320 yyerror();
10321 yyval.initializer = MkInitializerList(yyvsp[(2) - (2)].list);
10322 yyval.initializer->loc = (yyloc);
10323 ;
10324 }
10325 break;
10326 case 1005:
10327 {
10328 yyval.initializer = MkInitializerList(yyvsp[(2) - (5)].list);
10329 yyval.initializer->loc = (yyloc);
10330 {
10331 struct Expression * exp = MkExpDummy();
10332 struct Initializer * init = MkInitializerAssignment(exp);
10333
10334 init->loc = (yylsp[(3) - (5)]);
10335 exp->loc = (yylsp[(3) - (5)]);
10336 ListAdd(yyvsp[(2) - (5)].list, init);
10337 }
10338 ;
10339 }
10340 break;
10341 case 1006:
10342 {
10343 yyerror();
10344 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10345 yyval.initializer->loc = (yyloc);
10346 {
10347 struct Expression * exp = MkExpDummy();
10348 struct Initializer * init = MkInitializerAssignment(exp);
10349
10350 init->loc = (yylsp[(3) - (3)]);
10351 exp->loc = (yylsp[(3) - (3)]);
10352 ListAdd(yyvsp[(2) - (3)].list, init);
10353 }
10354 ;
10355 }
10356 break;
10357 case 1007:
10358 {
10359 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10360 yyval.initializer->loc = (yyloc);
10361 ;
10362 }
10363 break;
10364 case 1008:
10365 {
10366 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10367 yyval.initializer->loc = (yyloc);
10368 ;
10369 }
10370 break;
10371 case 1009:
10372 {
10373 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10374 yyval.initializer->loc = (yyloc);
10375 ;
10376 }
10377 break;
10378 case 1010:
10379 {
10380 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10381 yyval.initializer->loc = (yyloc);
10382 ;
10383 }
10384 break;
10385 case 1011:
10386 {
10387 yyval.list = MkList();
10388 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10389 ;
10390 }
10391 break;
10392 case 1012:
10393 {
10394 yyval.list = MkList();
10395 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10396 ;
10397 }
10398 break;
10399 case 1013:
10400 {
10401 yyval.list = yyvsp[(1) - (3)].list;
10402 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10403 ;
10404 }
10405 break;
10406 case 1014:
10407 {
10408 yyval.list = yyvsp[(1) - (3)].list;
10409 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10410 ;
10411 }
10412 break;
10413 case 1015:
10414 {
10415 yyerror();
10416 yyval.list = yyvsp[(1) - (2)].list;
10417 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10418 ;
10419 }
10420 break;
10421 case 1016:
10422 {
10423 yyval.list = yyvsp[(1) - (2)].list;
10424 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10425 ;
10426 }
10427 break;
10428 case 1017:
10429 {
10430 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10431 yyval.initDeclarator->loc = (yyloc);
10432 ;
10433 }
10434 break;
10435 case 1018:
10436 {
10437 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10438 yyval.initDeclarator->loc = (yyloc);
10439 ;
10440 }
10441 break;
10442 case 1019:
10443 {
10444 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10445 yyval.initDeclarator->loc = (yyloc);
10446 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10447 ;
10448 }
10449 break;
10450 case 1020:
10451 {
10452 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
10453 yyval.initDeclarator->loc = (yyloc);
10454 ;
10455 }
10456 break;
10457 case 1021:
10458 {
10459 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10460 yyval.initDeclarator->loc = (yyloc);
10461 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10462 ;
10463 }
10464 break;
10465 case 1022:
10466 {
10467 yyval.list = MkList();
10468 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10469 ;
10470 }
10471 break;
10472 case 1023:
10473 {
10474 yyval.list = yyvsp[(1) - (3)].list;
10475 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10476 ;
10477 }
10478 break;
10479 case 1024:
10480 {
10481 yyval.list = MkList();
10482 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("uint")), (((void *)0))));
10483 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10484 ;
10485 }
10486 break;
10487 case 1025:
10488 {
10489 yyval.list = MkList();
10490 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("int64")), (((void *)0))));
10491 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10492 ;
10493 }
10494 break;
10495 case 1026:
10496 {
10497 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
10498 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
10499
10500 yyval.list = MkList();
10501 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(s)), (((void *)0))));
10502 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10503 FreeSpecifier(yyvsp[(1) - (3)].specifier);
10504 ;
10505 }
10506 break;
10507 case 1027:
10508 {
10509 yyval.list = yyvsp[(1) - (3)].list;
10510 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10511 ;
10512 }
10513 break;
10514 case 1028:
10515 {
10516 yyval.list = MkList();
10517 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10518 ;
10519 }
10520 break;
10521 case 1029:
10522 {
10523 yyval.list = MkList();
10524 ListAdd(yyval.list, yyvsp[(1) - (2)].initDeclarator);
10525 ;
10526 }
10527 break;
10528 case 1030:
10529 {
10530 yyval.list = yyvsp[(1) - (3)].list;
10531 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10532 ;
10533 }
10534 break;
10535 case 1031:
10536 {
10537 yyval.list = yyvsp[(1) - (3)].list;
10538 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10539 ;
10540 }
10541 break;
10542 case 1032:
10543 {
10544 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10545 ;
10546 }
10547 break;
10548 case 1033:
10549 {
10550 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10551 ;
10552 }
10553 break;
10554 case 1034:
10555 {
10556 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10557 ;
10558 }
10559 break;
10560 case 1035:
10561 {
10562 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10563 ;
10564 }
10565 break;
10566 case 1036:
10567 {
10568 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10569 ;
10570 }
10571 break;
10572 case 1037:
10573 {
10574 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10575 ;
10576 }
10577 break;
10578 case 1038:
10579 {
10580 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0))));
10581 ;
10582 }
10583 break;
10584 case 1039:
10585 {
10586 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), yyvsp[(3) - (3)].declarator));
10587 ;
10588 }
10589 break;
10590 case 1040:
10591 {
10592 yyval.typeName = MkTypeNameGuessDecl(yyvsp[(1) - (1)].list, (((void *)0)));
10593 ;
10594 }
10595 break;
10596 case 1041:
10597 {
10598 yyval.typeName = MkTypeName(MkListOne(MkSpecifier(CLASS)), (((void *)0)));
10599 ;
10600 }
10601 break;
10602 case 1042:
10603 {
10604 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10605 ;
10606 }
10607 break;
10608 case 1043:
10609 {
10610 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10611 ;
10612 }
10613 break;
10614 case 1044:
10615 {
10616 yyval.list = MkList();
10617 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10618 ;
10619 }
10620 break;
10621 case 1045:
10622 {
10623 yyval.list = yyvsp[(1) - (3)].list;
10624 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10625 ;
10626 }
10627 break;
10628 case 1046:
10629 {
10630 yyval.list = yyvsp[(1) - (4)].list;
10631 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10632 ;
10633 }
10634 break;
10635 case 1047:
10636 {
10637 yyval.list = yyvsp[(1) - (3)].list;
10638 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10639 ;
10640 }
10641 break;
10642 case 1048:
10643 {
10644 yyval.list = yyvsp[(1) - (4)].list;
10645 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10646 ;
10647 }
10648 break;
10649 case 1049:
10650 {
10651 yyval.list = MkList();
10652 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10653 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10654 ;
10655 }
10656 break;
10657 case 1050:
10658 {
10659 yyval.list = yyvsp[(1) - (3)].list;
10660 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10661 ;
10662 }
10663 break;
10664 case 1051:
10665 {
10666 yyval.list = yyvsp[(1) - (4)].list;
10667 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10668 ;
10669 }
10670 break;
10671 case 1052:
10672 {
10673 yyval.list = yyvsp[(1) - (3)].list;
10674 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10675 ;
10676 }
10677 break;
10678 case 1053:
10679 {
10680 yyval.list = yyvsp[(1) - (4)].list;
10681 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10682 ;
10683 }
10684 break;
10685 case 1054:
10686 {
10687 yyval.list = MkList();
10688 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10689 ;
10690 }
10691 break;
10692 case 1055:
10693 {
10694 yyval.list = yyvsp[(1) - (3)].list;
10695 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10696 ;
10697 }
10698 break;
10699 case 1056:
10700 {
10701 yyval.list = yyvsp[(1) - (3)].list;
10702 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10703 ;
10704 }
10705 break;
10706 case 1057:
10707 {
10708 yyval.list = yyvsp[(1) - (4)].list;
10709 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10710 ;
10711 }
10712 break;
10713 case 1058:
10714 {
10715 yyval.list = MkList();
10716 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10717 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10718 ;
10719 }
10720 break;
10721 case 1059:
10722 {
10723 yyval.list = yyvsp[(1) - (3)].list;
10724 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10725 ;
10726 }
10727 break;
10728 case 1060:
10729 {
10730 yyval.list = yyvsp[(1) - (3)].list;
10731 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10732 ;
10733 }
10734 break;
10735 case 1061:
10736 {
10737 yyval.list = yyvsp[(1) - (4)].list;
10738 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10739 ;
10740 }
10741 break;
10742 case 1063:
10743 {
10744 yyval.list = yyvsp[(1) - (3)].list;
10745 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10746 ;
10747 }
10748 break;
10749 case 1064:
10750 {
10751 yyval.list = yyvsp[(1) - (3)].list;
10752 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10753 ;
10754 }
10755 break;
10756 case 1065:
10757 {
10758 yyval.list = yyvsp[(1) - (3)].list;
10759 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10760 ;
10761 }
10762 break;
10763 case 1066:
10764 {
10765 yyval.list = yyvsp[(1) - (3)].list;
10766 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10767 ;
10768 }
10769 break;
10770 case 1067:
10771 {
10772 yyval.list = MkList();
10773 ListAdd(yyval.list, MkTypeName((((void *)0)), (((void *)0))));
10774 ;
10775 }
10776 break;
10777 case 1069:
10778 {
10779 yyval.list = yyvsp[(1) - (3)].list;
10780 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
10781 ;
10782 }
10783 break;
10784 case 1072:
10785 {
10786 yyval.stmt = MkExpressionStmt((((void *)0)));
10787 FreeAttrib(yyvsp[(1) - (1)].attrib);
10788 ;
10789 }
10790 break;
10791 case 1074:
10792 {
10793 yyval.stmt = MkExpressionStmt((((void *)0)));
10794 ;
10795 }
10796 break;
10797 case 1075:
10798 {
10799 yyval.stmt = MkExpressionStmt((((void *)0)));
10800 ;
10801 }
10802 break;
10803 case 1076:
10804 {
10805 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
10806 yyval.stmt->loc = (yyloc);
10807 ;
10808 }
10809 break;
10810 case 1084:
10811 {
10812 yyval.stmt = yyvsp[(1) - (1)].stmt;
10813 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10814 ;
10815 }
10816 break;
10817 case 1085:
10818 {
10819 yyval.stmt = yyvsp[(1) - (1)].stmt;
10820 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10821 ;
10822 }
10823 break;
10824 case 1086:
10825 {
10826 yyval.stmt = yyvsp[(1) - (1)].stmt;
10827 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10828 ;
10829 }
10830 break;
10831 case 1087:
10832 {
10833 yyval.stmt = yyvsp[(1) - (1)].stmt;
10834 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10835 ;
10836 }
10837 break;
10838 case 1088:
10839 {
10840 yyval.stmt = yyvsp[(1) - (1)].stmt;
10841 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10842 ;
10843 }
10844 break;
10845 case 1089:
10846 {
10847 yyval.stmt = yyvsp[(1) - (2)].stmt;
10848 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10849 ;
10850 }
10851 break;
10852 case 1090:
10853 {
10854 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (1)].list);
10855 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10856 yyval.stmt->loc = (yylsp[(1) - (1)]);
10857 ;
10858 }
10859 break;
10860 case 1091:
10861 {
10862 yyval.asmField = MkAsmField(yyvsp[(1) - (1)].string, (((void *)0)), (((void *)0)));
10863 yyval.asmField->loc = (yylsp[(1) - (1)]);
10864 ;
10865 }
10866 break;
10867 case 1092:
10868 {
10869 yyval.asmField = MkAsmField(yyvsp[(1) - (4)].string, yyvsp[(3) - (4)].exp, (((void *)0)));
10870 yyval.asmField->loc = (yyloc);
10871 ;
10872 }
10873 break;
10874 case 1093:
10875 {
10876 yyval.asmField = MkAsmField(yyvsp[(4) - (7)].string, yyvsp[(6) - (7)].exp, yyvsp[(2) - (7)].id);
10877 yyval.asmField->loc = (yyloc);
10878 ;
10879 }
10880 break;
10881 case 1094:
10882 {
10883 yyval.list = MkListOne(yyvsp[(1) - (1)].asmField);
10884 ;
10885 }
10886 break;
10887 case 1095:
10888 {
10889 ListAdd(yyval.list, yyvsp[(3) - (3)].asmField);
10890 ;
10891 }
10892 break;
10893 case 1096:
10894 {
10895 yyval.list = (((void *)0));
10896 ;
10897 }
10898 break;
10899 case 1097:
10900 {
10901 yyval.stmt = MkAsmStmt(yyvsp[(2) - (6)].specifier, yyvsp[(4) - (6)].string, (((void *)0)), (((void *)0)), (((void *)0)));
10902 yyval.stmt->loc = (yyloc);
10903 ;
10904 }
10905 break;
10906 case 1098:
10907 {
10908 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, yyvsp[(6) - (8)].list, (((void *)0)), (((void *)0)));
10909 yyval.stmt->loc = (yyloc);
10910 ;
10911 }
10912 break;
10913 case 1099:
10914 {
10915 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list, (((void *)0)));
10916 yyval.stmt->loc = (yyloc);
10917 ;
10918 }
10919 break;
10920 case 1100:
10921 {
10922 yyval.stmt = MkAsmStmt(yyvsp[(2) - (12)].specifier, yyvsp[(4) - (12)].string, yyvsp[(6) - (12)].list, yyvsp[(8) - (12)].list, yyvsp[(10) - (12)].list);
10923 yyval.stmt->loc = (yyloc);
10924 ;
10925 }
10926 break;
10927 case 1101:
10928 {
10929 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, (((void *)0)), yyvsp[(6) - (8)].list, (((void *)0)));
10930 yyval.stmt->loc = (yyloc);
10931 ;
10932 }
10933 break;
10934 case 1102:
10935 {
10936 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, (((void *)0)), yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list);
10937 yyval.stmt->loc = (yyloc);
10938 ;
10939 }
10940 break;
10941 case 1103:
10942 {
10943 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, (((void *)0)), yyvsp[(8) - (10)].list);
10944 yyval.stmt->loc = (yyloc);
10945 ;
10946 }
10947 break;
10948 case 1104:
10949 {
10950 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (5)].string, (((void *)0)), (((void *)0)), (((void *)0)));
10951 yyval.stmt->loc = (yyloc);
10952 ;
10953 }
10954 break;
10955 case 1105:
10956 {
10957 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, yyvsp[(5) - (7)].list, (((void *)0)), (((void *)0)));
10958 yyval.stmt->loc = (yyloc);
10959 ;
10960 }
10961 break;
10962 case 1106:
10963 {
10964 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, (((void *)0)));
10965 yyval.stmt->loc = (yyloc);
10966 ;
10967 }
10968 break;
10969 case 1107:
10970 {
10971 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (11)].string, yyvsp[(5) - (11)].list, yyvsp[(7) - (11)].list, yyvsp[(9) - (11)].list);
10972 yyval.stmt->loc = (yyloc);
10973 ;
10974 }
10975 break;
10976 case 1108:
10977 {
10978 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, (((void *)0)), yyvsp[(5) - (7)].list, (((void *)0)));
10979 yyval.stmt->loc = (yyloc);
10980 ;
10981 }
10982 break;
10983 case 1109:
10984 {
10985 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, (((void *)0)), yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list);
10986 yyval.stmt->loc = (yyloc);
10987 ;
10988 }
10989 break;
10990 case 1110:
10991 {
10992 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, (((void *)0)), yyvsp[(7) - (9)].list);
10993 yyval.stmt->loc = (yyloc);
10994 ;
10995 }
10996 break;
10997 case 1111:
10998 {
10999 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
11000 yyval.stmt->loc = (yyloc);
11001 ;
11002 }
11003 break;
11004 case 1112:
11005 {
11006 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11007 yyval.stmt->loc = (yyloc);
11008 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11009 ;
11010 }
11011 break;
11012 case 1113:
11013 {
11014 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11015 yyval.stmt->loc = (yyloc);
11016 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11017 ;
11018 }
11019 break;
11020 case 1114:
11021 {
11022 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
11023 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11024 yyval.stmt->loc = (yyloc);
11025 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11026 ;
11027 }
11028 break;
11029 case 1115:
11030 {
11031 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11032 yyval.stmt->loc = (yyloc);
11033 ;
11034 }
11035 break;
11036 case 1116:
11037 {
11038 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11039
11040 stmt->loc = (yylsp[(3) - (3)]);
11041 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11042 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11043 yyval.stmt->loc = (yyloc);
11044 ;
11045 }
11046 break;
11047 case 1117:
11048 {
11049 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11050
11051 stmt->loc = (yylsp[(4) - (4)]);
11052 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11053 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11054 yyval.stmt->loc = (yyloc);
11055 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11056 ;
11057 }
11058 break;
11059 case 1118:
11060 {
11061 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11062
11063 stmt->loc = (yylsp[(4) - (4)]);
11064 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11065 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11066 yyval.stmt->loc = (yyloc);
11067 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11068 ;
11069 }
11070 break;
11071 case 1119:
11072 {
11073 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11074
11075 stmt->loc = (yylsp[(3) - (3)]);
11076 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11077 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11078 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11079 yyval.stmt->loc = (yyloc);
11080 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11081 ;
11082 }
11083 break;
11084 case 1120:
11085 {
11086 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11087
11088 stmt->loc = (yylsp[(3) - (3)]);
11089 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11090 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11091 yyval.stmt->loc = (yyloc);
11092 ;
11093 }
11094 break;
11095 case 1121:
11096 {
11097 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
11098 yyval.stmt->loc = (yyloc);
11099 ;
11100 }
11101 break;
11102 case 1122:
11103 {
11104 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11105 yyval.stmt->loc = (yyloc);
11106 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11107 ;
11108 }
11109 break;
11110 case 1123:
11111 {
11112 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11113 yyval.stmt->loc = (yyloc);
11114 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11115 ;
11116 }
11117 break;
11118 case 1124:
11119 {
11120 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
11121 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11122 yyval.stmt->loc = (yyloc);
11123 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11124 ;
11125 }
11126 break;
11127 case 1125:
11128 {
11129 yyval.stmt = MkCaseStmt(MkExpDummy(), (((void *)0)));
11130 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (2)]);
11131 yyval.stmt->loc = (yyloc);
11132 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (2)]).end;
11133 ;
11134 }
11135 break;
11136 case 1126:
11137 {
11138 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11139 yyval.stmt->loc = (yyloc);
11140 ;
11141 }
11142 break;
11143 case 1127:
11144 {
11145 yyval.stmt = MkCaseStmt((((void *)0)), (((void *)0)));
11146 yyval.stmt->loc = (yyloc);
11147 ;
11148 }
11149 break;
11150 case 1128:
11151 {
11152 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11153
11154 stmt->loc = (yylsp[(3) - (3)]);
11155 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11156 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11157 yyval.stmt->loc = (yyloc);
11158 ;
11159 }
11160 break;
11161 case 1129:
11162 {
11163 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11164
11165 stmt->loc = (yylsp[(4) - (4)]);
11166 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11167 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11168 yyval.stmt->loc = (yyloc);
11169 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11170 ;
11171 }
11172 break;
11173 case 1130:
11174 {
11175 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11176
11177 stmt->loc = (yylsp[(4) - (4)]);
11178 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11179 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11180 yyval.stmt->loc = (yyloc);
11181 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11182 ;
11183 }
11184 break;
11185 case 1131:
11186 {
11187 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11188
11189 stmt->loc = (yylsp[(3) - (3)]);
11190 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11191 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11192 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11193 yyval.stmt->loc = (yyloc);
11194 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11195 ;
11196 }
11197 break;
11198 case 1132:
11199 {
11200 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11201
11202 stmt->loc = (yylsp[(3) - (3)]);
11203 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11204 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11205 yyval.stmt->loc = (yyloc);
11206 ;
11207 }
11208 break;
11209 case 1133:
11210 {
11211 yyval.declMode = structDeclMode = declMode = 1;
11212 ;
11213 }
11214 break;
11215 case 1134:
11216 {
11217 yyval.declMode = structDeclMode = declMode = 2;
11218 ;
11219 }
11220 break;
11221 case 1135:
11222 {
11223 yyval.declMode = structDeclMode = declMode = 0;
11224 ;
11225 }
11226 break;
11227 case 1136:
11228 {
11229 yyval.declMode = 1;
11230 ;
11231 }
11232 break;
11233 case 1137:
11234 {
11235 yyval.declMode = 2;
11236 ;
11237 }
11238 break;
11239 case 1138:
11240 {
11241 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11242 yyval.declaration->loc = (yyloc);
11243 structDeclMode = defaultDeclMode;
11244 ;
11245 }
11246 break;
11247 case 1139:
11248 {
11249 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11250 yyval.declaration->loc = (yyloc);
11251 structDeclMode = defaultDeclMode;
11252 ;
11253 }
11254 break;
11255 case 1140:
11256 {
11257 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11258 yyval.declaration->loc = (yyloc);
11259 structDeclMode = defaultDeclMode;
11260 ;
11261 }
11262 break;
11263 case 1141:
11264 {
11265 yyval.declaration = yyvsp[(1) - (2)].declaration;
11266 structDeclMode = defaultDeclMode;
11267 ;
11268 }
11269 break;
11270 case 1142:
11271 {
11272 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11273 yyval.declaration->loc = (yyloc);
11274 ;
11275 }
11276 break;
11277 case 1143:
11278 {
11279 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11280 yyval.declaration->loc = (yyloc);
11281 ;
11282 }
11283 break;
11284 case 1144:
11285 {
11286 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11287 yyval.declaration->loc = (yyloc);
11288 ;
11289 }
11290 break;
11291 case 1145:
11292 {
11293 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11294 yyval.declaration->loc = (yyloc);
11295 ;
11296 }
11297 break;
11298 case 1146:
11299 {
11300 yyval.declaration = MkDeclarationDefine(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].exp);
11301 yyval.declaration->loc = (yyloc);
11302 ;
11303 }
11304 break;
11305 case 1147:
11306 {
11307 structDeclMode = declMode = 3;
11308 yyval.declaration = MkDeclarationDefine(yyvsp[(3) - (6)].id, yyvsp[(5) - (6)].exp);
11309 yyval.declaration->loc = (yyloc);
11310 ;
11311 }
11312 break;
11313 case 1148:
11314 {
11315 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11316 yyval.declaration->loc = (yyloc);
11317 (yyerrstatus = 0);
11318 ;
11319 }
11320 break;
11321 case 1149:
11322 {
11323 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11324 yyval.declaration->loc = (yyloc);
11325 structDeclMode = defaultDeclMode;
11326 ;
11327 }
11328 break;
11329 case 1150:
11330 {
11331 structDeclMode = defaultDeclMode;
11332 ;
11333 }
11334 break;
11335 case 1151:
11336 {
11337 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11338 yyval.declaration->loc = (yyloc);
11339 structDeclMode = defaultDeclMode;
11340 ;
11341 }
11342 break;
11343 case 1152:
11344 {
11345 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11346 yyval.declaration->loc = (yyloc);
11347 structDeclMode = defaultDeclMode;
11348 ;
11349 }
11350 break;
11351 case 1153:
11352 {
11353 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11354 yyval.declaration->loc = (yyloc);
11355 structDeclMode = defaultDeclMode;
11356 ;
11357 }
11358 break;
11359 case 1154:
11360 {
11361 yyval.list = MkList();
11362 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11363 ;
11364 }
11365 break;
11366 case 1155:
11367 {
11368 yyval.list = yyvsp[(1) - (2)].list;
11369 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11370 ;
11371 }
11372 break;
11373 case 1156:
11374 {
11375 yyval.list = yyvsp[(1) - (2)].list;
11376 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11377 ;
11378 }
11379 break;
11380 case 1157:
11381 {
11382 yyval.list = yyvsp[(1) - (3)].list;
11383 ;
11384 }
11385 break;
11386 case 1158:
11387 {
11388 yyval.list = MkList();
11389 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11390 ;
11391 }
11392 break;
11393 case 1159:
11394 {
11395 yyval.list = yyvsp[(1) - (2)].list;
11396 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11397 ;
11398 }
11399 break;
11400 case 1160:
11401 {
11402 yyval.list = MkList();
11403 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11404 ;
11405 }
11406 break;
11407 case 1161:
11408 {
11409 yyval.list = yyvsp[(1) - (2)].list;
11410 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11411 ;
11412 }
11413 break;
11414 case 1162:
11415 {
11416 yyval.list = yyvsp[(1) - (2)].list;
11417 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11418 ;
11419 }
11420 break;
11421 case 1163:
11422 {
11423 yyval.list = MkList();
11424 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11425 ;
11426 }
11427 break;
11428 case 1164:
11429 {
11430 yyval.list = yyvsp[(1) - (2)].list;
11431 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11432 ;
11433 }
11434 break;
11435 case 1165:
11436 {
11437 yyval.list = yyvsp[(1) - (2)].list;
11438 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11439 ;
11440 }
11441 break;
11442 case 1166:
11443 {
11444 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11445
11446 stmt->loc = (yylsp[(2) - (2)]);
11447 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11448 yyval.list = yyvsp[(1) - (2)].list;
11449 ListAdd(yyvsp[(1) - (2)].list, stmt);
11450 ;
11451 }
11452 break;
11453 case 1167:
11454 {
11455 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11456
11457 stmt->loc = (yylsp[(2) - (2)]);
11458 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11459 yyval.list = yyvsp[(1) - (2)].list;
11460 ListAdd(yyvsp[(1) - (2)].list, stmt);
11461 ;
11462 }
11463 break;
11464 case 1168:
11465 {
11466 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11467
11468 stmt->loc = (yylsp[(2) - (2)]);
11469 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11470 yyval.list = yyvsp[(1) - (2)].list;
11471 ListAdd(yyvsp[(1) - (2)].list, stmt);
11472 ;
11473 }
11474 break;
11475 case 1169:
11476 {
11477 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11478
11479 stmt->loc = (yylsp[(2) - (2)]);
11480 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11481 yyval.list = yyvsp[(1) - (2)].list;
11482 ListAdd(yyvsp[(1) - (2)].list, stmt);
11483 ;
11484 }
11485 break;
11486 case 1170:
11487 {
11488 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11489 ;
11490 }
11491 break;
11492 case 1171:
11493 {
11494 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11495 ;
11496 }
11497 break;
11498 case 1172:
11499 {
11500 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11501 ;
11502 }
11503 break;
11504 case 1173:
11505 {
11506 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11507 ;
11508 }
11509 break;
11510 case 1174:
11511 {
11512 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11513 ;
11514 }
11515 break;
11516 case 1175:
11517 {
11518 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11519 ;
11520 }
11521 break;
11522 case 1176:
11523 {
11524 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11525 ;
11526 }
11527 break;
11528 case 1177:
11529 {
11530 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11531 ;
11532 }
11533 break;
11534 case 1178:
11535 {
11536 yyval.context = PushContext();
11537 ;
11538 }
11539 break;
11540 case 1179:
11541 {
11542 yyval.stmt = yyvsp[(1) - (2)].stmt;
11543 yyval.stmt->loc = (yyloc);
11544 ;
11545 }
11546 break;
11547 case 1180:
11548 {
11549 yyval.stmt = yyvsp[(2) - (2)].stmt;
11550 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11551 PopContext(yyvsp[(1) - (2)].context);
11552 yyval.stmt->loc = (yyloc);
11553 yyval.stmt->loc.end.charPos++;
11554 yyval.stmt->loc.end.pos++;
11555 ;
11556 }
11557 break;
11558 case 1181:
11559 {
11560 yyval.stmt = MkCompoundStmt((((void *)0)), (((void *)0)));
11561 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (1)].context;
11562 PopContext(yyvsp[(1) - (1)].context);
11563 yyval.stmt->loc = (yyloc);
11564 yyval.stmt->loc.end.charPos++;
11565 yyval.stmt->loc.end.pos++;
11566 ;
11567 }
11568 break;
11569 case 1182:
11570 {
11571 yyval.stmt = yyvsp[(2) - (2)].stmt;
11572 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11573 PopContext(yyvsp[(1) - (2)].context);
11574 yyval.stmt->loc = (yyloc);
11575 yyval.stmt->loc.end.charPos++;
11576 yyval.stmt->loc.end.pos++;
11577 ;
11578 }
11579 break;
11580 case 1183:
11581 {
11582 yyval.stmt = MkExpressionStmt((((void *)0)));
11583 yyval.stmt->loc = (yyloc);
11584 ;
11585 }
11586 break;
11587 case 1184:
11588 {
11589 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11590 yyval.stmt->loc = (yyloc);
11591 ;
11592 }
11593 break;
11594 case 1185:
11595 {
11596 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11597 yyval.stmt->loc = (yyloc);
11598 ;
11599 }
11600 break;
11601 case 1186:
11602 {
11603 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11604 yyval.stmt->loc = (yyloc);
11605 ;
11606 }
11607 break;
11608 case 1187:
11609 {
11610 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11611 yyval.stmt->loc = (yyloc);
11612 ;
11613 }
11614 break;
11615 case 1188:
11616 {
11617 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11618 yyval.stmt->loc = (yyloc);
11619 ;
11620 }
11621 break;
11622 case 1189:
11623 {
11624 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11625 yyval.stmt->loc = (yyloc);
11626 ;
11627 }
11628 break;
11629 case 1190:
11630 {
11631 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11632 yyval.stmt->loc = (yyloc);
11633 ;
11634 }
11635 break;
11636 case 1191:
11637 {
11638 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11639 yyval.stmt->loc = (yyloc);
11640 ;
11641 }
11642 break;
11643 case 1192:
11644 {
11645 yyval.stmt = MkIfStmt(yyvsp[(3) - (3)].list, (((void *)0)), (((void *)0)));
11646 yyval.stmt->loc = (yyloc);
11647 ;
11648 }
11649 break;
11650 case 1194:
11651 {
11652 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11653 yyval.stmt->loc = (yyloc);
11654 ;
11655 }
11656 break;
11657 case 1195:
11658 {
11659 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11660 yyval.stmt->loc = (yyloc);
11661 ;
11662 }
11663 break;
11664 case 1196:
11665 {
11666 yyerror();
11667 yyval.stmt = MkWhileStmt((((void *)0)), yyvsp[(4) - (4)].stmt);
11668 yyval.stmt->loc = (yyloc);
11669 ;
11670 }
11671 break;
11672 case 1197:
11673 {
11674 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (7)].stmt, yyvsp[(5) - (7)].list);
11675 yyval.stmt->loc = (yyloc);
11676 ;
11677 }
11678 break;
11679 case 1198:
11680 {
11681 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11682 yyval.stmt->loc = (yyloc);
11683 ;
11684 }
11685 break;
11686 case 1199:
11687 {
11688 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11689 yyval.stmt->loc = (yyloc);
11690 ;
11691 }
11692 break;
11693 case 1200:
11694 {
11695 yyerror();
11696 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, (((void *)0)), (((void *)0)), yyvsp[(5) - (5)].stmt);
11697 yyval.stmt->loc = (yyloc);
11698 ;
11699 }
11700 break;
11701 case 1201:
11702 {
11703 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11704 yyval.stmt->loc = (yyloc);
11705 ;
11706 }
11707 break;
11708 case 1202:
11709 {
11710 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11711 yyval.stmt->loc = (yyloc);
11712 ;
11713 }
11714 break;
11715 case 1203:
11716 {
11717 yyerror();
11718 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), yyvsp[(4) - (4)].stmt);
11719 yyval.stmt->loc = (yyloc);
11720 ;
11721 }
11722 break;
11723 case 1204:
11724 {
11725 yyval.stmt = MkForEachStmt(yyvsp[(3) - (7)].id, yyvsp[(5) - (7)].list, (((void *)0)), yyvsp[(7) - (7)].stmt);
11726 yyval.stmt->loc = (yyloc);
11727 ;
11728 }
11729 break;
11730 case 1205:
11731 {
11732 yyval.stmt = MkForEachStmt(yyvsp[(3) - (9)].id, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, yyvsp[(9) - (9)].stmt);
11733 yyval.stmt->loc = (yyloc);
11734 ;
11735 }
11736 break;
11737 case 1206:
11738 {
11739 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
11740 yyval.stmt->loc = (yyloc);
11741 ;
11742 }
11743 break;
11744 case 1207:
11745 {
11746 yyval.stmt = MkForStmt(MkExpressionStmt(yyvsp[(3) - (4)].list), (((void *)0)), (((void *)0)), (((void *)0)));
11747 yyval.stmt->__anon1.forStmt.init->loc = (yylsp[(3) - (4)]);
11748 yyval.stmt->loc = (yyloc);
11749 ;
11750 }
11751 break;
11752 case 1208:
11753 {
11754 yyval.stmt = MkForStmt(yyvsp[(3) - (4)].stmt, (((void *)0)), (((void *)0)), (((void *)0)));
11755 yyval.stmt->loc = (yyloc);
11756 ;
11757 }
11758 break;
11759 case 1209:
11760 {
11761 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, MkExpressionStmt(yyvsp[(4) - (5)].list), (((void *)0)), (((void *)0)));
11762 yyval.stmt->loc = (yyloc);
11763 yyval.stmt->__anon1.forStmt.check->loc = (yylsp[(4) - (5)]);
11764 ;
11765 }
11766 break;
11767 case 1210:
11768 {
11769 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, yyvsp[(4) - (5)].stmt, yyvsp[(5) - (5)].list, (((void *)0)));
11770 yyval.stmt->loc = (yyloc);
11771 ;
11772 }
11773 break;
11774 case 1211:
11775 {
11776 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11777 yyval.stmt->loc = (yyloc);
11778 ;
11779 }
11780 break;
11781 case 1212:
11782 {
11783 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11784 yyval.stmt->loc = (yyloc);
11785 ;
11786 }
11787 break;
11788 case 1213:
11789 {
11790 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11791 yyval.stmt->loc = (yyloc);
11792 ;
11793 }
11794 break;
11795 case 1214:
11796 {
11797 yyerror();
11798 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11799 yyval.stmt->loc = (yyloc);
11800 ;
11801 }
11802 break;
11803 case 1215:
11804 {
11805 yyerror();
11806 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11807 yyval.stmt->loc = (yyloc);
11808 ;
11809 }
11810 break;
11811 case 1216:
11812 {
11813 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11814 yyval.stmt->loc = (yyloc);
11815 ;
11816 }
11817 break;
11818 case 1217:
11819 {
11820 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (4)].stmt, (((void *)0)));
11821 yyval.stmt->loc = (yyloc);
11822 ;
11823 }
11824 break;
11825 case 1218:
11826 {
11827 yyerror();
11828 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (3)].stmt, (((void *)0)));
11829 yyval.stmt->loc = (yyloc);
11830 ;
11831 }
11832 break;
11833 case 1219:
11834 {
11835 yyerror();
11836 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (2)].stmt, (((void *)0)));
11837 yyval.stmt->loc = (yyloc);
11838 ;
11839 }
11840 break;
11841 case 1220:
11842 {
11843 yyerror();
11844 yyval.stmt = MkDoWhileStmt((((void *)0)), (((void *)0)));
11845 yyval.stmt->loc = (yyloc);
11846 ;
11847 }
11848 break;
11849 case 1221:
11850 {
11851 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11852 yyval.stmt->loc = (yyloc);
11853 ;
11854 }
11855 break;
11856 case 1222:
11857 {
11858 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11859 yyval.stmt->loc = (yyloc);
11860 ;
11861 }
11862 break;
11863 case 1223:
11864 {
11865 yyval.stmt = MkWhileStmt(yyvsp[(3) - (3)].list, (((void *)0)));
11866 yyval.stmt->loc = (yyloc);
11867 ;
11868 }
11869 break;
11870 case 1224:
11871 {
11872 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11873 yyval.stmt->loc = (yyloc);
11874 ;
11875 }
11876 break;
11877 case 1225:
11878 {
11879 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11880 yyval.stmt->loc = (yyloc);
11881 ;
11882 }
11883 break;
11884 case 1226:
11885 {
11886 yyval.stmt = MkGotoStmt(yyvsp[(2) - (3)].id);
11887 yyval.stmt->loc = (yyloc);
11888 ;
11889 }
11890 break;
11891 case 1227:
11892 {
11893 yyval.stmt = MkContinueStmt();
11894 yyval.stmt->loc = (yyloc);
11895 ;
11896 }
11897 break;
11898 case 1228:
11899 {
11900 yyval.stmt = MkBreakStmt();
11901 yyval.stmt->loc = (yyloc);
11902 ;
11903 }
11904 break;
11905 case 1229:
11906 {
11907 struct Expression * exp = MkExpDummy();
11908
11909 yyval.stmt = MkReturnStmt(MkListOne(exp));
11910 yyval.stmt->loc = (yyloc);
11911 exp->loc = (yylsp[(2) - (2)]);
11912 ;
11913 }
11914 break;
11915 case 1230:
11916 {
11917 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
11918 yyval.stmt->loc = (yyloc);
11919 ;
11920 }
11921 break;
11922 case 1231:
11923 {
11924 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
11925 yyval.stmt->loc = (yyloc);
11926 ;
11927 }
11928 break;
11929 case 1232:
11930 {
11931 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
11932 yyval.stmt->loc = (yyloc);
11933 ;
11934 }
11935 break;
11936 case 1233:
11937 {
11938 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
11939 yyval.stmt->loc = (yyloc);
11940 ;
11941 }
11942 break;
11943 case 1234:
11944 {
11945 yyval.stmt = MkReturnStmt(yyvsp[(2) - (2)].list);
11946 yyval.stmt->loc = (yyloc);
11947 ;
11948 }
11949 break;
11950 case 1235:
11951 {
11952 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (2)].exp));
11953 yyval.stmt->loc = (yyloc);
11954 ;
11955 }
11956 break;
11957 case 1236:
11958 {
11959 struct Expression * exp = MkExpDummy();
11960
11961 yyval.stmt = MkReturnStmt(MkListOne(exp));
11962 yyval.stmt->loc = (yyloc);
11963 exp->loc.start = exp->loc.end = (yylsp[(1) - (1)]).end;
11964 ;
11965 }
11966 break;
11967 case 1237:
11968 {
11969 yyval.stmt = MkGotoStmt((((void *)0)));
11970 yyval.stmt->loc = (yyloc);
11971 ;
11972 }
11973 break;
11974 case 1238:
11975 {
11976 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
11977 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
11978 yyval.function->loc = (yyloc);
11979 ;
11980 }
11981 break;
11982 case 1239:
11983 {
11984 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
11985 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
11986 yyval.function->loc = (yyloc);
11987 ;
11988 }
11989 break;
11990 case 1240:
11991 {
11992 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
11993 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
11994 yyval.function->loc = (yyloc);
11995 ;
11996 }
11997 break;
11998 case 1241:
11999 {
12000 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12001 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12002 yyval.function->loc = (yyloc);
12003 ;
12004 }
12005 break;
12006 case 1242:
12007 {
12008 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
12009 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12010 yyval.function->loc = (yyloc);
12011 ;
12012 }
12013 break;
12014 case 1243:
12015 {
12016 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
12017 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
12018 yyval.function->loc = (yyloc);
12019 ;
12020 }
12021 break;
12022 case 1244:
12023 {
12024 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12025 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12026 yyval.function->loc = (yyloc);
12027 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12028 ;
12029 }
12030 break;
12031 case 1245:
12032 {
12033 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12034 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12035 yyval.function->loc = (yyloc);
12036 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12037 ;
12038 }
12039 break;
12040 case 1246:
12041 {
12042 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12043 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12044 yyval.function->loc = (yyloc);
12045 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12046 ;
12047 }
12048 break;
12049 case 1247:
12050 {
12051 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12052 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12053 yyval.function->loc = (yyloc);
12054 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12055 ;
12056 }
12057 break;
12058 case 1248:
12059 {
12060 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
12061 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12062 yyval.function->loc = (yyloc);
12063 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12064 ;
12065 }
12066 break;
12067 case 1249:
12068 {
12069 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
12070 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
12071 yyval.function->loc = (yyloc);
12072 yyval.function->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
12073 ;
12074 }
12075 break;
12076 case 1250:
12077 {
12078 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
12079 ;
12080 }
12081 break;
12082 case 1251:
12083 {
12084 int len1 = strlen(yyvsp[(1) - (2)].string);
12085 int len2 = strlen(yytext);
12086
12087 yyval.string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len1 - 1 + len2 - 1 + 1));
12088 memcpy(yyval.string, yyvsp[(1) - (2)].string, len1 - 1);
12089 memcpy(yyval.string + len1 - 1, yytext + 1, len2);
12090 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(1) - (2)].string), yyvsp[(1) - (2)].string = 0);
12091 ;
12092 }
12093 break;
12094 case 1252:
12095 {
12096 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12097 yyval.external->loc = (yyloc);
12098 yyvsp[(1) - (1)].function->declMode = declMode;
12099 structDeclMode = declMode = defaultDeclMode;
12100 ;
12101 }
12102 break;
12103 case 1253:
12104 {
12105 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12106 yyval.external->loc = (yyloc);
12107 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12108 structDeclMode = declMode = defaultDeclMode;
12109 ;
12110 }
12111 break;
12112 case 1254:
12113 {
12114 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12115 yyval.external->loc = (yyloc);
12116 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12117 structDeclMode = declMode = defaultDeclMode;
12118 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12119 ;
12120 }
12121 break;
12122 case 1255:
12123 {
12124 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12125 yyval.external->loc = (yyloc);
12126 yyvsp[(1) - (1)].declaration->declMode = declMode;
12127 structDeclMode = declMode = defaultDeclMode;
12128 ;
12129 }
12130 break;
12131 case 1256:
12132 {
12133 yyval.external = MkExternalImport(yyvsp[(2) - (2)].string, 0, (declMode != 0) ? declMode : 2);
12134 yyval.external->loc = (yyloc);
12135 ;
12136 }
12137 break;
12138 case 1257:
12139 {
12140 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 1, (declMode != 0) ? declMode : 2);
12141 yyval.external->loc = (yyloc);
12142 ;
12143 }
12144 break;
12145 case 1258:
12146 {
12147 unsigned int isRemote = !strcmp(yyvsp[(2) - (3)].id->string, "remote");
12148
12149 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, isRemote ? 2 : 0, (declMode != 0) ? declMode : 2);
12150 yyval.external->loc = (yyloc);
12151 FreeIdentifier(yyvsp[(2) - (3)].id);
12152 if(!isRemote)
12153 yyerror();
12154 ;
12155 }
12156 break;
12157 case 1259:
12158 {
12159 yyval.external = (((void *)0));
12160 ;
12161 }
12162 break;
12163 case 1260:
12164 {
12165 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12166 yyval.external->loc = (yyloc);
12167 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12168 structDeclMode = declMode = defaultDeclMode;
12169 ;
12170 }
12171 break;
12172 case 1261:
12173 {
12174 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12175 yyval.external->loc = (yyloc);
12176 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12177 structDeclMode = declMode = defaultDeclMode;
12178 ;
12179 }
12180 break;
12181 case 1262:
12182 {
12183 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12184 yyval.external->loc = (yyloc);
12185 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12186 structDeclMode = declMode = defaultDeclMode;
12187 ;
12188 }
12189 break;
12190 case 1263:
12191 {
12192 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 0, (yyvsp[(1) - (3)].declMode != 0) ? yyvsp[(1) - (3)].declMode : 2);
12193 yyval.external->loc = (yyloc);
12194 structDeclMode = declMode = defaultDeclMode;
12195 ;
12196 }
12197 break;
12198 case 1264:
12199 {
12200 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, 1, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12201 yyval.external->loc = (yyloc);
12202 structDeclMode = declMode = defaultDeclMode;
12203 ;
12204 }
12205 break;
12206 case 1265:
12207 {
12208 unsigned int isRemote = !strcmp(yyvsp[(3) - (4)].id->string, "remote");
12209
12210 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, isRemote ? 2 : 0, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12211 yyval.external->loc = (yyloc);
12212 FreeIdentifier(yyvsp[(3) - (4)].id);
12213 structDeclMode = declMode = defaultDeclMode;
12214 if(!isRemote)
12215 yyerror();
12216 ;
12217 }
12218 break;
12219 case 1266:
12220 {
12221 defaultDeclMode = yyvsp[(1) - (2)].declMode;
12222 yyval.external = (((void *)0));
12223 ;
12224 }
12225 break;
12226 case 1267:
12227 {
12228 defaultDeclMode = 3;
12229 yyval.external = (((void *)0));
12230 ;
12231 }
12232 break;
12233 case 1268:
12234 {
12235 yyval.external = MkExternalNameSpace(yyvsp[(2) - (2)].id);
12236 yyval.external->loc = (yyloc);
12237 ;
12238 }
12239 break;
12240 case 1269:
12241 {
12242 yyval.external = MkExternalNameSpace(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name));
12243 FreeSpecifier(yyvsp[(2) - (2)].specifier);
12244 yyval.external->loc = (yyloc);
12245 ;
12246 }
12247 break;
12248 case 1270:
12249 {
12250 yyval.external = MkExternalDBTable(yyvsp[(1) - (1)].dbtableDef);
12251 yyval.external->loc = (yyloc);
12252 yyvsp[(1) - (1)].dbtableDef->declMode = (declMode != 0) ? declMode : 2;
12253 structDeclMode = declMode = defaultDeclMode;
12254 ;
12255 }
12256 break;
12257 case 1271:
12258 {
12259 yyval.external = MkExternalDBTable(yyvsp[(2) - (2)].dbtableDef);
12260 yyval.external->loc = (yyloc);
12261 yyvsp[(2) - (2)].dbtableDef->declMode = (yyvsp[(1) - (2)].declMode != 0) ? declMode : 2;
12262 structDeclMode = declMode = defaultDeclMode;
12263 ;
12264 }
12265 break;
12266 case 1272:
12267 {
12268 yyerror();
12269 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12270 yyval.external->loc = yyvsp[(1) - (1)]._class->loc;
12271 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12272 structDeclMode = declMode = defaultDeclMode;
12273 ;
12274 }
12275 break;
12276 case 1273:
12277 {
12278 yyerror();
12279 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12280 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12281 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12282 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12283 structDeclMode = declMode = defaultDeclMode;
12284 ;
12285 }
12286 break;
12287 case 1274:
12288 {
12289 yyerror();
12290 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12291 yyval.external->loc = yyvsp[(1) - (1)].function->loc;
12292 yyvsp[(1) - (1)].function->declMode = declMode;
12293 structDeclMode = declMode = defaultDeclMode;
12294 ;
12295 }
12296 break;
12297 case 1275:
12298 {
12299 yyerror();
12300 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12301 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12302 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12303 structDeclMode = declMode = defaultDeclMode;
12304 ;
12305 }
12306 break;
12307 case 1276:
12308 {
12309 yyerror();
12310 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12311 yyval.external->loc = yyvsp[(2) - (2)].function->loc;
12312 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12313 structDeclMode = declMode = defaultDeclMode;
12314 ;
12315 }
12316 break;
12317 case 1277:
12318 {
12319 yyerror();
12320 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12321 yyval.external->loc = (yyloc);
12322 yyvsp[(1) - (1)].declaration->declMode = declMode;
12323 structDeclMode = declMode = defaultDeclMode;
12324 ;
12325 }
12326 break;
12327 case 1278:
12328 {
12329 yyerror();
12330 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12331 yyval.external->loc = (yyloc);
12332 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12333 structDeclMode = declMode = defaultDeclMode;
12334 ;
12335 }
12336 break;
12337 case 1279:
12338 {
12339 yyval.list = MkList();
12340 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12341 ast = yyval.list;
12342 ;
12343 }
12344 break;
12345 case 1280:
12346 {
12347 yyval.list = yyvsp[(1) - (2)].list;
12348 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12349 ;
12350 }
12351 break;
12352 case 1281:
12353 {
12354 yyval.list = yyvsp[(1) - (2)].list;
12355 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12356 ;
12357 }
12358 break;
12359 case 1284:
12360 {
12361 yyval.list = MkList();
12362 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12363 ast = yyval.list;
12364 ;
12365 }
12366 break;
12367 case 1285:
12368 {
12369 yyval.list = yyvsp[(1) - (2)].list;
12370 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12371 ;
12372 }
12373 break;
12374 case 1286:
12375 {
12376 struct External * _class = MkExternalClass(yyvsp[(2) - (2)]._class);
12377
12378 yyval.list = yyvsp[(1) - (2)].list;
12379 ListAdd(yyvsp[(1) - (2)].list, _class);
12380 _class->loc = (yylsp[(2) - (2)]);
12381 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12382 structDeclMode = declMode = defaultDeclMode;
12383 ;
12384 }
12385 break;
12386 case 1287:
12387 {
12388 struct External * _class = MkExternalClass(yyvsp[(3) - (3)]._class);
12389
12390 yyval.list = yyvsp[(1) - (3)].list;
12391 ListAdd(yyvsp[(1) - (3)].list, _class);
12392 _class->loc = (yylsp[(3) - (3)]);
12393 yyvsp[(3) - (3)]._class->declMode = (yyvsp[(2) - (3)].declMode != 0) ? yyvsp[(2) - (3)].declMode : 2;
12394 structDeclMode = declMode = defaultDeclMode;
12395 ;
12396 }
12397 break;
12398 case 1290:
12399 {
12400 ast = MkList();
12401 ;
12402 }
12403 break;
12404 case 1291:
12405 {
12406 struct Symbol * symbol = DeclClassAddNameSpace(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
12407
12408 FreeIdentifier(yyvsp[(3) - (6)].id);
12409 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12410 ;
12411 }
12412 break;
12413 case 1292:
12414 {
12415 struct Symbol * symbol = DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
12416
12417 FreeSpecifier(yyvsp[(3) - (6)].specifier);
12418 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12419 ;
12420 }
12421 break;
12422 case 1293:
12423 {
12424 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (5)].string, (((void *)0)), yyvsp[(4) - (5)].list);
12425 ;
12426 }
12427 break;
12428 case 1294:
12429 {
12430 yyval.dbtableEntry = MkDBFieldEntry(MkTypeName(yyvsp[(1) - (4)].list, (((void *)0))), yyvsp[(2) - (4)].id, yyvsp[(3) - (4)].string);
12431 ;
12432 }
12433 break;
12434 case 1295:
12435 {
12436 yyval.dbindexItem = MkDBIndexItem(yyvsp[(1) - (1)].id, 0);
12437 ;
12438 }
12439 break;
12440 case 1296:
12441 {
12442 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 1);
12443 ;
12444 }
12445 break;
12446 case 1297:
12447 {
12448 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 0);
12449 ;
12450 }
12451 break;
12452 case 1298:
12453 {
12454 yyval.list = MkList();
12455 ListAdd(yyval.list, yyvsp[(1) - (1)].dbindexItem);
12456 ;
12457 }
12458 break;
12459 case 1299:
12460 {
12461 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].dbindexItem);
12462 ;
12463 }
12464 break;
12465 case 1300:
12466 {
12467 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (3)].list, (((void *)0)));
12468 ;
12469 }
12470 break;
12471 case 1301:
12472 {
12473 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].id);
12474 ;
12475 }
12476 break;
12477 case 1302:
12478 {
12479 yyval.list = MkList();
12480 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12481 ;
12482 }
12483 break;
12484 case 1303:
12485 {
12486 yyval.list = MkList();
12487 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12488 ;
12489 }
12490 break;
12491 case 1304:
12492 {
12493 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12494 ;
12495 }
12496 break;
12497 case 1305:
12498 {
12499 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12500 ;
12501 }
12502 break;
12503 case 1306:
12504 {
12505 yyval.exp = MkExpDBOpen(yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].exp);
12506 ;
12507 }
12508 break;
12509 case 1307:
12510 {
12511 yyval.exp = MkExpDBField(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12512 ;
12513 }
12514 break;
12515 case 1308:
12516 {
12517 yyval.exp = MkExpDBIndex(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12518 ;
12519 }
12520 break;
12521 case 1309:
12522 {
12523 yyval.exp = MkExpDBTable(yyvsp[(3) - (4)].string);
12524 ;
12525 }
12526 break;
12527 default:
12528 break;
12529 }
12530 do
12531 {
12532 if(yydebug)
12533 {
12534 fprintf((bsl_stderr()), "%s ", "-> $$ =");
12535 yy_symbol_print((bsl_stderr()), yyr1[yyn], &yyval, &yyloc);
12536 fprintf((bsl_stderr()), "\n");
12537 }
12538 }while((0));
12539 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12540 yylen = 0;
12541 do
12542 {
12543 if(yydebug)
12544 yy_stack_print((yyss), (yyssp));
12545 }while((0));
12546 *++yyvsp = yyval;
12547 *++yylsp = yyloc;
12548 yyn = yyr1[yyn];
12549 yystate = yypgoto[yyn - 145] + *yyssp;
12550 if(0 <= yystate && yystate <= 42445 && yycheck[yystate] == *yyssp)
12551 yystate = yytable[yystate];
12552 else
12553 yystate = yydefgoto[yyn - 145];
12554 goto yynewstate;
12555 yyerrlab:
12556 if(!yyerrstatus)
12557 {
12558 ++yynerrs;
12559 yyerror("syntax error");
12560 }
12561 yyerror_range[0] = yylloc;
12562 if(yyerrstatus == 3)
12563 {
12564 if(yychar <= 0)
12565 {
12566 if(yychar == 0)
12567 goto yyabortlab;
12568 }
12569 else
12570 {
12571 yydestruct("Error: discarding", yytoken, &yylval, &yylloc);
12572 yychar = (-2);
12573 }
12574 }
12575 goto yyerrlab1;
12576 yyerrorlab:
12577 if(0)
12578 goto yyerrorlab;
12579 yyerror_range[0] = yylsp[1 - yylen];
12580 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12581 yylen = 0;
12582 do
12583 {
12584 if(yydebug)
12585 yy_stack_print((yyss), (yyssp));
12586 }while((0));
12587 yystate = *yyssp;
12588 goto yyerrlab1;
12589 yyerrlab1:
12590 yyerrstatus = 3;
12591 for(; ; )
12592 {
12593 yyn = yypact[yystate];
12594 if(yyn != -1899)
12595 {
12596 yyn += 1;
12597 if(0 <= yyn && yyn <= 42445 && yycheck[yyn] == 1)
12598 {
12599 yyn = yytable[yyn];
12600 if(0 < yyn)
12601 break;
12602 }
12603 }
12604 if(yyssp == yyss)
12605 goto yyabortlab;
12606 yyerror_range[0] = *yylsp;
12607 yydestruct("Error: popping", yystos[yystate], yyvsp, yylsp);
12608 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12609 yystate = *yyssp;
12610 do
12611 {
12612 if(yydebug)
12613 yy_stack_print((yyss), (yyssp));
12614 }while((0));
12615 }
12616 *++yyvsp = yylval;
12617 yyerror_range[1] = yylloc;
12618 (yyloc.start = ((yyerror_range - 1))[1].start);
12619 (yyloc.end = ((yyerror_range - 1))[2].end);
12620 ;
12621 *++yylsp = yyloc;
12622 do
12623 {
12624 if(yydebug)
12625 {
12626 fprintf((bsl_stderr()), "%s ", "Shifting");
12627 yy_symbol_print((bsl_stderr()), yystos[yyn], yyvsp, yylsp);
12628 fprintf((bsl_stderr()), "\n");
12629 }
12630 }while((0));
12631 yystate = yyn;
12632 goto yynewstate;
12633 yyacceptlab:
12634 yyresult = 0;
12635 goto yyreturn;
12636 yyabortlab:
12637 yyresult = 1;
12638 goto yyreturn;
12639 yyexhaustedlab:
12640 yyerror("memory exhausted");
12641 yyresult = 2;
12642 yyreturn:
12643 if(yychar != (-2))
12644 yydestruct("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
12645 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12646 do
12647 {
12648 if(yydebug)
12649 yy_stack_print((yyss), (yyssp));
12650 }while((0));
12651 while(yyssp != yyss)
12652 {
12653 yydestruct("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp);
12654 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12655 }
12656 if(yyss != yyssa)
12657 free(yyss);
12658 return (yyresult);
12659 }
12660