compiler/libec: (#205) Corrections to integer promotions
[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
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, 138, 2, 2, 132, 140, 135, 2, 122, 123, 119, 136, 127, 137, 130, 139, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 131, 125, 120, 126, 121, 143, 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, 133, 2, 134, 141, 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, 129, 142, 128, 124, 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
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, 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1283, 1285, 1287, 1289, 1294, 1296, 1300, 1304, 1308, 1312, 1316, 1320, 1322, 1326, 1330, 1334, 1338, 1340, 1344, 1348, 1352, 1356, 1359, 1361, 1364, 1368, 1372, 1376, 1380, 1384, 1388, 1392, 1394, 1398, 1402, 1406, 1410, 1414, 1418, 1422, 1426, 1428, 1432, 1436, 1440, 1444, 1446, 1450, 1454, 1458, 1462, 1464, 1468, 1472, 1476, 1480, 1482, 1486, 1490, 1492, 1496, 1500, 1502, 1508, 1514, 1520, 1526, 1532, 1538, 1544, 1550, 1556, 1562, 1568, 1574, 1580, 1586, 1592, 1598, 1600, 1604, 1608, 1612, 1616, 1620, 1624, 1628, 1632, 1634, 1636, 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656, 1660, 1664, 1667, 1669, 1673, 1677, 1679, 1681, 1684, 1687, 1691, 1695, 1699, 1703, 1707, 1711, 1715, 1718, 1721, 1724, 1727, 1730, 1736, 1743, 1750, 1753, 1759, 1761, 1763, 1765, 1770, 1772, 1776, 1780, 1784, 1788, 1792, 1796, 1798, 1802, 1806, 1810, 1814, 1816, 1820, 1824, 1828, 1832, 1834, 1837, 1841, 1845, 1849, 1853, 1857, 1861, 1865, 1867, 1871, 1875, 1879, 1883, 1887, 1891, 1895, 1899, 1901, 1905, 1909, 1913, 1917, 1919, 1923, 1927, 1931, 1935, 1937, 1941, 1945, 1949, 1953, 1955, 1959, 1963, 1965, 1969, 1973, 1975, 1981, 1987, 1993, 1999, 2004, 2009, 2014, 2019, 2025, 2031, 2037, 2043, 2048, 2053, 2058, 2063, 2069, 2075, 2081, 2087, 2093, 2099, 2105, 2111, 2115, 2119, 2122, 2125, 2127, 2131, 2135, 2139, 2143, 2145, 2148, 2152, 2156, 2159, 2162, 2165, 2167, 2170, 2174, 2178, 2180, 2182, 2184, 2186, 2188, 2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206, 2208, 2210, 2212, 2216, 2220, 2222, 2226, 2229, 2231, 2234, 2237, 2240, 2245, 2250, 2254, 2258, 2263, 2269, 2274, 2281, 2288, 2293, 2299, 2304, 2311, 2318, 2324, 2330, 2333, 2336, 2339, 2345, 2349, 2355, 2362, 2368, 2376, 2384, 2393, 2402, 2410, 2418, 2422, 2426, 2430, 2435, 2439, 2445, 2451, 2458, 2466, 2473, 2478, 2480, 2482, 2484, 2486, 2488, 2490, 2492, 2494, 2496, 2499, 2501, 2503, 2505, 2507, 2509, 2511, 2513, 2515, 2517, 2519, 2521, 2523, 2525, 2527, 2529, 2531, 2536, 2541, 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564, 2566, 2568, 2570, 2572, 2574, 2576, 2578, 2580, 2582, 2584, 2586, 2588, 2590, 2592, 2594, 2596, 2598, 2600, 2605, 2610, 2615, 2617, 2619, 2622, 2625, 2629, 2635, 2638, 2642, 2648, 2654, 2660, 2662, 2666, 2669, 2672, 2676, 2680, 2683, 2687, 2691, 2696, 2700, 2704, 2708, 2712, 2716, 2720, 2725, 2730, 2735, 2737, 2739, 2744, 2748, 2751, 2755, 2759, 2763, 2767, 2771, 2775, 2779, 2783, 2787, 2791, 2795, 2799, 2801, 2803, 2805, 2808, 2810, 2813, 2815, 2818, 2820, 2823, 2825, 2828, 2830, 2833, 2835, 2838, 2840, 2843, 2845, 2848, 2850, 2853, 2855, 2858, 2860, 2863, 2865, 2868, 2870, 2873, 2875, 2878, 2880, 2883, 2885, 2888, 2890, 2893, 2895, 2898, 2900, 2903, 2905, 2908, 2910, 2913, 2915, 2918, 2920, 2923, 2925, 2928, 2930, 2933, 2935, 2937, 2939, 2942, 2944, 2947, 2949, 2952, 2954, 2957, 2962, 2968, 2970, 2972, 2974, 2977, 2979, 2982, 2984, 2987, 2989, 2992, 2997, 3003, 3005, 3008, 3010, 3013, 3015, 3018, 3020, 3023, 3025, 3028, 3030, 3033, 3038, 3044, 3046, 3049, 3051, 3054, 3056, 3059, 3061, 3064, 3066, 3069, 3071, 3074, 3079, 3085, 3089, 3093, 3095, 3099, 3103, 3107, 3111, 3113, 3115, 3117, 3122, 3127, 3132, 3136, 3141, 3146, 3151, 3155, 3157, 3161, 3166, 3170, 3175, 3180, 3185, 3190, 3194, 3197, 3201, 3205, 3209, 3213, 3216, 3219, 3222, 3226, 3231, 3233, 3235, 3238, 3242, 3246, 3250, 3254, 3257, 3260, 3263, 3267, 3272, 3274, 3276, 3278, 3280, 3282, 3287, 3289, 3291, 3293, 3295, 3297, 3299, 3301, 3303, 3305, 3310, 3312, 3315, 3319, 3326, 3332, 3336, 3341, 3344, 3348, 3352, 3356, 3360, 3365, 3370, 3375, 3378, 3382, 3386, 3390, 3395, 3400, 3404, 3409, 3412, 3416, 3420, 3424, 3429, 3434, 3436, 3439, 3442, 3446, 3448, 3450, 3453, 3456, 3460, 3462, 3464, 3467, 3470, 3474, 3476, 3479, 3483, 3486, 3489, 3491, 3494, 3498, 3501, 3503, 3506, 3510, 3514, 3516, 3519, 3523, 3527, 3529, 3532, 3536, 3540, 3542, 3545, 3549, 3553, 3555, 3558, 3562, 3566, 3568, 3572, 3577, 3579, 3584, 3587, 3593, 3597, 3599, 3601, 3603, 3605, 3607, 3609, 3613, 3617, 3620, 3623, 3625, 3627, 3631, 3634, 3638, 3640, 3644, 3648, 3652, 3656, 3660, 3662, 3665, 3669, 3673, 3675, 3678, 3680, 3683, 3686, 3689, 3692, 3696, 3698, 3700, 3704, 3708, 3710, 3714, 3719, 3723, 3728, 3732, 3736, 3741, 3745, 3750, 3752, 3756, 3760, 3765, 3769, 3773, 3777, 3782, 3784, 3788, 3792, 3796, 3800, 3804, 3806, 3810, 3813, 3815, 3817, 3819, 3821, 3823, 3826, 3828, 3830, 3832, 3834, 3837, 3840, 3843, 3845, 3847, 3849, 3851, 3853, 3856, 3858, 3860, 3865, 3873, 3875, 3879, 3880, 3887, 3896, 3907, 3920, 3929, 3940, 3951, 3957, 3965, 3975, 3987, 3995, 4005, 4015, 4019, 4024, 4029, 4033, 4037, 4041, 4046, 4051, 4055, 4059, 4063, 4068, 4073, 4077, 4080, 4084, 4087, 4091, 4096, 4101, 4105, 4109, 4111, 4113, 4115, 4117, 4119, 4122, 4126, 4129, 4132, 4135, 4139, 4143, 4146, 4152, 4159, 4162, 4165, 4168, 4171, 4174, 4177, 4179, 4182, 4185, 4189, 4191, 4194, 4196, 4199, 4202, 4204, 4207, 4210, 4213, 4216, 4219, 4222, 4224, 4226, 4229, 4232, 4234, 4236, 4239, 4242, 4244, 4247, 4250, 4252, 4255, 4257, 4260, 4263, 4269, 4275, 4283, 4291, 4297, 4303, 4307, 4310, 4316, 4321, 4326, 4334, 4341, 4348, 4354, 4362, 4369, 4374, 4382, 4392, 4396, 4401, 4406, 4412, 4418, 4425, 4433, 4440, 4447, 4453, 4459, 4464, 4468, 4471, 4473, 4476, 4481, 4485, 4491, 4496, 4500, 4503, 4506, 4509, 4513, 4517, 4521, 4525, 4528, 4531, 4533, 4535, 4540, 4544, 4549, 4553, 4557, 4560, 4565, 4569, 4574, 4578, 4582, 4585, 4587, 4590, 4592, 4594, 4597, 4599, 4602, 4606, 4610, 4612, 4615, 4618, 4621, 4625, 4630, 4635, 4638, 4641, 4644, 4647, 4649, 4652, 4654, 4657, 4659, 4662, 4665, 4667, 4670, 4672, 4675, 4678, 4681, 4684, 4686, 4689, 4692, 4696, 4698, 4700, 4701, 4708, 4715, 4721, 4726, 4728, 4731, 4734, 4736, 4740, 4744, 4749, 4751, 4753, 4756, 4759, 4766, 4773, 4780
91 };
92
93 static const yytype_int16 yyrhs[] =
94 {
95 390, 0, -1, 216, 119, -1, 216, 120, -1, 149, -1, 216, 216, -1, 28, -1, 28, -1, 147, -1, 147, 120, 210, 121, -1, 147, 120, 210, 11, -1, 299, 334, -1, 332, -1, 299, 122, 123, -1, 124, 299, 122, 123, -1, 78, 299, 334, -1, 78, 332, -1, 299, 335, -1, 333, -1, 78, 299, 335, -1, 78, 333, -1, 150, 374, -1, 153, 374, -1, 153, 125, -1, 151, 374, -1, 152, 374, -1, 150, 125, -1, 150, 324, 125, -1, 150, 375, -1, 154, -1, 153, 375, -1, 155, -1, 155, 125, -1, 298, 334, -1, 298, 336, -1, 298, 335, -1, 158, 374, -1, 158, 375, -1, 159, -1, 158, -1, 224, 126, 339, -1, 339, -1, 224, 126, 340, -1, 224, 126, 1, -1, 340, -1, 162, -1, 164, 127, 162, -1, 165, 127, 162, -1, 163, -1, 164, 127, 163, -1, 165, 127, 163, -1, 164, 127, 1, -1, 165, 127, 1, -1, 127, -1, 164, 125, -1, 165, 125, -1, 166, -1, 160, -1, 169, 166, -1, 169, 160, -1, 167, 166, -1, 167, 160, -1, 169, 125, -1, 167, 125, -1, 125, -1, 167, -1, 164, -1, 167, 164, -1, 169, 164, -1, 161, -1, 168, 161, -1, 169, 161, -1, 167, 161, -1, 167, 165, -1, 165, -1, 164, 1, -1, 171, 128, -1, 171, 1, 128, -1, 298, 216, 129, 169, -1, 298, 216, 129, 168, 1, -1, 298, 216, 129, 168, -1, 298, 216, 129, -1, 298, 216, 129, 1, -1, 173, 128, -1, 173, 1, 128, -1, 299, 216, 129, 169, -1, 299, 216, 129, 168, 1, -1, 299, 216, 129, 168, -1, 299, 216, 129, -1, 299, 216, 129, 1, -1, 300, 216, 129, 168, 128, -1, 300, 216, 129, 169, 128, -1, 300, 216, 129, 128, -1, 176, 128, -1, 176, 1, 128, -1, 149, 129, 168, -1, 216, 129, 168, -1, 149, 129, 169, -1, 149, 129, -1, 149, 129, 168, 1, -1, 149, 129, 1, -1, 216, 129, 169, -1, 216, 129, -1, 216, 129, 168, 1, -1, 216, 129, 1, -1, 178, 128, -1, 178, 1, 128, -1, 129, 169, -1, 129, 168, 1, -1, 129, 1, -1, 129, -1, 129, 168, -1, 224, 126, 339, -1, 224, 126, 340, -1, 224, 126, 1, -1, 224, 1, -1, 179, -1, 181, 127, 179, -1, 182, 127, 179, -1, 180, -1, 181, 127, 180, -1, 182, 127, 180, -1, 181, 1, -1, 68, 304, 216, 129, -1, 68, 304, 328, 216, 129, -1, 68, 304, 129, -1, 68, 304, 328, 129, -1, 68, 1, 129, -1, 183, -1, 184, 69, 374, -1, 184, 70, 374, -1, 184, 95, 374, -1, 184, 91, -1, 184, 97, 218, -1, 184, 128, -1, 99, 304, 216, 129, -1, 99, 304, 328, 216, 129, -1, 99, 304, 129, -1, 99, 304, 328, 129, -1, 99, 1, 129, -1, 186, -1, 187, 69, 374, -1, 187, 70, 374, -1, 187, 128, -1, 216, -1, 189, 216, -1, 189, 374, -1, 73, 374, -1, 190, -1, 191, 190, -1, 88, 122, 189, 123, 374, -1, 88, 122, 243, 123, 129, 191, 128, -1, 243, 130, 88, 122, 243, 123, 129, 191, 128, -1, 89, 122, 243, 127, 189, 123, -1, 243, 130, 89, 122, 243, 127, 189, 123, -1, 89, 122, 243, 123, -1, 243, 130, 89, 122, 243, 123, -1, 90, -1, 90, 189, -1, 224, 130, 90, -1, 243, 130, 90, 189, -1, 197, 125, -1, 181, 125, -1, 156, -1, 185, -1, 362, 156, -1, 362, 185, -1, 188, -1, 91, -1, 93, -1, 94, -1, 99, 122, 216, 123, 126, 339, 125, -1, 125, -1, 362, 131, -1, 362, 122, 216, 123, -1, 157, -1, 299, -1, 299, 286, -1, 362, 299, 286, -1, 362, 299, -1, 362, 175, -1, 362, 172, -1, 98, 299, 286, -1, 192, -1, 92, 216, -1, 92, 149, -1, 96, 216, -1, 175, -1, 172, -1, 181, -1, 173, 1, -1, 176, 1, -1, 362, 157, -1, 362, 173, 1, -1, 362, 176, 1, -1, 182, -1, 196, -1, 198, 196, -1, 199, 196, -1, 197, -1, 198, 1, -1, 199, 1, -1, 198, 197, -1, 199, 197, -1, 299, -1, 299, 328, -1, 299, -1, 299, 328, -1, 65, 216, -1, 65, 216, 126, 201, -1, 65, 216, 131, 200, -1, 65, 216, 131, 200, 126, 201, -1, 65, 148, -1, 65, 148, 126, 201, -1, 65, 148, 131, 200, -1, 65, 148, 131, 200, 126, 201, -1, 216, -1, 216, -1, 216, 126, 203, -1, 233, -1, 299, 216, 126, 205, -1, 299, 328, 216, 126, 205, -1, 202, -1, 204, -1, 206, -1, 207, -1, 208, 127, 207, -1, 205, -1, 203, -1, 201, -1, 216, 126, 205, -1, 216, 126, 203, -1, 216, 126, 201, -1, 209, -1, 210, 127, 209, -1, 65, -1, 211, 216, -1, 211, 147, -1, 216, 211, 216, -1, 216, 211, 147, -1, 211, 216, 120, 208, 121, -1, 211, 147, 120, 208, 121, -1, 216, 211, 216, 120, 208, 121, -1, 216, 211, 147, 120, 208, 121, -1, 215, 128, -1, 214, 125, -1, 212, 129, 128, -1, 214, 129, 128, -1, 211, 216, 125, -1, 211, 146, 125, -1, 212, 131, 303, -1, 212, 129, 199, -1, 214, 129, 199, -1, 212, 129, 198, -1, 214, 129, 198, -1, 212, 129, 1, -1, 214, 129, 1, -1, 3, -1, 220, -1, 122, 245, 123, -1, 385, -1, 132, 385, -1, 132, 385, 130, 385, -1, 4, -1, 216, -1, 175, -1, 85, 122, 374, 123, -1, 85, 122, 245, 123, -1, 85, 122, 346, 123, 337, -1, 85, 122, 346, 123, 122, 346, 123, 337, -1, 219, 216, -1, 219, -1, 218, -1, 118, -1, 122, 123, -1, 71, 306, 329, 133, 265, 134, -1, 71, 306, 329, 133, 266, 134, -1, 71, 306, 133, 265, 134, -1, 71, 306, 133, 266, 134, -1, 102, 306, 329, 133, 265, 134, -1, 102, 306, 329, 133, 266, 134, -1, 102, 306, 133, 265, 134, -1, 102, 306, 133, 266, 134, -1, 72, 265, 305, 329, 133, 265, 134, -1, 72, 265, 305, 329, 133, 266, 134, -1, 72, 265, 305, 133, 265, 134, -1, 72, 265, 305, 133, 266, 134, -1, 103, 265, 305, 329, 133, 265, 134, -1, 103, 265, 305, 329, 133, 266, 134, -1, 103, 265, 305, 133, 265, 134, -1, 103, 265, 305, 133, 266, 134, -1, 65, 122, 298, 123, -1, 65, 122, 298, 328, 123, -1, 65, 122, 216, 123, -1, 104, 122, 243, 127, 346, 123, -1, 98, 122, 216, 123, -1, 397, -1, 398, -1, 399, -1, 400, -1, 133, 225, 134, -1, 133, 134, -1, 177, -1, 178, 1, -1, 122, 245, -1, 122, 263, -1, 217, -1, 224, 133, 245, 134, -1, 224, 133, 263, 134, -1, 224, 122, 123, -1, 224, 122, 225, 123, -1, 224, 122, 226, 123, -1, 224, 130, 216, -1, 224, 7, 216, -1, 224, 8, -1, 224, 9, -1, 247, 133, 245, 134, -1, 247, 133, 263, 134, -1, 247, 122, 123, -1, 247, 122, 225, 123, -1, 247, 130, 216, -1, 247, 7, 216, -1, 247, 8, -1, 247, 9, -1, 243, -1, 221, -1, 225, 127, 243, -1, 225, 127, 221, -1, 262, -1, 222, -1, 225, 127, 262, -1, 225, 127, 222, -1, 225, 127, -1, 8, 228, -1, 9, 228, -1, 229, 230, -1, 229, 221, -1, 6, 228, -1, 6, 122, 347, 123, -1, 6, 122, 65, 146, 123, -1, 6, 122, 65, 145, 123, -1, 109, 228, -1, 109, 122, 347, 123, -1, 227, -1, 224, -1, 135, -1, 119, -1, 136, -1, 137, -1, 124, -1, 138, -1, 73, -1, 84, -1, 228, -1, 122, 346, 123, 230, -1, 230, -1, 231, 119, 230, -1, 231, 139, 230, -1, 231, 140, 230, -1, 251, 119, 230, -1, 251, 139, 230, -1, 251, 140, 230, -1, 231, -1, 232, 136, 231, -1, 232, 137, 231, -1, 252, 136, 231, -1, 252, 137, 231, -1, 232, -1, 233, 10, 232, -1, 233, 11, 232, -1, 253, 10, 232, -1, 253, 11, 232, -1, 235, 120, -1, 233, -1, 234, 233, -1, 235, 121, 233, -1, 235, 12, 233, -1, 235, 13, 233, -1, 254, 120, 233, -1, 254, 121, 233, -1, 254, 12, 233, -1, 254, 13, 233, -1, 235, -1, 236, 14, 235, -1, 236, 15, 235, -1, 255, 14, 235, -1, 255, 15, 235, -1, 236, 14, 221, -1, 236, 15, 221, -1, 255, 14, 221, -1, 255, 15, 221, -1, 236, -1, 237, 135, 236, -1, 256, 135, 236, -1, 237, 135, 221, -1, 256, 135, 221, -1, 237, -1, 238, 141, 237, -1, 257, 141, 237, -1, 238, 141, 221, -1, 257, 141, 221, -1, 238, -1, 239, 142, 238, -1, 258, 142, 238, -1, 239, 142, 221, -1, 258, 142, 221, -1, 239, -1, 240, 16, 239, -1, 259, 16, 239, -1, 240, -1, 241, 17, 240, -1, 260, 17, 240, -1, 241, -1, 241, 143, 245, 131, 242, -1, 241, 143, 263, 131, 242, -1, 260, 143, 245, 131, 242, -1, 260, 143, 263, 131, 242, -1, 241, 143, 246, 131, 242, -1, 241, 143, 264, 131, 242, -1, 260, 143, 246, 131, 242, -1, 260, 143, 264, 131, 242, -1, 241, 143, 245, 131, 221, -1, 241, 143, 263, 131, 221, -1, 260, 143, 245, 131, 221, -1, 260, 143, 263, 131, 221, -1, 241, 143, 246, 131, 221, -1, 241, 143, 264, 131, 221, -1, 260, 143, 246, 131, 221, -1, 260, 143, 264, 131, 221, -1, 242, -1, 228, 244, 243, -1, 249, 244, 243, -1, 242, 244, 243, -1, 261, 244, 243, -1, 228, 244, 221, -1, 249, 244, 221, -1, 242, 244, 221, -1, 261, 244, 221, -1, 126, -1, 18, -1, 19, -1, 20, -1, 21, -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, 27, -1, 243, -1, 245, 127, 243, -1, 263, 127, 243, -1, 263, 123, -1, 221, -1, 245, 127, 221, -1, 263, 127, 221, -1, 223, -1, 1, -1, 224, 1, -1, 176, 1, -1, 224, 7, 1, -1, 247, 7, 1, -1, 224, 122, 225, -1, 224, 122, 226, -1, 224, 130, 1, -1, 247, 122, 226, -1, 247, 130, 1, -1, 8, 249, -1, 9, 249, -1, 229, 250, -1, 229, 222, -1, 6, 249, -1, 6, 122, 347, 123, 1, -1, 6, 122, 65, 146, 123, 1, -1, 6, 122, 65, 145, 123, 1, -1, 109, 249, -1, 109, 122, 347, 123, 1, -1, 248, -1, 247, -1, 249, -1, 122, 346, 123, 250, -1, 250, -1, 231, 119, 250, -1, 231, 139, 250, -1, 231, 140, 250, -1, 251, 119, 250, -1, 251, 139, 250, -1, 251, 140, 250, -1, 251, -1, 232, 136, 251, -1, 232, 137, 251, -1, 252, 136, 251, -1, 252, 137, 251, -1, 252, -1, 233, 10, 252, -1, 233, 11, 252, -1, 253, 10, 252, -1, 253, 11, 252, -1, 253, -1, 234, 253, -1, 235, 121, 253, -1, 235, 12, 253, -1, 235, 13, 253, -1, 254, 120, 253, -1, 254, 121, 253, -1, 254, 12, 253, -1, 254, 13, 253, -1, 254, -1, 236, 14, 254, -1, 236, 15, 254, -1, 255, 14, 254, -1, 255, 15, 254, -1, 236, 14, 222, -1, 236, 15, 222, -1, 255, 14, 222, -1, 255, 15, 222, -1, 255, -1, 237, 135, 255, -1, 256, 135, 255, -1, 237, 135, 222, -1, 256, 135, 222, -1, 256, -1, 238, 141, 256, -1, 257, 141, 256, -1, 238, 141, 222, -1, 257, 141, 222, -1, 257, -1, 239, 142, 257, -1, 258, 142, 257, -1, 239, 142, 222, -1, 258, 142, 222, -1, 258, -1, 240, 16, 258, -1, 259, 16, 258, -1, 259, -1, 241, 17, 259, -1, 260, 17, 259, -1, 260, -1, 241, 143, 245, 131, 260, -1, 241, 143, 263, 131, 260, -1, 260, 143, 245, 131, 260, -1, 260, 143, 263, 131, 260, -1, 241, 143, 245, 131, -1, 241, 143, 263, 131, -1, 260, 143, 245, 131, -1, 260, 143, 263, 131, -1, 241, 143, 246, 131, 260, -1, 241, 143, 264, 131, 260, -1, 260, 143, 246, 131, 260, -1, 260, 143, 264, 131, 260, -1, 241, 143, 246, 131, -1, 241, 143, 264, 131, -1, 260, 143, 246, 131, -1, 260, 143, 264, 131, -1, 241, 143, 245, 131, 222, -1, 241, 143, 263, 131, 222, -1, 260, 143, 245, 131, 222, -1, 260, 143, 263, 131, 222, -1, 241, 143, 246, 131, 222, -1, 241, 143, 264, 131, 222, -1, 260, 143, 246, 131, 222, -1, 260, 143, 264, 131, 222, -1, 241, 143, 131, -1, 260, 143, 131, -1, 241, 143, -1, 260, 143, -1, 261, -1, 228, 244, 262, -1, 249, 244, 262, -1, 228, 244, 222, -1, 249, 244, 222, -1, 262, -1, 243, 1, -1, 245, 127, 262, -1, 263, 127, 262, -1, 245, 245, -1, 263, 245, -1, 245, 263, -1, 222, -1, 221, 1, -1, 245, 127, 222, -1, 263, 127, 222, -1, 242, -1, 261, -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, 216, -1, 216, 126, 265, -1, 216, 126, 266, -1, 269, -1, 270, 127, 269, -1, 270, 127, -1, 50, -1, 271, 216, -1, 271, 149, -1, 274, 128, -1, 271, 216, 129, 128, -1, 271, 149, 129, 128, -1, 271, 129, 270, -1, 271, 129, 1, -1, 271, 216, 129, 270, -1, 271, 216, 129, 270, 1, -1, 271, 216, 129, 1, -1, 271, 216, 129, 270, 125, 198, -1, 271, 216, 129, 270, 125, 199, -1, 271, 149, 129, 270, -1, 271, 149, 129, 270, 1, -1, 271, 149, 129, 1, -1, 271, 149, 129, 270, 125, 198, -1, 271, 149, 129, 270, 125, 199, -1, 271, 216, 129, 270, 125, -1, 271, 149, 129, 270, 125, -1, 271, 216, -1, 271, 149, -1, 277, 128, -1, 275, 131, 303, 129, 128, -1, 275, 129, 128, -1, 275, 131, 303, 129, 270, -1, 275, 131, 303, 129, 270, 1, -1, 275, 131, 303, 129, 1, -1, 275, 131, 303, 129, 270, 125, 198, -1, 275, 131, 303, 129, 270, 125, 199, -1, 275, 131, 303, 129, 270, 1, 125, 198, -1, 275, 131, 303, 129, 270, 1, 125, 199, -1, 275, 131, 303, 129, 1, 125, 198, -1, 275, 131, 303, 129, 1, 125, 199, -1, 271, 129, 270, -1, 271, 129, 1, -1, 275, 129, 270, -1, 275, 129, 270, 1, -1, 275, 129, 1, -1, 275, 129, 270, 125, 198, -1, 275, 129, 270, 125, 199, -1, 275, 131, 303, 129, 270, 125, -1, 275, 131, 303, 129, 270, 1, 125, -1, 275, 131, 303, 129, 1, 125, -1, 275, 129, 270, 125, -1, 276, -1, 293, -1, 277, -1, 294, -1, 319, -1, 44, -1, 45, -1, 280, -1, 281, -1, 282, 281, -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, 290, -1, 272, -1, 146, -1, 87, 122, 243, 123, -1, 100, 122, 146, 123, -1, 100, 122, 216, 123, -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, 290, -1, 272, -1, 149, -1, 113, -1, 112, -1, 114, -1, 115, -1, 87, 122, 243, 123, -1, 100, 122, 146, 123, -1, 100, 122, 216, 123, -1, 66, -1, 336, -1, 336, 324, -1, 131, 265, -1, 336, 131, 265, -1, 336, 131, 265, 131, 265, -1, 131, 266, -1, 336, 131, 266, -1, 336, 131, 265, 131, 266, -1, 336, 131, 266, 131, 266, -1, 336, 131, 266, 131, 265, -1, 285, -1, 286, 127, 285, -1, 295, 216, -1, 295, 147, -1, 295, 319, 216, -1, 295, 319, 147, -1, 289, 128, -1, 287, 129, 128, -1, 295, 129, 128, -1, 295, 319, 129, 128, -1, 287, 129, 198, -1, 287, 129, 199, -1, 287, 129, 1, -1, 295, 129, 198, -1, 295, 129, 199, -1, 295, 129, 1, -1, 295, 319, 129, 198, -1, 295, 319, 129, 199, -1, 295, 319, 129, 1, -1, 287, -1, 287, -1, 287, 120, 208, 121, -1, 291, 131, 303, -1, 294, 128, -1, 292, 129, 128, -1, 291, 129, 128, -1, 295, 129, 128, -1, 292, 129, 198, -1, 292, 129, 199, -1, 292, 129, 1, -1, 291, 129, 198, -1, 291, 129, 199, -1, 291, 129, 1, -1, 295, 129, 198, -1, 295, 129, 199, -1, 295, 129, 1, -1, 48, -1, 49, -1, 281, -1, 296, 281, -1, 283, -1, 296, 283, -1, 273, -1, 296, 273, -1, 288, -1, 296, 288, -1, 281, -1, 297, 281, -1, 283, -1, 297, 283, -1, 145, -1, 297, 145, -1, 273, -1, 297, 273, -1, 288, -1, 297, 288, -1, 267, -1, 298, 267, -1, 281, -1, 298, 281, -1, 284, -1, 298, 284, -1, 273, -1, 298, 273, -1, 288, -1, 298, 288, -1, 267, -1, 299, 267, -1, 281, -1, 299, 281, -1, 283, -1, 299, 283, -1, 145, -1, 299, 145, -1, 288, -1, 299, 288, -1, 273, -1, 299, 273, -1, 268, -1, 300, 268, -1, 281, -1, 300, 281, -1, 283, -1, 300, 283, -1, 145, -1, 300, 145, -1, 278, -1, 300, 278, -1, 279, -1, 300, 279, -1, 81, -1, 80, -1, 267, -1, 302, 267, -1, 281, -1, 302, 281, -1, 284, -1, 302, 284, -1, 216, -1, 302, 216, -1, 216, 120, 210, 121, -1, 302, 216, 120, 210, 121, -1, 302, -1, 295, -1, 267, -1, 304, 267, -1, 281, -1, 304, 281, -1, 284, -1, 304, 284, -1, 216, -1, 304, 216, -1, 216, 120, 210, 121, -1, 304, 216, 120, 210, 121, -1, 267, -1, 305, 267, -1, 281, -1, 305, 281, -1, 284, -1, 305, 284, -1, 288, -1, 305, 288, -1, 273, -1, 305, 273, -1, 216, -1, 305, 216, -1, 216, 120, 210, 121, -1, 305, 216, 120, 210, 121, -1, 267, -1, 306, 267, -1, 281, -1, 306, 281, -1, 284, -1, 306, 284, -1, 288, -1, 306, 288, -1, 273, -1, 306, 273, -1, 216, -1, 306, 216, -1, 216, 120, 210, 121, -1, 306, 216, 120, 210, 121, -1, 308, 127, 1, -1, 307, 127, 1, -1, 216, -1, 308, 127, 216, -1, 307, 127, 216, -1, 350, 127, 216, -1, 351, 127, 216, -1, 310, -1, 147, -1, 37, -1, 147, 133, 265, 134, -1, 147, 133, 266, 134, -1, 147, 133, 146, 134, -1, 147, 133, 134, -1, 309, 133, 265, 134, -1, 309, 133, 266, 134, -1, 309, 133, 146, 134, -1, 309, 133, 134, -1, 216, -1, 122, 330, 123, -1, 122, 319, 330, 123, -1, 122, 331, 123, -1, 122, 319, 331, 123, -1, 310, 133, 265, 134, -1, 310, 133, 266, 134, -1, 310, 133, 146, 134, -1, 310, 133, 134, -1, 310, 122, -1, 311, 352, 123, -1, 311, 353, 123, -1, 311, 308, 123, -1, 311, 307, 123, -1, 311, 123, -1, 311, 307, -1, 311, 1, -1, 311, 350, 122, -1, 311, 299, 216, 122, -1, 312, -1, 310, -1, 309, 122, -1, 315, 352, 123, -1, 315, 353, 123, -1, 315, 308, 123, -1, 315, 307, 123, -1, 315, 123, -1, 315, 307, -1, 315, 1, -1, 315, 350, 122, -1, 315, 299, 216, 122, -1, 316, -1, 309, -1, 74, -1, 75, -1, 324, -1, 86, 122, 385, 123, -1, 79, -1, 110, -1, 111, -1, 3, -1, 28, -1, 75, -1, 74, -1, 44, -1, 321, -1, 321, 122, 245, 123, -1, 322, -1, 323, 322, -1, 323, 127, 322, -1, 320, 122, 122, 323, 123, 123, -1, 320, 122, 122, 123, 123, -1, 122, 328, 123, -1, 122, 319, 328, 123, -1, 133, 134, -1, 133, 265, 134, -1, 133, 266, 134, -1, 133, 146, 134, -1, 325, 133, 134, -1, 325, 133, 265, 134, -1, 325, 133, 146, 134, -1, 325, 133, 266, 134, -1, 122, 123, -1, 122, 352, 123, -1, 122, 353, 123, -1, 325, 122, 123, -1, 325, 122, 352, 123, -1, 325, 122, 353, 123, -1, 122, 329, 123, -1, 122, 319, 329, 123, -1, 122, 123, -1, 122, 352, 123, -1, 122, 353, 123, -1, 326, 122, 123, -1, 326, 122, 352, 123, -1, 326, 122, 353, 123, -1, 119, -1, 119, 282, -1, 119, 327, -1, 119, 282, 327, -1, 327, -1, 325, -1, 327, 325, -1, 319, 327, -1, 319, 327, 325, -1, 327, -1, 326, -1, 327, 326, -1, 319, 327, -1, 319, 327, 326, -1, 314, -1, 327, 314, -1, 319, 327, 314, -1, 330, 319, -1, 336, 319, -1, 318, -1, 327, 318, -1, 319, 327, 318, -1, 331, 319, -1, 312, -1, 327, 312, -1, 319, 327, 312, -1, 327, 319, 312, -1, 313, -1, 327, 313, -1, 319, 327, 313, -1, 327, 319, 313, -1, 316, -1, 327, 316, -1, 319, 327, 316, -1, 327, 319, 316, -1, 317, -1, 327, 317, -1, 319, 327, 317, -1, 327, 319, 317, -1, 309, -1, 327, 309, -1, 319, 327, 309, -1, 327, 319, 309, -1, 243, -1, 129, 341, 128, -1, 129, 341, 127, 128, -1, 262, -1, 129, 341, 128, 1, -1, 129, 341, -1, 129, 341, 127, 128, 1, -1, 129, 341, 127, -1, 242, -1, 221, -1, 261, -1, 222, -1, 337, -1, 338, -1, 341, 127, 337, -1, 341, 127, 338, -1, 341, 337, -1, 341, 338, -1, 330, -1, 331, -1, 330, 126, 337, -1, 330, 1, -1, 330, 126, 338, -1, 342, -1, 344, 127, 342, -1, 37, 127, 342, -1, 38, 127, 342, -1, 147, 127, 342, -1, 345, 127, 342, -1, 343, -1, 342, 1, -1, 344, 127, 343, -1, 345, 127, 343, -1, 296, -1, 296, 328, -1, 297, -1, 297, 328, -1, 299, 331, -1, 299, 328, -1, 299, 135, -1, 299, 135, 331, -1, 299, -1, 65, -1, 299, 331, 1, -1, 299, 328, 1, -1, 348, -1, 350, 127, 348, -1, 350, 1, 127, 348, -1, 351, 127, 348, -1, 351, 1, 127, 348, -1, 1, 127, 348, -1, 308, 127, 348, -1, 308, 1, 127, 348, -1, 307, 127, 348, -1, 307, 1, 127, 348, -1, 349, -1, 350, 127, 349, -1, 351, 127, 349, -1, 351, 1, 127, 349, -1, 1, 127, 349, -1, 308, 127, 349, -1, 307, 127, 349, -1, 307, 1, 127, 349, -1, 350, -1, 350, 127, 51, -1, 351, 127, 51, -1, 308, 127, 51, -1, 307, 127, 51, -1, 1, 127, 51, -1, 351, -1, 350, 127, 1, -1, 351, 1, -1, 359, -1, 324, -1, 374, -1, 125, -1, 131, -1, 245, 125, -1, 377, -1, 379, -1, 381, -1, 358, -1, 195, 125, -1, 194, 125, -1, 193, 125, -1, 360, -1, 380, -1, 375, -1, 378, -1, 382, -1, 381, 1, -1, 263, -1, 385, -1, 385, 122, 243, 123, -1, 133, 216, 134, 385, 122, 243, 123, -1, 356, -1, 357, 127, 356, -1, -1, 86, 281, 122, 385, 123, 125, -1, 86, 281, 122, 385, 131, 357, 123, 125, -1, 86, 281, 122, 385, 131, 357, 131, 357, 123, 125, -1, 86, 281, 122, 385, 131, 357, 131, 357, 131, 357, 123, 125, -1, 86, 281, 122, 385, 3, 357, 123, 125, -1, 86, 281, 122, 385, 3, 357, 131, 357, 123, 125, -1, 86, 281, 122, 385, 131, 357, 3, 357, 123, 125, -1, 86, 122, 385, 123, 125, -1, 86, 122, 385, 131, 357, 123, 125, -1, 86, 122, 385, 131, 357, 131, 357, 123, 125, -1, 86, 122, 385, 131, 357, 131, 357, 131, 357, 123, 125, -1, 86, 122, 385, 3, 357, 123, 125, -1, 86, 122, 385, 3, 357, 131, 357, 123, 125, -1, 86, 122, 385, 131, 357, 3, 357, 123, 125, -1, 216, 131, 354, -1, 52, 265, 131, 354, -1, 52, 266, 131, 354, -1, 52, 131, 354, -1, 53, 131, 354, -1, 216, 131, 363, -1, 52, 265, 131, 363, -1, 52, 266, 131, 363, -1, 52, 131, 363, -1, 53, 131, 363, -1, 216, 131, 355, -1, 52, 265, 131, 355, -1, 52, 266, 131, 355, -1, 52, 131, 355, -1, 52, 131, -1, 53, 131, 355, -1, 53, 131, -1, 216, 131, 366, -1, 52, 265, 131, 366, -1, 52, 266, 131, 366, -1, 52, 131, 366, -1, 53, 131, 366, -1, 80, -1, 81, -1, 53, -1, 80, -1, 81, -1, 298, 125, -1, 298, 344, 125, -1, 170, 125, -1, 366, 125, -1, 300, 125, -1, 300, 344, 125, -1, 301, 344, 125, -1, 174, 125, -1, 77, 216, 126, 242, 125, -1, 31, 77, 216, 126, 242, 125, -1, 300, 1, -1, 298, 1, -1, 366, 1, -1, 171, 1, -1, 170, 1, -1, 298, 345, -1, 363, -1, 367, 363, -1, 368, 363, -1, 367, 1, 125, -1, 366, -1, 367, 366, -1, 354, -1, 369, 354, -1, 370, 354, -1, 355, -1, 369, 355, -1, 370, 355, -1, 369, 363, -1, 370, 363, -1, 369, 366, -1, 370, 366, -1, 369, -1, 367, -1, 367, 369, -1, 368, 369, -1, 370, -1, 368, -1, 367, 370, -1, 368, 370, -1, 129, -1, 375, 128, -1, 373, 372, -1, 373, -1, 373, 371, -1, 125, -1, 245, 125, -1, 263, 125, -1, 54, 122, 245, 123, 354, -1, 54, 122, 263, 123, 354, -1, 54, 122, 245, 123, 354, 64, 354, -1, 54, 122, 263, 123, 354, 64, 354, -1, 55, 122, 245, 123, 354, -1, 55, 122, 263, 123, 354, -1, 54, 122, 263, -1, 377, 1, -1, 56, 122, 245, 123, 354, -1, 56, 122, 263, 354, -1, 56, 122, 123, 354, -1, 57, 354, 56, 122, 245, 123, 125, -1, 57, 354, 56, 122, 263, 125, -1, 58, 122, 376, 376, 123, 354, -1, 58, 122, 376, 123, 354, -1, 58, 122, 376, 376, 245, 123, 354, -1, 58, 122, 376, 376, 263, 354, -1, 58, 122, 123, 354, -1, 58, 122, 216, 131, 245, 123, 354, -1, 58, 122, 216, 131, 245, 125, 245, 123, 354, -1, 58, 122, 1, -1, 58, 122, 263, 1, -1, 58, 122, 376, 1, -1, 58, 122, 376, 263, 1, -1, 58, 122, 376, 376, 263, -1, 58, 122, 376, 376, 123, 355, -1, 58, 122, 376, 376, 245, 123, 355, -1, 58, 122, 376, 376, 263, 355, -1, 57, 354, 56, 122, 245, 123, -1, 57, 354, 56, 122, 245, -1, 57, 354, 56, 122, 263, -1, 57, 354, 56, 122, -1, 57, 354, 56, -1, 57, 354, -1, 57, -1, 56, 1, -1, 56, 122, 123, 1, -1, 56, 122, 263, -1, 56, 122, 245, 123, 355, -1, 56, 122, 263, 355, -1, 59, 216, 125, -1, 60, 125, -1, 61, 125, -1, 62, 125, -1, 62, 245, 125, -1, 62, 263, 125, -1, 62, 221, 125, -1, 62, 222, 125, -1, 62, 263, -1, 62, 222, -1, 62, -1, 59, -1, 300, 332, 367, 374, -1, 300, 332, 374, -1, 300, 334, 367, 374, -1, 300, 334, 374, -1, 332, 367, 374, -1, 332, 374, -1, 300, 332, 367, 375, -1, 300, 332, 375, -1, 300, 334, 367, 375, -1, 300, 334, 375, -1, 332, 367, 375, -1, 332, 375, -1, 5, -1, 385, 5, -1, 383, -1, 213, -1, 300, 213, -1, 364, -1, 76, 385, -1, 76, 31, 385, -1, 76, 216, 385, -1, 125, -1, 361, 383, -1, 361, 213, -1, 361, 364, -1, 361, 76, 385, -1, 361, 76, 31, 385, -1, 361, 76, 216, 385, -1, 361, 131, -1, 31, 131, -1, 101, 216, -1, 101, 149, -1, 391, -1, 361, 391, -1, 215, -1, 300, 215, -1, 384, -1, 361, 215, -1, 361, 384, -1, 365, -1, 361, 365, -1, 387, -1, 389, 387, -1, 388, 387, -1, 389, 1, -1, 388, 1, -1, 386, -1, 389, 386, -1, 388, 213, -1, 388, 361, 213, -1, 389, -1, 388, -1, -1, 105, 385, 216, 129, 396, 128, -1, 105, 385, 149, 129, 396, 128, -1, 105, 385, 129, 396, 128, -1, 299, 216, 385, 125, -1, 216, -1, 121, 216, -1, 120, 216, -1, 393, -1, 394, 127, 393, -1, 107, 394, 125, -1, 107, 394, 216, 125, -1, 392, -1, 395, -1, 396, 392, -1, 396, 395, -1, 108, 122, 243, 127, 243, 123, -1, 106, 122, 385, 127, 216, 123, -1, 107, 122, 385, 127, 216, 123, -1, 105, 122, 385, 123, -1
96 };
97
98 static const yytype_uint16 yyrline[] =
99 {
100 0, 283, 283, 302, 341, 342, 422, 426, 429, 430, 431, 470, 472, 477, 482, 487, 489, 494, 496, 501, 503, 508, 510, 512, 514, 516, 520, 524, 537, 539, 541, 543, 545, 551, 553, 558, 563, 568, 570, 572, 577, 578, 582, 583, 594, 598, 599, 601, 606, 607, 609, 612, 624, 635, 654, 656, 661, 662, 663, 664, 665, 666, 667, 668, 681, 685, 686, 687, 688, 692, 693, 694, 695, 696, 697, 698, 702, 704, 709, 711, 713, 715, 717, 747, 749, 754, 756, 758, 760, 762, 791, 793, 795, 800, 802, 807, 809, 813, 815, 817, 819, 824, 827, 830, 833, 898, 900, 905, 907, 909, 911, 913, 944, 948, 949, 950, 954, 955, 956, 960, 961, 962, 963, 967, 970, 973, 976, 979, 984, 985, 987, 989, 991, 993, 998, 1002, 1005, 1008, 1011, 1014, 1019, 1020, 1022, 1027, 1031, 1033, 1038, 1040, 1045, 1047, 1052, 1057, 1059, 1064, 1066, 1068, 1070, 1075, 1077, 1079, 1081, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1098, 1099, 1101, 1105, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1123, 1124, 1128, 1129, 1130, 1134, 1138, 1139, 1140, 1144, 1145, 1146, 1147, 1148, 1152, 1153, 1165, 1166, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1181, 1185, 1186, 1190, 1198, 1199, 1203, 1204, 1205, 1209, 1210, 1214, 1215, 1216, 1217, 1218, 1219, 1259, 1260, 1264, 1272, 1273, 1281, 1282, 1284, 1285, 1294, 1295, 1299, 1306, 1313, 1319, 1326, 1332, 1341, 1348, 1354, 1360, 1366, 1372, 1378, 1389, 1394, 1395, 1400, 1401, 1402, 1406, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1454, 1455, 1456, 1457, 1458, 1460, 1461, 1465, 1469, 1473, 1474, 1478, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1524, 1525, 1526, 1527, 1531, 1532, 1533, 1534, 1535, 1539, 1540, 1541, 1542, 1544, 1545, 1546, 1547, 1550, 1551, 1555, 1556, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1576, 1577, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1591, 1592, 1593, 1594, 1595, 1599, 1600, 1601, 1602, 1603, 1607, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1627, 1628, 1629, 1630, 1631, 1633, 1634, 1635, 1636, 1640, 1641, 1642, 1644, 1645, 1649, 1650, 1651, 1653, 1654, 1658, 1659, 1660, 1662, 1663, 1667, 1668, 1669, 1673, 1674, 1675, 1679, 1680, 1681, 1682, 1683, 1685, 1686, 1687, 1688, 1690, 1691, 1692, 1693, 1695, 1696, 1697, 1698, 1702, 1703, 1704, 1705, 1706, 1708, 1709, 1710, 1711, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1729, 1730, 1731, 1732, 1736, 1737, 1738, 1742, 1743, 1744, 1745, 1747, 1748, 1750, 1751, 1756, 1758, 1763, 1791, 1792, 1793, 1794, 1796, 1797, 1798, 1799, 1801, 1802, 1806, 1807, 1816, 1817, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1831, 1832, 1836, 1840, 1844, 1851, 1852, 1853, 1854, 1855, 1859, 1860, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1913, 1914, 1915, 1916, 1917, 1924, 1925, 1926, 1927, 1931, 1932, 1933, 1935, 1936, 1940, 1941, 1942, 1944, 1945, 1949, 1950, 1951, 1953, 1954, 1958, 1959, 1960, 1964, 1965, 1966, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1999, 2007, 2011, 2016, 2023, 2024, 2028, 2033, 2034, 2038, 2039, 2040, 2041, 2047, 2048, 2049, 2053, 2054, 2055, 2056, 2060, 2062, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2086, 2087, 2088, 2092, 2093, 2094, 2098, 2102, 2103, 2107, 2108, 2109, 2113, 2114, 2116, 2117, 2118, 2119, 2120, 2122, 2123, 2124, 2125, 2126, 2128, 2129, 2133, 2134, 2138, 2139, 2140, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2154, 2155, 2157, 2158, 2159, 2160, 2161, 2163, 2164, 2165, 2166, 2170, 2171, 2175, 2176, 2180, 2184, 2185, 2186, 2191, 2192, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2254, 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270, 2272, 2277, 2278, 2282, 2288, 2294, 2301, 2311, 2312, 2313, 2314, 2318, 2319, 2320, 2322, 2323, 2324, 2326, 2327, 2328, 2332, 2336, 2344, 2353, 2362, 2363, 2365, 2366, 2370, 2377, 2384, 2387, 2400, 2414, 2417, 2419, 2421, 2426, 2427, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2496, 2497, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2511, 2513, 2521, 2531, 2532, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2552, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2581, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2610, 2619, 2620, 2624, 2625, 2626, 2627, 2628, 2632, 2633, 2640, 2642, 2651, 2660, 2669, 2678, 2679, 2680, 2681, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2697, 2701, 2702, 2703, 2704, 2705, 2710, 2719, 2728, 2737, 2751, 2752, 2757, 2761, 2762, 2763, 2764, 2765, 2770, 2779, 2788, 2797, 2811, 2812, 2861, 2862, 2863, 2864, 2876, 2877, 2878, 2883, 2884, 2885, 2886, 2887, 2891, 2892, 2896, 2897, 2898, 2902, 2903, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2937, 2938, 2939, 2940, 2944, 2945, 2946, 2947, 2948, 2952, 2953, 2954, 2955, 2956, 2960, 2961, 2963, 2965, 2967, 2972, 2973, 2975, 2977, 2982, 2983, 2984, 2985, 2989, 2990, 2991, 2992, 2996, 2997, 2998, 2999, 3003, 3004, 3005, 3006, 3010, 3011, 3012, 3013, 3017, 3018, 3019, 3036, 3037, 3038, 3039, 3052, 3069, 3070, 3075, 3076, 3080, 3081, 3082, 3083, 3086, 3087, 3091, 3092, 3093, 3097, 3101, 3105, 3106, 3107, 3108, 3109, 3118, 3127, 3128, 3129, 3130, 3134, 3135, 3139, 3140, 3145, 3146, 3147, 3148, 3149, 3150, 3169, 3170, 3174, 3175, 3176, 3177, 3178, 3179, 3181, 3182, 3183, 3184, 3188, 3189, 3190, 3191, 3192, 3194, 3195, 3196, 3200, 3201, 3202, 3203, 3204, 3205, 3209, 3210, 3211, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3242, 3243, 3244, 3248, 3249, 3250, 3254, 3255, 3256, 3257, 3259, 3260, 3261, 3263, 3264, 3265, 3266, 3268, 3269, 3270, 3274, 3275, 3276, 3277, 3278, 3280, 3281, 3282, 3283, 3284, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3296, 3297, 3298, 3299, 3300, 3304, 3305, 3306, 3310, 3311, 3315, 3316, 3317, 3318, 3322, 3323, 3324, 3326, 3327, 3328, 3332, 3336, 3337, 3339, 3340, 3341, 3345, 3346, 3347, 3348, 3352, 3353, 3357, 3358, 3359, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3373, 3374, 3375, 3376, 3380, 3381, 3382, 3383, 3387, 3391, 3395, 3397, 3400, 3406, 3407, 3408, 3412, 3413, 3414, 3415, 3416, 3417, 3421, 3422, 3426, 3427, 3428, 3430, 3431, 3433, 3434, 3435, 3436, 3437, 3439, 3440, 3444, 3445, 3446, 3447, 3451, 3452, 3453, 3454, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3465, 3469, 3470, 3474, 3475, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3490, 3491, 3492, 3493, 3499, 3500, 3502, 3503, 3506, 3507, 3510, 3511, 3512, 3513, 3514, 3515, 3519, 3520, 3532, 3533, 3536, 3539, 3541, 3542, 3543, 3553, 3555, 3556, 3558, 3559, 3560, 3561, 3571, 3572, 3573, 3574, 3575, 3576, 3580, 3581, 3590, 3592, 3593, 3595, 3597, 3601, 3602, 3603, 3604, 3605, 3609, 3610, 3611, 3613, 3618, 3619, 3620, 3624, 3625, 3626, 3630, 3634, 3635, 3636, 3640, 3641, 3645, 3646, 3650, 3651, 3652, 3653, 3657, 3661, 3665, 3669
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", "'*'", "'<'", "'>'", "'('", "')'", "'~'", "';'", "'='", "','", "'}'", "'{'", "'.'", "':'", "'$'", "'['", "']'", "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "$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, 144, 145, 145, 146, 146, 147, 148, 149, 149, 149, 150, 150, 151, 152, 153, 153, 154, 154, 155, 155, 156, 156, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 158, 158, 159, 160, 161, 161, 161, 162, 162, 163, 163, 163, 164, 164, 164, 165, 165, 165, 165, 165, 165, 166, 166, 167, 167, 167, 167, 167, 167, 167, 167, 167, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, 169, 170, 170, 171, 171, 171, 171, 171, 172, 172, 173, 173, 173, 173, 173, 174, 174, 174, 175, 175, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, 177, 178, 178, 178, 178, 178, 179, 180, 180, 180, 181, 181, 181, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184, 184, 184, 184, 184, 184, 185, 186, 186, 186, 186, 186, 187, 187, 187, 188, 189, 189, 190, 190, 191, 191, 192, 193, 193, 194, 194, 194, 194, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 203, 204, 204, 205, 206, 206, 207, 207, 207, 208, 208, 209, 209, 209, 209, 209, 209, 210, 210, 211, 212, 212, 212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 214, 215, 215, 215, 215, 215, 215, 216, 217, 217, 218, 218, 218, 219, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 221, 222, 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, 225, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 234, 235, 235, 235, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 250, 250, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 258, 258, 258, 258, 258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 262, 262, 262, 262, 262, 263, 263, 263, 263, 263, 263, 263, 264, 264, 264, 264, 265, 266, 267, 267, 267, 267, 267, 267, 267, 268, 268, 268, 268, 268, 268, 268, 269, 269, 269, 270, 270, 270, 271, 272, 272, 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 275, 275, 276, 276, 276, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 278, 278, 279, 279, 280, 281, 281, 281, 282, 282, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 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, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 286, 286, 287, 287, 287, 287, 288, 288, 288, 288, 289, 289, 289, 289, 289, 289, 289, 289, 289, 290, 291, 291, 292, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 294, 294, 294, 295, 295, 296, 296, 296, 296, 296, 296, 296, 296, 297, 297, 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, 299, 299, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 301, 301, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 303, 303, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 305, 305, 305, 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, 308, 308, 308, 308, 308, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 310, 310, 310, 310, 310, 310, 310, 310, 310, 311, 312, 312, 312, 312, 312, 313, 313, 313, 313, 314, 314, 315, 316, 316, 316, 316, 316, 317, 317, 317, 317, 318, 318, 319, 319, 319, 319, 320, 320, 320, 321, 321, 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, 327, 327, 327, 327, 328, 328, 328, 328, 328, 329, 329, 329, 329, 329, 330, 330, 330, 330, 330, 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, 338, 338, 338, 338, 338, 339, 339, 340, 340, 341, 341, 341, 341, 341, 341, 342, 342, 342, 343, 343, 344, 344, 344, 344, 344, 344, 345, 345, 345, 345, 346, 346, 347, 347, 348, 348, 348, 348, 348, 348, 349, 349, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 351, 351, 351, 351, 351, 351, 351, 351, 352, 352, 352, 352, 352, 352, 353, 353, 353, 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, 355, 355, 355, 355, 355, 355, 355, 356, 356, 356, 357, 357, 357, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 363, 364, 364, 364, 364, 364, 364, 365, 366, 366, 366, 366, 366, 367, 367, 367, 367, 368, 368, 369, 369, 369, 370, 370, 370, 370, 370, 370, 370, 371, 371, 371, 371, 372, 372, 372, 372, 373, 374, 375, 375, 375, 376, 376, 376, 377, 377, 377, 377, 377, 377, 378, 378, 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 381, 381, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 383, 383, 383, 383, 383, 383, 384, 384, 384, 384, 384, 384, 385, 385, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 387, 387, 387, 387, 387, 387, 387, 388, 388, 388, 388, 388, 389, 389, 389, 389, 390, 390, 390, 391, 391, 391, 392, 393, 393, 393, 394, 394, 395, 395, 396, 396, 396, 396, 397, 398, 399, 400
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, 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 1289, 257, 6, 591, 592, 593, 595, 596, 660, 661, 662, 663, 664, 666, 669, 670, 667, 668, 654, 655, 659, 665, 755, 756, 604, 1134, 235, 678, 912, 913, 0, 0, 916, 1132, 1133, 679, 680, 671, 0, 0, 0, 0, 0, 917, 918, 682, 681, 683, 684, 597, 594, 955, 0, 1258, 803, 674, 8, 4, 0, 0, 0, 1252, 0, 1271, 879, 797, 0, 673, 0, 649, 651, 805, 807, 656, 799, 801, 738, 672, 0, 0, 650, 652, 0, 0, 0, 0, 0, 978, 653, 0, 914, 0, 0, 0, 1254, 1276, 1251, 1273, 1283, 1278, 0, 0, 0, 1269, 0, 1266, 1249, 0, 0, 1255, 0, 0, 0, 0, 1268, 1267, 0, 657, 956, 653, 957, 870, 869, 879, 911, 868, 898, 969, 0, 910, 974, 0, 0, 0, 0, 0, 0, 1144, 0, 237, 236, 0, 0, 245, 0, 244, 2, 3, 0, 5, 0, 606, 605, 0, 0, 626, 0, 0, 0, 0, 742, 0, 722, 721, 0, 1147, 593, 663, 664, 1141, 804, 8, 1253, 1272, 879, 798, 806, 808, 800, 802, 978, 986, 653, 0, 0, 1017, 0, 0, 0, 1027, 0, 0, 870, 0, 869, 0, 0, 888, 0, 0, 584, 585, 586, 588, 589, 1040, 590, 587, 893, 791, 863, 785, 0, 795, 0, 787, 789, 738, 793, 0, 0, 1039, 0, 0, 1043, 1053, 0, 0, 0, 0, 0, 0, 979, 0, 686, 687, 688, 689, 690, 692, 695, 696, 693, 694, 685, 691, 708, 697, 0, 0, 702, 701, 703, 704, 1177, 700, 0, 0, 775, 699, 781, 777, 779, 783, 698, 0, 1153, 0, 0, 0, 0, 1242, 1248, 593, 0, 1265, 1260, 1274, 0, 1261, 1277, 1259, 1275, 1270, 1282, 1285, 0, 0, 0, 0, 0, 1280, 1281, 1284, 1279, 1, 0, 1256, 1257, 1250, 0, 0, 457, 263, 0, 0, 0, 0, 0, 0, 351, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 346, 0, 349, 0, 0, 345, 347, 348, 350, 0, 265, 0, 264, 306, 272, 271, 258, 456, 0, 343, 353, 0, 355, 362, 367, 373, 0, 382, 391, 396, 401, 406, 409, 412, 429, 0, 478, 477, 479, 481, 488, 493, 498, 507, 516, 521, 526, 531, 534, 537, 0, 260, 296, 297, 298, 299, 0, 0, 0, 0, 0, 658, 958, 0, 900, 0, 905, 0, 0, 0, 0, 0, 0, 0, 911, 970, 975, 0, 880, 972, 882, 977, 973, 671, 4, 229, 228, 227, 233, 0, 264, 353, 219, 479, 0, 206, 249, 0, 0, 248, 255, 0, 0, 1135, 1136, 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, 982, 653, 0, 12, 18, 0, 810, 809, 817, 811, 0, 813, 815, 738, 822, 821, 250, 256, 247, 0, 0, 239, 238, 639, 598, 601, 638, 642, 628, 0, 0, 0, 222, 223, 224, 225, 0, 217, 0, 751, 744, 0, 0, 741, 748, 743, 0, 0, 754, 745, 0, 0, 724, 723, 0, 0, 0, 0, 0, 979, 987, 0, 1019, 0, 0, 1238, 1244, 0, 1240, 1246, 1028, 1142, 0, 0, 0, 1143, 887, 0, 264, 582, 583, 0, 0, 0, 0, 606, 605, 607, 0, 725, 0, 0, 663, 0, 0, 1037, 792, 8, 879, 786, 796, 788, 790, 794, 911, 868, 653, 960, 959, 0, 0, 0, 892, 0, 0, 891, 0, 0, 0, 1069, 0, 889, 890, 980, 0, 981, 0, 0, 1151, 1139, 1150, 76, 1148, 689, 690, 1137, 879, 776, 782, 778, 780, 784, 653, 0, 1152, 1149, 1140, 0, 1154, 0, 1241, 1247, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 1236, 0, 0, 0, 697, 0, 0, 0, 157, 1073, 1074, 700, 0, 0, 0, 264, 0, 353, 0, 0, 479, 566, 571, 0, 1071, 1159, 1162, 1079, 1070, 1083, 0, 0, 0, 0, 1181, 1179, 1072, 1085, 0, 1086, 1077, 1084, 0, 1087, 1178, 0, 0, 1262, 879, 0, 0, 0, 1272, 0, 868, 986, 653, 0, 0, 0, 0, 1248, 1286, 0, 0, 412, 0, 0, 915, 0, 337, 471, 0, 333, 467, 334, 468, 0, 857, 847, 855, 849, 851, 853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 475, 274, 0, 0, 0, 761, 757, 759, 763, 1031, 0, 261, 0, 301, 302, 0, 325, 0, 324, 0, 459, 93, 0, 270, 458, 0, 314, 315, 0, 0, 0, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 438, 0, 0, 336, 470, 335, 469, 0, 0, 0, 0, 0, 0, 0, 374, 499, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 675, 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, 676, 677, 0, 0, 0, 1301, 1302, 0, 0, 0, 874, 0, 0, 0, 878, 0, 0, 0, 904, 903, 901, 902, 911, 970, 975, 881, 883, 997, 10, 9, 0, 0, 0, 653, 959, 207, 0, 0, 264, 206, 0, 0, 829, 823, 825, 827, 0, 0, 0, 16, 20, 0, 185, 184, 186, 0, 0, 0, 0, 346, 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, 879, 719, 177, 994, 0, 990, 653, 0, 11, 17, 709, 895, 1039, 0, 0, 0, 983, 0, 0, 173, 165, 192, 181, 0, 180, 0, 166, 879, 179, 0, 606, 605, 818, 812, 814, 816, 0, 0, 0, 603, 641, 0, 0, 7, 212, 208, 740, 0, 0, 0, 0, 1016, 1023, 1024, 1025, 64, 53, 92, 39, 38, 57, 69, 45, 48, 0, 74, 56, 0, 0, 0, 1007, 1009, 0, 1006, 1008, 0, 41, 44, 911, 980, 971, 988, 976, 997, 989, 0, 998, 1001, 1018, 1020, 1237, 1243, 1239, 1245, 1022, 1029, 1026, 1030, 886, 884, 885, 1066, 1048, 1057, 611, 610, 0, 0, 457, 726, 0, 0, 457, 727, 0, 0, 0, 941, 879, 0, 0, 653, 959, 0, 0, 0, 933, 0, 0, 0, 0, 0, 1038, 962, 0, 0, 961, 1042, 1041, 0, 862, 1065, 865, 1051, 1059, 0, 861, 1064, 864, 1049, 1058, 0, 1068, 1062, 866, 1044, 1054, 0, 1063, 867, 1046, 1055, 919, 920, 923, 922, 921, 0, 924, 926, 0, 0, 0, 0, 77, 0, 1138, 1156, 0, 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 1071, 1218, 1076, 1078, 0, 0, 1226, 1227, 1228, 0, 1234, 0, 0, 0, 0, 0, 0, 158, 144, 1082, 1081, 1080, 0, 0, 0, 572, 0, 1075, 0, 0, 0, 0, 452, 0, 0, 457, 0, 0, 0, 0, 1160, 1163, 1165, 0, 1161, 1164, 1166, 0, 1192, 1088, 1263, 1264, 237, 236, 0, 0, 0, 987, 0, 0, 1244, 0, 1246, 1247, 0, 0, 1145, 0, 0, 769, 264, 771, 765, 767, 773, 1033, 0, 0, 0, 0, 0, 0, 858, 848, 856, 850, 852, 854, 653, 965, 964, 0, 843, 833, 841, 835, 837, 839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 762, 758, 760, 764, 1032, 0, 0, 457, 0, 0, 0, 105, 0, 300, 457, 0, 0, 94, 457, 0, 0, 460, 313, 309, 329, 462, 463, 328, 464, 312, 0, 0, 434, 430, 303, 356, 482, 357, 483, 358, 484, 363, 489, 364, 490, 368, 494, 369, 495, 376, 501, 377, 502, 375, 500, 387, 512, 383, 508, 388, 513, 384, 509, 394, 519, 392, 517, 399, 524, 397, 522, 404, 529, 402, 527, 407, 532, 410, 535, 562, 0, 578, 0, 0, 0, 0, 436, 432, 461, 321, 318, 0, 465, 466, 320, 0, 0, 435, 431, 359, 485, 360, 486, 361, 487, 365, 491, 366, 492, 370, 496, 371, 497, 380, 505, 381, 506, 378, 503, 379, 504, 389, 514, 385, 510, 390, 515, 386, 511, 395, 520, 393, 518, 400, 525, 398, 523, 405, 530, 403, 528, 408, 533, 411, 536, 563, 0, 0, 0, 0, 437, 433, 0, 0, 1294, 1297, 0, 0, 1292, 1303, 1304, 0, 0, 873, 871, 872, 877, 875, 876, 234, 232, 231, 230, 264, 653, 962, 241, 0, 207, 240, 127, 0, 125, 830, 824, 826, 828, 0, 653, 0, 15, 19, 0, 182, 994, 653, 0, 139, 0, 137, 830, 0, 264, 653, 0, 27, 84, 117, 120, 118, 121, 129, 130, 131, 133, 141, 142, 114, 112, 113, 13, 711, 714, 0, 0, 907, 1039, 0, 0, 0, 995, 991, 0, 0, 710, 879, 896, 984, 985, 879, 193, 194, 178, 0, 0, 0, 0, 599, 600, 602, 0, 0, 631, 627, 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, 689, 33, 35, 34, 1010, 1011, 0, 619, 609, 0, 614, 608, 0, 457, 728, 0, 0, 0, 959, 0, 931, 942, 943, 936, 934, 935, 0, 963, 944, 0, 0, 937, 0, 0, 0, 1052, 1060, 1039, 1050, 1045, 1047, 1056, 930, 0, 0, 0, 927, 705, 706, 707, 457, 0, 0, 1113, 1123, 1118, 0, 0, 0, 1114, 1125, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1217, 1205, 0, 1182, 264, 0, 0, 0, 1225, 1231, 1232, 1229, 1230, 0, 0, 0, 0, 145, 1110, 1120, 1115, 0, 159, 569, 567, 0, 0, 0, 450, 573, 570, 568, 451, 574, 0, 988, 1243, 1245, 1146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 770, 772, 766, 768, 774, 1034, 0, 293, 291, 0, 0, 949, 653, 0, 0, 0, 0, 0, 0, 967, 0, 966, 0, 0, 0, 844, 834, 842, 836, 838, 840, 0, 267, 0, 266, 295, 0, 0, 0, 0, 0, 0, 1308, 0, 0, 0, 0, 354, 480, 262, 108, 106, 327, 326, 99, 103, 310, 0, 311, 307, 308, 579, 0, 0, 0, 0, 0, 0, 319, 316, 317, 0, 0, 0, 0, 1296, 1295, 1299, 0, 0, 0, 1291, 1290, 0, 959, 218, 0, 0, 123, 126, 0, 0, 0, 0, 0, 995, 0, 135, 138, 0, 14, 457, 0, 0, 720, 0, 879, 908, 996, 992, 993, 712, 715, 897, 174, 819, 0, 243, 242, 0, 630, 0, 213, 214, 204, 209, 210, 220, 0, 0, 51, 46, 49, 52, 47, 50, 37, 43, 40, 42, 0, 0, 1014, 1015, 618, 0, 613, 0, 962, 961, 932, 945, 946, 939, 938, 940, 1036, 1035, 0, 929, 928, 79, 1111, 1121, 1116, 0, 1112, 1122, 1117, 0, 0, 0, 0, 0, 1221, 1195, 0, 0, 1194, 1224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1202, 0, 1183, 1206, 1184, 1207, 0, 0, 0, 1095, 915, 1095, 0, 0, 155, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 472, 292, 859, 0, 964, 0, 947, 950, 951, 277, 278, 0, 968, 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 281, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 331, 330, 454, 580, 421, 554, 413, 538, 425, 558, 417, 546, 455, 581, 422, 555, 414, 539, 426, 559, 418, 547, 423, 556, 415, 540, 427, 560, 419, 548, 424, 557, 416, 541, 428, 561, 420, 549, 1298, 1300, 1293, 831, 0, 124, 150, 996, 0, 136, 86, 909, 0, 0, 820, 0, 0, 0, 0, 0, 0, 205, 0, 221, 0, 0, 1012, 1013, 1002, 0, 0, 0, 0, 925, 1185, 1186, 1189, 1190, 1193, 1223, 0, 0, 0, 0, 0, 0, 0, 1199, 1208, 0, 0, 0, 0, 1093, 0, 1090, 1103, 0, 1095, 0, 1095, 0, 0, 0, 0, 474, 473, 966, 948, 860, 953, 954, 275, 276, 845, 285, 286, 0, 0, 0, 0, 279, 280, 289, 290, 0, 0, 294, 1306, 1307, 1305, 832, 0, 713, 716, 718, 717, 0, 0, 215, 211, 0, 999, 1004, 0, 0, 0, 0, 0, 0, 0, 1213, 1197, 0, 0, 1198, 1210, 0, 1201, 1212, 0, 0, 0, 1095, 0, 1095, 0, 1095, 0, 1096, 0, 0, 0, 148, 0, 153, 0, 156, 0, 846, 283, 284, 0, 287, 288, 171, 1000, 1187, 1188, 0, 0, 1196, 1203, 0, 1200, 1211, 0, 1107, 1094, 0, 0, 0, 1104, 0, 0, 1095, 1095, 0, 1095, 147, 146, 151, 149, 0, 0, 354, 480, 269, 0, 0, 0, 1091, 0, 0, 1095, 1100, 0, 0, 1097, 0, 0, 154, 1204, 0, 1108, 1109, 1105, 0, 0, 0, 0, 1095, 152, 0, 0, 1101, 1102, 1098, 0, 1092, 1106, 0, 1099
121 };
122
123 static const yytype_int16 yydefgoto[] =
124 {
125 -1, 209, 55, 56, 973, 332, 440, 441, 442, 443, 444, 445, 446, 447, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 256, 257, 448, 449, 58, 333, 334, 744, 773, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 2087, 2088, 2089, 462, 645, 646, 647, 463, 464, 465, 466, 1783, 408, 504, 409, 505, 410, 506, 507, 865, 411, 412, 59, 60, 61, 62, 63, 335, 336, 337, 338, 339, 999, 1000, 340, 341, 747, 1266, 342, 650, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 732, 827, 652, 1323, 359, 360, 653, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 654, 655, 1125, 1325, 553, 554, 211, 65, 497, 498, 212, 67, 213, 214, 68, 69, 70, 71, 72, 73, 215, 118, 216, 262, 930, 931, 217, 218, 219, 77, 78, 79, 80, 81, 220, 739, 1201, 265, 470, 83, 84, 487, 488, 875, 1224, 717, 1048, 1049, 124, 85, 471, 87, 472, 127, 128, 129, 934, 130, 119, 89, 1097, 1098, 1099, 90, 579, 1215, 474, 581, 1217, 133, 185, 475, 476, 187, 938, 135, 1017, 1534, 1005, 1006, 1535, 188, 189, 190, 191, 740, 1202, 224, 225, 226, 227, 228, 229, 658, 659, 2008, 2009, 660, 661, 662, 93, 477, 266, 94, 95, 267, 268, 269, 665, 666, 667, 668, 270, 669, 896, 1618, 1128, 672, 673, 674, 1129, 676, 96, 97, 374, 98, 99, 100, 101, 102, 103, 833, 1395, 1396, 834, 835, 375, 376, 377, 378
126 };
127
128 static const int yypact[] =
129 {
130 38035, -1980, -1980, -1980, -1980, 32, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 811, 108, -1980, -1980, -1980, -1980, -1980, -1980, 3, 16, 55, 706, 320, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 2651, 3046, -1980, -1980, -1980, 208, -1980, 262, 706, 275, -1980, 215, 294, 1026, -1980, 420, -1980, 719, -1980, 377, -1980, -1980, -1980, -1980, -1980, 272, -1980, 1066, 429, -1980, 392, 1234, 37643, 2976, 759, 38329, -1980, 462, 481, -1980, 1834, 40946, 36221, -1980, -1980, -1980, -1980, -1980, -1980, 38138, 37241, 635, -1980, 108, -1980, -1980, 320, 320, 640, 549, 320, 29147, 706, -1980, -1980, 414, -1980, 2651, -1980, -1980, -1980, 550, -1980, 847, 862, -1980, -1980, 38425, -1980, -1980, 3046, 1821, 1740, 1890, 2006, 23636, -1980, 568, 806, 797, 30225, 40570, -1980, 30351, -1980, -1980, -1980, 706, -1980, 755, 1090, 1135, 72, 40570, -1980, 40300, 30477, 40570, 30603, -1980, 30729, -1980, -1980, 706, -1980, -1980, 647, 587, -1980, -1980, 1058, -1980, 294, 494, -1980, -1980, -1980, -1980, -1980, 1159, 651, 462, 1821, 1255, 2006, 40946, 40946, 282, -1980, 1154, 613, 738, 587, 866, 462, 1213, -1980, 27747, 780, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 776, -1980, 453, -1980, 800, -1980, -1980, 809, -1980, 823, 1428, 35364, 190, 372, -1980, -1980, 600, 660, 873, 886, 357, 906, -1980, 357, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 920, 945, -1980, -1980, -1980, -1980, -1980, -1980, 123, 57, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 37839, -1980, 17397, 36533, 41149, 17536, -1980, 947, 1041, 884, -1980, -1980, 294, 37741, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 377, 392, 38905, 40946, 39190, -1980, -1980, -1980, -1980, -1980, 1002, 640, 640, -1980, 29147, 183, -1980, -1980, 29202, 29287, 29287, 1031, 40750, 29147, -1980, -1980, 1052, 1055, 40750, 29147, 1076, 1088, 1110, 1152, 1168, 29342, -1980, -1980, 23880, -1980, 320, 12020, -1980, -1980, -1980, -1980, 1093, -1980, 128, 1113, -1980, -1980, 108, -1980, -1980, 12822, -1980, 1549, 27802, -1980, 871, 948, 1089, 29147, 842, 1126, 1162, 1161, 1174, 1305, 106, 1549, 1220, 786, -1980, 1549, -1980, 933, 1030, 1375, 1012, 1240, 1216, 1259, 1212, 1345, 159, 1549, 640, -1980, -1980, -1980, -1980, 1280, 393, 40390, 1310, 1316, -1980, -1980, 27887, -1980, 27942, -1980, 688, 700, 1286, 1334, 1821, 2171, 2540, 847, -1980, -1980, 915, -1980, -1980, -1980, -1980, -1980, 1052, 1093, -1980, -1980, -1980, -1980, 639, 1359, -1980, 1089, -1980, 1375, 35479, -1980, 23758, 40300, -1980, 544, 40030, 39285, -1980, -1980, 1256, -1980, 706, -1980, -1980, 108, 39475, 39095, 6453, 40660, -1980, -1980, 1536, 1333, 1333, 1115, -1980, 1340, -1980, -1980, -1980, 133, 861, 172, -1980, -1980, 29587, 1349, -1980, 1120, -1980, -1980, 345, -1980, -1980, -1980, 1369, 29721, 29847, 343, 185, 786, 36325, 38521, -1980, 462, 1834, -1980, -1980, 11378, -1980, -1980, 1381, -1980, 706, -1980, -1980, -1980, 1964, 40750, -1980, 544, -1980, 29973, 30099, 1385, 1392, -1980, 1399, -1980, 1403, -1980, -1980, 2594, 1405, 760, -1980, -1980, -1980, -1980, 976, 804, 35479, 1009, -1980, 30855, 30981, -1980, 1009, -1980, 31107, 31233, 1009, -1980, 31359, 31485, -1980, -1980, 3046, 3046, 3046, 21842, 915, 1159, 651, 915, -1980, 28027, 36533, -1980, 947, 36533, -1980, 947, -1980, -1980, 3046, 3046, 915, -1980, -1980, 1409, 225, -1980, -1980, 1418, 1463, 40120, 1486, 1408, 1430, -1980, 31611, -1980, 31737, 503, -1980, 12663, 28082, 3046, -1980, 1219, 776, -1980, -1980, -1980, -1980, -1980, 847, 1429, 462, 893, 187, 132, 1336, 1476, -1980, 39760, 1480, -1980, 39850, 1499, 39940, 1507, 40210, -1980, -1980, -1980, 1249, -1980, 29147, 706, -1980, -1980, 1527, -1980, -1980, 647, 587, -1980, 1519, -1980, -1980, -1980, -1980, -1980, 462, 1301, 613, -1980, -1980, 1533, -1980, 17675, -1980, 947, -1980, 180, 28167, 1529, 1540, 1542, 27, 17814, 1544, 108, 1547, 1552, 17953, 1052, 2197, 1557, 1564, 108, -1980, -1980, 1093, 1563, 1570, 1572, 1379, 16002, 1549, 16146, 25428, 1549, 1549, -1980, 16285, 37937, -1980, -1980, -1980, -1980, -1980, 18092, 18231, 18370, 18509, -1980, -1980, -1980, 947, 18648, -1980, -1980, -1980, 18787, -1980, -1980, 320, 320, 640, 584, 706, 1390, 1569, -1980, 847, 759, -1980, 462, 1821, 40946, 40946, 36533, -1980, -1980, 39000, 29147, 196, 1580, 326, -1980, 24018, -1980, -1980, 28222, -1980, -1980, -1980, -1980, 40750, 1586, -1980, -1980, -1980, -1980, -1980, 35797, 40750, 24156, 108, 35903, 40750, 29147, 320, 320, 320, 29147, 23880, -1980, -1980, -1980, 12978, 13122, 13266, -1980, -1980, -1980, -1980, 8525, 1587, 66, 21980, -1980, -1980, 194, -1980, 561, -1980, 22118, 1581, -1980, 22256, -1980, -1980, 1525, -1980, -1980, 25486, 1530, 29147, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 27802, 201, -1980, -1980, -1980, -1980, 29147, 29147, 29147, 29147, 29147, 29147, 29147, 1089, 1375, 29147, 29147, -1980, 29147, 27802, 27802, 27802, 27802, 27802, 29147, 29147, 13410, 27802, -1980, 1539, -1980, -1980, 25571, 1550, 29147, 27802, 29147, 29147, 29147, 29147, 29147, 29147, 29147, 29147, 29147, 29147, 29147, 27802, 27802, 27802, 27802, 27802, 29147, 29147, 13554, 27802, -1980, -1980, 595, 776, 40660, -1980, -1980, 37340, 40390, 40390, -1980, 1577, 1578, 1579, -1980, 1582, 1583, 1585, -1980, -1980, -1980, -1980, 847, -1980, -1980, -1980, -1980, 1588, -1980, -1980, 23636, 23636, 35258, 462, 897, -1980, 659, 985, 1616, 35479, 999, 1591, 1595, -1980, -1980, -1980, 1964, 35585, 39380, -1980, -1980, 108, -1980, -1980, -1980, 36429, 1593, 108, 35691, 2591, 24278, 1425, 39570, -1980, 1598, -1980, 947, -1980, 947, -1980, -1980, -1980, 947, -1980, 1597, -1980, 831, -1980, -1980, 4080, 4080, 1333, 1333, -1980, 1333, 147, -1980, 1333, 1333, -1980, -1980, 138, -1980, 1369, 138, -1980, 1369, 902, 28307, 2488, 29147, 622, -1980, 1599, 847, 38617, -1980, 462, 1821, -1980, -1980, 718, 780, 35364, 29453, 585, 357, -1980, 357, 3046, -1980, -1980, -1980, -1980, 241, -1980, 263, -1980, 343, 36325, 23636, -1980, -1980, 1607, -1980, -1980, -1980, 40300, 40300, 29147, 108, -1980, 31863, 117, -1980, -28, 956, -1980, 40300, 108, 901, 108, 1526, -1980, -1980, -1980, -1980, -1980, -1980, 1333, -1980, -1980, -1980, -1980, -1980, 36635, 1438, -1980, 22394, 41048, 22532, -1980, -1980, 12215, -1980, -1980, 39665, -1980, -1980, 847, 1159, -1980, 651, -1980, 847, -1980, 28027, -1980, -1980, -1980, -1980, -1980, 947, -1980, 947, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 1403, 118, 166, 1600, -1980, 31989, 32115, 1603, -1980, 32241, 32367, 32493, -1980, 627, 398, 437, 1172, 1818, 1611, 1617, 1621, -1980, 1605, 1612, 1615, 462, 915, 2006, 187, 38713, 28362, 893, -1980, -1980, 40480, -1980, -1980, 776, -1980, -1980, 40480, -1980, -1980, 776, -1980, -1980, 40480, -1980, -1980, 776, -1980, -1980, 40480, -1980, 776, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 1630, 1634, -1980, 1386, 1635, 1637, 394, -1980, 22670, -1980, -1980, 18926, 1631, 1632, 19065, 29147, 29147, -1980, 28447, 28502, 1633, 1646, 1647, 10041, 1648, 108, 25626, 2368, 1485, 25711, -1980, 1717, -1980, -1980, 25796, 1649, -1980, -1980, -1980, 1655, 1663, 25851, 16424, 320, 1667, 29147, 29147, 108, -1980, -1980, -1980, -1980, 21566, 860, 27802, -1980, 1393, -1980, 29147, 13698, 13842, 27802, -1980, 29147, 13986, 1533, 19204, 19343, 19482, 19621, -1980, -1980, -1980, 19760, -1980, -1980, -1980, 19899, -1980, -1980, 640, 640, 1651, 1671, 35013, 35138, 915, -1980, 915, 36533, -1980, 36533, -1980, -1980, 1668, 27802, -1980, 27802, 664, -1980, 343, -1980, -1980, -1980, -1980, 8525, 1672, 1673, 40840, 23636, 38233, 29147, 1674, -1980, -1980, -1980, -1980, -1980, 462, 1675, 1678, 1669, 1681, -1980, -1980, -1980, -1980, -1980, 36009, 25936, 1680, 1683, 1686, 29147, 1679, 36115, 1677, 373, 337, 579, 1684, 1690, -1980, 108, -1980, -1980, -1980, -1980, -1980, 29147, 320, 265, 36736, 22808, 1689, -1980, 27802, -1980, 270, 36837, 22946, -1980, 274, 36938, 23084, -1980, -1980, -1980, -1980, 1244, 1697, -1980, -1980, -1980, 26021, 4957, -1980, -1980, 1689, -1980, -1980, -1980, -1980, -1980, -1980, 871, 933, 871, 933, 948, 1030, 948, 1030, 1089, 1375, 1089, 1375, 1089, 1375, -1980, -1980, 842, 1012, -1980, -1980, 842, 1012, -1980, -1980, 1126, 1240, -1980, -1980, 1162, 1216, -1980, -1980, 1161, 1259, 1174, 1212, 1305, 1345, -1980, 53, -1980, 26079, 1691, 5767, 1692, -1980, -1980, -1980, -1980, -1980, 1246, -1980, -1980, -1980, 26164, 6821, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 871, 933, 871, 933, 948, 1030, 948, 1030, 1089, 1375, 1089, 1375, 1089, 1375, 1089, 1375, -1980, -1980, 842, 1012, -1980, -1980, 842, 1012, -1980, -1980, 1126, 1240, -1980, -1980, 1162, 1216, -1980, -1980, 1161, 1259, 1174, 1212, 1305, 1345, -1980, 26222, 1694, 8377, 1696, -1980, -1980, 108, 108, -1980, -1980, 475, 929, -1980, -1980, -1980, 37441, 37542, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 683, 2432, 897, -1980, 23636, 108, -1980, -1980, 23636, -1980, 937, -1980, -1980, -1980, 508, 462, 1821, -1980, -1980, 449, 1599, 1588, 462, 1821, -1980, 1711, -1980, 949, 603, 979, 3046, 1712, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 4810, -1980, -1980, -1980, -1980, -1980, 23222, 2258, 780, 35364, 21428, 626, 915, 847, -1980, 915, 29147, -1980, 853, -1980, -1980, -1980, 1716, 1597, 1581, 1599, 1017, 23636, 1029, 1034, -1980, -1980, -1980, 32619, 32745, 1719, -1980, 3229, 40660, 40660, 40660, 40660, -1980, -1980, -1980, 29147, 1721, 28587, -1980, 947, -1980, -1980, 28642, -1980, 28727, -1980, -1980, -1980, 1493, 1438, -1980, -1980, 1333, -1980, -1980, -1980, -1980, -1980, 1493, 1438, -1980, 28782, 6990, -1980, -1980, -1980, -1980, -1980, 20038, -1980, -1980, 249, -1980, -1980, 257, 1720, -1980, 32871, 32997, 462, 1818, 1729, -1980, -1980, -1980, -1980, -1980, -1980, 915, 893, -1980, 1730, 1737, -1980, 1727, 1728, 1731, -1980, -1980, 35364, -1980, -1980, -1980, -1980, -1980, 29147, 1741, 1520, -1980, -1980, -1980, -1980, 280, 37039, 23360, -1980, -1980, -1980, 20177, 21566, 21566, -1980, -1980, -1980, 20316, 26307, 16563, 26392, 26477, 24642, 26562, 16702, 21704, 1736, 1742, 21704, 29147, 28867, 1812, 26647, 1663, 9673, 320, 21704, 1753, 8069, 10041, -1980, 1494, 26702, 10504, 26787, -1980, -1980, -1980, -1980, -1980, 200, 320, 1754, 1264, -1980, -1980, -1980, -1980, 20455, -1980, -1980, -1980, 1756, 1758, 108, -1980, -1980, -1980, -1980, -1980, -1980, 40300, -1980, -1980, -1980, -1980, 26842, 1752, 24918, 1755, 26927, 1760, 25003, 1763, 1761, 1762, -1980, -1980, -1980, -1980, -1980, -1980, 14130, -1980, -1980, 1776, 1072, -1980, 2718, 1779, 1783, 1788, 1780, 1785, 23636, 1678, 38809, 1675, 29147, 23636, 29147, 1801, -1980, -1980, -1980, -1980, -1980, 1789, -1980, 28922, -1980, -1980, 1792, 1793, 29147, 29147, 1790, 9853, -1980, 108, 108, 29147, 14274, -1980, -1980, 640, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 14418, -1980, -1980, -1980, -1980, 27802, 14562, 14706, 27802, 14850, 14994, -1980, -1980, -1980, 15138, 15282, 15426, 15570, -1980, -1980, -1980, 595, 1808, 610, -1980, -1980, 462, 897, 1923, 1114, 23636, -1980, -1980, 1807, 915, 915, 1333, 915, 1588, 1813, -1980, -1980, 1817, -1980, 300, 37140, 23498, -1980, 462, 881, -1980, 847, -1980, -1980, 1810, 1811, -1980, -1980, -1980, 1136, -1980, -1980, 33123, 1822, 33249, -1980, 1823, 35479, -1980, 1827, -1980, 29147, 28027, 2310, -1980, -1980, 2310, -1980, -1980, -1980, 2310, -1980, -1980, 20594, 20733, -1980, -1980, -1980, 33375, -1980, 33501, 187, 893, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 2006, 27012, -1980, -1980, -1980, -1980, -1980, -1980, 20872, -1980, -1980, -1980, 21011, 10041, 24366, 10041, 24366, 12520, -1980, 24780, 16841, -1980, -1980, 21704, 21704, 27097, 10041, 27182, 24504, 1826, 25088, 27267, 204, 21150, -1980, 29147, -1980, 12520, -1980, 8069, 10041, 25173, 29007, 84, 1829, 84, 226, 1828, -1980, 108, 29147, 29147, 108, 27802, 27802, 27802, 27802, 27802, 27802, 27802, 27802, 15714, 15858, -1980, -1980, -1980, 462, 1678, 1832, -1980, -1980, -1980, -1980, -1980, 1146, 1675, -1980, 1837, 1838, 1844, 1846, 1205, 1847, 1848, 23636, 29147, 23880, -1980, -1980, -1980, 1854, 1857, 1859, 1860, 29147, 1839, 1843, 1845, 1875, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 326, -1980, -1980, -1980, 326, -1980, -1980, -1980, -1980, -1980, 326, -1980, -1980, -1980, 326, -1980, -1980, -1980, 326, -1980, -1980, -1980, 326, -1980, -1980, -1980, 326, -1980, -1980, -1980, 326, -1980, -1980, -1980, -1980, 1215, -1980, -1980, 1588, 27802, -1980, -1980, -1980, 29147, 29147, -1980, 33627, 33753, 33879, 34005, 34131, 40660, -1980, 40660, -1980, 10309, 21289, -1980, -1980, -1980, 34257, 34383, 34509, 34635, -1980, 1938, 1941, -1980, -1980, -1980, -1980, 10041, 29147, 29062, 1829, 16980, 17119, 25258, -1980, 12520, 24780, 27322, 17258, 108, -1980, 1081, 177, -1980, 96, 84, 1883, 84, 92, 645, 1886, 1271, -1980, -1980, 1675, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, -1980, 1237, 1877, 1880, 1892, -1980, -1980, -1980, -1980, 1884, 1885, -1980, -1980, -1980, -1980, -1980, 1895, -1980, -1980, -1980, -1980, 34761, 34887, -1980, -1980, 27407, -1980, -1980, 10041, 10041, 27492, 25343, 10041, 27577, 24504, 1896, -1980, 10041, 29147, -1980, -1980, 24780, -1980, -1980, 1888, 1898, 84, 84, 29147, 84, 1899, 84, 1149, -1980, 240, 1333, 636, -1980, 283, -1980, 1897, -1980, 108, -1980, -1980, -1980, 28587, -1980, -1980, -1980, -1980, -1980, -1980, 1896, 10041, -1980, -1980, 27662, -1980, -1980, 320, -1980, -1980, 1272, 1902, 1285, -1980, 1184, 1903, 84, 84, 1904, 84, -1980, -1980, -1980, -1980, 92, 673, -1980, -1980, -1980, 10041, 199, 1908, -1980, 1911, 1915, 84, -1980, 1321, 1328, -1980, 1204, 696, -1980, -1980, 29147, -1980, -1980, -1980, 1347, 1916, 1917, 1919, 84, -1980, 1922, 1921, -1980, -1980, -1980, 1350, -1980, -1980, 1926, -1980
131 };
132
133 static const yytype_int16 yypgoto[] =
134 {
135 -1980, 2067, 112, 10144, -1980, 1990, -1980, -1980, -1980, -1980, -1980, -1980, 1584, 1589, -929, -1980, -890, -964, 145, 148, -881, -809, -799, -1980, -732, -699, -1980, -1980, 1594, 1602, -1980, 1715, 3265, -1980, -292, 608, 681, -1980, -1980, -1980, -1980, 1609, -1980, -1980, -1980, -640, -1979, -101, -1980, -1980, -1980, -1980, 2390, 3133, -22, 11, 557, -848, -1980, -834, -1980, -843, -1980, 1071, -148, 1199, -671, 1, 1774, -13, 1781, -21, 0, -1980, 1151, -1980, -1980, 7528, 3860, -1980, 5622, -146, 1266, -1980, 3771, -1980, -325, 391, 534, 1100, -1980, -458, -457, -203, -38, 10, 124, 914, 9076, 4373, -45, 8898, -781, 380, -1980, 4549, -320, 656, 856, 2026, 615, 146, 161, 191, 209, 234, 1241, 526, -421, 7106, -748, -294, 723, 10847, -56, 1109, -130, 3236, 10912, 8268, -1980, -1980, -1980, -74, -41, -70, -1980, 6550, -1980, 1022, 3315, 620, -795, 3736, 8758, -1980, 11214, -1980, -1980, -1980, -52, 4053, -1980, -1980, 2030, 6555, -37, -1980, -1980, 1141, 1659, 1373, 1784, -82, -81, 5431, 10303, 8661, 3330, -367, -114, -368, 77, -851, 74, 2858, -1980, -1980, -1062, -1980, 3595, -558, -1204, 7418, -207, -670, 264, 210, 151, 1685, -252, -764, -456, -909, -529, -917, -919, 311, 1105, 1098, -24, 1849, -716, 1374, 628, -511, -431, -1980, -89, -71, 5725, 212, 31, -391, -1980, -1980, -1980, 2004, -1980, 3316, 2016, -64, 3577, -7, 1841, 1018, 1021, -1980, -1980, -1980, -90, 1996, -1551, -69, -1980, -1980, -1980, 6, -1980, 2019, -55, 19, 2012, 1592, -1980, -1980, -1980, 2022, -759, 381, -1980, -745, 863, -1980, -1980, -1980, -1980
136 };
137
138 static const yytype_int16 yytable[] =
139 {
140 64, 1143, 271, 1226, 222, 223, 1018, 1459, 508, 1458, 1248, 1410, 1681, 177, 939, 718, 1412, 1255, 398, 776, 1259, 722, 1065, 501, 777, 1411, 286, 175, 1113, 280, 108, 110, 1514, 1520, 1524, 745, 692, 1575, 282, 392, 943, 115, 176, 1249, 1032, 1387, 390, 391, 287, 109, 1256, 1230, 123, 1260, 1721, 1848, 278, 393, 602, 140, 196, 116, 173, 288, 149, 148, 152, 1859, 1519, 398, 172, 299, 277, 499, 1073, 1, 1399, 1079, 1389, 1085, 276, 1090, 163, 174, 123, 1471, 210, 285, 1433, 106, 1400, 123, 840, 64, 844, 1, 537, 540, 1495, 2080, 64, 64, 933, 1496, 296, 1533, 1513, 945, 1523, 104, 2127, 1, 1431, 380, 1016, 1515, 383, 1525, 1492, 1536, 1, 1, 491, 797, 600, 111, 297, 298, 210, 750, 301, 123, 123, 1066, 902, 513, 413, 518, 112, 522, 149, 467, 480, 1500, 467, -457, -457, -457, 494, 1114, 496, 92, 106, 496, 480, 492, 509, 467, 480, 467, 181, 467, 1482, 105, 525, 2086, 2127, 1539, 514, 1, 519, 138, 523, 904, 149, 148, 825, 113, 622, 536, 539, 617, 299, 123, -453, 603, 925, 1516, 299, 1526, 1, 583, 755, 756, 757, 1250, 1246, 1517, 550, 1527, 500, 671, 1274, 1860, 299, 299, 399, 1860, 177, 299, 149, 863, 558, 797, 286, 2, 286, 2007, 937, 2081, 163, 570, 175, 2077, 121, 379, 280, 2082, 1, 2013, 123, 299, 175, 123, 186, 282, 287, 176, 287, 1432, 1531, 615, 1480, 2121, 92, 1493, 1537, 176, 601, 798, 1804, 289, 92, 696, -1036, -1036, 751, 399, 1806, -1036, 532, 903, 134, 663, 1481, 608, -109, 685, -457, 277, 648, -100, 1057, 868, 679, -104, 675, 695, 681, 326, 851, -82, 693, 542, 1520, 1524, 1, 1483, 64, 682, 64, 1520, 1524, 680, 1540, 1520, 1524, 1997, 772, 2079, 751, -89, 826, 979, 1065, 618, 701, 758, 711, 565, 549, 926, 799, 584, 711, 759, 807, 585, 760, 1519, 566, 2148, 1251, 1861, 550, 106, 1519, 1998, 136, 1251, 1519, 1862, 1108, 1297, 1301, 1862, 1305, 1267, 753, 1191, 143, 396, 299, 825, 144, 741, 1, 184, 184, 2014, 893, 895, 897, 899, 752, 181, 2086, 2015, 1052, 1523, 1, 1363, 1367, 2122, 1371, 688, 1523, 2077, 1525, 903, 1523, 2123, 1580, 586, 1805, 1525, 968, -617, 299, 1525, 149, 831, 1807, 1267, 968, -612, 550, 137, 550, 942, 223, 751, 156, -109, 123, 395, 1, 1, -100, 583, 123, -739, -104, -739, 141, 1581, 142, -1021, -82, -1021, 1651, 2126, 1655, 149, 915, 916, 1009, 1, 831, 299, 866, 509, 145, 1, 870, 570, 1034, 939, -89, 186, 881, 582, 1009, 882, 831, 870, 889, 831, 586, 691, 1526, 289, 2, 1653, 692, 1657, 1019, 1526, 2, 1021, 1527, 1526, 1, 1275, 1277, 1279, 1, 1527, 1276, 1278, 1280, 1527, 146, 147, 1703, 467, 467, 149, 852, 1193, 929, 210, 752, 917, 123, 1892, 1053, 956, 1, 52, 745, 2, 960, 1339, 1341, 1343, 163, 961, 1340, 1342, 1344, 467, 467, 1065, 1054, 587, 1702, 1, 839, 588, 843, 939, 1468, 974, 1556, 155, 1, 745, 933, 149, 978, 1, 1820, 467, 467, 745, 829, 1578, 467, 467, 160, 469, 467, 467, 469, 585, 123, 123, 123, 184, 123, 2, 1244, 123, 1670, 745, 1673, 469, 1039, 469, 1043, 469, 184, 381, 123, 123, 123, 688, 1532, 150, 149, -457, -457, -457, 1691, 831, 496, 1565, 159, 26, 467, 1700, 467, 525, 588, 1047, 550, 123, 933, 1410, 149, 1040, 1753, 1044, 1412, 1570, 877, 1477, 1471, 1478, 123, 51, 556, 1745, 299, 1071, 589, 1, 1077, 933, 1083, 1309, 1088, 1016, 671, 671, 671, 671, 1, 1102, 1737, 589, 1738, 231, 1011, 1150, 1, 1010, 1157, 1799, 1013, 1798, 1265, 146, 147, 299, 1520, 1524, 1769, 1375, 1011, 1770, 286, 529, 1430, 1, 1802, 589, -863, 1227, 1, 1124, 1045, 1131, 1461, 295, 933, 1749, 373, 1, 175, 1144, 1399, 1399, 287, 299, 134, 1782, 1, 1785, 856, 1519, -910, 1052, 399, 176, 1400, 1400, 1331, 1787, 1418, 591, 1, 648, 648, 648, 648, 1, 1427, 675, 675, 675, 675, 1487, -457, 300, 1, -457, 1056, 1441, 2022, 149, 1179, 386, 1185, 1187, 1, 972, 1252, 583, 123, 1523, 2, 419, -216, 1253, 570, 1176, 1177, 1, 1525, 586, 1196, 146, 147, 937, 1704, 1476, -1061, 1, 1203, 1101, 590, 529, 527, 1392, 1393, 1208, 1218, 550, 1228, 1208, 1218, -1061, 552, -910, -910, 590, 1196, 1635, -910, 1762, 1758, 1640, 2, 1957, 1642, -910, 1644, 1239, 545, 146, 147, 1233, 1234, 1235, 146, 147, 1767, -1061, 1746, 1463, 1530, 590, -863, 1262, 495, 1313, 1, 1269, 857, -910, -910, 1, 1763, 254, 858, 1183, 2090, 2086, 1562, 1053, 1526, 688, 526, 134, -910, 1061, -910, 1, -870, 710, 1527, -1067, 1904, 1379, 710, 592, 972, 1054, 980, 980, 980, 801, 802, 803, 2146, 32, 1520, 1524, 1, 1329, 146, 147, -216, 1334, 1315, 1, 184, 184, -216, 846, 752, 1776, 1, 585, 106, 1485, 1486, 1451, 1452, 1600, 1453, 847, 2157, 1455, 1456, 588, 43, 44, 1394, 149, 1397, 1519, 1381, 831, 831, 831, -459, -459, -459, 1494, 107, 1548, 392, 469, 469, 691, 153, 1473, 154, 1467, 391, 373, 787, 788, 1, 1556, 413, 1413, 210, 1268, 393, 1, 974, 526, 149, 978, -265, -265, -265, 469, 469, 1523, 163, 1423, 570, 1167, 1171, 1144, 1533, 197, 1525, 570, 1, 1438, 1440, 1, 1442, 106, 831, 1981, 198, 469, 469, 146, 147, 1505, 469, 469, 1769, 1770, 469, 469, 1, 1538, 1541, 555, 804, -458, -458, -458, 552, 1676, 552, 678, 805, 421, 1, 806, 1707, 1317, 422, 146, 147, 1708, 420, 123, 559, 149, 977, -8, 1, 210, 106, 1696, 123, 398, 560, 1306, 469, 1475, 469, 2, 123, 1978, 123, 1479, 1490, 1383, 1633, 561, 121, 688, 1526, 1310, 149, 929, 413, 1257, 745, -459, 789, 790, 1527, 509, 509, 1372, 496, 387, 467, 496, 146, 147, 1558, 1773, 509, 1501, 149, 1503, 388, 1491, 1, 1376, 197, 1912, 1314, -265, -899, 1809, 778, -265, 1559, 528, 1665, 198, 593, 1669, 1869, 386, 146, 147, 1885, 1966, 123, 1316, 1803, 1891, 939, 594, 779, 780, 1898, 1183, 1380, 1063, -457, -457, -457, 860, 146, 147, 75, 1544, 815, 816, 1064, 1502, 596, 1, 566, 1318, -458, 1382, 688, 496, 496, 52, 671, 467, 467, 671, 598, 467, 467, 467, 2047, 149, 146, 147, 123, 123, 808, -879, -879, 1003, 1545, 1747, -879, 1384, 123, 933, 123, 210, 550, -879, 1748, 599, 831, 1747, 1802, 149, 809, 810, 831, 677, 1959, 149, 1757, 671, 831, 688, 1497, 149, 781, 782, 831, 1498, 149, -879, -879, 26, 552, 671, 671, 671, 671, 975, 134, 783, 784, 933, 149, 976, 933, 179, 1416, 648, 752, 841, 648, 845, 976, 675, 1016, 75, 675, 1674, 104, 1124, 1419, 1131, 75, 75, 373, 399, 976, 2054, 697, 2055, 1615, -457, 817, 818, 399, 1675, 1011, 134, 1775, -457, 791, 792, -457, 1628, 858, 146, 147, 1981, 648, 1269, 1777, 582, 552, 710, 675, 1778, 976, 134, 1624, 491, -898, 976, 648, 648, 648, 648, 811, 812, 675, 675, 675, 675, 1281, 1283, 719, 1, 1561, 720, 136, 1771, 467, 467, 123, 1031, 123, 528, 1809, 2035, 2132, 909, 910, 386, 492, 1882, 831, 157, 149, 158, 723, 858, 2, 831, 1345, 1347, 2076, 413, 210, 1548, 2077, 121, 724, 911, 2078, 1072, 698, 912, 1078, 913, 1084, -625, 1089, -625, 749, 698, 1685, -869, 2017, -869, -869, 698, 2032, 1685, 725, -898, -898, 1958, 415, 1, -898, 149, 898, 858, 752, 574, 254, -898, 28, 29, 914, 373, 1556, 32, 1091, 373, 819, 820, 534, 1969, 38, 1646, 396, 1013, 2, 858, -624, 1709, -624, 2024, 1003, -898, -898, 1982, 2119, 858, 726, 1003, 2077, 1092, 1003, 543, 2120, 544, 43, 44, -898, -898, -898, 469, 469, 1058, 727, 51, -869, 1093, 565, 502, 1918, 793, 373, 515, 179, 1640, 794, -869, 1644, 566, 1659, 2138, 28, 29, 179, 2077, 75, 32, 395, 2139, 795, 1285, 1287, 1583, 38, 796, 1589, 1094, 1095, 373, 2029, 2155, -869, 28, 29, 2077, 858, 373, 32, 2156, 2046, 1067, 547, 136, 544, 38, 858, 800, 43, 44, 737, 1349, 1351, 1109, 469, 821, 386, 373, 823, -869, -869, -869, 2094, 1816, 1630, 824, 1, 161, 858, 43, 44, 1716, 1016, 1728, -216, 1717, 1096, 1717, 1167, 1171, 1167, 1171, 879, 1016, -1016, 535, -1016, 933, 933, 813, 814, 1865, 1896, 1091, 1899, 1866, 1735, 1736, 2092, 2135, 1739, 149, 2093, 2077, 822, 831, 831, 828, 1907, 1909, 1298, 1302, 2137, 848, 28, 29, 2077, 149, 1092, 32, 1740, 1413, 1503, 469, 469, 413, 38, 469, 469, 469, 1105, 1750, 544, 123, 1093, 1, 1628, 851, 1364, 1368, 123, 1282, 1284, 836, 574, 1759, 149, 123, 2153, 837, 43, 44, 2077, 785, 1803, 2154, 1003, 2129, 552, 2077, 2, 849, -1035, -1035, 1094, 1095, 254, -1035, 123, 901, 1766, 1346, 1348, 123, 2159, 2012, 123, 2166, 2077, 149, 908, 2077, 146, 147, -216, 1636, 1637, 1638, 413, 859, -216, 1033, 752, 1, 467, 467, 574, 552, 918, 831, 831, 831, 831, -879, -879, 958, 28, 29, -879, 965, 1183, 32, 752, 1573, 1148, -879, 966, 1574, 38, 1447, 1449, 671, 671, 1180, 415, 142, 1003, 1091, 1003, 967, 1261, 1982, 1, 671, 968, 1268, 574, 1, 971, -879, -879, 1035, 43, 44, 1328, 700, 1, 1027, 467, 467, 1646, 123, 1092, 1013, 700, 1333, 1028, 1, 752, 123, 700, 562, 1016, 1036, 469, 469, 198, 1510, 1093, 1511, 570, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 1976, 745, 745, 745, 745, 745, 745, 745, 745, 648, 648, 1448, 1450, 552, 1894, 675, 675, 1094, 1095, 1124, 1029, 648, 1124, 28, 29, 1124, 1068, 675, 32, 1615, 1074, 2033, 1895, 1124, 698, 38, 1124, 752, 32, 1610, 2040, 1508, 1, 1509, 852, 2083, 752, 2085, 1852, 1080, -216, 1849, 1011, 1003, 981, 982, 983, 1086, 1016, 43, 44, 1144, 1286, 1288, 552, 1024, 1026, 1863, 509, 43, 44, 1104, 1023, 1025, 1462, 1504, 396, 1791, 1103, 1794, 1792, 1106, 1795, 1110, 891, 1111, 1961, 1112, 254, 1130, 373, 373, 1350, 1352, 745, 1132, 2048, 2050, 771, 582, 1133, 413, 1141, 210, 1162, 1164, 413, 1163, 1165, 1142, 2114, 1145, 2116, 1488, 2118, 291, 294, 1009, 1146, 1564, 1147, 1181, 1401, 1402, 1239, 1567, 1913, 1914, 1192, 1205, 395, 1568, 1257, 1245, 1403, 1404, 1405, 1569, 1421, 1406, 1407, 179, 1408, 1420, 388, 1437, 1445, 1199, 1446, 1464, 1484, -731, 2141, 2142, -734, 2144, 552, 1549, 146, 147, -216, 1394, 1552, 1550, 737, 1417, -216, 1551, 752, 1553, 413, 2152, 1554, 1199, 123, 123, 1571, 123, 552, 1572, 1970, 1576, 1973, 1577, 1242, 1586, 1587, 1602, 2163, 149, 671, 1603, 1604, 1606, 1645, 2130, 1611, 1619, 1003, 1817, 2131, 373, 467, 1620, 467, 1003, 1984, 831, 1986, 1003, 1563, 1621, 1625, 1971, 421, 1974, 1649, 1678, 1666, 1667, 1680, 1823, 1827, 1206, 1683, 1682, 1693, 1701, 467, 1694, 467, 123, 1695, 1839, 1705, 1698, 1706, 28, 29, 1985, 1711, 1987, 32, 1718, 1, 1724, 1727, 1, 1732, 38, 1734, 1646, 1013, 1124, 1124, 1124, 1124, 1756, 1760, 648, 1, 1601, 1774, 1124, 1124, 675, 1124, 1779, 1124, 2, 1788, -737, 2, 43, 44, 1810, 1811, 574, 121, 450, 1124, 121, 450, 1812, 1813, 1814, 401, 1819, 1815, 1144, 1840, 1846, 1628, 469, 469, 450, 1841, 450, 1850, 450, 1864, 1867, 2010, 1868, 2010, 1011, 1871, 1878, 1879, 1873, 1289, 1291, 574, 1293, 1875, 28, 29, 1877, 28, 29, 32, 574, 1881, 32, 413, 1886, 550, 38, 574, 1887, 38, 28, 29, 737, 1888, 574, 32, 1889, 1353, 1355, 1357, 1359, 1890, 38, 1901, 1902, 1911, 469, 469, 1905, 1906, 43, 44, 1677, 43, 44, 1956, -231, 671, 1960, 671, 700, 1963, 565, 1967, 1968, 52, 43, 44, 1964, 1972, 1996, 1975, 2052, 566, 1697, 1977, 2011, 2023, 52, 2016, 415, 415, 2025, 2026, 2042, 574, 28, 29, 2043, 1, 2044, 32, 467, 467, 467, 467, 467, 831, 38, 831, 2027, 574, 2028, 2030, 2031, 2053, 467, 467, 467, 467, 2036, 1003, 57, 2037, 2, 2038, 2039, 1124, 2124, 2125, 2045, 552, 43, 44, 2059, 671, 648, 2060, 648, 2075, 2084, 2091, 675, 2095, 675, 403, 2096, 2097, 1144, 1628, 2098, 2099, 2100, 2106, 2111, 2112, 2117, 2136, 2128, 2145, 2140, 2143, 373, 114, 2010, 2149, 2010, 1003, 2150, 1003, 28, 29, 2151, 2160, 2161, 32, 2162, 2164, 2165, 1499, 1994, 57, 38, 2167, 467, 467, 1003, 1786, 151, 1409, 415, 1124, 1124, 949, 683, 1124, 1454, 1124, 950, 54, 1124, 684, 1332, 951, 648, 57, 43, 44, 57, 1489, 675, 952, 28, 29, 255, 57, 1764, 32, 955, 1628, 272, 1144, 57, 57, 38, 1144, 886, 1231, 2010, 2010, 721, 2010, 1979, 2010, 1237, 57, 290, 1124, 382, 1003, 2113, 279, 878, 664, 281, 293, 616, 283, 43, 44, 57, 1955, 0, 0, 0, 0, 0, 0, 407, 0, 1144, 1628, 2134, 407, 255, 1124, 407, 0, 0, 0, 0, 2010, 2010, 0, 2010, 0, 255, 1144, 57, 407, 255, 407, 170, 407, 0, 0, 0, 0, 0, 0, 2010, 469, 54, 469, 417, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, 0, 2010, 255, 255, 0, 0, 450, 450, 538, 541, 0, 469, 0, 469, 407, 0, 0, 0, 953, 0, 0, 0, 1772, 0, 0, 0, 0, 0, 557, 0, 0, 0, 450, 450, 552, 0, 552, 57, 0, 0, 0, 0, 2071, 0, 2074, 373, 0, 0, 0, 1663, 552, 552, 0, 0, 450, 450, 0, 373, 0, 450, 450, 0, 0, 450, 450, 0, 0, 18, 19, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 255, 0, 38, 255, 255, 644, 1, 0, 0, 623, 0, 670, 0, 57, 0, 0, 28, 29, 0, 0, 450, 32, 450, 57, 255, 57, 43, 44, 38, 2110, 694, 2, 0, 568, 1003, 0, 0, 0, 0, 853, 121, 0, 0, 255, 0, 0, 0, 0, 0, 255, 415, 0, 43, 44, 0, 0, 0, 0, 0, 407, 0, 0, -457, 0, 1139, -457, -457, -457, -457, -457, -457, -457, -457, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 38, 170, 0, 0, 0, 0, 469, 469, 469, 469, 469, 170, 0, 54, 0, 0, 0, 0, 0, 0, 469, 469, 469, 469, 43, 44, 0, 57, 0, 0, 0, 786, 407, 51, 407, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 928, 0, 0, 0, 373, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1897, 0, 1900, 57, 0, 407, 57, 18, 19, 255, 57, 0, 0, 0, 0, 880, 1908, 1910, 0, 57, 255, 0, 57, 552, 0, -457, -457, 469, 469, 0, 0, 894, 552, 0, 900, -457, 0, 28, 29, 0, 0, 417, 32, 0, -457, -457, -457, -457, -457, 38, 407, 407, 0, 0, 0, 57, 57, 0, 0, 0, 0, 0, 407, 0, 0, 0, 0, 959, 0, 0, 0, 0, 255, 43, 44, 0, 407, 407, 0, 0, 568, 0, 0, 574, 0, 1609, 1, 0, 552, 552, 0, 0, 0, 0, 0, 57, 0, 0, 407, 407, 0, 28, 29, 407, 407, 0, 32, 407, 407, 0, 0, 2, 415, 38, 644, 0, 415, 0, 0, 0, 121, 255, 0, 0, 255, 0, 0, 1020, 0, 0, 1022, 0, 568, 0, 0, 0, 0, 43, 44, 0, 57, 0, 0, 0, 0, 407, 51, 407, 0, 860, 57, 407, 0, 0, 1004, 0, 0, 28, 29, 0, 566, 0, 32, 0, 0, 0, 0, 0, 0, 38, 57, 0, 568, 57, 0, 57, 0, 57, 0, 415, 0, 0, 0, 574, 57, 0, 0, 0, 0, 0, 969, 0, -640, 43, 44, 0, 0, 415, 0, 0, 373, 0, 51, 0, 0, 52, 1460, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, -640, 373, 0, 2034, 38, 0, -955, 0, 0, -640, -640, 0, 2041, 18, 19, 698, 698, 0, 698, 698, 0, 0, 0, 698, 698, 698, 698, 0, 43, 44, 0, 644, 644, 644, 644, 0, 0, 670, 670, 670, 670, 854, 0, 28, 29, 0, -640, -640, 32, 0, 0, -640, 373, 0, 0, 38, 0, 0, -640, 255, 255, 255, 0, 450, 57, 1186, 1188, 1189, 2049, 2051, 407, 0, 0, 18, 19, 0, 0, 0, 255, 43, 44, 0, -640, -640, 0, 255, 255, 407, 51, 255, 255, -640, 0, 0, -640, 0, 407, 970, 0, 968, -640, 737, 0, 28, 29, 0, 0, 57, 32, 0, 644, 0, 0, 0, 0, 38, 0, 644, 1204, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 450, 0, 0, 450, 450, 450, 43, 44, 170, 0, 0, 0, 0, 0, 1195, 51, 0, 1004, 0, 0, 0, 0, 0, 415, 1004, 0, 0, 1004, 415, 698, 698, 698, 698, 698, 698, 698, 698, 28, 29, 0, 1195, 0, 32, 0, 0, 0, 0, 0, 0, 38, 0, 574, 0, 0, 0, 0, 0, 0, 1290, 1292, 0, 1294, 0, 0, 0, 0, 0, 57, 0, 0, 57, 57, 57, 43, 44, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 1206, 1354, 1356, 1358, 1360, 0, 0, 415, 407, 407, 57, 0, 0, 0, 0, 920, 923, 57, 88, 0, 0, 0, 0, 0, 0, 255, 57, 0, 0, 0, 0, 0, 0, 57, 0, 0, 255, 698, 407, 0, 57, 920, 923, 0, 417, 417, 0, 0, 415, 0, 0, 0, 0, 0, 0, 450, 450, 0, 0, 568, 0, 0, 0, 920, 923, 0, 0, 0, 920, 923, 131, 0, 920, 923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 737, 0, 0, 0, 0, 0, 57, 0, 0, 568, 0, 0, 0, 0, 0, 164, 182, 195, 568, 0, 0, 0, 57, 407, 233, 568, 88, 0, 0, 0, 57, 57, 568, 88, 88, 407, 0, 0, 0, 1924, 1928, 57, 1934, 1938, 0, 0, 0, 1942, 1946, 1950, 1954, 0, 0, 0, 1, 0, 0, 0, 1506, 417, 0, 644, 255, 644, 195, 400, 402, 404, 405, 255, 0, 0, 0, 0, 473, 0, 415, 473, 0, 2, 0, 0, 0, 568, 0, 0, 0, 0, 192, 193, 473, 0, 473, 0, 473, 0, 0, 0, 0, 568, 0, 1004, 1004, 1004, 407, 407, 0, 0, 407, 407, 407, 0, 0, 0, 0, 0, 533, 402, 404, 0, 0, 0, 0, 0, 1, 28, 29, 0, 57, 407, 32, 0, 0, 57, 0, 0, 0, 38, 0, 57, 0, 0, 0, 0, 0, 57, 0, 0, 0, 2, 0, 57, 0, 563, 578, 0, 0, 0, 121, 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 644, 51, 0, 644, 52, 0, 644, 0, 0, 670, 0, 0, 670, 0, 0, 0, 0, 700, 700, 700, 700, 700, 700, 700, 700, 0, 28, 29, 0, 614, 0, 32, 0, 0, 0, 0, 0, 0, 38, 0, 1004, 0, 182, 0, 644, 0, 0, 0, 0, 0, 670, 0, 689, 0, 88, 0, 0, 0, 644, 644, 644, 644, 43, 44, 670, 670, 670, 670, 0, 0, 0, 51, 0, 0, 52, 0, 407, 407, 0, 0, 0, 255, 0, 255, 0, 0, 0, 1647, 0, 1648, 57, 0, 0, 0, 0, 0, 0, 57, 0, 0, 255, 407, 57, 0, 0, 0, 0, 0, 0, 0, 700, 450, 450, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1780, 417, -629, 0, 0, 0, 66, 0, 255, 644, 0, 0, 0, 0, 0, 255, 644, 0, 0, 255, 644, 0, 400, 402, 404, 0, 0, -629, 0, 450, 450, 1658, 0, 0, 0, 0, -629, -629, 1660, 0, 0, 0, 0, 0, 0, 0, 861, 0, 1004, 1004, 0, 0, 0, 473, 0, 1004, 1004, 0, 0, 1004, 1004, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, -629, -629, 0, 0, 0, -629, 0, 0, 0, 0, 0, 0, -629, 0, 0, 0, 66, 0, 0, 0, 473, 473, 0, 0, 0, 935, 66, 0, 0, 946, 0, 0, 473, 66, 66, 0, -629, -629, 0, 0, 0, 164, 0, 0, 0, -629, 473, 473, -629, 0, 0, 1781, 0, 968, -629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 861, 0, 0, 473, 473, 0, 0, 0, 473, 473, 482, 0, 473, 473, 126, 0, 195, 195, 195, 0, 0, 0, 482, 57, 57, 0, 482, 0, 0, 0, 0, 0, 0, 0, 195, 195, 0, 0, 451, 407, 0, 451, 0, 407, 0, 180, 126, 0, 0, 0, 473, 0, 473, 232, 451, 1050, 451, 1059, 451, 0, 0, 920, 923, 0, 0, 920, 923, 0, 0, 0, 0, 0, 404, 0, 0, 417, 0, 0, 0, 417, 0, 0, 0, 0, 0, 644, 0, 0, 57, 484, 0, 0, 0, 126, 126, 0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 484, 407, 0, 0, 0, 0, 0, 407, 407, 0, 0, 0, 57, 57, 57, 57, 0, 0, 0, 0, 1004, 450, 0, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 531, 66, 1796, 0, 0, 0, 0, 450, 0, 450, 0, 66, 0, 66, 0, 417, 0, 0, 0, 0, 568, 407, 407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 0, 0, 0, 0, 0, 689, 0, 57, 0, 0, 0, 595, 0, 0, 597, 0, 0, 0, 0, 0, 0, 255, 644, 0, 0, 0, 1214, 644, 644, 0, 1214, 612, 0, 670, 670, 620, 624, 0, 0, 0, 644, 0, 0, 644, 0, 670, 126, 0, 861, 921, 924, 644, 0, 0, 0, 0, 0, 0, 0, 180, 0, 1004, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, 921, 924, 0, 0, 0, 715, 0, 0, 0, 568, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 921, 924, 0, 0, 0, 921, 924, 0, 0, 921, 924, 0, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 407, 0, 57, 482, 0, 407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 450, 450, 450, 450, 0, 57, 0, 0, 0, 0, 0, 0, 0, 450, 450, 450, 450, 0, 417, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 1414, 0, 0, 0, 0, 482, 126, 861, 0, 0, 0, 0, 451, 451, 164, 861, 1428, 0, 76, 407, 0, 873, 0, 1435, 954, 0, 861, 0, 1443, 0, 0, 0, 873, 0, 255, 644, 0, 0, 451, 451, 0, 0, 0, 0, 0, 0, 0, 0, 126, 450, 450, 407, 0, 407, 0, 417, 57, 0, 0, 0, 451, 451, 0, 0, 0, 451, 451, 131, 0, 451, 451, 0, 0, 0, 1004, 1004, 1472, 407, 0, 407, 0, 578, 0, 0, 964, 0, 232, 131, 0, 0, 0, 0, 0, 0, 0, 0, 417, 935, 0, 0, 0, 76, 0, 0, 0, 0, 0, 451, 0, 451, 473, 76, 644, 644, 670, 0, 0, 0, 76, 76, 402, 0, 0, 0, 0, 0, 0, 621, 625, 0, 0, 0, 0, 568, 620, 0, 0, 620, 126, 126, 126, 0, 1008, 0, 935, 597, 0, 657, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 126, 0, 485, 0, 920, 923, 0, 343, 0, 0, 0, 0, 0, 0, 485, 407, 0, 407, 485, 126, 0, 473, 473, 0, 0, 473, 473, 473, 0, 0, 0, 414, 1546, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 66, 0, 920, 923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 407, 407, 407, 407, 57, 0, 57, 0, 414, 0, 0, 0, 0, 407, 407, 407, 407, 0, 620, 624, 1168, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 0, 670, 0, 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 232, 0, 0, 0, 76, 0, 76, 0, 0, 0, 0, 0, 1212, 1222, 0, 892, 1212, 1222, 473, 473, 0, 0, 407, 407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 861, 0, 0, 861, 0, 1672, 0, 0, 0, 670, 0, 0, 414, 0, 0, 0, 703, 706, 708, 0, 0, 414, 302, 1214, 1, 303, 106, 414, 0, 0, 1214, 0, 0, 729, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 482, 0, 621, 0, 414, 621, 0, 0, 0, 414, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 307, 82, 0, 0, 0, 0, 308, 309, 82, 82, 0, 0, 414, 0, 414, 485, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 485, 921, 924, 0, 0, 921, 924, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 0, 1426, 414, 0, 0, 0, 486, 0, 0, 322, 0, 0, 1426, 705, 0, 775, 0, 0, 486, 0, 0, 0, 486, 326, 327, 0, 0, 0, 0, 126, 0, 0, 0, 0, 485, 0, 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, 451, 0, 0, 0, 0, 621, 625, 1169, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 657, 657, 657, 657, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 1743, 0, 595, 0, 597, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1752, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 414, 195, 0, 0, 451, 451, 0, 0, 451, 451, 451, 0, 0, 0, 0, 0, 0, 0, 0, 612, 0, 0, 1765, 0, 578, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 414, 0, 0, 0, 82, 0, 82, 0, 0, 0, 0, 473, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 920, 923, 0, 920, 923, 0, 0, 0, 0, 343, 0, 0, 0, 0, 920, 923, 920, 923, 0, 0, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 473, 473, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1584, 578, 0, 1590, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 920, 923, 0, 451, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 874, 1168, 1172, 1168, 1172, 0, 0, 0, 358, 0, 0, 874, 0, 0, 0, 0, 0, 343, 0, 1136, 0, 343, 0, 0, 620, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 595, 414, 597, 0, 0, 0, 0, 612, 414, 0, 0, 414, 0, 0, 0, 0, 0, 0, 1883, 0, 0, 0, 1474, 0, 0, 0, 0, 1689, 874, 0, 0, 343, 0, 0, 1689, 0, 0, 414, 414, 414, 414, 414, 414, 414, 0, 0, 414, 414, 0, 414, 414, 414, 414, 414, 414, 414, 414, 0, 343, 0, 0, 0, 0, 0, 0, 0, 343, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 1264, 0, 0, 0, 485, 921, 924, 0, 0, 0, 0, 414, 414, 0, 0, 0, 0, 0, 0, 473, 0, 473, 0, 0, 861, 651, 0, 0, 0, 0, 0, 0, 0, 1296, 1300, 1304, 1308, 1312, 0, 0, 1321, 0, 0, 361, 0, 473, 1264, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 921, 924, 1362, 1366, 1370, 1374, 1378, 1585, 416, 1321, 1591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 414, 748, 0, 657, 0, 0, 657, 0, 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 414, 1169, 1173, 1169, 1173, 657, 0, 0, 0, 416, 0, 82, 0, 0, 0, 0, 0, 451, 451, 657, 657, 657, 657, 0, 621, 0, 621, 0, 0, 414, 0, 414, 0, 0, 0, 126, 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, 451, 451, 0, 0, 0, 0, 0, 0, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, 473, 473, 473, 473, 473, 0, 0, 414, 0, 0, 0, 0, 0, 0, 473, 473, 473, 473, 0, 0, 0, 416, 0, 0, 0, 704, 707, 709, 0, 0, 416, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 414, 361, 126, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 416, 0, 0, 0, 1824, 1828, 0, 0, 0, 0, 1015, 0, 473, 473, 343, 343, 0, 1584, 0, 0, 1590, 0, 0, 0, 0, 0, 0, 0, 1631, 0, 874, 0, -457, -457, 0, 0, 0, 416, 0, 416, 0, 874, -457, 0, 0, 0, 0, -457, -457, -457, 0, -457, -457, -457, -457, -457, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 416, 0, 1100, 0, 0, 0, 0, 414, 0, 414, 0, 0, 0, 1607, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 651, 0, 0, 0, 0, 0, 1634, 0, 0, 0, 0, 0, 414, 1641, 0, 0, 414, 0, 307, 343, 0, 0, 0, 414, 308, 309, 310, 414, 0, 0, 0, 0, 651, 651, 651, 651, 0, 311, 312, 0, 451, 0, 451, 0, 0, 0, 0, 1321, 0, 1321, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 451, 0, 451, 0, 0, 322, 323, 0, 416, 324, 1158, 325, 0, 0, 1159, 0, 0, 0, 0, 326, 327, 1720, 328, 329, 330, 331, 1232, 0, 0, 0, 1236, 0, 0, 921, 924, 0, 921, 924, 0, 0, 0, 0, 0, 0, 0, 416, 0, 921, 924, 921, 924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 1273, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 1824, 1828, 0, 0, 0, 0, 0, 1825, 1829, 0, 0, 0, 0, 0, 0, 0, 1327, 0, 0, 416, 625, 748, 0, 625, 1338, 657, 657, 0, 0, 921, 924, 625, 414, 0, 0, 1126, 414, 1126, 657, 0, 0, 657, 0, 0, 1391, 0, 0, 0, 0, 657, 0, 0, 1126, 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, 414, 451, 451, 451, 451, 451, 0, 0, 0, 0, 414, 0, 416, 0, 0, 451, 451, 451, 451, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, 414, 0, 343, 361, 0, 0, 0, 414, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 416, 414, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451, 451, 0, 0, 361, 0, 0, 0, 0, 0, 416, 416, 416, 416, 416, 416, 416, 0, 0, 416, 416, 0, 416, 416, 416, 416, 416, 416, 416, 416, 0, 361, 0, 0, 0, 414, 0, 0, 0, 361, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 416, 0, 0, 0, 0, 0, 0, 0, 0, 625, 625, 0, 0, 0, 0, 0, 0, 1126, 1126, 1126, 1126, 0, 0, 1126, 0, 0, 0, 657, 657, 0, 1126, 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 1126, 414, 414, 414, 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 414, 414, 0, 0, 0, 0, 416, 343, 416, 0, 0, 651, 0, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 651, 0, 414, 414, 0, 414, 414, 0, 0, 0, 414, 414, 414, 414, 0, 416, 0, 0, 0, 0, 0, 0, 1626, 1627, 416, 0, 414, 0, 0, 651, 0, 1273, 0, 0, 0, 1639, 0, 0, 1338, 0, 1643, 0, 414, 651, 651, 651, 651, 0, 0, 0, 0, 0, 0, 416, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1917, 0, 0, 0, 0, 1920, 1922, 1926, 1930, 1932, 1936, 0, 0, 1126, 1940, 1944, 1948, 1952, 0, 0, 0, 0, 1126, 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 343, 0, 414, 414, 414, 414, 414, 414, 414, 414, 0, 0, 0, 576, 416, 1126, 1126, 0, 0, 1126, 0, 1126, 0, 0, 1126, 416, 0, 0, 1126, 0, 0, 0, 0, 414, 414, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 361, 361, 0, 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, 0, 0, 414, 0, 0, 0, 414, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 416, 0, 0, 0, 0, 0, 0, 468, 0, 0, 468, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 416, 468, 0, 468, 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 2, 0, 0, 416, 0, 0, 361, 0, 0, 0, 416, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 850, 0, 0, 0, 0, 0, 855, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 343, 314, 315, 316, 317, 318, 319, 320, 321, 1015, 0, 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, 324, 1158, 325, 649, 0, 1725, 0, 0, 0, 1726, 326, 327, 932, 328, 329, 330, 331, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 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, 651, 651, 1007, 0, 0, 1012, 0, 416, 0, 0, 651, 416, 651, 651, 0, 0, 651, 0, 1007, 0, 0, 0, 0, 0, 651, 0, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 361, 0, 0, 0, 0, 416, 0, 416, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 1915, 0, 0, 0, 0, 0, 0, 0, 0, 468, 468, 0, 1713, 0, 0, 0, 0, 1639, 0, 0, 1643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 468, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 0, 686, 0, 0, 416, 0, 0, 0, 0, 468, 468, 0, 0, 0, 468, 468, 0, 0, 468, 468, 0, 0, 0, 0, 0, 1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 468, 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651, 651, 651, 651, 0, 0, 651, 0, 0, 0, 651, 651, 0, 651, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 651, 416, 416, 416, 0, 0, 0, 0, 0, 0, 2018, 2019, 361, 0, 0, 0, 0, 416, 416, 0, 0, 0, 0, 649, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 416, 0, 416, 416, 0, 0, 0, 416, 416, 416, 416, 0, 649, 649, 649, 649, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 416, 0, 1434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 1127, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 0, 1470, 651, 0, 0, 1001, 576, 0, 1001, 0, 0, 651, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 932, 0, 1166, 1170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, 361, 0, 416, 416, 416, 416, 416, 416, 416, 416, 0, 0, 1015, 0, 0, 651, 651, 0, 932, 651, 0, 651, 0, 0, 651, 0, 0, 0, 651, 0, 0, 0, 0, 416, 416, 2115, 0, 302, 0, 1, 303, 106, 304, 416, 305, 306, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 651, 0, 0, 2, 397, 0, 0, 0, 0, 0, 0, 0, 121, 576, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651, 0, 0, 0, 0, 0, 416, 0, 0, 0, 416, 416, 307, 0, 0, 2158, 0, 0, 308, 309, 310, 28, 29, 468, 468, 0, 32, 0, 0, 0, 0, 311, 312, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 887, 0, 0, 888, 731, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 468, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 686, 0, 0, 1001, 0, 1001, 0, 0, 0, 0, 0, 0, 0, 361, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 221, 261, 74, 0, 0, 361, 0, 0, 0, 74, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 468, 0, 0, 468, 468, 468, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 418, 483, 0, 0, 0, 0, 361, 0, 0, 0, 0, 0, 0, 483, 0, 0, 0, 483, 0, 0, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 0, 649, 0, 0, 649, 0, 0, 0, 261, 261, 0, 0, 0, 649, 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, 649, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 649, 649, 649, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 261, 261, 261, 0, 302, 0, 1, 303, 106, 304, 178, 305, 306, 0, 1582, 0, 0, 1588, 0, 0, 178, 261, 74, 0, 0, 0, 1605, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 714, 0, 686, 0, 0, 0, 714, 0, 0, 1755, 0, 0, 0, 1001, 0, 1629, 736, 0, 0, 0, 1001, 0, 0, 0, 1001, 0, 0, 0, 307, 1166, 1170, 1166, 1170, 0, 308, 309, 310, 1434, 0, 576, 0, 0, 1768, 0, 0, 1012, 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, 0, 0, 0, 832, 0, 0, 322, 323, 0, 0, 324, 1158, 325, 0, 0, 1159, 0, 0, 0, 0, 326, 327, 1730, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 872, 867, 510, 0, 850, 0, 876, 0, 0, 0, 0, 872, 576, 0, 0, 883, 0, -870, 890, 0, -870, -870, -870, 576, -870, -870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 941, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -870, 0, 0, 0, 0, 573, -870, -870, -870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -870, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 1001, 261, 0, -870, 261, 0, 0, -870, -870, -870, -870, -870, -870, -870, -870, 0, 0, 0, 0, 0, 0, 0, 0, -870, 0, 221, 0, 468, 468, -870, -870, 0, -870, -870, -870, 221, 0, -870, -870, 0, -870, -870, -870, -870, 0, 0, 1001, 0, 1001, 0, 0, 0, 0, 0, 0, 221, 0, 0, 221, 0, 221, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 686, 0, 1962, 0, 0, 1140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1001, 0, 0, 0, 0, 649, 649, 0, 0, 0, 261, 261, 261, 261, 0, 649, 0, 649, 649, 0, 0, 649, 0, 0, 0, 0, 0, 0, 0, 649, 0, 0, 649, 0, 0, 0, 1007, 0, 261, 261, 261, 0, 0, 178, 0, 0, 0, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 1211, 1221, 736, 0, 1211, 1221, 0, 0, 0, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1241, 0, 0, 261, 0, 0, 0, 0, 0, 0, 261, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 1826, 0, 0, 0, 0, 0, 0, 0, 0, 1835, 0, 1838, 1582, 0, 0, 1588, 0, 0, 0, 0, 0, 0, 0, 1629, 0, 0, 1851, 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, 656, 0, 0, 0, 0, 0, 573, 0, 0, 1001, 0, 0, 0, 0, 832, 832, 832, 0, 0, 0, 0, 0, 0, 0, 0, 468, 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, 418, 221, 0, 573, 91, 0, 0, 0, 0, 0, 0, 1425, 573, 468, 0, 468, 734, 0, 0, 573, 0, 0, 1425, 117, 736, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 649, 649, 649, 649, 0, 0, 649, 0, 0, 0, 649, 649, 0, 649, 0, 649, 0, 120, 132, 0, 0, 0, 0, 0, 0, 0, 0, 649, 0, 0, 0, 0, 0, 0, 0, 0, 1466, 0, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 132, 0, 0, 0, 230, 573, 0, 0, 0, 91, 0, 418, 0, 0, 0, 0, 91, 91, 510, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, 0, 0, 0, 0, 385, 0, 0, 0, 0, 0, 734, 0, 0, 0, 261, 261, 261, 394, 0, 0, 0, 0, 611, 1989, 1990, 1991, 1992, 0, 0, 1993, 0, 0, 0, 1822, 1826, 0, 1835, 0, 1838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 468, 468, 468, 468, 0, 0, 0, 530, 0, 0, 0, 0, 0, 468, 468, 468, 468, 0, 0, 0, 546, 0, 0, 0, 649, 221, 0, 0, 0, 0, 221, 0, 0, 649, 0, 649, 1566, 0, 0, 0, 0, 0, 1566, 0, 0, 0, 580, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 261, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1140, 468, 468, 0, 0, 0, 0, 0, 649, 649, 132, 0, 649, 0, 649, 0, 0, 649, 0, 0, 0, 649, 0, 183, 0, 261, 0, 0, 0, 0, 0, 0, 0, 690, 0, 91, 0, 0, 0, 261, 261, 261, 261, 0, 0, 0, 0, 1993, 0, 0, 0, 0, 0, 0, 649, 0, 2070, 0, 2073, 0, 0, 0, 261, 0, 261, 0, 0, 0, 0, 1138, 0, 0, 0, 0, 0, 0, 0, 0, 1662, 0, 0, 611, 649, 0, 0, 1156, 0, 418, 221, 0, 0, 0, 0, 0, 0, 0, 656, 656, 656, 656, 0, 1688, 0, 0, 0, 0, 0, 0, 1688, 0, 0, 2102, 2103, 0, 0, 2070, 0, 2073, 0, 0, 2107, 0, 0, 0, 2109, 261, 261, 0, 0, 0, 0, 0, 261, 261, 0, 734, 261, 261, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2109, 0, 0, 0, 734, 0, 862, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 746, 0, 0, 2147, 0, 0, 0, 0, 0, 0, 0, 1271, 0, 0, 0, 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 936, 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1324, 0, 0, 0, 0, 0, 0, 0, 1336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, 0, 1388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 832, 832, 0, 0, 0, 0, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 418, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 1051, 0, 1060, 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, 1062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, 1784, 418, 1784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -457, 0, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182, 0, 0, 0, 0, 0, 0, 690, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, -457, 1216, 261, 261, 0, 1216, -457, -457, -457, 0, 0, 0, 0, 0, 0, 261, 0, 0, 261, -457, -457, 0, 0, 862, 0, 0, 261, 0, 0, 0, 1135, 0, 0, -457, 0, 0, 0, -457, -457, -457, -457, -457, -457, -457, -457, 0, 0, 0, 0, 0, 0, 0, 0, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, 0, 0, -457, 510, -457, -457, 0, -457, -457, -457, -457, -457, -457, -457, -457, -457, 656, 0, 0, 656, 1593, 1595, 0, 1598, 0, 0, 0, 0, 0, 0, 0, 1608, 0, 0, 0, 0, 418, 0, 221, 1617, 0, 418, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 656, 0, 0, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 1156, 0, 656, 656, 656, 656, 0, 0, 0, 0, 0, 0, 862, 1415, 0, 0, 0, 0, 0, 862, 746, 0, 0, 0, 0, 0, 0, 862, 1429, 0, 0, 1652, 0, 1656, 1272, 1436, 418, 0, 862, 120, 132, 0, 0, 0, 0, 0, 261, 261, 0, 0, 0, 0, 0, 1295, 1299, 1303, 1307, 1311, 0, 0, 1320, 1326, 0, 0, 0, 1156, 746, 0, 573, 1337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 1361, 1365, 1369, 1373, 1377, 0, 1469, 1320, 1390, 0, 0, 0, 580, 260, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 936, 1156, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 261, 261, 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, 936, 0, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 736, 260, 260, 418, 0, 0, 0, 0, 311, 312, 0, 0, 0, 0, 0, 1547, 0, 0, 0, 0, 0, 0, 313, 0, 1555, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 572, 0, 0, 1156, 0, 0, 322, 323, 0, 0, 324, 1158, 325, 0, 0, 1725, 0, 0, 0, 1733, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 418, 0, 418, 610, 0, 0, 260, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 260, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 713, 0, 0, 0, 0, 0, 713, 0, 0, 0, 0, 0, 0, 0, 0, 27, 735, 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, 862, 0, 0, 862, 0, 1216, 40, 0, 0, 0, 0, 0, 0, 1679, 0, 0, 43, 44, 45, 46, 47, 48, 0, 1216, 0, 51, 0, 0, 860, 0, 1216, 1135, 0, 0, 0, 0, 0, 0, 0, 566, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1272, 0, 0, 0, 0, 0, 0, 1337, 572, 0, 0, 0, 0, 0, 656, 656, 0, 0, 0, 0, 1156, 0, 1156, 0, 0, 1156, 656, 0, 0, 0, 0, 1842, 1845, 0, 1847, 86, 0, 0, 0, 0, 0, 1320, 0, 1320, 1156, 0, 1858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 86, 86, 0, 0, 0, 0, 0, 0, 86, 0, 86, 0, 1156, 0, 0, 0, 1156, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 1712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 1751, 0, 0, 0, 263, 0, 0, 1754, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1436, 0, 580, 0, 0, 0, 0, 0, 0, 86, 0, 0, 86, 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, 1156, 0, 86, 0, 0, 0, 0, 260, 260, 260, 260, 0, 0, 0, 0, 86, 0, 0, 656, 1156, 263, 263, 0, 0, 0, 86, 1156, 86, 0, 0, 1847, 0, 2000, 0, 0, 260, 260, 260, 0, 0, 1808, 2006, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 0, 260, 575, 0, 0, 0, 0, 580, 1210, 1220, 735, 0, 1210, 1220, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 0, 734, 260, 0, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 613, 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, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, 0, 0, 0, 0, 0, 716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 1884, 0, 0, 0, 0, 0, 0, 86, 0, 0, 572, 0, 2062, 2065, 0, 1156, 0, 1156, 0, 0, 656, 1156, 656, 0, 0, 0, 0, 0, 0, 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, 572, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 735, 0, 572, 0, 0, 1415, 0, 0, 0, 0, 0, 1156, 0, 0, 1156, 0, 0, 0, 0, 0, 575, 0, 656, 0, 0, 0, 0, 1754, 0, 0, 0, 86, 86, 86, 0, 86, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, 86, 86, 86, 0, 572, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 572, 86, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1712, 0, 0, 0, 0, 1919, 1921, 1925, 1929, 1931, 1935, 0, 0, 0, 1939, 1943, 1947, 1951, 0, 260, 260, 260, 0, 575, 0, 0, 0, 610, 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 1679, 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, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 260, 699, 0, 260, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 0, 1921, 1925, 1931, 1935, 1939, 1943, 1947, 1951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 263, 263, 263, 263, 0, 0, 0, 0, 0, 260, 260, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 0, 260, 0, 260, 0, 0, 0, 0, 1200, 0, 551, 0, 551, 0, 0, 0, 263, 1661, 0, 0, 610, 0, 0, 1213, 1223, 738, 0, 1213, 1223, 0, 0, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 1687, 0, 0, 0, 0, 1243, 0, 1687, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 0, 260, 260, 0, 0, 0, 0, 0, 260, 260, 0, 0, 260, 260, 0, 0, 0, 0, 0, 1137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 1155, 0, 0, 0, 1160, 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, 86, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 733, 0, 1002, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 0, 575, 733, 0, 0, 0, 0, 1155, 1160, 0, 575, 0, 0, 0, 0, 0, 0, 575, 551, 0, 0, 0, 738, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1270, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 1322, 0, 0, 575, 0, 2, 551, 0, 1335, 0, 0, 0, 0, 0, 0, 86, 86, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0, 0, 0, 0, 0, 260, 0, 0, 572, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 311, 312, 0, 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 1190, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 733, 0, 0, 0, 0, 322, 323, 0, 0, 324, 1158, 325, 1623, 0, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 1002, 0, 0, 0, 0, 0, 0, 1002, 0, 0, 1002, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 86, 0, 0, 260, 260, 0, 0, 0, 0, 260, 260, 1, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 260, 263, 0, 260, 0, 0, 0, 0, 0, 0, 0, 260, 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, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 263, 263, 263, 263, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 263, 0, 263, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 1664, 0, 0, 613, 43, 44, 45, 46, 47, 48, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1690, 0, 0, 0, 0, 0, 0, 1690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1002, 0, 551, 0, 263, 263, 0, 1592, 1594, 0, 1597, 263, 263, 0, 0, 263, 263, 0, 1137, 0, 0, 1160, 0, 0, 0, 0, 1616, 0, 260, 260, 0, 0, 0, 1155, 1160, 0, 0, 0, 0, 0, 302, 551, 1, 303, 106, 304, 0, 305, 306, 0, 572, 1155, 1160, 0, 0, 0, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1002, 0, 1002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1650, 0, 1654, 0, 1115, 1116, 1117, 629, 1118, 1119, 1120, 1121, 634, 635, 1122, 86, 0, 307, 0, 260, 260, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 1155, 0, 311, 312, 1123, 0, 639, 640, 641, 0, 0, 0, 0, 0, 0, 0, 313, 551, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, 324, 0, 325, 642, 0, 1155, 1160, 254, 735, 643, 326, 327, 0, 328, 329, 330, 331, 1002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1155, 263, 1160, 0, 575, 0, 162, 171, 194, 0, 0, 0, 0, 1155, 1160, 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, 122, 122, 0, 0, 0, 0, 0, 0, 551, 1155, 0, 1160, 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 524, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 575, 1002, 0, 122, 0, 0, 0, 0, 1002, 0, 0, 0, 1002, 2, 263, 263, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 263, 0, 0, 263, 0, 0, 0, 162, 569, 0, 0, 263, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 125, 125, 0, 0, 0, 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 171, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 171, 0, 0, 0, 0, 322, 323, 0, 0, 324, 569, 325, 125, 125, 2056, 2057, 1014, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 1818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 1155, 1160, 1155, 1160, 0, 1155, 1837, 0, 0, 0, 0, 1592, 1844, 0, 1616, 1854, 1160, 1, 303, 106, 304, 0, 305, 306, 1155, 1160, 1616, 0, 0, 0, 263, 263, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 122, 1002, 0, 0, 575, 0, 122, 0, 0, 0, 1155, 551, 1160, 0, 1155, 0, 1160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 569, 125, 0, 0, 0, 1002, 0, 1002, 311, 312, 0, 687, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 313, 0, 1002, 0, 314, 315, 316, 317, 318, 319, 320, 321, 569, 0, 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, 324, 1158, 325, 1855, 162, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1002, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 0, 122, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 577, 0, 0, 0, 524, 0, 569, 0, 122, 0, 0, 0, 0, 1155, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1155, 0, 0, 0, 125, 1160, 0, 1155, 1837, 0, 1160, 1616, 0, 1999, 0, 2001, 0, 0, 0, 0, 0, 1160, 2005, 551, 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1923, 1927, 733, 1933, 1937, 0, 0, 0, 1941, 1945, 1949, 1953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1178, 0, 0, 125, 125, 125, 0, 125, 122, 0, 687, 0, 0, 1002, 569, 0, 0, 0, 0, 0, 0, 125, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2061, 2064, 0, 1155, 1160, 1155, 0, 0, 0, 1155, 1837, 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, 0, 0, 0, 0, 0, 0, 1923, 1927, 1933, 1937, 1941, 1945, 1949, 1953, 0, 0, 0, 0, 0, 1155, 1160, 0, 1155, 1837, 0, 0, 0, 2108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, 481, 0, 0, 0, 687, 0, 0, 0, 0, 0, 687, 0, 481, 0, 0, 259, 481, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 569, 0, 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, 569, 258, 258, 0, 0, 0, 0, 1002, 0, 0, 0, 551, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 571, 0, 259, 122, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 259, 259, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 609, 0, 0, 258, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 577, 259, 259, 259, 0, 0, 0, 577, 0, 0, 0, 0, 125, 0, 0, 122, 122, 0, 0, 0, 0, 0, 259, 0, 0, 122, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 259, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 122, 0, 0, 0, 0, 0, 962, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 125, 125, 0, 264, 571, 0, 0, 0, 0, 0, 577, 0, 577, 0, 0, 264, 0, 0, 0, 264, 0, 0, 0, 258, 0, 0, 0, 0, 1, 0, 258, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 264, 264, 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, 259, 0, 0, 27, 0, 424, 0, 259, 0, 0, 259, 28, 29, 0, 0, 425, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 264, 0, 0, 264, 264, 264, 687, 0, 687, 43, 44, 45, 46, 47, 48, 206, 207, 0, 51, 0, 0, 947, 0, 437, 264, 0, 0, 0, 0, 0, 948, 258, 258, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 1209, 1219, 0, 0, 1209, 1219, 0, 0, 0, 122, 0, 259, 259, 259, 259, 0, 122, 0, 0, 0, 0, 0, 0, 122, 0, 258, 0, 0, 0, 0, 0, 0, 258, 0, 0, 258, 0, 0, 0, 259, 259, 259, 0, 0, 122, 0, 569, 0, 0, 122, 0, 0, 122, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 259, 0, 0, 259, 259, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 122, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 569, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 1424, 571, 0, 0, 0, 0, 0, 0, 571, 0, 577, 1424, 0, 0, 0, 571, 0, 577, 0, 0, 0, 264, 0, 0, 125, 0, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 577, 0, 0, 577, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 571, 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, 258, 258, 258, 0, 0, 0, 0, 125, 609, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 0, 122, 0, 0, 0, 0, 0, 0, 264, 264, 264, 259, 259, 259, 0, 0, 0, 0, 0, 259, 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, 258, 122, 0, 258, 0, 264, 258, 0, 0, 0, 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, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 258, 0, 0, 0, 259, 0, 0, 259, 0, 302, 259, 1, 303, 106, 304, 0, 305, 306, 0, 0, 258, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 609, 0, 0, 577, 577, 0, 577, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1686, 0, 0, 259, 259, 259, 259, 1686, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 264, 0, 308, 309, 310, 0, 258, 258, 259, 0, 259, 264, 0, 258, 258, 311, 312, 258, 258, 0, 0, 0, 125, 0, 0, 0, 0, 259, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, 0, 0, 259, 0, 322, 323, 0, 0, 324, 259, 325, 0, 0, 0, 0, 742, 0, 0, 326, 327, 743, 328, 329, 330, 331, 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, 0, 0, 0, 264, 264, 264, 0, 0, 0, 754, 0, 264, 0, 0, 0, 755, 756, 757, -344, -344, -344, -344, -344, -344, -344, -344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -344, 0, 0, 0, 0, 0, 0, 0, -344, -344, 0, 0, 0, -344, 0, 0, 0, 0, 0, -344, -344, -344, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 571, 0, -344, 0, 0, 264, 0, 0, 264, 0, 0, 264, -344, -344, -344, -344, -344, -344, -344, -344, 0, -344, -344, -344, 758, 0, 0, -344, 1528, -344, -344, 0, 759, 0, 0, 760, 0, -344, -344, -344, 0, -344, -344, -344, -344, -344, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 258, 258, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 264, 258, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 264, 264, 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, 259, 259, 0, 0, 0, 0, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 0, 0, 0, 0, 0, 0, -457, 259, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, 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, -457, 0, 0, 0, 0, 0, -457, -457, -457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -457, -457, 0, 0, 0, 258, 258, 0, 0, 0, 0, 0, 0, 0, -457, 0, 0, 0, -457, -457, -457, -457, -457, -457, -457, -457, 0, 571, 0, 0, 0, 0, 0, 0, -457, -457, -457, -457, -457, -457, -457, 0, -457, -457, 0, 0, -457, 0, -457, -457, 0, -457, -457, -457, -457, -457, -457, -457, -457, -457, 199, 0, 1, 0, 0, 0, 0, 0, 0, 0, 259, 259, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 564, 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, 259, 259, 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, 51, 0, 0, 565, 1046, 0, 0, 0, 0, 0, 0, 0, 264, 264, 566, 0, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, -344, 754, 264, -344, -344, -344, -344, 755, 756, 757, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, 0, -344, -344, 0, -344, 0, 0, -344, -344, -344, -344, -344, 0, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, -344, 0, -344, -344, -344, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 758, -344, -344, -344, -344, -344, -344, -344, 759, -344, -344, 760, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 264, -449, 1151, 0, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, 0, -449, -449, 0, -449, 0, 0, -449, -449, -449, -449, -449, 264, 264, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, -449, 0, -449, -449, -449, 0, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -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, -304, -304, 324, 1238, 325, -304, -304, 1154, -304, -304, -304, -304, 326, 327, -304, 328, 329, 330, 331, -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, -305, -305, 324, 1158, 325, -305, -305, 1159, -305, -305, -305, -305, 326, 327, -305, 328, 329, 330, 331, -305, -305, -305, -305, -305, -564, 302, 0, 1, 303, 106, 304, -564, 305, 306, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, 2, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, 0, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, 0, 0, 307, -564, 0, -564, 0, 0, 308, 309, 310, -564, -564, 0, 0, -564, -564, -564, -564, -564, -564, 311, 312, -564, -564, -564, -564, -564, -564, -564, -564, -564, 0, -564, 0, 313, -564, -564, 0, 314, 315, 316, 317, 318, 319, 320, 321, -564, -564, -564, -564, -564, -564, -564, -564, 322, 323, -564, -564, 324, -564, 325, -564, -564, -564, -564, 742, -564, 1319, 326, 327, -564, 328, 329, 330, 331, -564, -564, -564, -564, -564, -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, -565, -565, 324, -565, 325, -565, -565, -565, -565, 742, -565, 1385, 326, 327, -565, 328, 329, 330, 331, -565, -565, -565, -565, -565, -575, 302, 0, 1, 303, 106, 304, -575, 305, 306, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, 2, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, 0, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, -575, 0, 0, 307, -575, 0, -575, 0, 0, 308, 309, 310, -575, -575, 0, 0, -575, -575, -575, -575, -575, -575, 311, 312, -575, -575, -575, -575, -575, -575, -575, -575, -575, 0, -575, 0, 313, -575, -575, 0, 314, 315, 316, 317, 318, 319, 320, 321, -575, -575, -575, -575, -575, -575, -575, -575, 322, 323, -575, -575, 324, -575, 325, -575, -575, 1154, -575, -575, -575, -575, 326, 327, -575, 328, 329, 330, 331, -575, -575, -575, -575, -575, -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, -577, -577, 324, 1158, 325, -577, -577, 1159, -577, -577, -577, -577, 326, 327, -577, 328, 329, 330, 331, -577, -577, -577, -577, -577, -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, -576, -576, 324, -576, 325, -576, -576, 1154, -576, -576, -576, -576, 326, 327, -576, 328, 329, 330, 331, -576, -576, -576, -576, -576, -338, 1880, 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, -342, 1916, 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, -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, -332, -332, 324, -332, 325, -332, -332, -332, -332, 742, -332, -332, 326, 327, -332, 328, 329, 330, 331, -332, -332, -332, -332, -332, -542, 302, 0, 1, 303, 106, 304, -542, 305, 306, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, 2, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, 0, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, -542, 0, 0, 307, -542, 0, -542, 0, 0, 308, 309, 310, -542, -542, 0, 0, -542, -542, -542, -542, -542, -542, 311, 312, -542, -542, -542, -542, -542, -542, -542, -542, -542, 0, -542, 0, 313, -542, -542, 0, 314, 315, 316, 317, 318, 319, 320, 321, -542, -542, -542, -542, -542, -542, -542, -542, 322, 323, -542, -542, 324, -542, 325, -542, -542, -542, -542, 742, -542, -542, 326, 327, -542, 328, 329, 330, 331, -542, -542, -542, -542, -542, -550, 302, 0, 1, 303, 106, 304, -550, 305, 306, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, 2, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, 0, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, -550, 0, 0, 307, -550, 0, -550, 0, 0, 308, 309, 310, -550, -550, 0, 0, -550, -550, -550, -550, -550, -550, 311, 312, -550, -550, -550, -550, -550, -550, -550, -550, -550, 0, -550, 0, 313, -550, -550, 0, 314, 315, 316, 317, 318, 319, 320, 321, -550, -550, -550, -550, -550, -550, -550, -550, 322, 323, -550, -550, 324, -550, 325, -550, -550, -550, -550, 742, -550, -550, 326, 327, -550, 328, 329, 330, 331, -550, -550, -550, -550, -550, -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, -543, -543, 324, -543, 325, -543, -543, -543, -543, 742, -543, -543, 326, 327, -543, 328, 329, 330, 331, -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, -551, -551, 324, -551, 325, -551, -551, -551, -551, 742, -551, -551, 326, 327, -551, 328, 329, 330, 331, -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, -544, -544, 324, -544, 325, -544, -544, -544, -544, 742, -544, -544, 326, 327, -544, 328, 329, 330, 331, -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, -552, -552, 324, -552, 325, -552, -552, -552, -552, 742, -552, -552, 326, 327, -552, 328, 329, 330, 331, -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, -545, -545, 324, -545, 325, -545, -545, -545, -545, 742, -545, -545, 326, 327, -545, 328, 329, 330, 331, -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, -553, -553, 324, -553, 325, -553, -553, -553, -553, 742, -553, -553, 326, 327, -553, 328, 329, 330, 331, -553, -553, -553, -553, -553, -340, 2020, 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, -339, 2021, 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, -344, 754, 0, -344, -344, -344, -344, 755, 756, 757, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, 0, -344, -344, 0, -344, 0, 0, -344, -344, -344, -344, -344, 0, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 0, -344, 0, -344, -344, -344, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 758, -344, -344, -344, -344, -344, -344, -344, 1149, -344, -344, 760, 0, -344, -344, -344, -344, -344, -344, -344, -344, -344, -449, 1151, 0, -449, -449, -449, -449, 0, -449, -449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, 0, -449, -449, 0, -449, 0, 0, -449, -449, -449, -449, -449, 0, 0, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, -449, 0, -449, -449, -449, 0, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, 0, 0, -449, -449, -449, -449, 0, -449, -449, -449, 1152, -449, -449, -449, 0, -449, -449, -449, -449, -1089, 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, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, 0, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, 0, 0, 307, -1089, 0, -1089, 0, 0, 308, 309, 310, -1089, -1089, 0, 0, -1089, -1089, -1089, -1089, -1089, -1089, 311, 312, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, 0, -1089, 0, 313, -1089, -1089, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1089, -1089, -1089, -1089, -1089, -1089, -1089, -1089, 322, 323, 0, 0, 324, 1158, 325, -1089, 0, 1159, -1089, -1089, 0, -1089, 326, 327, 0, 328, 329, 330, 331, -1233, 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, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, 0, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, 0, 0, 307, -1233, 0, -1233, 0, 0, 308, 309, 310, -1233, -1233, 0, 0, -1233, -1233, -1233, -1233, -1233, -1233, 311, 312, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, 0, -1233, 0, 313, -1233, -1233, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1233, -1233, -1233, -1233, -1233, -1233, -1233, -1233, 322, 323, 0, 0, 324, 1158, 325, 1623, 0, 1159, -1233, -1233, 0, -1233, 326, 327, 0, 328, 329, 330, 331, -1191, 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, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, 0, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, 0, 0, 307, -1191, 0, -1191, 0, 0, 308, 309, 310, -1191, -1191, 0, 0, -1191, -1191, -1191, -1191, -1191, -1191, 311, 312, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, 0, -1191, 0, 313, -1191, -1191, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1191, -1191, -1191, -1191, -1191, -1191, -1191, -1191, 322, 323, 0, 0, 324, 1831, 325, -1191, 0, 1159, -1191, -1191, 0, -1191, 326, 327, 0, 328, 329, 330, 331, -1222, 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, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, -1222, 0, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, -1222, 0, -1222, 0, 0, 308, 309, 310, -1222, -1222, 0, 0, -1222, 32, -1222, -1222, -1222, -1222, 311, 312, 1123, -1222, 639, 640, 641, -1222, -1222, -1222, -1222, 0, -1222, 0, 313, -1222, -1222, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1222, -1222, -1222, -1222, -1222, -1222, 322, 323, 0, 0, 324, 1158, 325, 642, 0, 1159, -1222, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -576, 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, -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, 0, 0, 324, -576, 325, 1153, 0, 1154, -576, -576, 0, -576, 326, 327, 0, 328, 329, 330, 331, -1214, 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, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, 0, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, 0, 0, 307, -1214, 0, -1214, 0, 0, 308, 309, 310, -1214, -1214, 0, 0, -1214, -1214, -1214, -1214, -1214, -1214, 311, 312, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, 0, -1214, 0, 313, -1214, -1214, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1214, -1214, -1214, -1214, -1214, -1214, -1214, -1214, 322, 323, 0, 0, 324, 2066, 325, -1214, 0, 1154, -1214, -1214, 0, -1214, 326, 327, 0, 328, 329, 330, 331, -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, 0, 0, 324, 1158, 325, 2067, 0, 1159, -1215, -1215, 0, -1215, 326, 327, 0, 328, 329, 330, 331, -1209, 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, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, -1209, 0, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, -1209, 0, -1209, 0, 0, 308, 309, 310, -1209, -1209, 0, 0, -1209, 32, -1209, -1209, -1209, -1209, 311, 312, 1123, -1209, 639, 640, 641, -1209, -1209, -1209, -1209, 0, -1209, 0, 313, -1209, -1209, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1209, -1209, -1209, -1209, -1209, -1209, 322, 323, 0, 0, 324, 1158, 325, 642, 0, 1159, -1209, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1157, 617, 0, -1157, -1157, -1157, -1157, 0, -1157, -1157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, 0, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, 0, 0, -1157, -1157, 0, -1157, 0, 0, -1157, -1157, -1157, -1157, -1157, 0, 0, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, 0, -1157, 0, -1157, -1157, -1157, 0, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, -1157, 0, 0, -1157, 0, -1157, 618, 0, -1157, -1157, -1157, 0, -1157, -1157, -1157, 0, -1157, -1157, -1157, -1157, -1180, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1180, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1180, 32, -1180, -1180, -1180, -1180, 311, 637, 638, 248, 639, 640, 641, -1180, -1180, -1180, -1180, 0, -1180, 0, 313, -1180, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 0, 0, 324, 0, 325, 642, 0, -1180, -1180, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1158, 617, 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, 0, 0, -1158, 0, -1158, 618, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, -1158, -1219, 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, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, 0, 1115, 1116, 1117, 629, 1118, 1119, 1120, 1121, 634, 635, 1122, 0, 0, 307, -1219, 0, -1219, 0, 0, 308, 309, 310, -1219, -1219, 0, 0, -1219, 32, -1219, -1219, -1219, -1219, 311, 312, 1123, -1219, 639, 640, 641, -1219, -1219, -1219, -1219, 0, -1219, 0, 313, -1219, -1219, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1219, -1219, -1219, -1219, -1219, -1219, 322, 323, 0, 0, 324, 0, 325, 642, 0, -1219, -1219, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1235, 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, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, 0, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, 0, 0, 307, -1235, 0, -1235, 0, 0, 308, 309, 310, -1235, -1235, 0, 0, -1235, -1235, -1235, -1235, -1235, -1235, 311, 312, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, 0, -1235, 0, 313, -1235, -1235, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1235, -1235, -1235, -1235, -1235, -1235, -1235, -1235, 322, 323, 0, 0, 324, 0, 325, 1134, 0, -1235, -1235, 742, 0, -1235, 326, 327, 0, 328, 329, 330, 331, -1170, 1161, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1170, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1170, 32, -1170, -1170, -1170, -1170, 311, 637, 638, 248, 639, 640, 641, -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, 0, 0, 324, 0, 325, 642, 0, -1170, -1170, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1174, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1174, 32, -1174, -1174, -1174, -1174, 311, 637, 638, 248, 639, 640, 641, -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, 0, 0, 324, 0, 325, 642, 0, -1174, -1174, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1169, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1169, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1169, 32, -1169, -1169, -1169, -1169, 311, 637, 638, 248, 639, 640, 641, -1169, -1169, -1169, -1169, 0, -1169, 0, 313, -1169, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 0, 0, 324, 0, 325, 642, 0, -1169, -1169, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1173, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1173, 32, -1173, -1173, -1173, -1173, 311, 637, 638, 248, 639, 640, 641, -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, 0, 0, 324, 0, 325, 642, 0, -1173, -1173, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1076, 1174, 0, -1076, -1076, -1076, -1076, 0, -1076, -1076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, 0, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, 0, 0, -1076, -1076, 0, -1076, 0, 0, -1076, -1076, -1076, -1076, -1076, 0, 0, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, 0, -1076, 0, -1076, -1076, -1076, 0, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, -1076, 0, 0, -1076, 0, -1076, -1076, 0, -1076, -1076, -1076, 0, -1076, -1076, -1076, 0, -1076, -1076, -1076, -1076, -1078, 1175, 0, -1078, -1078, -1078, -1078, 0, -1078, -1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, 0, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, 0, 0, -1078, -1078, 0, -1078, 0, 0, -1078, -1078, -1078, -1078, -1078, 0, 0, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, 0, -1078, 0, -1078, -1078, -1078, 0, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, -1078, 0, 0, -1078, 0, -1078, -1078, 0, -1078, -1078, -1078, 0, -1078, -1078, -1078, 0, -1078, -1078, -1078, -1078, -1124, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1124, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1124, 32, -1124, -1124, -1124, -1124, 311, 637, 638, 248, 639, 640, 641, -1124, -1124, -1124, -1124, 0, -1124, 0, 313, -1124, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 0, 0, 324, 0, 325, 642, 0, -1124, -1124, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1126, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1126, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1126, 32, -1126, -1126, -1126, -1126, 311, 637, 638, 248, 639, 640, 641, -1126, -1126, -1126, -1126, 0, -1126, 0, 313, -1126, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 0, 0, 324, 0, 325, 642, 0, -1126, -1126, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1171, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1171, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1171, 32, -1171, -1171, -1171, -1171, 311, 637, 638, 248, 639, 640, 641, -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, 0, 0, 324, 0, 325, 642, 0, -1171, -1171, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1175, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1175, 32, -1175, -1175, -1175, -1175, 311, 637, 638, 248, 639, 640, 641, -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, 0, 0, 324, 0, 325, 642, 0, -1175, -1175, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1172, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1172, 32, -1172, -1172, -1172, -1172, 311, 637, 638, 248, 639, 640, 641, -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, 0, 0, 324, 0, 325, 642, 0, -1172, -1172, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, -1176, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1176, 32, -1176, -1176, -1176, -1176, 311, 637, 638, 248, 639, 640, 641, -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, 0, 0, 324, 0, 325, 642, 0, -1176, -1176, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, -1167, 617, 0, -1167, -1167, -1167, -1167, 0, -1167, -1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, 0, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, 0, 0, -1167, -1167, 0, -1167, 0, 0, -1167, -1167, -1167, -1167, -1167, 0, 0, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, 0, -1167, 0, -1167, -1167, -1167, 0, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, -1167, 0, 0, -1167, 0, -1167, 618, 0, -1167, -1167, -1167, 0, -1167, -1167, -1167, 0, -1167, -1167, -1167, -1167, -1168, 617, 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, 0, 0, -1168, 0, -1168, 618, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, -1168, -1003, 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, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 0, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 0, 0, 307, -1003, 0, -1003, 0, 0, 308, 309, 310, -1003, -1003, 0, 0, -1003, -1003, -1003, -1003, -1003, -1003, 311, 312, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 0, -1003, 0, 313, -1003, -1003, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 322, 323, 0, 0, 324, 0, 325, -1003, 0, 1800, 1801, 1014, 0, -1003, 326, 327, 0, 328, 329, 330, 331, -1130, 617, 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, 0, 0, -1130, 0, -1130, 618, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, -1130, -1131, 617, 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, 0, 0, -1131, 0, -1131, 618, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1127, 617, 0, -1127, -1127, -1127, -1127, 0, -1127, -1127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, 0, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, 0, 0, -1127, -1127, 0, -1127, 0, 0, -1127, -1127, -1127, -1127, -1127, 0, 0, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, 0, -1127, 0, -1127, -1127, -1127, 0, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, -1127, 0, 0, -1127, 0, -1127, 618, 0, -1127, -1127, -1127, 0, -1127, -1127, -1127, 0, -1127, -1127, -1127, -1127, -1005, 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, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, 0, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, 0, 0, 307, -1005, 0, -1005, 0, 0, 308, 309, 310, -1005, -1005, 0, 0, -1005, -1005, -1005, -1005, -1005, -1005, 311, 312, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, 0, -1005, 0, 313, -1005, -1005, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1005, -1005, -1005, -1005, -1005, -1005, -1005, -1005, 322, 323, 0, 0, 324, 0, 325, -1005, 0, -1005, 1980, 1014, 0, -1005, 326, 327, 0, 328, 329, 330, 331, -999, 1983, 0, -999, -999, -999, -999, 0, -999, -999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 0, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 0, 0, -999, -999, 0, -999, 0, 0, -999, -999, -999, -999, -999, 0, 0, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 0, -999, 0, -999, -999, -999, 0, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 0, 0, -999, 0, -999, -999, 0, -999, -999, -999, 0, -999, -999, -999, 0, -999, -999, -999, -999, -1128, 617, 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, 0, 0, -1128, 0, -1128, 618, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, -1128, -1129, 617, 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, 0, 0, -1129, 0, -1129, 618, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, -1129, -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, 0, 0, 324, 0, 325, -1216, 0, -1216, -1216, -1216, 0, -1216, 326, 327, 0, 328, 329, 330, 331, -1000, 2058, 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, 0, 0, -1000, 0, -1000, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, -1000, -906, 583, 0, -906, -906, -906, -906, 0, -906, -906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, 0, 0, -906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -906, -906, 0, -906, 0, 0, -906, -906, -906, -906, -906, 0, 0, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, 0, 0, -906, -906, -906, -906, 0, -906, 0, -906, -906, -906, 0, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, -906, 0, 0, -906, 846, -906, -906, 0, 585, -906, -906, 0, 0, -906, -906, 0, -906, -906, -906, -906, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 637, 638, 248, 639, 640, 641, 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, 0, 0, 324, 0, 325, 642, 0, 0, 0, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, 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, 1115, 1116, 1117, 629, 1118, 1119, 1120, 1121, 634, 635, 1122, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 637, 638, 248, 639, 640, 641, 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, 0, 0, 324, 0, 325, 642, 0, 0, 0, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 984, 0, 985, 986, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 1247, 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, 637, 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, 0, 0, 324, 0, 325, 984, 0, 985, -110, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 1254, 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, 637, 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, 0, 0, 324, 0, 325, 984, 0, 985, -98, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 1258, 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, 637, 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, 0, 0, 324, 0, 325, 984, 0, 985, -102, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 1512, 0, 985, -65, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 1521, 0, 985, 1522, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 1579, 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, 637, 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, 0, 0, 324, 0, 325, 984, 0, 985, -81, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 1521, 0, 985, -107, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 1521, 0, 985, -97, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 1521, 0, 985, -101, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 1761, 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, 637, 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, 0, 0, 324, 0, 325, 984, 0, 985, -88, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 1521, 0, 985, -78, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 637, 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, 0, 0, 324, 0, 325, 1521, 0, 985, -85, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 406, 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, 0, 0, 324, 302, 325, 1, 303, 106, 304, 0, 305, 306, 326, 327, 0, 328, 329, 330, 331, 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, 864, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 406, 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, 0, 0, 324, 302, 325, 1, 303, 106, 304, 0, 305, 306, 326, 327, 0, 328, 329, 330, 331, 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, 406, 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, 0, 0, 324, 731, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 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, 1194, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 406, 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, 0, 0, 324, 731, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 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, 406, 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, 0, 0, 324, 302, 325, 1, 303, 106, 304, 254, 305, 306, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 564, 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, 406, 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, 887, 0, 0, 888, 731, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 1115, 1116, 1117, 629, 1118, 1119, 1120, 1121, 634, 635, 1122, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1123, 0, 639, 640, 641, 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, 0, 0, 324, -452, 325, 642, 0, -452, 0, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, 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, 1115, 1116, 1117, 629, 1118, 1119, 1120, 1121, 634, 635, 1122, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1123, 0, 639, 640, 641, 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, 0, 0, 324, 1158, 325, 642, 0, 1159, 0, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, 1834, 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, 1115, 1116, 1117, 629, 1118, 1119, 1120, 1121, 634, 635, 1122, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1123, 0, 639, 640, 641, 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, 0, 0, 324, 0, 325, 642, 0, 0, 0, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, 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, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1123, 0, 639, 640, 641, 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, 0, 0, 324, 0, 325, 642, 0, 0, 0, 254, 0, 643, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1158, 325, 0, 0, 1725, 0, 0, 0, 1872, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1158, 325, 0, 0, 1725, 0, 0, 0, 1876, 326, 327, 0, 328, 329, 330, 331, 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, 2003, 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, 0, 0, 324, 1158, 325, 1855, 0, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1158, 325, 1855, 0, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 2068, 325, 2069, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1158, 325, 2067, 0, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 307, 305, 306, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, 324, 307, 325, 1153, 0, 1154, 0, 308, 309, 310, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1263, 325, 0, 0, 0, 0, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 1330, 325, 0, 308, 309, 310, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 1134, 0, 0, 0, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 1612, 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, 0, 0, 324, 1158, 325, 0, 0, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 1613, 325, 1614, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 1622, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1692, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 307, 305, 306, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, 324, 307, 325, 0, 0, 1154, 0, 308, 309, 310, 326, 327, 1719, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 1722, 0, 0, 0, 1723, 326, 327, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 307, 305, 306, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, 324, 307, 325, 0, 0, 1154, 0, 308, 309, 310, 326, 327, 1729, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 1722, 0, 0, 0, 1731, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1830, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1832, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1833, 325, 0, 0, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1836, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 1613, 325, 1614, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 311, 312, 1856, 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, 0, 0, 324, 0, 325, 1853, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 1857, 325, 1614, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 1722, 0, 0, 0, 1870, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 1722, 0, 0, 0, 1874, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1988, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1831, 325, 0, 0, 1159, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 1995, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 1857, 325, 1614, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 2072, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 0, 2101, 1014, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 2104, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 2105, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 2133, 325, 0, 0, 1154, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 0, 0, 0, 326, 327, 548, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 0, 0, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 0, 0, 0, 326, 327, 838, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 842, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 1014, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1055, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 0, 0, 1107, 326, 327, 0, 328, 329, 330, 331, 311, 312, 1457, 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, 0, 0, 324, 731, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 1560, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 1596, 325, 0, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 0, 0, 0, 0, 1599, 326, 327, 0, 328, 329, 330, 331, 0, 0, 1790, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 1789, 0, 0, 326, 327, 0, 328, 329, 330, 331, 311, 312, 1793, 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, 0, 0, 324, 0, 325, 0, 0, 0, 0, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 1797, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 0, 325, 0, 0, 0, 0, 742, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 1843, 325, 0, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 1903, 0, 325, 0, 0, 0, 0, 1789, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 2004, 325, 0, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 324, 2063, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 324, 0, 325, 0, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, 0, 0, 702, 0, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 322, 323, 307, 0, 705, 0, 325, 0, 308, 309, 310, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, 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, -894, 583, 0, -894, -894, -894, 0, 322, 323, 0, 0, 728, 0, 325, 0, 0, 0, 0, 0, 0, 0, 326, 327, 0, 328, 329, 330, 331, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, 0, 0, -894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -894, -894, 0, -894, 0, 0, -894, -894, 0, -894, -894, 0, 0, -894, -894, -894, -894, -894, -894, 0, -894, -894, -894, -894, 0, 0, -894, -894, -894, -894, 0, -894, 0, -894, -894, -894, 0, -894, -894, -894, -894, -894, -894, -894, 0, -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, 0, 0, -894, 584, -894, -894, 0, 585, -894, 0, 0, 0, -894, -894, -189, 905, 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, -189, 0, 0, -189, 0, -189, 906, 0, 907, -189, 0, 0, 0, -189, -189, -253, 919, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, -251, 922, -253, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, -254, 919, -251, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, -252, 922, -254, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 423, -252, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 489, 439, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 511, 490, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 516, 512, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 520, 517, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, 521, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -749, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -750, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -746, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -747, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -752, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 1037, -753, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 1041, 1038, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 302, 1042, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -648, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -729, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -730, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -732, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 1542, -733, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, 1543, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -643, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -644, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -735, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 302, -736, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 302, -647, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 302, -645, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 302, -623, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -622, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -636, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 302, -637, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -646, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -632, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -633, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -620, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -621, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -615, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 919, -616, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 922, -634, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 0, 423, -635, 1, 303, 106, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 0, 436, 0, 437, 438, 489, 0, 1, 303, 106, 0, 326, 327, 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, 424, 0, 0, 308, 309, 0, 28, 29, 0, 0, 425, 32, 426, 427, 35, 36, 0, 406, 38, 39, 428, 0, 0, 429, 430, 431, 432, 0, 433, 0, 434, 435, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 51, 0, 199, 436, 1, 437, 438, 0, 0, 0, 0, 0, 0, 326, 327, 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, 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, 1, 43, 44, 45, 46, 47, 48, 206, 207, 0, 51, 0, 0, 860, 1046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 2, 200, 201, 202, 203, 204, 8, 9, 10, 564, 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, 51, 0, 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, 567, 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, 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, 1, 43, 44, 45, 46, 47, 48, 206, 207, 0, 51, 0, 0, 860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 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, 1, 43, 44, 250, 251, 252, 253, 206, 207, 0, 51, 0, 0, 860, 0, 0, 0, 0, 0, 0, 1422, 0, 0, 0, 566, 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, 1, 43, 44, 250, 251, 252, 253, 206, 207, 0, 51, 0, 0, 860, 0, 0, 0, 0, 0, 0, 1439, 0, 0, 0, 566, 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, 1, 43, 44, 250, 251, 252, 253, 206, 207, 0, 51, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, 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, 1, 43, 44, 250, 251, 252, 253, 206, 207, 0, 51, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1229, 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, 1, 43, 44, 250, 251, 252, 253, 206, 207, 0, 51, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1684, 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, 1, 43, 44, 250, 251, 252, 253, 206, 207, 0, 51, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1699, 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, 1, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 275, 2, 200, 201, 202, 203, 204, 8, 9, 10, 564, 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, 1, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 51, 0, 0, 927, 0, 0, 0, 0, 0, 0, 0, 0, 928, 2, 200, 201, 202, 203, 204, 8, 9, 10, 564, 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, 619, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 51, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 928, 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, 1507, 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, 254, -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, 1710, 0, 0, 0, 0, 0, 0, 0, -66, -66, -66, -66, -66, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 1508, 0, 1509, -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, 1714, 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, -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, 1715, 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, -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, 1821, 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, -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, 1965, 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, -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, -1287, 292, 0, 1, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 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, 51, 0, 0, 52, 0, 0, 53, 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, 1, 0, 0, 830, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1398, 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, 1, 0, 0, 830, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1741, 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, 165, 0, 1, 0, 0, 830, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1742, 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, 165, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 0, 0, 52, 0, 0, 169, 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, 604, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 0, 0, 52, 0, 0, 169, 2, 200, 201, 202, 203, 204, 234, 235, 236, 605, 606, 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, -914, 249, -914, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 51, 0, 0, 52, 0, 0, 607, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, -914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -914, 0, 0, 0, 0, 0, 0, 0, -914, -914, 0, 0, 0, -914, 0, 0, 0, 0, 0, -914, -914, -914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -914, 1, 0, 0, 0, 0, 0, 0, 0, 0, -914, -914, -914, -914, -914, -914, -914, -914, 0, -914, 0, 0, -914, 0, 0, -914, 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, -1288, 284, 42, 1, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 0, 0, 52, 0, 0, 53, 0, 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, 199, 0, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 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, 199, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 51, 0, 0, 1206, 1671, 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, 199, 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, 208, 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, 940, 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, 389, 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, 1465, 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, 208, 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, 199, 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, 389, 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, 199, 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, 1557, 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, 165, 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, 1893, 2, 3, 4, 166, 6, 7, 8, 9, 10, 564, 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, 165, 0, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 0, 0, 52, 2, 3, 4, 166, 6, 7, 8, 9, 10, 564, 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, 884, 0, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 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, 1, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 885, 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, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 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, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 564, 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, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 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, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 720, 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, 1, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 1444, 2, 200, 201, 202, 203, 204, 234, 235, 236, 1529, 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, 1069, 0, 1, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 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, 1070, 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, 1075, 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, 1076, 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, 1081, 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, 1082, 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, 869, 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, 1030, 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, 1087, 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, 503, 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, 830, 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, 478, 479, 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, 51, 0, 0, 860, 1668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 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, 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, 1518, 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, 641, 92, 719, 86, 86, 535, 926, 156, 926, 742, 859, 1216, 83, 470, 309, 859, 749, 132, 344, 752, 315, 580, 153, 344, 859, 100, 83, 1, 93, 30, 31, 996, 997, 998, 327, 288, 1099, 93, 128, 471, 41, 83, 742, 555, 826, 128, 128, 100, 30, 749, 721, 52, 752, 1, 1606, 93, 128, 1, 59, 84, 42, 83, 100, 64, 64, 66, 1618, 997, 183, 83, 5, 93, 1, 585, 3, 835, 588, 826, 590, 93, 592, 82, 83, 84, 936, 86, 100, 883, 5, 835, 91, 386, 93, 388, 3, 186, 187, 126, 3, 100, 101, 470, 131, 104, 1014, 996, 474, 998, 77, 2089, 3, 876, 113, 535, 996, 116, 998, 1, 1, 3, 3, 144, 17, 1, 122, 107, 108, 128, 1, 111, 131, 132, 1, 1, 157, 136, 159, 122, 161, 140, 141, 142, 977, 144, 7, 8, 9, 148, 122, 150, 0, 5, 153, 154, 144, 156, 157, 158, 159, 83, 161, 957, 131, 164, 73, 2145, 1, 157, 3, 159, 59, 161, 1, 174, 174, 17, 122, 268, 186, 187, 1, 5, 183, 131, 128, 1, 996, 5, 998, 3, 1, 7, 8, 9, 1, 130, 996, 198, 998, 128, 270, 1, 3, 5, 5, 132, 3, 278, 5, 210, 418, 212, 17, 288, 28, 290, 133, 470, 123, 220, 221, 278, 127, 37, 113, 290, 131, 3, 3, 230, 5, 288, 233, 83, 290, 288, 278, 290, 879, 1004, 265, 1, 3, 93, 128, 128, 288, 125, 143, 1, 100, 101, 290, 122, 123, 128, 183, 1, 127, 183, 128, 52, 270, 1, 265, 1, 288, 130, 290, 270, 1, 566, 421, 274, 1, 270, 290, 278, 132, 394, 1, 289, 1, 1248, 1249, 3, 958, 288, 288, 290, 1255, 1256, 274, 128, 1259, 1260, 1848, 343, 122, 128, 1, 143, 510, 862, 125, 123, 122, 308, 122, 198, 126, 357, 123, 314, 130, 361, 127, 133, 1248, 133, 122, 128, 123, 324, 5, 1255, 123, 120, 128, 1259, 131, 626, 791, 792, 131, 793, 758, 338, 143, 125, 131, 5, 17, 129, 326, 3, 83, 84, 123, 440, 441, 442, 443, 129, 278, 73, 131, 565, 1249, 3, 819, 820, 123, 821, 288, 1256, 127, 1249, 128, 1260, 131, 1104, 1, 125, 1256, 127, 128, 5, 1260, 380, 381, 125, 804, 127, 128, 386, 125, 388, 471, 471, 128, 120, 128, 394, 131, 3, 3, 128, 1, 400, 129, 128, 131, 129, 1104, 131, 125, 128, 127, 1191, 128, 1193, 413, 69, 70, 530, 3, 418, 5, 420, 421, 128, 3, 424, 425, 556, 883, 128, 278, 430, 221, 546, 433, 434, 435, 436, 437, 1, 288, 1249, 290, 28, 1191, 696, 1193, 536, 1256, 28, 539, 1249, 1260, 3, 778, 779, 780, 3, 1256, 778, 779, 780, 1260, 119, 120, 127, 465, 466, 467, 394, 143, 470, 471, 129, 128, 474, 1679, 565, 477, 3, 122, 772, 28, 482, 808, 809, 810, 486, 487, 808, 809, 810, 491, 492, 1051, 565, 123, 123, 3, 386, 127, 388, 957, 933, 503, 1062, 128, 3, 799, 876, 509, 510, 3, 1574, 513, 514, 807, 123, 123, 518, 519, 128, 141, 522, 523, 144, 127, 526, 527, 528, 265, 530, 28, 739, 533, 1205, 827, 1206, 157, 560, 159, 562, 161, 278, 129, 544, 545, 546, 470, 1004, 129, 550, 7, 8, 9, 1224, 555, 556, 1068, 129, 65, 560, 1231, 562, 563, 127, 565, 566, 567, 936, 1417, 570, 560, 123, 562, 1417, 1086, 425, 944, 1429, 946, 580, 119, 129, 1417, 5, 585, 1, 3, 588, 957, 590, 794, 592, 1014, 663, 664, 665, 666, 3, 599, 125, 1, 127, 122, 530, 650, 3, 530, 653, 1528, 533, 1528, 758, 119, 120, 5, 1580, 1581, 1469, 822, 546, 1472, 696, 129, 876, 3, 1535, 1, 1, 719, 3, 631, 129, 633, 928, 0, 1004, 129, 112, 3, 696, 641, 1401, 1402, 696, 5, 436, 1495, 3, 1497, 11, 1580, 1, 860, 580, 696, 1401, 1402, 804, 1502, 867, 1, 3, 663, 664, 665, 666, 3, 875, 663, 664, 665, 666, 967, 130, 126, 3, 133, 566, 886, 1884, 681, 682, 133, 691, 692, 3, 28, 127, 1, 690, 1581, 28, 125, 11, 134, 696, 678, 679, 3, 1581, 1, 702, 119, 120, 957, 127, 122, 123, 3, 710, 599, 127, 129, 127, 120, 121, 717, 718, 719, 720, 721, 722, 123, 198, 74, 75, 127, 728, 1150, 79, 1463, 129, 1154, 28, 125, 1157, 86, 1159, 739, 127, 119, 120, 724, 725, 726, 119, 120, 122, 123, 1421, 129, 1004, 127, 127, 755, 1, 795, 3, 759, 121, 110, 111, 3, 1463, 129, 127, 690, 123, 73, 1064, 860, 1581, 696, 127, 565, 125, 567, 127, 3, 133, 122, 1581, 123, 1693, 823, 122, 127, 28, 860, 526, 527, 528, 7, 8, 9, 123, 79, 1762, 1763, 3, 801, 119, 120, 121, 805, 796, 3, 544, 545, 127, 123, 129, 1484, 3, 127, 5, 965, 966, 909, 910, 1115, 912, 123, 128, 915, 916, 127, 110, 111, 830, 831, 832, 1762, 824, 835, 836, 837, 7, 8, 9, 971, 31, 1050, 933, 465, 466, 696, 129, 131, 131, 933, 933, 327, 12, 13, 3, 1415, 858, 859, 860, 1, 933, 3, 864, 127, 866, 867, 7, 8, 9, 491, 492, 1763, 874, 875, 876, 665, 666, 879, 1789, 122, 1763, 883, 3, 885, 886, 3, 888, 5, 890, 1800, 133, 513, 514, 119, 120, 987, 518, 519, 1751, 1752, 522, 523, 3, 1035, 1036, 127, 122, 7, 8, 9, 386, 1207, 388, 31, 130, 120, 3, 133, 1245, 797, 125, 119, 120, 1245, 120, 927, 128, 929, 126, 125, 3, 933, 5, 1229, 936, 1051, 129, 793, 560, 941, 562, 28, 944, 1788, 946, 947, 970, 825, 90, 128, 37, 876, 1763, 794, 956, 957, 958, 128, 1252, 130, 120, 121, 1763, 965, 966, 821, 968, 122, 970, 971, 119, 120, 1063, 122, 976, 977, 978, 979, 133, 970, 3, 822, 122, 1701, 795, 126, 126, 1547, 119, 130, 1063, 127, 1201, 133, 123, 1204, 1638, 133, 119, 120, 1672, 122, 1004, 796, 1535, 1678, 1464, 123, 139, 140, 1683, 936, 823, 122, 7, 8, 9, 122, 119, 120, 0, 1045, 12, 13, 133, 126, 122, 3, 133, 797, 130, 824, 957, 1035, 1036, 122, 1107, 1039, 1040, 1110, 122, 1043, 1044, 1045, 1963, 1047, 119, 120, 1050, 1051, 119, 74, 75, 529, 1045, 120, 79, 825, 1060, 1429, 1062, 1063, 1064, 86, 129, 122, 1068, 120, 1979, 1071, 139, 140, 1074, 128, 1747, 1077, 129, 1148, 1080, 1004, 126, 1083, 136, 137, 1086, 131, 1088, 110, 111, 65, 566, 1162, 1163, 1164, 1165, 121, 888, 10, 11, 1469, 1102, 127, 1472, 83, 121, 1107, 129, 386, 1110, 388, 127, 1107, 1535, 93, 1110, 1206, 77, 1119, 121, 1121, 100, 101, 598, 1051, 127, 1975, 126, 1977, 1130, 122, 120, 121, 1060, 1206, 1062, 927, 121, 130, 14, 15, 133, 1143, 127, 119, 120, 2056, 1148, 1149, 121, 941, 626, 122, 1148, 121, 127, 947, 1139, 1181, 1, 127, 1162, 1163, 1164, 1165, 136, 137, 1162, 1163, 1164, 1165, 781, 782, 122, 3, 1064, 122, 120, 1473, 1180, 1181, 1182, 555, 1184, 127, 1744, 1903, 2097, 69, 70, 133, 1181, 121, 1194, 129, 1196, 131, 122, 127, 28, 1201, 811, 812, 123, 1205, 1206, 1414, 127, 37, 122, 91, 131, 585, 300, 95, 588, 97, 590, 129, 592, 131, 129, 309, 1224, 6, 1866, 8, 9, 315, 1901, 1231, 122, 74, 75, 121, 136, 3, 79, 1239, 125, 127, 129, 221, 129, 86, 74, 75, 128, 723, 1808, 79, 3, 727, 14, 15, 1, 121, 86, 1182, 1050, 1184, 28, 127, 129, 1246, 131, 121, 742, 110, 111, 1800, 123, 127, 122, 749, 127, 28, 752, 125, 131, 127, 110, 111, 125, 126, 127, 907, 908, 566, 122, 119, 73, 44, 122, 154, 1717, 135, 772, 158, 278, 1722, 141, 84, 1725, 133, 1194, 123, 74, 75, 288, 127, 290, 79, 1050, 131, 142, 783, 784, 1107, 86, 16, 1110, 74, 75, 799, 121, 123, 109, 74, 75, 127, 127, 807, 79, 131, 121, 1, 125, 120, 127, 86, 127, 123, 110, 111, 324, 813, 814, 626, 970, 135, 133, 827, 142, 136, 137, 138, 121, 1566, 1148, 16, 3, 129, 127, 110, 111, 123, 1789, 123, 11, 127, 123, 127, 1162, 1163, 1164, 1165, 122, 1800, 125, 126, 127, 1751, 1752, 10, 11, 123, 1682, 3, 1684, 127, 1392, 1393, 123, 123, 1396, 1397, 127, 127, 141, 1401, 1402, 123, 1698, 1699, 791, 792, 123, 123, 74, 75, 127, 1413, 28, 79, 1397, 1417, 1418, 1039, 1040, 1421, 86, 1043, 1044, 1045, 125, 1427, 127, 1429, 44, 3, 1432, 1547, 819, 820, 1436, 781, 782, 129, 418, 1441, 1442, 1443, 123, 129, 110, 111, 127, 349, 1979, 123, 926, 2093, 928, 127, 28, 123, 122, 123, 74, 75, 129, 127, 1464, 125, 1466, 811, 812, 1469, 123, 1862, 1472, 123, 127, 1475, 127, 127, 119, 120, 121, 88, 89, 90, 1484, 126, 127, 1, 129, 3, 1490, 1491, 470, 967, 125, 1495, 1496, 1497, 1498, 74, 75, 120, 74, 75, 79, 120, 1429, 79, 129, 123, 131, 86, 120, 127, 86, 907, 908, 1586, 1587, 129, 420, 131, 996, 3, 998, 126, 1, 2056, 3, 1598, 127, 1, 510, 3, 129, 110, 111, 129, 110, 111, 1, 300, 3, 134, 1544, 1545, 1469, 1547, 28, 1472, 309, 1, 134, 3, 129, 1555, 315, 129, 1979, 129, 1180, 1181, 133, 125, 44, 127, 1566, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1784, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1586, 1587, 907, 908, 1064, 1680, 1586, 1587, 74, 75, 1596, 134, 1598, 1599, 74, 75, 1602, 127, 1598, 79, 1606, 127, 1902, 1680, 1610, 697, 86, 1613, 129, 79, 131, 1911, 125, 3, 127, 1547, 2013, 129, 2015, 131, 127, 11, 1609, 1555, 1104, 526, 527, 528, 127, 2056, 110, 111, 1638, 783, 784, 1115, 544, 545, 1625, 1645, 110, 111, 129, 544, 545, 928, 126, 1443, 1509, 128, 1511, 1509, 125, 1511, 131, 125, 122, 1753, 122, 129, 122, 1141, 1142, 813, 814, 1963, 125, 1967, 1968, 126, 1466, 125, 1678, 122, 1680, 663, 664, 1683, 663, 664, 122, 2078, 125, 2080, 967, 2082, 100, 101, 1808, 125, 1068, 125, 129, 836, 837, 1701, 1074, 1703, 1704, 125, 120, 1443, 1080, 128, 123, 134, 134, 134, 1086, 120, 134, 134, 696, 134, 129, 133, 129, 125, 702, 128, 127, 120, 128, 2120, 2121, 128, 2123, 1207, 123, 119, 120, 121, 1738, 134, 123, 719, 126, 127, 123, 129, 134, 1747, 2139, 134, 728, 1751, 1752, 123, 1754, 1229, 122, 1779, 123, 1781, 123, 739, 131, 131, 131, 2156, 1766, 1836, 122, 122, 122, 120, 2097, 56, 125, 1249, 1566, 2097, 1252, 1779, 125, 1781, 1256, 1805, 1784, 1807, 1260, 1064, 125, 122, 1779, 120, 1781, 125, 120, 123, 123, 122, 1586, 1587, 122, 120, 133, 123, 127, 1805, 123, 1807, 1808, 123, 1598, 127, 133, 123, 74, 75, 1805, 128, 1807, 79, 123, 3, 131, 131, 3, 131, 86, 131, 1751, 1752, 1830, 1831, 1832, 1833, 123, 123, 1836, 3, 1115, 123, 1840, 1841, 1836, 1843, 125, 1845, 28, 126, 128, 28, 110, 111, 123, 123, 832, 37, 141, 1857, 37, 144, 123, 134, 134, 123, 123, 134, 1866, 131, 56, 1869, 1490, 1491, 157, 131, 159, 122, 161, 123, 122, 1860, 122, 1862, 1808, 131, 123, 123, 131, 787, 788, 867, 790, 131, 74, 75, 131, 74, 75, 79, 876, 123, 79, 1901, 123, 1903, 86, 883, 123, 86, 74, 75, 888, 123, 890, 79, 134, 815, 816, 817, 818, 134, 86, 120, 133, 133, 1544, 1545, 134, 134, 110, 111, 1207, 110, 111, 125, 11, 2004, 129, 2006, 697, 126, 122, 131, 131, 122, 110, 111, 129, 125, 122, 126, 1972, 133, 1229, 126, 125, 123, 122, 129, 858, 859, 123, 123, 123, 941, 74, 75, 123, 3, 123, 79, 1970, 1971, 1972, 1973, 1974, 1975, 86, 1977, 134, 957, 134, 134, 134, 1972, 1984, 1985, 1986, 1987, 134, 1463, 0, 134, 28, 134, 134, 1995, 2086, 2087, 123, 1473, 110, 111, 64, 2072, 2004, 64, 2006, 2007, 125, 123, 2004, 134, 2006, 123, 134, 123, 2016, 2017, 134, 134, 125, 125, 134, 125, 125, 123, 129, 2128, 125, 125, 1504, 41, 2013, 125, 2015, 1509, 125, 1511, 74, 75, 125, 125, 125, 79, 125, 123, 125, 976, 1836, 59, 86, 125, 2052, 2053, 1528, 1498, 66, 858, 958, 2059, 2060, 477, 288, 2063, 913, 2065, 477, 0, 2068, 288, 804, 477, 2072, 83, 110, 111, 86, 968, 2072, 477, 74, 75, 92, 93, 1464, 79, 477, 2087, 92, 2089, 100, 101, 86, 2093, 435, 722, 2077, 2078, 314, 2080, 1789, 2082, 728, 113, 100, 2105, 116, 1581, 2077, 93, 425, 270, 93, 101, 265, 93, 110, 111, 128, 1738, -1, -1, -1, -1, -1, -1, 136, -1, 2128, 2129, 2111, 141, 142, 2133, 144, -1, -1, -1, -1, 2120, 2121, -1, 2123, -1, 154, 2145, 156, 157, 158, 159, 83, 161, -1, -1, -1, -1, -1, -1, 2139, 1779, 93, 1781, 136, -1, -1, -1, -1, 100, 101, -1, -1, -1, -1, -1, -1, 2156, 186, 187, -1, -1, 465, 466, 186, 187, -1, 1805, -1, 1807, 198, -1, -1, -1, 477, -1, -1, -1, 1473, -1, -1, -1, -1, -1, 212, -1, -1, -1, 491, 492, 1682, -1, 1684, 221, -1, -1, -1, -1, 2004, -1, 2006, 1693, -1, -1, -1, 1201, 1698, 1699, -1, -1, 513, 514, -1, 1705, -1, 518, 519, -1, -1, 522, 523, -1, -1, 44, 45, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 265, -1, 86, 268, 269, 270, 3, -1, -1, 268, -1, 270, -1, 278, -1, -1, 74, 75, -1, -1, 560, 79, 562, 288, 289, 290, 110, 111, 86, 2072, 289, 28, -1, 221, 1763, -1, -1, -1, -1, 123, 37, -1, -1, 308, -1, -1, -1, -1, -1, 314, 1205, -1, 110, 111, -1, -1, -1, -1, -1, 324, -1, -1, 7, -1, 122, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, 86, 278, -1, -1, -1, -1, 1970, 1971, 1972, 1973, 1974, 288, -1, 290, -1, -1, -1, -1, -1, -1, 1984, 1985, 1986, 1987, 110, 111, -1, 381, -1, -1, -1, 349, 386, 119, 388, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 1867, 1868, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1682, -1, 1684, 418, -1, 420, 421, 44, 45, 424, 425, -1, -1, -1, -1, 430, 1698, 1699, -1, 434, 435, -1, 437, 1902, -1, 120, 121, 2052, 2053, -1, -1, 440, 1911, -1, 443, 130, -1, 74, 75, -1, -1, 420, 79, -1, 139, 140, 141, 142, 143, 86, 465, 466, -1, -1, -1, 470, 471, -1, -1, -1, -1, -1, 477, -1, -1, -1, -1, 482, -1, -1, -1, -1, 487, 110, 111, -1, 491, 492, -1, -1, 418, -1, -1, 1466, -1, 122, 3, -1, 1967, 1968, -1, -1, -1, -1, -1, 510, -1, -1, 513, 514, -1, 74, 75, 518, 519, -1, 79, 522, 523, -1, -1, 28, 1417, 86, 529, -1, 1421, -1, -1, -1, 37, 536, -1, -1, 539, -1, -1, 536, -1, -1, 539, -1, 470, -1, -1, -1, -1, 110, 111, -1, 555, -1, -1, -1, -1, 560, 119, 562, -1, 122, 565, 566, -1, -1, 529, -1, -1, 74, 75, -1, 133, -1, 79, -1, -1, -1, -1, -1, -1, 86, 585, -1, 510, 588, -1, 590, -1, 592, -1, 1484, -1, -1, -1, 1566, 599, -1, -1, -1, -1, -1, 1, -1, 3, 110, 111, -1, -1, 1502, -1, -1, 2079, -1, 119, -1, -1, 122, 123, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 28, 2097, -1, 1902, 86, -1, 37, -1, -1, 37, 38, -1, 1911, 44, 45, 1723, 1724, -1, 1726, 1727, -1, -1, -1, 1731, 1732, 1733, 1734, -1, 110, 111, -1, 663, 664, 665, 666, -1, -1, 663, 664, 665, 666, 123, -1, 74, 75, -1, 74, 75, 79, -1, -1, 79, 2148, -1, -1, 86, -1, -1, 86, 691, 692, 693, -1, 970, 696, 691, 692, 693, 1967, 1968, 702, -1, -1, 44, 45, -1, -1, -1, 710, 110, 111, -1, 110, 111, -1, 717, 718, 719, 119, 721, 722, 119, -1, -1, 122, -1, 728, 125, -1, 127, 128, 1701, -1, 74, 75, -1, -1, 739, 79, -1, 742, -1, -1, -1, -1, 86, -1, 749, 710, -1, 752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1039, 1040, -1, -1, 1043, 1044, 1045, 110, 111, 696, -1, -1, -1, -1, -1, 702, 119, -1, 742, -1, -1, -1, -1, -1, 1678, 749, -1, -1, 752, 1683, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 74, 75, -1, 728, -1, 79, -1, -1, -1, -1, -1, -1, 86, -1, 1784, -1, -1, -1, -1, -1, -1, 787, 788, -1, 790, -1, -1, -1, -1, -1, 832, -1, -1, 835, 836, 837, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, 122, 815, 816, 817, 818, -1, -1, 1747, 858, 859, 860, -1, -1, -1, -1, 465, 466, 867, 0, -1, -1, -1, -1, -1, -1, 875, 876, -1, -1, -1, -1, -1, -1, 883, -1, -1, 886, 1963, 888, -1, 890, 491, 492, -1, 858, 859, -1, -1, 1788, -1, -1, -1, -1, -1, -1, 1180, 1181, -1, -1, 832, -1, -1, -1, 513, 514, -1, -1, -1, 518, 519, 52, -1, 522, 523, -1, -1, -1, -1, -1, -1, -1, -1, -1, 933, -1, 1903, -1, -1, -1, -1, -1, 941, -1, -1, 867, -1, -1, -1, -1, -1, 82, 83, 84, 876, -1, -1, -1, 957, 958, 91, 883, 93, -1, -1, -1, 965, 966, 890, 100, 101, 970, -1, -1, -1, 1723, 1724, 976, 1726, 1727, -1, -1, -1, 1731, 1732, 1733, 1734, -1, -1, -1, 3, -1, -1, -1, 987, 958, -1, 996, 997, 998, 131, 132, 133, 134, 135, 1004, -1, -1, -1, -1, 141, -1, 1901, 144, -1, 28, -1, -1, -1, 941, -1, -1, -1, -1, 37, 38, 157, -1, 159, -1, 161, -1, -1, -1, -1, 957, -1, 996, 997, 998, 1039, 1040, -1, -1, 1043, 1044, 1045, -1, -1, -1, -1, -1, 183, 184, 185, -1, -1, -1, -1, -1, 3, 74, 75, -1, 1063, 1064, 79, -1, -1, 1068, -1, -1, -1, 86, -1, 1074, -1, -1, -1, -1, -1, 1080, -1, -1, -1, 28, -1, 1086, -1, 220, 221, -1, -1, -1, 37, -1, -1, 110, 111, -1, -1, -1, -1, -1, -1, 1104, 119, -1, 1107, 122, -1, 1110, -1, -1, 1107, -1, -1, 1110, -1, -1, -1, -1, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, -1, 74, 75, -1, 265, -1, 79, -1, -1, -1, -1, -1, -1, 86, -1, 1104, -1, 278, -1, 1148, -1, -1, -1, -1, -1, 1148, -1, 288, -1, 290, -1, -1, -1, 1162, 1163, 1164, 1165, 110, 111, 1162, 1163, 1164, 1165, -1, -1, -1, 119, -1, -1, 122, -1, 1180, 1181, -1, -1, -1, 1185, -1, 1187, -1, -1, -1, 1185, -1, 1187, 1194, -1, -1, -1, -1, -1, -1, 1201, -1, -1, 1204, 1205, 1206, -1, -1, -1, -1, -1, -1, -1, 1963, 1490, 1491, -1, -1, -1, -1, -1, -1, -1, 1224, -1, -1, -1, -1, -1, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1205, 3, -1, -1, -1, 0, -1, 1248, 1249, -1, -1, -1, -1, -1, 1255, 1256, -1, -1, 1259, 1260, -1, 394, 395, 396, -1, -1, 28, -1, 1544, 1545, 1194, -1, -1, -1, -1, 37, 38, 1201, -1, -1, -1, -1, -1, -1, -1, 418, -1, 1248, 1249, -1, -1, -1, 425, -1, 1255, 1256, -1, -1, 1259, 1260, -1, -1, -1, 436, -1, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, 83, -1, -1, -1, 465, 466, -1, -1, -1, 470, 93, -1, -1, 474, -1, -1, 477, 100, 101, -1, 110, 111, -1, -1, -1, 486, -1, -1, -1, 119, 491, 492, 122, -1, -1, 125, -1, 127, 128, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, -1, 513, 514, -1, -1, -1, 518, 519, 142, -1, 522, 523, 52, -1, 526, 527, 528, -1, -1, -1, 154, 1401, 1402, -1, 158, -1, -1, -1, -1, -1, -1, -1, 544, 545, -1, -1, 141, 1417, -1, 144, -1, 1421, -1, 83, 84, -1, -1, -1, 560, -1, 562, 91, 157, 565, 159, 567, 161, -1, -1, 1039, 1040, -1, -1, 1043, 1044, -1, -1, -1, -1, -1, 582, -1, -1, 1417, -1, -1, -1, 1421, -1, -1, -1, -1, -1, 1463, -1, -1, 1466, 142, -1, -1, -1, 131, 132, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, 158, 1484, -1, -1, -1, -1, -1, 1490, 1491, -1, -1, -1, 1495, 1496, 1497, 1498, -1, -1, -1, -1, 1463, 1779, -1, 1781, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1484, -1, -1, 183, 278, 1519, -1, -1, -1, -1, 1805, -1, 1807, -1, 288, -1, 290, -1, 1502, -1, -1, -1, -1, 1466, 1544, 1545, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 690, -1, -1, -1, -1, -1, 696, -1, 1566, -1, -1, -1, 230, -1, -1, 233, -1, -1, -1, -1, -1, -1, 1580, 1581, -1, -1, -1, 717, 1586, 1587, -1, 721, 265, -1, 1586, 1587, 268, 269, -1, -1, -1, 1599, -1, -1, 1602, -1, 1598, 265, -1, 739, 465, 466, 1610, -1, -1, -1, -1, -1, -1, -1, 278, -1, 1580, 1581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 491, 492, -1, -1, -1, 314, -1, -1, -1, 1566, -1, 1645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 513, 514, -1, -1, -1, 518, 519, -1, -1, 522, 523, -1, -1, -1, 424, -1, -1, -1, -1, -1, -1, -1, 1678, -1, 1680, 435, -1, 1683, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1970, 1971, 1972, 1973, 1974, -1, 1701, -1, -1, -1, -1, -1, -1, -1, 1984, 1985, 1986, 1987, -1, 1678, -1, -1, -1, -1, 1683, -1, -1, -1, -1, -1, -1, -1, -1, 860, -1, -1, -1, -1, 487, 394, 867, -1, -1, -1, -1, 465, 466, 874, 875, 876, -1, 0, 1747, -1, 424, -1, 883, 477, -1, 886, -1, 888, -1, -1, -1, 435, -1, 1762, 1763, -1, -1, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, 436, 2052, 2053, 1779, -1, 1781, -1, 1747, 1784, -1, -1, -1, 513, 514, -1, -1, -1, 518, 519, 927, -1, 522, 523, -1, -1, -1, 1762, 1763, 936, 1805, -1, 1807, -1, 941, -1, -1, 487, -1, 474, 947, -1, -1, -1, -1, -1, -1, -1, -1, 1788, 957, -1, -1, -1, 83, -1, -1, -1, -1, -1, 560, -1, 562, 970, 93, 1840, 1841, 1836, -1, -1, -1, 100, 101, 980, -1, -1, -1, -1, -1, -1, 268, 269, -1, -1, -1, -1, 1784, 536, -1, -1, 539, 526, 527, 528, -1, 530, -1, 1004, 533, -1, 270, -1, -1, -1, -1, -1, -1, -1, -1, 544, 545, 546, -1, 142, -1, 1490, 1491, -1, 112, -1, -1, -1, -1, -1, -1, 154, 1901, -1, 1903, 158, 565, -1, 1039, 1040, -1, -1, 1043, 1044, 1045, -1, -1, -1, 136, 1050, 1051, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1061, -1, -1, -1, -1, -1, -1, -1, 1901, -1, -1, -1, -1, 696, -1, 1544, 1545, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1970, 1971, 1972, 1973, 1974, 1975, -1, 1977, -1, 198, -1, -1, -1, -1, 1984, 1985, 1986, 1987, -1, 663, 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2004, -1, 2006, -1, -1, -1, -1, -1, -1, 693, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, 690, -1, -1, -1, 288, -1, 290, -1, -1, -1, -1, -1, 717, 718, -1, 440, 721, 722, 1180, 1181, -1, -1, 2052, 2053, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1201, -1, -1, 1204, -1, 1206, -1, -1, -1, 2072, -1, -1, 300, -1, -1, -1, 304, 305, 306, -1, -1, 309, 1, 1224, 3, 4, 5, 315, -1, -1, 1231, -1, -1, 321, -1, -1, -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, 875, -1, 536, -1, 344, 539, -1, -1, -1, 349, -1, 886, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, 65, 93, -1, -1, -1, -1, 71, 72, 100, 101, -1, -1, 386, -1, 388, 424, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, 435, 1039, 1040, -1, -1, 1043, 1044, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, -1, 875, 420, -1, -1, -1, 142, -1, -1, 118, -1, -1, 886, 122, -1, 344, -1, -1, 154, -1, -1, -1, 158, 132, 133, -1, -1, -1, -1, 888, -1, -1, -1, -1, 487, -1, -1, 631, -1, -1, -1, -1, -1, -1, -1, -1, 970, -1, -1, -1, -1, 663, 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 927, 663, 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, -1, 693, -1, 1414, -1, 944, -1, 946, 947, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1429, -1, -1, -1, -1, -1, -1, 1436, -1, -1, -1, -1, -1, 529, 1443, -1, -1, 1039, 1040, -1, -1, 1043, 1044, 1045, -1, -1, -1, -1, -1, -1, -1, -1, 1004, -1, -1, 1464, -1, 1466, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, 566, -1, -1, -1, 288, -1, 290, -1, -1, -1, -1, 1490, 1491, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1970, 1971, -1, 1973, 1974, -1, -1, -1, -1, 598, -1, -1, -1, -1, 1984, 1985, 1986, 1987, -1, -1, 1050, 1051, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 626, -1, -1, -1, -1, 1544, 1545, -1, 1547, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1107, 1566, -1, 1110, -1, -1, -1, -1, -1, 696, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2052, 2053, -1, 1180, 1181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1148, -1, -1, -1, 697, -1, -1, -1, -1, -1, -1, -1, -1, 424, 1162, 1163, 1164, 1165, -1, -1, -1, 112, -1, -1, 435, -1, -1, -1, -1, -1, 723, -1, 636, -1, 727, -1, -1, 1185, -1, 1187, -1, -1, -1, -1, -1, -1, -1, -1, 1182, 742, 1184, -1, -1, -1, -1, 1204, 749, -1, -1, 752, -1, -1, -1, -1, -1, -1, 1672, -1, -1, -1, 939, -1, -1, -1, -1, 1224, 487, -1, -1, 772, -1, -1, 1231, -1, -1, 778, 779, 780, 781, 782, 783, 784, -1, -1, 787, 788, -1, 790, 791, 792, 793, 794, 795, 796, 797, -1, 799, -1, -1, -1, -1, -1, -1, -1, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, -1, 827, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 875, -1, -1, -1, -1, -1, -1, 758, -1, -1, -1, 886, 1490, 1491, -1, -1, -1, -1, 858, 859, -1, -1, -1, -1, -1, -1, 1779, -1, 1781, -1, -1, 1784, 270, -1, -1, -1, -1, -1, -1, -1, 791, 792, 793, 794, 795, -1, -1, 798, -1, -1, 112, -1, 1805, 804, 1807, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1817, -1, 1544, 1545, 819, 820, 821, 822, 823, 1107, 136, 826, 1110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 926, -1, 928, 327, -1, 1107, -1, -1, 1110, -1, -1, -1, -1, -1, -1, -1, -1, 1119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1148, -1, -1, -1, 958, -1, -1, -1, -1, -1, -1, -1, -1, 967, 1162, 1163, 1164, 1165, 1148, -1, -1, -1, 198, -1, 696, -1, -1, -1, -1, -1, 1490, 1491, 1162, 1163, 1164, 1165, -1, 1185, -1, 1187, -1, -1, 996, -1, 998, -1, -1, -1, 1443, -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, 1544, 1545, -1, -1, -1, -1, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1970, 1971, 1972, 1973, 1974, -1, -1, 1064, -1, -1, -1, -1, -1, -1, 1984, 1985, 1986, 1987, -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, 1104, 327, 1547, -1, -1, -1, -1, -1, -1, -1, -1, 1115, -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, 349, -1, -1, -1, 1586, 1587, -1, -1, -1, -1, 535, -1, 2052, 2053, 1141, 1142, -1, 1599, -1, -1, 1602, -1, -1, -1, -1, -1, -1, -1, 1610, -1, 875, -1, 120, 121, -1, -1, -1, 386, -1, 388, -1, 886, 130, -1, -1, -1, -1, 135, 136, 137, -1, 139, 140, 141, 142, 143, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, 420, -1, 598, -1, -1, -1, -1, 1205, -1, 1207, -1, -1, -1, 1122, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1229, -1, -1, -1, 631, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, 1245, 1157, -1, -1, 1249, -1, 65, 1252, -1, -1, -1, 1256, 71, 72, 73, 1260, -1, -1, -1, -1, 663, 664, 665, 666, -1, 84, 85, -1, 1779, -1, 1781, -1, -1, -1, -1, 1191, -1, 1193, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 1805, -1, 1807, -1, -1, 118, 119, -1, 529, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, 138, 723, -1, -1, -1, 727, -1, -1, 1970, 1971, -1, 1973, 1974, -1, -1, -1, -1, -1, -1, -1, 566, -1, 1984, 1985, 1986, 1987, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 758, -1, -1, -1, -1, -1, -1, 1808, -1, -1, -1, -1, -1, -1, 772, -1, 598, -1, -1, -1, -1, -1, -1, -1, -1, 1840, 1841, -1, -1, -1, -1, -1, 1586, 1587, -1, -1, -1, -1, -1, -1, -1, 799, -1, -1, 626, 1599, 804, -1, 1602, 807, 1586, 1587, -1, -1, 2052, 2053, 1610, 1417, -1, -1, 1596, 1421, 1598, 1599, -1, -1, 1602, -1, -1, 827, -1, -1, -1, -1, 1610, -1, -1, 1613, -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, 1463, 1970, 1971, 1972, 1973, 1974, -1, -1, -1, -1, 1473, -1, 697, -1, -1, 1984, 1985, 1986, 1987, -1, -1, 1484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 723, 1502, -1, 1504, 727, -1, -1, -1, 1509, -1, 1511, -1, -1, -1, -1, -1, -1, -1, -1, 742, -1, -1, -1, -1, -1, -1, 749, 1528, -1, 752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2052, 2053, -1, -1, 772, -1, -1, -1, -1, -1, 778, 779, 780, 781, 782, 783, 784, -1, -1, 787, 788, -1, 790, 791, 792, 793, 794, 795, 796, 797, -1, 799, -1, -1, -1, 1581, -1, -1, -1, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, -1, 827, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1014, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 858, 859, -1, -1, -1, -1, -1, -1, -1, -1, 1840, 1841, -1, -1, -1, -1, -1, -1, 1830, 1831, 1832, 1833, -1, -1, 1836, -1, -1, -1, 1840, 1841, -1, 1843, -1, 1845, -1, -1, -1, -1, -1, -1, -1, -1, 1678, -1, -1, 1857, 1682, 1683, 1684, -1, -1, -1, -1, -1, -1, -1, -1, 1693, -1, -1, -1, -1, 1698, 1699, -1, -1, -1, -1, 926, 1705, 928, -1, -1, 1107, -1, -1, 1110, -1, -1, -1, -1, -1, -1, -1, -1, 1119, -1, 1723, 1724, -1, 1726, 1727, -1, -1, -1, 1731, 1732, 1733, 1734, -1, 958, -1, -1, -1, -1, -1, -1, 1141, 1142, 967, -1, 1747, -1, -1, 1148, -1, 1150, -1, -1, -1, 1154, -1, -1, 1157, -1, 1159, -1, 1763, 1162, 1163, 1164, 1165, -1, -1, -1, -1, -1, -1, 996, -1, 998, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1788, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1717, -1, -1, -1, -1, 1722, 1723, 1724, 1725, 1726, 1727, -1, -1, 1995, 1731, 1732, 1733, 1734, -1, -1, -1, -1, 2004, -1, 2006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1064, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1867, 1868, -1, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, -1, -1, -1, 221, 1104, 2059, 2060, -1, -1, 2063, -1, 2065, -1, -1, 2068, 1115, -1, -1, 2072, -1, -1, -1, -1, 1901, 1902, -1, -1, -1, -1, -1, -1, -1, -1, 1911, -1, -1, -1, -1, -1, -1, -1, 1141, 1142, -1, -1, -1, -1, -1, -1, -1, -1, 2105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, -1, -1, -1, -1, -1, -1, -1, 2133, -1, -1, -1, -1, -1, 1963, -1, -1, -1, 1967, 1968, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1205, -1, 1207, -1, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, 1229, 157, -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1245, 28, -1, -1, 1249, -1, -1, 1252, -1, -1, -1, 1256, -1, -1, -1, 1260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, 400, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2079, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, 2097, 102, 103, 104, 105, 106, 107, 108, 109, 1504, -1, -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, 123, 124, 270, -1, 127, -1, -1, -1, 131, 132, 133, 470, 135, 136, 137, 138, -1, -1, 1535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2148, -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, 1586, 1587, 530, -1, -1, 533, -1, 1417, -1, -1, 1596, 1421, 1598, 1599, -1, -1, 1602, -1, 546, -1, -1, -1, -1, -1, 1610, -1, -1, 1613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 580, 1463, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, -1, 1504, -1, -1, -1, -1, 1509, -1, 1511, -1, -1, -1, -1, -1, 1693, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1528, 1705, -1, -1, -1, -1, -1, -1, -1, -1, 465, 466, -1, 1717, -1, -1, -1, -1, 1722, -1, -1, 1725, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 491, 492, -1, -1, -1, -1, -1, -1, 690, -1, -1, -1, -1, -1, 696, -1, -1, 1581, -1, -1, -1, -1, 513, 514, -1, -1, -1, 518, 519, -1, -1, 522, 523, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1789, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1800, -1, -1, -1, -1, -1, -1, -1, -1, 560, -1, 562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1830, 1831, 1832, 1833, -1, -1, 1836, -1, -1, -1, 1840, 1841, -1, 1843, -1, 1845, -1, -1, -1, -1, -1, -1, -1, -1, 1678, -1, -1, 1857, 1682, 1683, 1684, -1, -1, -1, -1, -1, -1, 1867, 1868, 1693, -1, -1, -1, -1, 1698, 1699, -1, -1, -1, -1, 631, 1705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1723, 1724, -1, 1726, 1727, -1, -1, -1, 1731, 1732, 1733, 1734, -1, 663, 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, 1747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 876, -1, -1, -1, -1, 1763, -1, 883, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, 1979, -1, -1, -1, 631, -1, -1, -1, -1, -1, -1, -1, 742, -1, -1, 936, 1995, -1, -1, 749, 941, -1, 752, -1, -1, 2004, -1, 2006, -1, -1, -1, -1, -1, -1, -1, -1, 957, -1, 665, 666, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1867, 1868, -1, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, -1, -1, 2056, -1, -1, 2059, 2060, -1, 1004, 2063, -1, 2065, -1, -1, 2068, -1, -1, -1, 2072, -1, -1, -1, -1, 1901, 1902, 2079, -1, 1, -1, 3, 4, 5, 6, 1911, 8, 9, -1, -1, -1, -1, -1, -1, -1, 2097, -1, -1, -1, -1, -1, -1, -1, 2105, -1, -1, 28, 1051, -1, -1, -1, -1, -1, -1, -1, 37, 1060, -1, 1062, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2133, -1, -1, -1, -1, -1, 1963, -1, -1, -1, 1967, 1968, 65, -1, -1, 2148, -1, -1, 71, 72, 73, 74, 75, 907, 908, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 970, -1, -1, -1, -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1182, -1, 1184, -1, -1, 996, -1, 998, -1, -1, -1, -1, -1, -1, -1, 2079, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, 86, 92, 93, -1, -1, 2097, -1, -1, -1, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1039, 1040, -1, -1, 1043, 1044, 1045, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, 136, 142, -1, -1, -1, -1, 2148, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, 158, -1, -1, 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1104, -1, -1, 1107, -1, -1, 1110, -1, -1, -1, 186, 187, -1, -1, -1, 1119, -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, 1148, 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1162, 1163, 1164, 1165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1180, 1181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, 1, -1, 3, 4, 5, 6, 278, 8, 9, -1, 1107, -1, -1, 1110, -1, -1, 288, 289, 290, -1, -1, -1, 1119, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, 1429, -1, -1, -1, 314, -1, -1, 1436, -1, -1, -1, 1249, -1, 1148, 324, -1, -1, -1, 1256, -1, -1, -1, 1260, -1, -1, -1, 65, 1162, 1163, 1164, 1165, -1, 71, 72, 73, 1464, -1, 1466, -1, -1, 1469, -1, -1, 1472, -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, -1, -1, -1, 381, -1, -1, 118, 119, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, -1, -1, -1, -1, 418, -1, -1, -1, -1, -1, 424, 420, 421, -1, 1547, -1, 425, -1, -1, -1, -1, 435, 1555, -1, -1, 434, -1, 1, 437, -1, 4, 5, 6, 1566, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 470, -1, -1, -1, -1, -1, 471, -1, -1, -1, -1, -1, 477, -1, -1, -1, -1, 487, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, 510, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, 1463, 536, -1, 98, 539, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, 118, -1, 555, -1, 1490, 1491, 124, 125, -1, 127, 128, 129, 565, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1509, -1, 1511, -1, -1, -1, -1, -1, -1, 585, -1, -1, 588, -1, 590, -1, 592, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1544, 1545, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1751, 1752, -1, 1754, -1, -1, 638, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1581, -1, -1, -1, -1, 1586, 1587, -1, -1, -1, 663, 664, 665, 666, -1, 1596, -1, 1598, 1599, -1, -1, 1602, -1, -1, -1, -1, -1, -1, -1, 1610, -1, -1, 1613, -1, -1, -1, 1808, -1, 691, 692, 693, -1, -1, 696, -1, -1, -1, -1, -1, 702, -1, -1, -1, -1, -1, -1, -1, 710, -1, -1, -1, -1, -1, -1, 717, 718, 719, -1, 721, 722, -1, -1, -1, -1, -1, 728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 739, -1, -1, 742, -1, -1, -1, -1, -1, -1, 749, -1, -1, 752, -1, -1, -1, -1, -1, -1, -1, -1, 1586, 1587, -1, -1, -1, -1, -1, -1, -1, -1, 1596, -1, 1598, 1599, -1, -1, 1602, -1, -1, -1, -1, -1, -1, -1, 1610, -1, -1, 1613, -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, 270, -1, -1, -1, -1, -1, 832, -1, -1, 1763, -1, -1, -1, -1, 835, 836, 837, -1, -1, -1, -1, -1, -1, -1, -1, 1779, -1, 1781, -1, -1, -1, -1, -1, -1, -1, -1, -1, 858, 859, 860, -1, 867, 0, -1, -1, -1, -1, -1, -1, 875, 876, 1805, -1, 1807, 324, -1, -1, 883, -1, -1, 886, 887, 888, -1, 890, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1830, 1831, 1832, 1833, -1, -1, 1836, -1, -1, -1, 1840, 1841, -1, 1843, -1, 1845, -1, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, 1857, -1, -1, -1, -1, -1, -1, -1, -1, 933, -1, -1, 941, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 88, 957, -1, -1, -1, 93, -1, 958, -1, -1, -1, -1, 100, 101, 965, 966, -1, -1, -1, -1, -1, -1, -1, -1, -1, 976, -1, -1, -1, -1, 118, -1, -1, -1, -1, -1, 436, -1, -1, -1, 996, 997, 998, 131, -1, -1, -1, -1, 1004, 1830, 1831, 1832, 1833, -1, -1, 1836, -1, -1, -1, 1840, 1841, -1, 1843, -1, 1845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1857, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1970, 1971, 1972, 1973, 1974, -1, -1, -1, 182, -1, -1, -1, -1, -1, 1984, 1985, 1986, 1987, -1, -1, -1, 195, -1, -1, -1, 1995, 1063, -1, -1, -1, -1, 1068, -1, -1, 2004, -1, 2006, 1074, -1, -1, -1, -1, -1, 1080, -1, -1, -1, 221, -1, 1086, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1104, -1, -1, 1107, -1, -1, 1110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1123, 2052, 2053, -1, -1, -1, -1, -1, 2059, 2060, 265, -1, 2063, -1, 2065, -1, -1, 2068, -1, -1, -1, 2072, -1, 278, -1, 1148, -1, -1, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, -1, 1162, 1163, 1164, 1165, -1, -1, -1, -1, 1995, -1, -1, -1, -1, -1, -1, 2105, -1, 2004, -1, 2006, -1, -1, -1, 1185, -1, 1187, -1, -1, -1, -1, 636, -1, -1, -1, -1, -1, -1, -1, -1, 1201, -1, -1, 1204, 2133, -1, -1, 652, -1, 1205, 1206, -1, -1, -1, -1, -1, -1, -1, 663, 664, 665, 666, -1, 1224, -1, -1, -1, -1, -1, -1, 1231, -1, -1, 2059, 2060, -1, -1, 2063, -1, 2065, -1, -1, 2068, -1, -1, -1, 2072, 1248, 1249, -1, -1, -1, -1, -1, 1255, 1256, -1, 702, 1259, 1260, 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2105, -1, -1, -1, 728, -1, 418, -1, -1, 733, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 436, 327, -1, -1, 2133, -1, -1, -1, -1, -1, -1, -1, 760, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 470, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 798, -1, -1, -1, -1, -1, -1, -1, 806, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, -1, -1, 826, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 528, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1401, 1402, -1, -1, -1, -1, 544, 545, -1, -1, -1, -1, -1, -1, -1, -1, 1417, -1, -1, -1, 1421, -1, -1, -1, -1, -1, -1, 565, -1, 567, -1, -1, -1, -1, -1, -1, -1, -1, 888, -1, 578, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1463, -1, -1, 1466, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 614, -1, -1, -1, -1, -1, -1, 1484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1495, 1496, 1497, 1498, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, 689, -1, -1, -1, -1, -1, -1, 696, -1, 1566, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1580, 1581, -1, -1, 65, 717, 1586, 1587, -1, 721, 71, 72, 73, -1, -1, -1, -1, -1, -1, 1599, -1, -1, 1602, 84, 85, -1, -1, 739, -1, -1, 1610, -1, -1, -1, 636, -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, 121, 122, 123, 124, 125, 126, 127, -1, -1, 130, 1645, 132, 133, -1, 135, 136, 137, 138, 139, 140, 141, 142, 143, 1107, -1, -1, 1110, 1111, 1112, -1, 1114, -1, -1, -1, -1, -1, -1, -1, 1122, -1, -1, -1, -1, 1678, -1, 1680, 1130, -1, 1683, -1, -1, -1, -1, 1137, -1, -1, -1, -1, -1, -1, -1, 1701, -1, -1, 1148, -1, -1, -1, -1, -1, -1, 1155, -1, -1, -1, -1, 1160, -1, 1162, 1163, 1164, 1165, -1, -1, -1, -1, -1, -1, 860, 861, -1, -1, -1, -1, -1, 867, 758, -1, -1, -1, -1, -1, -1, 875, 876, -1, -1, 1191, -1, 1193, 772, 883, 1747, -1, 886, 887, 888, -1, -1, -1, -1, -1, 1762, 1763, -1, -1, -1, -1, -1, 791, 792, 793, 794, 795, -1, -1, 798, 799, -1, -1, -1, 1225, 804, -1, 1784, 807, -1, -1, -1, -1, -1, -1, -1, -1, -1, 927, -1, 819, 820, 821, 822, 823, -1, 935, 826, 827, -1, -1, -1, 941, 92, -1, -1, -1, -1, 947, -1, -1, -1, -1, -1, -1, -1, -1, -1, 957, 1270, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 1840, 1841, -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, 1004, -1, -1, -1, -1, -1, 1322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1335, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, 1903, 186, 187, 1901, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 1050, -1, -1, -1, -1, -1, -1, 98, -1, 1059, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, 221, -1, -1, 1386, -1, -1, 118, 119, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, 1975, -1, 1977, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 289, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, 66, 324, -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, 1201, -1, -1, 1204, -1, 1206, 100, -1, -1, -1, -1, -1, -1, 1214, -1, -1, 110, 111, 112, 113, 114, 115, -1, 1224, -1, 119, -1, -1, 122, -1, 1231, 1122, -1, -1, -1, -1, -1, -1, -1, 133, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, 1157, 418, -1, -1, -1, -1, -1, 1586, 1587, -1, -1, -1, -1, 1592, -1, 1594, -1, -1, 1597, 1598, -1, -1, -1, -1, 1603, 1604, -1, 1606, 52, -1, -1, -1, -1, -1, 1191, -1, 1193, 1616, -1, 1618, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 470, -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 91, -1, 93, -1, 1650, -1, -1, -1, 1654, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, 1252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, 132, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, 536, -1, -1, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 183, -1, 1428, -1, -1, -1, 92, -1, -1, 1435, -1, -1, -1, -1, -1, -1, -1, 1443, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1464, -1, 1466, -1, -1, -1, -1, -1, -1, 230, -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1818, -1, 265, -1, -1, -1, -1, 663, 664, 665, 666, -1, -1, -1, -1, 278, -1, -1, 1836, 1837, 186, 187, -1, -1, -1, 288, 1844, 290, -1, -1, 1848, -1, 1850, -1, -1, 691, 692, 693, -1, -1, 1546, 1859, -1, -1, -1, -1, 702, -1, -1, -1, -1, -1, -1, -1, 710, 221, -1, -1, -1, -1, 1566, 717, 718, 719, -1, 721, 722, -1, -1, -1, -1, -1, 728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 739, -1, 1903, 742, -1, -1, -1, -1, -1, -1, 749, -1, -1, 752, -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, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, -1, -1, -1, -1, -1, -1, -1, 1672, -1, -1, -1, -1, -1, -1, 436, -1, -1, 832, -1, 1996, 1997, -1, 1999, -1, 2001, -1, -1, 2004, 2005, 2006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 867, -1, -1, -1, -1, -1, -1, -1, -1, 876, -1, -1, -1, -1, -1, -1, 883, -1, -1, -1, -1, 888, -1, 890, -1, -1, 1743, -1, -1, -1, -1, -1, 2061, -1, -1, 2064, -1, -1, -1, -1, -1, 418, -1, 2072, -1, -1, -1, -1, 1765, -1, -1, -1, 526, 527, 528, -1, 530, -1, -1, 533, -1, -1, -1, -1, -1, -1, -1, 1784, -1, -1, 544, 545, 546, -1, 941, -1, -1, -1, -1, 2108, -1, -1, -1, -1, -1, -1, -1, 324, -1, -1, 957, 565, -1, 470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1717, -1, -1, -1, -1, 1722, 1723, 1724, 1725, 1726, 1727, -1, -1, -1, 1731, 1732, 1733, 1734, -1, 996, 997, 998, -1, 510, -1, -1, -1, 1004, -1, 198, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, 536, -1, -1, 539, -1, -1, -1, 1883, -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, 436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 690, -1, -1, -1, -1, -1, 696, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1104, -1, -1, 1107, 300, -1, 1110, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, 315, -1, -1, -1, -1, -1, -1, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1148, -1, -1, -1, -1, 663, 664, 665, 666, -1, -1, -1, -1, -1, 1162, 1163, 1164, 1165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 691, 692, 693, -1, 1185, -1, 1187, -1, -1, -1, -1, 702, -1, 386, -1, 388, -1, -1, -1, 710, 1201, -1, -1, 1204, -1, -1, 717, 718, 719, -1, 721, 722, -1, -1, -1, -1, -1, 728, -1, -1, -1, -1, -1, 1224, -1, -1, -1, -1, 739, -1, 1231, 742, -1, -1, -1, -1, -1, -1, 749, -1, -1, 752, -1, -1, -1, -1, -1, 1248, 1249, -1, -1, -1, -1, -1, 1255, 1256, -1, -1, 1259, 1260, -1, -1, -1, -1, -1, 636, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 888, 652, -1, -1, -1, 656, -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, 927, -1, 832, -1, -1, -1, -1, -1, -1, -1, -1, -1, 702, -1, -1, 705, -1, 529, -1, -1, 947, -1, -1, -1, -1, -1, -1, -1, -1, 719, -1, -1, -1, -1, -1, -1, -1, 867, 728, -1, -1, -1, -1, 733, 734, -1, 876, -1, -1, -1, -1, -1, -1, 883, 566, -1, -1, -1, 888, -1, 890, -1, -1, -1, -1, -1, -1, -1, -1, -1, 760, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, 798, -1, -1, 941, -1, 28, 626, -1, 806, -1, -1, -1, -1, -1, -1, 1050, 1051, -1, -1, 957, -1, -1, -1, -1, -1, -1, -1, -1, 826, -1, -1, -1, -1, -1, -1, 1463, -1, -1, 1466, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, 996, 997, 998, 84, 85, -1, -1, -1, 1004, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 697, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 888, -1, -1, -1, -1, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, -1, -1, -1, -1, 742, -1, -1, -1, -1, -1, -1, 749, -1, -1, 752, -1, -1, -1, -1, -1, 1566, -1, -1, -1, -1, -1, -1, -1, -1, 1182, -1, 1184, -1, -1, 1580, 1581, -1, -1, -1, -1, 1586, 1587, 3, -1, -1, -1, -1, -1, 1104, -1, -1, 1107, -1, 1599, 1110, -1, 1602, -1, -1, -1, -1, -1, -1, -1, 1610, -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, 1148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 1162, 1163, 1164, 1165, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, 1185, -1, 1187, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, 1201, -1, -1, 1204, 110, 111, 112, 113, 114, 115, 1701, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1224, -1, -1, -1, -1, -1, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 926, -1, 928, -1, 1248, 1249, -1, 1111, 1112, -1, 1114, 1255, 1256, -1, -1, 1259, 1260, -1, 1122, -1, -1, 1125, -1, -1, -1, -1, 1130, -1, 1762, 1763, -1, -1, -1, 1137, 1138, -1, -1, -1, -1, -1, 1, 967, 3, 4, 5, 6, -1, 8, 9, -1, 1784, 1155, 1156, -1, -1, -1, 1160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, 996, -1, 998, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1191, -1, 1193, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 1443, -1, 65, -1, 1840, 1841, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, 1225, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, 1064, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, -1, 124, 125, -1, 1270, 1271, 129, 1903, 131, 132, 133, -1, 135, 136, 137, 138, 1104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1115, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, 1547, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1322, 1463, 1324, -1, 1466, -1, 82, 83, 84, -1, -1, -1, -1, 1335, 1336, -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, 131, 132, -1, -1, -1, -1, -1, -1, 1207, 1386, -1, 1388, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1229, -1, -1, 164, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, 1566, 1249, -1, 183, -1, -1, -1, -1, 1256, -1, -1, -1, 1260, 28, 1580, 1581, -1, -1, -1, -1, 1586, 1587, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, 1599, -1, -1, 1602, -1, -1, -1, 220, 221, -1, -1, 1610, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, 83, 84, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 265, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 278, -1, -1, -1, -1, 118, 119, -1, -1, 122, 288, 124, 131, 132, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1701, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1808, 1572, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 183, -1, -1, -1, 1592, 1593, 1594, 1595, -1, 1597, 1598, -1, -1, -1, -1, 1603, 1604, -1, 1606, 1, 1608, 3, 4, 5, 6, -1, 8, 9, 1616, 1617, 1618, -1, -1, -1, 1762, 1763, -1, -1, 221, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 394, 1463, -1, -1, 1784, -1, 400, -1, -1, -1, 1650, 1473, 1652, -1, 1654, -1, 1656, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, 436, 278, -1, -1, -1, 1509, -1, 1511, 84, 85, -1, 288, -1, -1, -1, -1, -1, -1, 1840, 1841, -1, -1, 98, -1, 1528, -1, 102, 103, 104, 105, 106, 107, 108, 109, 470, -1, -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, 123, 124, 125, 486, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1581, -1, -1, -1, 1903, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 528, -1, 530, -1, -1, 533, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 544, 545, 546, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, 400, -1, -1, -1, 563, -1, 565, -1, 567, -1, -1, -1, -1, 1818, -1, -1, -1, -1, -1, -1, -1, 580, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1837, -1, -1, -1, 436, 1842, -1, 1844, 1845, -1, 1847, 1848, -1, 1850, -1, 1852, -1, -1, -1, -1, -1, 1858, 1859, 1682, -1, 1684, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 470, 1698, 1699, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1723, 1724, 1903, 1726, 1727, -1, -1, -1, 1731, 1732, 1733, 1734, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 682, -1, -1, 526, 527, 528, -1, 530, 690, -1, 533, -1, -1, 1763, 696, -1, -1, -1, -1, -1, -1, 544, 545, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 565, -1, 567, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 580, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1996, 1997, -1, 1999, 2000, 2001, -1, -1, -1, 2005, 2006, -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, 92, -1, -1, -1, -1, -1, -1, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, -1, -1, -1, -1, -1, 2061, 2062, -1, 2064, 2065, -1, -1, -1, 2069, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1902, -1, -1, -1, -1, -1, -1, -1, -1, 1911, -1, 142, -1, -1, -1, 690, -1, -1, -1, -1, -1, 696, -1, 154, -1, -1, 92, 158, 2108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 874, -1, 876, -1, -1, -1, -1, -1, -1, 883, -1, -1, -1, -1, 888, 186, 187, -1, -1, -1, -1, 1963, -1, -1, -1, 1967, 1968, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, 221, -1, 158, 927, -1, -1, -1, -1, -1, -1, -1, -1, 936, -1, -1, -1, -1, 941, -1, -1, -1, -1, -1, 947, -1, -1, -1, -1, -1, -1, 186, 187, -1, 957, -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, -1, -1, -1, 1004, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, 876, 268, 269, 270, -1, -1, -1, 883, -1, -1, -1, -1, 888, -1, -1, 1050, 1051, -1, -1, -1, -1, -1, 289, -1, -1, 1060, -1, 1062, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, 927, -1, -1, -1, -1, -1, -1, -1, -1, 936, -1, -1, -1, -1, 941, -1, -1, -1, -1, -1, 947, -1, -1, -1, -1, -1, -1, -1, -1, -1, 957, -1, -1, -1, -1, 418, -1, -1, -1, -1, -1, 424, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 435, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, 1004, -1, -1, -1, -1, -1, -1, -1, -1, -1, 470, -1, -1, -1, -1, -1, -1, -1, -1, 1182, -1, 1184, -1, -1, -1, -1, -1, 487, -1, 424, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 435, -1, -1, -1, -1, -1, 1050, 1051, -1, 142, 510, -1, -1, -1, -1, -1, 1060, -1, 1062, -1, -1, 154, -1, -1, -1, 158, -1, -1, -1, 529, -1, -1, -1, -1, 3, -1, 536, -1, -1, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 487, 186, 187, -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, 529, -1, -1, 66, -1, 68, -1, 536, -1, -1, 539, 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, 265, -1, -1, 268, 269, 270, 1182, -1, 1184, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, 124, 289, -1, -1, -1, -1, -1, 131, 663, 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, 691, 692, 693, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 710, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 721, 722, -1, -1, -1, 1429, -1, 663, 664, 665, 666, -1, 1436, -1, -1, -1, -1, -1, -1, 1443, -1, 742, -1, -1, -1, -1, -1, -1, 749, -1, -1, 752, -1, -1, -1, 691, 692, 693, -1, -1, 1464, -1, 1466, -1, -1, 1469, -1, -1, 1472, -1, -1, -1, -1, -1, 710, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 721, 722, -1, -1, -1, 424, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 435, -1, -1, -1, -1, 742, -1, -1, -1, -1, -1, -1, 749, -1, -1, 752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 832, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1547, -1, -1, -1, -1, -1, -1, -1, 1555, -1, 487, -1, -1, -1, -1, -1, -1, -1, -1, 1566, -1, -1, -1, 867, -1, -1, -1, -1, -1, -1, -1, 875, 876, -1, -1, -1, -1, -1, -1, 883, -1, 1429, 886, -1, -1, -1, 890, -1, 1436, -1, -1, -1, 529, -1, -1, 1443, -1, -1, -1, 536, -1, -1, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1464, -1, 1466, -1, -1, 1469, -1, -1, 1472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 875, 941, -1, -1, -1, -1, -1, -1, -1, -1, -1, 886, -1, -1, -1, -1, -1, 957, -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, 996, 997, 998, -1, -1, -1, -1, 1547, 1004, -1, -1, -1, -1, -1, -1, 1555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1566, -1, -1, -1, -1, -1, -1, -1, 663, 664, 665, 666, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1751, 1752, -1, 1754, -1, -1, -1, -1, -1, -1, 691, 692, 693, 996, 997, 998, -1, -1, -1, -1, -1, 1004, -1, -1, -1, -1, -1, -1, -1, 710, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 721, 722, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1104, 1808, -1, 1107, -1, 742, 1110, -1, -1, -1, -1, -1, 749, -1, -1, 752, -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, 1148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1162, 1163, 1164, 1165, -1, -1, -1, 1104, -1, -1, 1107, -1, 1, 1110, 3, 4, 5, 6, -1, 8, 9, -1, -1, 1185, -1, 1187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, 1204, -1, -1, 1751, 1752, -1, 1754, -1, -1, 1148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1224, -1, -1, 1162, 1163, 1164, 1165, 1231, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, 875, -1, 71, 72, 73, -1, 1248, 1249, 1185, -1, 1187, 886, -1, 1255, 1256, 84, 85, 1259, 1260, -1, -1, -1, 1808, -1, -1, -1, -1, 1204, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, 1224, -1, 118, 119, -1, -1, 122, 1231, 124, -1, -1, -1, -1, 129, -1, -1, 132, 133, 134, 135, 136, 137, 138, -1, 1248, 1249, -1, -1, -1, -1, -1, 1255, 1256, -1, -1, 1259, 1260, -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, 996, 997, 998, -1, -1, -1, 1, -1, 1004, -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, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, 1463, -1, -1, 1466, -1, 100, -1, -1, 1104, -1, -1, 1107, -1, -1, 1110, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, 130, -1, -1, 133, -1, 135, 136, 137, -1, 139, 140, 141, 142, 143, -1, -1, -1, 1148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1463, 1162, 1163, 1164, 1165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1185, -1, 1187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1566, -1, -1, -1, -1, 1204, -1, -1, -1, -1, -1, -1, -1, -1, 1580, 1581, -1, -1, -1, -1, 1586, 1587, -1, -1, -1, 1224, -1, -1, -1, -1, -1, -1, 1231, 1599, -1, -1, 1602, -1, -1, -1, -1, -1, -1, -1, 1610, -1, -1, -1, -1, 1248, 1249, -1, -1, -1, -1, -1, 1255, 1256, -1, -1, 1259, 1260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1580, 1581, -1, -1, -1, -1, 1586, 1587, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, -1, 1602, -1, -1, -1, -1, -1, -1, 1, 1610, 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, -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, -1, 1762, 1763, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, 1784, -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 124, -1, 126, 127, -1, -1, 130, -1, 132, 133, -1, 135, 136, 137, 138, 139, 140, 141, 142, 143, 1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 1762, 1763, -1, 1463, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1840, 1841, -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, 1840, 1841, -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, 119, -1, -1, 122, 123, -1, -1, -1, -1, -1, -1, -1, 1580, 1581, 133, -1, -1, -1, 1586, 1587, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, -1, 1602, -1, -1, -1, -1, -1, 0, 1, 1610, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1762, 1763, 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, 1840, 1841, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, -1, 135, 136, 137, 138, 139, 140, 141, 142, 143, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -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, -1, -1, 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, -1, -1, 122, 123, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, -1, -1, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, -1, -1, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 1, 124, 3, 4, 5, 6, -1, 8, 9, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 1, 124, 3, 4, 5, 6, -1, 8, 9, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, 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, -1, -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, 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, -1, -1, 122, 1, 124, 3, 4, 5, 6, 129, 8, 9, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, 125, -1, 127, -1, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, 125, -1, 127, -1, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, -1, -1, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, -1, -1, 129, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 65, 8, 9, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 28, -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, -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, 65, 124, 125, -1, 127, -1, 71, 72, 73, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, -1, 71, 72, 73, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, -1, -1, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, 125, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 65, 8, 9, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 28, -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, -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, 65, 124, -1, -1, 127, -1, 71, 72, 73, 132, 133, 134, 135, 136, 137, 138, -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, -1, -1, 122, -1, 124, -1, -1, 127, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 65, 8, 9, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 28, -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, -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, 65, 124, -1, -1, 127, -1, 71, 72, 73, 132, 133, 134, 135, 136, 137, 138, -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, -1, -1, 122, -1, 124, -1, -1, 127, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, 125, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, 125, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, 125, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, 127, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, -1, 124, -1, -1, 127, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, 125, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, -1, 124, -1, -1, -1, 128, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -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, -1, -1, 122, 123, 124, -1, -1, 127, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, -1, -1, -1, 132, 133, 134, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, -1, -1, -1, 132, 133, 134, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, -1, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, -1, -1, 131, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, -1, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, 129, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, 123, 124, -1, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, 123, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, -1, -1, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 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, -1, -1, -1, -1, -1, -1, 118, 119, 65, -1, 122, -1, 124, -1, 71, 72, 73, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, 0, 1, -1, 3, 4, 5, -1, 118, 119, -1, -1, 122, -1, 124, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, 135, 136, 137, 138, 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, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, -1, -1, 132, 133, 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, 119, -1, -1, 122, -1, 124, 125, -1, 127, 128, -1, -1, -1, 132, 133, 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, 119, -1, -1, 122, -1, 124, 125, 0, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, 0, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, 0, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, -1, 1, 128, 3, 4, 5, 132, 133, -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, 119, -1, -1, 122, -1, 124, 125, 1, -1, 3, 4, 5, -1, 132, 133, -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, 119, -1, 1, 122, 3, 124, 125, -1, -1, -1, -1, -1, -1, 132, 133, -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, -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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, -1, 135, -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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, 133, 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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, 133, 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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, 3, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, 3, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, 131, 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, 3, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, 131, 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, 119, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, 131, 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, 125, -1, 127, 128, 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, 128, 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, 128, 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, 128, 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, 128, 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, 0, 1, -1, 3, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, 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, 119, -1, -1, 122, -1, -1, 125, -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, 3, -1, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, 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, 3, -1, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, 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, 3, -1, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, 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, 119, -1, -1, 122, -1, -1, 125, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, 125, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, 125, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, -1, -1, 125, 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, 119, -1, -1, 122, -1, -1, 125, -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, -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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 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, 119, -1, -1, 122, 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, -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, -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, -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, -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, -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, -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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, 122, 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, 3, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 119, -1, -1, 122, 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, 119, -1, -1, 122, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, 128, 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, 119, 122, 125, 145, 146, 147, 149, 174, 211, 212, 213, 214, 215, 216, 268, 271, 272, 275, 276, 277, 278, 279, 280, 281, 283, 287, 290, 291, 292, 293, 294, 295, 300, 301, 310, 311, 312, 319, 320, 324, 327, 332, 361, 364, 365, 383, 384, 386, 387, 388, 389, 390, 391, 77, 131, 5, 31, 216, 385, 216, 122, 122, 122, 149, 216, 385, 281, 282, 319, 327, 37, 147, 216, 309, 310, 312, 314, 315, 316, 318, 319, 327, 330, 331, 336, 120, 125, 146, 147, 216, 129, 131, 125, 129, 128, 119, 120, 211, 216, 129, 149, 216, 129, 131, 128, 120, 129, 131, 129, 128, 129, 147, 216, 319, 1, 31, 37, 38, 125, 145, 147, 213, 215, 216, 268, 278, 279, 281, 283, 312, 316, 319, 327, 330, 331, 332, 334, 342, 343, 344, 345, 37, 38, 147, 319, 344, 122, 133, 1, 29, 30, 31, 32, 33, 65, 116, 117, 123, 145, 216, 267, 271, 273, 274, 281, 283, 287, 288, 289, 295, 299, 307, 308, 348, 349, 350, 351, 352, 353, 327, 122, 312, 319, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 47, 66, 85, 87, 100, 112, 113, 114, 115, 129, 149, 170, 171, 267, 272, 273, 281, 284, 288, 290, 298, 363, 366, 367, 368, 373, 374, 375, 31, 76, 131, 213, 215, 300, 364, 365, 383, 384, 391, 1, 213, 277, 294, 300, 332, 361, 387, 1, 386, 387, 0, 216, 385, 385, 5, 126, 385, 1, 4, 6, 8, 9, 65, 71, 72, 73, 84, 85, 98, 102, 103, 104, 105, 106, 107, 108, 109, 118, 119, 122, 124, 132, 133, 135, 136, 137, 138, 149, 175, 176, 216, 217, 218, 219, 220, 223, 224, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 385, 397, 398, 399, 400, 146, 216, 129, 149, 216, 281, 327, 133, 122, 133, 123, 307, 308, 352, 353, 327, 330, 331, 309, 314, 318, 319, 123, 319, 123, 319, 319, 85, 149, 201, 203, 205, 209, 210, 216, 228, 233, 249, 253, 299, 125, 120, 120, 125, 1, 68, 78, 80, 81, 88, 91, 92, 93, 94, 96, 98, 99, 122, 124, 125, 128, 150, 151, 152, 153, 154, 155, 156, 157, 172, 173, 175, 176, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 192, 196, 197, 198, 199, 216, 224, 247, 299, 311, 313, 319, 327, 332, 333, 362, 80, 81, 216, 267, 271, 281, 284, 287, 295, 302, 303, 1, 128, 198, 199, 147, 216, 1, 216, 269, 270, 1, 128, 270, 303, 65, 202, 204, 206, 207, 208, 216, 299, 1, 128, 198, 199, 303, 1, 128, 198, 199, 1, 128, 198, 199, 147, 216, 127, 127, 127, 129, 327, 312, 316, 319, 1, 126, 367, 374, 375, 367, 374, 375, 1, 125, 127, 127, 327, 125, 134, 146, 216, 242, 261, 265, 266, 127, 129, 149, 216, 128, 129, 128, 129, 319, 37, 122, 133, 135, 145, 147, 216, 267, 273, 281, 283, 288, 309, 310, 319, 325, 327, 328, 331, 1, 123, 127, 1, 123, 127, 1, 127, 1, 127, 123, 123, 312, 122, 312, 122, 122, 1, 125, 1, 128, 1, 37, 38, 125, 216, 267, 273, 281, 284, 288, 319, 344, 345, 1, 125, 1, 363, 366, 374, 375, 363, 366, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 85, 86, 88, 89, 90, 125, 131, 149, 193, 194, 195, 216, 224, 228, 243, 245, 249, 261, 262, 263, 324, 354, 355, 358, 359, 360, 367, 368, 369, 370, 371, 372, 374, 375, 377, 378, 379, 380, 381, 382, 128, 31, 216, 385, 216, 211, 212, 214, 215, 309, 310, 316, 319, 327, 332, 334, 367, 375, 213, 300, 126, 241, 242, 260, 123, 122, 228, 249, 122, 228, 249, 228, 249, 122, 216, 267, 273, 281, 284, 288, 306, 265, 122, 122, 306, 265, 122, 122, 122, 122, 122, 122, 228, 249, 123, 243, 245, 263, 273, 281, 283, 288, 296, 346, 385, 129, 134, 177, 178, 221, 225, 243, 129, 1, 128, 129, 216, 1, 7, 8, 9, 122, 130, 133, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 126, 244, 178, 221, 222, 230, 250, 119, 139, 140, 136, 137, 10, 11, 233, 253, 12, 13, 120, 121, 14, 15, 135, 141, 142, 16, 17, 143, 244, 123, 7, 8, 9, 122, 130, 133, 244, 119, 139, 140, 136, 137, 10, 11, 12, 13, 120, 121, 14, 15, 135, 141, 142, 16, 17, 143, 244, 123, 123, 107, 216, 299, 392, 395, 396, 129, 129, 134, 146, 265, 266, 134, 146, 265, 266, 123, 123, 123, 123, 309, 314, 318, 123, 123, 309, 11, 121, 127, 126, 122, 319, 327, 328, 65, 208, 216, 299, 208, 1, 216, 267, 281, 284, 295, 304, 299, 332, 333, 122, 149, 216, 216, 299, 1, 122, 304, 119, 122, 216, 299, 125, 324, 374, 375, 374, 375, 374, 125, 374, 375, 125, 1, 128, 1, 1, 125, 127, 127, 69, 70, 91, 95, 97, 128, 69, 70, 128, 125, 1, 196, 197, 1, 196, 197, 1, 126, 122, 131, 216, 285, 286, 309, 315, 317, 319, 327, 334, 335, 336, 1, 299, 307, 350, 327, 313, 319, 122, 131, 156, 157, 172, 173, 175, 176, 185, 216, 299, 120, 149, 216, 216, 267, 281, 284, 120, 120, 126, 127, 1, 125, 129, 28, 148, 216, 121, 127, 126, 216, 328, 330, 342, 342, 342, 125, 127, 128, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 221, 222, 224, 242, 261, 298, 339, 340, 309, 312, 314, 316, 318, 309, 316, 129, 243, 262, 337, 338, 374, 375, 374, 375, 342, 343, 342, 343, 134, 134, 134, 51, 348, 349, 1, 270, 129, 129, 1, 128, 198, 199, 1, 128, 198, 199, 129, 123, 216, 307, 308, 319, 327, 328, 352, 353, 134, 146, 265, 266, 319, 327, 331, 327, 122, 133, 325, 1, 1, 127, 1, 51, 216, 348, 349, 127, 1, 51, 216, 348, 349, 127, 1, 51, 216, 348, 349, 127, 51, 216, 348, 349, 3, 28, 44, 74, 75, 123, 321, 322, 323, 243, 146, 216, 128, 129, 125, 125, 131, 265, 266, 131, 122, 122, 1, 122, 52, 53, 54, 56, 57, 58, 59, 62, 86, 216, 263, 324, 354, 377, 381, 122, 216, 125, 125, 125, 221, 222, 245, 263, 122, 281, 122, 122, 189, 216, 125, 125, 125, 131, 130, 244, 1, 130, 125, 127, 245, 263, 244, 123, 127, 245, 1, 369, 370, 369, 370, 354, 355, 363, 366, 354, 355, 363, 366, 1, 1, 385, 385, 147, 216, 129, 129, 327, 316, 319, 367, 375, 367, 375, 375, 242, 143, 125, 143, 65, 145, 216, 273, 281, 283, 288, 297, 347, 216, 298, 120, 122, 133, 216, 267, 273, 281, 284, 288, 319, 326, 327, 329, 216, 267, 273, 281, 284, 288, 305, 245, 346, 374, 216, 133, 329, 305, 243, 385, 385, 385, 243, 347, 123, 216, 273, 281, 283, 288, 328, 123, 130, 1, 168, 169, 1, 128, 127, 134, 1, 168, 169, 128, 1, 168, 169, 1, 216, 123, 222, 225, 226, 262, 1, 216, 245, 263, 221, 243, 1, 230, 250, 230, 250, 230, 250, 231, 251, 231, 251, 232, 252, 232, 252, 233, 253, 233, 253, 233, 253, 221, 222, 235, 254, 221, 222, 235, 254, 221, 222, 236, 255, 221, 222, 237, 256, 221, 222, 238, 257, 239, 258, 240, 259, 131, 221, 222, 245, 246, 263, 264, 221, 243, 1, 216, 123, 225, 226, 1, 216, 245, 263, 221, 243, 230, 250, 230, 250, 230, 250, 231, 251, 231, 251, 232, 252, 232, 252, 233, 253, 233, 253, 233, 253, 233, 253, 221, 222, 235, 254, 221, 222, 235, 254, 221, 222, 236, 255, 221, 222, 237, 256, 221, 222, 238, 257, 239, 258, 240, 259, 131, 245, 246, 263, 264, 221, 243, 120, 121, 216, 393, 394, 216, 128, 392, 395, 396, 396, 134, 134, 134, 134, 134, 134, 209, 201, 203, 205, 216, 319, 327, 121, 126, 328, 121, 129, 120, 129, 216, 267, 281, 284, 328, 319, 327, 334, 335, 189, 286, 309, 319, 327, 129, 216, 129, 216, 328, 216, 319, 122, 125, 128, 179, 180, 179, 180, 374, 374, 374, 218, 374, 374, 1, 339, 340, 123, 265, 266, 129, 127, 1, 299, 307, 350, 327, 309, 317, 319, 131, 324, 216, 122, 313, 313, 216, 1, 1, 286, 210, 120, 208, 208, 265, 266, 269, 198, 199, 1, 128, 270, 126, 131, 126, 131, 207, 203, 216, 126, 216, 126, 374, 375, 1, 125, 127, 125, 127, 125, 160, 161, 164, 165, 166, 128, 158, 161, 125, 128, 160, 161, 164, 165, 166, 126, 37, 334, 335, 336, 337, 338, 341, 1, 128, 270, 1, 128, 270, 1, 128, 198, 199, 319, 327, 328, 123, 123, 123, 134, 134, 134, 327, 325, 123, 352, 353, 134, 146, 265, 266, 348, 349, 299, 348, 348, 348, 349, 123, 122, 123, 127, 322, 123, 123, 123, 1, 168, 169, 354, 355, 363, 366, 131, 131, 354, 355, 363, 366, 245, 263, 245, 263, 123, 245, 263, 131, 265, 266, 131, 122, 122, 354, 122, 222, 263, 122, 131, 56, 1, 123, 125, 216, 245, 263, 376, 125, 125, 125, 125, 125, 385, 122, 243, 243, 216, 354, 355, 363, 366, 90, 222, 262, 88, 89, 90, 243, 262, 222, 262, 243, 262, 120, 316, 375, 375, 125, 245, 246, 263, 264, 245, 246, 263, 264, 145, 146, 145, 273, 281, 283, 288, 328, 123, 123, 123, 328, 210, 123, 319, 329, 352, 353, 265, 266, 120, 327, 122, 326, 133, 120, 133, 216, 267, 273, 281, 284, 288, 329, 123, 123, 123, 123, 265, 266, 133, 133, 329, 127, 123, 127, 127, 127, 123, 230, 250, 385, 1, 128, 221, 243, 1, 1, 123, 127, 123, 134, 134, 1, 127, 131, 131, 127, 131, 131, 123, 134, 134, 131, 131, 131, 131, 216, 216, 125, 127, 216, 385, 128, 128, 319, 327, 203, 210, 120, 129, 129, 216, 327, 319, 123, 327, 309, 123, 129, 129, 216, 123, 1, 168, 169, 285, 319, 216, 122, 309, 317, 317, 265, 266, 122, 123, 121, 210, 121, 121, 125, 1, 125, 201, 200, 299, 201, 200, 205, 126, 129, 1, 162, 163, 1, 162, 163, 375, 1, 339, 340, 127, 128, 337, 338, 1, 125, 1, 125, 327, 325, 123, 123, 123, 134, 134, 134, 328, 331, 245, 123, 322, 1, 354, 355, 363, 366, 354, 355, 363, 366, 123, 123, 123, 123, 1, 354, 123, 245, 354, 355, 131, 131, 263, 123, 245, 263, 56, 263, 376, 385, 122, 354, 131, 125, 1, 125, 1, 123, 263, 376, 3, 123, 131, 385, 123, 123, 127, 122, 122, 189, 131, 131, 131, 131, 131, 131, 131, 131, 123, 123, 1, 123, 121, 319, 327, 329, 123, 123, 123, 134, 134, 210, 326, 123, 352, 353, 265, 266, 210, 265, 266, 120, 133, 122, 337, 134, 134, 265, 266, 265, 266, 133, 346, 216, 216, 243, 1, 222, 262, 221, 222, 221, 222, 242, 260, 221, 222, 242, 260, 221, 222, 221, 222, 242, 260, 221, 222, 242, 260, 221, 222, 242, 260, 221, 222, 242, 260, 221, 222, 242, 260, 221, 222, 242, 260, 393, 125, 125, 121, 210, 129, 374, 309, 126, 129, 1, 122, 131, 131, 121, 198, 199, 125, 198, 199, 126, 328, 126, 205, 341, 128, 337, 338, 1, 198, 199, 198, 199, 123, 354, 354, 354, 354, 354, 355, 123, 122, 376, 123, 245, 263, 245, 354, 1, 123, 245, 263, 133, 356, 357, 385, 125, 357, 3, 123, 131, 129, 189, 243, 243, 1, 1, 326, 123, 121, 123, 123, 134, 134, 121, 134, 134, 210, 265, 266, 346, 134, 134, 134, 134, 265, 266, 123, 123, 123, 123, 121, 339, 265, 266, 265, 266, 198, 199, 201, 201, 127, 128, 1, 64, 64, 245, 263, 123, 245, 263, 123, 125, 123, 125, 354, 355, 123, 354, 355, 216, 123, 127, 131, 122, 3, 123, 131, 357, 125, 357, 73, 189, 190, 191, 123, 123, 123, 127, 121, 134, 134, 123, 134, 134, 125, 128, 354, 354, 123, 123, 125, 354, 245, 354, 355, 134, 125, 356, 357, 243, 357, 125, 357, 123, 131, 3, 123, 131, 374, 374, 128, 190, 129, 189, 230, 250, 337, 123, 385, 123, 123, 123, 123, 131, 125, 357, 357, 125, 357, 191, 123, 354, 122, 125, 125, 125, 357, 123, 123, 123, 131, 128, 243, 123, 125, 125, 125, 357, 123, 125, 123, 125
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 * MkExpCast(struct TypeName * typeName, struct Expression * expression);
654
655 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
656
657 extern struct Enumerator * MkEnumerator(struct Identifier * id, struct Expression * exp);
658
659 extern struct Specifier * MkSpecifierTypeOf(struct Expression * expression);
660
661 extern struct Expression * MkExpDBOpen(struct Expression * ds, struct Expression * dbName);
662
663 extern struct Expression * MkExpDBField(char *  table, struct Identifier * id);
664
665 extern struct Expression * MkExpDBIndex(char *  table, struct Identifier * id);
666
667 extern struct Expression * MkExpDBTable(char *  table);
668
669 struct Declarator;
670
671 extern void FreeDeclarator(struct Declarator * decl);
672
673 extern struct ClassFunction * MkClassFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Specifier * _class, struct Declarator * decl, struct __ecereNameSpace__ecere__sys__OldList * declList);
674
675 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
676
677 extern struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters);
678
679 extern struct TemplateDatatype * MkTemplateDatatype(struct __ecereNameSpace__ecere__sys__OldList *  specifiers, struct Declarator * decl);
680
681 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
682
683 extern struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList *  specifiers, struct Declarator * decl);
684
685 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
686
687 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
688
689 extern struct Declarator * MkDeclaratorEnumArray(struct Declarator * declarator, struct Specifier * _class);
690
691 extern struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator);
692
693 extern struct Declarator * MkDeclaratorExtended(struct ExtDecl * extended, struct Declarator * declarator);
694
695 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
696
697 extern struct Declarator * MkDeclaratorExtendedEnd(struct ExtDecl * extended, struct Declarator * declarator);
698
699 extern struct TypeName * MkTypeNameGuessDecl(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
700
701 struct Attribute;
702
703 extern void FreeAttribute(struct Attribute * attr);
704
705 extern struct Attribute * MkAttribute(char * attr, struct Expression * exp);
706
707 struct Attribute
708 {
709 struct Attribute * prev;
710 struct Attribute * next;
711 struct Location loc;
712 char * attr;
713 struct Expression * exp;
714 } ecere_gcc_struct;
715
716 struct Initializer;
717
718 extern void FreeInitializer(struct Initializer * initializer);
719
720 extern struct MemberInit * MkMemberInitExp(struct Expression * idExp, struct Initializer * initializer);
721
722 struct MemberInit
723 {
724 struct MemberInit * prev;
725 struct MemberInit * next;
726 struct Location loc;
727 struct Location realLoc;
728 struct __ecereNameSpace__ecere__sys__OldList *  identifiers;
729 struct Initializer * initializer;
730 unsigned int used;
731 unsigned int variable;
732 unsigned int takeOutExp;
733 } ecere_gcc_struct;
734
735 struct Initializer
736 {
737 struct Initializer * prev;
738 struct Initializer * next;
739 struct Location loc;
740 int type;
741 union
742 {
743 struct Expression * exp;
744 struct __ecereNameSpace__ecere__sys__OldList *  list;
745 } ecere_gcc_struct __anon1;
746 unsigned int isConstant;
747 struct Identifier * id;
748 } ecere_gcc_struct;
749
750 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
751
752 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
753
754 extern struct ClassDef * MkClassDefClassPropertyValue(struct Identifier * id, struct Initializer * initializer);
755
756 extern struct Expression * MkExpExtensionInitializer(struct TypeName * typeName, struct Initializer * initializer);
757
758 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
759
760 struct InitDeclarator;
761
762 extern void FreeInitDeclarator(struct InitDeclarator * decl);
763
764 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
765
766 struct InitDeclarator
767 {
768 struct InitDeclarator * prev;
769 struct InitDeclarator * next;
770 struct Location loc;
771 struct Declarator * declarator;
772 struct Initializer * initializer;
773 } ecere_gcc_struct;
774
775 struct Statement;
776
777 extern void FreeStatement(struct Statement * stmt);
778
779 extern void ProcessClassFunctionBody(struct ClassFunction * func, struct Statement * body);
780
781 struct Expression
782 {
783 struct Expression * prev;
784 struct Expression * next;
785 struct Location loc;
786 int type;
787 union
788 {
789 struct
790 {
791 char *  constant;
792 struct Identifier * identifier;
793 } ecere_gcc_struct __anon1;
794 struct Statement * compound;
795 struct Instantiation * instance;
796 struct
797 {
798 char *  string;
799 unsigned int intlString;
800 unsigned int wideString;
801 } ecere_gcc_struct __anon2;
802 struct __ecereNameSpace__ecere__sys__OldList *  list;
803 struct
804 {
805 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
806 struct Declarator * decl;
807 } ecere_gcc_struct _classExp;
808 struct
809 {
810 struct Identifier * id;
811 } ecere_gcc_struct classData;
812 struct
813 {
814 struct Expression * exp;
815 struct __ecereNameSpace__ecere__sys__OldList * arguments;
816 struct Location argLoc;
817 } ecere_gcc_struct call;
818 struct
819 {
820 struct Expression * exp;
821 struct __ecereNameSpace__ecere__sys__OldList * index;
822 } ecere_gcc_struct index;
823 struct
824 {
825 struct Expression * exp;
826 struct Identifier * member;
827 int memberType;
828 unsigned int thisPtr;
829 } ecere_gcc_struct member;
830 struct
831 {
832 int op;
833 struct Expression * exp1;
834 struct Expression * exp2;
835 } ecere_gcc_struct op;
836 struct TypeName * typeName;
837 struct Specifier * _class;
838 struct
839 {
840 struct TypeName * typeName;
841 struct Expression * exp;
842 } ecere_gcc_struct cast;
843 struct
844 {
845 struct Expression * cond;
846 struct __ecereNameSpace__ecere__sys__OldList * exp;
847 struct Expression * elseExp;
848 } ecere_gcc_struct cond;
849 struct
850 {
851 struct TypeName * typeName;
852 struct Expression * size;
853 } ecere_gcc_struct _new;
854 struct
855 {
856 struct TypeName * typeName;
857 struct Expression * size;
858 struct Expression * exp;
859 } ecere_gcc_struct _renew;
860 struct
861 {
862 char * table;
863 struct Identifier * id;
864 } ecere_gcc_struct db;
865 struct
866 {
867 struct Expression * ds;
868 struct Expression * name;
869 } ecere_gcc_struct dbopen;
870 struct
871 {
872 struct TypeName * typeName;
873 struct Initializer * initializer;
874 } ecere_gcc_struct initializer;
875 struct
876 {
877 struct Expression * exp;
878 struct TypeName * typeName;
879 } ecere_gcc_struct vaArg;
880 } ecere_gcc_struct __anon1;
881 unsigned int debugValue;
882 struct __ecereNameSpace__ecere__com__DataValue val;
883 uint64 address;
884 unsigned int hasAddress;
885 struct Type * expType;
886 struct Type * destType;
887 unsigned int usage;
888 int tempCount;
889 unsigned int byReference;
890 unsigned int isConstant;
891 unsigned int addedThis;
892 unsigned int needCast;
893 unsigned int thisPtr;
894 unsigned int opDestType;
895 unsigned int needTemplateCast;
896 } ecere_gcc_struct;
897
898 extern struct PropertyDef * MkProperty(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Identifier * id, struct Statement * setStmt, struct Statement * getStmt);
899
900 extern struct PropertyWatch * MkPropertyWatch(struct __ecereNameSpace__ecere__sys__OldList * properties, struct Statement * compound);
901
902 extern struct PropertyWatch * MkDeleteWatch(struct Statement * compound);
903
904 extern struct Statement * MkWatchStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
905
906 extern struct Statement * MkStopWatchingStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
907
908 extern struct Statement * MkFireWatchersStmt(struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
909
910 extern struct Expression * MkExpExtensionCompound(struct Statement * compound);
911
912 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
913
914 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);
915
916 extern struct Statement * MkLabeledStmt(struct Identifier * id, struct Statement * statement);
917
918 extern struct Statement * MkCaseStmt(struct Expression * exp, struct Statement * statement);
919
920 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
921
922 extern struct Statement * MkIfStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement, struct Statement * elseStmt);
923
924 extern struct Statement * MkSwitchStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement);
925
926 extern struct Statement * MkWhileStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement);
927
928 extern struct Statement * MkDoWhileStmt(struct Statement * statement, struct __ecereNameSpace__ecere__sys__OldList * exp);
929
930 extern struct Statement * MkForStmt(struct Statement * init, struct Statement * check, struct __ecereNameSpace__ecere__sys__OldList * inc, struct Statement * statement);
931
932 extern struct Statement * MkForEachStmt(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * exp, struct __ecereNameSpace__ecere__sys__OldList * filter, struct Statement * statement);
933
934 extern struct Statement * MkGotoStmt(struct Identifier * id);
935
936 extern struct Statement * MkContinueStmt(void);
937
938 extern struct Statement * MkBreakStmt(void);
939
940 extern struct Statement * MkReturnStmt(struct __ecereNameSpace__ecere__sys__OldList * exp);
941
942 struct Declaration;
943
944 extern void FreeDeclaration(struct Declaration * decl);
945
946 struct Statement
947 {
948 struct Statement * prev;
949 struct Statement * next;
950 struct Location loc;
951 int type;
952 union
953 {
954 struct __ecereNameSpace__ecere__sys__OldList *  expressions;
955 struct
956 {
957 struct Identifier * id;
958 struct Statement * stmt;
959 } ecere_gcc_struct labeled;
960 struct
961 {
962 struct Expression * exp;
963 struct Statement * stmt;
964 } ecere_gcc_struct caseStmt;
965 struct
966 {
967 struct __ecereNameSpace__ecere__sys__OldList * declarations;
968 struct __ecereNameSpace__ecere__sys__OldList * statements;
969 struct Context * context;
970 unsigned int isSwitch;
971 } ecere_gcc_struct compound;
972 struct
973 {
974 struct __ecereNameSpace__ecere__sys__OldList * exp;
975 struct Statement * stmt;
976 struct Statement * elseStmt;
977 } ecere_gcc_struct ifStmt;
978 struct
979 {
980 struct __ecereNameSpace__ecere__sys__OldList * exp;
981 struct Statement * stmt;
982 } ecere_gcc_struct switchStmt;
983 struct
984 {
985 struct __ecereNameSpace__ecere__sys__OldList * exp;
986 struct Statement * stmt;
987 } ecere_gcc_struct whileStmt;
988 struct
989 {
990 struct __ecereNameSpace__ecere__sys__OldList * exp;
991 struct Statement * stmt;
992 } ecere_gcc_struct doWhile;
993 struct
994 {
995 struct Statement * init;
996 struct Statement * check;
997 struct __ecereNameSpace__ecere__sys__OldList * increment;
998 struct Statement * stmt;
999 } ecere_gcc_struct forStmt;
1000 struct
1001 {
1002 struct Identifier * id;
1003 } ecere_gcc_struct gotoStmt;
1004 struct
1005 {
1006 struct Specifier * spec;
1007 char * statements;
1008 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
1009 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
1010 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
1011 } ecere_gcc_struct asmStmt;
1012 struct
1013 {
1014 struct Expression * watcher;
1015 struct Expression * object;
1016 struct __ecereNameSpace__ecere__sys__OldList * watches;
1017 } ecere_gcc_struct _watch;
1018 struct
1019 {
1020 struct Identifier * id;
1021 struct __ecereNameSpace__ecere__sys__OldList * exp;
1022 struct __ecereNameSpace__ecere__sys__OldList * filter;
1023 struct Statement * stmt;
1024 } ecere_gcc_struct forEachStmt;
1025 struct Declaration * decl;
1026 } ecere_gcc_struct __anon1;
1027 } ecere_gcc_struct;
1028
1029 struct ClassDef
1030 {
1031 struct ClassDef * prev;
1032 struct ClassDef * next;
1033 struct Location loc;
1034 int type;
1035 union
1036 {
1037 struct Declaration * decl;
1038 struct ClassFunction * function;
1039 struct __ecereNameSpace__ecere__sys__OldList *  defProperties;
1040 struct PropertyDef * propertyDef;
1041 struct PropertyWatch * propertyWatch;
1042 char *  designer;
1043 struct Identifier * defaultProperty;
1044 struct
1045 {
1046 struct Identifier * id;
1047 struct Initializer * initializer;
1048 } ecere_gcc_struct __anon1;
1049 } ecere_gcc_struct __anon1;
1050 int memberAccess;
1051 void *  object;
1052 } ecere_gcc_struct;
1053
1054 extern struct ClassDef * MkClassDefDeclaration(struct Declaration * decl);
1055
1056 extern struct Declaration * MkStructDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * declarators, struct Specifier * extStorage);
1057
1058 extern struct Declaration * MkDeclarationClassInst(struct Instantiation * inst);
1059
1060 extern struct ClassDef * MkClassDefClassData(struct Declaration * decl);
1061
1062 extern struct Statement * MkBadDeclStmt(struct Declaration * decl);
1063
1064 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
1065
1066 extern struct Declaration * MkDeclarationInst(struct Instantiation * inst);
1067
1068 extern struct Declaration * MkDeclarationDefine(struct Identifier * id, struct Expression * exp);
1069
1070 struct FunctionDefinition;
1071
1072 extern void FreeFunction(struct FunctionDefinition * func);
1073
1074 extern struct FunctionDefinition * MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList);
1075
1076 extern void ProcessFunctionBody(struct FunctionDefinition * func, struct Statement * body);
1077
1078 struct External;
1079
1080 extern void FreeExternal(struct External * external);
1081
1082 extern struct External * MkExternalFunction(struct FunctionDefinition * function);
1083
1084 extern struct External * MkExternalClass(struct ClassDefinition * _class);
1085
1086 extern struct External * MkExternalDeclaration(struct Declaration * declaration);
1087
1088 extern struct External * MkExternalImport(char *  name, int importType, int importAccess);
1089
1090 extern struct External * MkExternalNameSpace(struct Identifier * identifier);
1091
1092 struct Symbol;
1093
1094 extern struct Symbol * _DeclClass(struct Specifier * _class, const char *  name);
1095
1096 struct Identifier
1097 {
1098 struct Identifier * prev;
1099 struct Identifier * next;
1100 struct Location loc;
1101 struct Symbol * classSym;
1102 struct Specifier * _class;
1103 char *  string;
1104 struct Identifier * badID;
1105 } ecere_gcc_struct;
1106
1107 struct Specifier
1108 {
1109 struct Specifier * prev;
1110 struct Specifier * next;
1111 struct Location loc;
1112 int type;
1113 union
1114 {
1115 int specifier;
1116 struct
1117 {
1118 struct ExtDecl * extDecl;
1119 char *  name;
1120 struct Symbol * symbol;
1121 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
1122 struct Specifier * nsSpec;
1123 } ecere_gcc_struct __anon1;
1124 struct
1125 {
1126 struct Identifier * id;
1127 struct __ecereNameSpace__ecere__sys__OldList *  list;
1128 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
1129 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1130 unsigned int addNameSpace;
1131 struct Context * ctx;
1132 struct ExtDecl * extDeclStruct;
1133 } ecere_gcc_struct __anon2;
1134 struct Expression * expression;
1135 struct Specifier * _class;
1136 struct TemplateParameter * templateParameter;
1137 } ecere_gcc_struct __anon1;
1138 } ecere_gcc_struct;
1139
1140 struct ClassFunction
1141 {
1142 struct ClassFunction * prev;
1143 struct ClassFunction * next;
1144 struct Location loc;
1145 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1146 struct Declarator * declarator;
1147 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1148 struct Statement * body;
1149 struct __ecereNameSpace__ecere__com__Class * _class;
1150 struct __ecereNameSpace__ecere__sys__OldList attached;
1151 int declMode;
1152 struct Type * type;
1153 struct Symbol * propSet;
1154 unsigned int isVirtual;
1155 unsigned int isConstructor;
1156 unsigned int isDestructor;
1157 unsigned int dontMangle;
1158 int id;
1159 int idCode;
1160 } ecere_gcc_struct;
1161
1162 struct Declarator
1163 {
1164 struct Declarator * prev;
1165 struct Declarator * next;
1166 struct Location loc;
1167 int type;
1168 struct Symbol * symbol;
1169 struct Declarator * declarator;
1170 union
1171 {
1172 struct Identifier * identifier;
1173 struct
1174 {
1175 struct Expression * exp;
1176 struct Expression * posExp;
1177 struct Attrib * attrib;
1178 } ecere_gcc_struct structDecl;
1179 struct
1180 {
1181 struct Expression * exp;
1182 struct Specifier * enumClass;
1183 } ecere_gcc_struct array;
1184 struct
1185 {
1186 struct __ecereNameSpace__ecere__sys__OldList * parameters;
1187 } ecere_gcc_struct function;
1188 struct
1189 {
1190 struct Pointer * pointer;
1191 } ecere_gcc_struct pointer;
1192 struct
1193 {
1194 struct ExtDecl * extended;
1195 } ecere_gcc_struct extended;
1196 } ecere_gcc_struct __anon1;
1197 } ecere_gcc_struct;
1198
1199 struct Instantiation
1200 {
1201 struct Instantiation * prev;
1202 struct Instantiation * next;
1203 struct Location loc;
1204 struct Specifier * _class;
1205 struct Expression * exp;
1206 struct __ecereNameSpace__ecere__sys__OldList *  members;
1207 struct Symbol * symbol;
1208 unsigned int fullSet;
1209 unsigned int isConstant;
1210 unsigned char *  data;
1211 struct Location nameLoc;
1212 struct Location insideLoc;
1213 unsigned int built;
1214 } ecere_gcc_struct;
1215
1216 struct PropertyDef
1217 {
1218 struct PropertyDef * prev;
1219 struct PropertyDef * next;
1220 struct Location loc;
1221 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1222 struct Declarator * declarator;
1223 struct Identifier * id;
1224 struct Statement * getStmt;
1225 struct Statement * setStmt;
1226 struct Statement * issetStmt;
1227 struct Symbol * symbol;
1228 struct Expression * category;
1229 struct
1230 {
1231 unsigned int conversion : 1;
1232 unsigned int isWatchable : 1;
1233 unsigned int isDBProp : 1;
1234 } ecere_gcc_struct __anon1;
1235 } ecere_gcc_struct;
1236
1237 struct Declaration
1238 {
1239 struct Declaration * prev;
1240 struct Declaration * next;
1241 struct Location loc;
1242 int type;
1243 union
1244 {
1245 struct
1246 {
1247 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1248 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
1249 } ecere_gcc_struct __anon1;
1250 struct Instantiation * inst;
1251 struct
1252 {
1253 struct Identifier * id;
1254 struct Expression * exp;
1255 } ecere_gcc_struct __anon2;
1256 } ecere_gcc_struct __anon1;
1257 struct Specifier * extStorage;
1258 struct Symbol * symbol;
1259 int declMode;
1260 } ecere_gcc_struct;
1261
1262 extern struct Symbol * DeclClassAddNameSpace(struct Specifier * _class, const char *  className);
1263
1264 extern struct Symbol * DeclClass(struct Specifier * _class, const char *  name);
1265
1266 struct ClassDefinition
1267 {
1268 struct ClassDefinition * prev;
1269 struct ClassDefinition * next;
1270 struct Location loc;
1271 struct Specifier * _class;
1272 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
1273 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1274 struct Symbol * symbol;
1275 struct Location blockStart;
1276 struct Location nameLoc;
1277 int declMode;
1278 unsigned int deleteWatchable;
1279 } ecere_gcc_struct;
1280
1281 extern struct ClassDefinition * MkClass(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs, struct __ecereNameSpace__ecere__sys__OldList * definitions);
1282
1283 extern void SetupBaseSpecs(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs);
1284
1285 struct FunctionDefinition
1286 {
1287 struct FunctionDefinition * prev;
1288 struct FunctionDefinition * next;
1289 struct Location loc;
1290 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1291 struct Declarator * declarator;
1292 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1293 struct Statement * body;
1294 struct __ecereNameSpace__ecere__com__Class * _class;
1295 struct __ecereNameSpace__ecere__sys__OldList attached;
1296 int declMode;
1297 struct Type * type;
1298 struct Symbol * propSet;
1299 int tempCount;
1300 unsigned int propertyNoThis;
1301 } ecere_gcc_struct;
1302
1303 struct DBTableDef
1304 {
1305 char *  name;
1306 struct Symbol * symbol;
1307 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1308 int declMode;
1309 } ecere_gcc_struct;
1310
1311 struct External
1312 {
1313 struct External * prev;
1314 struct External * next;
1315 struct Location loc;
1316 int type;
1317 struct Symbol * symbol;
1318 union
1319 {
1320 struct FunctionDefinition * function;
1321 struct ClassDefinition * _class;
1322 struct Declaration * declaration;
1323 char *  importString;
1324 struct Identifier * id;
1325 struct DBTableDef * table;
1326 } ecere_gcc_struct __anon1;
1327 int importType;
1328 struct External * fwdDecl;
1329 struct __ecereNameSpace__ecere__com__Instance * outgoing;
1330 struct __ecereNameSpace__ecere__com__Instance * incoming;
1331 int nonBreakableIncoming;
1332 } ecere_gcc_struct;
1333
1334 extern struct External * MkExternalDBTable(struct DBTableDef * table);
1335
1336 extern struct DBTableDef * MkDBTableDef(char *  name, struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList *  definitions);
1337
1338 struct __ecereNameSpace__ecere__sys__BinaryTree;
1339
1340 struct __ecereNameSpace__ecere__sys__BinaryTree
1341 {
1342 struct __ecereNameSpace__ecere__sys__BTNode * root;
1343 int count;
1344 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
1345 void (*  FreeKey)(void *  key);
1346 } ecere_gcc_struct;
1347
1348 struct __ecereNameSpace__ecere__com__Method;
1349
1350 struct __ecereNameSpace__ecere__com__Method
1351 {
1352 const char *  name;
1353 struct __ecereNameSpace__ecere__com__Method * parent;
1354 struct __ecereNameSpace__ecere__com__Method * left;
1355 struct __ecereNameSpace__ecere__com__Method * right;
1356 int depth;
1357 int (*  function)();
1358 int vid;
1359 int type;
1360 struct __ecereNameSpace__ecere__com__Class * _class;
1361 void *  symbol;
1362 const char *  dataTypeString;
1363 struct Type * dataType;
1364 int memberAccess;
1365 } ecere_gcc_struct;
1366
1367 struct Symbol
1368 {
1369 char *  string;
1370 struct Symbol * parent;
1371 struct Symbol * left;
1372 struct Symbol * right;
1373 int depth;
1374 struct Type * type;
1375 union
1376 {
1377 struct __ecereNameSpace__ecere__com__Method * method;
1378 struct __ecereNameSpace__ecere__com__Property * _property;
1379 struct __ecereNameSpace__ecere__com__Class * registered;
1380 } ecere_gcc_struct __anon1;
1381 unsigned int notYetDeclared;
1382 union
1383 {
1384 struct
1385 {
1386 struct External * pointerExternal;
1387 struct External * structExternal;
1388 } ecere_gcc_struct __anon1;
1389 struct
1390 {
1391 struct External * externalGet;
1392 struct External * externalSet;
1393 struct External * externalPtr;
1394 struct External * externalIsSet;
1395 } ecere_gcc_struct __anon2;
1396 struct
1397 {
1398 struct External * methodExternal;
1399 struct External * methodCodeExternal;
1400 } ecere_gcc_struct __anon3;
1401 } ecere_gcc_struct __anon2;
1402 unsigned int imported;
1403 unsigned int declaredStructSym;
1404 struct __ecereNameSpace__ecere__com__Class * _class;
1405 unsigned int declaredStruct;
1406 unsigned int needConstructor;
1407 unsigned int needDestructor;
1408 char *  constructorName;
1409 char *  structName;
1410 char *  className;
1411 char *  destructorName;
1412 struct ModuleImport * module;
1413 struct ClassImport * _import;
1414 struct Location nameLoc;
1415 unsigned int isParam;
1416 unsigned int isRemote;
1417 unsigned int isStruct;
1418 unsigned int fireWatchersDone;
1419 int declaring;
1420 unsigned int classData;
1421 unsigned int isStatic;
1422 char *  shortName;
1423 struct __ecereNameSpace__ecere__sys__OldList *  templateParams;
1424 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
1425 struct Context * ctx;
1426 int isIterator;
1427 struct Expression * propCategory;
1428 unsigned int mustRegister;
1429 } ecere_gcc_struct;
1430
1431 struct AsmField;
1432
1433 typedef union YYSTYPE
1434 {
1435 int specifierType;
1436 int i;
1437 int declMode;
1438 struct Identifier * id;
1439 struct Expression * exp;
1440 struct Specifier * specifier;
1441 struct __ecereNameSpace__ecere__sys__OldList * list;
1442 struct Enumerator * enumerator;
1443 struct Declarator * declarator;
1444 struct Pointer * pointer;
1445 struct Initializer * initializer;
1446 struct InitDeclarator * initDeclarator;
1447 struct TypeName * typeName;
1448 struct Declaration * declaration;
1449 struct Statement * stmt;
1450 struct FunctionDefinition * function;
1451 struct External * external;
1452 struct Context * context;
1453 struct AsmField * asmField;
1454 struct Attrib * attrib;
1455 struct ExtDecl * extDecl;
1456 struct Attribute * attribute;
1457 struct Instantiation * instance;
1458 struct MembersInit * membersInit;
1459 struct MemberInit * memberInit;
1460 struct ClassFunction * classFunction;
1461 struct ClassDefinition * _class;
1462 struct ClassDef * classDef;
1463 struct PropertyDef * prop;
1464 char * string;
1465 struct Symbol * symbol;
1466 struct PropertyWatch * propertyWatch;
1467 struct TemplateParameter * templateParameter;
1468 struct TemplateArgument * templateArgument;
1469 struct TemplateDatatype * templateDatatype;
1470 struct DBTableEntry * dbtableEntry;
1471 struct DBIndexItem * dbindexItem;
1472 struct DBTableDef * dbtableDef;
1473 } ecere_gcc_struct YYSTYPE;
1474
1475 extern YYSTYPE yylval;
1476
1477 union yyalloc
1478 {
1479 yytype_int16 yyss_alloc;
1480 YYSTYPE yyvs_alloc;
1481 struct Location yyls_alloc;
1482 } ecere_gcc_struct;
1483
1484 static void yy_symbol_value_print(FILE * yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct Location const * const yylocationp)
1485 {
1486 if(!yyvaluep)
1487 return ;
1488 ((void)(yylocationp));
1489 ((void)(yyoutput));
1490 switch(yytype)
1491 {
1492 default:
1493 break;
1494 }
1495 }
1496
1497 YYSTYPE yylval;
1498
1499 extern struct AsmField * MkAsmField(char *  command, struct Expression * expression, struct Identifier * symbolic);
1500
1501 struct AsmField
1502 {
1503 struct AsmField * prev;
1504 struct AsmField * next;
1505 struct Location loc;
1506 char *  command;
1507 struct Expression * expression;
1508 struct Identifier * symbolic;
1509 } ecere_gcc_struct;
1510
1511 static void yy_symbol_print(FILE * yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct Location const * const yylocationp)
1512 {
1513 if(yytype < 144)
1514 fprintf(yyoutput, "token %s (", yytname[yytype]);
1515 else
1516 fprintf(yyoutput, "nterm %s (", yytname[yytype]);
1517 ((void)0);
1518 fprintf(yyoutput, ": ");
1519 yy_symbol_value_print(yyoutput, yytype, yyvaluep, yylocationp);
1520 fprintf(yyoutput, ")");
1521 }
1522
1523 static void yy_reduce_print(YYSTYPE * yyvsp, struct Location * yylsp, int yyrule)
1524 {
1525 int yynrhs = yyr2[yyrule];
1526 int yyi;
1527 unsigned long int yylno = yyrline[yyrule];
1528
1529 fprintf((bsl_stderr()), "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno);
1530 for(yyi = 0; yyi < yynrhs; yyi++)
1531 {
1532 fprintf((bsl_stderr()), "   $%d = ", yyi + 1);
1533 yy_symbol_print((bsl_stderr()), yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]), &(yylsp[(yyi + 1) - (yynrhs)]));
1534 fprintf((bsl_stderr()), "\n");
1535 }
1536 }
1537
1538 struct __ecereNameSpace__ecere__com__NameSpace;
1539
1540 struct __ecereNameSpace__ecere__com__NameSpace
1541 {
1542 const char *  name;
1543 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
1544 struct __ecereNameSpace__ecere__com__NameSpace *  left;
1545 struct __ecereNameSpace__ecere__com__NameSpace *  right;
1546 int depth;
1547 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
1548 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1549 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1550 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1551 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1552 } ecere_gcc_struct;
1553
1554 struct __ecereNameSpace__ecere__com__Application
1555 {
1556 int argc;
1557 const char * *  argv;
1558 int exitCode;
1559 unsigned int isGUIApp;
1560 struct __ecereNameSpace__ecere__sys__OldList allModules;
1561 char *  parsedCommand;
1562 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1563 } ecere_gcc_struct;
1564
1565 struct __ecereNameSpace__ecere__com__DataMember;
1566
1567 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
1568 {
1569 union
1570 {
1571 struct
1572 {
1573 const char *  dataTypeString;
1574 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1575 } ecere_gcc_struct __anon1;
1576 struct __ecereNameSpace__ecere__com__DataValue expression;
1577 struct
1578 {
1579 const char *  memberString;
1580 union
1581 {
1582 struct __ecereNameSpace__ecere__com__DataMember * member;
1583 struct __ecereNameSpace__ecere__com__Property * prop;
1584 struct __ecereNameSpace__ecere__com__Method * method;
1585 } ecere_gcc_struct __anon1;
1586 } ecere_gcc_struct __anon2;
1587 } ecere_gcc_struct __anon1;
1588 } ecere_gcc_struct;
1589
1590 struct __ecereNameSpace__ecere__com__DataMember
1591 {
1592 struct __ecereNameSpace__ecere__com__DataMember * prev;
1593 struct __ecereNameSpace__ecere__com__DataMember * next;
1594 const char *  name;
1595 unsigned int isProperty;
1596 int memberAccess;
1597 int id;
1598 struct __ecereNameSpace__ecere__com__Class * _class;
1599 const char *  dataTypeString;
1600 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1601 struct Type * dataType;
1602 int type;
1603 int offset;
1604 int memberID;
1605 struct __ecereNameSpace__ecere__sys__OldList members;
1606 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
1607 int memberOffset;
1608 short structAlignment;
1609 short pointerAlignment;
1610 } ecere_gcc_struct;
1611
1612 struct __ecereNameSpace__ecere__com__Module;
1613
1614 struct __ecereNameSpace__ecere__com__Module
1615 {
1616 struct __ecereNameSpace__ecere__com__Instance * application;
1617 struct __ecereNameSpace__ecere__sys__OldList classes;
1618 struct __ecereNameSpace__ecere__sys__OldList defines;
1619 struct __ecereNameSpace__ecere__sys__OldList functions;
1620 struct __ecereNameSpace__ecere__sys__OldList modules;
1621 struct __ecereNameSpace__ecere__com__Instance * prev;
1622 struct __ecereNameSpace__ecere__com__Instance * next;
1623 const char *  name;
1624 void *  library;
1625 void *  Unload;
1626 int importType;
1627 int origImportType;
1628 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1629 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1630 } ecere_gcc_struct;
1631
1632 struct __ecereNameSpace__ecere__com__Class
1633 {
1634 struct __ecereNameSpace__ecere__com__Class * prev;
1635 struct __ecereNameSpace__ecere__com__Class * next;
1636 const char *  name;
1637 int offset;
1638 int structSize;
1639 void * *  _vTbl;
1640 int vTblSize;
1641 unsigned int (*  Constructor)(void * );
1642 void (*  Destructor)(void * );
1643 int offsetClass;
1644 int sizeClass;
1645 struct __ecereNameSpace__ecere__com__Class * base;
1646 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
1647 struct __ecereNameSpace__ecere__sys__BinaryTree members;
1648 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
1649 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
1650 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1651 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1652 int memberID;
1653 int startMemberID;
1654 int type;
1655 struct __ecereNameSpace__ecere__com__Instance * module;
1656 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
1657 const char *  dataTypeString;
1658 struct Type * dataType;
1659 int typeSize;
1660 int defaultAlignment;
1661 void (*  Initialize)();
1662 int memberOffset;
1663 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1664 const char *  designerClass;
1665 unsigned int noExpansion;
1666 const char *  defaultProperty;
1667 unsigned int comRedefinition;
1668 int count;
1669 int isRemote;
1670 unsigned int internalDecl;
1671 void *  data;
1672 unsigned int computeSize;
1673 short structAlignment;
1674 short pointerAlignment;
1675 int destructionWatchOffset;
1676 unsigned int fixed;
1677 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1678 int inheritanceAccess;
1679 const char *  fullName;
1680 void *  symbol;
1681 struct __ecereNameSpace__ecere__sys__OldList conversions;
1682 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1683 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
1684 struct __ecereNameSpace__ecere__com__Class * templateClass;
1685 struct __ecereNameSpace__ecere__sys__OldList templatized;
1686 int numParams;
1687 unsigned int isInstanceClass;
1688 unsigned int byValueSystemClass;
1689 } ecere_gcc_struct;
1690
1691 void __ecereRegisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module)
1692 {
1693 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
1694
1695 }
1696
1697 void __ecereUnregisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module)
1698 {
1699
1700 }
1701
1702 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
1703
1704 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1705
1706 static void yydestruct(const char * yymsg, int yytype, YYSTYPE * yyvaluep, struct Location * yylocationp)
1707 {
1708 ((void)(yyvaluep));
1709 ((void)(yylocationp));
1710 if(!yymsg)
1711 yymsg = "Deleting";
1712 do
1713 {
1714 if(yydebug)
1715 {
1716 fprintf((bsl_stderr()), "%s ", yymsg);
1717 yy_symbol_print((bsl_stderr()), yytype, yyvaluep, yylocationp);
1718 fprintf((bsl_stderr()), "\n");
1719 }
1720 }while((0));
1721 switch(yytype)
1722 {
1723 case 145:
1724 {
1725 FreeSpecifier((*yyvaluep).specifier);
1726 }
1727 ;
1728 break;
1729 case 146:
1730 {
1731 FreeSpecifier((*yyvaluep).specifier);
1732 }
1733 ;
1734 break;
1735 case 147:
1736 {
1737 FreeSpecifier((*yyvaluep).specifier);
1738 }
1739 ;
1740 break;
1741 case 148:
1742 {
1743 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
1744 }
1745 ;
1746 break;
1747 case 149:
1748 {
1749 FreeSpecifier((*yyvaluep).specifier);
1750 }
1751 ;
1752 break;
1753 case 150:
1754 {
1755 FreeClassFunction((*yyvaluep).classFunction);
1756 }
1757 ;
1758 break;
1759 case 151:
1760 {
1761 FreeClassFunction((*yyvaluep).classFunction);
1762 }
1763 ;
1764 break;
1765 case 152:
1766 {
1767 FreeClassFunction((*yyvaluep).classFunction);
1768 }
1769 ;
1770 break;
1771 case 153:
1772 {
1773 FreeClassFunction((*yyvaluep).classFunction);
1774 }
1775 ;
1776 break;
1777 case 154:
1778 {
1779 FreeClassFunction((*yyvaluep).classFunction);
1780 }
1781 ;
1782 break;
1783 case 155:
1784 {
1785 FreeClassFunction((*yyvaluep).classFunction);
1786 }
1787 ;
1788 break;
1789 case 156:
1790 {
1791 FreeClassFunction((*yyvaluep).classFunction);
1792 }
1793 ;
1794 break;
1795 case 157:
1796 {
1797 FreeClassFunction((*yyvaluep).classFunction);
1798 }
1799 ;
1800 break;
1801 case 158:
1802 {
1803 FreeClassFunction((*yyvaluep).classFunction);
1804 }
1805 ;
1806 break;
1807 case 159:
1808 {
1809 FreeClassFunction((*yyvaluep).classFunction);
1810 }
1811 ;
1812 break;
1813 case 160:
1814 {
1815 FreeClassFunction((*yyvaluep).classFunction);
1816 }
1817 ;
1818 break;
1819 case 161:
1820 {
1821 FreeClassFunction((*yyvaluep).classFunction);
1822 }
1823 ;
1824 break;
1825 case 162:
1826 {
1827 FreeMemberInit((*yyvaluep).memberInit);
1828 }
1829 ;
1830 break;
1831 case 163:
1832 {
1833 FreeMemberInit((*yyvaluep).memberInit);
1834 }
1835 ;
1836 break;
1837 case 164:
1838 {
1839 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1840 }
1841 ;
1842 break;
1843 case 165:
1844 {
1845 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1846 }
1847 ;
1848 break;
1849 case 166:
1850 {
1851 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1852 }
1853 ;
1854 break;
1855 case 167:
1856 {
1857 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1858 }
1859 ;
1860 break;
1861 case 168:
1862 {
1863 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1864 }
1865 ;
1866 break;
1867 case 169:
1868 {
1869 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1870 }
1871 ;
1872 break;
1873 case 170:
1874 {
1875 FreeInstance((*yyvaluep).instance);
1876 }
1877 ;
1878 break;
1879 case 171:
1880 {
1881 FreeInstance((*yyvaluep).instance);
1882 }
1883 ;
1884 break;
1885 case 175:
1886 {
1887 FreeInstance((*yyvaluep).instance);
1888 }
1889 ;
1890 break;
1891 case 176:
1892 {
1893 FreeInstance((*yyvaluep).instance);
1894 }
1895 ;
1896 break;
1897 case 179:
1898 {
1899 FreeMemberInit((*yyvaluep).memberInit);
1900 }
1901 ;
1902 break;
1903 case 180:
1904 {
1905 FreeMemberInit((*yyvaluep).memberInit);
1906 }
1907 ;
1908 break;
1909 case 181:
1910 {
1911 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1912 }
1913 ;
1914 break;
1915 case 182:
1916 {
1917 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1918 }
1919 ;
1920 break;
1921 case 185:
1922 {
1923 FreeProperty((*yyvaluep).prop);
1924 }
1925 ;
1926 break;
1927 case 196:
1928 {
1929 FreeClassDef((*yyvaluep).classDef);
1930 }
1931 ;
1932 break;
1933 case 197:
1934 {
1935 FreeClassDef((*yyvaluep).classDef);
1936 }
1937 ;
1938 break;
1939 case 198:
1940 {
1941 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1942 }
1943 ;
1944 break;
1945 case 199:
1946 {
1947 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1948 }
1949 ;
1950 break;
1951 case 200:
1952 {
1953 FreeTemplateDataType((*yyvaluep).templateDatatype);
1954 }
1955 ;
1956 break;
1957 case 201:
1958 {
1959 FreeTemplateArgument((*yyvaluep).templateArgument);
1960 }
1961 ;
1962 break;
1963 case 202:
1964 {
1965 FreeTemplateParameter((*yyvaluep).templateParameter);
1966 }
1967 ;
1968 break;
1969 case 203:
1970 {
1971 FreeTemplateArgument((*yyvaluep).templateArgument);
1972 }
1973 ;
1974 break;
1975 case 204:
1976 {
1977 FreeTemplateParameter((*yyvaluep).templateParameter);
1978 }
1979 ;
1980 break;
1981 case 205:
1982 {
1983 FreeTemplateArgument((*yyvaluep).templateArgument);
1984 }
1985 ;
1986 break;
1987 case 206:
1988 {
1989 FreeTemplateParameter((*yyvaluep).templateParameter);
1990 }
1991 ;
1992 break;
1993 case 207:
1994 {
1995 FreeTemplateParameter((*yyvaluep).templateParameter);
1996 }
1997 ;
1998 break;
1999 case 208:
2000 {
2001 FreeList((*yyvaluep).list, (void *)(FreeTemplateParameter));
2002 }
2003 ;
2004 break;
2005 case 209:
2006 {
2007 FreeTemplateArgument((*yyvaluep).templateArgument);
2008 }
2009 ;
2010 break;
2011 case 210:
2012 {
2013 FreeList((*yyvaluep).list, (void *)(FreeTemplateArgument));
2014 }
2015 ;
2016 break;
2017 case 211:
2018 {
2019 struct Context * ctx = curContext;
2020
2021 PopContext(ctx);
2022 FreeContext(ctx);
2023 ((ctx ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)ctx) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(ctx)) : 0), ctx = 0);
2024 }
2025 ;
2026 break;
2027 case 212:
2028 {
2029 struct Context * ctx = curContext;
2030
2031 PopContext(ctx);
2032 FreeContext(ctx);
2033 ((ctx ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)ctx) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(ctx)) : 0), ctx = 0);
2034 }
2035 ;
2036 break;
2037 case 213:
2038 {
2039 FreeClass((*yyvaluep)._class);
2040 }
2041 ;
2042 break;
2043 case 214:
2044 {
2045 FreeClass((*yyvaluep)._class);
2046 }
2047 ;
2048 break;
2049 case 215:
2050 {
2051 FreeClass((*yyvaluep)._class);
2052 }
2053 ;
2054 break;
2055 case 216:
2056 {
2057 FreeIdentifier((*yyvaluep).id);
2058 }
2059 ;
2060 break;
2061 case 217:
2062 {
2063 FreeExpression((*yyvaluep).exp);
2064 }
2065 ;
2066 break;
2067 case 218:
2068 {
2069 FreeExpression((*yyvaluep).exp);
2070 }
2071 ;
2072 break;
2073 case 223:
2074 {
2075 FreeExpression((*yyvaluep).exp);
2076 }
2077 ;
2078 break;
2079 case 224:
2080 {
2081 FreeExpression((*yyvaluep).exp);
2082 }
2083 ;
2084 break;
2085 case 225:
2086 {
2087 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2088 }
2089 ;
2090 break;
2091 case 226:
2092 {
2093 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2094 }
2095 ;
2096 break;
2097 case 228:
2098 {
2099 FreeExpression((*yyvaluep).exp);
2100 }
2101 ;
2102 break;
2103 case 230:
2104 {
2105 FreeExpression((*yyvaluep).exp);
2106 }
2107 ;
2108 break;
2109 case 231:
2110 {
2111 FreeExpression((*yyvaluep).exp);
2112 }
2113 ;
2114 break;
2115 case 232:
2116 {
2117 FreeExpression((*yyvaluep).exp);
2118 }
2119 ;
2120 break;
2121 case 233:
2122 {
2123 FreeExpression((*yyvaluep).exp);
2124 }
2125 ;
2126 break;
2127 case 235:
2128 {
2129 FreeExpression((*yyvaluep).exp);
2130 }
2131 ;
2132 break;
2133 case 236:
2134 {
2135 FreeExpression((*yyvaluep).exp);
2136 }
2137 ;
2138 break;
2139 case 237:
2140 {
2141 FreeExpression((*yyvaluep).exp);
2142 }
2143 ;
2144 break;
2145 case 238:
2146 {
2147 FreeExpression((*yyvaluep).exp);
2148 }
2149 ;
2150 break;
2151 case 239:
2152 {
2153 FreeExpression((*yyvaluep).exp);
2154 }
2155 ;
2156 break;
2157 case 240:
2158 {
2159 FreeExpression((*yyvaluep).exp);
2160 }
2161 ;
2162 break;
2163 case 241:
2164 {
2165 FreeExpression((*yyvaluep).exp);
2166 }
2167 ;
2168 break;
2169 case 242:
2170 {
2171 FreeExpression((*yyvaluep).exp);
2172 }
2173 ;
2174 break;
2175 case 243:
2176 {
2177 FreeExpression((*yyvaluep).exp);
2178 }
2179 ;
2180 break;
2181 case 245:
2182 {
2183 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2184 }
2185 ;
2186 break;
2187 case 247:
2188 {
2189 FreeExpression((*yyvaluep).exp);
2190 }
2191 ;
2192 break;
2193 case 249:
2194 {
2195 FreeExpression((*yyvaluep).exp);
2196 }
2197 ;
2198 break;
2199 case 250:
2200 {
2201 FreeExpression((*yyvaluep).exp);
2202 }
2203 ;
2204 break;
2205 case 251:
2206 {
2207 FreeExpression((*yyvaluep).exp);
2208 }
2209 ;
2210 break;
2211 case 252:
2212 {
2213 FreeExpression((*yyvaluep).exp);
2214 }
2215 ;
2216 break;
2217 case 253:
2218 {
2219 FreeExpression((*yyvaluep).exp);
2220 }
2221 ;
2222 break;
2223 case 254:
2224 {
2225 FreeExpression((*yyvaluep).exp);
2226 }
2227 ;
2228 break;
2229 case 255:
2230 {
2231 FreeExpression((*yyvaluep).exp);
2232 }
2233 ;
2234 break;
2235 case 256:
2236 {
2237 FreeExpression((*yyvaluep).exp);
2238 }
2239 ;
2240 break;
2241 case 257:
2242 {
2243 FreeExpression((*yyvaluep).exp);
2244 }
2245 ;
2246 break;
2247 case 258:
2248 {
2249 FreeExpression((*yyvaluep).exp);
2250 }
2251 ;
2252 break;
2253 case 259:
2254 {
2255 FreeExpression((*yyvaluep).exp);
2256 }
2257 ;
2258 break;
2259 case 260:
2260 {
2261 FreeExpression((*yyvaluep).exp);
2262 }
2263 ;
2264 break;
2265 case 261:
2266 {
2267 FreeExpression((*yyvaluep).exp);
2268 }
2269 ;
2270 break;
2271 case 262:
2272 {
2273 FreeExpression((*yyvaluep).exp);
2274 }
2275 ;
2276 break;
2277 case 263:
2278 {
2279 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2280 }
2281 ;
2282 break;
2283 case 265:
2284 {
2285 FreeExpression((*yyvaluep).exp);
2286 }
2287 ;
2288 break;
2289 case 266:
2290 {
2291 FreeExpression((*yyvaluep).exp);
2292 }
2293 ;
2294 break;
2295 case 267:
2296 {
2297 FreeSpecifier((*yyvaluep).specifier);
2298 }
2299 ;
2300 break;
2301 case 268:
2302 {
2303 FreeSpecifier((*yyvaluep).specifier);
2304 }
2305 ;
2306 break;
2307 case 269:
2308 {
2309 FreeEnumerator((*yyvaluep).enumerator);
2310 }
2311 ;
2312 break;
2313 case 270:
2314 {
2315 FreeList((*yyvaluep).list, (void *)(FreeEnumerator));
2316 }
2317 ;
2318 break;
2319 case 272:
2320 {
2321 FreeSpecifier((*yyvaluep).specifier);
2322 }
2323 ;
2324 break;
2325 case 273:
2326 {
2327 FreeSpecifier((*yyvaluep).specifier);
2328 }
2329 ;
2330 break;
2331 case 274:
2332 {
2333 FreeSpecifier((*yyvaluep).specifier);
2334 }
2335 ;
2336 break;
2337 case 276:
2338 {
2339 FreeSpecifier((*yyvaluep).specifier);
2340 }
2341 ;
2342 break;
2343 case 277:
2344 {
2345 FreeSpecifier((*yyvaluep).specifier);
2346 }
2347 ;
2348 break;
2349 case 278:
2350 {
2351 FreeSpecifier((*yyvaluep).specifier);
2352 }
2353 ;
2354 break;
2355 case 279:
2356 {
2357 FreeSpecifier((*yyvaluep).specifier);
2358 }
2359 ;
2360 break;
2361 case 280:
2362 {
2363 FreeSpecifier((*yyvaluep).specifier);
2364 }
2365 ;
2366 break;
2367 case 281:
2368 {
2369 FreeSpecifier((*yyvaluep).specifier);
2370 }
2371 ;
2372 break;
2373 case 282:
2374 {
2375 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2376 }
2377 ;
2378 break;
2379 case 283:
2380 {
2381 FreeSpecifier((*yyvaluep).specifier);
2382 }
2383 ;
2384 break;
2385 case 284:
2386 {
2387 FreeSpecifier((*yyvaluep).specifier);
2388 }
2389 ;
2390 break;
2391 case 285:
2392 {
2393 FreeDeclarator((*yyvaluep).declarator);
2394 }
2395 ;
2396 break;
2397 case 286:
2398 {
2399 FreeList((*yyvaluep).list, (void *)(FreeDeclarator));
2400 }
2401 ;
2402 break;
2403 case 287:
2404 {
2405 FreeSpecifier((*yyvaluep).specifier);
2406 }
2407 ;
2408 break;
2409 case 288:
2410 {
2411 FreeSpecifier((*yyvaluep).specifier);
2412 }
2413 ;
2414 break;
2415 case 289:
2416 {
2417 FreeSpecifier((*yyvaluep).specifier);
2418 }
2419 ;
2420 break;
2421 case 290:
2422 {
2423 FreeSpecifier((*yyvaluep).specifier);
2424 }
2425 ;
2426 break;
2427 case 291:
2428 {
2429 FreeSpecifier((*yyvaluep).specifier);
2430 }
2431 ;
2432 break;
2433 case 292:
2434 {
2435 FreeSpecifier((*yyvaluep).specifier);
2436 }
2437 ;
2438 break;
2439 case 293:
2440 {
2441 FreeSpecifier((*yyvaluep).specifier);
2442 }
2443 ;
2444 break;
2445 case 294:
2446 {
2447 FreeSpecifier((*yyvaluep).specifier);
2448 }
2449 ;
2450 break;
2451 case 296:
2452 {
2453 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2454 }
2455 ;
2456 break;
2457 case 297:
2458 {
2459 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2460 }
2461 ;
2462 break;
2463 case 298:
2464 {
2465 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2466 }
2467 ;
2468 break;
2469 case 299:
2470 {
2471 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2472 }
2473 ;
2474 break;
2475 case 300:
2476 {
2477 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2478 }
2479 ;
2480 break;
2481 case 301:
2482 {
2483 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2484 }
2485 ;
2486 break;
2487 case 302:
2488 {
2489 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2490 }
2491 ;
2492 break;
2493 case 303:
2494 {
2495 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2496 }
2497 ;
2498 break;
2499 case 307:
2500 {
2501 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2502 }
2503 ;
2504 break;
2505 case 308:
2506 {
2507 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2508 }
2509 ;
2510 break;
2511 case 309:
2512 {
2513 FreeDeclarator((*yyvaluep).declarator);
2514 }
2515 ;
2516 break;
2517 case 310:
2518 {
2519 FreeDeclarator((*yyvaluep).declarator);
2520 }
2521 ;
2522 break;
2523 case 311:
2524 {
2525 FreeDeclarator((*yyvaluep).declarator);
2526 }
2527 ;
2528 break;
2529 case 312:
2530 {
2531 FreeDeclarator((*yyvaluep).declarator);
2532 }
2533 ;
2534 break;
2535 case 313:
2536 {
2537 FreeDeclarator((*yyvaluep).declarator);
2538 }
2539 ;
2540 break;
2541 case 314:
2542 {
2543 FreeDeclarator((*yyvaluep).declarator);
2544 }
2545 ;
2546 break;
2547 case 315:
2548 {
2549 FreeDeclarator((*yyvaluep).declarator);
2550 }
2551 ;
2552 break;
2553 case 316:
2554 {
2555 FreeDeclarator((*yyvaluep).declarator);
2556 }
2557 ;
2558 break;
2559 case 317:
2560 {
2561 FreeDeclarator((*yyvaluep).declarator);
2562 }
2563 ;
2564 break;
2565 case 318:
2566 {
2567 FreeDeclarator((*yyvaluep).declarator);
2568 }
2569 ;
2570 break;
2571 case 319:
2572 {
2573 FreeExtDecl((*yyvaluep).extDecl);
2574 }
2575 ;
2576 break;
2577 case 321:
2578 {
2579 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2580 }
2581 ;
2582 break;
2583 case 322:
2584 {
2585 FreeAttribute((*yyvaluep).attribute);
2586 }
2587 ;
2588 break;
2589 case 323:
2590 {
2591 FreeList((*yyvaluep).list, (void *)(FreeAttribute));
2592 }
2593 ;
2594 break;
2595 case 324:
2596 {
2597 FreeAttrib((*yyvaluep).attrib);
2598 }
2599 ;
2600 break;
2601 case 325:
2602 {
2603 FreeDeclarator((*yyvaluep).declarator);
2604 }
2605 ;
2606 break;
2607 case 326:
2608 {
2609 FreeDeclarator((*yyvaluep).declarator);
2610 }
2611 ;
2612 break;
2613 case 327:
2614 {
2615 FreePointer((*yyvaluep).pointer);
2616 }
2617 ;
2618 break;
2619 case 328:
2620 {
2621 FreeDeclarator((*yyvaluep).declarator);
2622 }
2623 ;
2624 break;
2625 case 329:
2626 {
2627 FreeDeclarator((*yyvaluep).declarator);
2628 }
2629 ;
2630 break;
2631 case 330:
2632 {
2633 FreeDeclarator((*yyvaluep).declarator);
2634 }
2635 ;
2636 break;
2637 case 331:
2638 {
2639 FreeDeclarator((*yyvaluep).declarator);
2640 }
2641 ;
2642 break;
2643 case 332:
2644 {
2645 FreeDeclarator((*yyvaluep).declarator);
2646 }
2647 ;
2648 break;
2649 case 333:
2650 {
2651 FreeDeclarator((*yyvaluep).declarator);
2652 }
2653 ;
2654 break;
2655 case 334:
2656 {
2657 FreeDeclarator((*yyvaluep).declarator);
2658 }
2659 ;
2660 break;
2661 case 335:
2662 {
2663 FreeDeclarator((*yyvaluep).declarator);
2664 }
2665 ;
2666 break;
2667 case 336:
2668 {
2669 FreeDeclarator((*yyvaluep).declarator);
2670 }
2671 ;
2672 break;
2673 case 337:
2674 {
2675 FreeInitializer((*yyvaluep).initializer);
2676 }
2677 ;
2678 break;
2679 case 338:
2680 {
2681 FreeInitializer((*yyvaluep).initializer);
2682 }
2683 ;
2684 break;
2685 case 339:
2686 {
2687 FreeInitializer((*yyvaluep).initializer);
2688 }
2689 ;
2690 break;
2691 case 340:
2692 {
2693 FreeInitializer((*yyvaluep).initializer);
2694 }
2695 ;
2696 break;
2697 case 341:
2698 {
2699 FreeList((*yyvaluep).list, (void *)(FreeInitializer));
2700 }
2701 ;
2702 break;
2703 case 342:
2704 {
2705 FreeInitDeclarator((*yyvaluep).initDeclarator);
2706 }
2707 ;
2708 break;
2709 case 343:
2710 {
2711 FreeInitDeclarator((*yyvaluep).initDeclarator);
2712 }
2713 ;
2714 break;
2715 case 344:
2716 {
2717 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2718 }
2719 ;
2720 break;
2721 case 345:
2722 {
2723 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2724 }
2725 ;
2726 break;
2727 case 346:
2728 {
2729 FreeTypeName((*yyvaluep).typeName);
2730 }
2731 ;
2732 break;
2733 case 347:
2734 {
2735 FreeTypeName((*yyvaluep).typeName);
2736 }
2737 ;
2738 break;
2739 case 348:
2740 {
2741 FreeTypeName((*yyvaluep).typeName);
2742 }
2743 ;
2744 break;
2745 case 349:
2746 {
2747 FreeTypeName((*yyvaluep).typeName);
2748 }
2749 ;
2750 break;
2751 case 350:
2752 {
2753 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2754 }
2755 ;
2756 break;
2757 case 351:
2758 {
2759 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2760 }
2761 ;
2762 break;
2763 case 352:
2764 {
2765 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2766 }
2767 ;
2768 break;
2769 case 353:
2770 {
2771 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2772 }
2773 ;
2774 break;
2775 case 354:
2776 {
2777 FreeStatement((*yyvaluep).stmt);
2778 }
2779 ;
2780 break;
2781 case 355:
2782 {
2783 FreeStatement((*yyvaluep).stmt);
2784 }
2785 ;
2786 break;
2787 case 359:
2788 {
2789 FreeStatement((*yyvaluep).stmt);
2790 }
2791 ;
2792 break;
2793 case 360:
2794 {
2795 FreeStatement((*yyvaluep).stmt);
2796 }
2797 ;
2798 break;
2799 case 361:
2800 {
2801 }
2802 ;
2803 break;
2804 case 363:
2805 {
2806 FreeDeclaration((*yyvaluep).declaration);
2807 }
2808 ;
2809 break;
2810 case 367:
2811 {
2812 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2813 }
2814 ;
2815 break;
2816 case 368:
2817 {
2818 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2819 }
2820 ;
2821 break;
2822 case 369:
2823 {
2824 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2825 }
2826 ;
2827 break;
2828 case 370:
2829 {
2830 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2831 }
2832 ;
2833 break;
2834 case 371:
2835 {
2836 FreeStatement((*yyvaluep).stmt);
2837 }
2838 ;
2839 break;
2840 case 372:
2841 {
2842 FreeStatement((*yyvaluep).stmt);
2843 }
2844 ;
2845 break;
2846 case 373:
2847 {
2848 PopContext((*yyvaluep).context);
2849 FreeContext((*yyvaluep).context);
2850 (((*yyvaluep).context ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)(*yyvaluep).context) : 0, __ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).context)) : 0), (*yyvaluep).context = 0);
2851 }
2852 ;
2853 break;
2854 case 374:
2855 {
2856 FreeStatement((*yyvaluep).stmt);
2857 }
2858 ;
2859 break;
2860 case 375:
2861 {
2862 FreeStatement((*yyvaluep).stmt);
2863 }
2864 ;
2865 break;
2866 case 376:
2867 {
2868 FreeStatement((*yyvaluep).stmt);
2869 }
2870 ;
2871 break;
2872 case 377:
2873 {
2874 FreeStatement((*yyvaluep).stmt);
2875 }
2876 ;
2877 break;
2878 case 378:
2879 {
2880 FreeStatement((*yyvaluep).stmt);
2881 }
2882 ;
2883 break;
2884 case 379:
2885 {
2886 FreeStatement((*yyvaluep).stmt);
2887 }
2888 ;
2889 break;
2890 case 380:
2891 {
2892 FreeStatement((*yyvaluep).stmt);
2893 }
2894 ;
2895 break;
2896 case 381:
2897 {
2898 FreeStatement((*yyvaluep).stmt);
2899 }
2900 ;
2901 break;
2902 case 382:
2903 {
2904 FreeStatement((*yyvaluep).stmt);
2905 }
2906 ;
2907 break;
2908 case 383:
2909 {
2910 FreeFunction((*yyvaluep).function);
2911 }
2912 ;
2913 break;
2914 case 384:
2915 {
2916 FreeFunction((*yyvaluep).function);
2917 }
2918 ;
2919 break;
2920 case 385:
2921 {
2922 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2923 }
2924 ;
2925 break;
2926 case 386:
2927 {
2928 FreeExternal((*yyvaluep).external);
2929 }
2930 ;
2931 break;
2932 case 387:
2933 {
2934 FreeExternal((*yyvaluep).external);
2935 }
2936 ;
2937 break;
2938 case 388:
2939 {
2940 if((*yyvaluep).list != ast)
2941 FreeList((*yyvaluep).list, (void *)(FreeExternal));
2942 }
2943 ;
2944 break;
2945 case 389:
2946 {
2947 if((*yyvaluep).list != ast)
2948 FreeList((*yyvaluep).list, (void *)(FreeExternal));
2949 }
2950 ;
2951 break;
2952 default:
2953 break;
2954 }
2955 }
2956
2957 int yyparse(void)
2958 {
2959 int yystate;
2960 int yyerrstatus;
2961 yytype_int16 yyssa[200];
2962 yytype_int16 * yyss;
2963 yytype_int16 * yyssp;
2964 YYSTYPE yyvsa[200];
2965 YYSTYPE * yyvs;
2966 YYSTYPE * yyvsp;
2967 struct Location yylsa[200];
2968 struct Location * yyls;
2969 struct Location * yylsp;
2970 struct Location yyerror_range[2];
2971 size_t yystacksize;
2972 int yyn;
2973 int yyresult;
2974 int yytoken;
2975 YYSTYPE yyval;
2976 struct Location yyloc;
2977 int yylen = 0;
2978
2979 yytoken = 0;
2980 yyss = yyssa;
2981 yyvs = yyvsa;
2982 yyls = yylsa;
2983 yystacksize = 200;
2984 do
2985 {
2986 if(yydebug)
2987 fprintf((bsl_stderr()), "Starting parse\n");
2988 }while((0));
2989 yystate = 0;
2990 yyerrstatus = 0;
2991 yynerrs = 0;
2992 yychar = (-2);
2993 yyssp = yyss;
2994 yyvsp = yyvs;
2995 yylsp = yyls;
2996 goto yysetstate;
2997 yynewstate:
2998 yyssp++;
2999 yysetstate:
3000 *yyssp = yystate;
3001 if(yyss + yystacksize - 1 <= yyssp)
3002 {
3003 size_t yysize = yyssp - yyss + 1;
3004
3005 if(10000 <= yystacksize)
3006 goto yyexhaustedlab;
3007 yystacksize *= 2;
3008 if(10000 < yystacksize)
3009 yystacksize = 10000;
3010 {
3011 yytype_int16 * yyss1 = yyss;
3012 union yyalloc * yyptr = (union yyalloc *)malloc(((yystacksize) * (sizeof(yytype_int16) + sizeof(YYSTYPE) + sizeof(struct Location)) + 2 * (sizeof(union yyalloc) - 1)));
3013
3014 if(!yyptr)
3015 goto yyexhaustedlab;
3016 do
3017 {
3018 size_t yynewbytes;
3019
3020 __builtin_memcpy(&(*yyptr).yyss_alloc, yyss, (yysize) * sizeof (*(yyss)));
3021 yyss = &(*yyptr).yyss_alloc;
3022 yynewbytes = yystacksize * sizeof (*yyss) + (sizeof(union yyalloc) - 1);
3023 yyptr += yynewbytes / sizeof (*yyptr);
3024 }while((0));
3025 do
3026 {
3027 size_t yynewbytes;
3028
3029 __builtin_memcpy(&(*yyptr).yyvs_alloc, yyvs, (yysize) * sizeof (*(yyvs)));
3030 yyvs = &(*yyptr).yyvs_alloc;
3031 yynewbytes = yystacksize * sizeof (*yyvs) + (sizeof(union yyalloc) - 1);
3032 yyptr += yynewbytes / sizeof (*yyptr);
3033 }while((0));
3034 do
3035 {
3036 size_t yynewbytes;
3037
3038 __builtin_memcpy(&(*yyptr).yyls_alloc, yyls, (yysize) * sizeof (*(yyls)));
3039 yyls = &(*yyptr).yyls_alloc;
3040 yynewbytes = yystacksize * sizeof (*yyls) + (sizeof(union yyalloc) - 1);
3041 yyptr += yynewbytes / sizeof (*yyptr);
3042 }while((0));
3043 if(yyss1 != yyssa)
3044 free(yyss1);
3045 }
3046 yyssp = yyss + yysize - 1;
3047 yyvsp = yyvs + yysize - 1;
3048 yylsp = yyls + yysize - 1;
3049 do
3050 {
3051 if(yydebug)
3052 fprintf((bsl_stderr()), "Stack size increased to %lu\n", (unsigned long int)yystacksize);
3053 }while((0));
3054 if(yyss + yystacksize - 1 <= yyssp)
3055 goto yyabortlab;
3056 }
3057 do
3058 {
3059 if(yydebug)
3060 fprintf((bsl_stderr()), "Entering state %d\n", yystate);
3061 }while((0));
3062 if(yystate == 295)
3063 goto yyacceptlab;
3064 goto yybackup;
3065 yybackup:
3066 yyn = yypact[yystate];
3067 if(yyn == -1980)
3068 goto yydefault;
3069 if(yychar == (-2))
3070 {
3071 do
3072 {
3073 if(yydebug)
3074 fprintf((bsl_stderr()), "Reading a token: ");
3075 }while((0));
3076 yychar = yylex();
3077 }
3078 if(yychar <= 0)
3079 {
3080 yychar = yytoken = 0;
3081 do
3082 {
3083 if(yydebug)
3084 fprintf((bsl_stderr()), "Now at end of input.\n");
3085 }while((0));
3086 }
3087 else
3088 {
3089 yytoken = ((unsigned int)(yychar) <= 373 ? yytranslate[yychar] : 2);
3090 do
3091 {
3092 if(yydebug)
3093 {
3094 fprintf((bsl_stderr()), "%s ", "Next token is");
3095 yy_symbol_print((bsl_stderr()), yytoken, &yylval, &yylloc);
3096 fprintf((bsl_stderr()), "\n");
3097 }
3098 }while((0));
3099 }
3100 yyn += yytoken;
3101 if(yyn < 0 || 41266 < yyn || yycheck[yyn] != yytoken)
3102 goto yydefault;
3103 yyn = yytable[yyn];
3104 if(yyn <= 0)
3105 {
3106 if(yyn == 0 || yyn == -1289)
3107 goto yyerrlab;
3108 yyn = -yyn;
3109 goto yyreduce;
3110 }
3111 if(yyerrstatus)
3112 yyerrstatus--;
3113 do
3114 {
3115 if(yydebug)
3116 {
3117 fprintf((bsl_stderr()), "%s ", "Shifting");
3118 yy_symbol_print((bsl_stderr()), yytoken, &yylval, &yylloc);
3119 fprintf((bsl_stderr()), "\n");
3120 }
3121 }while((0));
3122 yychar = (-2);
3123 yystate = yyn;
3124 *++yyvsp = yylval;
3125 *++yylsp = yylloc;
3126 goto yynewstate;
3127 yydefault:
3128 yyn = yydefact[yystate];
3129 if(yyn == 0)
3130 goto yyerrlab;
3131 goto yyreduce;
3132 yyreduce:
3133 yylen = yyr2[yyn];
3134 yyval = yyvsp[1 - yylen];
3135 (yyloc.start = ((yylsp - yylen))[1].start);
3136 (yyloc.end = ((yylsp - yylen))[yylen].end);
3137 ;
3138 do
3139 {
3140 if(yydebug)
3141 yy_reduce_print(yyvsp, yylsp, yyn);
3142 }while((0));
3143 switch(yyn)
3144 {
3145 case 2:
3146 {
3147 yyval.specifier = (((void *)0));
3148 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3149 FreeIdentifier(yyvsp[(1) - (2)].id);
3150 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3151 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3152
3153 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3154 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
3155 resetScannerPos(&(yylsp[(1) - (2)]).start);
3156 (yychar = (-2));
3157 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3158 yystate = *yyssp;
3159 do
3160 {
3161 if(yydebug)
3162 yy_stack_print((yyss), (yyssp));
3163 }while((0));
3164 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3165 yystate = *yyssp;
3166 do
3167 {
3168 if(yydebug)
3169 yy_stack_print((yyss), (yyssp));
3170 }while((0));
3171 goto yysetstate;
3172 ;
3173 }
3174 break;
3175 case 3:
3176 {
3177 yyval.specifier = (((void *)0));
3178 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3179 FreeIdentifier(yyvsp[(1) - (2)].id);
3180 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3181 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3182
3183 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3184 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
3185 resetScannerPos(&(yylsp[(1) - (2)]).start);
3186 (yychar = (-2));
3187 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3188 yystate = *yyssp;
3189 do
3190 {
3191 if(yydebug)
3192 yy_stack_print((yyss), (yyssp));
3193 }while((0));
3194 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3195 yystate = *yyssp;
3196 do
3197 {
3198 if(yydebug)
3199 yy_stack_print((yyss), (yyssp));
3200 }while((0));
3201 goto yysetstate;
3202 ;
3203 }
3204 break;
3205 case 4:
3206 {
3207 yyval.specifier = yyvsp[(1) - (1)].specifier;
3208 ;
3209 }
3210 break;
3211 case 5:
3212 {
3213 if(!yyvsp[(1) - (2)].id->string[0])
3214 {
3215 yyval.specifier = MkSpecifierName(yyvsp[(1) - (2)].id->string);
3216 FreeIdentifier(yyvsp[(1) - (2)].id);
3217 FreeIdentifier(yyvsp[(2) - (2)].id);
3218 }
3219 else
3220 {
3221 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3222 FreeIdentifier(yyvsp[(1) - (2)].id);
3223 FreeIdentifier(yyvsp[(2) - (2)].id);
3224 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3225 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3226
3227 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3228 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
3229 resetScannerPos(&(yylsp[(1) - (2)]).start);
3230 (yychar = (-2));
3231 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3232 yystate = *yyssp;
3233 do
3234 {
3235 if(yydebug)
3236 yy_stack_print((yyss), (yyssp));
3237 }while((0));
3238 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3239 yystate = *yyssp;
3240 do
3241 {
3242 if(yydebug)
3243 yy_stack_print((yyss), (yyssp));
3244 }while((0));
3245 goto yysetstate;
3246 }
3247 ;
3248 }
3249 break;
3250 case 6:
3251 {
3252 yyval.specifier = MkSpecifierName(yytext);
3253 ;
3254 }
3255 break;
3256 case 7:
3257 {
3258 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
3259 ;
3260 }
3261 break;
3262 case 9:
3263 {
3264 yyval.specifier = yyvsp[(1) - (4)].specifier;
3265 SetClassTemplateArgs(yyval.specifier, yyvsp[(3) - (4)].list);
3266 yyval.specifier->loc = (yyloc);
3267 ;
3268 }
3269 break;
3270 case 10:
3271 {
3272 yyval.specifier = yyvsp[(1) - (4)].specifier;
3273 SetClassTemplateArgs(yyval.specifier, yyvsp[(3) - (4)].list);
3274 yyval.specifier->loc = (yyloc);
3275 (yylsp[(4) - (4)]).end.pos--;
3276 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3277 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3278
3279 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3280 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(4) - (4)]).end.pos, 0);
3281 resetScannerPos(&(yylsp[(4) - (4)]).end);
3282 (yychar = (-2));
3283 ;
3284 }
3285 break;
3286 case 11:
3287 {
3288 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3289 yyval.classFunction->loc = (yyloc);
3290 ;
3291 }
3292 break;
3293 case 12:
3294 {
3295 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(1) - (1)].declarator, (((void *)0)));
3296 yyval.classFunction->loc = (yyloc);
3297 ;
3298 }
3299 break;
3300 case 13:
3301 {
3302 yyval.classFunction = MkClassFunction(yyvsp[(1) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)));
3303 yyval.classFunction->isConstructor = 1;
3304 yyval.classFunction->loc = (yyloc);
3305 ;
3306 }
3307 break;
3308 case 14:
3309 {
3310 yyval.classFunction = MkClassFunction(yyvsp[(2) - (4)].list, (((void *)0)), (((void *)0)), (((void *)0)));
3311 yyval.classFunction->isDestructor = 1;
3312 yyval.classFunction->loc = (yyloc);
3313 ;
3314 }
3315 break;
3316 case 15:
3317 {
3318 yyval.classFunction = MkClassFunction(yyvsp[(2) - (3)].list, (((void *)0)), yyvsp[(3) - (3)].declarator, (((void *)0)));
3319 yyval.classFunction->isVirtual = 1;
3320 yyval.classFunction->loc = (yyloc);
3321 ;
3322 }
3323 break;
3324 case 16:
3325 {
3326 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3327 yyval.classFunction->isVirtual = 1;
3328 yyval.classFunction->loc = (yyloc);
3329 ;
3330 }
3331 break;
3332 case 17:
3333 {
3334 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3335 yyval.classFunction->loc = (yyloc);
3336 ;
3337 }
3338 break;
3339 case 18:
3340 {
3341 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(1) - (1)].declarator, (((void *)0)));
3342 yyval.classFunction->loc = (yyloc);
3343 ;
3344 }
3345 break;
3346 case 19:
3347 {
3348 yyval.classFunction = MkClassFunction(yyvsp[(2) - (3)].list, (((void *)0)), yyvsp[(3) - (3)].declarator, (((void *)0)));
3349 yyval.classFunction->isVirtual = 1;
3350 yyval.classFunction->loc = (yyloc);
3351 ;
3352 }
3353 break;
3354 case 20:
3355 {
3356 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3357 yyval.classFunction->isVirtual = 1;
3358 yyval.classFunction->loc = (yyloc);
3359 ;
3360 }
3361 break;
3362 case 21:
3363 {
3364 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3365 yyval.classFunction->loc = (yyloc);
3366 ;
3367 }
3368 break;
3369 case 22:
3370 {
3371 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3372 yyval.classFunction->loc = (yyloc);
3373 ;
3374 }
3375 break;
3376 case 23:
3377 {
3378 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3379 yyval.classFunction->loc = (yyloc);
3380 ;
3381 }
3382 break;
3383 case 24:
3384 {
3385 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3386 yyval.classFunction->loc = (yyloc);
3387 ;
3388 }
3389 break;
3390 case 25:
3391 {
3392 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3393 yyval.classFunction->loc = (yyloc);
3394 ;
3395 }
3396 break;
3397 case 26:
3398 {
3399 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3400 yyval.classFunction->loc = (yyloc);
3401 ;
3402 }
3403 break;
3404 case 27:
3405 {
3406 if(yyvsp[(1) - (3)].classFunction->declarator)
3407 {
3408 yyvsp[(1) - (3)].classFunction->declarator = MkStructDeclarator(yyvsp[(1) - (3)].classFunction->declarator, (((void *)0)));
3409 yyvsp[(1) - (3)].classFunction->declarator->__anon1.structDecl.attrib = yyvsp[(2) - (3)].attrib;
3410 }
3411 ProcessClassFunctionBody(yyvsp[(1) - (3)].classFunction, (((void *)0)));
3412 yyval.classFunction->loc = (yyloc);
3413 ;
3414 }
3415 break;
3416 case 28:
3417 {
3418 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3419 yyval.classFunction->loc = (yyloc);
3420 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3421 ;
3422 }
3423 break;
3424 case 29:
3425 {
3426 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3427 yyval.classFunction->loc = (yyloc);
3428 yyval.classFunction->loc.end.charPos++;
3429 yyval.classFunction->loc.end.pos++;
3430 ;
3431 }
3432 break;
3433 case 30:
3434 {
3435 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3436 yyval.classFunction->loc = (yyloc);
3437 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3438 ;
3439 }
3440 break;
3441 case 31:
3442 {
3443 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3444 yyval.classFunction->loc = (yyloc);
3445 yyval.classFunction->loc.end.charPos++;
3446 yyval.classFunction->loc.end.pos++;
3447 ;
3448 }
3449 break;
3450 case 32:
3451 {
3452 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3453 yyval.classFunction->loc = (yyloc);
3454 yyval.classFunction->loc.end.charPos++;
3455 yyval.classFunction->loc.end.pos++;
3456 ;
3457 }
3458 break;
3459 case 33:
3460 {
3461 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3462 yyval.classFunction->loc = (yyloc);
3463 ;
3464 }
3465 break;
3466 case 34:
3467 {
3468 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), MkDeclaratorFunction(yyvsp[(2) - (2)].declarator, (((void *)0))), (((void *)0)));
3469 yyval.classFunction->loc = (yyloc);
3470 ;
3471 }
3472 break;
3473 case 35:
3474 {
3475 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3476 yyval.classFunction->loc = (yyloc);
3477 ;
3478 }
3479 break;
3480 case 36:
3481 {
3482 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3483 yyval.classFunction->loc = (yyloc);
3484 ;
3485 }
3486 break;
3487 case 37:
3488 {
3489 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3490 yyval.classFunction->loc = (yyloc);
3491 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3492 yyval.classFunction->loc.end.charPos++;
3493 yyval.classFunction->loc.end.pos++;
3494 ;
3495 }
3496 break;
3497 case 38:
3498 {
3499 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3500 yyval.classFunction->loc = (yyloc);
3501 yyval.classFunction->loc.end.charPos++;
3502 yyval.classFunction->loc.end.pos++;
3503 ;
3504 }
3505 break;
3506 case 39:
3507 {
3508 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3509 yyval.classFunction->loc = (yyloc);
3510 yyval.classFunction->loc.end.charPos++;
3511 yyval.classFunction->loc.end.pos++;
3512 ;
3513 }
3514 break;
3515 case 40:
3516 {
3517 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
3518 yyval.memberInit->loc = (yyloc);
3519 yyval.memberInit->realLoc = (yyloc);
3520 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
3521 ;
3522 }
3523 break;
3524 case 41:
3525 {
3526 yyval.memberInit = MkMemberInit((((void *)0)), yyvsp[(1) - (1)].initializer);
3527 yyval.memberInit->loc = (yyloc);
3528 yyval.memberInit->realLoc = (yyloc);
3529 ;
3530 }
3531 break;
3532 case 42:
3533 {
3534 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
3535 yyval.memberInit->loc = (yyloc);
3536 yyval.memberInit->realLoc = (yyloc);
3537 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
3538 ;
3539 }
3540 break;
3541 case 43:
3542 {
3543 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, MkInitializerAssignment(MkExpDummy()));
3544 yyval.memberInit->loc = (yyloc);
3545 yyval.memberInit->realLoc = (yyloc);
3546 yyval.memberInit->initializer->loc.start = yyval.memberInit->initializer->loc.end = (yylsp[(2) - (3)]).end;
3547 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3548 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3549
3550 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3551 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(2) - (3)]).end.pos, 0);
3552 (yychar = (-2));
3553 resetScannerPos(&(yylsp[(2) - (3)]).end);
3554 (yyloc.start = (yylsp[(1) - (3)]).start);
3555 (yyloc.end = (yylsp[(2) - (3)]).end);
3556 ;
3557 }
3558 break;
3559 case 44:
3560 {
3561 yyval.memberInit = MkMemberInit((((void *)0)), yyvsp[(1) - (1)].initializer);
3562 yyval.memberInit->loc = (yyloc);
3563 yyval.memberInit->realLoc = (yyloc);
3564 ;
3565 }
3566 break;
3567 case 45:
3568 {
3569 yyval.list = MkList();
3570 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
3571 ;
3572 }
3573 break;
3574 case 46:
3575 {
3576 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3577 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3578 yyval.list = yyvsp[(1) - (3)].list;
3579 ;
3580 }
3581 break;
3582 case 47:
3583 {
3584 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3585 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3586 yyval.list = yyvsp[(1) - (3)].list;
3587 ;
3588 }
3589 break;
3590 case 48:
3591 {
3592 yyval.list = MkList();
3593 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
3594 ;
3595 }
3596 break;
3597 case 49:
3598 {
3599 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3600 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3601 yyval.list = yyvsp[(1) - (3)].list;
3602 ;
3603 }
3604 break;
3605 case 50:
3606 {
3607 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3608 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3609 yyval.list = yyvsp[(1) - (3)].list;
3610 ;
3611 }
3612 break;
3613 case 51:
3614 {
3615 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(2) - (3)]).end;
3616 {
3617 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3618 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3619
3620 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(2) - (3)]).end;
3621 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(2) - (3)]).end;
3622 ListAdd(yyvsp[(1) - (3)].list, memberInit);
3623 }
3624 yyval.list = yyvsp[(1) - (3)].list;
3625 ;
3626 }
3627 break;
3628 case 52:
3629 {
3630 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(2) - (3)]).end;
3631 {
3632 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3633 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3634
3635 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(2) - (3)]).end;
3636 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(2) - (3)]).end;
3637 ListAdd(yyvsp[(1) - (3)].list, memberInit);
3638 }
3639 yyval.list = yyvsp[(1) - (3)].list;
3640 ;
3641 }
3642 break;
3643 case 53:
3644 {
3645 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3646 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3647
3648 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(1) - (1)]).start;
3649 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(1) - (1)]).start;
3650 yyval.list = MkList();
3651 ListAdd(yyval.list, memberInit);
3652 dummy = MkInitializerAssignment(MkExpDummy());
3653 memberInit = MkMemberInit((((void *)0)), dummy);
3654 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(1) - (1)]).end;
3655 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(1) - (1)]).end;
3656 ListAdd(yyval.list, memberInit);
3657 ;
3658 }
3659 break;
3660 case 54:
3661 {
3662 if((*yyvsp[(1) - (2)].list).last)
3663 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).end;
3664 yyval.list = yyvsp[(1) - (2)].list;
3665 ;
3666 }
3667 break;
3668 case 55:
3669 {
3670 if((*yyvsp[(1) - (2)].list).last)
3671 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).end;
3672 yyval.list = yyvsp[(1) - (2)].list;
3673 ;
3674 }
3675 break;
3676 case 56:
3677 {
3678 struct MembersInit * members = MkMembersInitList(yyvsp[(1) - (1)].list);
3679
3680 yyval.list = MkList();
3681 ListAdd(yyval.list, members);
3682 members->loc = (yylsp[(1) - (1)]);
3683 ;
3684 }
3685 break;
3686 case 57:
3687 {
3688 yyval.list = MkList();
3689 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(1) - (1)].classFunction));
3690 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3691 ;
3692 }
3693 break;
3694 case 58:
3695 {
3696 struct MembersInit * members = MkMembersInitList(yyvsp[(2) - (2)].list);
3697
3698 ListAdd(yyval.list, members);
3699 members->loc = (yylsp[(2) - (2)]);
3700 yyval.list = yyvsp[(1) - (2)].list;
3701 ;
3702 }
3703 break;
3704 case 59:
3705 {
3706 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3707 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3708 yyval.list = yyvsp[(1) - (2)].list;
3709 ;
3710 }
3711 break;
3712 case 60:
3713 {
3714 struct MembersInit * members = MkMembersInitList(yyvsp[(2) - (2)].list);
3715
3716 ListAdd(yyval.list, members);
3717 members->loc = (yylsp[(2) - (2)]);
3718 yyval.list = yyvsp[(1) - (2)].list;
3719 ;
3720 }
3721 break;
3722 case 61:
3723 {
3724 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3725 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3726 yyval.list = yyvsp[(1) - (2)].list;
3727 ;
3728 }
3729 break;
3730 case 63:
3731 {
3732 struct MembersInit * members = (struct MembersInit *)(*yyval.list).last;
3733
3734 if(members->type == 0)
3735 (members->loc.end = yyloc.end);
3736 else
3737 {
3738 struct MembersInit * members = MkMembersInitList(MkList());
3739
3740 ListAdd(yyval.list, members);
3741 members->loc = (yylsp[(2) - (2)]);
3742 }
3743 yyval.list = yyvsp[(1) - (2)].list;
3744 ;
3745 }
3746 break;
3747 case 64:
3748 {
3749 struct MembersInit * members = MkMembersInitList(MkList());
3750
3751 yyval.list = MkList();
3752 ListAdd(yyval.list, members);
3753 members->loc = (yylsp[(1) - (1)]);
3754 ;
3755 }
3756 break;
3757 case 66:
3758 {
3759 yyval.list = MkList();
3760 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (1)].list));
3761 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3762 ;
3763 }
3764 break;
3765 case 67:
3766 {
3767 ListAdd(yyvsp[(1) - (2)].list, MkMembersInitList(yyvsp[(2) - (2)].list));
3768 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3769 ;
3770 }
3771 break;
3772 case 68:
3773 {
3774 ListAdd(yyvsp[(1) - (2)].list, MkMembersInitList(yyvsp[(2) - (2)].list));
3775 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3776 ;
3777 }
3778 break;
3779 case 69:
3780 {
3781 yyval.list = MkList();
3782 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(1) - (1)].classFunction));
3783 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3784 ;
3785 }
3786 break;
3787 case 70:
3788 {
3789 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3790 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3791 yyval.list = yyvsp[(1) - (2)].list;
3792 ;
3793 }
3794 break;
3795 case 71:
3796 {
3797 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3798 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3799 yyval.list = yyvsp[(1) - (2)].list;
3800 ;
3801 }
3802 break;
3803 case 72:
3804 {
3805 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3806 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3807 yyval.list = yyvsp[(1) - (2)].list;
3808 ;
3809 }
3810 break;
3811 case 73:
3812 {
3813 ListAdd(yyval.list, MkMembersInitList(yyvsp[(2) - (2)].list));
3814 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3815 yyval.list = yyvsp[(1) - (2)].list;
3816 ;
3817 }
3818 break;
3819 case 74:
3820 {
3821 yyval.list = MkList();
3822 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (1)].list));
3823 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3824 ;
3825 }
3826 break;
3827 case 75:
3828 {
3829 yyval.list = MkList();
3830 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (2)].list));
3831 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3832 ;
3833 }
3834 break;
3835 case 76:
3836 {
3837 yyval.instance->loc = (yyloc);
3838 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
3839 yyval.instance = yyvsp[(1) - (2)].instance;
3840 ;
3841 }
3842 break;
3843 case 77:
3844 {
3845 yyval.instance->loc = (yyloc);
3846 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
3847 yyval.instance = yyvsp[(1) - (3)].instance;
3848 ;
3849 }
3850 break;
3851 case 78:
3852 {
3853 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3854 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3855 yyval.instance->loc = (yyloc);
3856 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3857 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3858 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3859 yyval.instance->loc.end.charPos++;
3860 yyval.instance->loc.end.pos++;
3861 ;
3862 }
3863 break;
3864 case 79:
3865 {
3866 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
3867 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
3868 yyval.instance->loc = (yyloc);
3869 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
3870 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
3871 yyval.instance->insideLoc.end = (yylsp[(4) - (5)]).end;
3872 yyval.instance->loc.end.charPos++;
3873 yyval.instance->loc.end.pos++;
3874 ;
3875 }
3876 break;
3877 case 80:
3878 {
3879 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3880 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3881 yyval.instance->loc = (yyloc);
3882 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3883 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3884 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3885 yyval.instance->loc.end.charPos++;
3886 yyval.instance->loc.end.pos++;
3887 ;
3888 }
3889 break;
3890 case 81:
3891 {
3892 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (3)].list, MkExpIdentifier(yyvsp[(2) - (3)].id), (((void *)0)));
3893 yyval.instance->exp->loc = (yylsp[(2) - (3)]);
3894 yyval.instance->loc = (yyloc);
3895 yyval.instance->nameLoc = (yylsp[(2) - (3)]);
3896 yyval.instance->insideLoc.start = (yylsp[(3) - (3)]).end;
3897 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
3898 yyval.instance->loc.end.charPos++;
3899 yyval.instance->loc.end.pos++;
3900 ;
3901 }
3902 break;
3903 case 82:
3904 {
3905 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), (((void *)0)));
3906 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3907 yyval.instance->loc = (yyloc);
3908 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3909 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3910 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
3911 yyval.instance->loc.end.charPos++;
3912 yyval.instance->loc.end.pos++;
3913 ;
3914 }
3915 break;
3916 case 83:
3917 {
3918 yyval.instance->loc = (yyloc);
3919 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
3920 ;
3921 }
3922 break;
3923 case 84:
3924 {
3925 yyval.instance->loc = (yyloc);
3926 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
3927 ;
3928 }
3929 break;
3930 case 85:
3931 {
3932 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3933 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3934 yyval.instance->loc = (yyloc);
3935 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3936 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3937 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3938 yyval.instance->loc.end.charPos++;
3939 yyval.instance->loc.end.pos++;
3940 ;
3941 }
3942 break;
3943 case 86:
3944 {
3945 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
3946 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
3947 yyval.instance->loc = (yyloc);
3948 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
3949 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
3950 yyval.instance->insideLoc.end = (yylsp[(4) - (5)]).end;
3951 yyval.instance->loc.end.charPos++;
3952 yyval.instance->loc.end.pos++;
3953 ;
3954 }
3955 break;
3956 case 87:
3957 {
3958 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3959 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3960 yyval.instance->loc = (yyloc);
3961 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3962 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3963 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3964 yyval.instance->loc.end.charPos++;
3965 yyval.instance->loc.end.pos++;
3966 ;
3967 }
3968 break;
3969 case 88:
3970 {
3971 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (3)].list, MkExpIdentifier(yyvsp[(2) - (3)].id), (((void *)0)));
3972 yyval.instance->exp->loc = (yylsp[(2) - (3)]);
3973 yyval.instance->loc = (yyloc);
3974 yyval.instance->nameLoc = (yylsp[(2) - (3)]);
3975 yyval.instance->insideLoc.start = (yylsp[(3) - (3)]).end;
3976 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
3977 yyval.instance->loc.end.charPos++;
3978 yyval.instance->loc.end.pos++;
3979 ;
3980 }
3981 break;
3982 case 89:
3983 {
3984 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), (((void *)0)));
3985 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3986 yyval.instance->loc = (yyloc);
3987 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3988 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3989 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
3990 yyval.instance->loc.end.charPos++;
3991 yyval.instance->loc.end.pos++;
3992 ;
3993 }
3994 break;
3995 case 90:
3996 {
3997 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
3998 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
3999 yyval.instance->loc = (yyloc);
4000 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
4001 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
4002 yyval.instance->insideLoc.end = (yylsp[(5) - (5)]).start;
4003 ;
4004 }
4005 break;
4006 case 91:
4007 {
4008 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
4009 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
4010 yyval.instance->loc = (yyloc);
4011 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
4012 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
4013 yyval.instance->insideLoc.end = (yylsp[(5) - (5)]).start;
4014 ;
4015 }
4016 break;
4017 case 92:
4018 {
4019 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), MkList());
4020 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
4021 yyval.instance->loc = (yyloc);
4022 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
4023 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
4024 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).start;
4025 ;
4026 }
4027 break;
4028 case 93:
4029 {
4030 yyval.instance->loc = (yyloc);
4031 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
4032 yyval.instance = yyvsp[(1) - (2)].instance;
4033 ;
4034 }
4035 break;
4036 case 94:
4037 {
4038 yyval.instance->loc = (yyloc);
4039 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
4040 yyval.instance = yyvsp[(1) - (3)].instance;
4041 ;
4042 }
4043 break;
4044 case 95:
4045 {
4046 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), yyvsp[(3) - (3)].list);
4047 yyval.instance->loc = (yyloc);
4048 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4049 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4050 yyval.instance->loc.end.charPos++;
4051 yyval.instance->loc.end.pos++;
4052 ;
4053 }
4054 break;
4055 case 96:
4056 {
4057 struct Location tmpLoc = yylloc;
4058
4059 yylloc = (yylsp[(1) - (3)]);
4060 yylloc = tmpLoc;
4061 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), yyvsp[(3) - (3)].list);
4062 yyval.instance->loc = (yyloc);
4063 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4064 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4065 FreeIdentifier(yyvsp[(1) - (3)].id);
4066 ;
4067 }
4068 break;
4069 case 97:
4070 {
4071 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), yyvsp[(3) - (3)].list);
4072 yyval.instance->loc = (yyloc);
4073 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4074 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4075 yyval.instance->loc.end.charPos++;
4076 yyval.instance->loc.end.pos++;
4077 ;
4078 }
4079 break;
4080 case 98:
4081 {
4082 yyval.instance = MkInstantiation(yyvsp[(1) - (2)].specifier, (((void *)0)), (((void *)0)));
4083 yyval.instance->loc = (yyloc);
4084 yyval.instance->insideLoc.start = (yylsp[(2) - (2)]).end;
4085 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4086 yyval.instance->loc.end.charPos++;
4087 yyval.instance->loc.end.pos++;
4088 ;
4089 }
4090 break;
4091 case 99:
4092 {
4093 yyval.instance = MkInstantiation(yyvsp[(1) - (4)].specifier, (((void *)0)), yyvsp[(3) - (4)].list);
4094 yyval.instance->loc = (yyloc);
4095 yyval.instance->insideLoc.start = (yylsp[(2) - (4)]).end;
4096 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4097 yyval.instance->loc.end.charPos++;
4098 yyval.instance->loc.end.pos++;
4099 ;
4100 }
4101 break;
4102 case 100:
4103 {
4104 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), (((void *)0)));
4105 yyval.instance->loc = (yyloc);
4106 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4107 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4108 yyval.instance->loc.end.charPos++;
4109 yyval.instance->loc.end.pos++;
4110 ;
4111 }
4112 break;
4113 case 101:
4114 {
4115 struct Location tmpLoc = yylloc;
4116
4117 yylloc = (yylsp[(1) - (3)]);
4118 yylloc = tmpLoc;
4119 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), yyvsp[(3) - (3)].list);
4120 yyval.instance->loc = (yyloc);
4121 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4122 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4123 yyval.instance->loc.end.charPos++;
4124 yyval.instance->loc.end.pos++;
4125 FreeIdentifier(yyvsp[(1) - (3)].id);
4126 ;
4127 }
4128 break;
4129 case 102:
4130 {
4131 struct Location tmpLoc = yylloc;
4132
4133 yylloc = (yylsp[(1) - (2)]);
4134 yylloc = tmpLoc;
4135 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (2)].id->string), (((void *)0)), (((void *)0)));
4136 yyval.instance->loc = (yyloc);
4137 yyval.instance->insideLoc.start = (yylsp[(2) - (2)]).end;
4138 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4139 yyval.instance->loc.end.charPos++;
4140 yyval.instance->loc.end.pos++;
4141 FreeIdentifier(yyvsp[(1) - (2)].id);
4142 ;
4143 }
4144 break;
4145 case 103:
4146 {
4147 struct Location tmpLoc = yylloc;
4148
4149 yylloc = (yylsp[(1) - (4)]);
4150 yylloc = tmpLoc;
4151 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (4)].id->string), (((void *)0)), yyvsp[(3) - (4)].list);
4152 yyval.instance->loc = (yyloc);
4153 yyval.instance->insideLoc.start = (yylsp[(2) - (4)]).end;
4154 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4155 yyval.instance->loc.end.charPos++;
4156 yyval.instance->loc.end.pos++;
4157 FreeIdentifier(yyvsp[(1) - (4)].id);
4158 ;
4159 }
4160 break;
4161 case 104:
4162 {
4163 struct Location tmpLoc = yylloc;
4164
4165 yylloc = (yylsp[(1) - (3)]);
4166 yylloc = tmpLoc;
4167 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), (((void *)0)));
4168 yyval.instance->loc = (yyloc);
4169 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4170 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4171 yyval.instance->loc.end.charPos++;
4172 yyval.instance->loc.end.pos++;
4173 FreeIdentifier(yyvsp[(1) - (3)].id);
4174 ;
4175 }
4176 break;
4177 case 105:
4178 {
4179 yyval.instance->loc = (yyloc);
4180 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
4181 ;
4182 }
4183 break;
4184 case 106:
4185 {
4186 yyval.instance->loc = (yyloc);
4187 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
4188 ;
4189 }
4190 break;
4191 case 107:
4192 {
4193 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].list);
4194 yyval.instance->loc = (yyloc);
4195 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4196 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4197 yyval.instance->loc.end.charPos++;
4198 yyval.instance->loc.end.pos++;
4199 ;
4200 }
4201 break;
4202 case 108:
4203 {
4204 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (3)].list);
4205 yyval.instance->loc = (yyloc);
4206 yyval.instance->insideLoc.start = (yylsp[(1) - (3)]).end;
4207 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4208 yyval.instance->loc.end.charPos++;
4209 yyval.instance->loc.end.pos++;
4210 ;
4211 }
4212 break;
4213 case 109:
4214 {
4215 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), (((void *)0)));
4216 yyval.instance->loc = (yyloc);
4217 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4218 yyval.instance->insideLoc.end = (yylsp[(1) - (2)]).end;
4219 yyval.instance->loc.end.charPos++;
4220 yyval.instance->loc.end.pos++;
4221 ;
4222 }
4223 break;
4224 case 110:
4225 {
4226 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), (((void *)0)));
4227 yyval.instance->loc = (yyloc);
4228 yyval.instance->insideLoc.start = (yylsp[(1) - (1)]).end;
4229 yyval.instance->insideLoc.end = (yylsp[(1) - (1)]).end;
4230 yyval.instance->loc.end.charPos++;
4231 yyval.instance->loc.end.pos++;
4232 ;
4233 }
4234 break;
4235 case 111:
4236 {
4237 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].list);
4238 yyval.instance->loc = (yyloc);
4239 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4240 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4241 yyval.instance->loc.end.charPos++;
4242 yyval.instance->loc.end.pos++;
4243 ;
4244 }
4245 break;
4246 case 112:
4247 {
4248 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
4249 yyval.memberInit->loc = (yyloc);
4250 yyval.memberInit->realLoc = (yyloc);
4251 ;
4252 }
4253 break;
4254 case 113:
4255 {
4256 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
4257 yyval.memberInit->loc = (yyloc);
4258 yyval.memberInit->realLoc = (yyloc);
4259 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
4260 ;
4261 }
4262 break;
4263 case 114:
4264 {
4265 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, MkInitializerAssignment(MkExpDummy()));
4266 yyval.memberInit->loc = (yyloc);
4267 yyval.memberInit->realLoc = (yyloc);
4268 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
4269 yyval.memberInit->initializer->loc.end = (yylsp[(2) - (3)]).end;
4270 ;
4271 }
4272 break;
4273 case 115:
4274 {
4275 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (2)].exp, (((void *)0)));
4276 yyval.memberInit->loc = (yyloc);
4277 yyval.memberInit->realLoc = (yyloc);
4278 ;
4279 }
4280 break;
4281 case 116:
4282 {
4283 yyval.list = MkList();
4284 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
4285 ((struct MemberInit *)(*yyval.list).last)->loc = (yyloc);
4286 ;
4287 }
4288 break;
4289 case 117:
4290 {
4291 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4292 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4293 yyval.list = yyvsp[(1) - (3)].list;
4294 ;
4295 }
4296 break;
4297 case 118:
4298 {
4299 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4300 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4301 yyval.list = yyvsp[(1) - (3)].list;
4302 ;
4303 }
4304 break;
4305 case 119:
4306 {
4307 yyval.list = MkList();
4308 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
4309 ((struct MemberInit *)(*yyval.list).last)->loc = (yyloc);
4310 ;
4311 }
4312 break;
4313 case 120:
4314 {
4315 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4316 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4317 yyval.list = yyvsp[(1) - (3)].list;
4318 ;
4319 }
4320 break;
4321 case 121:
4322 {
4323 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4324 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4325 yyval.list = yyvsp[(1) - (3)].list;
4326 ;
4327 }
4328 break;
4329 case 123:
4330 {
4331 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, (((void *)0)), yyvsp[(3) - (4)].id, (((void *)0)), (((void *)0)));
4332 yyval.prop->loc = (yyloc);
4333 ;
4334 }
4335 break;
4336 case 124:
4337 {
4338 yyval.prop = MkProperty(yyvsp[(2) - (5)].list, yyvsp[(3) - (5)].declarator, yyvsp[(4) - (5)].id, (((void *)0)), (((void *)0)));
4339 yyval.prop->loc = (yyloc);
4340 ;
4341 }
4342 break;
4343 case 125:
4344 {
4345 yyval.prop = MkProperty(yyvsp[(2) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4346 yyval.prop->loc = (yyloc);
4347 ;
4348 }
4349 break;
4350 case 126:
4351 {
4352 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].declarator, (((void *)0)), (((void *)0)), (((void *)0)));
4353 yyval.prop->loc = (yyloc);
4354 ;
4355 }
4356 break;
4357 case 127:
4358 {
4359 yyval.prop = MkProperty((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4360 yyval.prop->loc = (yyloc);
4361 ;
4362 }
4363 break;
4364 case 129:
4365 {
4366 yyvsp[(1) - (3)].prop->setStmt = yyvsp[(3) - (3)].stmt;
4367 ;
4368 }
4369 break;
4370 case 130:
4371 {
4372 yyvsp[(1) - (3)].prop->getStmt = yyvsp[(3) - (3)].stmt;
4373 ;
4374 }
4375 break;
4376 case 131:
4377 {
4378 yyvsp[(1) - (3)].prop->issetStmt = yyvsp[(3) - (3)].stmt;
4379 ;
4380 }
4381 break;
4382 case 132:
4383 {
4384 yyvsp[(1) - (2)].prop->__anon1.isWatchable = 1;
4385 ;
4386 }
4387 break;
4388 case 133:
4389 {
4390 yyvsp[(1) - (3)].prop->category = yyvsp[(3) - (3)].exp;
4391 ;
4392 }
4393 break;
4394 case 134:
4395 {
4396 yyvsp[(1) - (2)].prop->loc.end = (yylsp[(2) - (2)]).end;
4397 yyval.prop = yyvsp[(1) - (2)].prop;
4398 ;
4399 }
4400 break;
4401 case 135:
4402 {
4403 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, (((void *)0)), yyvsp[(3) - (4)].id, (((void *)0)), (((void *)0)));
4404 yyval.prop->loc = (yyloc);
4405 ;
4406 }
4407 break;
4408 case 136:
4409 {
4410 yyval.prop = MkProperty(yyvsp[(2) - (5)].list, yyvsp[(3) - (5)].declarator, yyvsp[(4) - (5)].id, (((void *)0)), (((void *)0)));
4411 yyval.prop->loc = (yyloc);
4412 ;
4413 }
4414 break;
4415 case 137:
4416 {
4417 yyval.prop = MkProperty(yyvsp[(2) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4418 yyval.prop->loc = (yyloc);
4419 ;
4420 }
4421 break;
4422 case 138:
4423 {
4424 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].declarator, (((void *)0)), (((void *)0)), (((void *)0)));
4425 yyval.prop->loc = (yyloc);
4426 ;
4427 }
4428 break;
4429 case 139:
4430 {
4431 yyval.prop = MkProperty((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4432 yyval.prop->loc = (yyloc);
4433 ;
4434 }
4435 break;
4436 case 141:
4437 {
4438 yyvsp[(1) - (3)].prop->setStmt = yyvsp[(3) - (3)].stmt;
4439 ;
4440 }
4441 break;
4442 case 142:
4443 {
4444 yyvsp[(1) - (3)].prop->getStmt = yyvsp[(3) - (3)].stmt;
4445 ;
4446 }
4447 break;
4448 case 143:
4449 {
4450 yyvsp[(1) - (2)].prop->loc.end = (yylsp[(2) - (2)]).end;
4451 ;
4452 }
4453 break;
4454 case 144:
4455 {
4456 yyval.list = MkListOne(yyvsp[(1) - (1)].id);
4457 ;
4458 }
4459 break;
4460 case 145:
4461 {
4462 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].id);
4463 ;
4464 }
4465 break;
4466 case 146:
4467 {
4468 yyval.propertyWatch = MkPropertyWatch(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
4469 ;
4470 }
4471 break;
4472 case 147:
4473 {
4474 yyval.propertyWatch = MkDeleteWatch(yyvsp[(2) - (2)].stmt);
4475 ;
4476 }
4477 break;
4478 case 148:
4479 {
4480 yyval.list = MkListOne(yyvsp[(1) - (1)].propertyWatch);
4481 ;
4482 }
4483 break;
4484 case 149:
4485 {
4486 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].propertyWatch);
4487 ;
4488 }
4489 break;
4490 case 150:
4491 {
4492 yyval.propertyWatch = MkPropertyWatch(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
4493 ;
4494 }
4495 break;
4496 case 151:
4497 {
4498 yyval.stmt = MkWatchStmt((((void *)0)), yyvsp[(3) - (7)].exp, yyvsp[(6) - (7)].list);
4499 ;
4500 }
4501 break;
4502 case 152:
4503 {
4504 yyval.stmt = MkWatchStmt(yyvsp[(1) - (9)].exp, yyvsp[(5) - (9)].exp, yyvsp[(8) - (9)].list);
4505 ;
4506 }
4507 break;
4508 case 153:
4509 {
4510 yyval.stmt = MkStopWatchingStmt((((void *)0)), yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].list);
4511 ;
4512 }
4513 break;
4514 case 154:
4515 {
4516 yyval.stmt = MkStopWatchingStmt(yyvsp[(1) - (8)].exp, yyvsp[(5) - (8)].exp, yyvsp[(7) - (8)].list);
4517 ;
4518 }
4519 break;
4520 case 155:
4521 {
4522 yyval.stmt = MkStopWatchingStmt((((void *)0)), yyvsp[(3) - (4)].exp, (((void *)0)));
4523 ;
4524 }
4525 break;
4526 case 156:
4527 {
4528 yyval.stmt = MkStopWatchingStmt(yyvsp[(1) - (6)].exp, yyvsp[(5) - (6)].exp, (((void *)0)));
4529 ;
4530 }
4531 break;
4532 case 157:
4533 {
4534 yyval.stmt = MkFireWatchersStmt((((void *)0)), (((void *)0)));
4535 ;
4536 }
4537 break;
4538 case 158:
4539 {
4540 yyval.stmt = MkFireWatchersStmt((((void *)0)), yyvsp[(2) - (2)].list);
4541 ;
4542 }
4543 break;
4544 case 159:
4545 {
4546 yyval.stmt = MkFireWatchersStmt(yyvsp[(1) - (3)].exp, (((void *)0)));
4547 ;
4548 }
4549 break;
4550 case 160:
4551 {
4552 yyval.stmt = MkFireWatchersStmt(yyvsp[(1) - (4)].exp, yyvsp[(4) - (4)].list);
4553 ;
4554 }
4555 break;
4556 case 161:
4557 {
4558 yyval.classDef = yyvsp[(1) - (2)].classDef;
4559 yyval.classDef->loc.end = (yylsp[(2) - (2)]).end;
4560 ;
4561 }
4562 break;
4563 case 162:
4564 {
4565 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (2)].list);
4566 if((*yyvsp[(1) - (2)].list).last)
4567 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).start;
4568 yyval.classDef->loc = (yyloc);
4569 ;
4570 }
4571 break;
4572 case 163:
4573 {
4574 yyval.classDef = MkClassDefFunction(yyvsp[(1) - (1)].classFunction);
4575 yyval.classDef->loc = (yyloc);
4576 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4577 ;
4578 }
4579 break;
4580 case 164:
4581 {
4582 yyval.classDef = MkClassDefProperty(yyvsp[(1) - (1)].prop);
4583 yyval.classDef->loc = (yyloc);
4584 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4585 ;
4586 }
4587 break;
4588 case 165:
4589 {
4590 yyval.classDef = MkClassDefFunction(yyvsp[(2) - (2)].classFunction);
4591 yyval.classDef->loc = (yyloc);
4592 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4593 ;
4594 }
4595 break;
4596 case 166:
4597 {
4598 yyval.classDef = MkClassDefProperty(yyvsp[(2) - (2)].prop);
4599 yyval.classDef->loc = (yyloc);
4600 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4601 ;
4602 }
4603 break;
4604 case 167:
4605 {
4606 yyval.classDef = MkClassDefClassProperty(yyvsp[(1) - (1)].prop);
4607 yyval.classDef->loc = (yyloc);
4608 ;
4609 }
4610 break;
4611 case 168:
4612 {
4613 yyval.classDef = (((void *)0));
4614 deleteWatchable = 1;
4615 ;
4616 }
4617 break;
4618 case 169:
4619 {
4620 yyval.classDef = MkClassDefNoExpansion();
4621 ;
4622 }
4623 break;
4624 case 170:
4625 {
4626 yyval.classDef = MkClassDefFixed();
4627 ;
4628 }
4629 break;
4630 case 171:
4631 {
4632 yyval.classDef = MkClassDefClassPropertyValue(yyvsp[(3) - (7)].id, yyvsp[(6) - (7)].initializer);
4633 yyval.classDef->loc = (yyloc);
4634 ;
4635 }
4636 break;
4637 case 172:
4638 {
4639 yyval.classDef = (((void *)0));
4640 ;
4641 }
4642 break;
4643 case 173:
4644 {
4645 memberAccessStack[defaultMemberAccess] = yyvsp[(1) - (2)].declMode;
4646 if(defaultMemberAccess == 0)
4647 {
4648 yyval.classDef = MkClassDefMemberAccess();
4649 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4650 yyval.classDef->loc = (yyloc);
4651 }
4652 else
4653 yyval.classDef = (((void *)0));
4654 ;
4655 }
4656 break;
4657 case 174:
4658 {
4659 yyval.classDef = MkClassDefAccessOverride(yyvsp[(1) - (4)].declMode, yyvsp[(3) - (4)].id);
4660 yyval.classDef->loc = (yyloc);
4661 ;
4662 }
4663 break;
4664 case 175:
4665 {
4666 yyval.classDef = MkClassDefFunction(yyvsp[(1) - (1)].classFunction);
4667 yyval.classDef->loc = yyvsp[(1) - (1)].classFunction->loc;
4668 yyval.classDef->loc.end.charPos++;
4669 yyval.classDef->loc.end.pos++;
4670 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4671 ;
4672 }
4673 break;
4674 case 176:
4675 {
4676 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(1) - (1)].list, (((void *)0)), (((void *)0))));
4677 yyval.classDef->__anon1.decl->loc = (yyloc);
4678 yyval.classDef->loc = (yyloc);
4679 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4680 ;
4681 }
4682 break;
4683 case 177:
4684 {
4685 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list, (((void *)0))));
4686 yyval.classDef->__anon1.decl->loc = (yyloc);
4687 yyval.classDef->loc = (yyloc);
4688 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4689 ;
4690 }
4691 break;
4692 case 178:
4693 {
4694 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].list, (((void *)0))));
4695 yyval.classDef->__anon1.decl->loc = (yyloc);
4696 yyval.classDef->loc = (yyloc);
4697 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4698 ;
4699 }
4700 break;
4701 case 179:
4702 {
4703 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(2) - (2)].list, (((void *)0)), (((void *)0))));
4704 yyval.classDef->__anon1.decl->loc = (yyloc);
4705 yyval.classDef->loc = (yyloc);
4706 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4707 ;
4708 }
4709 break;
4710 case 180:
4711 {
4712 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (2)].instance));
4713 yyval.classDef->loc = (yyloc);
4714 yyval.classDef->__anon1.decl->loc = (yyloc);
4715 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4716 ;
4717 }
4718 break;
4719 case 181:
4720 {
4721 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (2)].instance));
4722 yyval.classDef->loc = (yyloc);
4723 yyval.classDef->__anon1.decl->loc = (yyloc);
4724 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4725 ;
4726 }
4727 break;
4728 case 182:
4729 {
4730 yyval.classDef = MkClassDefClassData(MkStructDeclaration(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].list, (((void *)0))));
4731 yyval.classDef->__anon1.decl->loc = (yyloc);
4732 yyval.classDef->loc = (yyloc);
4733 ;
4734 }
4735 break;
4736 case 183:
4737 {
4738 yyval.classDef = MkClassDefPropertyWatch(yyvsp[(1) - (1)].propertyWatch);
4739 yyval.classDef->loc = (yyloc);
4740 ;
4741 }
4742 break;
4743 case 184:
4744 {
4745 yyval.classDef = MkClassDefDesigner(yyvsp[(2) - (2)].id->string);
4746 FreeIdentifier(yyvsp[(2) - (2)].id);
4747 ;
4748 }
4749 break;
4750 case 185:
4751 {
4752 yyval.classDef = MkClassDefDesigner(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
4753 FreeSpecifier(yyvsp[(2) - (2)].specifier);
4754 ;
4755 }
4756 break;
4757 case 186:
4758 {
4759 yyval.classDef = MkClassDefDesignerDefaultProperty(yyvsp[(2) - (2)].id);
4760 ;
4761 }
4762 break;
4763 case 187:
4764 {
4765 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (1)].instance));
4766 yyval.classDef->loc = (yyloc);
4767 yyval.classDef->__anon1.decl->loc = (yyloc);
4768 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4769 ;
4770 }
4771 break;
4772 case 188:
4773 {
4774 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (1)].instance));
4775 yyval.classDef->loc = (yyloc);
4776 yyval.classDef->__anon1.decl->loc = (yyloc);
4777 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4778 ;
4779 }
4780 break;
4781 case 189:
4782 {
4783 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (1)].list);
4784 if((*yyvsp[(1) - (1)].list).last)
4785 ((struct MemberInit *)(*yyvsp[(1) - (1)].list).last)->loc.end = (yylsp[(1) - (1)]).end;
4786 yyval.classDef->loc = (yyloc);
4787 ;
4788 }
4789 break;
4790 case 190:
4791 {
4792 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (2)].instance));
4793 yyval.classDef->loc = yyvsp[(1) - (2)].instance->loc;
4794 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4795 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4796 ;
4797 }
4798 break;
4799 case 191:
4800 {
4801 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (2)].instance));
4802 yyval.classDef->loc = yyvsp[(1) - (2)].instance->loc;
4803 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4804 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4805 ;
4806 }
4807 break;
4808 case 192:
4809 {
4810 yyval.classDef = MkClassDefFunction(yyvsp[(2) - (2)].classFunction);
4811 yyval.classDef->loc = (yyloc);
4812 yyval.classDef->loc.end.charPos++;
4813 yyval.classDef->loc.end.pos++;
4814 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4815 ;
4816 }
4817 break;
4818 case 193:
4819 {
4820 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (3)].instance));
4821 yyval.classDef->loc = (yyloc);
4822 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4823 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4824 ;
4825 }
4826 break;
4827 case 194:
4828 {
4829 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (3)].instance));
4830 yyval.classDef->loc = (yyloc);
4831 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4832 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4833 ;
4834 }
4835 break;
4836 case 195:
4837 {
4838 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (1)].list);
4839 yyval.classDef->loc = (yyloc);
4840 yyval.classDef->loc.end.charPos++;
4841 yyval.classDef->loc.end.pos++;
4842 ;
4843 }
4844 break;
4845 case 196:
4846 {
4847 yyval.list = MkList();
4848 ListAdd(yyval.list, yyvsp[(1) - (1)].classDef);
4849 ;
4850 }
4851 break;
4852 case 197:
4853 {
4854 yyval.list = yyvsp[(1) - (2)].list;
4855 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].classDef);
4856 ;
4857 }
4858 break;
4859 case 198:
4860 {
4861 yyval.list = yyvsp[(1) - (2)].list;
4862 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].classDef);
4863 ;
4864 }
4865 break;
4866 case 199:
4867 {
4868 yyerror();
4869 yyval.list = MkList();
4870 ListAdd(yyval.list, yyvsp[(1) - (1)].classDef);
4871 ;
4872 }
4873 break;
4874 case 202:
4875 {
4876 yyerror();
4877 yyval.list = yyvsp[(1) - (2)].list;
4878 ListAdd(yyval.list, yyvsp[(2) - (2)].classDef);
4879 ;
4880 }
4881 break;
4882 case 203:
4883 {
4884 yyval.list = yyvsp[(1) - (2)].list;
4885 ListAdd(yyval.list, yyvsp[(2) - (2)].classDef);
4886 ;
4887 }
4888 break;
4889 case 204:
4890 {
4891 yyval.templateDatatype = MkTemplateDatatype(yyvsp[(1) - (1)].list, (((void *)0)));
4892 ;
4893 }
4894 break;
4895 case 205:
4896 {
4897 yyval.templateDatatype = MkTemplateDatatype(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
4898 ;
4899 }
4900 break;
4901 case 206:
4902 {
4903 yyval.templateArgument = MkTemplateTypeArgument(MkTemplateDatatype(yyvsp[(1) - (1)].list, (((void *)0))));
4904 ;
4905 }
4906 break;
4907 case 207:
4908 {
4909 yyval.templateArgument = MkTemplateTypeArgument(MkTemplateDatatype(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator));
4910 ;
4911 }
4912 break;
4913 case 208:
4914 {
4915 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (2)].id, (((void *)0)), (((void *)0)));
4916 ;
4917 }
4918 break;
4919 case 209:
4920 {
4921 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (4)].id, (((void *)0)), yyvsp[(4) - (4)].templateArgument);
4922 ;
4923 }
4924 break;
4925 case 210:
4926 {
4927 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (4)].id, yyvsp[(4) - (4)].templateDatatype, (((void *)0)));
4928 ;
4929 }
4930 break;
4931 case 211:
4932 {
4933 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].templateDatatype, yyvsp[(6) - (6)].templateArgument);
4934 ;
4935 }
4936 break;
4937 case 212:
4938 {
4939 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (2)].string), (((void *)0)), (((void *)0)));
4940 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (2)].string), yyvsp[(2) - (2)].string = 0);
4941 ;
4942 }
4943 break;
4944 case 213:
4945 {
4946 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (4)].string), (((void *)0)), yyvsp[(4) - (4)].templateArgument);
4947 ;
4948 }
4949 break;
4950 case 214:
4951 {
4952 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (4)].string), yyvsp[(4) - (4)].templateDatatype, (((void *)0)));
4953 ;
4954 }
4955 break;
4956 case 215:
4957 {
4958 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (6)].string), yyvsp[(4) - (6)].templateDatatype, yyvsp[(6) - (6)].templateArgument);
4959 ;
4960 }
4961 break;
4962 case 216:
4963 {
4964 yyval.templateArgument = MkTemplateIdentifierArgument(yyvsp[(1) - (1)].id);
4965 ;
4966 }
4967 break;
4968 case 217:
4969 {
4970 yyval.templateParameter = MkIdentifierTemplateParameter(yyvsp[(1) - (1)].id, 0, (((void *)0)));
4971 ;
4972 }
4973 break;
4974 case 218:
4975 {
4976 yyval.templateParameter = MkIdentifierTemplateParameter(yyvsp[(1) - (3)].id, 0, yyvsp[(3) - (3)].templateArgument);
4977 ;
4978 }
4979 break;
4980 case 219:
4981 {
4982 yyval.templateArgument = MkTemplateExpressionArgument(yyvsp[(1) - (1)].exp);
4983 ;
4984 }
4985 break;
4986 case 220:
4987 {
4988 yyval.templateParameter = MkExpressionTemplateParameter(yyvsp[(2) - (4)].id, MkTemplateDatatype(yyvsp[(1) - (4)].list, (((void *)0))), yyvsp[(4) - (4)].templateArgument);
4989 ;
4990 }
4991 break;
4992 case 221:
4993 {
4994 yyval.templateParameter = MkExpressionTemplateParameter(yyvsp[(3) - (5)].id, MkTemplateDatatype(yyvsp[(1) - (5)].list, yyvsp[(2) - (5)].declarator), yyvsp[(5) - (5)].templateArgument);
4995 ;
4996 }
4997 break;
4998 case 225:
4999 {
5000 yyval.list = MkList();
5001 ListAdd(yyval.list, yyvsp[(1) - (1)].templateParameter);
5002 ;
5003 }
5004 break;
5005 case 226:
5006 {
5007 yyval.list = yyvsp[(1) - (3)].list;
5008 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].templateParameter);
5009 ;
5010 }
5011 break;
5012 case 230:
5013 {
5014 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5015 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5016 yyval.templateArgument->loc = (yyloc);
5017 ;
5018 }
5019 break;
5020 case 231:
5021 {
5022 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5023 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5024 yyval.templateArgument->loc = (yyloc);
5025 ;
5026 }
5027 break;
5028 case 232:
5029 {
5030 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5031 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5032 yyval.templateArgument->loc = (yyloc);
5033 ;
5034 }
5035 break;
5036 case 233:
5037 {
5038 yyval.list = MkList();
5039 ListAdd(yyval.list, yyvsp[(1) - (1)].templateArgument);
5040 ;
5041 }
5042 break;
5043 case 234:
5044 {
5045 yyval.list = yyvsp[(1) - (3)].list;
5046 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].templateArgument);
5047 ;
5048 }
5049 break;
5050 case 235:
5051 {
5052 if(curContext != globalContext)
5053 PopContext(curContext);
5054 yyval.context = PushContext();
5055 ;
5056 }
5057 break;
5058 case 236:
5059 {
5060 (void)yyvsp[(1) - (2)].context;
5061 yyval.symbol = DeclClassAddNameSpace(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
5062 FreeIdentifier(yyvsp[(2) - (2)].id);
5063 yyval.symbol->nameLoc = (yylsp[(2) - (2)]);
5064 memberAccessStack[++defaultMemberAccess] = 2;
5065 ;
5066 }
5067 break;
5068 case 237:
5069 {
5070 (void)yyvsp[(1) - (2)].context;
5071 yyval.symbol = DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
5072 yyval.symbol->nameLoc = (yylsp[(2) - (2)]);
5073 FreeSpecifier(yyvsp[(2) - (2)].specifier);
5074 ++defaultMemberAccess;
5075 memberAccessStack[defaultMemberAccess] = 2;
5076 ;
5077 }
5078 break;
5079 case 238:
5080 {
5081 (void)yyvsp[(2) - (3)].context;
5082 yyval.symbol = DeclClassAddNameSpace(yyvsp[(3) - (3)].id->_class, yyvsp[(3) - (3)].id->string);
5083 FreeIdentifier(yyvsp[(1) - (3)].id);
5084 FreeIdentifier(yyvsp[(3) - (3)].id);
5085 yyval.symbol->nameLoc = (yylsp[(3) - (3)]);
5086 yyval.symbol->isRemote = 1;
5087 memberAccessStack[++defaultMemberAccess] = 2;
5088 ;
5089 }
5090 break;
5091 case 239:
5092 {
5093 (void)yyvsp[(2) - (3)].context;
5094 yyval.symbol = DeclClass(yyvsp[(3) - (3)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (3)].specifier->__anon1.__anon1.name);
5095 FreeIdentifier(yyvsp[(1) - (3)].id);
5096 yyval.symbol->nameLoc = (yylsp[(3) - (3)]);
5097 yyval.symbol->isRemote = 1;
5098 FreeSpecifier(yyvsp[(3) - (3)].specifier);
5099 memberAccessStack[++defaultMemberAccess] = 2;
5100 ;
5101 }
5102 break;
5103 case 240:
5104 {
5105 (void)yyvsp[(1) - (5)].context;
5106 yyval.symbol = DeclClassAddNameSpace(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
5107 yyval.symbol->templateParams = yyvsp[(4) - (5)].list;
5108 FreeIdentifier(yyvsp[(2) - (5)].id);
5109 yyval.symbol->nameLoc = (yylsp[(2) - (5)]);
5110 memberAccessStack[++defaultMemberAccess] = 2;
5111 ;
5112 }
5113 break;
5114 case 241:
5115 {
5116 (void)yyvsp[(1) - (5)].context;
5117 yyval.symbol = DeclClass(yyvsp[(2) - (5)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name);
5118 yyval.symbol->templateParams = yyvsp[(4) - (5)].list;
5119 yyval.symbol->nameLoc = (yylsp[(2) - (5)]);
5120 FreeSpecifier(yyvsp[(2) - (5)].specifier);
5121 ++defaultMemberAccess;
5122 memberAccessStack[defaultMemberAccess] = 2;
5123 ;
5124 }
5125 break;
5126 case 242:
5127 {
5128 (void)yyvsp[(2) - (6)].context;
5129 yyval.symbol = DeclClassAddNameSpace(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
5130 yyval.symbol->templateParams = yyvsp[(5) - (6)].list;
5131 FreeIdentifier(yyvsp[(1) - (6)].id);
5132 FreeIdentifier(yyvsp[(3) - (6)].id);
5133 yyval.symbol->nameLoc = (yylsp[(3) - (6)]);
5134 yyval.symbol->isRemote = 1;
5135 memberAccessStack[++defaultMemberAccess] = 2;
5136 ;
5137 }
5138 break;
5139 case 243:
5140 {
5141 (void)yyvsp[(2) - (6)].context;
5142 yyval.symbol = DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
5143 yyval.symbol->templateParams = yyvsp[(5) - (6)].list;
5144 FreeIdentifier(yyvsp[(1) - (6)].id);
5145 yyval.symbol->nameLoc = (yylsp[(3) - (6)]);
5146 yyval.symbol->isRemote = 1;
5147 FreeSpecifier(yyvsp[(3) - (6)].specifier);
5148 memberAccessStack[++defaultMemberAccess] = 2;
5149 ;
5150 }
5151 break;
5152 case 244:
5153 {
5154 yyval._class->loc = (yyloc);
5155 yyval._class = yyvsp[(1) - (2)]._class;
5156 ;
5157 }
5158 break;
5159 case 245:
5160 {
5161 yyval._class = yyvsp[(1) - (2)]._class;
5162 yyval._class->definitions = MkList();
5163 yyval._class->blockStart = (yylsp[(2) - (2)]);
5164 yyval._class->loc = (yyloc);
5165 if(defaultMemberAccess > -1)
5166 defaultMemberAccess--;
5167 PopContext(curContext);
5168 ;
5169 }
5170 break;
5171 case 246:
5172 {
5173 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), MkList());
5174 yyval._class->blockStart = (yylsp[(2) - (3)]);
5175 yyval._class->loc = (yyloc);
5176 if(defaultMemberAccess > -1)
5177 defaultMemberAccess--;
5178 PopContext(curContext);
5179 ;
5180 }
5181 break;
5182 case 247:
5183 {
5184 yyval._class = yyvsp[(1) - (3)]._class;
5185 yyval._class->definitions = MkList();
5186 yyval._class->blockStart = (yylsp[(2) - (3)]);
5187 yyval._class->loc = (yyloc);
5188 if(defaultMemberAccess > -1)
5189 defaultMemberAccess--;
5190 PopContext(curContext);
5191 ;
5192 }
5193 break;
5194 case 248:
5195 {
5196 (void)yyvsp[(1) - (3)].context;
5197 yyval._class = MkClass(DeclClassAddNameSpace(yyvsp[(2) - (3)].id->_class, yyvsp[(2) - (3)].id->string), (((void *)0)), (((void *)0)));
5198 FreeIdentifier(yyvsp[(2) - (3)].id);
5199 if(defaultMemberAccess > -1)
5200 defaultMemberAccess--;
5201 PopContext(curContext);
5202 ;
5203 }
5204 break;
5205 case 249:
5206 {
5207 (void)yyvsp[(1) - (3)].context;
5208 yyval._class = MkClass(DeclClass(yyvsp[(2) - (3)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (3)].specifier->__anon1.__anon1.name), (((void *)0)), (((void *)0)));
5209 FreeSpecifier(yyvsp[(2) - (3)].specifier);
5210 if(defaultMemberAccess > -1)
5211 defaultMemberAccess--;
5212 PopContext(curContext);
5213 ;
5214 }
5215 break;
5216 case 250:
5217 {
5218 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, yyvsp[(3) - (3)].list, (((void *)0)));
5219 ;
5220 }
5221 break;
5222 case 251:
5223 {
5224 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), yyvsp[(3) - (3)].list);
5225 yyval._class->deleteWatchable = deleteWatchable;
5226 deleteWatchable = 0;
5227 yyval._class->blockStart = (yylsp[(2) - (3)]);
5228 yyval._class->loc = (yyloc);
5229 yyval._class->loc.end.charPos++;
5230 yyval._class->loc.end.pos++;
5231 if(defaultMemberAccess > -1)
5232 defaultMemberAccess--;
5233 PopContext(curContext);
5234 ;
5235 }
5236 break;
5237 case 252:
5238 {
5239 yyval._class = yyvsp[(1) - (3)]._class;
5240 yyval._class->definitions = yyvsp[(3) - (3)].list;
5241 yyval._class->deleteWatchable = deleteWatchable;
5242 deleteWatchable = 0;
5243 yyval._class->blockStart = (yylsp[(2) - (3)]);
5244 yyval._class->loc = (yyloc);
5245 yyval._class->loc.end.charPos++;
5246 yyval._class->loc.end.pos++;
5247 if(defaultMemberAccess > -1)
5248 defaultMemberAccess--;
5249 PopContext(curContext);
5250 ;
5251 }
5252 break;
5253 case 253:
5254 {
5255 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), yyvsp[(3) - (3)].list);
5256 yyval._class->deleteWatchable = deleteWatchable;
5257 deleteWatchable = 0;
5258 yyval._class->blockStart = (yylsp[(2) - (3)]);
5259 yyval._class->loc = (yyloc);
5260 yyval._class->loc.end.charPos++;
5261 yyval._class->loc.end.pos++;
5262 if(defaultMemberAccess > -1)
5263 defaultMemberAccess--;
5264 PopContext(curContext);
5265 ;
5266 }
5267 break;
5268 case 254:
5269 {
5270 yyval._class = yyvsp[(1) - (3)]._class;
5271 yyval._class->definitions = yyvsp[(3) - (3)].list;
5272 yyval._class->deleteWatchable = deleteWatchable;
5273 deleteWatchable = 0;
5274 yyval._class->blockStart = (yylsp[(2) - (3)]);
5275 yyval._class->loc = (yyloc);
5276 yyval._class->loc.end.charPos++;
5277 yyval._class->loc.end.pos++;
5278 if(defaultMemberAccess > -1)
5279 defaultMemberAccess--;
5280 PopContext(curContext);
5281 ;
5282 }
5283 break;
5284 case 255:
5285 {
5286 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), MkList());
5287 yyval._class->deleteWatchable = deleteWatchable;
5288 deleteWatchable = 0;
5289 yyval._class->blockStart = (yylsp[(2) - (3)]);
5290 yyval._class->loc = (yyloc);
5291 yyval._class->loc.end.charPos++;
5292 yyval._class->loc.end.pos++;
5293 if(defaultMemberAccess > -1)
5294 defaultMemberAccess--;
5295 PopContext(curContext);
5296 ;
5297 }
5298 break;
5299 case 256:
5300 {
5301 yyval._class = yyvsp[(1) - (3)]._class;
5302 yyval._class->definitions = MkList();
5303 yyval._class->deleteWatchable = deleteWatchable;
5304 deleteWatchable = 0;
5305 yyval._class->blockStart = (yylsp[(2) - (3)]);
5306 yyval._class->loc = (yyloc);
5307 yyval._class->loc.end.charPos++;
5308 yyval._class->loc.end.pos++;
5309 if(defaultMemberAccess > -1)
5310 defaultMemberAccess--;
5311 PopContext(curContext);
5312 ;
5313 }
5314 break;
5315 case 257:
5316 {
5317 yyval.id = MkIdentifier(yytext);
5318 yyval.id->loc = (yylsp[(1) - (1)]);
5319 ;
5320 }
5321 break;
5322 case 259:
5323 {
5324 yyval.exp = MkExpBrackets(yyvsp[(2) - (3)].list);
5325 yyval.exp->loc = (yyloc);
5326 ;
5327 }
5328 break;
5329 case 260:
5330 {
5331 yyval.exp = MkExpString(yyvsp[(1) - (1)].string);
5332 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(1) - (1)].string), yyvsp[(1) - (1)].string = 0);
5333 yyval.exp->loc = (yyloc);
5334 ;
5335 }
5336 break;
5337 case 261:
5338 {
5339 yyval.exp = MkExpIntlString(yyvsp[(2) - (2)].string, (((void *)0)));
5340 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (2)].string), yyvsp[(2) - (2)].string = 0);
5341 yyval.exp->loc = (yyloc);
5342 ;
5343 }
5344 break;
5345 case 262:
5346 {
5347 yyval.exp = MkExpIntlString(yyvsp[(4) - (4)].string, yyvsp[(2) - (4)].string);
5348 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (4)].string), yyvsp[(2) - (4)].string = 0);
5349 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(4) - (4)].string), yyvsp[(4) - (4)].string = 0);
5350 yyval.exp->loc = (yyloc);
5351 ;
5352 }
5353 break;
5354 case 263:
5355 {
5356 yyval.exp = MkExpConstant(yytext);
5357 yyval.exp->loc = (yyloc);
5358 ;
5359 }
5360 break;
5361 case 264:
5362 {
5363 yyval.exp = MkExpIdentifier(yyvsp[(1) - (1)].id);
5364 yyval.exp->loc = (yyloc);
5365 ;
5366 }
5367 break;
5368 case 265:
5369 {
5370 yyval.exp = MkExpInstance(yyvsp[(1) - (1)].instance);
5371 yyval.exp->loc = (yyloc);
5372 ;
5373 }
5374 break;
5375 case 266:
5376 {
5377 yyval.exp = MkExpExtensionCompound(yyvsp[(3) - (4)].stmt);
5378 yyval.exp->loc = (yyloc);
5379 ;
5380 }
5381 break;
5382 case 267:
5383 {
5384 yyval.exp = MkExpExtensionExpression(yyvsp[(3) - (4)].list);
5385 yyval.exp->loc = (yyloc);
5386 ;
5387 }
5388 break;
5389 case 268:
5390 {
5391 yyval.exp = MkExpExtensionInitializer(yyvsp[(3) - (5)].typeName, yyvsp[(5) - (5)].initializer);
5392 yyval.exp->loc = (yyloc);
5393 ;
5394 }
5395 break;
5396 case 269:
5397 {
5398 yyval.exp = MkExpExtensionInitializer(yyvsp[(3) - (8)].typeName, MkInitializerAssignment(MkExpExtensionInitializer(yyvsp[(6) - (8)].typeName, yyvsp[(8) - (8)].initializer)));
5399 yyval.exp->loc = (yyloc);
5400 ;
5401 }
5402 break;
5403 case 270:
5404 {
5405 char * constant = yyvsp[(1) - (2)].exp->__anon1.__anon1.constant;
5406 int len = strlen(constant);
5407
5408 if(constant[len - 1] == '.')
5409 {
5410 constant[len - 1] = 0;
5411 yyval.exp = MkExpMember(yyvsp[(1) - (2)].exp, yyvsp[(2) - (2)].id);
5412 yyval.exp->loc = (yyloc);
5413 }
5414 else
5415 yyerror();
5416 ;
5417 }
5418 break;
5419 case 271:
5420 {
5421 yyval.exp = yyvsp[(1) - (1)].exp;
5422 ;
5423 }
5424 break;
5425 case 273:
5426 {
5427 yyval.exp = MkExpWideString(yytext);
5428 yyval.exp->loc = (yyloc);
5429 ;
5430 }
5431 break;
5432 case 274:
5433 {
5434 struct Expression * exp = MkExpDummy();
5435
5436 exp->loc.start = (yylsp[(1) - (2)]).end;
5437 exp->loc.end = (yylsp[(2) - (2)]).start;
5438 yyval.exp = MkExpBrackets(MkListOne(exp));
5439 yyval.exp->loc = (yyloc);
5440 yyerror();
5441 ;
5442 }
5443 break;
5444 case 275:
5445 {
5446 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5447 yyval.exp->loc = (yyloc);
5448 ;
5449 }
5450 break;
5451 case 276:
5452 {
5453 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5454 yyval.exp->loc = (yyloc);
5455 ;
5456 }
5457 break;
5458 case 277:
5459 {
5460 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5461 yyval.exp->loc = (yyloc);
5462 ;
5463 }
5464 break;
5465 case 278:
5466 {
5467 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5468 yyval.exp->loc = (yyloc);
5469 ;
5470 }
5471 break;
5472 case 279:
5473 {
5474 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5475 yyval.exp->loc = (yyloc);
5476 ;
5477 }
5478 break;
5479 case 280:
5480 {
5481 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5482 yyval.exp->loc = (yyloc);
5483 ;
5484 }
5485 break;
5486 case 281:
5487 {
5488 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5489 yyval.exp->loc = (yyloc);
5490 ;
5491 }
5492 break;
5493 case 282:
5494 {
5495 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5496 yyval.exp->loc = (yyloc);
5497 ;
5498 }
5499 break;
5500 case 283:
5501 {
5502 yyval.exp = MkExpRenew(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5503 yyval.exp->loc = (yyloc);
5504 ;
5505 }
5506 break;
5507 case 284:
5508 {
5509 yyval.exp = MkExpRenew(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5510 yyval.exp->loc = (yyloc);
5511 ;
5512 }
5513 break;
5514 case 285:
5515 {
5516 yyval.exp = MkExpRenew(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5517 yyval.exp->loc = (yyloc);
5518 ;
5519 }
5520 break;
5521 case 286:
5522 {
5523 yyval.exp = MkExpRenew(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5524 yyval.exp->loc = (yyloc);
5525 ;
5526 }
5527 break;
5528 case 287:
5529 {
5530 yyval.exp = MkExpRenew0(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5531 yyval.exp->loc = (yyloc);
5532 ;
5533 }
5534 break;
5535 case 288:
5536 {
5537 yyval.exp = MkExpRenew0(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5538 yyval.exp->loc = (yyloc);
5539 ;
5540 }
5541 break;
5542 case 289:
5543 {
5544 yyval.exp = MkExpRenew0(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5545 yyval.exp->loc = (yyloc);
5546 ;
5547 }
5548 break;
5549 case 290:
5550 {
5551 yyval.exp = MkExpRenew0(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5552 yyval.exp->loc = (yyloc);
5553 ;
5554 }
5555 break;
5556 case 291:
5557 {
5558 yyval.exp = MkExpClass(yyvsp[(3) - (4)].list, (((void *)0)));
5559 yyval.exp->loc = (yyloc);
5560 ;
5561 }
5562 break;
5563 case 292:
5564 {
5565 yyval.exp = MkExpClass(yyvsp[(3) - (5)].list, yyvsp[(4) - (5)].declarator);
5566 yyval.exp->loc = (yyloc);
5567 ;
5568 }
5569 break;
5570 case 293:
5571 {
5572 yyval.exp = MkExpClass(MkListOne(MkSpecifierName(yyvsp[(3) - (4)].id->string)), (((void *)0)));
5573 FreeIdentifier(yyvsp[(3) - (4)].id);
5574 yyval.exp->loc = (yyloc);
5575 ;
5576 }
5577 break;
5578 case 294:
5579 {
5580 yyval.exp = MkExpVaArg(yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].typeName);
5581 yyval.exp->loc = (yyloc);
5582 ;
5583 }
5584 break;
5585 case 295:
5586 {
5587 yyval.exp = MkExpClassData(yyvsp[(3) - (4)].id);
5588 yyval.exp->loc = (yyloc);
5589 ;
5590 }
5591 break;
5592 case 300:
5593 {
5594 yyval.exp = MkExpArray(yyvsp[(2) - (3)].list);
5595 yyval.exp->loc = (yyloc);
5596 ;
5597 }
5598 break;
5599 case 301:
5600 {
5601 yyval.exp = MkExpArray((((void *)0)));
5602 yyval.exp->loc = (yyloc);
5603 ;
5604 }
5605 break;
5606 case 302:
5607 {
5608 yyval.exp = MkExpInstance(yyvsp[(1) - (1)].instance);
5609 yyval.exp->loc = (yyloc);
5610 ;
5611 }
5612 break;
5613 case 303:
5614 {
5615 yyval.exp = MkExpInstance(yyvsp[(1) - (2)].instance);
5616 yyval.exp->loc = (yyloc);
5617 ;
5618 }
5619 break;
5620 case 304:
5621 {
5622 yyerror();
5623 yyval.exp = MkExpBrackets(yyvsp[(2) - (2)].list);
5624 yyval.exp->loc = (yyloc);
5625 ;
5626 }
5627 break;
5628 case 305:
5629 {
5630 yyval.exp = MkExpBrackets(yyvsp[(2) - (2)].list);
5631 yyval.exp->loc = (yyloc);
5632 ;
5633 }
5634 break;
5635 case 307:
5636 {
5637 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5638 yyval.exp->loc = (yyloc);
5639 ;
5640 }
5641 break;
5642 case 308:
5643 {
5644 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5645 yyval.exp->loc = (yyloc);
5646 ;
5647 }
5648 break;
5649 case 309:
5650 {
5651 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, MkList());
5652 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
5653 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
5654 yyval.exp->loc = (yyloc);
5655 ;
5656 }
5657 break;
5658 case 310:
5659 {
5660 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5661 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5662 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5663 yyval.exp->loc = (yyloc);
5664 ;
5665 }
5666 break;
5667 case 311:
5668 {
5669 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5670 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5671 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5672 yyval.exp->loc = (yyloc);
5673 if((*yyvsp[(3) - (4)].list).last)
5674 ((struct Expression *)(*yyvsp[(3) - (4)].list).last)->loc.end = (yylsp[(4) - (4)]).start;
5675 ;
5676 }
5677 break;
5678 case 312:
5679 {
5680 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5681 yyval.exp->loc = (yyloc);
5682 ;
5683 }
5684 break;
5685 case 313:
5686 {
5687 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5688 yyval.exp->loc = (yyloc);
5689 ;
5690 }
5691 break;
5692 case 314:
5693 {
5694 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, INC_OP, (((void *)0)));
5695 yyval.exp->loc = (yyloc);
5696 ;
5697 }
5698 break;
5699 case 315:
5700 {
5701 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, DEC_OP, (((void *)0)));
5702 yyval.exp->loc = (yyloc);
5703 ;
5704 }
5705 break;
5706 case 316:
5707 {
5708 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5709 yyval.exp->loc = (yyloc);
5710 ;
5711 }
5712 break;
5713 case 317:
5714 {
5715 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5716 yyval.exp->loc = (yyloc);
5717 ;
5718 }
5719 break;
5720 case 318:
5721 {
5722 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, MkList());
5723 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
5724 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
5725 yyval.exp->loc = (yyloc);
5726 ;
5727 }
5728 break;
5729 case 319:
5730 {
5731 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5732 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5733 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5734 yyval.exp->loc = (yyloc);
5735 ;
5736 }
5737 break;
5738 case 320:
5739 {
5740 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5741 yyval.exp->loc = (yyloc);
5742 ;
5743 }
5744 break;
5745 case 321:
5746 {
5747 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5748 yyval.exp->loc = (yyloc);
5749 ;
5750 }
5751 break;
5752 case 322:
5753 {
5754 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, INC_OP, (((void *)0)));
5755 yyval.exp->loc = (yyloc);
5756 ;
5757 }
5758 break;
5759 case 323:
5760 {
5761 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, DEC_OP, (((void *)0)));
5762 yyval.exp->loc = (yyloc);
5763 ;
5764 }
5765 break;
5766 case 324:
5767 {
5768 yyval.list = MkList();
5769 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5770 ;
5771 }
5772 break;
5773 case 325:
5774 {
5775 yyval.list = MkList();
5776 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5777 ;
5778 }
5779 break;
5780 case 326:
5781 {
5782 yyval.list = yyvsp[(1) - (3)].list;
5783 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5784 ;
5785 }
5786 break;
5787 case 327:
5788 {
5789 yyval.list = yyvsp[(1) - (3)].list;
5790 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5791 ;
5792 }
5793 break;
5794 case 328:
5795 {
5796 yyval.list = MkList();
5797 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5798 ;
5799 }
5800 break;
5801 case 329:
5802 {
5803 yyval.list = MkList();
5804 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5805 ;
5806 }
5807 break;
5808 case 330:
5809 {
5810 yyval.list = yyvsp[(1) - (3)].list;
5811 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5812 ;
5813 }
5814 break;
5815 case 331:
5816 {
5817 yyval.list = yyvsp[(1) - (3)].list;
5818 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5819 ;
5820 }
5821 break;
5822 case 332:
5823 {
5824 struct Expression * exp = MkExpDummy();
5825
5826 yyerror();
5827 exp->loc.start = (yylsp[(2) - (2)]).end;
5828 exp->loc.end = (yylsp[(2) - (2)]).end;
5829 yyval.list = yyvsp[(1) - (2)].list;
5830 ListAdd(yyvsp[(1) - (2)].list, exp);
5831 ;
5832 }
5833 break;
5834 case 333:
5835 {
5836 yyval.exp = MkExpOp((((void *)0)), INC_OP, yyvsp[(2) - (2)].exp);
5837 yyval.exp->loc = (yyloc);
5838 ;
5839 }
5840 break;
5841 case 334:
5842 {
5843 yyval.exp = MkExpOp((((void *)0)), DEC_OP, yyvsp[(2) - (2)].exp);
5844 yyval.exp->loc = (yyloc);
5845 ;
5846 }
5847 break;
5848 case 335:
5849 {
5850 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
5851 yyval.exp->loc = (yyloc);
5852 ;
5853 }
5854 break;
5855 case 336:
5856 {
5857 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
5858 yyval.exp->loc = (yyloc);
5859 ;
5860 }
5861 break;
5862 case 337:
5863 {
5864 yyval.exp = MkExpOp((((void *)0)), SIZEOF, yyvsp[(2) - (2)].exp);
5865 yyval.exp->loc = (yyloc);
5866 ;
5867 }
5868 break;
5869 case 338:
5870 {
5871 yyval.exp = MkExpTypeSize(yyvsp[(3) - (4)].typeName);
5872 yyval.exp->loc = (yyloc);
5873 ;
5874 }
5875 break;
5876 case 339:
5877 {
5878 yyval.exp = MkExpClassSize(yyvsp[(4) - (5)].specifier);
5879 yyval.exp->loc = (yyloc);
5880 ;
5881 }
5882 break;
5883 case 340:
5884 {
5885 yyval.exp = MkExpClassSize(yyvsp[(4) - (5)].specifier);
5886 yyval.exp->loc = (yyloc);
5887 ;
5888 }
5889 break;
5890 case 341:
5891 {
5892 yyval.exp = MkExpOp((((void *)0)), ALIGNOF, yyvsp[(2) - (2)].exp);
5893 yyval.exp->loc = (yyloc);
5894 ;
5895 }
5896 break;
5897 case 342:
5898 {
5899 yyval.exp = MkExpTypeAlign(yyvsp[(3) - (4)].typeName);
5900 yyval.exp->loc = (yyloc);
5901 ;
5902 }
5903 break;
5904 case 345:
5905 {
5906 yyval.i = '&';
5907 ;
5908 }
5909 break;
5910 case 346:
5911 {
5912 yyval.i = '*';
5913 ;
5914 }
5915 break;
5916 case 347:
5917 {
5918 yyval.i = '+';
5919 ;
5920 }
5921 break;
5922 case 348:
5923 {
5924 yyval.i = '-';
5925 ;
5926 }
5927 break;
5928 case 349:
5929 {
5930 yyval.i = '~';
5931 ;
5932 }
5933 break;
5934 case 350:
5935 {
5936 yyval.i = '!';
5937 ;
5938 }
5939 break;
5940 case 351:
5941 {
5942 yyval.i = DELETE;
5943 ;
5944 }
5945 break;
5946 case 352:
5947 {
5948 yyval.i = _INCREF;
5949 ;
5950 }
5951 break;
5952 case 354:
5953 {
5954 yyval.exp = MkExpCast(yyvsp[(2) - (4)].typeName, yyvsp[(4) - (4)].exp);
5955 yyval.exp->loc = (yyloc);
5956 ;
5957 }
5958 break;
5959 case 356:
5960 {
5961 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
5962 yyval.exp->loc = (yyloc);
5963 ;
5964 }
5965 break;
5966 case 357:
5967 {
5968 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
5969 yyval.exp->loc = (yyloc);
5970 ;
5971 }
5972 break;
5973 case 358:
5974 {
5975 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
5976 yyval.exp->loc = (yyloc);
5977 ;
5978 }
5979 break;
5980 case 359:
5981 {
5982 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
5983 yyval.exp->loc = (yyloc);
5984 ;
5985 }
5986 break;
5987 case 360:
5988 {
5989 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
5990 yyval.exp->loc = (yyloc);
5991 ;
5992 }
5993 break;
5994 case 361:
5995 {
5996 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
5997 yyval.exp->loc = (yyloc);
5998 ;
5999 }
6000 break;
6001 case 363:
6002 {
6003 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6004 yyval.exp->loc = (yyloc);
6005 ;
6006 }
6007 break;
6008 case 364:
6009 {
6010 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6011 yyval.exp->loc = (yyloc);
6012 ;
6013 }
6014 break;
6015 case 365:
6016 {
6017 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6018 yyval.exp->loc = (yyloc);
6019 ;
6020 }
6021 break;
6022 case 366:
6023 {
6024 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6025 yyval.exp->loc = (yyloc);
6026 ;
6027 }
6028 break;
6029 case 368:
6030 {
6031 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6032 yyval.exp->loc = (yyloc);
6033 ;
6034 }
6035 break;
6036 case 369:
6037 {
6038 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6039 yyval.exp->loc = (yyloc);
6040 ;
6041 }
6042 break;
6043 case 370:
6044 {
6045 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6046 yyval.exp->loc = (yyloc);
6047 ;
6048 }
6049 break;
6050 case 371:
6051 {
6052 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6053 yyval.exp->loc = (yyloc);
6054 ;
6055 }
6056 break;
6057 case 372:
6058 {
6059 yyval.exp = yyvsp[(1) - (2)].exp;
6060 skipErrors = 1;
6061 ;
6062 }
6063 break;
6064 case 374:
6065 {
6066 skipErrors = 0;
6067 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, '<', yyvsp[(2) - (2)].exp);
6068 yyval.exp->loc = (yyloc);
6069 ;
6070 }
6071 break;
6072 case 375:
6073 {
6074 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6075 yyval.exp->loc = (yyloc);
6076 ;
6077 }
6078 break;
6079 case 376:
6080 {
6081 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6082 yyval.exp->loc = (yyloc);
6083 ;
6084 }
6085 break;
6086 case 377:
6087 {
6088 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6089 yyval.exp->loc = (yyloc);
6090 ;
6091 }
6092 break;
6093 case 378:
6094 {
6095 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '<', yyvsp[(3) - (3)].exp);
6096 yyval.exp->loc = (yyloc);
6097 ;
6098 }
6099 break;
6100 case 379:
6101 {
6102 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6103 yyval.exp->loc = (yyloc);
6104 ;
6105 }
6106 break;
6107 case 380:
6108 {
6109 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6110 yyval.exp->loc = (yyloc);
6111 ;
6112 }
6113 break;
6114 case 381:
6115 {
6116 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6117 yyval.exp->loc = (yyloc);
6118 ;
6119 }
6120 break;
6121 case 383:
6122 {
6123 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6124 yyval.exp->loc = (yyloc);
6125 ;
6126 }
6127 break;
6128 case 384:
6129 {
6130 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6131 yyval.exp->loc = (yyloc);
6132 ;
6133 }
6134 break;
6135 case 385:
6136 {
6137 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6138 yyval.exp->loc = (yyloc);
6139 ;
6140 }
6141 break;
6142 case 386:
6143 {
6144 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6145 yyval.exp->loc = (yyloc);
6146 ;
6147 }
6148 break;
6149 case 387:
6150 {
6151 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6152 yyval.exp->loc = (yyloc);
6153 ;
6154 }
6155 break;
6156 case 388:
6157 {
6158 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6159 yyval.exp->loc = (yyloc);
6160 ;
6161 }
6162 break;
6163 case 389:
6164 {
6165 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6166 yyval.exp->loc = (yyloc);
6167 ;
6168 }
6169 break;
6170 case 390:
6171 {
6172 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6173 yyval.exp->loc = (yyloc);
6174 ;
6175 }
6176 break;
6177 case 392:
6178 {
6179 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6180 yyval.exp->loc = (yyloc);
6181 ;
6182 }
6183 break;
6184 case 393:
6185 {
6186 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6187 yyval.exp->loc = (yyloc);
6188 ;
6189 }
6190 break;
6191 case 394:
6192 {
6193 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6194 yyval.exp->loc = (yyloc);
6195 ;
6196 }
6197 break;
6198 case 395:
6199 {
6200 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6201 yyval.exp->loc = (yyloc);
6202 ;
6203 }
6204 break;
6205 case 397:
6206 {
6207 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6208 yyval.exp->loc = (yyloc);
6209 ;
6210 }
6211 break;
6212 case 398:
6213 {
6214 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6215 yyval.exp->loc = (yyloc);
6216 ;
6217 }
6218 break;
6219 case 399:
6220 {
6221 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6222 yyval.exp->loc = (yyloc);
6223 ;
6224 }
6225 break;
6226 case 400:
6227 {
6228 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6229 yyval.exp->loc = (yyloc);
6230 ;
6231 }
6232 break;
6233 case 402:
6234 {
6235 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6236 yyval.exp->loc = (yyloc);
6237 ;
6238 }
6239 break;
6240 case 403:
6241 {
6242 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6243 yyval.exp->loc = (yyloc);
6244 ;
6245 }
6246 break;
6247 case 404:
6248 {
6249 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6250 yyval.exp->loc = (yyloc);
6251 ;
6252 }
6253 break;
6254 case 405:
6255 {
6256 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6257 yyval.exp->loc = (yyloc);
6258 ;
6259 }
6260 break;
6261 case 407:
6262 {
6263 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
6264 yyval.exp->loc = (yyloc);
6265 ;
6266 }
6267 break;
6268 case 408:
6269 {
6270 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
6271 yyval.exp->loc = (yyloc);
6272 ;
6273 }
6274 break;
6275 case 410:
6276 {
6277 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
6278 yyval.exp->loc = (yyloc);
6279 ;
6280 }
6281 break;
6282 case 411:
6283 {
6284 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
6285 yyval.exp->loc = (yyloc);
6286 ;
6287 }
6288 break;
6289 case 413:
6290 {
6291 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6292 yyval.exp->loc = (yyloc);
6293 ;
6294 }
6295 break;
6296 case 414:
6297 {
6298 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6299 yyval.exp->loc = (yyloc);
6300 ;
6301 }
6302 break;
6303 case 415:
6304 {
6305 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6306 yyval.exp->loc = (yyloc);
6307 ;
6308 }
6309 break;
6310 case 416:
6311 {
6312 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6313 yyval.exp->loc = (yyloc);
6314 ;
6315 }
6316 break;
6317 case 417:
6318 {
6319 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6320 yyval.exp->loc = (yyloc);
6321 ;
6322 }
6323 break;
6324 case 418:
6325 {
6326 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6327 yyval.exp->loc = (yyloc);
6328 ;
6329 }
6330 break;
6331 case 419:
6332 {
6333 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6334 yyval.exp->loc = (yyloc);
6335 ;
6336 }
6337 break;
6338 case 420:
6339 {
6340 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6341 yyval.exp->loc = (yyloc);
6342 ;
6343 }
6344 break;
6345 case 421:
6346 {
6347 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6348 yyval.exp->loc = (yyloc);
6349 ;
6350 }
6351 break;
6352 case 422:
6353 {
6354 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6355 yyval.exp->loc = (yyloc);
6356 ;
6357 }
6358 break;
6359 case 423:
6360 {
6361 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6362 yyval.exp->loc = (yyloc);
6363 ;
6364 }
6365 break;
6366 case 424:
6367 {
6368 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6369 yyval.exp->loc = (yyloc);
6370 ;
6371 }
6372 break;
6373 case 425:
6374 {
6375 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6376 yyval.exp->loc = (yyloc);
6377 ;
6378 }
6379 break;
6380 case 426:
6381 {
6382 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6383 yyval.exp->loc = (yyloc);
6384 ;
6385 }
6386 break;
6387 case 427:
6388 {
6389 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6390 yyval.exp->loc = (yyloc);
6391 ;
6392 }
6393 break;
6394 case 428:
6395 {
6396 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6397 yyval.exp->loc = (yyloc);
6398 ;
6399 }
6400 break;
6401 case 430:
6402 {
6403 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6404 yyval.exp->loc = (yyloc);
6405 ;
6406 }
6407 break;
6408 case 431:
6409 {
6410 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6411 yyval.exp->loc = (yyloc);
6412 ;
6413 }
6414 break;
6415 case 432:
6416 {
6417 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "l-value expected\n", (((void *)0))));
6418 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6419 yyval.exp->loc = (yyloc);
6420 ;
6421 }
6422 break;
6423 case 433:
6424 {
6425 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "l-value expected\n", (((void *)0))));
6426 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6427 yyval.exp->loc = (yyloc);
6428 ;
6429 }
6430 break;
6431 case 434:
6432 {
6433 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6434 yyval.exp->loc = (yyloc);
6435 ;
6436 }
6437 break;
6438 case 435:
6439 {
6440 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6441 yyval.exp->loc = (yyloc);
6442 ;
6443 }
6444 break;
6445 case 436:
6446 {
6447 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6448 yyval.exp->loc = (yyloc);
6449 ;
6450 }
6451 break;
6452 case 437:
6453 {
6454 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6455 yyval.exp->loc = (yyloc);
6456 ;
6457 }
6458 break;
6459 case 438:
6460 {
6461 yyval.i = '=';
6462 ;
6463 }
6464 break;
6465 case 439:
6466 {
6467 yyval.i = MUL_ASSIGN;
6468 ;
6469 }
6470 break;
6471 case 440:
6472 {
6473 yyval.i = DIV_ASSIGN;
6474 ;
6475 }
6476 break;
6477 case 441:
6478 {
6479 yyval.i = MOD_ASSIGN;
6480 ;
6481 }
6482 break;
6483 case 442:
6484 {
6485 yyval.i = ADD_ASSIGN;
6486 ;
6487 }
6488 break;
6489 case 443:
6490 {
6491 yyval.i = SUB_ASSIGN;
6492 ;
6493 }
6494 break;
6495 case 444:
6496 {
6497 yyval.i = LEFT_ASSIGN;
6498 ;
6499 }
6500 break;
6501 case 445:
6502 {
6503 yyval.i = RIGHT_ASSIGN;
6504 ;
6505 }
6506 break;
6507 case 446:
6508 {
6509 yyval.i = AND_ASSIGN;
6510 ;
6511 }
6512 break;
6513 case 447:
6514 {
6515 yyval.i = XOR_ASSIGN;
6516 ;
6517 }
6518 break;
6519 case 448:
6520 {
6521 yyval.i = OR_ASSIGN;
6522 ;
6523 }
6524 break;
6525 case 449:
6526 {
6527 yyval.list = MkList();
6528 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
6529 ;
6530 }
6531 break;
6532 case 450:
6533 {
6534 yyval.list = yyvsp[(1) - (3)].list;
6535 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6536 ;
6537 }
6538 break;
6539 case 451:
6540 {
6541 yyval.list = yyvsp[(1) - (3)].list;
6542 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6543 ;
6544 }
6545 break;
6546 case 453:
6547 {
6548 yyval.list = MkList();
6549 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
6550 ;
6551 }
6552 break;
6553 case 454:
6554 {
6555 yyval.list = yyvsp[(1) - (3)].list;
6556 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6557 ;
6558 }
6559 break;
6560 case 455:
6561 {
6562 yyval.list = yyvsp[(1) - (3)].list;
6563 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6564 ;
6565 }
6566 break;
6567 case 457:
6568 {
6569 yyval.exp = MkExpDummy();
6570 yyval.exp->loc = (yyloc);
6571 ;
6572 }
6573 break;
6574 case 459:
6575 {
6576 yyval.exp = MkExpInstance(yyvsp[(1) - (2)].instance);
6577 yyval.exp->loc = (yyloc);
6578 ;
6579 }
6580 break;
6581 case 460:
6582 {
6583 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, (((void *)0)));
6584 yyval.exp->loc = (yyloc);
6585 ;
6586 }
6587 break;
6588 case 461:
6589 {
6590 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, (((void *)0)));
6591 yyval.exp->loc = (yyloc);
6592 ;
6593 }
6594 break;
6595 case 462:
6596 {
6597 yyerror();
6598 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6599 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6600 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6601 yyval.exp->loc = (yyloc);
6602 yyval.exp->__anon1.call.argLoc.end.charPos++;
6603 ;
6604 }
6605 break;
6606 case 463:
6607 {
6608 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6609 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6610 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6611 yyval.exp->loc = (yyloc);
6612 yyval.exp->__anon1.call.argLoc.end.charPos++;
6613 ;
6614 }
6615 break;
6616 case 464:
6617 {
6618 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, (((void *)0)));
6619 yyval.exp->loc = (yyloc);
6620 ;
6621 }
6622 break;
6623 case 465:
6624 {
6625 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6626 yyval.exp->loc = (yyloc);
6627 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6628 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6629 yyval.exp->__anon1.call.argLoc.end.charPos++;
6630 ;
6631 }
6632 break;
6633 case 466:
6634 {
6635 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, (((void *)0)));
6636 yyval.exp->loc = (yyloc);
6637 ;
6638 }
6639 break;
6640 case 467:
6641 {
6642 yyval.exp = MkExpOp((((void *)0)), INC_OP, yyvsp[(2) - (2)].exp);
6643 yyval.exp->loc = (yyloc);
6644 ;
6645 }
6646 break;
6647 case 468:
6648 {
6649 yyval.exp = MkExpOp((((void *)0)), DEC_OP, yyvsp[(2) - (2)].exp);
6650 yyval.exp->loc = (yyloc);
6651 ;
6652 }
6653 break;
6654 case 469:
6655 {
6656 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
6657 yyval.exp->loc = (yyloc);
6658 ;
6659 }
6660 break;
6661 case 470:
6662 {
6663 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
6664 yyval.exp->loc = (yyloc);
6665 ;
6666 }
6667 break;
6668 case 471:
6669 {
6670 yyval.exp = MkExpOp((((void *)0)), SIZEOF, yyvsp[(2) - (2)].exp);
6671 yyval.exp->loc = (yyloc);
6672 ;
6673 }
6674 break;
6675 case 472:
6676 {
6677 yyval.exp = MkExpTypeSize(yyvsp[(3) - (5)].typeName);
6678 yyval.exp->loc = (yyloc);
6679 ;
6680 }
6681 break;
6682 case 473:
6683 {
6684 yyval.exp = MkExpClassSize(yyvsp[(4) - (6)].specifier);
6685 yyval.exp->loc = (yyloc);
6686 ;
6687 }
6688 break;
6689 case 474:
6690 {
6691 yyval.exp = MkExpClassSize(yyvsp[(4) - (6)].specifier);
6692 yyval.exp->loc = (yyloc);
6693 ;
6694 }
6695 break;
6696 case 475:
6697 {
6698 yyval.exp = MkExpOp((((void *)0)), ALIGNOF, yyvsp[(2) - (2)].exp);
6699 yyval.exp->loc = (yyloc);
6700 ;
6701 }
6702 break;
6703 case 476:
6704 {
6705 yyval.exp = MkExpTypeAlign(yyvsp[(3) - (5)].typeName);
6706 yyval.exp->loc = (yyloc);
6707 ;
6708 }
6709 break;
6710 case 480:
6711 {
6712 yyval.exp = MkExpCast(yyvsp[(2) - (4)].typeName, yyvsp[(4) - (4)].exp);
6713 yyval.exp->loc = (yyloc);
6714 ;
6715 }
6716 break;
6717 case 482:
6718 {
6719 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6720 yyval.exp->loc = (yyloc);
6721 ;
6722 }
6723 break;
6724 case 483:
6725 {
6726 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6727 yyval.exp->loc = (yyloc);
6728 ;
6729 }
6730 break;
6731 case 484:
6732 {
6733 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6734 yyval.exp->loc = (yyloc);
6735 ;
6736 }
6737 break;
6738 case 485:
6739 {
6740 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6741 yyval.exp->loc = (yyloc);
6742 ;
6743 }
6744 break;
6745 case 486:
6746 {
6747 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6748 yyval.exp->loc = (yyloc);
6749 ;
6750 }
6751 break;
6752 case 487:
6753 {
6754 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6755 yyval.exp->loc = (yyloc);
6756 ;
6757 }
6758 break;
6759 case 489:
6760 {
6761 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6762 yyval.exp->loc = (yyloc);
6763 ;
6764 }
6765 break;
6766 case 490:
6767 {
6768 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6769 yyval.exp->loc = (yyloc);
6770 ;
6771 }
6772 break;
6773 case 491:
6774 {
6775 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6776 yyval.exp->loc = (yyloc);
6777 ;
6778 }
6779 break;
6780 case 492:
6781 {
6782 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6783 yyval.exp->loc = (yyloc);
6784 ;
6785 }
6786 break;
6787 case 494:
6788 {
6789 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6790 yyval.exp->loc = (yyloc);
6791 ;
6792 }
6793 break;
6794 case 495:
6795 {
6796 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6797 yyval.exp->loc = (yyloc);
6798 ;
6799 }
6800 break;
6801 case 496:
6802 {
6803 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6804 yyval.exp->loc = (yyloc);
6805 ;
6806 }
6807 break;
6808 case 497:
6809 {
6810 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6811 yyval.exp->loc = (yyloc);
6812 ;
6813 }
6814 break;
6815 case 499:
6816 {
6817 if(yyvsp[(1) - (2)].exp->type == 0)
6818 {
6819 _DeclClass(yyvsp[(1) - (2)].exp->__anon1.__anon1.identifier->_class, yyvsp[(1) - (2)].exp->__anon1.__anon1.identifier->string);
6820 skipErrors = 0;
6821 FreeExpression(yyvsp[(1) - (2)].exp);
6822 FreeExpression(yyvsp[(2) - (2)].exp);
6823 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
6824 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
6825
6826 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
6827 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).start.pos, 0);
6828 resetScannerPos(&(yylsp[(1) - (2)]).start);
6829 (yychar = (-2));
6830 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
6831 yystate = *yyssp;
6832 do
6833 {
6834 if(yydebug)
6835 yy_stack_print((yyss), (yyssp));
6836 }while((0));
6837 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
6838 yystate = *yyssp;
6839 do
6840 {
6841 if(yydebug)
6842 yy_stack_print((yyss), (yyssp));
6843 }while((0));
6844 (yyerrstatus = 0);
6845 goto yysetstate;
6846 }
6847 else
6848 {
6849 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, '<', yyvsp[(2) - (2)].exp);
6850 yyval.exp->loc = (yyloc);
6851 }
6852 skipErrors = 0;
6853 ;
6854 }
6855 break;
6856 case 500:
6857 {
6858 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6859 yyval.exp->loc = (yyloc);
6860 ;
6861 }
6862 break;
6863 case 501:
6864 {
6865 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6866 yyval.exp->loc = (yyloc);
6867 ;
6868 }
6869 break;
6870 case 502:
6871 {
6872 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6873 yyval.exp->loc = (yyloc);
6874 ;
6875 }
6876 break;
6877 case 503:
6878 {
6879 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '<', yyvsp[(3) - (3)].exp);
6880 yyval.exp->loc = (yyloc);
6881 ;
6882 }
6883 break;
6884 case 504:
6885 {
6886 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6887 yyval.exp->loc = (yyloc);
6888 ;
6889 }
6890 break;
6891 case 505:
6892 {
6893 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6894 yyval.exp->loc = (yyloc);
6895 ;
6896 }
6897 break;
6898 case 506:
6899 {
6900 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6901 yyval.exp->loc = (yyloc);
6902 ;
6903 }
6904 break;
6905 case 508:
6906 {
6907 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6908 yyval.exp->loc = (yyloc);
6909 ;
6910 }
6911 break;
6912 case 509:
6913 {
6914 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6915 yyval.exp->loc = (yyloc);
6916 ;
6917 }
6918 break;
6919 case 510:
6920 {
6921 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6922 yyval.exp->loc = (yyloc);
6923 ;
6924 }
6925 break;
6926 case 511:
6927 {
6928 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6929 yyval.exp->loc = (yyloc);
6930 ;
6931 }
6932 break;
6933 case 512:
6934 {
6935 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6936 yyval.exp->loc = (yyloc);
6937 ;
6938 }
6939 break;
6940 case 513:
6941 {
6942 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6943 yyval.exp->loc = (yyloc);
6944 ;
6945 }
6946 break;
6947 case 514:
6948 {
6949 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6950 yyval.exp->loc = (yyloc);
6951 ;
6952 }
6953 break;
6954 case 515:
6955 {
6956 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6957 yyval.exp->loc = (yyloc);
6958 ;
6959 }
6960 break;
6961 case 517:
6962 {
6963 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6964 yyval.exp->loc = (yyloc);
6965 ;
6966 }
6967 break;
6968 case 518:
6969 {
6970 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6971 yyval.exp->loc = (yyloc);
6972 ;
6973 }
6974 break;
6975 case 519:
6976 {
6977 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6978 yyval.exp->loc = (yyloc);
6979 ;
6980 }
6981 break;
6982 case 520:
6983 {
6984 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6985 yyval.exp->loc = (yyloc);
6986 ;
6987 }
6988 break;
6989 case 522:
6990 {
6991 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6992 yyval.exp->loc = (yyloc);
6993 ;
6994 }
6995 break;
6996 case 523:
6997 {
6998 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6999 yyval.exp->loc = (yyloc);
7000 ;
7001 }
7002 break;
7003 case 524:
7004 {
7005 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7006 yyval.exp->loc = (yyloc);
7007 ;
7008 }
7009 break;
7010 case 525:
7011 {
7012 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7013 yyval.exp->loc = (yyloc);
7014 ;
7015 }
7016 break;
7017 case 527:
7018 {
7019 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7020 yyval.exp->loc = (yyloc);
7021 ;
7022 }
7023 break;
7024 case 528:
7025 {
7026 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7027 yyval.exp->loc = (yyloc);
7028 ;
7029 }
7030 break;
7031 case 529:
7032 {
7033 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7034 yyval.exp->loc = (yyloc);
7035 ;
7036 }
7037 break;
7038 case 530:
7039 {
7040 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7041 yyval.exp->loc = (yyloc);
7042 ;
7043 }
7044 break;
7045 case 532:
7046 {
7047 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
7048 yyval.exp->loc = (yyloc);
7049 ;
7050 }
7051 break;
7052 case 533:
7053 {
7054 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
7055 yyval.exp->loc = (yyloc);
7056 ;
7057 }
7058 break;
7059 case 535:
7060 {
7061 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
7062 yyval.exp->loc = (yyloc);
7063 ;
7064 }
7065 break;
7066 case 536:
7067 {
7068 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
7069 yyval.exp->loc = (yyloc);
7070 ;
7071 }
7072 break;
7073 case 538:
7074 {
7075 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7076 yyval.exp->loc = (yyloc);
7077 ;
7078 }
7079 break;
7080 case 539:
7081 {
7082 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7083 yyval.exp->loc = (yyloc);
7084 ;
7085 }
7086 break;
7087 case 540:
7088 {
7089 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7090 yyval.exp->loc = (yyloc);
7091 ;
7092 }
7093 break;
7094 case 541:
7095 {
7096 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7097 yyval.exp->loc = (yyloc);
7098 ;
7099 }
7100 break;
7101 case 542:
7102 {
7103 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7104 yyval.exp->loc = (yyloc);
7105 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7106 ;
7107 }
7108 break;
7109 case 543:
7110 {
7111 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7112 yyval.exp->loc = (yyloc);
7113 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7114 ;
7115 }
7116 break;
7117 case 544:
7118 {
7119 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7120 yyval.exp->loc = (yyloc);
7121 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7122 ;
7123 }
7124 break;
7125 case 545:
7126 {
7127 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7128 yyval.exp->loc = (yyloc);
7129 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7130 ;
7131 }
7132 break;
7133 case 546:
7134 {
7135 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7136 yyval.exp->loc = (yyloc);
7137 ;
7138 }
7139 break;
7140 case 547:
7141 {
7142 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7143 yyval.exp->loc = (yyloc);
7144 ;
7145 }
7146 break;
7147 case 548:
7148 {
7149 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7150 yyval.exp->loc = (yyloc);
7151 ;
7152 }
7153 break;
7154 case 549:
7155 {
7156 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7157 yyval.exp->loc = (yyloc);
7158 ;
7159 }
7160 break;
7161 case 550:
7162 {
7163 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7164 yyval.exp->loc = (yyloc);
7165 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7166 ;
7167 }
7168 break;
7169 case 551:
7170 {
7171 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7172 yyval.exp->loc = (yyloc);
7173 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7174 ;
7175 }
7176 break;
7177 case 552:
7178 {
7179 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7180 yyval.exp->loc = (yyloc);
7181 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7182 ;
7183 }
7184 break;
7185 case 553:
7186 {
7187 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7188 yyval.exp->loc = (yyloc);
7189 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7190 ;
7191 }
7192 break;
7193 case 554:
7194 {
7195 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7196 yyval.exp->loc = (yyloc);
7197 ;
7198 }
7199 break;
7200 case 555:
7201 {
7202 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7203 yyval.exp->loc = (yyloc);
7204 ;
7205 }
7206 break;
7207 case 556:
7208 {
7209 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7210 yyval.exp->loc = (yyloc);
7211 ;
7212 }
7213 break;
7214 case 557:
7215 {
7216 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7217 yyval.exp->loc = (yyloc);
7218 ;
7219 }
7220 break;
7221 case 558:
7222 {
7223 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7224 yyval.exp->loc = (yyloc);
7225 ;
7226 }
7227 break;
7228 case 559:
7229 {
7230 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7231 yyval.exp->loc = (yyloc);
7232 ;
7233 }
7234 break;
7235 case 560:
7236 {
7237 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7238 yyval.exp->loc = (yyloc);
7239 ;
7240 }
7241 break;
7242 case 561:
7243 {
7244 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7245 yyval.exp->loc = (yyloc);
7246 ;
7247 }
7248 break;
7249 case 562:
7250 {
7251 yyerror();
7252 yyval.exp = MkExpCondition(yyvsp[(1) - (3)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7253 yyval.exp->loc = (yyloc);
7254 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (3)]);
7255 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (3)]);
7256 ;
7257 }
7258 break;
7259 case 563:
7260 {
7261 yyval.exp = MkExpCondition(yyvsp[(1) - (3)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7262 yyval.exp->loc = (yyloc);
7263 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (3)]);
7264 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (3)]);
7265 ;
7266 }
7267 break;
7268 case 564:
7269 {
7270 yyerror();
7271 yyval.exp = MkExpCondition(yyvsp[(1) - (2)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7272 yyval.exp->loc = (yyloc);
7273 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (2)]);
7274 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(2) - (2)]);
7275 ;
7276 }
7277 break;
7278 case 565:
7279 {
7280 yyval.exp = MkExpCondition(yyvsp[(1) - (2)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7281 yyval.exp->loc = (yyloc);
7282 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (2)]);
7283 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(2) - (2)]);
7284 ;
7285 }
7286 break;
7287 case 567:
7288 {
7289 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7290 yyval.exp->loc = (yyloc);
7291 ;
7292 }
7293 break;
7294 case 568:
7295 {
7296 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7297 yyval.exp->loc = (yyloc);
7298 ;
7299 }
7300 break;
7301 case 569:
7302 {
7303 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7304 yyval.exp->loc = (yyloc);
7305 ;
7306 }
7307 break;
7308 case 570:
7309 {
7310 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7311 yyval.exp->loc = (yyloc);
7312 ;
7313 }
7314 break;
7315 case 571:
7316 {
7317 yyval.list = MkList();
7318 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
7319 ;
7320 }
7321 break;
7322 case 572:
7323 {
7324 yyval.list = MkList();
7325 ListAdd(yyval.list, yyvsp[(1) - (2)].exp);
7326 ;
7327 }
7328 break;
7329 case 573:
7330 {
7331 yyval.list = yyvsp[(1) - (3)].list;
7332 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7333 ;
7334 }
7335 break;
7336 case 574:
7337 {
7338 yyval.list = yyvsp[(1) - (3)].list;
7339 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7340 ;
7341 }
7342 break;
7343 case 575:
7344 {
7345 yyerror();
7346 yyval.list = yyvsp[(1) - (2)].list;
7347 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7348 ;
7349 }
7350 break;
7351 case 576:
7352 {
7353 yyval.list = yyvsp[(1) - (2)].list;
7354 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7355 ;
7356 }
7357 break;
7358 case 577:
7359 {
7360 yyval.list = yyvsp[(1) - (2)].list;
7361 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7362 ;
7363 }
7364 break;
7365 case 578:
7366 {
7367 yyval.list = MkList();
7368 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
7369 ;
7370 }
7371 break;
7372 case 579:
7373 {
7374 yyval.list = MkList();
7375 ListAdd(yyval.list, yyvsp[(1) - (2)].exp);
7376 ;
7377 }
7378 break;
7379 case 580:
7380 {
7381 yyval.list = yyvsp[(1) - (3)].list;
7382 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7383 ;
7384 }
7385 break;
7386 case 581:
7387 {
7388 yyval.list = yyvsp[(1) - (3)].list;
7389 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7390 ;
7391 }
7392 break;
7393 case 584:
7394 {
7395 yyval.specifier = MkSpecifier(TYPEDEF);
7396 ;
7397 }
7398 break;
7399 case 585:
7400 {
7401 yyval.specifier = MkSpecifier(EXTERN);
7402 ;
7403 }
7404 break;
7405 case 586:
7406 {
7407 yyval.specifier = MkSpecifier(STATIC);
7408 ;
7409 }
7410 break;
7411 case 587:
7412 {
7413 yyval.specifier = MkSpecifier(THREAD);
7414 ;
7415 }
7416 break;
7417 case 588:
7418 {
7419 yyval.specifier = MkSpecifier(AUTO);
7420 ;
7421 }
7422 break;
7423 case 589:
7424 {
7425 yyval.specifier = MkSpecifier(REGISTER);
7426 ;
7427 }
7428 break;
7429 case 590:
7430 {
7431 yyval.specifier = MkSpecifier(RESTRICT);
7432 ;
7433 }
7434 break;
7435 case 591:
7436 {
7437 yyval.specifier = MkSpecifier(TYPEDEF);
7438 structDeclMode = declMode = 0;
7439 ;
7440 }
7441 break;
7442 case 592:
7443 {
7444 yyval.specifier = MkSpecifier(EXTERN);
7445 ;
7446 }
7447 break;
7448 case 593:
7449 {
7450 yyval.specifier = MkSpecifier(STATIC);
7451 structDeclMode = declMode = 3;
7452 ;
7453 }
7454 break;
7455 case 594:
7456 {
7457 yyval.specifier = MkSpecifier(THREAD);
7458 ;
7459 }
7460 break;
7461 case 595:
7462 {
7463 yyval.specifier = MkSpecifier(AUTO);
7464 ;
7465 }
7466 break;
7467 case 596:
7468 {
7469 yyval.specifier = MkSpecifier(REGISTER);
7470 ;
7471 }
7472 break;
7473 case 597:
7474 {
7475 yyval.specifier = MkSpecifier(RESTRICT);
7476 ;
7477 }
7478 break;
7479 case 598:
7480 {
7481 yyval.enumerator = MkEnumerator(yyvsp[(1) - (1)].id, (((void *)0)));
7482 ;
7483 }
7484 break;
7485 case 599:
7486 {
7487 yyval.enumerator = MkEnumerator(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].exp);
7488 ;
7489 }
7490 break;
7491 case 600:
7492 {
7493 yyval.enumerator = MkEnumerator(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].exp);
7494 ;
7495 }
7496 break;
7497 case 601:
7498 {
7499 yyval.list = MkList();
7500 ListAdd(yyval.list, yyvsp[(1) - (1)].enumerator);
7501 ;
7502 }
7503 break;
7504 case 602:
7505 {
7506 yyval.list = yyvsp[(1) - (3)].list;
7507 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].enumerator);
7508 ;
7509 }
7510 break;
7511 case 604:
7512 {
7513 memberAccessStack[++defaultMemberAccess] = 1;
7514 ;
7515 }
7516 break;
7517 case 605:
7518 {
7519 yyval.specifier = MkEnum(yyvsp[(2) - (2)].id, (((void *)0)));
7520 if(defaultMemberAccess > -1)
7521 defaultMemberAccess--;
7522 ;
7523 }
7524 break;
7525 case 606:
7526 {
7527 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
7528 if(defaultMemberAccess > -1)
7529 defaultMemberAccess--;
7530 ;
7531 }
7532 break;
7533 case 607:
7534 {
7535 yyval.specifier->loc = (yyloc);
7536 if(defaultMemberAccess > -1)
7537 defaultMemberAccess--;
7538 yyval.specifier = yyvsp[(1) - (2)].specifier;
7539 ;
7540 }
7541 break;
7542 case 608:
7543 {
7544 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, (((void *)0)));
7545 yyval.specifier->loc = (yyloc);
7546 if(defaultMemberAccess > -1)
7547 defaultMemberAccess--;
7548 ;
7549 }
7550 break;
7551 case 609:
7552 {
7553 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), (((void *)0)));
7554 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7555 yyval.specifier->loc = (yyloc);
7556 if(defaultMemberAccess > -1)
7557 defaultMemberAccess--;
7558 ;
7559 }
7560 break;
7561 case 610:
7562 {
7563 yyval.specifier = MkEnum((((void *)0)), yyvsp[(3) - (3)].list);
7564 yyval.specifier->loc = (yyloc);
7565 if(defaultMemberAccess > -1)
7566 defaultMemberAccess--;
7567 ;
7568 }
7569 break;
7570 case 611:
7571 {
7572 yyval.specifier = MkEnum((((void *)0)), (((void *)0)));
7573 yyval.specifier->loc = (yyloc);
7574 if(defaultMemberAccess > -1)
7575 defaultMemberAccess--;
7576 ;
7577 }
7578 break;
7579 case 612:
7580 {
7581 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, yyvsp[(4) - (4)].list);
7582 yyval.specifier->loc = (yyloc);
7583 if(defaultMemberAccess > -1)
7584 defaultMemberAccess--;
7585 ;
7586 }
7587 break;
7588 case 613:
7589 {
7590 yyval.specifier = MkEnum(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
7591 yyval.specifier->loc = (yyloc);
7592 if(defaultMemberAccess > -1)
7593 defaultMemberAccess--;
7594 ;
7595 }
7596 break;
7597 case 614:
7598 {
7599 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, (((void *)0)));
7600 yyval.specifier->loc = (yyloc);
7601 if(defaultMemberAccess > -1)
7602 defaultMemberAccess--;
7603 ;
7604 }
7605 break;
7606 case 615:
7607 {
7608 yyval.specifier = MkEnum(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].list);
7609 yyval.specifier->loc = (yyloc);
7610 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7611 if(defaultMemberAccess > -1)
7612 defaultMemberAccess--;
7613 ;
7614 }
7615 break;
7616 case 616:
7617 {
7618 yyval.specifier = MkEnum(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].list);
7619 yyval.specifier->loc = (yyloc);
7620 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7621 if(defaultMemberAccess > -1)
7622 defaultMemberAccess--;
7623 ;
7624 }
7625 break;
7626 case 617:
7627 {
7628 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), yyvsp[(4) - (4)].list);
7629 yyval.specifier->loc = (yyloc);
7630 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7631 if(defaultMemberAccess > -1)
7632 defaultMemberAccess--;
7633 ;
7634 }
7635 break;
7636 case 618:
7637 {
7638 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
7639 yyval.specifier->loc = (yyloc);
7640 FreeSpecifier(yyvsp[(2) - (5)].specifier);
7641 if(defaultMemberAccess > -1)
7642 defaultMemberAccess--;
7643 ;
7644 }
7645 break;
7646 case 619:
7647 {
7648 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), (((void *)0)));
7649 yyval.specifier->loc = (yyloc);
7650 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7651 if(defaultMemberAccess > -1)
7652 defaultMemberAccess--;
7653 ;
7654 }
7655 break;
7656 case 620:
7657 {
7658 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (6)].specifier->__anon1.__anon1.name), yyvsp[(4) - (6)].list);
7659 yyval.specifier->loc = (yyloc);
7660 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7661 FreeSpecifier(yyvsp[(2) - (6)].specifier);
7662 if(defaultMemberAccess > -1)
7663 defaultMemberAccess--;
7664 ;
7665 }
7666 break;
7667 case 621:
7668 {
7669 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (6)].specifier->__anon1.__anon1.name), yyvsp[(4) - (6)].list);
7670 yyval.specifier->loc = (yyloc);
7671 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7672 FreeSpecifier(yyvsp[(2) - (6)].specifier);
7673 if(defaultMemberAccess > -1)
7674 defaultMemberAccess--;
7675 ;
7676 }
7677 break;
7678 case 622:
7679 {
7680 yyval.specifier = MkEnum(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
7681 yyval.specifier->loc = (yyloc);
7682 if(defaultMemberAccess > -1)
7683 defaultMemberAccess--;
7684 ;
7685 }
7686 break;
7687 case 623:
7688 {
7689 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
7690 yyval.specifier->loc = (yyloc);
7691 FreeSpecifier(yyvsp[(2) - (5)].specifier);
7692 if(defaultMemberAccess > -1)
7693 defaultMemberAccess--;
7694 ;
7695 }
7696 break;
7697 case 624:
7698 {
7699 yyval.id = yyvsp[(2) - (2)].id;
7700 if(declMode)
7701 DeclClassAddNameSpace(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
7702 ;
7703 }
7704 break;
7705 case 625:
7706 {
7707 yyval.id = MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
7708 if(declMode)
7709 DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
7710 FreeSpecifier(yyvsp[(2) - (2)].specifier);
7711 ;
7712 }
7713 break;
7714 case 626:
7715 {
7716 yyval.specifier = yyvsp[(1) - (2)].specifier;
7717 yyval.specifier->loc = (yyloc);
7718 ;
7719 }
7720 break;
7721 case 627:
7722 {
7723 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, (((void *)0)));
7724 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7725 yyval.specifier->loc = (yyloc);
7726 if(defaultMemberAccess > -1)
7727 defaultMemberAccess--;
7728 ;
7729 }
7730 break;
7731 case 628:
7732 {
7733 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, (((void *)0)));
7734 if(defaultMemberAccess > -1)
7735 defaultMemberAccess--;
7736 ;
7737 }
7738 break;
7739 case 629:
7740 {
7741 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(5) - (5)].list);
7742 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7743 yyval.specifier->loc = (yyloc);
7744 if(defaultMemberAccess > -1)
7745 defaultMemberAccess--;
7746 ;
7747 }
7748 break;
7749 case 630:
7750 {
7751 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, yyvsp[(5) - (6)].list);
7752 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7753 yyval.specifier->loc = (yyloc);
7754 if(defaultMemberAccess > -1)
7755 defaultMemberAccess--;
7756 ;
7757 }
7758 break;
7759 case 631:
7760 {
7761 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, (((void *)0)));
7762 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7763 yyval.specifier->loc = (yyloc);
7764 if(defaultMemberAccess > -1)
7765 defaultMemberAccess--;
7766 ;
7767 }
7768 break;
7769 case 632:
7770 {
7771 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7772 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7773 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7774 yyval.specifier->loc = (yyloc);
7775 if(defaultMemberAccess > -1)
7776 defaultMemberAccess--;
7777 ;
7778 }
7779 break;
7780 case 633:
7781 {
7782 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7783 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7784 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7785 yyval.specifier->loc = (yyloc);
7786 if(defaultMemberAccess > -1)
7787 defaultMemberAccess--;
7788 ;
7789 }
7790 break;
7791 case 634:
7792 {
7793 yyval.specifier = MkEnum(yyvsp[(1) - (8)].id, yyvsp[(5) - (8)].list);
7794 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (8)].list;
7795 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(8) - (8)].list;
7796 yyval.specifier->loc = (yyloc);
7797 if(defaultMemberAccess > -1)
7798 defaultMemberAccess--;
7799 ;
7800 }
7801 break;
7802 case 635:
7803 {
7804 yyval.specifier = MkEnum(yyvsp[(1) - (8)].id, yyvsp[(5) - (8)].list);
7805 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (8)].list;
7806 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(8) - (8)].list;
7807 yyval.specifier->loc = (yyloc);
7808 if(defaultMemberAccess > -1)
7809 defaultMemberAccess--;
7810 ;
7811 }
7812 break;
7813 case 636:
7814 {
7815 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, (((void *)0)));
7816 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7817 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7818 yyval.specifier->loc = (yyloc);
7819 if(defaultMemberAccess > -1)
7820 defaultMemberAccess--;
7821 ;
7822 }
7823 break;
7824 case 637:
7825 {
7826 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, (((void *)0)));
7827 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7828 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7829 yyval.specifier->loc = (yyloc);
7830 if(defaultMemberAccess > -1)
7831 defaultMemberAccess--;
7832 ;
7833 }
7834 break;
7835 case 638:
7836 {
7837 yyval.specifier = MkEnum((((void *)0)), yyvsp[(3) - (3)].list);
7838 yyval.specifier->loc = (yyloc);
7839 if(defaultMemberAccess > -1)
7840 defaultMemberAccess--;
7841 ;
7842 }
7843 break;
7844 case 639:
7845 {
7846 yyval.specifier = MkEnum((((void *)0)), (((void *)0)));
7847 yyval.specifier->loc = (yyloc);
7848 if(defaultMemberAccess > -1)
7849 defaultMemberAccess--;
7850 ;
7851 }
7852 break;
7853 case 640:
7854 {
7855 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].list);
7856 yyval.specifier->loc = (yyloc);
7857 if(defaultMemberAccess > -1)
7858 defaultMemberAccess--;
7859 ;
7860 }
7861 break;
7862 case 641:
7863 {
7864 yyval.specifier = MkEnum(yyvsp[(1) - (4)].id, yyvsp[(3) - (4)].list);
7865 yyval.specifier->loc = (yyloc);
7866 if(defaultMemberAccess > -1)
7867 defaultMemberAccess--;
7868 ;
7869 }
7870 break;
7871 case 642:
7872 {
7873 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, (((void *)0)));
7874 yyval.specifier->loc = (yyloc);
7875 if(defaultMemberAccess > -1)
7876 defaultMemberAccess--;
7877 ;
7878 }
7879 break;
7880 case 643:
7881 {
7882 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(3) - (5)].list);
7883 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(5) - (5)].list;
7884 yyval.specifier->loc = (yyloc);
7885 if(defaultMemberAccess > -1)
7886 defaultMemberAccess--;
7887 ;
7888 }
7889 break;
7890 case 644:
7891 {
7892 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(3) - (5)].list);
7893 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(5) - (5)].list;
7894 yyval.specifier->loc = (yyloc);
7895 if(defaultMemberAccess > -1)
7896 defaultMemberAccess--;
7897 ;
7898 }
7899 break;
7900 case 645:
7901 {
7902 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, yyvsp[(5) - (6)].list);
7903 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7904 yyval.specifier->loc = (yyloc);
7905 if(defaultMemberAccess > -1)
7906 defaultMemberAccess--;
7907 ;
7908 }
7909 break;
7910 case 646:
7911 {
7912 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7913 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7914 yyval.specifier->loc = (yyloc);
7915 if(defaultMemberAccess > -1)
7916 defaultMemberAccess--;
7917 ;
7918 }
7919 break;
7920 case 647:
7921 {
7922 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, (((void *)0)));
7923 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7924 yyval.specifier->loc = (yyloc);
7925 if(defaultMemberAccess > -1)
7926 defaultMemberAccess--;
7927 ;
7928 }
7929 break;
7930 case 648:
7931 {
7932 yyval.specifier = MkEnum(yyvsp[(1) - (4)].id, yyvsp[(3) - (4)].list);
7933 yyval.specifier->loc = (yyloc);
7934 if(defaultMemberAccess > -1)
7935 defaultMemberAccess--;
7936 ;
7937 }
7938 break;
7939 case 653:
7940 {
7941 yyval.specifier = MkSpecifierExtended(yyvsp[(1) - (1)].extDecl);
7942 ;
7943 }
7944 break;
7945 case 654:
7946 {
7947 yyval.specifier = MkSpecifier(CONST);
7948 ;
7949 }
7950 break;
7951 case 655:
7952 {
7953 yyval.specifier = MkSpecifier(VOLATILE);
7954 ;
7955 }
7956 break;
7957 case 656:
7958 {
7959 yyval.specifier = yyvsp[(1) - (1)].specifier;
7960 ;
7961 }
7962 break;
7963 case 657:
7964 {
7965 yyval.list = MkList();
7966 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
7967 ;
7968 }
7969 break;
7970 case 658:
7971 {
7972 yyval.list = yyvsp[(1) - (2)].list;
7973 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
7974 ;
7975 }
7976 break;
7977 case 659:
7978 {
7979 yyval.specifier = MkSpecifier(VOID);
7980 ;
7981 }
7982 break;
7983 case 660:
7984 {
7985 yyval.specifier = MkSpecifier(CHAR);
7986 ;
7987 }
7988 break;
7989 case 661:
7990 {
7991 yyval.specifier = MkSpecifier(SHORT);
7992 ;
7993 }
7994 break;
7995 case 662:
7996 {
7997 yyval.specifier = MkSpecifier(INT);
7998 ;
7999 }
8000 break;
8001 case 663:
8002 {
8003 yyval.specifier = MkSpecifier(UINT);
8004 ;
8005 }
8006 break;
8007 case 664:
8008 {
8009 yyval.specifier = MkSpecifier(INT64);
8010 ;
8011 }
8012 break;
8013 case 665:
8014 {
8015 yyval.specifier = MkSpecifier(VALIST);
8016 ;
8017 }
8018 break;
8019 case 666:
8020 {
8021 yyval.specifier = MkSpecifier(LONG);
8022 ;
8023 }
8024 break;
8025 case 667:
8026 {
8027 yyval.specifier = MkSpecifier(FLOAT);
8028 ;
8029 }
8030 break;
8031 case 668:
8032 {
8033 yyval.specifier = MkSpecifier(DOUBLE);
8034 ;
8035 }
8036 break;
8037 case 669:
8038 {
8039 yyval.specifier = MkSpecifier(SIGNED);
8040 ;
8041 }
8042 break;
8043 case 670:
8044 {
8045 yyval.specifier = MkSpecifier(UNSIGNED);
8046 ;
8047 }
8048 break;
8049 case 671:
8050 {
8051 yyval.specifier = MkSpecifier(EXTENSION);
8052 ;
8053 }
8054 break;
8055 case 675:
8056 {
8057 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8058 ;
8059 }
8060 break;
8061 case 676:
8062 {
8063 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8064 ;
8065 }
8066 break;
8067 case 677:
8068 {
8069 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8070 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8071 FreeIdentifier(yyvsp[(3) - (4)].id);
8072 ;
8073 }
8074 break;
8075 case 678:
8076 {
8077 yyval.specifier = MkSpecifier(THISCLASS);
8078 ;
8079 }
8080 break;
8081 case 679:
8082 {
8083 yyval.specifier = MkSpecifier(TYPED_OBJECT);
8084 ;
8085 }
8086 break;
8087 case 680:
8088 {
8089 yyval.specifier = MkSpecifier(ANY_OBJECT);
8090 ;
8091 }
8092 break;
8093 case 681:
8094 {
8095 yyval.specifier = MkSpecifier(_BOOL);
8096 ;
8097 }
8098 break;
8099 case 682:
8100 {
8101 yyval.specifier = MkSpecifier(BOOL);
8102 ;
8103 }
8104 break;
8105 case 683:
8106 {
8107 yyval.specifier = MkSpecifier(_COMPLEX);
8108 ;
8109 }
8110 break;
8111 case 684:
8112 {
8113 yyval.specifier = MkSpecifier(_IMAGINARY);
8114 ;
8115 }
8116 break;
8117 case 685:
8118 {
8119 yyval.specifier = MkSpecifier(VOID);
8120 ;
8121 }
8122 break;
8123 case 686:
8124 {
8125 yyval.specifier = MkSpecifier(CHAR);
8126 ;
8127 }
8128 break;
8129 case 687:
8130 {
8131 yyval.specifier = MkSpecifier(SHORT);
8132 ;
8133 }
8134 break;
8135 case 688:
8136 {
8137 yyval.specifier = MkSpecifier(INT);
8138 ;
8139 }
8140 break;
8141 case 689:
8142 {
8143 yyval.specifier = MkSpecifier(UINT);
8144 ;
8145 }
8146 break;
8147 case 690:
8148 {
8149 yyval.specifier = MkSpecifier(INT64);
8150 ;
8151 }
8152 break;
8153 case 691:
8154 {
8155 yyval.specifier = MkSpecifier(VALIST);
8156 ;
8157 }
8158 break;
8159 case 692:
8160 {
8161 yyval.specifier = MkSpecifier(LONG);
8162 ;
8163 }
8164 break;
8165 case 693:
8166 {
8167 yyval.specifier = MkSpecifier(FLOAT);
8168 ;
8169 }
8170 break;
8171 case 694:
8172 {
8173 yyval.specifier = MkSpecifier(DOUBLE);
8174 ;
8175 }
8176 break;
8177 case 695:
8178 {
8179 yyval.specifier = MkSpecifier(SIGNED);
8180 ;
8181 }
8182 break;
8183 case 696:
8184 {
8185 yyval.specifier = MkSpecifier(UNSIGNED);
8186 ;
8187 }
8188 break;
8189 case 697:
8190 {
8191 yyval.specifier = MkSpecifier(EXTENSION);
8192 ;
8193 }
8194 break;
8195 case 701:
8196 {
8197 yyval.specifier = MkSpecifier(_BOOL);
8198 ;
8199 }
8200 break;
8201 case 702:
8202 {
8203 yyval.specifier = MkSpecifier(BOOL);
8204 ;
8205 }
8206 break;
8207 case 703:
8208 {
8209 yyval.specifier = MkSpecifier(_COMPLEX);
8210 ;
8211 }
8212 break;
8213 case 704:
8214 {
8215 yyval.specifier = MkSpecifier(_IMAGINARY);
8216 ;
8217 }
8218 break;
8219 case 705:
8220 {
8221 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8222 ;
8223 }
8224 break;
8225 case 706:
8226 {
8227 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8228 ;
8229 }
8230 break;
8231 case 707:
8232 {
8233 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8234 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8235 FreeIdentifier(yyvsp[(3) - (4)].id);
8236 ;
8237 }
8238 break;
8239 case 708:
8240 {
8241 yyval.specifier = MkSpecifier(THISCLASS);
8242 ;
8243 }
8244 break;
8245 case 709:
8246 {
8247 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
8248 yyval.declarator->loc = (yyloc);
8249 ;
8250 }
8251 break;
8252 case 710:
8253 {
8254 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
8255 yyval.declarator->__anon1.structDecl.attrib = yyvsp[(2) - (2)].attrib;
8256 yyval.declarator->loc = (yyloc);
8257 ;
8258 }
8259 break;
8260 case 711:
8261 {
8262 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8263 yyval.declarator->loc = (yyloc);
8264 ;
8265 }
8266 break;
8267 case 712:
8268 {
8269 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8270 yyval.declarator->loc = (yyloc);
8271 ;
8272 }
8273 break;
8274 case 713:
8275 {
8276 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8277 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8278 yyval.declarator->loc = (yyloc);
8279 ;
8280 }
8281 break;
8282 case 714:
8283 {
8284 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8285 yyval.declarator->loc = (yyloc);
8286 ;
8287 }
8288 break;
8289 case 715:
8290 {
8291 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8292 yyval.declarator->loc = (yyloc);
8293 ;
8294 }
8295 break;
8296 case 716:
8297 {
8298 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8299 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8300 yyval.declarator->loc = (yyloc);
8301 ;
8302 }
8303 break;
8304 case 717:
8305 {
8306 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8307 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8308 yyval.declarator->loc = (yyloc);
8309 ;
8310 }
8311 break;
8312 case 718:
8313 {
8314 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8315 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8316 yyval.declarator->loc = (yyloc);
8317 ;
8318 }
8319 break;
8320 case 719:
8321 {
8322 yyval.list = MkList();
8323 ListAdd(yyval.list, yyvsp[(1) - (1)].declarator);
8324 ;
8325 }
8326 break;
8327 case 720:
8328 {
8329 yyval.list = yyvsp[(1) - (3)].list;
8330 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].declarator);
8331 ;
8332 }
8333 break;
8334 case 721:
8335 {
8336 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, yyvsp[(2) - (2)].id, (((void *)0)));
8337 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8338 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8339 ;
8340 }
8341 break;
8342 case 722:
8343 {
8344 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
8345 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8346 FreeSpecifier(yyvsp[(2) - (2)].specifier);
8347 ;
8348 }
8349 break;
8350 case 723:
8351 {
8352 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, yyvsp[(3) - (3)].id, (((void *)0)));
8353 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8354 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8355 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8356 ;
8357 }
8358 break;
8359 case 724:
8360 {
8361 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, MkIdentifier(yyvsp[(3) - (3)].specifier->__anon1.__anon1.name), (((void *)0)));
8362 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8363 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8364 FreeSpecifier(yyvsp[(3) - (3)].specifier);
8365 ;
8366 }
8367 break;
8368 case 725:
8369 {
8370 yyval.specifier = yyvsp[(1) - (2)].specifier;
8371 yyval.specifier->loc = (yyloc);
8372 ;
8373 }
8374 break;
8375 case 726:
8376 {
8377 yyval.specifier = yyvsp[(1) - (3)].specifier;
8378 yyval.specifier->loc = (yyloc);
8379 if(defaultMemberAccess > -1)
8380 defaultMemberAccess--;
8381 PopContext(curContext);
8382 ;
8383 }
8384 break;
8385 case 727:
8386 {
8387 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8388 yyval.specifier->loc = (yyloc);
8389 if(defaultMemberAccess > -1)
8390 defaultMemberAccess--;
8391 ;
8392 }
8393 break;
8394 case 728:
8395 {
8396 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8397 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8398 yyval.specifier->loc = (yyloc);
8399 if(defaultMemberAccess > -1)
8400 defaultMemberAccess--;
8401 ;
8402 }
8403 break;
8404 case 729:
8405 {
8406 yyval.specifier = yyvsp[(1) - (3)].specifier;
8407 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8408 if(defaultMemberAccess > -1)
8409 defaultMemberAccess--;
8410 PopContext(curContext);
8411 ;
8412 }
8413 break;
8414 case 730:
8415 {
8416 yyval.specifier = yyvsp[(1) - (3)].specifier;
8417 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8418 if(defaultMemberAccess > -1)
8419 defaultMemberAccess--;
8420 PopContext(curContext);
8421 ;
8422 }
8423 break;
8424 case 731:
8425 {
8426 yyval.specifier = yyvsp[(1) - (3)].specifier;
8427 if(defaultMemberAccess > -1)
8428 defaultMemberAccess--;
8429 PopContext(curContext);
8430 ;
8431 }
8432 break;
8433 case 732:
8434 {
8435 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8436 if(defaultMemberAccess > -1)
8437 defaultMemberAccess--;
8438 ;
8439 }
8440 break;
8441 case 733:
8442 {
8443 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8444 if(defaultMemberAccess > -1)
8445 defaultMemberAccess--;
8446 ;
8447 }
8448 break;
8449 case 734:
8450 {
8451 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8452 if(defaultMemberAccess > -1)
8453 defaultMemberAccess--;
8454 ;
8455 }
8456 break;
8457 case 735:
8458 {
8459 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8460 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8461 if(defaultMemberAccess > -1)
8462 defaultMemberAccess--;
8463 ;
8464 }
8465 break;
8466 case 736:
8467 {
8468 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8469 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8470 if(defaultMemberAccess > -1)
8471 defaultMemberAccess--;
8472 ;
8473 }
8474 break;
8475 case 737:
8476 {
8477 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8478 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8479 if(defaultMemberAccess > -1)
8480 defaultMemberAccess--;
8481 ;
8482 }
8483 break;
8484 case 738:
8485 {
8486 yyval.specifier = yyvsp[(1) - (1)].specifier;
8487 if(defaultMemberAccess > -1)
8488 defaultMemberAccess--;
8489 PopContext(curContext);
8490 ;
8491 }
8492 break;
8493 case 739:
8494 {
8495 yyval.specifier = yyvsp[(1) - (1)].specifier;
8496 if(declMode)
8497 {
8498 (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);
8499 }
8500 ;
8501 }
8502 break;
8503 case 740:
8504 {
8505 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);
8506
8507 yyval.specifier = yyvsp[(1) - (4)].specifier;
8508 symbol->templateParams = yyvsp[(3) - (4)].list;
8509 ;
8510 }
8511 break;
8512 case 741:
8513 {
8514 yyval.specifier = yyvsp[(1) - (3)].specifier;
8515 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (3)].list;
8516 SetupBaseSpecs((((void *)0)), yyvsp[(3) - (3)].list);
8517 ;
8518 }
8519 break;
8520 case 742:
8521 {
8522 yyval.specifier = yyvsp[(1) - (2)].specifier;
8523 yyval.specifier->loc = (yyloc);
8524 ;
8525 }
8526 break;
8527 case 743:
8528 {
8529 yyval.specifier = yyvsp[(1) - (3)].specifier;
8530 if(defaultMemberAccess > -1)
8531 defaultMemberAccess--;
8532 PopContext(curContext);
8533 ;
8534 }
8535 break;
8536 case 744:
8537 {
8538 yyval.specifier = yyvsp[(1) - (3)].specifier;
8539 if(defaultMemberAccess > -1)
8540 defaultMemberAccess--;
8541 PopContext(curContext);
8542 ;
8543 }
8544 break;
8545 case 745:
8546 {
8547 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8548 if(defaultMemberAccess > -1)
8549 defaultMemberAccess--;
8550 ;
8551 }
8552 break;
8553 case 746:
8554 {
8555 yyval.specifier = yyvsp[(1) - (3)].specifier;
8556 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8557 if(defaultMemberAccess > -1)
8558 defaultMemberAccess--;
8559 PopContext(curContext);
8560 ;
8561 }
8562 break;
8563 case 747:
8564 {
8565 yyval.specifier = yyvsp[(1) - (3)].specifier;
8566 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8567 if(defaultMemberAccess > -1)
8568 defaultMemberAccess--;
8569 PopContext(curContext);
8570 ;
8571 }
8572 break;
8573 case 748:
8574 {
8575 yyval.specifier = yyvsp[(1) - (3)].specifier;
8576 if(defaultMemberAccess > -1)
8577 defaultMemberAccess--;
8578 PopContext(curContext);
8579 ;
8580 }
8581 break;
8582 case 749:
8583 {
8584 PopContext(curContext);
8585 if(!declMode)
8586 {
8587 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8588 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8589 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8590 }
8591 else
8592 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8593 if(defaultMemberAccess > -1)
8594 defaultMemberAccess--;
8595 ;
8596 }
8597 break;
8598 case 750:
8599 {
8600 PopContext(curContext);
8601 if(!declMode)
8602 {
8603 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8604 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8605 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8606 }
8607 else
8608 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8609 if(defaultMemberAccess > -1)
8610 defaultMemberAccess--;
8611 ;
8612 }
8613 break;
8614 case 751:
8615 {
8616 yyval.specifier = yyvsp[(1) - (3)].specifier;
8617 if(defaultMemberAccess > -1)
8618 defaultMemberAccess--;
8619 PopContext(curContext);
8620 ;
8621 }
8622 break;
8623 case 752:
8624 {
8625 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8626 if(defaultMemberAccess > -1)
8627 defaultMemberAccess--;
8628 ;
8629 }
8630 break;
8631 case 753:
8632 {
8633 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8634 if(defaultMemberAccess > -1)
8635 defaultMemberAccess--;
8636 ;
8637 }
8638 break;
8639 case 754:
8640 {
8641 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8642 if(defaultMemberAccess > -1)
8643 defaultMemberAccess--;
8644 ;
8645 }
8646 break;
8647 case 755:
8648 {
8649 yyval.specifierType = 3;
8650 memberAccessStack[++defaultMemberAccess] = 1;
8651 ;
8652 }
8653 break;
8654 case 756:
8655 {
8656 yyval.specifierType = 4;
8657 memberAccessStack[++defaultMemberAccess] = 1;
8658 ;
8659 }
8660 break;
8661 case 757:
8662 {
8663 yyval.list = MkList();
8664 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8665 ;
8666 }
8667 break;
8668 case 758:
8669 {
8670 yyval.list = yyvsp[(1) - (2)].list;
8671 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8672 ;
8673 }
8674 break;
8675 case 759:
8676 {
8677 yyval.list = MkList();
8678 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8679 ;
8680 }
8681 break;
8682 case 760:
8683 {
8684 yyval.list = yyvsp[(1) - (2)].list;
8685 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8686 ;
8687 }
8688 break;
8689 case 761:
8690 {
8691 yyval.list = MkList();
8692 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8693 ;
8694 }
8695 break;
8696 case 762:
8697 {
8698 yyval.list = yyvsp[(1) - (2)].list;
8699 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8700 ;
8701 }
8702 break;
8703 case 763:
8704 {
8705 yyval.list = MkList();
8706 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8707 ;
8708 }
8709 break;
8710 case 764:
8711 {
8712 yyval.list = yyvsp[(1) - (2)].list;
8713 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8714 ;
8715 }
8716 break;
8717 case 765:
8718 {
8719 yyval.list = MkList();
8720 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8721 ;
8722 }
8723 break;
8724 case 766:
8725 {
8726 yyval.list = yyvsp[(1) - (2)].list;
8727 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8728 ;
8729 }
8730 break;
8731 case 767:
8732 {
8733 yyval.list = MkList();
8734 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8735 ;
8736 }
8737 break;
8738 case 768:
8739 {
8740 yyval.list = yyvsp[(1) - (2)].list;
8741 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8742 ;
8743 }
8744 break;
8745 case 769:
8746 {
8747 yyval.list = MkList();
8748 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8749 ;
8750 }
8751 break;
8752 case 770:
8753 {
8754 yyval.list = yyvsp[(1) - (2)].list;
8755 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8756 ;
8757 }
8758 break;
8759 case 771:
8760 {
8761 yyval.list = MkList();
8762 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8763 ;
8764 }
8765 break;
8766 case 772:
8767 {
8768 yyval.list = yyvsp[(1) - (2)].list;
8769 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8770 ;
8771 }
8772 break;
8773 case 773:
8774 {
8775 yyval.list = MkList();
8776 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8777 ;
8778 }
8779 break;
8780 case 774:
8781 {
8782 yyval.list = yyvsp[(1) - (2)].list;
8783 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8784 ;
8785 }
8786 break;
8787 case 775:
8788 {
8789 yyval.list = MkList();
8790 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8791 ;
8792 }
8793 break;
8794 case 776:
8795 {
8796 yyval.list = yyvsp[(1) - (2)].list;
8797 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8798 ;
8799 }
8800 break;
8801 case 777:
8802 {
8803 yyval.list = MkList();
8804 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8805 ;
8806 }
8807 break;
8808 case 778:
8809 {
8810 yyval.list = yyvsp[(1) - (2)].list;
8811 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8812 ;
8813 }
8814 break;
8815 case 779:
8816 {
8817 yyval.list = MkList();
8818 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8819 ;
8820 }
8821 break;
8822 case 780:
8823 {
8824 yyval.list = yyvsp[(1) - (2)].list;
8825 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8826 ;
8827 }
8828 break;
8829 case 781:
8830 {
8831 yyval.list = MkList();
8832 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8833 ;
8834 }
8835 break;
8836 case 782:
8837 {
8838 yyval.list = yyvsp[(1) - (2)].list;
8839 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8840 ;
8841 }
8842 break;
8843 case 783:
8844 {
8845 yyval.list = MkList();
8846 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8847 ;
8848 }
8849 break;
8850 case 784:
8851 {
8852 yyval.list = yyvsp[(1) - (2)].list;
8853 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8854 ;
8855 }
8856 break;
8857 case 785:
8858 {
8859 yyval.list = MkList();
8860 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8861 ;
8862 }
8863 break;
8864 case 786:
8865 {
8866 yyval.list = yyvsp[(1) - (2)].list;
8867 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8868 ;
8869 }
8870 break;
8871 case 787:
8872 {
8873 yyval.list = MkList();
8874 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8875 ;
8876 }
8877 break;
8878 case 788:
8879 {
8880 yyval.list = yyvsp[(1) - (2)].list;
8881 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8882 ;
8883 }
8884 break;
8885 case 789:
8886 {
8887 yyval.list = MkList();
8888 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8889 ;
8890 }
8891 break;
8892 case 790:
8893 {
8894 yyval.list = yyvsp[(1) - (2)].list;
8895 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8896 ;
8897 }
8898 break;
8899 case 791:
8900 {
8901 yyval.list = MkList();
8902 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8903 ;
8904 }
8905 break;
8906 case 792:
8907 {
8908 yyval.list = yyvsp[(1) - (2)].list;
8909 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8910 ;
8911 }
8912 break;
8913 case 793:
8914 {
8915 yyval.list = MkList();
8916 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8917 ;
8918 }
8919 break;
8920 case 794:
8921 {
8922 yyval.list = yyvsp[(1) - (2)].list;
8923 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8924 ;
8925 }
8926 break;
8927 case 795:
8928 {
8929 yyval.list = MkList();
8930 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8931 ;
8932 }
8933 break;
8934 case 796:
8935 {
8936 yyval.list = yyvsp[(1) - (2)].list;
8937 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8938 ;
8939 }
8940 break;
8941 case 797:
8942 {
8943 yyval.list = MkList();
8944 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8945 ;
8946 }
8947 break;
8948 case 798:
8949 {
8950 yyval.list = yyvsp[(1) - (2)].list;
8951 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8952 ;
8953 }
8954 break;
8955 case 799:
8956 {
8957 yyval.list = MkList();
8958 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8959 ;
8960 }
8961 break;
8962 case 800:
8963 {
8964 yyval.list = yyvsp[(1) - (2)].list;
8965 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8966 ;
8967 }
8968 break;
8969 case 801:
8970 {
8971 yyval.list = MkList();
8972 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8973 ;
8974 }
8975 break;
8976 case 802:
8977 {
8978 yyval.list = yyvsp[(1) - (2)].list;
8979 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8980 ;
8981 }
8982 break;
8983 case 803:
8984 {
8985 yyval.list = MkList();
8986 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8987 ;
8988 }
8989 break;
8990 case 804:
8991 {
8992 yyval.list = yyvsp[(1) - (2)].list;
8993 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8994 ;
8995 }
8996 break;
8997 case 805:
8998 {
8999 yyval.list = MkList();
9000 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9001 ;
9002 }
9003 break;
9004 case 806:
9005 {
9006 yyval.list = yyvsp[(1) - (2)].list;
9007 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9008 ;
9009 }
9010 break;
9011 case 807:
9012 {
9013 yyval.list = MkList();
9014 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9015 ;
9016 }
9017 break;
9018 case 808:
9019 {
9020 yyval.list = yyvsp[(1) - (2)].list;
9021 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9022 ;
9023 }
9024 break;
9025 case 809:
9026 {
9027 yyval.list = MkList();
9028 ListAdd(yyval.list, MkSpecifier(PRIVATE));
9029 ;
9030 }
9031 break;
9032 case 810:
9033 {
9034 yyval.list = MkList();
9035 ListAdd(yyval.list, MkSpecifier(PUBLIC));
9036 ;
9037 }
9038 break;
9039 case 811:
9040 {
9041 yyval.list = MkList();
9042 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9043 ;
9044 }
9045 break;
9046 case 812:
9047 {
9048 yyval.list = yyvsp[(1) - (2)].list;
9049 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9050 ;
9051 }
9052 break;
9053 case 813:
9054 {
9055 yyval.list = MkList();
9056 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9057 ;
9058 }
9059 break;
9060 case 814:
9061 {
9062 yyval.list = yyvsp[(1) - (2)].list;
9063 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9064 ;
9065 }
9066 break;
9067 case 815:
9068 {
9069 yyval.list = MkList();
9070 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9071 ;
9072 }
9073 break;
9074 case 816:
9075 {
9076 yyval.list = yyvsp[(1) - (2)].list;
9077 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9078 ;
9079 }
9080 break;
9081 case 817:
9082 {
9083 _DeclClass(yyvsp[(1) - (1)].id->_class, yyvsp[(1) - (1)].id->string);
9084 yyval.list = MkListOne(MkSpecifierName(yyvsp[(1) - (1)].id->string));
9085 FreeIdentifier(yyvsp[(1) - (1)].id);
9086 ;
9087 }
9088 break;
9089 case 818:
9090 {
9091 yyval.list = yyvsp[(1) - (2)].list;
9092 _DeclClass(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
9093 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9094 FreeIdentifier(yyvsp[(2) - (2)].id);
9095 ;
9096 }
9097 break;
9098 case 819:
9099 {
9100 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9101 yyval.list = MkList();
9102 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9103 FreeIdentifier(yyvsp[(1) - (4)].id);
9104 ;
9105 }
9106 break;
9107 case 820:
9108 {
9109 yyval.list = yyvsp[(1) - (5)].list;
9110 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9111 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9112 FreeIdentifier(yyvsp[(2) - (5)].id);
9113 ;
9114 }
9115 break;
9116 case 822:
9117 {
9118 yyval.list = MkListOne(MkStructOrUnion(yyvsp[(1) - (1)].specifierType, (((void *)0)), (((void *)0))));
9119 if(defaultMemberAccess > -1)
9120 defaultMemberAccess--;
9121 ;
9122 }
9123 break;
9124 case 823:
9125 {
9126 yyval.list = MkList();
9127 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9128 ;
9129 }
9130 break;
9131 case 824:
9132 {
9133 yyval.list = yyvsp[(1) - (2)].list;
9134 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9135 ;
9136 }
9137 break;
9138 case 825:
9139 {
9140 yyval.list = MkList();
9141 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9142 ;
9143 }
9144 break;
9145 case 826:
9146 {
9147 yyval.list = yyvsp[(1) - (2)].list;
9148 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9149 ;
9150 }
9151 break;
9152 case 827:
9153 {
9154 yyval.list = MkList();
9155 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9156 ;
9157 }
9158 break;
9159 case 828:
9160 {
9161 yyval.list = yyvsp[(1) - (2)].list;
9162 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9163 ;
9164 }
9165 break;
9166 case 829:
9167 {
9168 yyval.list = MkList();
9169 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9170 FreeIdentifier(yyvsp[(1) - (1)].id);
9171 }
9172 break;
9173 case 830:
9174 {
9175 yyval.list = yyvsp[(1) - (2)].list;
9176 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9177 FreeIdentifier(yyvsp[(2) - (2)].id);
9178 }
9179 break;
9180 case 831:
9181 {
9182 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9183 yyval.list = MkList();
9184 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9185 FreeIdentifier(yyvsp[(1) - (4)].id);
9186 ;
9187 }
9188 break;
9189 case 832:
9190 {
9191 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9192 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9193 FreeIdentifier(yyvsp[(2) - (5)].id);
9194 ;
9195 }
9196 break;
9197 case 833:
9198 {
9199 yyval.list = MkList();
9200 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9201 ;
9202 }
9203 break;
9204 case 834:
9205 {
9206 yyval.list = yyvsp[(1) - (2)].list;
9207 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9208 ;
9209 }
9210 break;
9211 case 835:
9212 {
9213 yyval.list = MkList();
9214 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9215 ;
9216 }
9217 break;
9218 case 836:
9219 {
9220 yyval.list = yyvsp[(1) - (2)].list;
9221 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9222 ;
9223 }
9224 break;
9225 case 837:
9226 {
9227 yyval.list = MkList();
9228 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9229 ;
9230 }
9231 break;
9232 case 838:
9233 {
9234 yyval.list = yyvsp[(1) - (2)].list;
9235 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9236 ;
9237 }
9238 break;
9239 case 839:
9240 {
9241 yyval.list = MkList();
9242 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9243 ;
9244 }
9245 break;
9246 case 840:
9247 {
9248 yyval.list = yyvsp[(1) - (2)].list;
9249 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9250 ;
9251 }
9252 break;
9253 case 841:
9254 {
9255 yyval.list = MkList();
9256 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9257 ;
9258 }
9259 break;
9260 case 842:
9261 {
9262 yyval.list = yyvsp[(1) - (2)].list;
9263 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9264 ;
9265 }
9266 break;
9267 case 843:
9268 {
9269 yyval.list = MkList();
9270 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9271 FreeIdentifier(yyvsp[(1) - (1)].id);
9272 }
9273 break;
9274 case 844:
9275 {
9276 yyval.list = yyvsp[(1) - (2)].list;
9277 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9278 FreeIdentifier(yyvsp[(2) - (2)].id);
9279 }
9280 break;
9281 case 845:
9282 {
9283 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9284 yyval.list = MkList();
9285 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9286 FreeIdentifier(yyvsp[(1) - (4)].id);
9287 ;
9288 }
9289 break;
9290 case 846:
9291 {
9292 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9293 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9294 FreeIdentifier(yyvsp[(2) - (5)].id);
9295 ;
9296 }
9297 break;
9298 case 847:
9299 {
9300 yyval.list = MkList();
9301 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9302 ;
9303 }
9304 break;
9305 case 848:
9306 {
9307 yyval.list = yyvsp[(1) - (2)].list;
9308 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9309 ;
9310 }
9311 break;
9312 case 849:
9313 {
9314 yyval.list = MkList();
9315 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9316 ;
9317 }
9318 break;
9319 case 850:
9320 {
9321 yyval.list = yyvsp[(1) - (2)].list;
9322 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9323 ;
9324 }
9325 break;
9326 case 851:
9327 {
9328 yyval.list = MkList();
9329 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9330 ;
9331 }
9332 break;
9333 case 852:
9334 {
9335 yyval.list = yyvsp[(1) - (2)].list;
9336 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9337 ;
9338 }
9339 break;
9340 case 853:
9341 {
9342 yyval.list = MkList();
9343 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9344 ;
9345 }
9346 break;
9347 case 854:
9348 {
9349 yyval.list = yyvsp[(1) - (2)].list;
9350 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9351 ;
9352 }
9353 break;
9354 case 855:
9355 {
9356 yyval.list = MkList();
9357 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9358 ;
9359 }
9360 break;
9361 case 856:
9362 {
9363 yyval.list = yyvsp[(1) - (2)].list;
9364 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9365 ;
9366 }
9367 break;
9368 case 857:
9369 {
9370 yyval.list = MkList();
9371 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9372 FreeIdentifier(yyvsp[(1) - (1)].id);
9373 }
9374 break;
9375 case 858:
9376 {
9377 yyval.list = yyvsp[(1) - (2)].list;
9378 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9379 FreeIdentifier(yyvsp[(2) - (2)].id);
9380 }
9381 break;
9382 case 859:
9383 {
9384 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9385 yyval.list = MkList();
9386 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9387 FreeIdentifier(yyvsp[(1) - (4)].id);
9388 ;
9389 }
9390 break;
9391 case 860:
9392 {
9393 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9394 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9395 FreeIdentifier(yyvsp[(2) - (5)].id);
9396 ;
9397 }
9398 break;
9399 case 861:
9400 {
9401 yyval.list = yyvsp[(1) - (3)].list;
9402 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9403 ;
9404 }
9405 break;
9406 case 862:
9407 {
9408 yyval.list = yyvsp[(1) - (3)].list;
9409 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9410 ;
9411 }
9412 break;
9413 case 863:
9414 {
9415 yyval.list = MkList();
9416 ListAdd(yyval.list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(1) - (1)].id)));
9417 ;
9418 }
9419 break;
9420 case 864:
9421 {
9422 yyval.list = yyvsp[(1) - (3)].list;
9423 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9424 ;
9425 }
9426 break;
9427 case 865:
9428 {
9429 yyval.list = yyvsp[(1) - (3)].list;
9430 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9431 ;
9432 }
9433 break;
9434 case 866:
9435 {
9436 yyval.list = yyvsp[(1) - (3)].list;
9437 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9438 ;
9439 }
9440 break;
9441 case 867:
9442 {
9443 yyval.list = yyvsp[(1) - (3)].list;
9444 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9445 ;
9446 }
9447 break;
9448 case 869:
9449 {
9450 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name), 1, 0);
9451 char * s = colon ? colon + 2 : yyvsp[(1) - (1)].specifier->__anon1.__anon1.name;
9452
9453 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier(s));
9454 FreeSpecifier(yyvsp[(1) - (1)].specifier);
9455 ;
9456 }
9457 break;
9458 case 870:
9459 {
9460 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier("uint"));
9461 ;
9462 }
9463 break;
9464 case 871:
9465 {
9466 struct Declarator * decl;
9467 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9468 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9469
9470 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9471 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9472 yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
9473 ;
9474 }
9475 break;
9476 case 872:
9477 {
9478 struct Declarator * decl;
9479 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9480 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9481
9482 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9483 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9484 yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
9485 ;
9486 }
9487 break;
9488 case 873:
9489 {
9490 struct Declarator * decl;
9491 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9492 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9493
9494 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9495 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9496 yyval.declarator = MkDeclaratorEnumArray(decl, yyvsp[(3) - (4)].specifier);
9497 ;
9498 }
9499 break;
9500 case 874:
9501 {
9502 struct Declarator * decl;
9503 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
9504 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
9505
9506 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9507 FreeSpecifier(yyvsp[(1) - (3)].specifier);
9508 yyval.declarator = MkDeclaratorEnumArray(decl, (((void *)0)));
9509 ;
9510 }
9511 break;
9512 case 875:
9513 {
9514 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9515 ;
9516 }
9517 break;
9518 case 876:
9519 {
9520 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9521 ;
9522 }
9523 break;
9524 case 877:
9525 {
9526 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9527 ;
9528 }
9529 break;
9530 case 878:
9531 {
9532 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9533 ;
9534 }
9535 break;
9536 case 879:
9537 {
9538 yyval.declarator = MkDeclaratorIdentifier(yyvsp[(1) - (1)].id);
9539 ;
9540 }
9541 break;
9542 case 880:
9543 {
9544 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9545 ;
9546 }
9547 break;
9548 case 881:
9549 {
9550 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9551 ;
9552 }
9553 break;
9554 case 882:
9555 {
9556 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9557 ;
9558 }
9559 break;
9560 case 883:
9561 {
9562 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9563 ;
9564 }
9565 break;
9566 case 884:
9567 {
9568 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9569 ;
9570 }
9571 break;
9572 case 885:
9573 {
9574 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9575 ;
9576 }
9577 break;
9578 case 886:
9579 {
9580 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9581 ;
9582 }
9583 break;
9584 case 887:
9585 {
9586 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9587 ;
9588 }
9589 break;
9590 case 889:
9591 {
9592 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9593 ;
9594 }
9595 break;
9596 case 890:
9597 {
9598 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9599 ;
9600 }
9601 break;
9602 case 891:
9603 {
9604 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9605 ;
9606 }
9607 break;
9608 case 892:
9609 {
9610 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9611 ;
9612 }
9613 break;
9614 case 893:
9615 {
9616 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9617 ;
9618 }
9619 break;
9620 case 894:
9621 {
9622 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9623 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9624 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9625
9626 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9627 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9628 (yychar = (-2));
9629 resetScannerPos(&(yylsp[(1) - (2)]).end);
9630 (yyloc.start = (yylsp[(1) - (2)]).start);
9631 (yyloc.end = (yylsp[(1) - (2)]).end);
9632 ;
9633 }
9634 break;
9635 case 895:
9636 {
9637 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9638 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9639 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9640
9641 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9642 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9643 (yychar = (-2));
9644 resetScannerPos(&(yylsp[(1) - (2)]).end);
9645 (yyloc.start = (yylsp[(1) - (2)]).start);
9646 (yyloc.end = (yylsp[(1) - (2)]).end);
9647 ;
9648 }
9649 break;
9650 case 896:
9651 {
9652 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9653 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9654 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9655
9656 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9657 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (3)]).end.pos, 0);
9658 (yychar = (-2));
9659 resetScannerPos(&(yylsp[(1) - (3)]).end);
9660 (yyloc.start = (yylsp[(1) - (3)]).start);
9661 (yyloc.end = (yylsp[(1) - (3)]).end);
9662 ;
9663 }
9664 break;
9665 case 897:
9666 {
9667 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9668 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9669 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9670
9671 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9672 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (4)]).end.pos, 0);
9673 (yychar = (-2));
9674 resetScannerPos(&(yylsp[(1) - (4)]).end);
9675 (yyloc.start = (yylsp[(1) - (4)]).start);
9676 (yyloc.end = (yylsp[(1) - (4)]).end);
9677 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9678 FreeIdentifier(yyvsp[(3) - (4)].id);
9679 ;
9680 }
9681 break;
9682 case 901:
9683 {
9684 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9685 ;
9686 }
9687 break;
9688 case 902:
9689 {
9690 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9691 ;
9692 }
9693 break;
9694 case 903:
9695 {
9696 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9697 ;
9698 }
9699 break;
9700 case 904:
9701 {
9702 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9703 ;
9704 }
9705 break;
9706 case 905:
9707 {
9708 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9709 ;
9710 }
9711 break;
9712 case 906:
9713 {
9714 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9715 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9716 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9717
9718 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9719 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9720 (yychar = (-2));
9721 resetScannerPos(&(yylsp[(1) - (2)]).end);
9722 (yyloc.start = (yylsp[(1) - (2)]).start);
9723 (yyloc.end = (yylsp[(1) - (2)]).end);
9724 ;
9725 }
9726 break;
9727 case 907:
9728 {
9729 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9730 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9731 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9732
9733 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9734 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (2)]).end.pos, 0);
9735 (yychar = (-2));
9736 resetScannerPos(&(yylsp[(1) - (2)]).end);
9737 (yyloc.start = (yylsp[(1) - (2)]).start);
9738 (yyloc.end = (yylsp[(1) - (2)]).end);
9739 ;
9740 }
9741 break;
9742 case 908:
9743 {
9744 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9745 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9746 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9747
9748 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9749 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (3)]).end.pos, 0);
9750 (yychar = (-2));
9751 resetScannerPos(&(yylsp[(1) - (3)]).end);
9752 (yyloc.start = (yylsp[(1) - (3)]).start);
9753 (yyloc.end = (yylsp[(1) - (3)]).end);
9754 ;
9755 }
9756 break;
9757 case 909:
9758 {
9759 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9760 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9761 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9762
9763 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9764 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, (yylsp[(1) - (4)]).end.pos, 0);
9765 (yychar = (-2));
9766 resetScannerPos(&(yylsp[(1) - (4)]).end);
9767 (yyloc.start = (yylsp[(1) - (4)]).start);
9768 (yyloc.end = (yylsp[(1) - (4)]).end);
9769 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9770 FreeIdentifier(yyvsp[(3) - (4)].id);
9771 ;
9772 }
9773 break;
9774 case 912:
9775 {
9776 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9777 ;
9778 }
9779 break;
9780 case 913:
9781 {
9782 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9783 ;
9784 }
9785 break;
9786 case 914:
9787 {
9788 yyval.extDecl = MkExtDeclAttrib(yyvsp[(1) - (1)].attrib);
9789 ;
9790 }
9791 break;
9792 case 915:
9793 {
9794 char temp[1024];
9795
9796 strcpy(temp, "__asm__(");
9797 strcat(temp, yyvsp[(3) - (4)].string);
9798 strcat(temp, ")");
9799 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(temp));
9800 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(3) - (4)].string), yyvsp[(3) - (4)].string = 0);
9801 ;
9802 }
9803 break;
9804 case 916:
9805 {
9806 yyval.i = ATTRIB;
9807 ;
9808 }
9809 break;
9810 case 917:
9811 {
9812 yyval.i = ATTRIB_DEP;
9813 ;
9814 }
9815 break;
9816 case 918:
9817 {
9818 yyval.i = __ATTRIB;
9819 ;
9820 }
9821 break;
9822 case 919:
9823 {
9824 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9825 ;
9826 }
9827 break;
9828 case 920:
9829 {
9830 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9831 ;
9832 }
9833 break;
9834 case 921:
9835 {
9836 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9837 ;
9838 }
9839 break;
9840 case 922:
9841 {
9842 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9843 ;
9844 }
9845 break;
9846 case 923:
9847 {
9848 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9849 ;
9850 }
9851 break;
9852 case 924:
9853 {
9854 yyval.attribute = MkAttribute(yyvsp[(1) - (1)].string, (((void *)0)));
9855 yyval.attribute->loc = (yyloc);
9856 ;
9857 }
9858 break;
9859 case 925:
9860 {
9861 yyval.attribute = MkAttribute(yyvsp[(1) - (4)].string, MkExpBrackets(yyvsp[(3) - (4)].list));
9862 yyval.attribute->loc = (yyloc);
9863 ;
9864 }
9865 break;
9866 case 926:
9867 {
9868 yyval.list = MkListOne(yyvsp[(1) - (1)].attribute);
9869 ;
9870 }
9871 break;
9872 case 927:
9873 {
9874 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].attribute);
9875 yyval.list = yyvsp[(1) - (2)].list;
9876 ;
9877 }
9878 break;
9879 case 928:
9880 {
9881 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].attribute);
9882 yyval.list = yyvsp[(1) - (3)].list;
9883 ;
9884 }
9885 break;
9886 case 929:
9887 {
9888 yyval.attrib = MkAttrib(yyvsp[(1) - (6)].i, yyvsp[(4) - (6)].list);
9889 yyval.attrib->loc = (yyloc);
9890 ;
9891 }
9892 break;
9893 case 930:
9894 {
9895 yyval.attrib = MkAttrib(yyvsp[(1) - (5)].i, (((void *)0)));
9896 yyval.attrib->loc = (yyloc);
9897 ;
9898 }
9899 break;
9900 case 931:
9901 {
9902 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9903 ;
9904 }
9905 break;
9906 case 932:
9907 {
9908 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9909 ;
9910 }
9911 break;
9912 case 933:
9913 {
9914 yyval.declarator = MkDeclaratorArray((((void *)0)), (((void *)0)));
9915 ;
9916 }
9917 break;
9918 case 934:
9919 {
9920 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
9921 ;
9922 }
9923 break;
9924 case 935:
9925 {
9926 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
9927 ;
9928 }
9929 break;
9930 case 936:
9931 {
9932 yyval.declarator = MkDeclaratorEnumArray((((void *)0)), yyvsp[(2) - (3)].specifier);
9933 ;
9934 }
9935 break;
9936 case 937:
9937 {
9938 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9939 ;
9940 }
9941 break;
9942 case 938:
9943 {
9944 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9945 ;
9946 }
9947 break;
9948 case 939:
9949 {
9950 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9951 ;
9952 }
9953 break;
9954 case 940:
9955 {
9956 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9957 ;
9958 }
9959 break;
9960 case 941:
9961 {
9962 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
9963 ;
9964 }
9965 break;
9966 case 942:
9967 {
9968 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
9969 ;
9970 }
9971 break;
9972 case 943:
9973 {
9974 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
9975 ;
9976 }
9977 break;
9978 case 944:
9979 {
9980 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
9981 ;
9982 }
9983 break;
9984 case 945:
9985 {
9986 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
9987 ;
9988 }
9989 break;
9990 case 946:
9991 {
9992 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
9993 ;
9994 }
9995 break;
9996 case 947:
9997 {
9998 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9999 ;
10000 }
10001 break;
10002 case 948:
10003 {
10004 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
10005 ;
10006 }
10007 break;
10008 case 949:
10009 {
10010 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
10011 ;
10012 }
10013 break;
10014 case 950:
10015 {
10016 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10017 ;
10018 }
10019 break;
10020 case 951:
10021 {
10022 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10023 ;
10024 }
10025 break;
10026 case 952:
10027 {
10028 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
10029 ;
10030 }
10031 break;
10032 case 953:
10033 {
10034 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10035 ;
10036 }
10037 break;
10038 case 954:
10039 {
10040 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10041 ;
10042 }
10043 break;
10044 case 955:
10045 {
10046 yyval.pointer = MkPointer((((void *)0)), (((void *)0)));
10047 ;
10048 }
10049 break;
10050 case 956:
10051 {
10052 yyval.pointer = MkPointer(yyvsp[(2) - (2)].list, (((void *)0)));
10053 ;
10054 }
10055 break;
10056 case 957:
10057 {
10058 yyval.pointer = MkPointer((((void *)0)), yyvsp[(2) - (2)].pointer);
10059 ;
10060 }
10061 break;
10062 case 958:
10063 {
10064 yyval.pointer = MkPointer(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].pointer);
10065 ;
10066 }
10067 break;
10068 case 959:
10069 {
10070 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10071 ;
10072 }
10073 break;
10074 case 961:
10075 {
10076 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10077 ;
10078 }
10079 break;
10080 case 962:
10081 {
10082 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10083 ;
10084 }
10085 break;
10086 case 963:
10087 {
10088 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10089 ;
10090 }
10091 break;
10092 case 964:
10093 {
10094 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10095 ;
10096 }
10097 break;
10098 case 966:
10099 {
10100 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10101 ;
10102 }
10103 break;
10104 case 967:
10105 {
10106 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10107 ;
10108 }
10109 break;
10110 case 968:
10111 {
10112 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10113 ;
10114 }
10115 break;
10116 case 970:
10117 {
10118 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10119 ;
10120 }
10121 break;
10122 case 971:
10123 {
10124 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10125 ;
10126 }
10127 break;
10128 case 972:
10129 {
10130 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10131 ;
10132 }
10133 break;
10134 case 973:
10135 {
10136 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10137 ;
10138 }
10139 break;
10140 case 975:
10141 {
10142 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10143 ;
10144 }
10145 break;
10146 case 976:
10147 {
10148 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10149 ;
10150 }
10151 break;
10152 case 977:
10153 {
10154 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10155 ;
10156 }
10157 break;
10158 case 979:
10159 {
10160 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10161 ;
10162 }
10163 break;
10164 case 980:
10165 {
10166 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10167 ;
10168 }
10169 break;
10170 case 981:
10171 {
10172 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10173 ;
10174 }
10175 break;
10176 case 983:
10177 {
10178 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10179 ;
10180 }
10181 break;
10182 case 984:
10183 {
10184 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10185 ;
10186 }
10187 break;
10188 case 985:
10189 {
10190 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10191 ;
10192 }
10193 break;
10194 case 987:
10195 {
10196 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10197 ;
10198 }
10199 break;
10200 case 988:
10201 {
10202 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10203 ;
10204 }
10205 break;
10206 case 989:
10207 {
10208 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10209 ;
10210 }
10211 break;
10212 case 991:
10213 {
10214 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10215 ;
10216 }
10217 break;
10218 case 992:
10219 {
10220 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10221 ;
10222 }
10223 break;
10224 case 993:
10225 {
10226 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10227 ;
10228 }
10229 break;
10230 case 995:
10231 {
10232 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10233 ;
10234 }
10235 break;
10236 case 996:
10237 {
10238 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10239 ;
10240 }
10241 break;
10242 case 997:
10243 {
10244 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10245 ;
10246 }
10247 break;
10248 case 998:
10249 {
10250 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10251 yyval.initializer->loc = (yyloc);
10252 ;
10253 }
10254 break;
10255 case 999:
10256 {
10257 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10258 yyval.initializer->loc = (yyloc);
10259 ;
10260 }
10261 break;
10262 case 1000:
10263 {
10264 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "extra comma\n", (((void *)0))));
10265 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10266 yyval.initializer->loc = (yyloc);
10267 {
10268 struct Expression * exp = MkExpDummy();
10269 struct Initializer * init = MkInitializerAssignment(exp);
10270
10271 init->loc = (yylsp[(3) - (4)]);
10272 exp->loc = (yylsp[(3) - (4)]);
10273 ListAdd(yyvsp[(2) - (4)].list, init);
10274 }
10275 ;
10276 }
10277 break;
10278 case 1001:
10279 {
10280 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10281 yyval.initializer->loc = (yyloc);
10282 ;
10283 }
10284 break;
10285 case 1002:
10286 {
10287 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10288 yyval.initializer->loc = (yyloc);
10289 ;
10290 }
10291 break;
10292 case 1003:
10293 {
10294 yyerror();
10295 yyval.initializer = MkInitializerList(yyvsp[(2) - (2)].list);
10296 yyval.initializer->loc = (yyloc);
10297 ;
10298 }
10299 break;
10300 case 1004:
10301 {
10302 yyval.initializer = MkInitializerList(yyvsp[(2) - (5)].list);
10303 yyval.initializer->loc = (yyloc);
10304 {
10305 struct Expression * exp = MkExpDummy();
10306 struct Initializer * init = MkInitializerAssignment(exp);
10307
10308 init->loc = (yylsp[(3) - (5)]);
10309 exp->loc = (yylsp[(3) - (5)]);
10310 ListAdd(yyvsp[(2) - (5)].list, init);
10311 }
10312 ;
10313 }
10314 break;
10315 case 1005:
10316 {
10317 yyerror();
10318 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10319 yyval.initializer->loc = (yyloc);
10320 {
10321 struct Expression * exp = MkExpDummy();
10322 struct Initializer * init = MkInitializerAssignment(exp);
10323
10324 init->loc = (yylsp[(3) - (3)]);
10325 exp->loc = (yylsp[(3) - (3)]);
10326 ListAdd(yyvsp[(2) - (3)].list, init);
10327 }
10328 ;
10329 }
10330 break;
10331 case 1006:
10332 {
10333 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10334 yyval.initializer->loc = (yyloc);
10335 ;
10336 }
10337 break;
10338 case 1007:
10339 {
10340 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10341 yyval.initializer->loc = (yyloc);
10342 ;
10343 }
10344 break;
10345 case 1008:
10346 {
10347 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10348 yyval.initializer->loc = (yyloc);
10349 ;
10350 }
10351 break;
10352 case 1009:
10353 {
10354 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10355 yyval.initializer->loc = (yyloc);
10356 ;
10357 }
10358 break;
10359 case 1010:
10360 {
10361 yyval.list = MkList();
10362 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10363 ;
10364 }
10365 break;
10366 case 1011:
10367 {
10368 yyval.list = MkList();
10369 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10370 ;
10371 }
10372 break;
10373 case 1012:
10374 {
10375 yyval.list = yyvsp[(1) - (3)].list;
10376 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10377 ;
10378 }
10379 break;
10380 case 1013:
10381 {
10382 yyval.list = yyvsp[(1) - (3)].list;
10383 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10384 ;
10385 }
10386 break;
10387 case 1014:
10388 {
10389 yyerror();
10390 yyval.list = yyvsp[(1) - (2)].list;
10391 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10392 ;
10393 }
10394 break;
10395 case 1015:
10396 {
10397 yyval.list = yyvsp[(1) - (2)].list;
10398 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10399 ;
10400 }
10401 break;
10402 case 1016:
10403 {
10404 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10405 yyval.initDeclarator->loc = (yyloc);
10406 ;
10407 }
10408 break;
10409 case 1017:
10410 {
10411 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10412 yyval.initDeclarator->loc = (yyloc);
10413 ;
10414 }
10415 break;
10416 case 1018:
10417 {
10418 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10419 yyval.initDeclarator->loc = (yyloc);
10420 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10421 ;
10422 }
10423 break;
10424 case 1019:
10425 {
10426 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
10427 yyval.initDeclarator->loc = (yyloc);
10428 ;
10429 }
10430 break;
10431 case 1020:
10432 {
10433 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10434 yyval.initDeclarator->loc = (yyloc);
10435 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10436 ;
10437 }
10438 break;
10439 case 1021:
10440 {
10441 yyval.list = MkList();
10442 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10443 ;
10444 }
10445 break;
10446 case 1022:
10447 {
10448 yyval.list = yyvsp[(1) - (3)].list;
10449 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10450 ;
10451 }
10452 break;
10453 case 1023:
10454 {
10455 yyval.list = MkList();
10456 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("uint")), (((void *)0))));
10457 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10458 ;
10459 }
10460 break;
10461 case 1024:
10462 {
10463 yyval.list = MkList();
10464 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("int64")), (((void *)0))));
10465 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10466 ;
10467 }
10468 break;
10469 case 1025:
10470 {
10471 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
10472 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
10473
10474 yyval.list = MkList();
10475 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(s)), (((void *)0))));
10476 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10477 FreeSpecifier(yyvsp[(1) - (3)].specifier);
10478 ;
10479 }
10480 break;
10481 case 1026:
10482 {
10483 yyval.list = yyvsp[(1) - (3)].list;
10484 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10485 ;
10486 }
10487 break;
10488 case 1027:
10489 {
10490 yyval.list = MkList();
10491 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10492 ;
10493 }
10494 break;
10495 case 1028:
10496 {
10497 yyval.list = MkList();
10498 ListAdd(yyval.list, yyvsp[(1) - (2)].initDeclarator);
10499 ;
10500 }
10501 break;
10502 case 1029:
10503 {
10504 yyval.list = yyvsp[(1) - (3)].list;
10505 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10506 ;
10507 }
10508 break;
10509 case 1030:
10510 {
10511 yyval.list = yyvsp[(1) - (3)].list;
10512 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10513 ;
10514 }
10515 break;
10516 case 1031:
10517 {
10518 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10519 ;
10520 }
10521 break;
10522 case 1032:
10523 {
10524 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10525 ;
10526 }
10527 break;
10528 case 1033:
10529 {
10530 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10531 ;
10532 }
10533 break;
10534 case 1034:
10535 {
10536 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10537 ;
10538 }
10539 break;
10540 case 1035:
10541 {
10542 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10543 ;
10544 }
10545 break;
10546 case 1036:
10547 {
10548 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10549 ;
10550 }
10551 break;
10552 case 1037:
10553 {
10554 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0))));
10555 ;
10556 }
10557 break;
10558 case 1038:
10559 {
10560 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), yyvsp[(3) - (3)].declarator));
10561 ;
10562 }
10563 break;
10564 case 1039:
10565 {
10566 yyval.typeName = MkTypeNameGuessDecl(yyvsp[(1) - (1)].list, (((void *)0)));
10567 ;
10568 }
10569 break;
10570 case 1040:
10571 {
10572 yyval.typeName = MkTypeName(MkListOne(MkSpecifier(CLASS)), (((void *)0)));
10573 ;
10574 }
10575 break;
10576 case 1041:
10577 {
10578 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10579 ;
10580 }
10581 break;
10582 case 1042:
10583 {
10584 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10585 ;
10586 }
10587 break;
10588 case 1043:
10589 {
10590 yyval.list = MkList();
10591 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10592 ;
10593 }
10594 break;
10595 case 1044:
10596 {
10597 yyval.list = yyvsp[(1) - (3)].list;
10598 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10599 ;
10600 }
10601 break;
10602 case 1045:
10603 {
10604 yyval.list = yyvsp[(1) - (4)].list;
10605 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10606 ;
10607 }
10608 break;
10609 case 1046:
10610 {
10611 yyval.list = yyvsp[(1) - (3)].list;
10612 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10613 ;
10614 }
10615 break;
10616 case 1047:
10617 {
10618 yyval.list = yyvsp[(1) - (4)].list;
10619 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10620 ;
10621 }
10622 break;
10623 case 1048:
10624 {
10625 yyval.list = MkList();
10626 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10627 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10628 ;
10629 }
10630 break;
10631 case 1049:
10632 {
10633 yyval.list = yyvsp[(1) - (3)].list;
10634 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10635 ;
10636 }
10637 break;
10638 case 1050:
10639 {
10640 yyval.list = yyvsp[(1) - (4)].list;
10641 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10642 ;
10643 }
10644 break;
10645 case 1051:
10646 {
10647 yyval.list = yyvsp[(1) - (3)].list;
10648 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10649 ;
10650 }
10651 break;
10652 case 1052:
10653 {
10654 yyval.list = yyvsp[(1) - (4)].list;
10655 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10656 ;
10657 }
10658 break;
10659 case 1053:
10660 {
10661 yyval.list = MkList();
10662 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10663 ;
10664 }
10665 break;
10666 case 1054:
10667 {
10668 yyval.list = yyvsp[(1) - (3)].list;
10669 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10670 ;
10671 }
10672 break;
10673 case 1055:
10674 {
10675 yyval.list = yyvsp[(1) - (3)].list;
10676 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10677 ;
10678 }
10679 break;
10680 case 1056:
10681 {
10682 yyval.list = yyvsp[(1) - (4)].list;
10683 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10684 ;
10685 }
10686 break;
10687 case 1057:
10688 {
10689 yyval.list = MkList();
10690 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10691 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10692 ;
10693 }
10694 break;
10695 case 1058:
10696 {
10697 yyval.list = yyvsp[(1) - (3)].list;
10698 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10699 ;
10700 }
10701 break;
10702 case 1059:
10703 {
10704 yyval.list = yyvsp[(1) - (3)].list;
10705 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10706 ;
10707 }
10708 break;
10709 case 1060:
10710 {
10711 yyval.list = yyvsp[(1) - (4)].list;
10712 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10713 ;
10714 }
10715 break;
10716 case 1062:
10717 {
10718 yyval.list = yyvsp[(1) - (3)].list;
10719 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10720 ;
10721 }
10722 break;
10723 case 1063:
10724 {
10725 yyval.list = yyvsp[(1) - (3)].list;
10726 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10727 ;
10728 }
10729 break;
10730 case 1064:
10731 {
10732 yyval.list = yyvsp[(1) - (3)].list;
10733 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10734 ;
10735 }
10736 break;
10737 case 1065:
10738 {
10739 yyval.list = yyvsp[(1) - (3)].list;
10740 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10741 ;
10742 }
10743 break;
10744 case 1066:
10745 {
10746 yyval.list = MkList();
10747 ListAdd(yyval.list, MkTypeName((((void *)0)), (((void *)0))));
10748 ;
10749 }
10750 break;
10751 case 1068:
10752 {
10753 yyval.list = yyvsp[(1) - (3)].list;
10754 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
10755 ;
10756 }
10757 break;
10758 case 1071:
10759 {
10760 yyval.stmt = MkExpressionStmt((((void *)0)));
10761 FreeAttrib(yyvsp[(1) - (1)].attrib);
10762 ;
10763 }
10764 break;
10765 case 1073:
10766 {
10767 yyval.stmt = MkExpressionStmt((((void *)0)));
10768 ;
10769 }
10770 break;
10771 case 1074:
10772 {
10773 yyval.stmt = MkExpressionStmt((((void *)0)));
10774 ;
10775 }
10776 break;
10777 case 1075:
10778 {
10779 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
10780 yyval.stmt->loc = (yyloc);
10781 ;
10782 }
10783 break;
10784 case 1083:
10785 {
10786 yyval.stmt = yyvsp[(1) - (1)].stmt;
10787 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10788 ;
10789 }
10790 break;
10791 case 1084:
10792 {
10793 yyval.stmt = yyvsp[(1) - (1)].stmt;
10794 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10795 ;
10796 }
10797 break;
10798 case 1085:
10799 {
10800 yyval.stmt = yyvsp[(1) - (1)].stmt;
10801 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10802 ;
10803 }
10804 break;
10805 case 1086:
10806 {
10807 yyval.stmt = yyvsp[(1) - (1)].stmt;
10808 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10809 ;
10810 }
10811 break;
10812 case 1087:
10813 {
10814 yyval.stmt = yyvsp[(1) - (1)].stmt;
10815 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10816 ;
10817 }
10818 break;
10819 case 1088:
10820 {
10821 yyval.stmt = yyvsp[(1) - (2)].stmt;
10822 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10823 ;
10824 }
10825 break;
10826 case 1089:
10827 {
10828 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (1)].list);
10829 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10830 yyval.stmt->loc = (yylsp[(1) - (1)]);
10831 ;
10832 }
10833 break;
10834 case 1090:
10835 {
10836 yyval.asmField = MkAsmField(yyvsp[(1) - (1)].string, (((void *)0)), (((void *)0)));
10837 yyval.asmField->loc = (yylsp[(1) - (1)]);
10838 ;
10839 }
10840 break;
10841 case 1091:
10842 {
10843 yyval.asmField = MkAsmField(yyvsp[(1) - (4)].string, yyvsp[(3) - (4)].exp, (((void *)0)));
10844 yyval.asmField->loc = (yyloc);
10845 ;
10846 }
10847 break;
10848 case 1092:
10849 {
10850 yyval.asmField = MkAsmField(yyvsp[(4) - (7)].string, yyvsp[(6) - (7)].exp, yyvsp[(2) - (7)].id);
10851 yyval.asmField->loc = (yyloc);
10852 ;
10853 }
10854 break;
10855 case 1093:
10856 {
10857 yyval.list = MkListOne(yyvsp[(1) - (1)].asmField);
10858 ;
10859 }
10860 break;
10861 case 1094:
10862 {
10863 ListAdd(yyval.list, yyvsp[(3) - (3)].asmField);
10864 ;
10865 }
10866 break;
10867 case 1095:
10868 {
10869 yyval.list = (((void *)0));
10870 ;
10871 }
10872 break;
10873 case 1096:
10874 {
10875 yyval.stmt = MkAsmStmt(yyvsp[(2) - (6)].specifier, yyvsp[(4) - (6)].string, (((void *)0)), (((void *)0)), (((void *)0)));
10876 yyval.stmt->loc = (yyloc);
10877 ;
10878 }
10879 break;
10880 case 1097:
10881 {
10882 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, yyvsp[(6) - (8)].list, (((void *)0)), (((void *)0)));
10883 yyval.stmt->loc = (yyloc);
10884 ;
10885 }
10886 break;
10887 case 1098:
10888 {
10889 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list, (((void *)0)));
10890 yyval.stmt->loc = (yyloc);
10891 ;
10892 }
10893 break;
10894 case 1099:
10895 {
10896 yyval.stmt = MkAsmStmt(yyvsp[(2) - (12)].specifier, yyvsp[(4) - (12)].string, yyvsp[(6) - (12)].list, yyvsp[(8) - (12)].list, yyvsp[(10) - (12)].list);
10897 yyval.stmt->loc = (yyloc);
10898 ;
10899 }
10900 break;
10901 case 1100:
10902 {
10903 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, (((void *)0)), yyvsp[(6) - (8)].list, (((void *)0)));
10904 yyval.stmt->loc = (yyloc);
10905 ;
10906 }
10907 break;
10908 case 1101:
10909 {
10910 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, (((void *)0)), yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list);
10911 yyval.stmt->loc = (yyloc);
10912 ;
10913 }
10914 break;
10915 case 1102:
10916 {
10917 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, (((void *)0)), yyvsp[(8) - (10)].list);
10918 yyval.stmt->loc = (yyloc);
10919 ;
10920 }
10921 break;
10922 case 1103:
10923 {
10924 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (5)].string, (((void *)0)), (((void *)0)), (((void *)0)));
10925 yyval.stmt->loc = (yyloc);
10926 ;
10927 }
10928 break;
10929 case 1104:
10930 {
10931 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, yyvsp[(5) - (7)].list, (((void *)0)), (((void *)0)));
10932 yyval.stmt->loc = (yyloc);
10933 ;
10934 }
10935 break;
10936 case 1105:
10937 {
10938 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, (((void *)0)));
10939 yyval.stmt->loc = (yyloc);
10940 ;
10941 }
10942 break;
10943 case 1106:
10944 {
10945 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (11)].string, yyvsp[(5) - (11)].list, yyvsp[(7) - (11)].list, yyvsp[(9) - (11)].list);
10946 yyval.stmt->loc = (yyloc);
10947 ;
10948 }
10949 break;
10950 case 1107:
10951 {
10952 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, (((void *)0)), yyvsp[(5) - (7)].list, (((void *)0)));
10953 yyval.stmt->loc = (yyloc);
10954 ;
10955 }
10956 break;
10957 case 1108:
10958 {
10959 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, (((void *)0)), yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list);
10960 yyval.stmt->loc = (yyloc);
10961 ;
10962 }
10963 break;
10964 case 1109:
10965 {
10966 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, (((void *)0)), yyvsp[(7) - (9)].list);
10967 yyval.stmt->loc = (yyloc);
10968 ;
10969 }
10970 break;
10971 case 1110:
10972 {
10973 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
10974 yyval.stmt->loc = (yyloc);
10975 ;
10976 }
10977 break;
10978 case 1111:
10979 {
10980 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
10981 yyval.stmt->loc = (yyloc);
10982 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
10983 ;
10984 }
10985 break;
10986 case 1112:
10987 {
10988 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
10989 yyval.stmt->loc = (yyloc);
10990 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
10991 ;
10992 }
10993 break;
10994 case 1113:
10995 {
10996 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
10997 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
10998 yyval.stmt->loc = (yyloc);
10999 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11000 ;
11001 }
11002 break;
11003 case 1114:
11004 {
11005 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11006 yyval.stmt->loc = (yyloc);
11007 ;
11008 }
11009 break;
11010 case 1115:
11011 {
11012 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11013
11014 stmt->loc = (yylsp[(3) - (3)]);
11015 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11016 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11017 yyval.stmt->loc = (yyloc);
11018 ;
11019 }
11020 break;
11021 case 1116:
11022 {
11023 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11024
11025 stmt->loc = (yylsp[(4) - (4)]);
11026 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11027 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11028 yyval.stmt->loc = (yyloc);
11029 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11030 ;
11031 }
11032 break;
11033 case 1117:
11034 {
11035 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11036
11037 stmt->loc = (yylsp[(4) - (4)]);
11038 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11039 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11040 yyval.stmt->loc = (yyloc);
11041 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11042 ;
11043 }
11044 break;
11045 case 1118:
11046 {
11047 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11048
11049 stmt->loc = (yylsp[(3) - (3)]);
11050 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11051 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11052 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11053 yyval.stmt->loc = (yyloc);
11054 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11055 ;
11056 }
11057 break;
11058 case 1119:
11059 {
11060 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11061
11062 stmt->loc = (yylsp[(3) - (3)]);
11063 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11064 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11065 yyval.stmt->loc = (yyloc);
11066 ;
11067 }
11068 break;
11069 case 1120:
11070 {
11071 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
11072 yyval.stmt->loc = (yyloc);
11073 ;
11074 }
11075 break;
11076 case 1121:
11077 {
11078 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11079 yyval.stmt->loc = (yyloc);
11080 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11081 ;
11082 }
11083 break;
11084 case 1122:
11085 {
11086 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11087 yyval.stmt->loc = (yyloc);
11088 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11089 ;
11090 }
11091 break;
11092 case 1123:
11093 {
11094 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
11095 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11096 yyval.stmt->loc = (yyloc);
11097 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11098 ;
11099 }
11100 break;
11101 case 1124:
11102 {
11103 yyval.stmt = MkCaseStmt(MkExpDummy(), (((void *)0)));
11104 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (2)]);
11105 yyval.stmt->loc = (yyloc);
11106 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (2)]).end;
11107 ;
11108 }
11109 break;
11110 case 1125:
11111 {
11112 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11113 yyval.stmt->loc = (yyloc);
11114 ;
11115 }
11116 break;
11117 case 1126:
11118 {
11119 yyval.stmt = MkCaseStmt((((void *)0)), (((void *)0)));
11120 yyval.stmt->loc = (yyloc);
11121 ;
11122 }
11123 break;
11124 case 1127:
11125 {
11126 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11127
11128 stmt->loc = (yylsp[(3) - (3)]);
11129 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11130 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11131 yyval.stmt->loc = (yyloc);
11132 ;
11133 }
11134 break;
11135 case 1128:
11136 {
11137 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11138
11139 stmt->loc = (yylsp[(4) - (4)]);
11140 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11141 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11142 yyval.stmt->loc = (yyloc);
11143 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11144 ;
11145 }
11146 break;
11147 case 1129:
11148 {
11149 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11150
11151 stmt->loc = (yylsp[(4) - (4)]);
11152 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11153 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11154 yyval.stmt->loc = (yyloc);
11155 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11156 ;
11157 }
11158 break;
11159 case 1130:
11160 {
11161 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11162
11163 stmt->loc = (yylsp[(3) - (3)]);
11164 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11165 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11166 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11167 yyval.stmt->loc = (yyloc);
11168 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11169 ;
11170 }
11171 break;
11172 case 1131:
11173 {
11174 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11175
11176 stmt->loc = (yylsp[(3) - (3)]);
11177 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11178 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11179 yyval.stmt->loc = (yyloc);
11180 ;
11181 }
11182 break;
11183 case 1132:
11184 {
11185 yyval.declMode = structDeclMode = declMode = 1;
11186 ;
11187 }
11188 break;
11189 case 1133:
11190 {
11191 yyval.declMode = structDeclMode = declMode = 2;
11192 ;
11193 }
11194 break;
11195 case 1134:
11196 {
11197 yyval.declMode = structDeclMode = declMode = 0;
11198 ;
11199 }
11200 break;
11201 case 1135:
11202 {
11203 yyval.declMode = 1;
11204 ;
11205 }
11206 break;
11207 case 1136:
11208 {
11209 yyval.declMode = 2;
11210 ;
11211 }
11212 break;
11213 case 1137:
11214 {
11215 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11216 yyval.declaration->loc = (yyloc);
11217 structDeclMode = defaultDeclMode;
11218 ;
11219 }
11220 break;
11221 case 1138:
11222 {
11223 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11224 yyval.declaration->loc = (yyloc);
11225 structDeclMode = defaultDeclMode;
11226 ;
11227 }
11228 break;
11229 case 1139:
11230 {
11231 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11232 yyval.declaration->loc = (yyloc);
11233 structDeclMode = defaultDeclMode;
11234 ;
11235 }
11236 break;
11237 case 1140:
11238 {
11239 yyval.declaration = yyvsp[(1) - (2)].declaration;
11240 structDeclMode = defaultDeclMode;
11241 ;
11242 }
11243 break;
11244 case 1141:
11245 {
11246 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11247 yyval.declaration->loc = (yyloc);
11248 ;
11249 }
11250 break;
11251 case 1142:
11252 {
11253 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11254 yyval.declaration->loc = (yyloc);
11255 ;
11256 }
11257 break;
11258 case 1143:
11259 {
11260 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11261 yyval.declaration->loc = (yyloc);
11262 ;
11263 }
11264 break;
11265 case 1144:
11266 {
11267 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11268 yyval.declaration->loc = (yyloc);
11269 ;
11270 }
11271 break;
11272 case 1145:
11273 {
11274 yyval.declaration = MkDeclarationDefine(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].exp);
11275 yyval.declaration->loc = (yyloc);
11276 ;
11277 }
11278 break;
11279 case 1146:
11280 {
11281 structDeclMode = declMode = 3;
11282 yyval.declaration = MkDeclarationDefine(yyvsp[(3) - (6)].id, yyvsp[(5) - (6)].exp);
11283 yyval.declaration->loc = (yyloc);
11284 ;
11285 }
11286 break;
11287 case 1147:
11288 {
11289 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11290 yyval.declaration->loc = (yyloc);
11291 (yyerrstatus = 0);
11292 ;
11293 }
11294 break;
11295 case 1148:
11296 {
11297 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11298 yyval.declaration->loc = (yyloc);
11299 structDeclMode = defaultDeclMode;
11300 ;
11301 }
11302 break;
11303 case 1149:
11304 {
11305 structDeclMode = defaultDeclMode;
11306 ;
11307 }
11308 break;
11309 case 1150:
11310 {
11311 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11312 yyval.declaration->loc = (yyloc);
11313 structDeclMode = defaultDeclMode;
11314 ;
11315 }
11316 break;
11317 case 1151:
11318 {
11319 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11320 yyval.declaration->loc = (yyloc);
11321 structDeclMode = defaultDeclMode;
11322 ;
11323 }
11324 break;
11325 case 1152:
11326 {
11327 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11328 yyval.declaration->loc = (yyloc);
11329 structDeclMode = defaultDeclMode;
11330 ;
11331 }
11332 break;
11333 case 1153:
11334 {
11335 yyval.list = MkList();
11336 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11337 ;
11338 }
11339 break;
11340 case 1154:
11341 {
11342 yyval.list = yyvsp[(1) - (2)].list;
11343 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11344 ;
11345 }
11346 break;
11347 case 1155:
11348 {
11349 yyval.list = yyvsp[(1) - (2)].list;
11350 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11351 ;
11352 }
11353 break;
11354 case 1156:
11355 {
11356 yyval.list = yyvsp[(1) - (3)].list;
11357 ;
11358 }
11359 break;
11360 case 1157:
11361 {
11362 yyval.list = MkList();
11363 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11364 ;
11365 }
11366 break;
11367 case 1158:
11368 {
11369 yyval.list = yyvsp[(1) - (2)].list;
11370 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11371 ;
11372 }
11373 break;
11374 case 1159:
11375 {
11376 yyval.list = MkList();
11377 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11378 ;
11379 }
11380 break;
11381 case 1160:
11382 {
11383 yyval.list = yyvsp[(1) - (2)].list;
11384 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11385 ;
11386 }
11387 break;
11388 case 1161:
11389 {
11390 yyval.list = yyvsp[(1) - (2)].list;
11391 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11392 ;
11393 }
11394 break;
11395 case 1162:
11396 {
11397 yyval.list = MkList();
11398 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11399 ;
11400 }
11401 break;
11402 case 1163:
11403 {
11404 yyval.list = yyvsp[(1) - (2)].list;
11405 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11406 ;
11407 }
11408 break;
11409 case 1164:
11410 {
11411 yyval.list = yyvsp[(1) - (2)].list;
11412 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11413 ;
11414 }
11415 break;
11416 case 1165:
11417 {
11418 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11419
11420 stmt->loc = (yylsp[(2) - (2)]);
11421 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11422 yyval.list = yyvsp[(1) - (2)].list;
11423 ListAdd(yyvsp[(1) - (2)].list, stmt);
11424 ;
11425 }
11426 break;
11427 case 1166:
11428 {
11429 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11430
11431 stmt->loc = (yylsp[(2) - (2)]);
11432 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11433 yyval.list = yyvsp[(1) - (2)].list;
11434 ListAdd(yyvsp[(1) - (2)].list, stmt);
11435 ;
11436 }
11437 break;
11438 case 1167:
11439 {
11440 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11441
11442 stmt->loc = (yylsp[(2) - (2)]);
11443 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11444 yyval.list = yyvsp[(1) - (2)].list;
11445 ListAdd(yyvsp[(1) - (2)].list, stmt);
11446 ;
11447 }
11448 break;
11449 case 1168:
11450 {
11451 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11452
11453 stmt->loc = (yylsp[(2) - (2)]);
11454 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11455 yyval.list = yyvsp[(1) - (2)].list;
11456 ListAdd(yyvsp[(1) - (2)].list, stmt);
11457 ;
11458 }
11459 break;
11460 case 1169:
11461 {
11462 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11463 ;
11464 }
11465 break;
11466 case 1170:
11467 {
11468 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11469 ;
11470 }
11471 break;
11472 case 1171:
11473 {
11474 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11475 ;
11476 }
11477 break;
11478 case 1172:
11479 {
11480 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11481 ;
11482 }
11483 break;
11484 case 1173:
11485 {
11486 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11487 ;
11488 }
11489 break;
11490 case 1174:
11491 {
11492 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11493 ;
11494 }
11495 break;
11496 case 1175:
11497 {
11498 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11499 ;
11500 }
11501 break;
11502 case 1176:
11503 {
11504 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11505 ;
11506 }
11507 break;
11508 case 1177:
11509 {
11510 yyval.context = PushContext();
11511 ;
11512 }
11513 break;
11514 case 1178:
11515 {
11516 yyval.stmt = yyvsp[(1) - (2)].stmt;
11517 yyval.stmt->loc = (yyloc);
11518 ;
11519 }
11520 break;
11521 case 1179:
11522 {
11523 yyval.stmt = yyvsp[(2) - (2)].stmt;
11524 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11525 PopContext(yyvsp[(1) - (2)].context);
11526 yyval.stmt->loc = (yyloc);
11527 yyval.stmt->loc.end.charPos++;
11528 yyval.stmt->loc.end.pos++;
11529 ;
11530 }
11531 break;
11532 case 1180:
11533 {
11534 yyval.stmt = MkCompoundStmt((((void *)0)), (((void *)0)));
11535 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (1)].context;
11536 PopContext(yyvsp[(1) - (1)].context);
11537 yyval.stmt->loc = (yyloc);
11538 yyval.stmt->loc.end.charPos++;
11539 yyval.stmt->loc.end.pos++;
11540 ;
11541 }
11542 break;
11543 case 1181:
11544 {
11545 yyval.stmt = yyvsp[(2) - (2)].stmt;
11546 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11547 PopContext(yyvsp[(1) - (2)].context);
11548 yyval.stmt->loc = (yyloc);
11549 yyval.stmt->loc.end.charPos++;
11550 yyval.stmt->loc.end.pos++;
11551 ;
11552 }
11553 break;
11554 case 1182:
11555 {
11556 yyval.stmt = MkExpressionStmt((((void *)0)));
11557 yyval.stmt->loc = (yyloc);
11558 ;
11559 }
11560 break;
11561 case 1183:
11562 {
11563 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11564 yyval.stmt->loc = (yyloc);
11565 ;
11566 }
11567 break;
11568 case 1184:
11569 {
11570 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11571 yyval.stmt->loc = (yyloc);
11572 ;
11573 }
11574 break;
11575 case 1185:
11576 {
11577 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11578 yyval.stmt->loc = (yyloc);
11579 ;
11580 }
11581 break;
11582 case 1186:
11583 {
11584 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11585 yyval.stmt->loc = (yyloc);
11586 ;
11587 }
11588 break;
11589 case 1187:
11590 {
11591 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11592 yyval.stmt->loc = (yyloc);
11593 ;
11594 }
11595 break;
11596 case 1188:
11597 {
11598 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11599 yyval.stmt->loc = (yyloc);
11600 ;
11601 }
11602 break;
11603 case 1189:
11604 {
11605 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11606 yyval.stmt->loc = (yyloc);
11607 ;
11608 }
11609 break;
11610 case 1190:
11611 {
11612 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11613 yyval.stmt->loc = (yyloc);
11614 ;
11615 }
11616 break;
11617 case 1191:
11618 {
11619 yyval.stmt = MkIfStmt(yyvsp[(3) - (3)].list, (((void *)0)), (((void *)0)));
11620 yyval.stmt->loc = (yyloc);
11621 ;
11622 }
11623 break;
11624 case 1193:
11625 {
11626 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11627 yyval.stmt->loc = (yyloc);
11628 ;
11629 }
11630 break;
11631 case 1194:
11632 {
11633 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11634 yyval.stmt->loc = (yyloc);
11635 ;
11636 }
11637 break;
11638 case 1195:
11639 {
11640 yyerror();
11641 yyval.stmt = MkWhileStmt((((void *)0)), yyvsp[(4) - (4)].stmt);
11642 yyval.stmt->loc = (yyloc);
11643 ;
11644 }
11645 break;
11646 case 1196:
11647 {
11648 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (7)].stmt, yyvsp[(5) - (7)].list);
11649 yyval.stmt->loc = (yyloc);
11650 ;
11651 }
11652 break;
11653 case 1197:
11654 {
11655 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11656 yyval.stmt->loc = (yyloc);
11657 ;
11658 }
11659 break;
11660 case 1198:
11661 {
11662 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11663 yyval.stmt->loc = (yyloc);
11664 ;
11665 }
11666 break;
11667 case 1199:
11668 {
11669 yyerror();
11670 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, (((void *)0)), (((void *)0)), yyvsp[(5) - (5)].stmt);
11671 yyval.stmt->loc = (yyloc);
11672 ;
11673 }
11674 break;
11675 case 1200:
11676 {
11677 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11678 yyval.stmt->loc = (yyloc);
11679 ;
11680 }
11681 break;
11682 case 1201:
11683 {
11684 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11685 yyval.stmt->loc = (yyloc);
11686 ;
11687 }
11688 break;
11689 case 1202:
11690 {
11691 yyerror();
11692 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), yyvsp[(4) - (4)].stmt);
11693 yyval.stmt->loc = (yyloc);
11694 ;
11695 }
11696 break;
11697 case 1203:
11698 {
11699 yyval.stmt = MkForEachStmt(yyvsp[(3) - (7)].id, yyvsp[(5) - (7)].list, (((void *)0)), yyvsp[(7) - (7)].stmt);
11700 yyval.stmt->loc = (yyloc);
11701 ;
11702 }
11703 break;
11704 case 1204:
11705 {
11706 yyval.stmt = MkForEachStmt(yyvsp[(3) - (9)].id, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, yyvsp[(9) - (9)].stmt);
11707 yyval.stmt->loc = (yyloc);
11708 ;
11709 }
11710 break;
11711 case 1205:
11712 {
11713 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
11714 yyval.stmt->loc = (yyloc);
11715 ;
11716 }
11717 break;
11718 case 1206:
11719 {
11720 yyval.stmt = MkForStmt(MkExpressionStmt(yyvsp[(3) - (4)].list), (((void *)0)), (((void *)0)), (((void *)0)));
11721 yyval.stmt->__anon1.forStmt.init->loc = (yylsp[(3) - (4)]);
11722 yyval.stmt->loc = (yyloc);
11723 ;
11724 }
11725 break;
11726 case 1207:
11727 {
11728 yyval.stmt = MkForStmt(yyvsp[(3) - (4)].stmt, (((void *)0)), (((void *)0)), (((void *)0)));
11729 yyval.stmt->loc = (yyloc);
11730 ;
11731 }
11732 break;
11733 case 1208:
11734 {
11735 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, MkExpressionStmt(yyvsp[(4) - (5)].list), (((void *)0)), (((void *)0)));
11736 yyval.stmt->loc = (yyloc);
11737 yyval.stmt->__anon1.forStmt.check->loc = (yylsp[(4) - (5)]);
11738 ;
11739 }
11740 break;
11741 case 1209:
11742 {
11743 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, yyvsp[(4) - (5)].stmt, yyvsp[(5) - (5)].list, (((void *)0)));
11744 yyval.stmt->loc = (yyloc);
11745 ;
11746 }
11747 break;
11748 case 1210:
11749 {
11750 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11751 yyval.stmt->loc = (yyloc);
11752 ;
11753 }
11754 break;
11755 case 1211:
11756 {
11757 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11758 yyval.stmt->loc = (yyloc);
11759 ;
11760 }
11761 break;
11762 case 1212:
11763 {
11764 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11765 yyval.stmt->loc = (yyloc);
11766 ;
11767 }
11768 break;
11769 case 1213:
11770 {
11771 yyerror();
11772 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11773 yyval.stmt->loc = (yyloc);
11774 ;
11775 }
11776 break;
11777 case 1214:
11778 {
11779 yyerror();
11780 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11781 yyval.stmt->loc = (yyloc);
11782 ;
11783 }
11784 break;
11785 case 1215:
11786 {
11787 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11788 yyval.stmt->loc = (yyloc);
11789 ;
11790 }
11791 break;
11792 case 1216:
11793 {
11794 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (4)].stmt, (((void *)0)));
11795 yyval.stmt->loc = (yyloc);
11796 ;
11797 }
11798 break;
11799 case 1217:
11800 {
11801 yyerror();
11802 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (3)].stmt, (((void *)0)));
11803 yyval.stmt->loc = (yyloc);
11804 ;
11805 }
11806 break;
11807 case 1218:
11808 {
11809 yyerror();
11810 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (2)].stmt, (((void *)0)));
11811 yyval.stmt->loc = (yyloc);
11812 ;
11813 }
11814 break;
11815 case 1219:
11816 {
11817 yyerror();
11818 yyval.stmt = MkDoWhileStmt((((void *)0)), (((void *)0)));
11819 yyval.stmt->loc = (yyloc);
11820 ;
11821 }
11822 break;
11823 case 1220:
11824 {
11825 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11826 yyval.stmt->loc = (yyloc);
11827 ;
11828 }
11829 break;
11830 case 1221:
11831 {
11832 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11833 yyval.stmt->loc = (yyloc);
11834 ;
11835 }
11836 break;
11837 case 1222:
11838 {
11839 yyval.stmt = MkWhileStmt(yyvsp[(3) - (3)].list, (((void *)0)));
11840 yyval.stmt->loc = (yyloc);
11841 ;
11842 }
11843 break;
11844 case 1223:
11845 {
11846 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11847 yyval.stmt->loc = (yyloc);
11848 ;
11849 }
11850 break;
11851 case 1224:
11852 {
11853 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11854 yyval.stmt->loc = (yyloc);
11855 ;
11856 }
11857 break;
11858 case 1225:
11859 {
11860 yyval.stmt = MkGotoStmt(yyvsp[(2) - (3)].id);
11861 yyval.stmt->loc = (yyloc);
11862 ;
11863 }
11864 break;
11865 case 1226:
11866 {
11867 yyval.stmt = MkContinueStmt();
11868 yyval.stmt->loc = (yyloc);
11869 ;
11870 }
11871 break;
11872 case 1227:
11873 {
11874 yyval.stmt = MkBreakStmt();
11875 yyval.stmt->loc = (yyloc);
11876 ;
11877 }
11878 break;
11879 case 1228:
11880 {
11881 struct Expression * exp = MkExpDummy();
11882
11883 yyval.stmt = MkReturnStmt(MkListOne(exp));
11884 yyval.stmt->loc = (yyloc);
11885 exp->loc = (yylsp[(2) - (2)]);
11886 ;
11887 }
11888 break;
11889 case 1229:
11890 {
11891 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
11892 yyval.stmt->loc = (yyloc);
11893 ;
11894 }
11895 break;
11896 case 1230:
11897 {
11898 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
11899 yyval.stmt->loc = (yyloc);
11900 ;
11901 }
11902 break;
11903 case 1231:
11904 {
11905 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
11906 yyval.stmt->loc = (yyloc);
11907 ;
11908 }
11909 break;
11910 case 1232:
11911 {
11912 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
11913 yyval.stmt->loc = (yyloc);
11914 ;
11915 }
11916 break;
11917 case 1233:
11918 {
11919 yyval.stmt = MkReturnStmt(yyvsp[(2) - (2)].list);
11920 yyval.stmt->loc = (yyloc);
11921 ;
11922 }
11923 break;
11924 case 1234:
11925 {
11926 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (2)].exp));
11927 yyval.stmt->loc = (yyloc);
11928 ;
11929 }
11930 break;
11931 case 1235:
11932 {
11933 struct Expression * exp = MkExpDummy();
11934
11935 yyval.stmt = MkReturnStmt(MkListOne(exp));
11936 yyval.stmt->loc = (yyloc);
11937 exp->loc.start = exp->loc.end = (yylsp[(1) - (1)]).end;
11938 ;
11939 }
11940 break;
11941 case 1236:
11942 {
11943 yyval.stmt = MkGotoStmt((((void *)0)));
11944 yyval.stmt->loc = (yyloc);
11945 ;
11946 }
11947 break;
11948 case 1237:
11949 {
11950 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
11951 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
11952 yyval.function->loc = (yyloc);
11953 ;
11954 }
11955 break;
11956 case 1238:
11957 {
11958 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
11959 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
11960 yyval.function->loc = (yyloc);
11961 ;
11962 }
11963 break;
11964 case 1239:
11965 {
11966 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
11967 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
11968 yyval.function->loc = (yyloc);
11969 ;
11970 }
11971 break;
11972 case 1240:
11973 {
11974 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
11975 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
11976 yyval.function->loc = (yyloc);
11977 ;
11978 }
11979 break;
11980 case 1241:
11981 {
11982 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
11983 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
11984 yyval.function->loc = (yyloc);
11985 ;
11986 }
11987 break;
11988 case 1242:
11989 {
11990 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
11991 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
11992 yyval.function->loc = (yyloc);
11993 ;
11994 }
11995 break;
11996 case 1243:
11997 {
11998 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
11999 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12000 yyval.function->loc = (yyloc);
12001 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12002 ;
12003 }
12004 break;
12005 case 1244:
12006 {
12007 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12008 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12009 yyval.function->loc = (yyloc);
12010 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12011 ;
12012 }
12013 break;
12014 case 1245:
12015 {
12016 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12017 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12018 yyval.function->loc = (yyloc);
12019 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12020 ;
12021 }
12022 break;
12023 case 1246:
12024 {
12025 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12026 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12027 yyval.function->loc = (yyloc);
12028 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12029 ;
12030 }
12031 break;
12032 case 1247:
12033 {
12034 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
12035 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12036 yyval.function->loc = (yyloc);
12037 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12038 ;
12039 }
12040 break;
12041 case 1248:
12042 {
12043 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
12044 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
12045 yyval.function->loc = (yyloc);
12046 yyval.function->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
12047 ;
12048 }
12049 break;
12050 case 1249:
12051 {
12052 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
12053 ;
12054 }
12055 break;
12056 case 1250:
12057 {
12058 int len1 = strlen(yyvsp[(1) - (2)].string);
12059 int len2 = strlen(yytext);
12060
12061 yyval.string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len1 - 1 + len2 - 1 + 1));
12062 memcpy(yyval.string, yyvsp[(1) - (2)].string, len1 - 1);
12063 memcpy(yyval.string + len1 - 1, yytext + 1, len2);
12064 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(1) - (2)].string), yyvsp[(1) - (2)].string = 0);
12065 ;
12066 }
12067 break;
12068 case 1251:
12069 {
12070 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12071 yyval.external->loc = (yyloc);
12072 yyvsp[(1) - (1)].function->declMode = declMode;
12073 structDeclMode = declMode = defaultDeclMode;
12074 ;
12075 }
12076 break;
12077 case 1252:
12078 {
12079 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12080 yyval.external->loc = (yyloc);
12081 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12082 structDeclMode = declMode = defaultDeclMode;
12083 ;
12084 }
12085 break;
12086 case 1253:
12087 {
12088 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12089 yyval.external->loc = (yyloc);
12090 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12091 structDeclMode = declMode = defaultDeclMode;
12092 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12093 ;
12094 }
12095 break;
12096 case 1254:
12097 {
12098 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12099 yyval.external->loc = (yyloc);
12100 yyvsp[(1) - (1)].declaration->declMode = declMode;
12101 structDeclMode = declMode = defaultDeclMode;
12102 ;
12103 }
12104 break;
12105 case 1255:
12106 {
12107 yyval.external = MkExternalImport(yyvsp[(2) - (2)].string, 0, (declMode != 0) ? declMode : 2);
12108 yyval.external->loc = (yyloc);
12109 ;
12110 }
12111 break;
12112 case 1256:
12113 {
12114 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 1, (declMode != 0) ? declMode : 2);
12115 yyval.external->loc = (yyloc);
12116 ;
12117 }
12118 break;
12119 case 1257:
12120 {
12121 unsigned int isRemote = !strcmp(yyvsp[(2) - (3)].id->string, "remote");
12122
12123 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, isRemote ? 2 : 0, (declMode != 0) ? declMode : 2);
12124 yyval.external->loc = (yyloc);
12125 FreeIdentifier(yyvsp[(2) - (3)].id);
12126 if(!isRemote)
12127 yyerror();
12128 ;
12129 }
12130 break;
12131 case 1258:
12132 {
12133 yyval.external = (((void *)0));
12134 ;
12135 }
12136 break;
12137 case 1259:
12138 {
12139 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12140 yyval.external->loc = (yyloc);
12141 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12142 structDeclMode = declMode = defaultDeclMode;
12143 ;
12144 }
12145 break;
12146 case 1260:
12147 {
12148 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12149 yyval.external->loc = (yyloc);
12150 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12151 structDeclMode = declMode = defaultDeclMode;
12152 ;
12153 }
12154 break;
12155 case 1261:
12156 {
12157 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12158 yyval.external->loc = (yyloc);
12159 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12160 structDeclMode = declMode = defaultDeclMode;
12161 ;
12162 }
12163 break;
12164 case 1262:
12165 {
12166 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 0, (yyvsp[(1) - (3)].declMode != 0) ? yyvsp[(1) - (3)].declMode : 2);
12167 yyval.external->loc = (yyloc);
12168 structDeclMode = declMode = defaultDeclMode;
12169 ;
12170 }
12171 break;
12172 case 1263:
12173 {
12174 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, 1, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12175 yyval.external->loc = (yyloc);
12176 structDeclMode = declMode = defaultDeclMode;
12177 ;
12178 }
12179 break;
12180 case 1264:
12181 {
12182 unsigned int isRemote = !strcmp(yyvsp[(3) - (4)].id->string, "remote");
12183
12184 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, isRemote ? 2 : 0, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12185 yyval.external->loc = (yyloc);
12186 FreeIdentifier(yyvsp[(3) - (4)].id);
12187 structDeclMode = declMode = defaultDeclMode;
12188 if(!isRemote)
12189 yyerror();
12190 ;
12191 }
12192 break;
12193 case 1265:
12194 {
12195 defaultDeclMode = yyvsp[(1) - (2)].declMode;
12196 yyval.external = (((void *)0));
12197 ;
12198 }
12199 break;
12200 case 1266:
12201 {
12202 defaultDeclMode = 3;
12203 yyval.external = (((void *)0));
12204 ;
12205 }
12206 break;
12207 case 1267:
12208 {
12209 yyval.external = MkExternalNameSpace(yyvsp[(2) - (2)].id);
12210 yyval.external->loc = (yyloc);
12211 ;
12212 }
12213 break;
12214 case 1268:
12215 {
12216 yyval.external = MkExternalNameSpace(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name));
12217 FreeSpecifier(yyvsp[(2) - (2)].specifier);
12218 yyval.external->loc = (yyloc);
12219 ;
12220 }
12221 break;
12222 case 1269:
12223 {
12224 yyval.external = MkExternalDBTable(yyvsp[(1) - (1)].dbtableDef);
12225 yyval.external->loc = (yyloc);
12226 yyvsp[(1) - (1)].dbtableDef->declMode = (declMode != 0) ? declMode : 2;
12227 structDeclMode = declMode = defaultDeclMode;
12228 ;
12229 }
12230 break;
12231 case 1270:
12232 {
12233 yyval.external = MkExternalDBTable(yyvsp[(2) - (2)].dbtableDef);
12234 yyval.external->loc = (yyloc);
12235 yyvsp[(2) - (2)].dbtableDef->declMode = (yyvsp[(1) - (2)].declMode != 0) ? declMode : 2;
12236 structDeclMode = declMode = defaultDeclMode;
12237 ;
12238 }
12239 break;
12240 case 1271:
12241 {
12242 yyerror();
12243 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12244 yyval.external->loc = yyvsp[(1) - (1)]._class->loc;
12245 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12246 structDeclMode = declMode = defaultDeclMode;
12247 ;
12248 }
12249 break;
12250 case 1272:
12251 {
12252 yyerror();
12253 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12254 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12255 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12256 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12257 structDeclMode = declMode = defaultDeclMode;
12258 ;
12259 }
12260 break;
12261 case 1273:
12262 {
12263 yyerror();
12264 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12265 yyval.external->loc = yyvsp[(1) - (1)].function->loc;
12266 yyvsp[(1) - (1)].function->declMode = declMode;
12267 structDeclMode = declMode = defaultDeclMode;
12268 ;
12269 }
12270 break;
12271 case 1274:
12272 {
12273 yyerror();
12274 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12275 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12276 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12277 structDeclMode = declMode = defaultDeclMode;
12278 ;
12279 }
12280 break;
12281 case 1275:
12282 {
12283 yyerror();
12284 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12285 yyval.external->loc = yyvsp[(2) - (2)].function->loc;
12286 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12287 structDeclMode = declMode = defaultDeclMode;
12288 ;
12289 }
12290 break;
12291 case 1276:
12292 {
12293 yyerror();
12294 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12295 yyval.external->loc = (yyloc);
12296 yyvsp[(1) - (1)].declaration->declMode = declMode;
12297 structDeclMode = declMode = defaultDeclMode;
12298 ;
12299 }
12300 break;
12301 case 1277:
12302 {
12303 yyerror();
12304 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12305 yyval.external->loc = (yyloc);
12306 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12307 structDeclMode = declMode = defaultDeclMode;
12308 ;
12309 }
12310 break;
12311 case 1278:
12312 {
12313 yyval.list = MkList();
12314 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12315 ast = yyval.list;
12316 ;
12317 }
12318 break;
12319 case 1279:
12320 {
12321 yyval.list = yyvsp[(1) - (2)].list;
12322 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12323 ;
12324 }
12325 break;
12326 case 1280:
12327 {
12328 yyval.list = yyvsp[(1) - (2)].list;
12329 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12330 ;
12331 }
12332 break;
12333 case 1283:
12334 {
12335 yyval.list = MkList();
12336 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12337 ast = yyval.list;
12338 ;
12339 }
12340 break;
12341 case 1284:
12342 {
12343 yyval.list = yyvsp[(1) - (2)].list;
12344 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12345 ;
12346 }
12347 break;
12348 case 1285:
12349 {
12350 struct External * _class = MkExternalClass(yyvsp[(2) - (2)]._class);
12351
12352 yyval.list = yyvsp[(1) - (2)].list;
12353 ListAdd(yyvsp[(1) - (2)].list, _class);
12354 _class->loc = (yylsp[(2) - (2)]);
12355 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12356 structDeclMode = declMode = defaultDeclMode;
12357 ;
12358 }
12359 break;
12360 case 1286:
12361 {
12362 struct External * _class = MkExternalClass(yyvsp[(3) - (3)]._class);
12363
12364 yyval.list = yyvsp[(1) - (3)].list;
12365 ListAdd(yyvsp[(1) - (3)].list, _class);
12366 _class->loc = (yylsp[(3) - (3)]);
12367 yyvsp[(3) - (3)]._class->declMode = (yyvsp[(2) - (3)].declMode != 0) ? yyvsp[(2) - (3)].declMode : 2;
12368 structDeclMode = declMode = defaultDeclMode;
12369 ;
12370 }
12371 break;
12372 case 1289:
12373 {
12374 ast = MkList();
12375 ;
12376 }
12377 break;
12378 case 1290:
12379 {
12380 struct Symbol * symbol = DeclClassAddNameSpace(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
12381
12382 FreeIdentifier(yyvsp[(3) - (6)].id);
12383 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12384 ;
12385 }
12386 break;
12387 case 1291:
12388 {
12389 struct Symbol * symbol = DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
12390
12391 FreeSpecifier(yyvsp[(3) - (6)].specifier);
12392 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12393 ;
12394 }
12395 break;
12396 case 1292:
12397 {
12398 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (5)].string, (((void *)0)), yyvsp[(4) - (5)].list);
12399 ;
12400 }
12401 break;
12402 case 1293:
12403 {
12404 yyval.dbtableEntry = MkDBFieldEntry(MkTypeName(yyvsp[(1) - (4)].list, (((void *)0))), yyvsp[(2) - (4)].id, yyvsp[(3) - (4)].string);
12405 ;
12406 }
12407 break;
12408 case 1294:
12409 {
12410 yyval.dbindexItem = MkDBIndexItem(yyvsp[(1) - (1)].id, 0);
12411 ;
12412 }
12413 break;
12414 case 1295:
12415 {
12416 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 1);
12417 ;
12418 }
12419 break;
12420 case 1296:
12421 {
12422 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 0);
12423 ;
12424 }
12425 break;
12426 case 1297:
12427 {
12428 yyval.list = MkList();
12429 ListAdd(yyval.list, yyvsp[(1) - (1)].dbindexItem);
12430 ;
12431 }
12432 break;
12433 case 1298:
12434 {
12435 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].dbindexItem);
12436 ;
12437 }
12438 break;
12439 case 1299:
12440 {
12441 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (3)].list, (((void *)0)));
12442 ;
12443 }
12444 break;
12445 case 1300:
12446 {
12447 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].id);
12448 ;
12449 }
12450 break;
12451 case 1301:
12452 {
12453 yyval.list = MkList();
12454 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12455 ;
12456 }
12457 break;
12458 case 1302:
12459 {
12460 yyval.list = MkList();
12461 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12462 ;
12463 }
12464 break;
12465 case 1303:
12466 {
12467 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12468 ;
12469 }
12470 break;
12471 case 1304:
12472 {
12473 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12474 ;
12475 }
12476 break;
12477 case 1305:
12478 {
12479 yyval.exp = MkExpDBOpen(yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].exp);
12480 ;
12481 }
12482 break;
12483 case 1306:
12484 {
12485 yyval.exp = MkExpDBField(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12486 ;
12487 }
12488 break;
12489 case 1307:
12490 {
12491 yyval.exp = MkExpDBIndex(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12492 ;
12493 }
12494 break;
12495 case 1308:
12496 {
12497 yyval.exp = MkExpDBTable(yyvsp[(3) - (4)].string);
12498 ;
12499 }
12500 break;
12501 default:
12502 break;
12503 }
12504 do
12505 {
12506 if(yydebug)
12507 {
12508 fprintf((bsl_stderr()), "%s ", "-> $$ =");
12509 yy_symbol_print((bsl_stderr()), yyr1[yyn], &yyval, &yyloc);
12510 fprintf((bsl_stderr()), "\n");
12511 }
12512 }while((0));
12513 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12514 yylen = 0;
12515 do
12516 {
12517 if(yydebug)
12518 yy_stack_print((yyss), (yyssp));
12519 }while((0));
12520 *++yyvsp = yyval;
12521 *++yylsp = yyloc;
12522 yyn = yyr1[yyn];
12523 yystate = yypgoto[yyn - 144] + *yyssp;
12524 if(0 <= yystate && yystate <= 41266 && yycheck[yystate] == *yyssp)
12525 yystate = yytable[yystate];
12526 else
12527 yystate = yydefgoto[yyn - 144];
12528 goto yynewstate;
12529 yyerrlab:
12530 if(!yyerrstatus)
12531 {
12532 ++yynerrs;
12533 yyerror("syntax error");
12534 }
12535 yyerror_range[0] = yylloc;
12536 if(yyerrstatus == 3)
12537 {
12538 if(yychar <= 0)
12539 {
12540 if(yychar == 0)
12541 goto yyabortlab;
12542 }
12543 else
12544 {
12545 yydestruct("Error: discarding", yytoken, &yylval, &yylloc);
12546 yychar = (-2);
12547 }
12548 }
12549 goto yyerrlab1;
12550 yyerrorlab:
12551 if(0)
12552 goto yyerrorlab;
12553 yyerror_range[0] = yylsp[1 - yylen];
12554 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12555 yylen = 0;
12556 do
12557 {
12558 if(yydebug)
12559 yy_stack_print((yyss), (yyssp));
12560 }while((0));
12561 yystate = *yyssp;
12562 goto yyerrlab1;
12563 yyerrlab1:
12564 yyerrstatus = 3;
12565 for(; ; )
12566 {
12567 yyn = yypact[yystate];
12568 if(yyn != -1980)
12569 {
12570 yyn += 1;
12571 if(0 <= yyn && yyn <= 41266 && yycheck[yyn] == 1)
12572 {
12573 yyn = yytable[yyn];
12574 if(0 < yyn)
12575 break;
12576 }
12577 }
12578 if(yyssp == yyss)
12579 goto yyabortlab;
12580 yyerror_range[0] = *yylsp;
12581 yydestruct("Error: popping", yystos[yystate], yyvsp, yylsp);
12582 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12583 yystate = *yyssp;
12584 do
12585 {
12586 if(yydebug)
12587 yy_stack_print((yyss), (yyssp));
12588 }while((0));
12589 }
12590 *++yyvsp = yylval;
12591 yyerror_range[1] = yylloc;
12592 (yyloc.start = ((yyerror_range - 1))[1].start);
12593 (yyloc.end = ((yyerror_range - 1))[2].end);
12594 ;
12595 *++yylsp = yyloc;
12596 do
12597 {
12598 if(yydebug)
12599 {
12600 fprintf((bsl_stderr()), "%s ", "Shifting");
12601 yy_symbol_print((bsl_stderr()), yystos[yyn], yyvsp, yylsp);
12602 fprintf((bsl_stderr()), "\n");
12603 }
12604 }while((0));
12605 yystate = yyn;
12606 goto yynewstate;
12607 yyacceptlab:
12608 yyresult = 0;
12609 goto yyreturn;
12610 yyabortlab:
12611 yyresult = 1;
12612 goto yyreturn;
12613 yyexhaustedlab:
12614 yyerror("memory exhausted");
12615 yyresult = 2;
12616 yyreturn:
12617 if(yychar != (-2))
12618 yydestruct("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
12619 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12620 do
12621 {
12622 if(yydebug)
12623 yy_stack_print((yyss), (yyssp));
12624 }while((0));
12625 while(yyssp != yyss)
12626 {
12627 yydestruct("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp);
12628 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12629 }
12630 if(yyss != yyssa)
12631 free(yyss);
12632 return (yyresult);
12633 }
12634