/* A Bison parser, made from sql_yacc.yy by GNU Bison version 1.25 */ #define YYBISON 1 /* Identify Bison output. */ #define END_OF_INPUT 258 #define EQ 259 #define GE 260 #define GT_SYM 261 #define LE 262 #define LT 263 #define NE 264 #define IS 265 #define SHIFT_LEFT 266 #define SHIFT_RIGHT 267 #define AVG_SUM 268 #define COUNT_SUM 269 #define MAX_SUM 270 #define MIN_SUM 271 #define SUM_SUM 272 #define STD_SUM 273 #define ADD 274 #define ALTER 275 #define AFTER_SYM 276 #define CHANGE 277 #define CREATE 278 #define CROSS 279 #define DELETE_SYM 280 #define DROP 281 #define INSERT 282 #define FLUSH_SYM 283 #define SELECT_SYM 284 #define OPTIMIZE 285 #define SHOW 286 #define UPDATE_SYM 287 #define KILL_SYM 288 #define LOAD 289 #define LOCK_SYM 290 #define UNLOCK_SYM 291 #define ACTION 292 #define ALL 293 #define AS 294 #define DISTINCT 295 #define STRAIGHT_JOIN 296 #define AND 297 #define ASC 298 #define BIT_SYM 299 #define BOTH 300 #define BOOL_SYM 301 #define BY 302 #define CASCADE 303 #define CONSTRAINT 304 #define CHECK_SYM 305 #define DATA_SYM 306 #define DATABASES 307 #define DEFAULT 308 #define DESC 309 #define DESCRIBE 310 #define COLUMN_SYM 311 #define COLUMNS 312 #define ENCLOSED 313 #define ESCAPED 314 #define ESCAPE_SYM 315 #define EXISTS 316 #define FOREIGN 317 #define HEAP_SYM 318 #define ISAM_SYM 319 #define GET_LOCK 320 #define KEYS 321 #define FIND_IN_SET 322 #define FIRST_SYM 323 #define FULL 324 #define FROM 325 #define GRANT 326 #define GLOBAL_SYM 327 #define GREATEST_SYM 328 #define GROUP 329 #define HOSTS_SYM 330 #define IGNORE_SYM 331 #define INDEX 332 #define INFILE 333 #define INTO 334 #define IN_SYM 335 #define IF 336 #define JOIN_SYM 337 #define LEADING 338 #define LEAST_SYM 339 #define LOCAL_SYM 340 #define LONG_SYM 341 #define LOGS_SYM 342 #define LIKE 343 #define LINES 344 #define MYISAM_SYM 345 #define PARTIAL 346 #define PRIVILEGES 347 #define READ_SYM 348 #define RELEASE_LOCK 349 #define REGEXP 350 #define RENAME 351 #define RESTRICT 352 #define REFERENCES 353 #define LOW_PRIORITY 354 #define HIGH_PRIORITY 355 #define MATCH 356 #define NATURAL 357 #define NO_SYM 358 #define NOT 359 #define NULL_SYM 360 #define ON 361 #define OPTION 362 #define OPTIONALLY 363 #define OR 364 #define ORDER_SYM 365 #define OUTER 366 #define OUTFILE 367 #define PROCESSLIST_SYM 368 #define ROW_SYM 369 #define ROWS_SYM 370 #define HAVING 371 #define SET 372 #define STARTING 373 #define STATUS_SYM 374 #define USING 375 #define TABLES 376 #define TABLE_SYM 377 #define TERMINATED 378 #define TRAILING 379 #define TO_SYM 380 #define TYPE_SYM 381 #define VALUES 382 #define VARIABLES 383 #define UDF_SYM 384 #define UDF_RETURNS_SYM 385 #define UDF_SONAME_SYM 386 #define USAGE 387 #define USE_SYM 388 #define WITH 389 #define WRITE_SYM 390 #define WHERE 391 #define REVOKE 392 #define RELOAD 393 #define SHUTDOWN 394 #define FILE_SYM 395 #define PROCESS 396 #define KEY_SYM 397 #define PRIMARY_SYM 398 #define UNIQUE_SYM 399 #define AUTO_INC 400 #define BINARY 401 #define IDENT 402 #define NUM 403 #define LONG_NUM 404 #define REAL_NUM 405 #define TEXT_STRING 406 #define HEX_NUM 407 #define LEX_HOSTNAME 408 #define CHAR_SYM 409 #define VARYING 410 #define VARBINARY 411 #define INT_SYM 412 #define REAL 413 #define SMALLINT 414 #define BIGINT 415 #define VARCHAR 416 #define BLOB_SYM 417 #define TEXT_SYM 418 #define TINYBLOB 419 #define TINYTEXT 420 #define MEDIUMBLOB 421 #define MEDIUMTEXT 422 #define LONGBLOB 423 #define LONGTEXT 424 #define TIMESTAMP 425 #define DATETIME 426 #define DATE_SYM 427 #define TIME_SYM 428 #define TINYINT 429 #define MEDIUMINT 430 #define FLOAT_SYM 431 #define DOUBLE_SYM 432 #define DECIMAL_SYM 433 #define NUMERIC_SYM 434 #define ENUM 435 #define ZEROFILL 436 #define UNSIGNED 437 #define PRECISION 438 #define LIMIT 439 #define STRING_SYM 440 #define ABS 441 #define ACOS 442 #define ASCII 443 #define ASIN 444 #define ATAN 445 #define BETWEEN_SYM 446 #define BIN 447 #define BIT_AND 448 #define BIT_COUNT 449 #define BIT_OR 450 #define CEILING 451 #define CONCAT 452 #define CONV 453 #define COS 454 #define COT 455 #define CURDATE 456 #define CURTIME 457 #define DATABASE 458 #define DATE_FORMAT_SYM 459 #define DATE_ADD_INTERVAL 460 #define DATE_SUB_INTERVAL 461 #define DAYNAME 462 #define DEGREES 463 #define YEAR_SYM 464 #define MONTH_SYM 465 #define MONTH_NAME_SYM 466 #define DAY_SYM 467 #define HOUR_SYM 468 #define MINUTE_SYM 469 #define SECOND_SYM 470 #define YEAR_MONTH_SYM 471 #define DAY_HOUR_SYM 472 #define DAY_MINUTE_SYM 473 #define DAY_SECOND_SYM 474 #define DAY_OF_WEEK 475 #define DAY_OF_MONTH 476 #define DAY_OF_YEAR 477 #define DECODE_SYM 478 #define HOUR_MINUTE_SYM 479 #define HOUR_SECOND_SYM 480 #define MINUTE_SECOND_SYM 481 #define ELT_FUNC 482 #define ENCODE_SYM 483 #define ENCRYPT 484 #define EXP 485 #define FIELD_FUNC 486 #define FLOOR 487 #define FOR_SYM 488 #define FORMAT 489 #define FROM_DAYS 490 #define FROM_UNIXTIME 491 #define GROUP_UNIQUE_USERS 492 #define HEX 493 #define IDENTIFIED_SYM 494 #define IFNULL 495 #define INSERT_ID 496 #define INSTR 497 #define INTERVAL_SYM 498 #define ISNULL 499 #define LAST_INSERT_ID 500 #define LCASE 501 #define LEFT 502 #define LENGTH 503 #define LOCATE 504 #define LOG 505 #define LOG10 506 #define LPAD 507 #define LTRIM 508 #define MAKE_SET_SYM 509 #define MOD_SYM 510 #define NOW_SYM 511 #define OCT 512 #define PASSWORD 513 #define PERIOD_ADD 514 #define PERIOD_DIFF 515 #define PI_SYM 516 #define POSITION_SYM 517 #define POW 518 #define PROCEDURE 519 #define QUARTER 520 #define RAND 521 #define RADIANS 522 #define REPEAT 523 #define REPLACE 524 #define REVERSE 525 #define RIGHT 526 #define ROUND 527 #define RPAD 528 #define RTRIM 529 #define SEC_TO_TIME 530 #define SIGN 531 #define SIN 532 #define SOUNDEX 533 #define SPACE 534 #define SQRT 535 #define STRCMP 536 #define SUBSTRING 537 #define SUBSTRING_INDEX 538 #define TAN 539 #define TIME_TO_SEC 540 #define TIME_FORMAT_SYM 541 #define TO_DAYS 542 #define TRIM 543 #define TRUNCATE 544 #define UCASE 545 #define UNIQUE_USERS 546 #define UNIX_TIMESTAMP 547 #define USER 548 #define VERSION_SYM 549 #define WEEK_SYM 550 #define WEEKDAY 551 #define UDF_CHAR_FUNC 552 #define UDF_FLOAT_FUNC 553 #define UDF_INT_FUNC 554 #define SQL_BIG_TABLES 555 #define SQL_BIG_SELECTS 556 #define SQL_SELECT_LIMIT 557 #define SQL_LOG_OFF 558 #define SQL_LOG_UPDATE 559 #define SQL_LOW_PRIORITY_UPDATES 560 #define SQL_SMALL_RESULT 561 #define SQL_WARNINGS 562 #define NEG 563 #line 17 "sql_yacc.yy" #define MYSQL_YACC #define YYINITDEPTH 100 #define YYMAXDEPTH 3200 /* Because of 64K stack */ #define Lex current_lex #include "mysql_priv.h" #include "sql_acl.h" #ifndef M_PI #define M_PI 3.14159265358979323846 #endif extern void yyerror(char*); int yylex(void *yylval); #define yyoverflow(A,B,C,D,E,F) if (my_yyoverflow((B),(D),(F))) { yyerror(A); return 2; } #line 35 "sql_yacc.yy" typedef union { int num; ulong ulong_num; ulonglong ulonglong_num; LEX_STRING lex_str; LEX_STRING *lex_str_ptr; Table_ident *table; char *simple_string; Item *item; List *item_list; Key::Keytype key_type; enum db_type db_type; String *string; key_part_spec *key_part; TABLE_LIST *table_list; udf_func *udf; interval_type interval; LEX_USER *lex_user; } YYSTYPE; #line 55 "sql_yacc.yy" bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 1718 #define YYFLAG -32768 #define YYNTBASE 325 #define YYTRANSLATE(x) ((unsigned)(x) <= 563 ? yytranslate[x] : 534) static const short yytranslate[] = { 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, 319, 2, 2, 2, 314, 309, 2, 316, 317, 312, 311, 318, 310, 323, 313, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 320, 2, 2, 2, 2, 2, 324, 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, 321, 308, 322, 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, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 315 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 2, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 46, 55, 56, 67, 71, 72, 81, 82, 84, 86, 89, 92, 97, 103, 105, 107, 109, 111, 113, 115, 117, 121, 123, 126, 132, 140, 145, 146, 149, 150, 155, 159, 163, 167, 169, 171, 177, 180, 185, 191, 196, 200, 202, 204, 206, 211, 213, 215, 217, 219, 221, 224, 227, 229, 231, 233, 235, 243, 251, 252, 258, 259, 265, 268, 270, 272, 274, 276, 278, 280, 282, 284, 287, 288, 292, 298, 299, 301, 304, 306, 308, 310, 311, 315, 316, 322, 323, 325, 328, 330, 332, 335, 338, 340, 343, 344, 346, 350, 357, 358, 360, 363, 365, 369, 373, 376, 379, 381, 383, 386, 389, 392, 396, 398, 401, 403, 405, 407, 409, 410, 412, 417, 420, 422, 427, 428, 430, 432, 436, 437, 444, 446, 450, 451, 457, 458, 464, 469, 473, 478, 482, 489, 495, 499, 501, 502, 504, 505, 507, 508, 510, 512, 513, 516, 518, 522, 523, 529, 530, 532, 535, 538, 547, 548, 550, 553, 555, 557, 559, 561, 563, 565, 569, 571, 573, 578, 579, 580, 582, 584, 585, 588, 591, 593, 595, 601, 608, 614, 621, 625, 629, 634, 640, 644, 649, 653, 658, 662, 666, 670, 674, 678, 682, 686, 690, 694, 698, 702, 706, 710, 714, 718, 724, 731, 735, 739, 744, 750, 754, 759, 763, 768, 772, 776, 780, 784, 788, 792, 796, 800, 804, 808, 812, 816, 820, 824, 828, 830, 836, 843, 849, 856, 860, 865, 871, 875, 880, 884, 889, 893, 897, 901, 905, 909, 913, 917, 921, 925, 929, 933, 937, 941, 945, 949, 951, 953, 955, 957, 960, 963, 966, 970, 975, 980, 985, 990, 995, 1000, 1007, 1012, 1017, 1022, 1027, 1032, 1041, 1046, 1051, 1053, 1057, 1059, 1063, 1068, 1072, 1081, 1088, 1097, 1102, 1107, 1112, 1117, 1122, 1129, 1136, 1141, 1148, 1155, 1162, 1167, 1174, 1181, 1186, 1193, 1198, 1203, 1210, 1217, 1222, 1227, 1236, 1243, 1254, 1261, 1268, 1273, 1277, 1282, 1287, 1294, 1299, 1306, 1315, 1320, 1325, 1334, 1339, 1346, 1353, 1358, 1365, 1370, 1375, 1377, 1381, 1386, 1391, 1396, 1403, 1410, 1414, 1421, 1428, 1433, 1438, 1443, 1447, 1452, 1459, 1468, 1473, 1480, 1485, 1492, 1501, 1506, 1511, 1516, 1521, 1526, 1531, 1536, 1541, 1548, 1557, 1564, 1573, 1580, 1589, 1594, 1601, 1606, 1611, 1616, 1624, 1632, 1640, 1647, 1654, 1659, 1664, 1669, 1674, 1685, 1689, 1694, 1698, 1702, 1707, 1714, 1719, 1724, 1725, 1727, 1732, 1737, 1742, 1747, 1752, 1763, 1768, 1773, 1778, 1783, 1784, 1787, 1788, 1791, 1793, 1797, 1798, 1800, 1804, 1806, 1810, 1814, 1818, 1823, 1831, 1832, 1843, 1850, 1853, 1864, 1865, 1867, 1869, 1873, 1875, 1877, 1879, 1881, 1883, 1885, 1887, 1889, 1891, 1893, 1895, 1897, 1899, 1900, 1902, 1904, 1905, 1908, 1909, 1912, 1913, 1914, 1918, 1921, 1922, 1923, 1927, 1932, 1935, 1936, 1940, 1945, 1948, 1949, 1951, 1953, 1954, 1957, 1962, 1963, 1966, 1968, 1970, 1972, 1974, 1976, 1977, 1978, 1985, 1989, 1991, 1994, 1995, 2002, 2007, 2008, 2015, 2020, 2024, 2026, 2030, 2032, 2033, 2036, 2037, 2044, 2045, 2051, 2052, 2054, 2057, 2059, 2061, 2064, 2065, 2069, 2070, 2074, 2078, 2080, 2083, 2084, 2090, 2094, 2096, 2100, 2102, 2106, 2107, 2112, 2116, 2118, 2125, 2131, 2135, 2142, 2143, 2147, 2150, 2154, 2160, 2165, 2167, 2169, 2172, 2173, 2176, 2177, 2180, 2181, 2186, 2189, 2191, 2193, 2194, 2196, 2198, 2199, 2203, 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2222, 2225, 2226, 2241, 2242, 2244, 2245, 2247, 2249, 2250, 2253, 2256, 2258, 2262, 2267, 2271, 2275, 2276, 2279, 2282, 2284, 2288, 2292, 2293, 2297, 2299, 2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2321, 2324, 2327, 2329, 2331, 2335, 2341, 2343, 2345, 2347, 2349, 2351, 2353, 2355, 2359, 2364, 2370, 2372, 2376, 2379, 2381, 2385, 2388, 2390, 2392, 2394, 2396, 2398, 2400, 2404, 2406, 2408, 2410, 2412, 2414, 2416, 2418, 2420, 2422, 2424, 2426, 2428, 2430, 2432, 2434, 2436, 2438, 2440, 2442, 2444, 2446, 2448, 2450, 2452, 2454, 2456, 2458, 2460, 2462, 2464, 2466, 2468, 2470, 2472, 2474, 2476, 2478, 2480, 2482, 2484, 2486, 2488, 2490, 2491, 2496, 2497, 2499, 2501, 2505, 2509, 2513, 2517, 2521, 2525, 2529, 2533, 2537, 2541, 2545, 2551, 2553, 2558, 2560, 2562, 2564, 2566, 2568, 2570, 2571, 2576, 2578, 2580, 2582, 2586, 2590, 2592, 2594, 2597, 2600, 2601, 2610, 2611, 2621, 2622, 2624, 2626, 2629, 2631, 2633, 2637, 2638, 2642, 2643, 2647, 2648, 2652, 2654, 2655, 2659, 2661, 2663, 2665, 2667, 2669, 2671, 2673, 2675, 2677, 2680, 2682, 2686, 2690, 2692, 2694, 2698, 2703, 2705, 2706, 2710, 2714, 2716, 2718, 2719 }; static const short yyrhs[] = { 3, 0, 326, 3, 0, 370, 0, 327, 0, 460, 0, 466, 0, 434, 0, 517, 0, 439, 0, 470, 0, 476, 0, 508, 0, 474, 0, 380, 0, 441, 0, 515, 0, 381, 0, 501, 0, 461, 0, 514, 0, 458, 0, 475, 0, 0, 23, 122, 496, 328, 316, 336, 317, 331, 0, 0, 23, 365, 77, 497, 106, 496, 329, 316, 366, 317, 0, 23, 203, 497, 0, 0, 23, 129, 497, 330, 130, 335, 131, 151, 0, 0, 332, 0, 333, 0, 333, 332, 0, 126, 334, 0, 15, 115, 4, 427, 0, 13, 114, 248, 4, 426, 0, 64, 0, 90, 0, 63, 0, 185, 0, 158, 0, 157, 0, 337, 0, 336, 318, 337, 0, 339, 0, 339, 357, 0, 362, 368, 316, 366, 317, 0, 338, 62, 142, 316, 366, 317, 357, 0, 50, 316, 394, 317, 0, 0, 49, 368, 0, 0, 495, 340, 341, 353, 0, 345, 351, 348, 0, 346, 352, 348, 0, 176, 347, 348, 0, 44, 0, 46, 0, 154, 316, 148, 317, 356, 0, 154, 356, 0, 146, 316, 148, 317, 0, 344, 316, 148, 317, 356, 0, 156, 316, 148, 317, 0, 209, 351, 348, 0, 172, 0, 173, 0, 170, 0, 170, 316, 148, 317, 0, 171, 0, 164, 0, 162, 0, 166, 0, 168, 0, 86, 156, 0, 86, 344, 0, 165, 0, 163, 0, 167, 0, 169, 0, 178, 316, 148, 318, 148, 317, 348, 0, 179, 316, 148, 318, 148, 317, 348, 0, 0, 180, 342, 316, 369, 317, 0, 0, 117, 343, 316, 369, 317, 0, 154, 155, 0, 161, 0, 157, 0, 174, 0, 159, 0, 175, 0, 160, 0, 158, 0, 177, 0, 177, 183, 0, 0, 316, 148, 317, 0, 316, 148, 318, 148, 317, 0, 0, 349, 0, 349, 350, 0, 350, 0, 182, 0, 181, 0, 0, 316, 148, 317, 0, 0, 316, 148, 318, 148, 317, 0, 0, 354, 0, 354, 355, 0, 355, 0, 105, 0, 104, 105, 0, 53, 489, 0, 145, 0, 143, 142, 0, 0, 146, 0, 98, 496, 358, 0, 98, 496, 316, 366, 317, 358, 0, 0, 359, 0, 359, 360, 0, 360, 0, 106, 25, 361, 0, 106, 32, 361, 0, 101, 69, 0, 101, 91, 0, 97, 0, 48, 0, 117, 105, 0, 103, 37, 0, 117, 53, 0, 338, 143, 142, 0, 363, 0, 338, 144, 0, 142, 0, 77, 0, 66, 0, 77, 0, 0, 144, 0, 366, 318, 367, 423, 0, 367, 423, 0, 497, 0, 497, 316, 148, 317, 0, 0, 497, 0, 488, 0, 369, 318, 488, 0, 0, 20, 377, 122, 496, 371, 372, 0, 373, 0, 372, 318, 373, 0, 0, 19, 376, 374, 337, 379, 0, 0, 22, 376, 497, 375, 339, 0, 26, 376, 497, 378, 0, 26, 143, 142, 0, 26, 62, 142, 368, 0, 26, 363, 497, 0, 20, 376, 497, 117, 53, 489, 0, 20, 376, 497, 26, 53, 0, 96, 413, 496, 0, 333, 0, 0, 56, 0, 0, 76, 0, 0, 97, 0, 48, 0, 0, 21, 497, 0, 68, 0, 30, 122, 496, 0, 0, 29, 382, 385, 388, 383, 0, 0, 384, 0, 432, 384, 0, 384, 432, 0, 70, 407, 415, 419, 416, 421, 424, 428, 0, 0, 386, 0, 386, 387, 0, 387, 0, 41, 0, 100, 0, 40, 0, 306, 0, 38, 0, 388, 318, 389, 0, 389, 0, 312, 0, 390, 392, 391, 393, 0, 0, 0, 491, 0, 394, 0, 0, 39, 497, 0, 39, 151, 0, 395, 0, 398, 0, 394, 80, 316, 403, 317, 0, 394, 104, 80, 316, 403, 317, 0, 394, 191, 397, 42, 394, 0, 394, 104, 191, 397, 42, 394, 0, 394, 109, 394, 0, 394, 42, 394, 0, 394, 88, 398, 418, 0, 394, 104, 88, 398, 418, 0, 394, 95, 394, 0, 394, 104, 95, 394, 0, 394, 10, 105, 0, 394, 10, 104, 105, 0, 394, 4, 394, 0, 394, 5, 394, 0, 394, 6, 394, 0, 394, 7, 394, 0, 394, 8, 394, 0, 394, 9, 394, 0, 394, 11, 394, 0, 394, 12, 394, 0, 394, 311, 394, 0, 394, 310, 394, 0, 394, 312, 394, 0, 394, 313, 394, 0, 394, 308, 394, 0, 394, 309, 394, 0, 394, 314, 394, 0, 396, 191, 397, 42, 394, 0, 396, 104, 191, 397, 42, 394, 0, 396, 109, 394, 0, 396, 42, 394, 0, 396, 88, 398, 418, 0, 396, 104, 88, 398, 418, 0, 396, 95, 394, 0, 396, 104, 95, 394, 0, 396, 10, 105, 0, 396, 10, 104, 105, 0, 396, 4, 394, 0, 396, 5, 394, 0, 396, 6, 394, 0, 396, 7, 394, 0, 396, 8, 394, 0, 396, 9, 394, 0, 396, 11, 394, 0, 396, 12, 394, 0, 396, 311, 394, 0, 396, 310, 394, 0, 396, 312, 394, 0, 396, 313, 394, 0, 396, 308, 394, 0, 396, 309, 394, 0, 396, 314, 394, 0, 398, 0, 397, 80, 316, 403, 317, 0, 397, 104, 80, 316, 403, 317, 0, 397, 191, 397, 42, 394, 0, 397, 104, 191, 397, 42, 394, 0, 397, 109, 394, 0, 397, 88, 398, 418, 0, 397, 104, 88, 398, 418, 0, 397, 95, 394, 0, 397, 104, 95, 394, 0, 397, 10, 105, 0, 397, 10, 104, 105, 0, 397, 4, 394, 0, 397, 5, 394, 0, 397, 6, 394, 0, 397, 7, 394, 0, 397, 8, 394, 0, 397, 9, 394, 0, 397, 11, 394, 0, 397, 12, 394, 0, 397, 311, 394, 0, 397, 310, 394, 0, 397, 312, 394, 0, 397, 313, 394, 0, 397, 308, 394, 0, 397, 309, 394, 0, 397, 314, 394, 0, 398, 0, 494, 0, 489, 0, 400, 0, 310, 394, 0, 104, 394, 0, 319, 394, 0, 316, 394, 317, 0, 321, 497, 394, 322, 0, 186, 316, 394, 317, 0, 187, 316, 394, 317, 0, 188, 316, 394, 317, 0, 189, 316, 394, 317, 0, 190, 316, 394, 317, 0, 190, 316, 394, 318, 394, 317, 0, 192, 316, 394, 317, 0, 194, 316, 394, 317, 0, 196, 316, 394, 317, 0, 154, 316, 403, 317, 0, 197, 316, 403, 317, 0, 198, 316, 394, 318, 394, 318, 394, 317, 0, 199, 316, 394, 317, 0, 200, 316, 394, 317, 0, 201, 0, 201, 316, 317, 0, 202, 0, 202, 316, 317, 0, 202, 316, 394, 317, 0, 203, 316, 317, 0, 205, 316, 394, 318, 243, 394, 412, 317, 0, 204, 316, 394, 318, 394, 317, 0, 206, 316, 394, 318, 243, 394, 412, 317, 0, 221, 316, 394, 317, 0, 220, 316, 394, 317, 0, 222, 316, 394, 317, 0, 207, 316, 394, 317, 0, 208, 316, 394, 317, 0, 227, 316, 394, 318, 403, 317, 0, 254, 316, 394, 318, 403, 317, 0, 229, 316, 394, 317, 0, 229, 316, 394, 318, 394, 317, 0, 223, 316, 394, 318, 151, 317, 0, 228, 316, 394, 318, 151, 317, 0, 230, 316, 394, 317, 0, 231, 316, 394, 318, 403, 317, 0, 67, 316, 394, 318, 394, 317, 0, 232, 316, 394, 317, 0, 234, 316, 394, 318, 148, 317, 0, 235, 316, 394, 317, 0, 236, 316, 394, 317, 0, 236, 316, 394, 318, 394, 317, 0, 65, 316, 394, 318, 394, 317, 0, 238, 316, 394, 317, 0, 213, 316, 394, 317, 0, 81, 316, 394, 318, 394, 318, 394, 317, 0, 240, 316, 394, 318, 394, 317, 0, 27, 316, 394, 318, 394, 318, 394, 318, 394, 317, 0, 242, 316, 394, 318, 394, 317, 0, 243, 316, 394, 318, 403, 317, 0, 244, 316, 394, 317, 0, 245, 316, 317, 0, 245, 316, 394, 317, 0, 246, 316, 394, 317, 0, 247, 316, 394, 318, 394, 317, 0, 248, 316, 394, 317, 0, 249, 316, 394, 318, 394, 317, 0, 249, 316, 394, 318, 394, 318, 394, 317, 0, 250, 316, 394, 317, 0, 251, 316, 394, 317, 0, 252, 316, 394, 318, 394, 318, 394, 317, 0, 253, 316, 394, 317, 0, 73, 316, 394, 318, 403, 317, 0, 84, 316, 394, 318, 403, 317, 0, 214, 316, 394, 317, 0, 255, 316, 394, 318, 394, 317, 0, 211, 316, 394, 317, 0, 210, 316, 394, 317, 0, 256, 0, 256, 316, 317, 0, 256, 316, 394, 317, 0, 257, 316, 394, 317, 0, 258, 316, 394, 317, 0, 259, 316, 394, 318, 394, 317, 0, 260, 316, 394, 318, 394, 317, 0, 261, 316, 317, 0, 262, 316, 396, 80, 394, 317, 0, 263, 316, 394, 318, 394, 317, 0, 265, 316, 394, 317, 0, 267, 316, 394, 317, 0, 266, 316, 394, 317, 0, 266, 316, 317, 0, 94, 316, 394, 317, 0, 268, 316, 394, 318, 394, 317, 0, 269, 316, 394, 318, 394, 318, 394, 317, 0, 270, 316, 394, 317, 0, 271, 316, 394, 318, 394, 317, 0, 272, 316, 394, 317, 0, 272, 316, 394, 318, 394, 317, 0, 273, 316, 394, 318, 394, 318, 394, 317, 0, 274, 316, 394, 317, 0, 275, 316, 394, 317, 0, 215, 316, 394, 317, 0, 276, 316, 394, 317, 0, 277, 316, 394, 317, 0, 279, 316, 394, 317, 0, 278, 316, 394, 317, 0, 280, 316, 394, 317, 0, 281, 316, 394, 318, 394, 317, 0, 282, 316, 394, 318, 394, 318, 394, 317, 0, 282, 316, 394, 318, 394, 317, 0, 282, 316, 394, 70, 394, 233, 394, 317, 0, 282, 316, 394, 70, 394, 317, 0, 283, 316, 394, 318, 394, 318, 394, 317, 0, 284, 316, 394, 317, 0, 286, 316, 394, 318, 394, 317, 0, 285, 316, 394, 317, 0, 287, 316, 394, 317, 0, 288, 316, 394, 317, 0, 288, 316, 83, 406, 70, 394, 317, 0, 288, 316, 124, 406, 70, 394, 317, 0, 288, 316, 45, 406, 70, 394, 317, 0, 288, 316, 394, 70, 394, 317, 0, 289, 316, 394, 318, 394, 317, 0, 290, 316, 394, 317, 0, 297, 316, 399, 317, 0, 298, 316, 399, 317, 0, 299, 316, 399, 317, 0, 291, 316, 487, 318, 148, 318, 148, 318, 403, 317, 0, 292, 316, 317, 0, 292, 316, 394, 317, 0, 293, 316, 317, 0, 294, 316, 317, 0, 295, 316, 394, 317, 0, 295, 316, 394, 318, 394, 317, 0, 296, 316, 394, 317, 0, 209, 316, 394, 317, 0, 0, 403, 0, 13, 316, 401, 317, 0, 193, 316, 401, 317, 0, 195, 316, 401, 317, 0, 14, 316, 312, 317, 0, 14, 316, 401, 317, 0, 237, 316, 487, 318, 148, 318, 148, 318, 401, 317, 0, 16, 316, 401, 317, 0, 15, 316, 401, 317, 0, 18, 316, 401, 317, 0, 17, 316, 401, 317, 0, 0, 402, 394, 0, 0, 404, 405, 0, 394, 0, 405, 318, 394, 0, 0, 394, 0, 316, 407, 317, 0, 409, 0, 407, 318, 409, 0, 407, 82, 409, 0, 407, 41, 409, 0, 407, 24, 82, 409, 0, 407, 247, 410, 82, 409, 106, 394, 0, 0, 407, 247, 410, 82, 409, 408, 120, 316, 411, 317, 0, 407, 102, 247, 410, 82, 409, 0, 496, 414, 0, 321, 497, 409, 247, 111, 82, 409, 106, 394, 322, 0, 0, 111, 0, 497, 0, 411, 318, 497, 0, 217, 0, 218, 0, 219, 0, 212, 0, 224, 0, 225, 0, 213, 0, 226, 0, 214, 0, 210, 0, 215, 0, 216, 0, 209, 0, 0, 39, 0, 4, 0, 0, 413, 497, 0, 0, 136, 394, 0, 0, 0, 116, 417, 394, 0, 60, 151, 0, 0, 0, 74, 47, 420, 0, 420, 318, 492, 423, 0, 492, 423, 0, 0, 110, 47, 422, 0, 422, 318, 493, 423, 0, 493, 423, 0, 0, 43, 0, 54, 0, 0, 184, 426, 0, 184, 426, 318, 426, 0, 0, 184, 427, 0, 148, 0, 150, 0, 148, 0, 149, 0, 150, 0, 0, 0, 264, 497, 429, 316, 430, 317, 0, 430, 318, 431, 0, 431, 0, 390, 394, 0, 0, 79, 112, 151, 433, 480, 483, 0, 26, 122, 438, 436, 0, 0, 26, 77, 497, 106, 496, 435, 0, 26, 203, 438, 497, 0, 26, 129, 497, 0, 437, 0, 436, 318, 437, 0, 496, 0, 0, 81, 61, 0, 0, 27, 440, 443, 377, 444, 446, 0, 0, 269, 442, 443, 444, 446, 0, 0, 99, 0, 79, 445, 0, 445, 0, 437, 0, 448, 450, 0, 0, 117, 447, 453, 0, 0, 316, 449, 317, 0, 449, 318, 490, 0, 490, 0, 127, 452, 0, 0, 29, 451, 385, 388, 384, 0, 452, 318, 455, 0, 455, 0, 453, 318, 454, 0, 454, 0, 494, 4, 394, 0, 0, 316, 456, 457, 317, 0, 457, 318, 394, 0, 394, 0, 32, 443, 437, 117, 459, 415, 0, 459, 318, 494, 4, 394, 0, 494, 4, 394, 0, 25, 443, 70, 437, 415, 425, 0, 0, 31, 462, 463, 0, 52, 465, 0, 121, 464, 465, 0, 57, 70, 496, 464, 465, 0, 364, 70, 496, 464, 0, 119, 0, 113, 0, 128, 465, 0, 0, 70, 497, 0, 0, 88, 488, 0, 0, 468, 496, 467, 469, 0, 468, 381, 0, 54, 0, 55, 0, 0, 488, 0, 497, 0, 0, 28, 471, 472, 0, 472, 318, 473, 0, 473, 0, 121, 0, 75, 0, 92, 0, 87, 0, 119, 0, 33, 148, 0, 133, 497, 0, 0, 34, 51, 478, 78, 151, 477, 479, 79, 122, 496, 480, 483, 486, 448, 0, 0, 85, 0, 0, 269, 0, 76, 0, 0, 57, 481, 0, 481, 482, 0, 482, 0, 123, 47, 488, 0, 108, 58, 47, 488, 0, 58, 47, 488, 0, 59, 47, 488, 0, 0, 89, 484, 0, 484, 485, 0, 485, 0, 123, 47, 488, 0, 118, 47, 488, 0, 0, 76, 148, 89, 0, 151, 0, 487, 151, 0, 151, 0, 152, 0, 487, 0, 148, 0, 149, 0, 150, 0, 105, 0, 152, 0, 172, 487, 0, 173, 487, 0, 170, 487, 0, 494, 0, 491, 0, 497, 323, 312, 0, 497, 323, 497, 323, 312, 0, 494, 0, 148, 0, 487, 0, 494, 0, 148, 0, 487, 0, 497, 0, 497, 323, 497, 0, 323, 497, 323, 497, 0, 497, 323, 497, 323, 497, 0, 497, 0, 497, 323, 497, 0, 323, 497, 0, 497, 0, 497, 323, 497, 0, 323, 497, 0, 147, 0, 500, 0, 497, 0, 151, 0, 153, 0, 498, 0, 498, 324, 498, 0, 173, 0, 172, 0, 170, 0, 163, 0, 44, 0, 180, 0, 103, 0, 37, 0, 50, 0, 209, 0, 210, 0, 212, 0, 213, 0, 214, 0, 113, 0, 215, 0, 119, 0, 128, 0, 129, 0, 185, 0, 258, 0, 46, 0, 21, 0, 68, 0, 85, 0, 114, 0, 115, 0, 13, 0, 15, 0, 126, 0, 63, 0, 64, 0, 90, 0, 60, 0, 87, 0, 75, 0, 28, 0, 138, 0, 139, 0, 140, 0, 141, 0, 239, 0, 72, 0, 0, 117, 503, 502, 504, 0, 0, 107, 0, 505, 0, 504, 318, 505, 0, 507, 4, 148, 0, 302, 4, 426, 0, 302, 4, 53, 0, 170, 4, 426, 0, 170, 4, 53, 0, 245, 4, 427, 0, 241, 4, 427, 0, 154, 117, 147, 0, 154, 117, 53, 0, 258, 4, 506, 0, 258, 233, 499, 4, 506, 0, 151, 0, 258, 316, 151, 317, 0, 300, 0, 301, 0, 303, 0, 304, 0, 307, 0, 305, 0, 0, 35, 510, 509, 511, 0, 122, 0, 121, 0, 512, 0, 511, 318, 512, 0, 496, 414, 513, 0, 93, 0, 135, 0, 99, 135, 0, 36, 510, 0, 0, 137, 516, 519, 520, 106, 527, 70, 528, 0, 0, 71, 518, 519, 520, 106, 527, 125, 528, 533, 0, 0, 72, 0, 521, 0, 38, 92, 0, 38, 0, 522, 0, 521, 318, 522, 0, 0, 29, 523, 530, 0, 0, 27, 524, 530, 0, 0, 32, 525, 530, 0, 25, 0, 0, 98, 526, 530, 0, 132, 0, 77, 0, 20, 0, 23, 0, 26, 0, 138, 0, 139, 0, 141, 0, 140, 0, 71, 107, 0, 312, 0, 497, 323, 312, 0, 312, 323, 312, 0, 496, 0, 529, 0, 528, 318, 529, 0, 499, 239, 47, 151, 0, 499, 0, 0, 316, 531, 317, 0, 531, 318, 532, 0, 532, 0, 497, 0, 0, 134, 71, 107, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 467, 474, 476, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 500, 511, 512, 522, 527, 532, 538, 544, 546, 548, 550, 552, 554, 555, 557, 559, 560, 562, 564, 565, 567, 569, 572, 574, 578, 583, 587, 592, 594, 596, 602, 612, 614, 615, 616, 618, 620, 622, 624, 627, 629, 632, 633, 634, 635, 636, 638, 639, 641, 643, 645, 647, 649, 650, 651, 652, 653, 654, 657, 660, 660, 666, 666, 673, 675, 677, 679, 680, 681, 682, 684, 686, 687, 690, 692, 693, 695, 697, 699, 701, 703, 705, 707, 709, 711, 713, 715, 717, 719, 721, 723, 725, 726, 727, 728, 730, 732, 734, 736, 741, 743, 745, 747, 750, 752, 753, 754, 756, 758, 759, 760, 761, 763, 765, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 800, 817, 817, 819, 822, 823, 824, 825, 825, 828, 829, 830, 833, 835, 837, 839, 841, 843, 845, 847, 849, 851, 852, 854, 856, 857, 859, 872, 883, 885, 887, 888, 889, 891, 895, 897, 899, 901, 903, 905, 906, 907, 908, 910, 912, 913, 920, 931, 934, 937, 939, 941, 943, 944, 947, 948, 951, 954, 956, 958, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 985, 988, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1016, 1019, 1021, 1023, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1049, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1061, 1063, 1065, 1067, 1069, 1072, 1073, 1074, 1076, 1078, 1080, 1082, 1085, 1087, 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1118, 1119, 1121, 1123, 1124, 1126, 1128, 1129, 1131, 1133, 1135, 1139, 1141, 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, 1163, 1167, 1168, 1170, 1171, 1173, 1175, 1176, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195, 1197, 1199, 1202, 1203, 1205, 1207, 1209, 1211, 1213, 1215, 1217, 1218, 1219, 1223, 1225, 1227, 1228, 1230, 1232, 1233, 1235, 1237, 1239, 1241, 1242, 1244, 1246, 1248, 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1263, 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1279, 1280, 1281, 1288, 1295, 1302, 1304, 1306, 1308, 1310, 1313, 1315, 1317, 1319, 1322, 1324, 1326, 1329, 1331, 1333, 1335, 1337, 1339, 1341, 1343, 1345, 1348, 1351, 1356, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1372, 1373, 1374, 1375, 1376, 1378, 1381, 1383, 1386, 1389, 1392, 1394, 1396, 1401, 1407, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1422, 1424, 1425, 1427, 1429, 1433, 1435, 1437, 1439, 1440, 1442, 1444, 1451, 1453, 1455, 1458, 1465, 1467, 1469, 1472, 1475, 1477, 1478, 1481, 1487, 1489, 1492, 1497, 1500, 1502, 1504, 1506, 1507, 1509, 1511, 1520, 1523, 1525, 1527, 1536, 1542, 1548, 1554, 1555, 1563, 1569, 1576, 1578, 1580, 1584, 1586, 1592, 1593, 1595, 1596, 1599, 1601, 1603, 1605, 1607, 1615, 1617, 1625, 1625, 1627, 1629, 1631, 1633, 1635, 1645, 1647, 1649, 1651, 1653, 1656, 1664, 1670, 1676, 1682, 1690, 1694, 1700, 1709, 1716, 1718, 1718, 1721, 1723, 1731, 1739, 1741, 1743, 1746, 1748, 1750, 1752, 1755, 1764, 1764, 1767, 1769, 1771, 1773, 1774, 1779, 1782, 1782, 1784, 1786, 1788, 1789, 1790, 1791, 1796, 1805, 1810, 1818, 1825, 1827, 1829, 1831, 1832, 1834, 1836, 1838, 1840, 1842, 1844, 1846, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1868, 1870, 1873, 1875, 1881, 1883, 1884, 1885, 1886, 1888, 1889, 1890, 1891, 1897, 1899, 1901, 1903, 1906, 1908, 1909, 1911, 1913, 1914, 1916, 1919, 1921, 1923, 1927, 1929, 1930, 1932, 1934, 1935, 1937, 1939, 1947, 1949, 1950, 1952, 1959, 1968, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2015, 2024, 2024, 2026, 2028, 2030, 2032, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2074, 2078, 2084, 2092, 2094, 2106, 2108, 2109, 2110, 2111, 2112, 2116, 2123, 2123, 2125, 2127, 2129, 2131, 2135, 2137, 2138, 2140, 2146, 2155, 2157, 2166, 2169, 2171, 2173, 2175, 2176, 2178, 2180, 2182, 2186, 2186, 2189, 2189, 2192, 2192, 2193, 2194, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2205, 2217, 2228, 2239, 2248, 2250, 2253, 2255, 2258, 2260, 2262, 2264, 2266, 2284, 2286 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","END_OF_INPUT", "EQ","GE","GT_SYM","LE","LT","NE","IS","SHIFT_LEFT","SHIFT_RIGHT","AVG_SUM", "COUNT_SUM","MAX_SUM","MIN_SUM","SUM_SUM","STD_SUM","ADD","ALTER","AFTER_SYM", "CHANGE","CREATE","CROSS","DELETE_SYM","DROP","INSERT","FLUSH_SYM","SELECT_SYM", "OPTIMIZE","SHOW","UPDATE_SYM","KILL_SYM","LOAD","LOCK_SYM","UNLOCK_SYM","ACTION", "ALL","AS","DISTINCT","STRAIGHT_JOIN","AND","ASC","BIT_SYM","BOTH","BOOL_SYM", "BY","CASCADE","CONSTRAINT","CHECK_SYM","DATA_SYM","DATABASES","DEFAULT","DESC", "DESCRIBE","COLUMN_SYM","COLUMNS","ENCLOSED","ESCAPED","ESCAPE_SYM","EXISTS", "FOREIGN","HEAP_SYM","ISAM_SYM","GET_LOCK","KEYS","FIND_IN_SET","FIRST_SYM", "FULL","FROM","GRANT","GLOBAL_SYM","GREATEST_SYM","GROUP","HOSTS_SYM","IGNORE_SYM", "INDEX","INFILE","INTO","IN_SYM","IF","JOIN_SYM","LEADING","LEAST_SYM","LOCAL_SYM", "LONG_SYM","LOGS_SYM","LIKE","LINES","MYISAM_SYM","PARTIAL","PRIVILEGES","READ_SYM", "RELEASE_LOCK","REGEXP","RENAME","RESTRICT","REFERENCES","LOW_PRIORITY","HIGH_PRIORITY", "MATCH","NATURAL","NO_SYM","NOT","NULL_SYM","ON","OPTION","OPTIONALLY","OR", "ORDER_SYM","OUTER","OUTFILE","PROCESSLIST_SYM","ROW_SYM","ROWS_SYM","HAVING", "SET","STARTING","STATUS_SYM","USING","TABLES","TABLE_SYM","TERMINATED","TRAILING", "TO_SYM","TYPE_SYM","VALUES","VARIABLES","UDF_SYM","UDF_RETURNS_SYM","UDF_SONAME_SYM", "USAGE","USE_SYM","WITH","WRITE_SYM","WHERE","REVOKE","RELOAD","SHUTDOWN","FILE_SYM", "PROCESS","KEY_SYM","PRIMARY_SYM","UNIQUE_SYM","AUTO_INC","BINARY","IDENT","NUM", "LONG_NUM","REAL_NUM","TEXT_STRING","HEX_NUM","LEX_HOSTNAME","CHAR_SYM","VARYING", "VARBINARY","INT_SYM","REAL","SMALLINT","BIGINT","VARCHAR","BLOB_SYM","TEXT_SYM", "TINYBLOB","TINYTEXT","MEDIUMBLOB","MEDIUMTEXT","LONGBLOB","LONGTEXT","TIMESTAMP", "DATETIME","DATE_SYM","TIME_SYM","TINYINT","MEDIUMINT","FLOAT_SYM","DOUBLE_SYM", "DECIMAL_SYM","NUMERIC_SYM","ENUM","ZEROFILL","UNSIGNED","PRECISION","LIMIT", "STRING_SYM","ABS","ACOS","ASCII","ASIN","ATAN","BETWEEN_SYM","BIN","BIT_AND", "BIT_COUNT","BIT_OR","CEILING","CONCAT","CONV","COS","COT","CURDATE","CURTIME", "DATABASE","DATE_FORMAT_SYM","DATE_ADD_INTERVAL","DATE_SUB_INTERVAL","DAYNAME", "DEGREES","YEAR_SYM","MONTH_SYM","MONTH_NAME_SYM","DAY_SYM","HOUR_SYM","MINUTE_SYM", "SECOND_SYM","YEAR_MONTH_SYM","DAY_HOUR_SYM","DAY_MINUTE_SYM","DAY_SECOND_SYM", "DAY_OF_WEEK","DAY_OF_MONTH","DAY_OF_YEAR","DECODE_SYM","HOUR_MINUTE_SYM","HOUR_SECOND_SYM", "MINUTE_SECOND_SYM","ELT_FUNC","ENCODE_SYM","ENCRYPT","EXP","FIELD_FUNC","FLOOR", "FOR_SYM","FORMAT","FROM_DAYS","FROM_UNIXTIME","GROUP_UNIQUE_USERS","HEX","IDENTIFIED_SYM", "IFNULL","INSERT_ID","INSTR","INTERVAL_SYM","ISNULL","LAST_INSERT_ID","LCASE", "LEFT","LENGTH","LOCATE","LOG","LOG10","LPAD","LTRIM","MAKE_SET_SYM","MOD_SYM", "NOW_SYM","OCT","PASSWORD","PERIOD_ADD","PERIOD_DIFF","PI_SYM","POSITION_SYM", "POW","PROCEDURE","QUARTER","RAND","RADIANS","REPEAT","REPLACE","REVERSE","RIGHT", "ROUND","RPAD","RTRIM","SEC_TO_TIME","SIGN","SIN","SOUNDEX","SPACE","SQRT","STRCMP", "SUBSTRING","SUBSTRING_INDEX","TAN","TIME_TO_SEC","TIME_FORMAT_SYM","TO_DAYS", "TRIM","TRUNCATE","UCASE","UNIQUE_USERS","UNIX_TIMESTAMP","USER","VERSION_SYM", "WEEK_SYM","WEEKDAY","UDF_CHAR_FUNC","UDF_FLOAT_FUNC","UDF_INT_FUNC","SQL_BIG_TABLES", "SQL_BIG_SELECTS","SQL_SELECT_LIMIT","SQL_LOG_OFF","SQL_LOG_UPDATE","SQL_LOW_PRIORITY_UPDATES", "SQL_SMALL_RESULT","SQL_WARNINGS","'|'","'&'","'-'","'+'","'*'","'/'","'%'", "NEG","'('","')'","','","'!'","':'","'{'","'}'","'.'","'@'","query","verb_clause", "create","@1","@2","@3","opt_create_table_options","create_table_options","create_table_option", "table_types","udf_type","field_list","field_list_item","opt_constraint","field_spec", "@4","type","@5","@6","varchar","int_type","real_type","float_options","field_options", "field_opt_list","field_option","opt_len","opt_precision","opt_attribute","opt_attribute_list", "attribute","opt_binary","references","opt_on_delete","opt_on_delete_list","opt_on_delete_item", "delete_option","key_type","key_or_index","keys_or_index","opt_unique","key_list", "key_part","opt_ident","string_list","alter","@7","alter_list","alter_list_item", "@8","@9","opt_column","opt_ignore","opt_restrict","opt_place","optimize","select", "@10","select_into","select_from","select_options","select_option_list","select_option", "select_item_list","select_item","remember_name","remember_end","select_item2", "select_alias","expr","expr_expr","no_in_expr","no_and_expr","simple_expr","udf_expr_list", "sum_expr","in_sum_expr","@11","expr_list","@12","expr_list2","opt_pad","join_table_list", "@13","join_table","opt_outer","using_list","interval","table_alias","opt_table_alias", "where_clause","having_clause","@14","opt_escape","group_clause","group_list", "order_clause","order_list","order_dir","limit_clause","delete_limit_clause", "ULONG_NUM","ULONGLONG_NUM","procedure_clause","@15","procedure_list","procedure_item", "opt_into","@16","drop","@17","table_list","table","if_exists","insert","@18", "replace","@19","opt_low_priority","insert2","insert_table","insert_field_spec", "@20","opt_field_spec","fields","insert_values","@21","values_list","ident_eq_list", "ident_eq_value","no_braces","@22","values","update","update_list","delete", "show","@23","show_param","opt_db","wild","describe","@24","describe_command", "opt_describe_column","flush","@25","flush_options","flush_option","kill","use", "load","@26","opt_local","opt_duplicate","opt_field_term","field_term_list", "field_term","opt_line_term","line_term_list","line_term","opt_ignore_lines", "text_literal","text_string","literal","insert_ident","table_wild","group_ident", "order_ident","simple_ident","field_ident","table_ident","ident","ident_or_text", "user","keyword","set","@27","opt_option","option_value_list","option_value", "text_or_password","set_option","lock","@28","table_or_tables","table_lock_list", "table_lock","lock_option","unlock","revoke","@29","grant","@30","global_option", "grant_privileges","grant_privilege_list","grant_privilege","@31","@32","@33", "@34","opt_table","user_list","grant_user","opt_column_list","column_list","column_list_id", "grant_option", NULL }; #endif static const short yyr1[] = { 0, 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 328, 327, 329, 327, 327, 330, 327, 331, 331, 332, 332, 333, 333, 333, 334, 334, 334, 335, 335, 335, 336, 336, 337, 337, 337, 337, 337, 338, 338, 340, 339, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 342, 341, 343, 341, 344, 344, 345, 345, 345, 345, 345, 346, 346, 346, 347, 347, 347, 348, 348, 349, 349, 350, 350, 351, 351, 352, 352, 353, 353, 354, 354, 355, 355, 355, 355, 355, 356, 356, 357, 357, 358, 358, 359, 359, 360, 360, 360, 360, 361, 361, 361, 361, 361, 362, 362, 362, 363, 363, 364, 364, 365, 365, 366, 366, 367, 367, 368, 368, 369, 369, 371, 370, 372, 372, 374, 373, 375, 373, 373, 373, 373, 373, 373, 373, 373, 373, 376, 376, 377, 377, 378, 378, 378, 379, 379, 379, 380, 382, 381, 383, 383, 383, 383, 384, 385, 385, 386, 386, 387, 387, 387, 387, 387, 388, 388, 388, 389, 390, 391, 392, 392, 393, 393, 393, 394, 394, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 402, 401, 404, 403, 405, 405, 406, 406, 407, 407, 407, 407, 407, 407, 407, 408, 407, 407, 409, 409, 410, 410, 411, 411, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 413, 413, 413, 414, 414, 415, 415, 416, 417, 416, 418, 418, 419, 419, 420, 420, 421, 421, 422, 422, 423, 423, 423, 424, 424, 424, 425, 425, 426, 426, 427, 427, 427, 428, 429, 428, 430, 430, 431, 433, 432, 434, 435, 434, 434, 434, 436, 436, 437, 438, 438, 440, 439, 442, 441, 443, 443, 444, 444, 445, 446, 447, 446, 448, 448, 449, 449, 450, 451, 450, 452, 452, 453, 453, 454, 456, 455, 457, 457, 458, 459, 459, 460, 462, 461, 463, 463, 463, 463, 463, 463, 463, 464, 464, 465, 465, 467, 466, 466, 468, 468, 469, 469, 469, 471, 470, 472, 472, 473, 473, 473, 473, 473, 474, 475, 477, 476, 478, 478, 479, 479, 479, 480, 480, 481, 481, 482, 482, 482, 482, 483, 483, 484, 484, 485, 485, 486, 486, 487, 487, 488, 488, 489, 489, 489, 489, 489, 489, 489, 489, 489, 490, 490, 491, 491, 492, 492, 492, 493, 493, 493, 494, 494, 494, 494, 495, 495, 495, 496, 496, 496, 497, 497, 498, 498, 498, 499, 499, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 502, 501, 503, 503, 504, 504, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 506, 506, 507, 507, 507, 507, 507, 507, 509, 508, 510, 510, 511, 511, 512, 513, 513, 513, 514, 516, 515, 518, 517, 519, 519, 520, 520, 520, 521, 521, 523, 522, 524, 522, 525, 522, 522, 526, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 527, 527, 527, 527, 528, 528, 529, 529, 530, 530, 531, 531, 532, 533, 533 }; static const short yyr2[] = { 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 8, 0, 10, 3, 0, 8, 0, 1, 1, 2, 2, 4, 5, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 5, 7, 4, 0, 2, 0, 4, 3, 3, 3, 1, 1, 5, 2, 4, 5, 4, 3, 1, 1, 1, 4, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 7, 7, 0, 5, 0, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 3, 5, 0, 1, 2, 1, 1, 1, 0, 3, 0, 5, 0, 1, 2, 1, 1, 2, 2, 1, 2, 0, 1, 3, 6, 0, 1, 2, 1, 3, 3, 2, 2, 1, 1, 2, 2, 2, 3, 1, 2, 1, 1, 1, 1, 0, 1, 4, 2, 1, 4, 0, 1, 1, 3, 0, 6, 1, 3, 0, 5, 0, 5, 4, 3, 4, 3, 6, 5, 3, 1, 0, 1, 0, 1, 0, 1, 1, 0, 2, 1, 3, 0, 5, 0, 1, 2, 2, 8, 0, 1, 2, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4, 0, 0, 1, 1, 0, 2, 2, 1, 1, 5, 6, 5, 6, 3, 3, 4, 5, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 6, 3, 3, 4, 5, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, 6, 5, 6, 3, 4, 5, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 8, 4, 4, 1, 3, 1, 3, 4, 3, 8, 6, 8, 4, 4, 4, 4, 4, 6, 6, 4, 6, 6, 6, 4, 6, 6, 4, 6, 4, 4, 6, 6, 4, 4, 8, 6, 10, 6, 6, 4, 3, 4, 4, 6, 4, 6, 8, 4, 4, 8, 4, 6, 6, 4, 6, 4, 4, 1, 3, 4, 4, 4, 6, 6, 3, 6, 6, 4, 4, 4, 3, 4, 6, 8, 4, 6, 4, 6, 8, 4, 4, 4, 4, 4, 4, 4, 4, 6, 8, 6, 8, 6, 8, 4, 6, 4, 4, 4, 7, 7, 7, 6, 6, 4, 4, 4, 4, 10, 3, 4, 3, 3, 4, 6, 4, 4, 0, 1, 4, 4, 4, 4, 4, 10, 4, 4, 4, 4, 0, 2, 0, 2, 1, 3, 0, 1, 3, 1, 3, 3, 3, 4, 7, 0, 10, 6, 2, 10, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 2, 0, 2, 0, 0, 3, 2, 0, 0, 3, 4, 2, 0, 3, 4, 2, 0, 1, 1, 0, 2, 4, 0, 2, 1, 1, 1, 1, 1, 0, 0, 6, 3, 1, 2, 0, 6, 4, 0, 6, 4, 3, 1, 3, 1, 0, 2, 0, 6, 0, 5, 0, 1, 2, 1, 1, 2, 0, 3, 0, 3, 3, 1, 2, 0, 5, 3, 1, 3, 1, 3, 0, 4, 3, 1, 6, 5, 3, 6, 0, 3, 2, 3, 5, 4, 1, 1, 2, 0, 2, 0, 2, 0, 4, 2, 1, 1, 0, 1, 1, 0, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 0, 14, 0, 1, 0, 1, 1, 0, 2, 2, 1, 3, 4, 3, 3, 0, 2, 2, 1, 3, 3, 0, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 3, 4, 5, 1, 3, 2, 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 1, 4, 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, 3, 3, 1, 1, 2, 2, 0, 8, 0, 9, 0, 1, 1, 2, 1, 1, 3, 0, 3, 0, 3, 0, 3, 1, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 3, 1, 1, 3, 4, 1, 0, 3, 3, 1, 1, 0, 3 }; static const short yydefact[] = { 0, 1, 170, 142, 527, 0, 523, 576, 179, 0, 555, 527, 0, 0, 0, 0, 571, 572, 731, 695, 0, 729, 525, 0, 4, 3, 14, 17, 7, 9, 15, 21, 5, 19, 6, 0, 10, 13, 22, 11, 18, 12, 20, 16, 8, 171, 0, 0, 0, 143, 0, 0, 528, 0, 0, 521, 0, 521, 527, 0, 186, 0, 0, 0, 585, 589, 721, 720, 718, 728, 733, 696, 693, 677, 678, 672, 686, 657, 654, 671, 658, 683, 680, 681, 673, 692, 685, 674, 684, 682, 656, 664, 675, 676, 666, 679, 667, 668, 687, 688, 689, 690, 643, 653, 652, 651, 650, 655, 669, 659, 660, 661, 662, 663, 665, 691, 670, 586, 644, 733, 527, 2, 0, 570, 568, 640, 0, 23, 28, 27, 0, 0, 0, 0, 0, 517, 0, 170, 581, 583, 582, 584, 580, 577, 579, 194, 192, 190, 191, 193, 199, 187, 189, 178, 566, 0, 140, 141, 562, 561, 564, 566, 0, 556, 0, 520, 590, 0, 0, 734, 0, 0, 0, 0, 642, 573, 0, 152, 0, 0, 0, 477, 0, 522, 513, 518, 516, 0, 0, 197, 181, 196, 0, 188, 0, 557, 0, 0, 566, 563, 0, 0, 0, 472, 719, 722, 751, 752, 746, 753, 742, 740, 744, 737, 0, 750, 747, 749, 754, 755, 757, 756, 0, 735, 738, 0, 0, 0, 0, 0, 712, 713, 0, 714, 715, 717, 716, 694, 697, 0, 0, 0, 531, 535, 530, 612, 613, 569, 574, 575, 641, 0, 50, 0, 0, 0, 498, 514, 0, 535, 578, 0, 0, 199, 180, 182, 0, 677, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 618, 615, 616, 617, 610, 619, 0, 652, 651, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 312, 0, 0, 0, 0, 0, 0, 659, 660, 0, 662, 663, 665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 202, 206, 207, 290, 614, 289, 201, 288, 633, 567, 564, 565, 558, 564, 477, 0, 633, 587, 474, 473, 0, 0, 0, 767, 767, 767, 736, 758, 767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 533, 0, 526, 0, 0, 0, 168, 168, 168, 168, 472, 0, 167, 153, 154, 148, 658, 139, 138, 0, 0, 43, 0, 45, 148, 136, 52, 637, 42, 41, 40, 0, 25, 478, 0, 554, 515, 519, 524, 0, 0, 477, 444, 472, 0, 195, 184, 183, 435, 435, 435, 435, 435, 435, 0, 0, 0, 0, 0, 0, 0, 292, 437, 622, 620, 621, 0, 0, 0, 0, 0, 0, 435, 0, 435, 0, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 437, 437, 291, 0, 293, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, 0, 566, 560, 0, 551, 0, 0, 591, 476, 725, 0, 726, 724, 723, 0, 743, 741, 745, 748, 759, 762, 640, 0, 739, 707, 706, 703, 500, 501, 702, 502, 503, 504, 705, 704, 710, 0, 708, 646, 647, 645, 648, 0, 701, 700, 698, 699, 0, 0, 0, 538, 624, 623, 540, 0, 532, 0, 0, 169, 156, 0, 0, 0, 0, 0, 0, 0, 39, 37, 38, 34, 0, 51, 149, 0, 639, 30, 50, 0, 0, 137, 0, 46, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 455, 0, 484, 453, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 313, 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 371, 0, 260, 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441, 441, 441, 0, 0, 0, 0, 415, 0, 417, 418, 0, 0, 0, 424, 0, 0, 294, 0, 0, 0, 198, 220, 221, 222, 223, 224, 225, 0, 218, 226, 227, 213, 437, 483, 216, 0, 0, 0, 0, 212, 0, 287, 232, 233, 229, 228, 230, 231, 234, 625, 634, 559, 0, 553, 634, 593, 592, 0, 727, 771, 0, 770, 0, 0, 0, 0, 0, 0, 0, 534, 545, 0, 536, 0, 186, 547, 539, 543, 0, 0, 50, 0, 158, 148, 161, 163, 172, 166, 155, 0, 24, 31, 32, 44, 0, 135, 122, 0, 57, 58, 0, 84, 0, 118, 0, 88, 93, 90, 92, 87, 71, 77, 70, 76, 72, 78, 73, 79, 67, 69, 65, 66, 89, 91, 96, 94, 0, 0, 82, 105, 109, 0, 105, 107, 638, 29, 0, 443, 0, 0, 447, 446, 455, 456, 0, 445, 0, 479, 594, 425, 436, 428, 429, 432, 431, 434, 433, 0, 0, 0, 437, 0, 437, 378, 305, 439, 438, 296, 297, 298, 299, 300, 0, 302, 426, 303, 427, 304, 306, 0, 308, 309, 314, 0, 0, 0, 322, 323, 422, 363, 362, 340, 360, 388, 320, 319, 321, 0, 437, 0, 326, 0, 330, 437, 333, 0, 335, 336, 0, 0, 339, 0, 0, 437, 346, 348, 349, 0, 351, 0, 354, 355, 0, 357, 437, 0, 366, 367, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 376, 375, 0, 0, 381, 0, 383, 0, 0, 386, 387, 389, 390, 392, 391, 393, 0, 0, 0, 0, 400, 402, 0, 403, 442, 0, 0, 0, 0, 404, 0, 410, 0, 416, 419, 0, 421, 411, 412, 413, 295, 635, 205, 204, 219, 0, 0, 214, 437, 483, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 768, 0, 761, 760, 766, 772, 763, 0, 649, 709, 730, 0, 0, 537, 199, 0, 0, 0, 35, 175, 0, 0, 0, 162, 174, 173, 160, 49, 33, 0, 0, 0, 0, 120, 123, 125, 0, 492, 146, 0, 74, 75, 0, 0, 119, 86, 0, 60, 0, 0, 0, 99, 95, 0, 0, 0, 0, 99, 0, 0, 113, 0, 116, 53, 110, 112, 0, 99, 0, 99, 0, 0, 448, 0, 0, 0, 480, 488, 0, 602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 246, 247, 248, 249, 250, 0, 243, 251, 252, 238, 0, 483, 241, 0, 0, 0, 237, 0, 257, 258, 254, 253, 255, 256, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 482, 0, 215, 0, 272, 273, 274, 275, 276, 277, 0, 270, 278, 279, 210, 437, 483, 268, 0, 0, 0, 0, 265, 0, 284, 285, 281, 280, 282, 283, 286, 626, 636, 552, 0, 769, 0, 0, 0, 732, 711, 544, 546, 0, 550, 0, 542, 36, 0, 177, 157, 165, 0, 159, 0, 128, 129, 0, 0, 0, 124, 47, 0, 493, 494, 145, 0, 0, 0, 0, 0, 0, 0, 104, 103, 56, 100, 102, 0, 0, 0, 0, 64, 0, 0, 0, 115, 114, 117, 111, 0, 54, 0, 55, 26, 0, 0, 450, 628, 485, 629, 492, 627, 0, 0, 495, 0, 0, 0, 0, 595, 597, 0, 512, 0, 338, 332, 358, 0, 359, 440, 301, 0, 317, 0, 0, 328, 324, 329, 327, 331, 334, 337, 0, 342, 344, 345, 350, 352, 0, 0, 325, 361, 369, 370, 244, 372, 239, 483, 242, 0, 0, 373, 379, 0, 382, 384, 0, 394, 0, 398, 396, 0, 0, 401, 0, 0, 0, 408, 409, 0, 420, 209, 211, 271, 0, 266, 437, 483, 269, 0, 0, 594, 0, 0, 764, 541, 548, 0, 176, 164, 0, 131, 130, 0, 0, 126, 127, 122, 492, 0, 0, 150, 61, 118, 63, 68, 97, 0, 101, 0, 0, 0, 106, 118, 0, 0, 452, 0, 0, 0, 487, 481, 0, 0, 505, 0, 0, 0, 0, 596, 0, 0, 603, 605, 0, 0, 0, 471, 468, 462, 465, 467, 469, 470, 459, 460, 461, 463, 464, 466, 0, 0, 0, 0, 0, 240, 0, 235, 0, 0, 0, 0, 0, 407, 405, 406, 0, 261, 0, 267, 0, 263, 602, 765, 773, 549, 48, 133, 134, 132, 121, 144, 147, 85, 0, 59, 0, 0, 0, 83, 62, 0, 0, 449, 0, 492, 631, 489, 632, 492, 630, 496, 0, 185, 600, 601, 0, 598, 0, 0, 604, 0, 341, 307, 316, 318, 435, 353, 356, 236, 380, 385, 397, 395, 399, 437, 262, 264, 608, 151, 98, 99, 99, 108, 0, 0, 486, 0, 491, 0, 506, 599, 607, 606, 0, 0, 0, 0, 535, 80, 81, 0, 0, 457, 492, 497, 0, 343, 430, 414, 0, 588, 454, 451, 0, 490, 199, 609, 458, 0, 0, 509, 510, 507, 199, 508, 0, 0, 0 }; static const short yydefgoto[] = { 1716, 23, 24, 178, 724, 179, 939, 940, 452, 707, 471, 460, 461, 462, 463, 721, 979, 1239, 1226, 980, 981, 982, 1235, 1414, 1415, 1416, 1241, 1253, 1247, 1248, 1249, 1231, 719, 1217, 1218, 1219, 1535, 464, 465, 162, 51, 1220, 1221, 709, 1540, 25, 251, 453, 454, 929, 1206, 696, 46, 1210, 1389, 26, 27, 60, 264, 265, 150, 151, 152, 190, 191, 192, 612, 397, 869, 1129, 399, 821, 889, 400, 861, 401, 737, 738, 862, 753, 1015, 1130, 481, 1558, 482, 993, 1692, 1590, 418, 419, 256, 1261, 1442, 1152, 996, 1438, 1444, 1637, 1404, 1564, 475, 666, 670, 1643, 1696, 1710, 1711, 266, 997, 28, 476, 184, 242, 134, 29, 58, 30, 120, 53, 243, 244, 442, 685, 443, 686, 692, 923, 925, 918, 919, 926, 1199, 1384, 31, 412, 32, 33, 62, 163, 198, 195, 34, 175, 35, 247, 36, 59, 143, 144, 37, 38, 39, 644, 167, 906, 1263, 1449, 1450, 1452, 1572, 1573, 1688, 402, 1541, 403, 687, 688, 1440, 1639, 405, 466, 483, 414, 678, 1188, 118, 40, 171, 72, 237, 238, 674, 239, 41, 168, 68, 204, 205, 649, 42, 43, 119, 44, 70, 170, 222, 223, 224, 422, 421, 423, 426, 659, 1189, 1190, 652, 909, 910, 1378 }; static const short yypact[] = { 7558, -32768, 10, 140, 50, -3,-32768,-32768,-32768, 47,-32768, 50, -23, 159, 25, 25,-32768,-32768,-32768, 95, 15433, -32768,-32768, 219,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 12912,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 111, 13486, 15433,-32768, 15433, 162,-32768, 166, 15433, 175, 15433, 175, 50, 205, -24, 13486, 265, 13486,-32768, 160,-32768,-32768,-32768,-32768, 188, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 188, 50, -32768, 15433,-32768,-32768, -76, 13486,-32768,-32768,-32768, 15433, 13486, 161, 226, 13486,-32768, 15433, 10,-32768,-32768,-32768, -32768,-32768, -27,-32768,-32768,-32768,-32768,-32768,-32768, -19, -24,-32768,-32768, 233, 225,-32768,-32768,-32768,-32768, 253, 233, 286,-32768, 252,-32768,-32768, 299, 13486,-32768, 4928, 129, 4928, 13068,-32768, 15015, 15433,-32768, 75, 255, 277, 259, 13486,-32768, 81,-32768,-32768, 13068, 205,-32768, -50, -32768, 12076,-32768, 151,-32768, 13486, 15433, 233,-32768, 13486, 13617, 250, 58, 92,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 296, 305,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 311, 107,-32768, 309, 424, 433, 434, 22,-32768, -32768, 436,-32768,-32768,-32768,-32768, 124,-32768, 439, 339, 13486,-32768, -105,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 168, 12363, 121, 13486, 12076, 262,-32768, 13486, -105,-32768, 12494, 335,-32768,-32768, 369, 379, 134, 135, 136, 137, 145, 148, 149, 150, 172, 174, 178, 227, 258, 12076, -32768,-32768,-32768,-32768,-32768,-32768, 263, 316, 316, 316, 264, 266, 267, 269, 281, 284, 294, 295, 297, 298, 302, 303, 304, 308, 310, 312, 313, 314, 317, 318, 328, 329, 330, 331, 332, 333, 334, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 360, 364, 368, 370, 371, 372, 375, 376, 377, 380, 381, 383, 384, 385, 387, 389, 398, 399, 400, 401, 402, 404, 405, 406, 408, 409, 413, 414, 415, 416, 417, 418, 421, 422, 423, 425, 426, 429, 430, 431, 432, 435, 437, 438, 440, 442, 444, 445, 446, 448, 453, 456, 460, 462, 463, 465, 466, 467, 468, 469, 471, 12076, 12076, 12076, 15433, 15433,-32768, 13893,-32768,-32768, -32768, 461,-32768,-32768,-32768, 198,-32768, 253,-32768,-32768, 253, -67, 568, 270,-32768,-32768,-32768, 15433, 108, 13486, 472, 472, 472,-32768,-32768, 472, 13199, 748, 38, 55, -21, -21, -79, 15171, 69, 129, 427, 13199,-32768,-32768, 13617,-32768, 31, 501, 506, 525, 525, 525, 88, 100, 237,-32768, 307,-32768, 15433, 473,-32768,-32768, 15433, -13, -32768, 71, 524, 15433,-32768,-32768, 470,-32768,-32768,-32768, 496,-32768, 13893, -21,-32768,-32768,-32768,-32768, 12494, 15433, 39,-32768, 762, 481,-32768,-32768,-32768,-32768, 443,-32768, -32768,-32768,-32768, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 547,-32768, 461, 461, 461, 12076, 12076, 12076, 12076, 12076, 12076,-32768, 12076,-32768, 12076,-32768, 12076, 12076, 12076, 378, 10641, 474, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 316, 12076, 12076, 12076, 12076, 12076, 10928, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 11215, 12076, 12076, 12076, 12076, 475, 12076, 12076, 12076, 11502, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 10354, 12076, 12076, 316, 11789, 477, 478, 12076, 12076, 479, 479, 479, 547, 4295, 547, 12076, 476, 711, 12076, 12076, 12076, 12076, 12076, 12076, 224, 12076, 12076, 12076, 482, 12076, 12076, 4, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076,-32768, 14597, 233,-32768, 13617, -32768, 12076, 15433, -17,-32768,-32768, 655,-32768,-32768,-32768, 15433,-32768,-32768,-32768,-32768, 483,-32768, 484, 672,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 486,-32768,-32768,-32768,-32768, 480, 796,-32768, -32768,-32768,-32768, 735, 13617, 16,-32768,-32768,-32768,-32768, 492,-32768, 561, 806,-32768,-32768, 15433, 15433, 669, 670, 15433, 15433, 13486,-32768,-32768,-32768,-32768, 168,-32768,-32768, 12076,-32768, 66, 12363, 671, 674,-32768, 13486,-32768, 498, 1798, 15433, 667, 504,-32768, 41, 13330, 739, 13330, 13330, 576, 713, 13330, 752,-32768,-32768, 510, 12076, 511, 512, 513, 514, 515, 516, 1716, 1727, 1744, 1979, 1990, 2103, 4305, 517, 12076, 4462, 4568, 4578, 4590, 912, 4629, 518, 4735, 520, 4745, 521, 2114, 4905, 4923,-32768,-32768, 5029, -32768, 2125, 2142, 2153, 5068, 5078, 5095, 5240, 5352, 5409, 5467, 5516, 5579, 5644, 5694, 2267, 2398, 2504, 1173, 5751, 2522, 5806, 2544, 5921, 1199, -83, 5939, 2561, 2673, 2692, 5978,-32768, 6084, 6094, 2715, 6133, 2839, 6257, 6371, 2884, 6410, 3008, 3030,-32768, 6420, 6534, 6544, 3050, 3158,-32768, 14003,-32768, 3175, 6583,-32768, 6696, 6821, 3200, 3219, 6860, 3325, 1333, 3369, 6870, 6976, 7015, 7032, 7144, 7187, 7294, 3493, 1569, 3536, 7355, 7461, 3643, 7471, 12076, 12076, 12076, 4171, 3660, 7521, -81,-32768, 7628,-32768,-32768, 1581, 7756, 523,-32768, 526, 528,-32768, 631, 15433, 15302,-32768, -1, -1, -1, -1, -1, -1, 737,-32768, -40, -40, 10152, -32768, 789, -1, 535, 12076, 12076, 12076, 14342, 14025,-32768, 26, 34, -37, -37, 547, 547, 547,-32768, 529,-32768, 849, 13893, 531,-32768,-32768, 776,-32768,-32768, 37,-32768, 544, 14728, 15171, 706, 15171, -79, 15171, 540,-32768, 855, -32768, 13617, -24,-32768, 543,-32768, 858, -21, 12363, 57, -32768, 15433,-32768,-32768, 48,-32768,-32768, 7795,-32768,-32768, 66,-32768, 550,-32768, -66, 15433,-32768,-32768, 164,-32768, 553, -68, 554,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 555,-32768,-32768,-32768, -32768,-32768, 557, 680, 558, 559,-32768, 560, 153, 563, 560, 565,-32768,-32768, 15433,-32768, 630, 13330,-32768,-32768, 713,-32768, 802,-32768, 838, 774, 834,-32768, 13893,-32768, -32768,-32768,-32768,-32768,-32768, 12076, 12076, 12076,-32768, 12076, -32768,-32768,-32768, 13893, 578,-32768,-32768,-32768,-32768,-32768, 12076,-32768,-32768,-32768,-32768,-32768,-32768, 12076,-32768,-32768, -32768, 12076, 651, 656,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 749,-32768, 750,-32768, 12076, -32768,-32768,-32768, 755,-32768,-32768, 12076, 756,-32768, 12076, 12076,-32768,-32768,-32768,-32768, 12076,-32768, 12076,-32768,-32768, 12076,-32768,-32768, 12076,-32768,-32768,-32768, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 247, 12076, 12076, 12076, 12076, 12076, 12076, 0, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076,-32768,-32768,-32768, 12076, 12076,-32768, 12076, -32768, 12076, 12076,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 12076, 12076, 12076, 12076,-32768,-32768, 12076,-32768, 13893, 835, 836, 837, 12076,-32768, 12076,-32768, 760,-32768,-32768, 12076, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 593, 763,-32768,-32768, 789, -1, 14131, 12076, 12076, 12076, 12076, 12076, 12076, 256, 12076, 12076, 12076, 595, 12076, 12076, 5, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 12076, 14884, 12076, 15433, 791,-32768, 15433,-32768,-32768, 676, -95,-32768, 608,-32768,-32768, 609, 13617, 12076,-32768, -19, 12076, 492, 68,-32768, 84, 875, 876, 13748,-32768,-32768,-32768,-32768, -32768,-32768, 15433, 49, 146, 15433,-32768, 184,-32768, 45, 70, 614, 777,-32768,-32768, 615, 785,-32768,-32768, 786, -32768, 787, 788, 790, 183,-32768, 799, 800, 621, 801, 183, 306, 845,-32768, 809,-32768,-32768, 153,-32768, 804, 183, 807, 183, 62, 852,-32768, 882, 13330, 12650,-32768, 856, 207, 878, 3686, 7805, 7911, 652, 3704, 654, 12076, 7950, 3810, 7967, 12076, 12076, 657, 658, 659, 8079, 660, 661, 8122, 665, 8229, 8290, 662, 8396, 1592, 3854, 668, 8406, 8456, 8563, -1, -1, -1, -1, -1, -1, 867, -32768, -40, -40, 10152, 8691, 789, -1, 12076, 12076, 12076, 14342, 14149, 26, 34, -37, -37, 547, 547, 547, 8730, 8740, 3978, 8846, 8885, 4021, 8902, 4189, 1705, 4128, 9014, 12076, 12076, 12076, 9057, 9164, 673, 9225,-32768,-32768, 677, -32768, 12076, -1, -1, -1, -1, -1, -1, 868,-32768, -40, -40, 10152,-32768, 789, -1, 681, 12076, 12076, 12076, 14342, 14171, 26, 34, -37, -37, 547, 547, 547,-32768, -32768, 13893, 13486,-32768, 939, 916, 15171,-32768,-32768,-32768, 13893, -65, 13893, 64,-32768,-32768, 15433,-32768,-32768,-32768, 306,-32768, 72,-32768,-32768, 67, 67, 79,-32768,-32768, 15433,-32768,-32768,-32768, 840, 151, 682, 684, 686, 687, 85,-32768,-32768,-32768, 183,-32768, 690, 692, 151, 688, -32768, 316, 316, 316,-32768,-32768,-32768,-32768, 694,-32768, 695,-32768,-32768, 907, 13330, 884,-32768, 696, 461, 70, -32768, 12076, 951, 828, 968, 970, 960, 972, 207,-32768, 196,-32768, 12076,-32768,-32768,-32768, 12076,-32768, 13893,-32768, 12076,-32768, 13837, 13837,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 872,-32768,-32768,-32768,-32768,-32768, 12076, 12076,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 789, -1, 14277, 12076, -32768,-32768, 12076,-32768,-32768, 12076,-32768, 12076,-32768,-32768, 12076, 12076,-32768, 9331, 9341, 9391,-32768,-32768, 874,-32768, -32768, 10152,-32768, 708,-32768,-32768, 789, -1, 14287, 12076, 834, 877, 920,-32768,-32768,-32768, 12076,-32768,-32768, 524, -32768,-32768, 986, 56,-32768,-32768, 184, 70, 712, 87, -32768,-32768, 886,-32768,-32768,-32768, 885,-32768, 888, 889, 91,-32768, 886, 890, 13330,-32768, 12076, 910, 12650,-32768, 13893, 12781, 68, 775, 151, 151, 994, 151,-32768, 996, 997, 196,-32768, 4145, 9498, 9626,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 729, 730, 731, 9665, 9675,-32768, 12076, 10152, 9781, 9820, 9837, 9949, 9992,-32768,-32768,-32768, 732,-32768, 761,-32768, 12076, 10152, 878,-32768,-32768, 13893,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 151,-32768, 766, 768, 771,-32768,-32768, 772, 959, 13893, 751, 70,-32768, 773, 461, 70,-32768, 781, 15433,-32768,-32768,-32768, 151,-32768, 151, 151,-32768, 12076,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 10152,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 10152, 993,-32768,-32768, 183, 183,-32768, 12076, 15433,-32768, 12781,-32768, 68,-32768, -32768,-32768,-32768, 10099, 783, 793, 942, 778,-32768,-32768, 648, 98,-32768, 70,-32768, 792,-32768,-32768,-32768, 1003, -32768,-32768,-32768, 15433,-32768,-32768,-32768,-32768, 12076, 102, -32768, 13893,-32768,-32768,-32768, 1093, 1102,-32768 }; static const short yypgoto[] = {-32768, -32768,-32768,-32768,-32768,-32768,-32768, 163, -682,-32768,-32768, -32768, -701,-32768, -101,-32768,-32768,-32768,-32768, 157,-32768, -32768,-32768, -1209,-32768, -304, 131,-32768,-32768,-32768, -135, -1411, -415, -421,-32768, -100, -280,-32768, 675,-32768,-32768, -967, -281, -457, -298,-32768,-32768,-32768, 419,-32768,-32768, -223, 985,-32768,-32768,-32768, 1088,-32768,-32768, -263, 202, -32768, 975, -70, 879, -1517,-32768,-32768,-32768, -26,-32768, -32768, -883, -493, -233,-32768, -439,-32768, -303,-32768,-32768, -427, 685,-32768, -672, 139,-32768, -327, 691, 663, -318, -32768,-32768, -1146,-32768,-32768,-32768,-32768, -1431,-32768,-32768, -434, -384,-32768,-32768,-32768, -570, 894,-32768,-32768,-32768, -32768, 3, 1097,-32768,-32768,-32768,-32768, 78, 974, 922, 908,-32768, -522,-32768,-32768,-32768,-32768,-32768, -8, -32, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -310, -142, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 981,-32768,-32768, -32768,-32768,-32768,-32768, -350,-32768, -277, -438,-32768, -397, -32768, -266, -169, -1171, 254, 998, -371, -488, -199,-32768, -14, -20, 276, 758,-32768,-32768,-32768,-32768,-32768, 759, 278,-32768,-32768,-32768, 1182,-32768, 779,-32768,-32768,-32768, -32768,-32768,-32768, 1079, 1028,-32768, 784,-32768,-32768,-32768, -32768, 764, 301, -176, -73,-32768, 29,-32768 }; #define YYLAST 15691 static const short yytable[] = { 117, 681, 413, 487, 1156, 261, 248, 720, 1341, 1560, 620, 621, 440, 942, 145, 125, 146, 147, 1254, 199, 261, 124, 503, 504, 505, 407, 433, 125, 128, 262, 129, 941, 1421, 127, 132, 1214, 135, 620, 621, 1376, 1215, 125, 1430, 125, 1432, 620, 621, 153, 671, 165, 740, 741, 742, 743, 744, 987, 410, 989, 990, 904, 690, 994, 416, 728, 626, 728, 164, 626, 636, 255, 636, 1425, 672, 760, 54, 762, 148, 822, 1228, 444, 729, 445, 729, 1204, 884, 1357, 45, 1229, 1308, 63, 725, 661, 885, 1358, 641, 1309, 1208, 417, 638, 886, 1359, 639, 174, 626, 416, 1387, 125, 1621, 663, 1618, 180, 125, 177, 1402, 125, 1531, 186, 165, 1394, 55, 165, 730, 680, 730, 1403, 64, 56, 667, 668, 669, 626, 882, 1625, 715, 181, 890, 137, 185, 626, 417, 1395, 731, 1630, 731, 695, 1209, 66, 67, 125, 52, 699, -475, 1388, 125, 203, 249, 250, -475, 691, 165, 1486, 1619, 125, 734, 1532, 457, 398, 125, 257, 61, 1533, 1396, 406, 165, 1205, 255, 125, 409, 1397, 673, 125, 444, 408, 445, 1534, 662, 411, 446, 447, 1709, 448, 1310, 451, -475, 449, 887, 1360, 1709, 173, 752, 57, 646, 71, 664, 1676, 665, 1242, 647, 1678, 1515, 65, 441, 1312, 764, 716, 717, 664, 664, 665, 665, 1529, 125, 121, 1377, 697, 698, 702, 165, 1203, 473, 458, 700, 467, 126, 125, 1058, 131, 1137, 125, 130, 472, 125, 689, 648, 165, 166, 1393, 176, 1230, 1398, 1216, 640, 905, 263, 501, 434, 133, 1243, 1244, 941, 169, 477, 47, 1705, 450, 1445, 1446, 182, 263, 48, 631, 632, 633, 634, 635, 633, 634, 635, 468, 469, 138, 796, 149, 225, 49, 1214, 732, 183, 732, 1362, 1215, 188, 139, 189, 451, 196, 1245, 140, 1246, 226, 704, 705, 245, 246, 713, 714, 470, 629, 630, 631, 632, 633, 634, 635, 1570, 1447, 1256, 154, 1223, 1571, 1224, 194, 155, 197, 141, 958, 142, 706, 876, 877, 1448, 156, 854, 921, 922, 630, 631, 632, 633, 634, 635, 1595, 157, 50, 631, 632, 633, 634, 635, 653, 654, 1300, 1301, 655, 1184, 1185, 200, 733, 986, 733, 1349, 1350, 1400, 1401, 1412, 1413, 607, 608, 609, 201, 227, 1609, 863, 864, 228, 610, 611, 202, 158, 1433, 1401, 1526, 1527, 254, 159, 253, 160, 229, 424, 1530, 1401, 252, 1154, 161, 890, 255, 1537, 1401, 645, 258, 125, 415, 1546, 1547, 1623, 1624, 203, 658, 1629, 1624, 420, 281, 425, 657, 677, 1703, 1704, 427, 658, 1713, 1714, 406, 1131, 1132, 657, 428, 429, 1489, 430, 230, 231, 232, 233, 234, 235, 710, 236, 431, 432, 712, 435, 901, 436, 437, 710, 438, 474, 484, 262, 261, 488, 489, 490, 491, 282, 283, 284, 285, 286, 125, 727, 492, 1689, 1690, 493, 494, 495, 285, 745, 746, 747, 748, 749, 750, 751, 1207, 1422, 1519, 1423, 1424, 754, 755, 756, 757, 758, 759, 920, 761, 496, 763, 497, 765, 766, 767, 498, 770, 900, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 637, 797, 798, 799, 800, 801, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 815, 816, 817, 818, 819, 499, 1202, 823, 824, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 851, 852, 853, 642, 856, 500, 683, 859, 860, 1150, 502, 506, 695, 507, 508, 866, 509, 1436, 870, 871, 872, 873, 874, 875, 643, 878, 879, 880, 510, 1306, 883, 511, 888, 890, 891, 892, 893, 894, 895, 896, 897, 512, 513, 636, 514, 515, 693, 902, 899, 516, 517, 518, 694, 718, 903, 519, 708, 520, 723, 521, 522, 523, 908, 736, 524, 525, 613, 614, 615, 616, 617, 618, 619, 620, 621, 526, 527, 528, 529, 530, 531, 532, 626, 613, 614, 615, 616, 617, 618, 619, 620, 621, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 622, 545, 1355, 546, 930, 931, 890, 547, 934, 935, 125, 548, 938, 549, 550, 551, 936, 622, 552, 553, 554, 467, 768, 555, 556, 125, 557, 558, 559, 983, 560, 945, 561, 1267, 125, 1269, 125, 125, 623, 999, 125, 562, 563, 564, 565, 566, 624, 567, 568, 569, 689, 570, 571, 625, 1014, 623, 572, 573, 574, 575, 576, 577, 626, 624, 578, 579, 580, 627, 581, 582, 625, 1277, 583, 584, 585, 586, 1280, 868, 587, 626, 588, 589, 739, 590, 627, 591, 1286, 592, 593, 594, 1556, 595, -475, 416, 1386, 206, 596, 1290, 207, 597, 208, 209, 210, 598, 211, 599, 600, 212, 601, 602, 603, 604, 605, -475, 606, 651, 711, 907, 771, 820, 722, 857, 858, -423, 913, 881, 867, 916, 417, 914, -475, 915, 917, 911, 912, 924, 927, 928, 932, 933, 943, 946, 1487, 944, 890, 984, 214, 985, 988, 628, 991, 992, 215, 995, 998, 1000, 1001, 1002, 1003, 1004, 1005, 1013, 1023, -475, 1025, 1027, 628, 1142, -475, 1149, 1143, -475, 1144, 216, 1146, 1148, 1151, 1340, 1153, 1180, 1181, 1182, 1183, 1186, 1191, 1195, 1196, 1155, 1200, 1201, 1236, -475, 1517, 1213, 890, -475, 1227, 1232, 1233, -475, 1234, 1237, 1238, 1240, 1255, -475, 1250, 217, 1252, -475, 1632, 1258, 1259, 218, 219, 220, 221, 1260, 1262, 250, 677, 1274, 677, 1270, 677, -475, 1275, 1276, 1278, 406, 1281, 1283, 1331, 1332, 1333, 1336, 467, 1338, 1354, 710, 1373, 1339, 1375, 613, 614, 615, 616, 617, 618, 619, 620, 621, 1379, 1222, 1377, 1390, 1391, 1405, 1406, 1229, 1407, 1408, 1409, 1410, 1419, 1411, 629, 630, 631, 632, 633, 634, 635, -475, 1417, 1418, 1420, 1426, 1427, 1429, 1145, 622, 1431, 629, 630, 631, 632, 633, 634, 635, 1434, 1435, 1222, 1443, 1451, 125, 1456, 1702, 1458, 1484, 1513, 1465, 1466, 1467, 1469, 1470, 1475, 1264, 1265, 1266, 1472, 1268, 1480, 1522, 1523, 1539, 1555, 1557, 1509, 623, 1439, 1511, 1271, 920, 1516, 1562, 1542, 624, 1543, 1272, 1544, 1545, 1552, 1273, 625, 1549, -475, 1550, 1553, 1563, 1554, 1559, 1565, 626, 1566, 1567, 1568, 1592, 627, 1606, 1617, 1279, 1607, -475, 1614, 1613, 1622, 1634, 1282, 1228, 1626, 1284, 1285, 1627, 1628, 1631, 1642, 1287, 1646, 1288, 1648, 1649, 1289, 1654, 1655, 1291, 1656, 1665, 1514, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1441, 1302, 1303, 1304, 1305, 1674, 1307, 1675, 1311, 1687, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1666, -475, -475, 1321, 1322, 1670, 1323, 1671, 1324, 1325, 1672, 1673, 1700, 1677, 1707, 1717, 441, 1326, 1327, 1328, 1329, 1679, 1698, 1330, 1718, 628, 1212, 1392, 1225, 1334, 1706, 1335, 1699, 1548, 1251, 1428, 1337, 1616, 1620, 1536, 1399, 1525, 1538, 1551, 187, 123, 701, 1198, 193, 937, 1382, 1641, 1257, 1343, 1344, 1345, 1346, 1347, 1348, 1591, 1351, 1352, 1353, 703, 485, 1356, 1715, 1361, 735, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 136, 1372, 503, 504, 505, 486, 1371, 259, 1371, 439, 726, 908, 1701, 478, 1385, 260, 1381, 1612, 1569, 1383, 1668, 1650, 1197, 613, 614, 615, 616, 617, 618, 619, 620, 621, 467, 1380, 1635, 1694, 404, 1192, 679, 1222, 1193, 682, 1222, 69, 172, 650, 240, 1524, 684, 613, 614, 615, 616, 617, 618, 619, 620, 621, 660, 1608, 1374, 622, 0, 1685, 1194, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1020, 1021, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 622, 0, 0, 1459, 1695, 0, 0, 1463, 1464, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 623, 0, 0, 627, 1488, 0, 0, 0, 624, 0, 0, 0, 0, 0, 1439, 625, 0, 1638, 0, 0, 0, 0, 0, 0, 626, 0, 1504, 1505, 1506, 627, 0, 0, 0, 0, 0, 0, 0, 1512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1518, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 677, 0, 1521, 1441, 0, 1686, 1640, 628, 0, 0, 1528, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 1222, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 1644, 1645, 0, 1647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638, 0, 623, 0, 125, 1561, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 1574, 625, 0, 0, 1575, 0, 0, 0, 1576, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593, 1594, 0, 1669, 0, 0, 0, 0, 0, 0, 0, 0, 1597, 0, 0, 1598, 0, 0, 1599, 0, 1600, 0, 0, 1601, 1602, 1681, 1640, 1682, 1683, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1049, 1050, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 1615, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1056, 1057, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 1633, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1659, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 1667, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1680, 622, 0, 1684, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 1122, 0, 629, 630, 631, 632, 633, 634, 635, 1691, 623, 1111, 1112, 0, 0, 0, 1693, 0, 624, 0, 0, 0, 623, 0, 0, 625, 0, 0, 0, 0, 624, 0, 0, 623, 626, 0, 0, 625, 0, 627, 0, 624, 0, 0, 1712, 1708, 626, 0, 625, 0, 0, 627, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 622, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 623, 622, 0, 0, 0, 0, 0, 0, 624, 0, 0, 623, 0, 0, 0, 625, 0, 0, 0, 624, 0, 0, 623, 0, 626, 0, 625, 0, 0, 627, 624, 0, 0, 0, 0, 626, 0, 625, 0, 623, 627, 0, 0, 0, 0, 0, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 0, 947, 0, 948, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 949, 0, 0, 1123, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 1139, 1140, 629, 630, 631, 632, 633, 634, 635, 628, 0, 1477, 1478, 0, 0, 0, 0, 950, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 952, 0, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 978, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1500, 1501, 629, 630, 631, 632, 633, 634, 635, 0, 622, 0, 1006, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 623, 0, 0, 1008, 0, 0, 0, 0, 624, 0, 0, 623, 0, 0, 0, 625, 0, 0, 0, 624, 0, 0, 0, 0, 626, 0, 625, 0, 0, 627, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 622, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 623, 622, 0, 0, 0, 0, 0, 0, 624, 0, 0, 623, 622, 0, 0, 625, 0, 0, 0, 624, 0, 0, 623, 0, 626, 0, 625, 0, 0, 627, 624, 0, 0, 0, 0, 626, 0, 625, 0, 623, 627, 0, 0, 0, 0, 0, 626, 624, 0, 0, 623, 627, 0, 0, 625, 0, 0, 0, 624, 0, 0, 0, 0, 626, 0, 625, 0, 0, 627, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 0, 1009, 629, 630, 631, 632, 633, 634, 635, 628, 0, 0, 1010, 622, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1011, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1028, 629, 630, 631, 632, 633, 634, 635, 622, 0, 0, 1032, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 628, 0, 1033, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1034, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 623, 1046, 622, 0, 0, 628, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 623, 622, 0, 0, 0, 0, 626, 0, 624, 0, 0, 627, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 623, 0, 626, 0, 0, 0, 0, 627, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 0, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 622, 1047, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 622, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 623, 0, 0, 0, 622, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 623, 0, 0, 0, 0, 626, 0, 0, 624, 0, 627, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 623, 626, 0, 0, 0, 0, 627, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1048, 0, 627, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1052, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1054, 0, 628, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1060, 0, 622, 0, 628, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 622, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1061, 0, 627, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1062, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 0, 1066, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 622, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 623, 0, 626, 0, 0, 0, 0, 627, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 623, 0, 0, 0, 626, 0, 0, 0, 624, 627, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1068, 0, 627, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 622, 0, 1071, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 622, 0, 0, 0, 628, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 623, 0, 0, 628, 622, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 622, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 623, 0, 0, 0, 627, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 623, 0, 0, 0, 0, 626, 0, 0, 624, 0, 627, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1073, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1074, 628, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 628, 622, 1078, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 622, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1079, 0, 627, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1103, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 628, 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 622, 0, 1108, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1110, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 622, 0, 1113, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 622, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 622, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 623, 0, 0, 627, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 623, 0, 0, 0, 0, 0, 626, 0, 624, 0, 0, 627, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1121, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 622, 0, 1124, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 622, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1127, 0, 627, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1135, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 0, 1453, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 622, 0, 1457, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1461, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 622, 0, 1479, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 622, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 622, 626, 624, 0, 0, 0, 627, 0, 0, 625, 1133, 0, 0, 0, 0, 0, 0, 0, 626, 0, 623, 0, 0, 627, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 623, 0, 0, 0, 0, 0, 626, 0, 624, 0, 0, 627, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 0, 1493, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 622, 0, 1496, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 1498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1502, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1651, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 1134, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 622, 0, 1499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 622, 0, 865, 629, 630, 631, 632, 633, 634, 635, 622, 0, 1012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 623, 622, 626, 625, 0, 0, 0, 627, 624, 0, 0, 0, 626, 0, 0, 625, 0, 627, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 622, 0, 1016, 0, 628, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1017, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1018, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1019, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 628, 613, 614, 615, 616, 617, 618, 619, 620, 621, 628, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1022, 622, 206, 0, 0, 207, 0, 208, 209, 210, 0, 211, 0, 0, 212, 0, 0, 0, 0, 622, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 214, 625, 0, 0, 623, 0, 215, 0, 0, 0, 626, 0, 624, 0, 0, 627, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 216, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1024, 629, 630, 631, 632, 633, 634, 635, 217, 0, 1026, 0, 0, 0, 218, 219, 220, 221, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 628, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 623, 622, 0, 0, 0, 628, 0, 0, 624, 0, 0, 622, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 622, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 623, 0, 627, 0, 0, 0, 0, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 1029, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1030, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1031, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1035, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1036, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1037, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 622, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 622, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1038, 622, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 622, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1039, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 622, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 623, 0, 1040, 0, 0, 0, 0, 0, 624, 0, 0, 0, 622, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1041, 0, 0, 0, 0, 625, 0, 0, 0, 622, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 623, 0, 1042, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 622, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1043, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 628, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1044, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1045, 0, 0, 0, 0, 625, 0, 0, 623, 622, 0, 0, 0, 0, 626, 0, 624, 0, 0, 627, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1051, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 628, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1053, 0, 0, 622, 0, 0, 0, 628, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 0, 0, 624, 0, 623, 622, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 629, 630, 631, 632, 633, 634, 635, 0, 626, 1055, 0, 0, 0, 627, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1059, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1063, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1064, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1065, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 1067, 623, 622, 0, 0, 0, 0, 0, 0, 624, 0, 0, 622, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 628, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1069, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 623, 622, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 629, 630, 631, 632, 633, 634, 635, 0, 626, 1070, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 628, 0, 1072, 629, 630, 631, 632, 633, 634, 635, 628, 0, 1075, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1076, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1077, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 628, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1104, 623, 622, 0, 0, 0, 0, 0, 0, 624, 0, 0, 622, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 628, 1105, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 623, 622, 0, 0, 0, 628, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 622, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 0, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1106, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1109, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1114, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 623, 0, 0, 0, 0, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1115, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1116, 0, 0, 628, 622, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 622, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1118, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 1, 0, 622, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 2, 0, 627, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1120, 16, 17, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 18, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 622, 0, 1125, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1126, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 22, 0, 629, 630, 631, 632, 633, 634, 635, 623, 622, 1136, 0, 0, 0, 0, 0, 624, 0, 0, 622, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1138, 0, 628, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 623, 622, 0, 0, 0, 628, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 622, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 0, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1141, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1211, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1454, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 623, 0, 0, 0, 0, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1455, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1460, 0, 0, 628, 622, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 622, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1468, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1471, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 622, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1473, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 622, 0, 1474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1476, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 623, 622, 1482, 0, 0, 0, 0, 0, 624, 0, 0, 622, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1483, 0, 628, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 623, 622, 0, 0, 0, 628, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 622, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 0, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1485, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1491, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1492, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 623, 0, 0, 0, 0, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1494, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1495, 0, 0, 628, 622, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 622, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1503, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1507, 0, 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 628, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 622, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 629, 630, 631, 632, 633, 634, 635, 624, 0, 1508, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 622, 0, 1510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1603, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 623, 622, 1605, 0, 0, 0, 0, 0, 624, 0, 0, 622, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 623, 0, 0, 0, 0, 625, 0, 0, 624, 0, 0, 0, 0, 0, 626, 625, 0, 0, 0, 627, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1652, 0, 628, 0, 0, 0, 0, 0, 622, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 623, 622, 0, 0, 0, 628, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 622, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 623, 0, 0, 0, 0, 0, 0, 626, 624, 0, 0, 0, 627, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1653, 0, 0, 627, 0, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1657, 629, 630, 631, 632, 633, 634, 635, 0, 622, 1658, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 623, 0, 0, 0, 0, 622, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 629, 630, 631, 632, 633, 634, 635, 626, 0, 1660, 0, 0, 627, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1661, 0, 0, 628, 622, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1662, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 628, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 1664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, 268, 269, 270, 271, 272, 0, 0, 75, 0, 0, 0, 0, 0, 273, 76, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 78, 848, 79, 0, 0, 0, 80, 0, 0, 629, 630, 631, 632, 633, 634, 635, 81, 0, 1697, 82, 83, 274, 0, 275, 84, 0, 0, 0, 85, 276, 0, 86, 0, 0, 0, 0, 0, 277, 0, 849, 278, 87, 0, 88, 0, 0, 89, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 90, 280, 281, 629, 630, 631, 632, 633, 634, 635, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 850, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 282, 283, 284, 285, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 288, 0, 289, 290, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 291, 292, 293, 294, 295, 0, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 111, 316, 317, 318, 0, 0, 0, 0, 319, 320, 321, 322, 0, 0, 0, 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 333, 115, 334, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 267, 268, 269, 270, 271, 272, 0, 0, 75, 0, 392, 0, 0, 0, 273, 76, 393, 0, 0, 394, 0, 395, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 274, 0, 275, 84, 0, 0, 0, 85, 276, 0, 86, 0, 0, 0, 0, 0, 277, 0, 0, 278, 87, 0, 88, 0, 0, 89, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 90, 280, 281, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 282, 283, 284, 285, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 288, 0, 289, 290, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 291, 292, 293, 294, 295, 0, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 111, 316, 317, 318, 0, 0, 0, 0, 319, 320, 321, 322, 0, 0, 0, 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 333, 115, 334, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 267, 268, 269, 270, 271, 272, 0, 0, 75, 0, 392, 0, 0, 0, 273, 76, 393, 769, 0, 394, 0, 395, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 274, 0, 275, 84, 0, 0, 0, 85, 276, 0, 86, 0, 0, 0, 0, 0, 277, 0, 0, 278, 87, 0, 88, 0, 0, 89, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 90, 280, 281, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 282, 283, 284, 285, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 288, 0, 289, 290, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 291, 292, 293, 294, 295, 0, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 111, 316, 317, 318, 0, 0, 0, 0, 319, 320, 321, 322, 0, 0, 0, 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 333, 115, 334, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 267, 268, 269, 270, 271, 272, 0, 0, 75, 0, 392, 0, 0, 0, 273, 76, 393, 802, 0, 394, 0, 395, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 274, 0, 275, 84, 0, 0, 0, 85, 276, 0, 86, 0, 0, 0, 0, 0, 277, 0, 0, 278, 87, 0, 88, 0, 0, 89, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 90, 280, 281, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 282, 283, 284, 285, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 288, 0, 289, 290, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 291, 292, 293, 294, 295, 0, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 111, 316, 317, 318, 0, 0, 0, 0, 319, 320, 321, 322, 0, 0, 0, 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 333, 115, 334, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 267, 268, 269, 270, 271, 272, 0, 0, 75, 0, 392, 0, 0, 0, 273, 76, 393, 814, 0, 394, 0, 395, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 274, 0, 275, 84, 0, 0, 0, 85, 276, 0, 86, 0, 0, 0, 0, 0, 277, 0, 0, 278, 87, 0, 88, 0, 0, 89, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 90, 280, 281, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 282, 283, 284, 285, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 288, 0, 289, 290, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 291, 292, 293, 294, 295, 0, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 111, 316, 317, 318, 0, 0, 0, 0, 319, 320, 321, 322, 0, 0, 0, 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 333, 115, 334, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 267, 268, 269, 270, 271, 272, 0, 0, 75, 0, 392, 0, 0, 0, 273, 76, 393, 825, 0, 394, 0, 395, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 274, 0, 275, 84, 0, 0, 0, 85, 276, 0, 86, 0, 0, 0, 0, 0, 277, 0, 0, 278, 87, 0, 88, 0, 0, 89, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 90, 280, 281, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 282, 283, 284, 285, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 288, 0, 289, 290, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 291, 292, 293, 294, 295, 0, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 111, 316, 317, 318, 0, 0, 0, 0, 319, 320, 321, 322, 0, 0, 0, 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 333, 115, 334, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 267, 268, 269, 270, 271, 272, 0, 0, 75, 0, 392, 0, 0, 0, 273, 76, 393, 855, 0, 394, 0, 395, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 274, 0, 275, 84, 0, 0, 0, 85, 276, 0, 86, 0, 0, 0, 0, 0, 277, 0, 0, 278, 87, 0, 88, 0, 0, 89, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 90, 280, 281, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 282, 283, 284, 285, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 288, 0, 289, 290, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 291, 292, 293, 294, 295, 0, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 111, 316, 317, 318, 0, 0, 0, 0, 319, 320, 321, 322, 0, 0, 0, 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 333, 115, 334, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 392, 0, 0, 0, 0, 76, 393, 0, 0, 394, 0, 395, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 455, 456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 457, 0, 0, 0, 0, 0, 0, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 458, 0, 73, 0, 74, 102, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 73, 104, 74, 105, 106, 0, 0, 0, 75, 0, 0, 107, 0, 0, 0, 76, 108, 0, 0, 0, 0, 0, 0, 459, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 109, 110, 0, 111, 112, 113, 114, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 115, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 1437, 0, 0, 285, 75, 0, 0, 0, 0, 0, 0, 76, 479, 0, 0, 103, 0, 480, 0, 122, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 1636, 0, 0, 285, 75, 0, 0, 0, 0, 0, 0, 76, 8, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 396, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 73, 104, 74, 105, 106, 0, 0, 0, 75, 0, 0, 107, 0, 0, 0, 76, 108, 0, 0, 0, 0, 0, 0, 396, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 109, 110, 0, 111, 112, 113, 114, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 0, 241, 0, 0, 0, 115, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 122, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 122, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 73, 104, 74, 105, 106, 0, 0, 0, 75, 0, 0, 107, 656, 0, 0, 76, 108, 0, 0, 0, 0, 0, 0, 122, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 109, 110, 0, 111, 112, 113, 114, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 115, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 480, 0, 122, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 122, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 622, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 623, 104, 0, 105, 106, 0, 0, 0, 624, 0, 0, 107, 0, 0, 0, 625, 108, 0, 622, 0, 0, 0, 0, 396, 626, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 0, 111, 112, 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 115, 625, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 627, 0, 0, 0, 116, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 0, 0, 0, 0, 0, 0, 0, 1089, 1577, 1578, 0, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 0, 0, 0, 0, 1587, 1588, 1589, 0, 0, 0, 1166, 0, 0, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090, 628, 0, 0, 0, 0, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 1167, 0, 1093, 0, 0, 0, 0, 1094, 1168, 0, 0, 0, 0, 0, 0, 1169, 0, 0, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 1171, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 0, 629, 630, 631, 632, 633, 634, 635, 0, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1342, 0, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 0, 0, 0, 0, 0, 0, 0, 1490, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 629, 630, 631, 632, 633, 634, 635, 0, 0, 0, 1167, 0, 1520, 0, 0, 1172, 0, 0, 1168, 0, 0, 0, 0, 0, 0, 1169, 0, 0, 1167, 0, 0, 0, 0, 0, 1170, 0, 1168, 0, 0, 1171, 0, 0, 0, 1169, 0, 0, 0, 0, 0, 0, 1167, 0, 1170, 0, 0, 0, 0, 1171, 1168, 0, 0, 0, 0, 0, 0, 1169, 0, 0, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 1171, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 0, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 0, 1596, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 1610, 0, 0, 0, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1172, 0, 0, 0, 0, 0, 613, 614, 615, 616, 617, 618, 619, 620, 621, 0, 0, 1167, 0, 0, 0, 0, 1172, 0, 0, 1168, 0, 1167, 0, 0, 0, 0, 1169, 0, 0, 1168, 0, 0, 0, 0, 0, 1170, 1169, 0, 622, 0, 1171, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 1171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 0, 0, 0, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 629, 630, 631, 632, 633, 634, 635, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 73, 104, 74, 105, 106, 0, 0, 0, 75, 0, 0, 107, 898, 0, 0, 76, 108, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 109, 110, 0, 111, 112, 113, 114, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 115, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 0, 75, 0, 0, 0, 1187, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 0, 0, 0, 245, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 73, 104, 74, 105, 106, 0, 0, 0, 75, 0, 0, 107, 1370, 0, 0, 76, 108, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, 0, 0, 80, 0, 0, 109, 110, 0, 111, 112, 113, 114, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 115, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 675, 75, 676, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 73, 0, 74, 102, 0, 0, 0, 1147, 75, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 103, 0, 0, 0, 0, 77, 0, 104, 0, 105, 106, 0, 78, 0, 79, 0, 0, 107, 80, 0, 0, 0, 108, 0, 0, 0, 0, 0, 81, 0, 0, 82, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 86, 0, 0, 109, 110, 0, 111, 112, 113, 114, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 115, 0, 0, 0, 0, 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 116, 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 104, 0, 105, 106, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 0, 111, 112, 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116 }; static const short yycheck[] = { 20, 435, 201, 266, 887, 70, 175, 464, 1154, 1440, 11, 12, 117, 714, 38, 35, 40, 41, 985, 161, 70, 35, 288, 289, 290, 194, 4, 47, 48, 79, 50, 713, 1241, 47, 54, 101, 56, 11, 12, 134, 106, 61, 1251, 63, 1253, 11, 12, 61, 432, 63, 489, 490, 491, 492, 493, 727, 198, 729, 730, 76, 29, 733, 4, 24, 104, 24, 63, 104, 151, 136, 151, 1242, 151, 512, 77, 514, 100, 570, 146, 13, 41, 15, 41, 26, 80, 80, 76, 155, 88, 11, 474, 53, 88, 88, 412, 95, 48, 39, 408, 95, 95, 411, 122, 104, 4, 21, 126, 1538, 53, 53, 130, 131, 126, 43, 134, 48, 136, 131, 69, 122, 134, 82, 53, 82, 54, 148, 129, 148, 149, 150, 104, 624, 1543, 62, 131, 628, 58, 134, 104, 39, 91, 102, 1553, 102, 56, 97, 121, 122, 168, 99, 62, 93, 68, 173, 168, 175, 176, 99, 127, 173, 1306, 105, 182, 481, 97, 77, 192, 187, 182, 122, 103, 25, 192, 187, 117, 136, 196, 197, 32, 258, 200, 13, 196, 15, 117, 147, 200, 19, 20, 1706, 22, 191, 126, 135, 26, 191, 191, 1714, 120, 502, 203, 93, 107, 148, 1635, 150, 53, 99, 1639, 1355, 51, 316, 1095, 516, 143, 144, 148, 148, 150, 150, 1391, 241, 3, 318, 447, 448, 449, 241, 929, 255, 142, 143, 252, 122, 254, 318, 70, 318, 258, 77, 254, 261, 441, 135, 258, 85, 1213, 323, 316, 1216, 316, 318, 269, 318, 280, 233, 81, 104, 105, 941, 72, 258, 122, 1694, 96, 58, 59, 106, 318, 129, 310, 311, 312, 313, 314, 312, 313, 314, 157, 158, 75, 547, 306, 154, 144, 101, 247, 61, 247, 1172, 106, 318, 87, 312, 126, 70, 143, 92, 145, 170, 63, 64, 151, 152, 317, 318, 185, 308, 309, 310, 311, 312, 313, 314, 118, 108, 988, 52, 154, 123, 156, 88, 57, 70, 119, 161, 121, 90, 104, 105, 123, 66, 598, 317, 318, 309, 310, 311, 312, 313, 314, 1487, 77, 203, 310, 311, 312, 313, 314, 422, 423, 104, 105, 426, 317, 318, 70, 318, 317, 318, 104, 105, 317, 318, 181, 182, 392, 393, 394, 117, 241, 1517, 605, 606, 245, 395, 396, 78, 113, 317, 318, 317, 318, 106, 119, 130, 121, 258, 92, 317, 318, 316, 885, 128, 887, 136, 317, 318, 418, 318, 420, 151, 317, 318, 317, 318, 420, 427, 317, 318, 318, 105, 107, 427, 434, 317, 318, 106, 438, 317, 318, 441, 849, 850, 438, 318, 117, 1310, 4, 300, 301, 302, 303, 304, 305, 455, 307, 4, 4, 459, 4, 640, 318, 4, 464, 106, 184, 112, 79, 70, 316, 316, 316, 316, 148, 149, 150, 151, 152, 479, 480, 316, 1671, 1672, 316, 316, 316, 151, 494, 495, 496, 497, 498, 499, 500, 932, 170, 1360, 172, 173, 506, 507, 508, 509, 510, 511, 685, 513, 316, 515, 316, 517, 518, 519, 316, 521, 638, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 323, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 316, 928, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 4, 599, 316, 148, 602, 603, 881, 316, 316, 56, 316, 316, 610, 316, 1258, 613, 614, 615, 616, 617, 618, 323, 620, 621, 622, 316, 1091, 625, 316, 627, 1095, 629, 630, 631, 632, 633, 634, 635, 316, 316, 151, 316, 316, 114, 642, 637, 316, 316, 316, 115, 98, 643, 316, 318, 316, 131, 316, 316, 316, 651, 151, 316, 316, 4, 5, 6, 7, 8, 9, 10, 11, 12, 316, 316, 316, 316, 316, 316, 316, 104, 4, 5, 6, 7, 8, 9, 10, 11, 12, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 42, 316, 1168, 316, 697, 698, 1172, 316, 701, 702, 703, 316, 711, 316, 316, 316, 703, 42, 316, 316, 316, 714, 317, 316, 316, 718, 316, 316, 316, 722, 316, 718, 316, 1009, 727, 1011, 729, 730, 80, 738, 733, 316, 316, 316, 316, 316, 88, 316, 316, 316, 922, 316, 316, 95, 753, 80, 316, 316, 316, 316, 316, 316, 104, 88, 316, 316, 316, 109, 316, 316, 95, 1047, 316, 316, 316, 316, 1052, 39, 316, 104, 316, 316, 312, 316, 109, 316, 1062, 316, 316, 316, 1435, 316, 3, 4, 1201, 20, 316, 1073, 23, 316, 25, 26, 27, 316, 29, 316, 316, 32, 316, 316, 316, 316, 316, 24, 316, 316, 316, 135, 317, 317, 323, 317, 317, 317, 125, 316, 323, 4, 39, 316, 41, 324, 70, 323, 323, 316, 248, 4, 142, 142, 142, 316, 1308, 142, 1310, 151, 71, 316, 82, 191, 247, 111, 77, 74, 317, 317, 317, 317, 317, 317, 317, 317, 317, 74, 317, 317, 191, 317, 79, 105, 317, 82, 317, 98, 867, 868, 60, 1153, 316, 323, 4, 323, 79, 312, 151, 318, 4, 886, 318, 4, 183, 102, 1358, 316, 1360, 106, 316, 316, 316, 110, 316, 316, 316, 316, 247, 116, 316, 132, 316, 120, 1555, 82, 47, 138, 139, 140, 141, 116, 57, 912, 913, 243, 915, 318, 917, 136, 243, 151, 151, 922, 148, 148, 70, 70, 70, 148, 929, 317, 316, 932, 122, 151, 239, 4, 5, 6, 7, 8, 9, 10, 11, 12, 317, 946, 318, 53, 53, 316, 316, 155, 148, 148, 148, 148, 316, 148, 308, 309, 310, 311, 312, 313, 314, 184, 148, 148, 148, 105, 142, 148, 322, 42, 148, 308, 309, 310, 311, 312, 313, 314, 111, 82, 985, 110, 89, 988, 317, 322, 317, 105, 105, 317, 317, 317, 317, 317, 317, 1006, 1007, 1008, 318, 1010, 317, 47, 71, 148, 82, 106, 318, 80, 1259, 317, 1021, 1195, 316, 47, 317, 88, 317, 1028, 317, 317, 317, 1032, 95, 318, 247, 318, 317, 184, 318, 318, 47, 104, 47, 58, 47, 148, 109, 148, 37, 1050, 317, 264, 107, 151, 317, 120, 1057, 146, 148, 1060, 1061, 148, 148, 148, 264, 1066, 47, 1068, 47, 47, 1071, 317, 317, 1074, 318, 318, 1354, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1259, 1087, 1088, 1089, 1090, 106, 1092, 316, 1094, 76, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 317, 317, 318, 1107, 1108, 317, 1110, 317, 1112, 1113, 317, 317, 148, 318, 89, 0, 316, 1121, 1122, 1123, 1124, 318, 317, 1127, 0, 191, 941, 1206, 949, 1133, 316, 1135, 317, 1415, 981, 1248, 1140, 1530, 1537, 1397, 1218, 1382, 1401, 1419, 137, 35, 449, 923, 151, 708, 1198, 1563, 991, 1157, 1158, 1159, 1160, 1161, 1162, 1464, 1164, 1165, 1166, 450, 263, 1169, 1714, 1171, 483, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 57, 1181, 1422, 1423, 1424, 265, 1180, 187, 1182, 241, 479, 1185, 1688, 259, 1200, 188, 1196, 1521, 1449, 1199, 1612, 1572, 922, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1206, 1195, 1559, 1677, 192, 915, 434, 1213, 916, 436, 1216, 15, 119, 420, 172, 1377, 438, 4, 5, 6, 7, 8, 9, 10, 11, 12, 428, 1516, 1185, 42, -1, 1656, 917, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 318, -1, -1, -1, -1, -1, -1, -1, 1258, -1, -1, 42, -1, -1, 1270, 1679, -1, -1, 1274, 1275, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, 80, -1, -1, 109, 1309, -1, -1, -1, 88, -1, -1, -1, -1, -1, 1559, 95, -1, 1562, -1, -1, -1, -1, -1, -1, 104, -1, 1331, 1332, 1333, 109, -1, -1, -1, -1, -1, -1, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1359, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 1373, -1, -1, -1, 1377, -1, 1373, 1559, -1, 1665, 1562, 191, -1, -1, 1387, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 1401, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, 1565, 1566, -1, 1568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1677, -1, 80, -1, 1435, 1442, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, 1453, 95, -1, -1, 1457, -1, -1, -1, 1461, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1478, 1479, -1, 1624, -1, -1, -1, -1, -1, -1, -1, -1, 1490, -1, -1, 1493, -1, -1, 1496, -1, 1498, -1, -1, 1501, 1502, 1646, 1677, 1648, 1649, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 318, -1, -1, 1520, -1, -1, -1, -1, -1, -1, 1527, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 318, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, 1557, -1, -1, -1, 1555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1596, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 1610, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1642, 42, -1, 1651, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, 70, -1, 308, 309, 310, 311, 312, 313, 314, 1674, 80, 317, 318, -1, -1, -1, 1675, -1, 88, -1, -1, -1, 80, -1, -1, 95, -1, -1, -1, -1, 88, -1, -1, 80, 104, -1, -1, 95, -1, 109, -1, 88, -1, -1, 1709, 1704, 104, -1, 95, -1, -1, 109, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 42, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, 80, 42, -1, -1, -1, -1, -1, -1, 88, -1, -1, 80, -1, -1, -1, 95, -1, -1, -1, 88, -1, -1, 80, -1, 104, -1, 95, -1, -1, 109, 88, -1, -1, -1, -1, 104, -1, 95, -1, 80, 109, -1, -1, -1, -1, -1, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, -1, 44, -1, 46, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 86, -1, -1, 318, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, 317, 318, 308, 309, 310, 311, 312, 313, 314, 191, -1, 317, 318, -1, -1, -1, -1, 117, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, 146, -1, -1, -1, -1, -1, -1, -1, 154, -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 209, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, 318, 308, 309, 310, 311, 312, 313, 314, -1, 42, -1, 318, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 80, -1, -1, 318, -1, -1, -1, -1, 88, -1, -1, 80, -1, -1, -1, 95, -1, -1, -1, 88, -1, -1, -1, -1, 104, -1, 95, -1, -1, 109, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 42, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, 80, 42, -1, -1, -1, -1, -1, -1, 88, -1, -1, 80, 42, -1, -1, 95, -1, -1, -1, 88, -1, -1, 80, -1, 104, -1, 95, -1, -1, 109, 88, -1, -1, -1, -1, 104, -1, 95, -1, 80, 109, -1, -1, -1, -1, -1, 104, 88, -1, -1, 80, 109, -1, -1, 95, -1, -1, -1, 88, -1, -1, -1, -1, 104, -1, 95, -1, -1, 109, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, -1, 318, 308, 309, 310, 311, 312, 313, 314, 191, -1, -1, 318, 42, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -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, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, 308, 309, 310, 311, 312, 313, 314, 42, -1, -1, 318, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 191, -1, 318, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 80, 318, 42, -1, -1, 191, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 80, 42, -1, -1, -1, -1, 104, -1, 88, -1, -1, 109, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, 80, -1, 104, -1, -1, -1, -1, 109, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, -1, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, 42, 318, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 42, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 80, -1, -1, -1, 42, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, 80, -1, -1, -1, -1, 104, -1, -1, 88, -1, 109, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, 80, 104, -1, -1, -1, -1, 109, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, 191, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, 42, -1, 191, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 42, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, -1, 318, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 42, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, 80, -1, 104, -1, -1, -1, -1, 109, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, 80, -1, -1, -1, 104, -1, -1, -1, 88, 109, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, 42, -1, 318, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 42, -1, -1, -1, 191, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 80, -1, -1, 191, 42, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, 42, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, 80, -1, -1, -1, 109, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, 80, -1, -1, -1, -1, 104, -1, -1, 88, -1, 109, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, 191, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 191, 42, 318, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, 42, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 191, -1, 318, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 42, -1, 318, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, 42, -1, 318, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 42, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, 42, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, 80, -1, -1, 109, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 80, -1, -1, -1, -1, -1, 104, -1, 88, -1, -1, 109, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, 42, -1, 318, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, 42, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, -1, 318, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 42, -1, 318, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, 42, -1, 318, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 42, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, 42, 104, 88, -1, -1, -1, 109, -1, -1, 95, 70, -1, -1, -1, -1, -1, -1, -1, 104, -1, 80, -1, -1, 109, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 80, -1, -1, -1, -1, -1, 104, -1, 88, -1, -1, 109, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, 318, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, 42, -1, 318, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 318, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, 317, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, 42, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, 42, -1, 317, 308, 309, 310, 311, 312, 313, 314, 42, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, 80, 42, 104, 95, -1, -1, -1, 109, 88, -1, -1, -1, 104, -1, -1, 95, -1, 109, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, 42, -1, 317, -1, 191, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 191, 4, 5, 6, 7, 8, 9, 10, 11, 12, 191, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 42, 20, -1, -1, 23, -1, 25, 26, 27, -1, 29, -1, -1, 32, -1, -1, -1, -1, 42, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, 71, 95, -1, -1, 80, -1, 77, -1, -1, -1, 104, -1, 88, -1, -1, 109, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, 98, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, 132, -1, 317, -1, -1, -1, 138, 139, 140, 141, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, 191, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 80, 42, -1, -1, -1, 191, -1, -1, 88, -1, -1, 42, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, 42, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, 80, -1, 109, -1, -1, -1, -1, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, 42, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, 42, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, 42, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, 42, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, 42, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 80, -1, 317, -1, -1, -1, -1, -1, 88, -1, -1, -1, 42, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, -1, -1, -1, -1, 95, -1, -1, -1, 42, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 80, -1, 317, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 42, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 191, 4, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, -1, -1, -1, -1, 95, -1, -1, 80, 42, -1, -1, -1, -1, 104, -1, 88, -1, -1, 109, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, 191, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 42, -1, -1, -1, 191, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, 42, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, 308, 309, 310, 311, 312, 313, 314, -1, 104, 317, -1, -1, -1, 109, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, 317, 80, 42, -1, -1, -1, -1, -1, -1, 88, -1, -1, 42, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, 191, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 80, 42, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, 308, 309, 310, 311, 312, 313, 314, -1, 104, 317, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, 317, 308, 309, 310, 311, 312, 313, 314, 191, -1, 317, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 191, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 80, 42, -1, -1, -1, -1, -1, -1, 88, -1, -1, 42, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 191, 317, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, 80, 42, -1, -1, -1, 191, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 42, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, -1, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 80, -1, -1, -1, -1, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 191, 42, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, 42, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, 3, -1, 42, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, 20, -1, 109, 23, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, -1, -1, -1, -1, -1, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, 54, 55, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, 71, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, 42, -1, 317, -1, -1, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, 269, -1, 308, 309, 310, 311, 312, 313, 314, 80, 42, 317, -1, -1, -1, -1, -1, 88, -1, -1, 42, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 191, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, 80, 42, -1, -1, -1, 191, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 42, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, -1, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 80, -1, -1, -1, -1, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 191, 42, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, 42, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, 42, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, 42, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 80, 42, 317, -1, -1, -1, -1, -1, 88, -1, -1, 42, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 191, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, 80, 42, -1, -1, -1, 191, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 42, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, -1, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 80, -1, -1, -1, -1, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 191, 42, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, 42, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, 42, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 308, 309, 310, 311, 312, 313, 314, 88, -1, 317, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, 42, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 80, 42, 317, -1, -1, -1, -1, -1, 88, -1, -1, 42, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, -1, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 191, -1, -1, -1, -1, -1, 42, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, 80, 42, -1, -1, -1, 191, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 42, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 80, -1, -1, -1, -1, -1, -1, 104, 88, -1, -1, -1, 109, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, 308, 309, 310, 311, 312, 313, 314, -1, 42, 317, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 80, -1, -1, -1, -1, 42, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, 317, -1, -1, 109, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 191, 42, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 191, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, -1, -1, 21, -1, -1, -1, -1, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 44, 45, 46, -1, -1, -1, 50, -1, -1, 308, 309, 310, 311, 312, 313, 314, 60, -1, 317, 63, 64, 65, -1, 67, 68, -1, -1, -1, 72, 73, -1, 75, -1, -1, -1, -1, -1, 81, -1, 83, 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 308, 309, 310, 311, 312, 313, 314, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, 124, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, 221, 222, 223, -1, -1, -1, 227, 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, 238, 239, 240, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 13, 14, 15, 16, 17, 18, -1, -1, 21, -1, 310, -1, -1, -1, 27, 28, 316, -1, -1, 319, -1, 321, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, -1, 67, 68, -1, -1, -1, 72, 73, -1, 75, -1, -1, -1, -1, -1, 81, -1, -1, 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, 221, 222, 223, -1, -1, -1, 227, 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, 238, 239, 240, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 13, 14, 15, 16, 17, 18, -1, -1, 21, -1, 310, -1, -1, -1, 27, 28, 316, 317, -1, 319, -1, 321, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, -1, 67, 68, -1, -1, -1, 72, 73, -1, 75, -1, -1, -1, -1, -1, 81, -1, -1, 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, 221, 222, 223, -1, -1, -1, 227, 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, 238, 239, 240, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 13, 14, 15, 16, 17, 18, -1, -1, 21, -1, 310, -1, -1, -1, 27, 28, 316, 317, -1, 319, -1, 321, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, -1, 67, 68, -1, -1, -1, 72, 73, -1, 75, -1, -1, -1, -1, -1, 81, -1, -1, 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, 221, 222, 223, -1, -1, -1, 227, 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, 238, 239, 240, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 13, 14, 15, 16, 17, 18, -1, -1, 21, -1, 310, -1, -1, -1, 27, 28, 316, 317, -1, 319, -1, 321, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, -1, 67, 68, -1, -1, -1, 72, 73, -1, 75, -1, -1, -1, -1, -1, 81, -1, -1, 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, 221, 222, 223, -1, -1, -1, 227, 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, 238, 239, 240, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 13, 14, 15, 16, 17, 18, -1, -1, 21, -1, 310, -1, -1, -1, 27, 28, 316, 317, -1, 319, -1, 321, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, -1, 67, 68, -1, -1, -1, 72, 73, -1, 75, -1, -1, -1, -1, -1, 81, -1, -1, 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, 221, 222, 223, -1, -1, -1, 227, 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, 238, 239, 240, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 13, 14, 15, 16, 17, 18, -1, -1, 21, -1, 310, -1, -1, -1, 27, 28, 316, 317, -1, 319, -1, 321, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, -1, 67, 68, -1, -1, -1, 72, 73, -1, 75, -1, -1, -1, -1, -1, 81, -1, -1, 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, 148, 149, 150, 151, 152, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, 221, 222, 223, -1, -1, -1, 227, 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, 238, 239, 240, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 13, -1, 15, -1, -1, -1, -1, -1, 21, -1, 310, -1, -1, -1, -1, 28, 316, -1, -1, 319, -1, 321, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, 77, -1, -1, -1, -1, -1, -1, -1, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, 142, -1, 13, -1, 15, 147, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, 13, 170, 15, 172, 173, -1, -1, -1, 21, -1, -1, 180, -1, -1, -1, 28, 185, -1, -1, -1, -1, -1, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, 209, 210, -1, 212, 213, 214, 215, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, 239, -1, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, 148, -1, -1, 151, 21, -1, -1, -1, -1, -1, -1, 28, 316, -1, -1, 163, -1, 321, -1, 323, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, 148, -1, -1, 151, 21, -1, -1, -1, -1, -1, -1, 28, 29, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, 323, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, 13, 170, 15, 172, 173, -1, -1, -1, 21, -1, -1, 180, -1, -1, -1, 28, 185, -1, -1, -1, -1, -1, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, 209, 210, -1, 212, 213, 214, 215, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, 79, -1, -1, -1, 239, -1, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, 323, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, 323, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, 13, 170, 15, 172, 173, -1, -1, -1, 21, -1, -1, 180, 312, -1, -1, 28, 185, -1, -1, -1, -1, -1, -1, 323, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, 209, 210, -1, 212, 213, 214, 215, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, 239, -1, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, 321, -1, 323, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, 323, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, 42, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, 80, 170, -1, 172, 173, -1, -1, -1, 88, -1, -1, 180, -1, -1, -1, 95, 185, -1, 42, -1, -1, -1, -1, 323, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, 212, 213, 214, 215, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, 239, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, 258, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 42, 209, 210, -1, 212, 213, 214, 215, 216, 217, 218, 219, -1, -1, -1, -1, 224, 225, 226, -1, -1, -1, 42, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 191, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, 80, -1, 104, -1, -1, -1, -1, 109, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 308, 309, 310, 311, 312, 313, 314, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, 191, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 80, -1, 42, -1, -1, 191, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, 80, -1, -1, -1, -1, -1, 104, -1, 88, -1, -1, 109, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, 80, -1, 104, -1, -1, -1, -1, 109, 88, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, 42, -1, -1, 191, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, 191, -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 80, -1, -1, -1, -1, 191, -1, -1, 88, -1, 80, -1, -1, -1, -1, 95, -1, -1, 88, -1, -1, -1, -1, -1, 104, 95, -1, 42, -1, 109, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 95, -1, 308, 309, 310, 311, 312, 313, 314, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, 15, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, 308, 309, 310, 311, 312, 313, 314, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, 13, 170, 15, 172, 173, -1, -1, -1, 21, -1, -1, 180, 312, -1, -1, 28, 185, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, 209, 210, -1, 212, 213, 214, 215, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, 239, -1, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, -1, 21, -1, -1, -1, 312, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, -1, -1, -1, 151, 152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, 13, 170, 15, 172, 173, -1, -1, -1, 21, -1, -1, 180, 312, -1, -1, 28, 185, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, 50, -1, -1, 209, 210, -1, 212, 213, 214, 215, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, 239, -1, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, 151, 21, 153, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, 13, -1, 15, 147, -1, -1, -1, 151, 21, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, 163, -1, -1, -1, -1, 37, -1, 170, -1, 172, 173, -1, 44, -1, 46, -1, -1, 180, 50, -1, -1, -1, 185, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, -1, -1, -1, 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, 209, 210, -1, 212, 213, 214, 215, 85, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 239, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 258, 128, 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, 170, -1, 172, 173, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, 212, 213, 214, 215, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258 }; #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/my/gnu/lib/bison/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { void *alloca (unsigned int); }; #else /* not __cplusplus */ void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc. */ #endif /* not GNU C. */ #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT return(0) #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ int yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 196 "/my/gnu/lib/bison/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 1: #line 469 "sql_yacc.yy" { if (!current_thd->bootstrap) send_error(¤t_thd->net,ER_EMPTY_QUERY); YYABORT; ; break;} case 2: #line 474 "sql_yacc.yy" {; break;} case 23: #line 502 "sql_yacc.yy" { Lex->sql_command= SQLCOM_CREATE_TABLE; if (!add_table_to_list(yyvsp[0].table,NULL)) YYABORT; Lex->create_list.empty(); Lex->key_list.empty(); Lex->col_list.empty(); Lex->change=NullS; ; break;} case 25: #line 513 "sql_yacc.yy" { Lex->sql_command= SQLCOM_CREATE_INDEX; if (!add_table_to_list(yyvsp[0].table,NULL)) YYABORT; Lex->create_list.empty(); Lex->key_list.empty(); Lex->col_list.empty(); Lex->change=NullS; ; break;} case 26: #line 523 "sql_yacc.yy" { Lex->key_list.push_back(new Key(yyvsp[-8].key_type,yyvsp[-6].lex_str.str,Lex->col_list)); Lex->col_list.empty(); ; break;} case 27: #line 528 "sql_yacc.yy" { Lex->sql_command=SQLCOM_CREATE_DB; Lex->name=yyvsp[0].lex_str.str; ; break;} case 28: #line 533 "sql_yacc.yy" { Lex->sql_command = SQLCOM_CREATE_FUNCTION; Lex->udf.name=yyvsp[0].lex_str.str; Lex->udf.name_length=yyvsp[0].lex_str.length; ; break;} case 29: #line 539 "sql_yacc.yy" { Lex->udf.returns=(Item_result) yyvsp[-2].num; Lex->udf.dl=yyvsp[0].lex_str.str; ; break;} case 34: #line 553 "sql_yacc.yy" { Lex->db_type= yyvsp[0].db_type; ; break;} case 35: #line 554 "sql_yacc.yy" { Lex->max_rows= yyvsp[0].ulonglong_num; ; break;} case 36: #line 555 "sql_yacc.yy" { Lex->avg_length=yyvsp[0].ulong_num; ; break;} case 37: #line 558 "sql_yacc.yy" { yyval.db_type= DB_TYPE_ISAM; ; break;} case 38: #line 559 "sql_yacc.yy" { yyval.db_type= DB_TYPE_HEAP; ; break;} case 39: #line 560 "sql_yacc.yy" { yyval.db_type= DB_TYPE_HEAP; ; break;} case 40: #line 563 "sql_yacc.yy" {yyval.num = (int) STRING_RESULT; ; break;} case 41: #line 564 "sql_yacc.yy" {yyval.num = (int) REAL_RESULT; ; break;} case 42: #line 565 "sql_yacc.yy" {yyval.num = (int) INT_RESULT; ; break;} case 46: #line 575 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ ; break;} case 47: #line 579 "sql_yacc.yy" { Lex->key_list.push_back(new Key(yyvsp[-4].key_type,yyvsp[-3].simple_string,Lex->col_list)); Lex->col_list.empty(); /* Alloced by sql_alloc */ ; break;} case 48: #line 584 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ ; break;} case 49: #line 588 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ ; break;} case 52: #line 598 "sql_yacc.yy" { Lex->length=Lex->dec=0; Lex->type=0; Lex->interval=0; Lex->default_value=0; ; break;} case 53: #line 603 "sql_yacc.yy" { if (add_field_to_list(yyvsp[-3].lex_str.str, (enum enum_field_types) yyvsp[-1].num, Lex->length,Lex->dec,Lex->type, Lex->default_value,Lex->change, Lex->interval)) YYABORT; ; break;} case 54: #line 613 "sql_yacc.yy" { Lex->length=yyvsp[-1].simple_string; yyval.num=yyvsp[-2].num; ; break;} case 55: #line 614 "sql_yacc.yy" { yyval.num=yyvsp[-2].num; ; break;} case 56: #line 615 "sql_yacc.yy" { yyval.num=FIELD_TYPE_FLOAT; ; break;} case 57: #line 616 "sql_yacc.yy" { Lex->length="1"; yyval.num=FIELD_TYPE_TINY; ; break;} case 58: #line 618 "sql_yacc.yy" { Lex->length="1"; yyval.num=FIELD_TYPE_TINY; ; break;} case 59: #line 620 "sql_yacc.yy" { Lex->length=yyvsp[-2].lex_str.str; yyval.num=FIELD_TYPE_STRING; ; break;} case 60: #line 622 "sql_yacc.yy" { Lex->length="1"; yyval.num=FIELD_TYPE_STRING; ; break;} case 61: #line 624 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_STRING; ; break;} case 62: #line 627 "sql_yacc.yy" { Lex->length=yyvsp[-2].lex_str.str; yyval.num=FIELD_TYPE_VAR_STRING; ; break;} case 63: #line 629 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_VAR_STRING; ; break;} case 64: #line 632 "sql_yacc.yy" { yyval.num=FIELD_TYPE_YEAR; Lex->length=yyvsp[-1].simple_string; ; break;} case 65: #line 633 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DATE; ; break;} case 66: #line 634 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TIME; ; break;} case 67: #line 635 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TIMESTAMP; ; break;} case 68: #line 636 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; yyval.num=FIELD_TYPE_TIMESTAMP; ; break;} case 69: #line 638 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DATETIME; ; break;} case 70: #line 639 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_TINY_BLOB; ; break;} case 71: #line 641 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_BLOB; ; break;} case 72: #line 643 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_MEDIUM_BLOB; ; break;} case 73: #line 645 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_LONG_BLOB; ; break;} case 74: #line 647 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; yyval.num=FIELD_TYPE_MEDIUM_BLOB; ; break;} case 75: #line 649 "sql_yacc.yy" { yyval.num=FIELD_TYPE_MEDIUM_BLOB; ; break;} case 76: #line 650 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TINY_BLOB; ; break;} case 77: #line 651 "sql_yacc.yy" { yyval.num=FIELD_TYPE_BLOB; ; break;} case 78: #line 652 "sql_yacc.yy" { yyval.num=FIELD_TYPE_MEDIUM_BLOB; ; break;} case 79: #line 653 "sql_yacc.yy" { yyval.num=FIELD_TYPE_LONG_BLOB; ; break;} case 80: #line 655 "sql_yacc.yy" { Lex->length=yyvsp[-4].lex_str.str; Lex->dec=yyvsp[-2].lex_str.str; yyval.num=FIELD_TYPE_DECIMAL;; break;} case 81: #line 658 "sql_yacc.yy" { Lex->length=yyvsp[-4].lex_str.str; Lex->dec=yyvsp[-2].lex_str.str; yyval.num=FIELD_TYPE_DECIMAL;; break;} case 82: #line 660 "sql_yacc.yy" {Lex->interval_list.empty();; break;} case 83: #line 661 "sql_yacc.yy" { Lex->interval=typelib(Lex->interval_list); yyval.num=FIELD_TYPE_ENUM; Lex->interval_list.empty(); /* Alloced by sql_alloc */ ; break;} case 84: #line 666 "sql_yacc.yy" { Lex->interval_list.empty();; break;} case 85: #line 667 "sql_yacc.yy" { Lex->interval=typelib(Lex->interval_list); yyval.num=FIELD_TYPE_SET; Lex->interval_list.empty(); /* Alloced by sql_alloc */ ; break;} case 86: #line 674 "sql_yacc.yy" {; break;} case 87: #line 675 "sql_yacc.yy" {; break;} case 88: #line 678 "sql_yacc.yy" { yyval.num=FIELD_TYPE_LONG; ; break;} case 89: #line 679 "sql_yacc.yy" { yyval.num=FIELD_TYPE_TINY; ; break;} case 90: #line 680 "sql_yacc.yy" { yyval.num=FIELD_TYPE_SHORT; ; break;} case 91: #line 681 "sql_yacc.yy" { yyval.num=FIELD_TYPE_INT24; ; break;} case 92: #line 682 "sql_yacc.yy" { yyval.num=FIELD_TYPE_LONGLONG; ; break;} case 93: #line 685 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DOUBLE; ; break;} case 94: #line 686 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DOUBLE; ; break;} case 95: #line 687 "sql_yacc.yy" { yyval.num=FIELD_TYPE_DOUBLE; ; break;} case 96: #line 691 "sql_yacc.yy" {; break;} case 97: #line 692 "sql_yacc.yy" { Lex->length=yyvsp[-1].lex_str.str; ; break;} case 98: #line 693 "sql_yacc.yy" { Lex->length=yyvsp[-3].lex_str.str; Lex->dec=yyvsp[-1].lex_str.str; ; break;} case 99: #line 696 "sql_yacc.yy" {; break;} case 100: #line 697 "sql_yacc.yy" {; break;} case 101: #line 700 "sql_yacc.yy" {; break;} case 102: #line 701 "sql_yacc.yy" {; break;} case 103: #line 704 "sql_yacc.yy" { Lex->type|= UNSIGNED_FLAG;; break;} case 104: #line 705 "sql_yacc.yy" { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; ; break;} case 105: #line 708 "sql_yacc.yy" { yyval.simple_string=(char*) 0; ; break;} case 106: #line 709 "sql_yacc.yy" { yyval.simple_string=yyvsp[-1].lex_str.str; ; break;} case 107: #line 712 "sql_yacc.yy" {; break;} case 108: #line 713 "sql_yacc.yy" { Lex->length=yyvsp[-3].lex_str.str; Lex->dec=yyvsp[-1].lex_str.str; ; break;} case 109: #line 716 "sql_yacc.yy" {; break;} case 110: #line 717 "sql_yacc.yy" {; break;} case 111: #line 720 "sql_yacc.yy" {; break;} case 113: #line 724 "sql_yacc.yy" { Lex->type&= ~ NOT_NULL_FLAG; ; break;} case 114: #line 725 "sql_yacc.yy" { Lex->type|= NOT_NULL_FLAG; ; break;} case 115: #line 726 "sql_yacc.yy" { Lex->default_value=yyvsp[0].item; ; break;} case 116: #line 727 "sql_yacc.yy" { Lex->type|= AUTO_INCREMENT_FLAG; ; break;} case 117: #line 728 "sql_yacc.yy" { Lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG; ; break;} case 118: #line 731 "sql_yacc.yy" {; break;} case 119: #line 732 "sql_yacc.yy" { Lex->type|=BINARY_FLAG; ; break;} case 120: #line 735 "sql_yacc.yy" {; break;} case 121: #line 737 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ ; break;} case 122: #line 742 "sql_yacc.yy" {; break;} case 123: #line 743 "sql_yacc.yy" {; break;} case 124: #line 746 "sql_yacc.yy" {; break;} case 125: #line 747 "sql_yacc.yy" {; break;} case 126: #line 751 "sql_yacc.yy" {; break;} case 127: #line 752 "sql_yacc.yy" {; break;} case 128: #line 753 "sql_yacc.yy" {; break;} case 129: #line 754 "sql_yacc.yy" {; break;} case 130: #line 757 "sql_yacc.yy" {; break;} case 131: #line 758 "sql_yacc.yy" {; break;} case 132: #line 759 "sql_yacc.yy" {; break;} case 133: #line 760 "sql_yacc.yy" {; break;} case 134: #line 761 "sql_yacc.yy" {; break;} case 135: #line 764 "sql_yacc.yy" { yyval.key_type= Key::PRIMARY; ; break;} case 136: #line 765 "sql_yacc.yy" { yyval.key_type= Key::MULTIPLE; ; break;} case 137: #line 766 "sql_yacc.yy" { yyval.key_type= Key::UNIQUE; ; break;} case 138: #line 769 "sql_yacc.yy" {; break;} case 139: #line 770 "sql_yacc.yy" {; break;} case 140: #line 773 "sql_yacc.yy" {; break;} case 141: #line 774 "sql_yacc.yy" {; break;} case 142: #line 777 "sql_yacc.yy" { yyval.key_type= Key::MULTIPLE; ; break;} case 143: #line 778 "sql_yacc.yy" { yyval.key_type= Key::UNIQUE; ; break;} case 144: #line 781 "sql_yacc.yy" { Lex->col_list.push_back(yyvsp[-1].key_part); ; break;} case 145: #line 782 "sql_yacc.yy" { Lex->col_list.push_back(yyvsp[-1].key_part); ; break;} case 146: #line 785 "sql_yacc.yy" { yyval.key_part=new key_part_spec(yyvsp[0].lex_str.str); ; break;} case 147: #line 786 "sql_yacc.yy" { yyval.key_part=new key_part_spec(yyvsp[-3].lex_str.str,(uint) atoi(yyvsp[-1].lex_str.str)); ; break;} case 148: #line 789 "sql_yacc.yy" { yyval.simple_string=(char*) 0; ; break;} case 149: #line 790 "sql_yacc.yy" { yyval.simple_string=yyvsp[0].lex_str.str; ; break;} case 150: #line 793 "sql_yacc.yy" { Lex->interval_list.push_back(yyvsp[0].string); ; break;} case 151: #line 794 "sql_yacc.yy" { Lex->interval_list.push_back(yyvsp[0].string); ; break;} case 152: #line 802 "sql_yacc.yy" { Lex->sql_command = SQLCOM_ALTER_TABLE; Lex->name=0; if (!add_table_to_list(yyvsp[0].table, NULL)) YYABORT; Lex->drop_primary=0; Lex->create_list.empty(); Lex->key_list.empty(); Lex->col_list.empty(); Lex->drop_list.empty(); Lex->alter_list.empty(); Lex->db=Lex->name=0; ; break;} case 156: #line 823 "sql_yacc.yy" { Lex->change=0;; break;} case 158: #line 824 "sql_yacc.yy" { Lex->change= yyvsp[0].lex_str.str; ; break;} case 160: #line 826 "sql_yacc.yy" { Lex->drop_list.push_back(new Alter_drop(Alter_drop::COLUMN, yyvsp[-1].lex_str.str)); ; break;} case 161: #line 828 "sql_yacc.yy" { Lex->drop_primary=1; ; break;} case 162: #line 829 "sql_yacc.yy" {; break;} case 163: #line 831 "sql_yacc.yy" { Lex->drop_list.push_back(new Alter_drop(Alter_drop::KEY, yyvsp[0].lex_str.str)); ; break;} case 164: #line 834 "sql_yacc.yy" { Lex->alter_list.push_back(new Alter_column(yyvsp[-3].lex_str.str,yyvsp[0].item)); ; break;} case 165: #line 836 "sql_yacc.yy" { Lex->alter_list.push_back(new Alter_column(yyvsp[-2].lex_str.str,(Item*) 0)); ; break;} case 166: #line 838 "sql_yacc.yy" { Lex->db=yyvsp[0].table->db.str ; Lex->name= yyvsp[0].table->table.str; ; break;} case 168: #line 842 "sql_yacc.yy" {; break;} case 169: #line 843 "sql_yacc.yy" {; break;} case 170: #line 846 "sql_yacc.yy" { Lex->duplicates=DUP_ERROR; ; break;} case 171: #line 847 "sql_yacc.yy" { Lex->duplicates=DUP_IGNORE; ; break;} case 172: #line 850 "sql_yacc.yy" {; break;} case 173: #line 851 "sql_yacc.yy" {; break;} case 174: #line 852 "sql_yacc.yy" {; break;} case 175: #line 855 "sql_yacc.yy" {; break;} case 176: #line 856 "sql_yacc.yy" { store_position_for_column(yyvsp[0].lex_str.str); ; break;} case 177: #line 857 "sql_yacc.yy" { store_position_for_column(first_keyword); ; break;} case 178: #line 861 "sql_yacc.yy" { Lex->sql_command = SQLCOM_OPTIMIZE; if (!add_table_to_list(yyvsp[0].table, NULL)) YYABORT; ; break;} case 179: #line 874 "sql_yacc.yy" { LEX *lex=Lex; lex->where=lex->having=0; lex->select_limit=current_thd->default_select_limit; lex->offset_limit=0L; lex->options=0; lex->sql_command= SQLCOM_SELECT; Lex->exchange = 0; ; break;} case 190: #line 904 "sql_yacc.yy" { Lex->options|= SELECT_STRAIGHT_JOIN; ; break;} case 191: #line 905 "sql_yacc.yy" { Lex->options|= SELECT_HIGH_PRIORITY; ; break;} case 192: #line 906 "sql_yacc.yy" { Lex->options|= SELECT_DISTINCT; ; break;} case 193: #line 907 "sql_yacc.yy" { Lex->options|= SELECT_SMALL_RESULT; ; break;} case 194: #line 908 "sql_yacc.yy" {; break;} case 197: #line 914 "sql_yacc.yy" { if (add_item_to_list(new Item_field(NULL,NULL,"*"))) YYABORT; ; break;} case 198: #line 922 "sql_yacc.yy" { if (add_item_to_list(yyvsp[-2].item)) YYABORT; if (yyvsp[0].lex_str.str) yyvsp[-2].item->set_name(yyvsp[0].lex_str.str); else if (!yyvsp[-2].item->name) yyvsp[-2].item->set_name(yyvsp[-3].simple_string,(uint) (yyvsp[-1].simple_string - yyvsp[-3].simple_string)); ; break;} case 199: #line 932 "sql_yacc.yy" { yyval.simple_string=(char*) Lex->tok_start; ; break;} case 200: #line 935 "sql_yacc.yy" { yyval.simple_string=(char*) Lex->tok_end; ; break;} case 201: #line 938 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 202: #line 939 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 203: #line 942 "sql_yacc.yy" { yyval.lex_str.str=0;; break;} case 204: #line 943 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; ; break;} case 205: #line 944 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; ; break;} case 206: #line 947 "sql_yacc.yy" {yyval.item = yyvsp[0].item; ; break;} case 207: #line 948 "sql_yacc.yy" {yyval.item = yyvsp[0].item; ; break;} case 208: #line 953 "sql_yacc.yy" { yyval.item= new Item_func_in(yyvsp[-4].item,*yyvsp[-1].item_list); ; break;} case 209: #line 955 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_in(yyvsp[-5].item,*yyvsp[-1].item_list)); ; break;} case 210: #line 957 "sql_yacc.yy" { yyval.item= new Item_func_between(yyvsp[-4].item,yyvsp[-2].item,yyvsp[0].item); ; break;} case 211: #line 959 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_between(yyvsp[-5].item,yyvsp[-2].item,yyvsp[0].item)); ; break;} case 212: #line 960 "sql_yacc.yy" { yyval.item= new Item_cond_or(yyvsp[-2].item,yyvsp[0].item); ; break;} case 213: #line 961 "sql_yacc.yy" { yyval.item= new Item_cond_and(yyvsp[-2].item,yyvsp[0].item); ; break;} case 214: #line 962 "sql_yacc.yy" { yyval.item= new Item_func_like(yyvsp[-3].item,yyvsp[-1].item,yyvsp[0].simple_string); ; break;} case 215: #line 963 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_like(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].simple_string));; break;} case 216: #line 964 "sql_yacc.yy" { yyval.item= new Item_func_regex(yyvsp[-2].item,yyvsp[0].item); ; break;} case 217: #line 965 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_regex(yyvsp[-3].item,yyvsp[0].item)); ; break;} case 218: #line 966 "sql_yacc.yy" { yyval.item= new Item_func_isnull(yyvsp[-2].item); ; break;} case 219: #line 967 "sql_yacc.yy" { yyval.item= new Item_func_isnotnull(yyvsp[-3].item); ; break;} case 220: #line 968 "sql_yacc.yy" { yyval.item= new Item_func_eq(yyvsp[-2].item,yyvsp[0].item); ; break;} case 221: #line 969 "sql_yacc.yy" { yyval.item= new Item_func_ge(yyvsp[-2].item,yyvsp[0].item); ; break;} case 222: #line 970 "sql_yacc.yy" { yyval.item= new Item_func_gt(yyvsp[-2].item,yyvsp[0].item); ; break;} case 223: #line 971 "sql_yacc.yy" { yyval.item= new Item_func_le(yyvsp[-2].item,yyvsp[0].item); ; break;} case 224: #line 972 "sql_yacc.yy" { yyval.item= new Item_func_lt(yyvsp[-2].item,yyvsp[0].item); ; break;} case 225: #line 973 "sql_yacc.yy" { yyval.item= new Item_func_ne(yyvsp[-2].item,yyvsp[0].item); ; break;} case 226: #line 974 "sql_yacc.yy" { yyval.item= new Item_func_shift_left(yyvsp[-2].item,yyvsp[0].item); ; break;} case 227: #line 975 "sql_yacc.yy" { yyval.item= new Item_func_shift_right(yyvsp[-2].item,yyvsp[0].item); ; break;} case 228: #line 976 "sql_yacc.yy" { yyval.item= new Item_func_plus(yyvsp[-2].item,yyvsp[0].item); ; break;} case 229: #line 977 "sql_yacc.yy" { yyval.item= new Item_func_minus(yyvsp[-2].item,yyvsp[0].item); ; break;} case 230: #line 978 "sql_yacc.yy" { yyval.item= new Item_func_mul(yyvsp[-2].item,yyvsp[0].item); ; break;} case 231: #line 979 "sql_yacc.yy" { yyval.item= new Item_func_div(yyvsp[-2].item,yyvsp[0].item); ; break;} case 232: #line 980 "sql_yacc.yy" { yyval.item= new Item_func_bit_or(yyvsp[-2].item,yyvsp[0].item); ; break;} case 233: #line 981 "sql_yacc.yy" { yyval.item= new Item_func_bit_and(yyvsp[-2].item,yyvsp[0].item); ; break;} case 234: #line 982 "sql_yacc.yy" { yyval.item= new Item_func_mod(yyvsp[-2].item,yyvsp[0].item); ; break;} case 235: #line 987 "sql_yacc.yy" { yyval.item= new Item_func_between(yyvsp[-4].item,yyvsp[-2].item,yyvsp[0].item); ; break;} case 236: #line 989 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_between(yyvsp[-5].item,yyvsp[-2].item,yyvsp[0].item)); ; break;} case 237: #line 990 "sql_yacc.yy" { yyval.item= new Item_cond_or(yyvsp[-2].item,yyvsp[0].item); ; break;} case 238: #line 991 "sql_yacc.yy" { yyval.item= new Item_cond_and(yyvsp[-2].item,yyvsp[0].item); ; break;} case 239: #line 992 "sql_yacc.yy" { yyval.item= new Item_func_like(yyvsp[-3].item,yyvsp[-1].item,yyvsp[0].simple_string); ; break;} case 240: #line 993 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_like(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].simple_string)); ; break;} case 241: #line 994 "sql_yacc.yy" { yyval.item= new Item_func_regex(yyvsp[-2].item,yyvsp[0].item); ; break;} case 242: #line 995 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_regex(yyvsp[-3].item,yyvsp[0].item)); ; break;} case 243: #line 996 "sql_yacc.yy" { yyval.item= new Item_func_isnull(yyvsp[-2].item); ; break;} case 244: #line 997 "sql_yacc.yy" { yyval.item= new Item_func_isnotnull(yyvsp[-3].item); ; break;} case 245: #line 998 "sql_yacc.yy" { yyval.item= new Item_func_eq(yyvsp[-2].item,yyvsp[0].item); ; break;} case 246: #line 999 "sql_yacc.yy" { yyval.item= new Item_func_ge(yyvsp[-2].item,yyvsp[0].item); ; break;} case 247: #line 1000 "sql_yacc.yy" { yyval.item= new Item_func_gt(yyvsp[-2].item,yyvsp[0].item); ; break;} case 248: #line 1001 "sql_yacc.yy" { yyval.item= new Item_func_le(yyvsp[-2].item,yyvsp[0].item); ; break;} case 249: #line 1002 "sql_yacc.yy" { yyval.item= new Item_func_lt(yyvsp[-2].item,yyvsp[0].item); ; break;} case 250: #line 1003 "sql_yacc.yy" { yyval.item= new Item_func_ne(yyvsp[-2].item,yyvsp[0].item); ; break;} case 251: #line 1004 "sql_yacc.yy" { yyval.item= new Item_func_shift_left(yyvsp[-2].item,yyvsp[0].item); ; break;} case 252: #line 1005 "sql_yacc.yy" { yyval.item= new Item_func_shift_right(yyvsp[-2].item,yyvsp[0].item); ; break;} case 253: #line 1006 "sql_yacc.yy" { yyval.item= new Item_func_plus(yyvsp[-2].item,yyvsp[0].item); ; break;} case 254: #line 1007 "sql_yacc.yy" { yyval.item= new Item_func_minus(yyvsp[-2].item,yyvsp[0].item); ; break;} case 255: #line 1008 "sql_yacc.yy" { yyval.item= new Item_func_mul(yyvsp[-2].item,yyvsp[0].item); ; break;} case 256: #line 1009 "sql_yacc.yy" { yyval.item= new Item_func_div(yyvsp[-2].item,yyvsp[0].item); ; break;} case 257: #line 1010 "sql_yacc.yy" { yyval.item= new Item_func_bit_or(yyvsp[-2].item,yyvsp[0].item); ; break;} case 258: #line 1011 "sql_yacc.yy" { yyval.item= new Item_func_bit_and(yyvsp[-2].item,yyvsp[0].item); ; break;} case 259: #line 1012 "sql_yacc.yy" { yyval.item= new Item_func_mod(yyvsp[-2].item,yyvsp[0].item); ; break;} case 261: #line 1018 "sql_yacc.yy" { yyval.item= new Item_func_in(yyvsp[-4].item,*yyvsp[-1].item_list); ; break;} case 262: #line 1020 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_in(yyvsp[-5].item,*yyvsp[-1].item_list)); ; break;} case 263: #line 1022 "sql_yacc.yy" { yyval.item= new Item_func_between(yyvsp[-4].item,yyvsp[-2].item,yyvsp[0].item); ; break;} case 264: #line 1024 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_between(yyvsp[-5].item,yyvsp[-2].item,yyvsp[0].item)); ; break;} case 265: #line 1025 "sql_yacc.yy" { yyval.item= new Item_cond_or(yyvsp[-2].item,yyvsp[0].item); ; break;} case 266: #line 1026 "sql_yacc.yy" { yyval.item= new Item_func_like(yyvsp[-3].item,yyvsp[-1].item,yyvsp[0].simple_string); ; break;} case 267: #line 1027 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_like(yyvsp[-4].item,yyvsp[-1].item,yyvsp[0].simple_string)); ; break;} case 268: #line 1028 "sql_yacc.yy" { yyval.item= new Item_func_regex(yyvsp[-2].item,yyvsp[0].item); ; break;} case 269: #line 1029 "sql_yacc.yy" { yyval.item= new Item_func_not(new Item_func_regex(yyvsp[-3].item,yyvsp[0].item)); ; break;} case 270: #line 1030 "sql_yacc.yy" { yyval.item= new Item_func_isnull(yyvsp[-2].item); ; break;} case 271: #line 1031 "sql_yacc.yy" { yyval.item= new Item_func_isnotnull(yyvsp[-3].item); ; break;} case 272: #line 1032 "sql_yacc.yy" { yyval.item= new Item_func_eq(yyvsp[-2].item,yyvsp[0].item); ; break;} case 273: #line 1033 "sql_yacc.yy" { yyval.item= new Item_func_ge(yyvsp[-2].item,yyvsp[0].item); ; break;} case 274: #line 1034 "sql_yacc.yy" { yyval.item= new Item_func_gt(yyvsp[-2].item,yyvsp[0].item); ; break;} case 275: #line 1035 "sql_yacc.yy" { yyval.item= new Item_func_le(yyvsp[-2].item,yyvsp[0].item); ; break;} case 276: #line 1036 "sql_yacc.yy" { yyval.item= new Item_func_lt(yyvsp[-2].item,yyvsp[0].item); ; break;} case 277: #line 1037 "sql_yacc.yy" { yyval.item= new Item_func_ne(yyvsp[-2].item,yyvsp[0].item); ; break;} case 278: #line 1038 "sql_yacc.yy" { yyval.item= new Item_func_shift_left(yyvsp[-2].item,yyvsp[0].item); ; break;} case 279: #line 1039 "sql_yacc.yy" { yyval.item= new Item_func_shift_right(yyvsp[-2].item,yyvsp[0].item); ; break;} case 280: #line 1040 "sql_yacc.yy" { yyval.item= new Item_func_plus(yyvsp[-2].item,yyvsp[0].item); ; break;} case 281: #line 1041 "sql_yacc.yy" { yyval.item= new Item_func_minus(yyvsp[-2].item,yyvsp[0].item); ; break;} case 282: #line 1042 "sql_yacc.yy" { yyval.item= new Item_func_mul(yyvsp[-2].item,yyvsp[0].item); ; break;} case 283: #line 1043 "sql_yacc.yy" { yyval.item= new Item_func_div(yyvsp[-2].item,yyvsp[0].item); ; break;} case 284: #line 1044 "sql_yacc.yy" { yyval.item= new Item_func_bit_or(yyvsp[-2].item,yyvsp[0].item); ; break;} case 285: #line 1045 "sql_yacc.yy" { yyval.item= new Item_func_bit_and(yyvsp[-2].item,yyvsp[0].item); ; break;} case 286: #line 1046 "sql_yacc.yy" { yyval.item= new Item_func_mod(yyvsp[-2].item,yyvsp[0].item); ; break;} case 291: #line 1053 "sql_yacc.yy" { yyval.item= new Item_func_neg(yyvsp[0].item); ; break;} case 292: #line 1054 "sql_yacc.yy" { yyval.item= new Item_func_not(yyvsp[0].item); ; break;} case 293: #line 1055 "sql_yacc.yy" { yyval.item= new Item_func_not(yyvsp[0].item); ; break;} case 294: #line 1056 "sql_yacc.yy" { yyval.item= yyvsp[-1].item; ; break;} case 295: #line 1057 "sql_yacc.yy" { yyval.item= yyvsp[-1].item; ; break;} case 296: #line 1058 "sql_yacc.yy" { yyval.item= new Item_func_abs(yyvsp[-1].item); ; break;} case 297: #line 1060 "sql_yacc.yy" { yyval.item= new Item_func_acos(yyvsp[-1].item); ; break;} case 298: #line 1062 "sql_yacc.yy" { yyval.item= new Item_func_ascii(yyvsp[-1].item); ; break;} case 299: #line 1064 "sql_yacc.yy" { yyval.item= new Item_func_asin(yyvsp[-1].item); ; break;} case 300: #line 1066 "sql_yacc.yy" { yyval.item= new Item_func_atan(yyvsp[-1].item); ; break;} case 301: #line 1068 "sql_yacc.yy" { yyval.item= new Item_func_atan(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 302: #line 1070 "sql_yacc.yy" { yyval.item= new Item_func_conv(yyvsp[-1].item,new Item_int((int32) 10,2), new Item_int((int32) 2,1)); ; break;} case 303: #line 1072 "sql_yacc.yy" { yyval.item=new Item_func_bit_count(yyvsp[-1].item); ; break;} case 304: #line 1073 "sql_yacc.yy" { yyval.item= new Item_func_ceiling(yyvsp[-1].item); ; break;} case 305: #line 1075 "sql_yacc.yy" { yyval.item= new Item_func_char(*yyvsp[-1].item_list); ; break;} case 306: #line 1077 "sql_yacc.yy" { yyval.item= new Item_func_concat(* yyvsp[-1].item_list); ; break;} case 307: #line 1079 "sql_yacc.yy" { yyval.item= new Item_func_conv(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 308: #line 1081 "sql_yacc.yy" { yyval.item= new Item_func_cos(yyvsp[-1].item); ; break;} case 309: #line 1083 "sql_yacc.yy" { yyval.item= new Item_func_div(new Item_int("1",1,1), new Item_func_tan(yyvsp[-1].item)); ; break;} case 310: #line 1086 "sql_yacc.yy" { yyval.item= new Item_func_curdate(); ; break;} case 311: #line 1088 "sql_yacc.yy" { yyval.item= new Item_func_curdate(); ; break;} case 312: #line 1090 "sql_yacc.yy" { yyval.item= new Item_func_curtime(); ; break;} case 313: #line 1092 "sql_yacc.yy" { yyval.item= new Item_func_curtime(); ; break;} case 314: #line 1094 "sql_yacc.yy" { yyval.item= new Item_func_curtime(yyvsp[-1].item); ; break;} case 315: #line 1096 "sql_yacc.yy" { yyval.item= new Item_func_database(); ; break;} case 316: #line 1098 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-5].item,yyvsp[-2].item,yyvsp[-1].interval,0); ; break;} case 317: #line 1100 "sql_yacc.yy" { yyval.item=new Item_func_date_format(yyvsp[-3].item,yyvsp[-1].item,0); ; break;} case 318: #line 1102 "sql_yacc.yy" { yyval.item= new Item_date_add_interval(yyvsp[-5].item,yyvsp[-2].item,yyvsp[-1].interval,1); ; break;} case 319: #line 1104 "sql_yacc.yy" { yyval.item= new Item_func_dayofmonth(yyvsp[-1].item); ; break;} case 320: #line 1106 "sql_yacc.yy" { yyval.item= new Item_func_weekday(new Item_func_to_days(yyvsp[-1].item),1); ; break;} case 321: #line 1108 "sql_yacc.yy" { yyval.item= new Item_func_dayofyear(yyvsp[-1].item); ; break;} case 322: #line 1110 "sql_yacc.yy" { yyval.item= new Item_func_dayname(new Item_func_to_days(yyvsp[-1].item)); ; break;} case 323: #line 1112 "sql_yacc.yy" { yyval.item= new Item_func_units("degrees",yyvsp[-1].item,180/M_PI,0.0); ; break;} case 324: #line 1114 "sql_yacc.yy" { yyval.item= new Item_func_elt(yyvsp[-3].item, *yyvsp[-1].item_list); ; break;} case 325: #line 1116 "sql_yacc.yy" { yyval.item= new Item_func_make_set(yyvsp[-3].item, *yyvsp[-1].item_list); ; break;} case 326: #line 1117 "sql_yacc.yy" { yyval.item= new Item_func_encrypt(yyvsp[-1].item); ; break;} case 327: #line 1118 "sql_yacc.yy" { yyval.item= new Item_func_encrypt(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 328: #line 1120 "sql_yacc.yy" { yyval.item= new Item_func_decode(yyvsp[-3].item,yyvsp[-1].lex_str.str); ; break;} case 329: #line 1122 "sql_yacc.yy" { yyval.item= new Item_func_encode(yyvsp[-3].item,yyvsp[-1].lex_str.str); ; break;} case 330: #line 1123 "sql_yacc.yy" { yyval.item= new Item_func_exp(yyvsp[-1].item); ; break;} case 331: #line 1125 "sql_yacc.yy" { yyval.item= new Item_func_field(yyvsp[-3].item, *yyvsp[-1].item_list); ; break;} case 332: #line 1127 "sql_yacc.yy" { yyval.item= new Item_func_find_in_set(yyvsp[-3].item, yyvsp[-1].item); ; break;} case 333: #line 1128 "sql_yacc.yy" { yyval.item= new Item_func_floor(yyvsp[-1].item); ; break;} case 334: #line 1130 "sql_yacc.yy" { yyval.item= new Item_func_format(yyvsp[-3].item,atoi(yyvsp[-1].lex_str.str)); ; break;} case 335: #line 1132 "sql_yacc.yy" { yyval.item= new Item_func_from_days(yyvsp[-1].item); ; break;} case 336: #line 1134 "sql_yacc.yy" { yyval.item= new Item_func_from_unixtime(yyvsp[-1].item); ; break;} case 337: #line 1136 "sql_yacc.yy" { yyval.item= new Item_func_date_format(new Item_func_from_unixtime(yyvsp[-3].item),yyvsp[-1].item,0); ; break;} case 338: #line 1140 "sql_yacc.yy" { yyval.item= new Item_func_get_lock(yyvsp[-3].item, yyvsp[-1].item);; break;} case 339: #line 1142 "sql_yacc.yy" { yyval.item= new Item_func_conv(yyvsp[-1].item,new Item_int((int32) 10,2), new Item_int((int32) 16,2)); ; break;} case 340: #line 1145 "sql_yacc.yy" { yyval.item= new Item_func_hour(yyvsp[-1].item); ; break;} case 341: #line 1147 "sql_yacc.yy" { yyval.item= new Item_func_if(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 342: #line 1149 "sql_yacc.yy" { yyval.item= new Item_func_ifnull(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 343: #line 1151 "sql_yacc.yy" { yyval.item= new Item_func_insert(yyvsp[-7].item,yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 344: #line 1153 "sql_yacc.yy" { yyval.item= new Item_func_locate(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 345: #line 1155 "sql_yacc.yy" { yyval.item= new Item_func_interval(yyvsp[-3].item,* yyvsp[-1].item_list); ; break;} case 346: #line 1157 "sql_yacc.yy" { yyval.item= new Item_func_isnull(yyvsp[-1].item); ; break;} case 347: #line 1159 "sql_yacc.yy" { yyval.item= new Item_int("last_insert_id()", current_thd->insert_id(),21); ; break;} case 348: #line 1164 "sql_yacc.yy" { yyval.item= new Item_func_set_last_insert_id(yyvsp[-1].item); ; break;} case 349: #line 1167 "sql_yacc.yy" { yyval.item= new Item_func_lcase(yyvsp[-1].item); ; break;} case 350: #line 1169 "sql_yacc.yy" { yyval.item= new Item_func_left(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 351: #line 1170 "sql_yacc.yy" { yyval.item= new Item_func_length(yyvsp[-1].item); ; break;} case 352: #line 1172 "sql_yacc.yy" { yyval.item= new Item_func_locate(yyvsp[-1].item,yyvsp[-3].item); ; break;} case 353: #line 1174 "sql_yacc.yy" { yyval.item= new Item_func_locate(yyvsp[-3].item,yyvsp[-5].item,yyvsp[-1].item); ; break;} case 354: #line 1175 "sql_yacc.yy" { yyval.item= new Item_func_log(yyvsp[-1].item); ; break;} case 355: #line 1176 "sql_yacc.yy" { yyval.item= new Item_func_log10(yyvsp[-1].item); ; break;} case 356: #line 1178 "sql_yacc.yy" { yyval.item= new Item_func_lpad(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 357: #line 1180 "sql_yacc.yy" { yyval.item= new Item_func_ltrim(yyvsp[-1].item,new Item_string(" ",1)); ; break;} case 358: #line 1182 "sql_yacc.yy" { yyvsp[-1].item_list->push_front(yyvsp[-3].item); yyval.item= new Item_func_max(*yyvsp[-1].item_list); ; break;} case 359: #line 1184 "sql_yacc.yy" { yyvsp[-1].item_list->push_front(yyvsp[-3].item); yyval.item= new Item_func_min(*yyvsp[-1].item_list); ; break;} case 360: #line 1186 "sql_yacc.yy" { yyval.item= new Item_func_minute(yyvsp[-1].item); ; break;} case 361: #line 1188 "sql_yacc.yy" { yyval.item= new Item_func_mod(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 362: #line 1190 "sql_yacc.yy" { yyval.item= new Item_func_monthname(yyvsp[-1].item); ; break;} case 363: #line 1192 "sql_yacc.yy" { yyval.item= new Item_func_month(yyvsp[-1].item); ; break;} case 364: #line 1194 "sql_yacc.yy" { yyval.item= new Item_func_now(); ; break;} case 365: #line 1196 "sql_yacc.yy" { yyval.item= new Item_func_now(); ; break;} case 366: #line 1198 "sql_yacc.yy" { yyval.item= new Item_func_now(yyvsp[-1].item); ; break;} case 367: #line 1200 "sql_yacc.yy" { yyval.item= new Item_func_conv(yyvsp[-1].item,new Item_int((int32) 10,2), new Item_int((int32) 8,1)); ; break;} case 368: #line 1202 "sql_yacc.yy" { yyval.item= new Item_func_password(yyvsp[-1].item); ; break;} case 369: #line 1204 "sql_yacc.yy" { yyval.item= new Item_func_period_add(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 370: #line 1206 "sql_yacc.yy" { yyval.item= new Item_func_period_diff(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 371: #line 1208 "sql_yacc.yy" { yyval.item= new Item_real("PI()",M_PI,6,8); ; break;} case 372: #line 1210 "sql_yacc.yy" { yyval.item = new Item_func_locate(yyvsp[-1].item,yyvsp[-3].item); ; break;} case 373: #line 1212 "sql_yacc.yy" { yyval.item= new Item_func_pow(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 374: #line 1214 "sql_yacc.yy" { yyval.item= new Item_func_quarter(yyvsp[-1].item); ; break;} case 375: #line 1216 "sql_yacc.yy" { yyval.item= new Item_func_units("radians",yyvsp[-1].item,M_PI/180,0.0); ; break;} case 376: #line 1217 "sql_yacc.yy" { yyval.item= new Item_func_rand(yyvsp[-1].item); ; break;} case 377: #line 1218 "sql_yacc.yy" { yyval.item= new Item_func_rand(); ; break;} case 378: #line 1220 "sql_yacc.yy" { yyval.item= new Item_func_release_lock(yyvsp[-1].item); ; break;} case 379: #line 1224 "sql_yacc.yy" { yyval.item= new Item_func_repeat(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 380: #line 1226 "sql_yacc.yy" { yyval.item= new Item_func_replace(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 381: #line 1227 "sql_yacc.yy" { yyval.item= new Item_func_reverse(yyvsp[-1].item); ; break;} case 382: #line 1229 "sql_yacc.yy" { yyval.item= new Item_func_right(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 383: #line 1231 "sql_yacc.yy" { yyval.item= new Item_func_round(yyvsp[-1].item, new Item_int("0",0,1),0); ; break;} case 384: #line 1232 "sql_yacc.yy" { yyval.item= new Item_func_round(yyvsp[-3].item,yyvsp[-1].item,0); ; break;} case 385: #line 1234 "sql_yacc.yy" { yyval.item= new Item_func_rpad(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 386: #line 1236 "sql_yacc.yy" { yyval.item= new Item_func_rtrim(yyvsp[-1].item,new Item_string(" ",1)); ; break;} case 387: #line 1238 "sql_yacc.yy" { yyval.item= new Item_func_sec_to_time(yyvsp[-1].item); ; break;} case 388: #line 1240 "sql_yacc.yy" { yyval.item= new Item_func_second(yyvsp[-1].item); ; break;} case 389: #line 1241 "sql_yacc.yy" { yyval.item= new Item_func_sign(yyvsp[-1].item); ; break;} case 390: #line 1243 "sql_yacc.yy" { yyval.item= new Item_func_sin(yyvsp[-1].item); ; break;} case 391: #line 1245 "sql_yacc.yy" { yyval.item= new Item_func_repeat(new Item_string(" ",1),yyvsp[-1].item); ; break;} case 392: #line 1247 "sql_yacc.yy" { yyval.item= new Item_func_soundex(yyvsp[-1].item); ; break;} case 393: #line 1248 "sql_yacc.yy" { yyval.item= new Item_func_sqrt(yyvsp[-1].item); ; break;} case 394: #line 1250 "sql_yacc.yy" { yyval.item= new Item_func_strcmp(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 395: #line 1252 "sql_yacc.yy" { yyval.item= new Item_func_substr(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 396: #line 1254 "sql_yacc.yy" { yyval.item= new Item_func_substr(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 397: #line 1256 "sql_yacc.yy" { yyval.item= new Item_func_substr(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 398: #line 1258 "sql_yacc.yy" { yyval.item= new Item_func_right(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 399: #line 1260 "sql_yacc.yy" { yyval.item= new Item_func_substr_index(yyvsp[-5].item,yyvsp[-3].item,yyvsp[-1].item); ; break;} case 400: #line 1262 "sql_yacc.yy" { yyval.item= new Item_func_tan(yyvsp[-1].item); ; break;} case 401: #line 1264 "sql_yacc.yy" { yyval.item=new Item_func_date_format(yyvsp[-3].item,yyvsp[-1].item,1); ; break;} case 402: #line 1266 "sql_yacc.yy" { yyval.item= new Item_func_time_to_sec(yyvsp[-1].item); ; break;} case 403: #line 1268 "sql_yacc.yy" { yyval.item= new Item_func_to_days(yyvsp[-1].item); ; break;} case 404: #line 1270 "sql_yacc.yy" { yyval.item= new Item_func_trim(yyvsp[-1].item,new Item_string(" ",1)); ; break;} case 405: #line 1272 "sql_yacc.yy" { yyval.item= new Item_func_ltrim(yyvsp[-1].item,yyvsp[-3].item); ; break;} case 406: #line 1274 "sql_yacc.yy" { yyval.item= new Item_func_rtrim(yyvsp[-1].item,yyvsp[-3].item); ; break;} case 407: #line 1276 "sql_yacc.yy" { yyval.item= new Item_func_trim(yyvsp[-1].item,yyvsp[-3].item); ; break;} case 408: #line 1278 "sql_yacc.yy" { yyval.item= new Item_func_trim(yyvsp[-1].item,yyvsp[-3].item); ; break;} case 409: #line 1279 "sql_yacc.yy" { yyval.item= new Item_func_round(yyvsp[-3].item,yyvsp[-1].item,1); ; break;} case 410: #line 1280 "sql_yacc.yy" { yyval.item= new Item_func_ucase(yyvsp[-1].item); ; break;} case 411: #line 1282 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_func_udf_str(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_func_udf_str(yyvsp[-3].udf); ; break;} case 412: #line 1289 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_func_udf_float(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_func_udf_float(yyvsp[-3].udf); ; break;} case 413: #line 1296 "sql_yacc.yy" { if (yyvsp[-1].item_list != NULL) yyval.item = new Item_func_udf_int(yyvsp[-3].udf, *yyvsp[-1].item_list); else yyval.item = new Item_func_udf_int(yyvsp[-3].udf); ; break;} case 414: #line 1303 "sql_yacc.yy" { yyval.item= new Item_func_unique_users(yyvsp[-7].item,atoi(yyvsp[-5].lex_str.str),atoi(yyvsp[-3].lex_str.str), * yyvsp[-1].item_list); ; break;} case 415: #line 1305 "sql_yacc.yy" { yyval.item= new Item_func_unix_timestamp(); ; break;} case 416: #line 1307 "sql_yacc.yy" { yyval.item= new Item_func_unix_timestamp(yyvsp[-1].item); ; break;} case 417: #line 1309 "sql_yacc.yy" { yyval.item= new Item_func_user(); ; break;} case 418: #line 1311 "sql_yacc.yy" { yyval.item= new Item_string("version()",server_version, strlen(server_version)); ; break;} case 419: #line 1314 "sql_yacc.yy" { yyval.item= new Item_func_week(yyvsp[-1].item,new Item_int("0",0,1)); ; break;} case 420: #line 1316 "sql_yacc.yy" { yyval.item= new Item_func_week(yyvsp[-3].item,yyvsp[-1].item); ; break;} case 421: #line 1318 "sql_yacc.yy" { yyval.item= new Item_func_weekday(new Item_func_to_days(yyvsp[-1].item),0); ; break;} case 422: #line 1320 "sql_yacc.yy" { yyval.item= new Item_func_year(yyvsp[-1].item); ; break;} case 423: #line 1323 "sql_yacc.yy" { yyval.item_list= NULL; ; break;} case 424: #line 1324 "sql_yacc.yy" { yyval.item_list= yyvsp[0].item_list;; break;} case 425: #line 1328 "sql_yacc.yy" { yyval.item=new Item_sum_avg(yyvsp[-1].item); ; break;} case 426: #line 1330 "sql_yacc.yy" { yyval.item=new Item_sum_and(yyvsp[-1].item); ; break;} case 427: #line 1332 "sql_yacc.yy" { yyval.item=new Item_sum_or(yyvsp[-1].item); ; break;} case 428: #line 1334 "sql_yacc.yy" { yyval.item=new Item_sum_count(new Item_int((int32) 0L,1)); ; break;} case 429: #line 1336 "sql_yacc.yy" { yyval.item=new Item_sum_count(yyvsp[-1].item); ; break;} case 430: #line 1338 "sql_yacc.yy" { yyval.item= new Item_sum_unique_users(yyvsp[-7].item,atoi(yyvsp[-5].lex_str.str),atoi(yyvsp[-3].lex_str.str),yyvsp[-1].item); ; break;} case 431: #line 1340 "sql_yacc.yy" { yyval.item=new Item_sum_min(yyvsp[-1].item); ; break;} case 432: #line 1342 "sql_yacc.yy" { yyval.item=new Item_sum_max(yyvsp[-1].item); ; break;} case 433: #line 1344 "sql_yacc.yy" { yyval.item=new Item_sum_std(yyvsp[-1].item); ; break;} case 434: #line 1346 "sql_yacc.yy" { yyval.item=new Item_sum_sum(yyvsp[-1].item); ; break;} case 435: #line 1349 "sql_yacc.yy" { Lex->in_sum_expr++ ; break;} case 436: #line 1351 "sql_yacc.yy" { Lex->in_sum_expr--; yyval.item=yyvsp[0].item; ; break;} case 437: #line 1357 "sql_yacc.yy" { Lex->expr_list.push_front(new List); ; break;} case 438: #line 1359 "sql_yacc.yy" { yyval.item_list= Lex->expr_list.pop(); ; break;} case 439: #line 1362 "sql_yacc.yy" { Lex->expr_list.head()->push_back(yyvsp[0].item); ; break;} case 440: #line 1363 "sql_yacc.yy" { Lex->expr_list.head()->push_back(yyvsp[0].item); ; break;} case 441: #line 1366 "sql_yacc.yy" { yyval.item=new Item_string(" ",1); ; break;} case 442: #line 1367 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 443: #line 1370 "sql_yacc.yy" { yyval.table_list=yyvsp[-1].table_list; ; break;} case 444: #line 1371 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list; ; break;} case 445: #line 1372 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list ; break;} case 446: #line 1373 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list ; break;} case 447: #line 1374 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list ; yyval.table_list->straight=1; ; break;} case 448: #line 1375 "sql_yacc.yy" { yyval.table_list=yyvsp[0].table_list ; break;} case 449: #line 1377 "sql_yacc.yy" { add_left_join_on(yyvsp[-6].table_list,yyvsp[-2].table_list,yyvsp[0].item); yyval.table_list=yyvsp[-2].table_list; ; break;} case 450: #line 1379 "sql_yacc.yy" { Lex->db1=yyvsp[-4].table_list->db; Lex->table1=yyvsp[-4].table_list->name; Lex->db2=yyvsp[0].table_list->db; Lex->table2=yyvsp[0].table_list->name; ; break;} case 451: #line 1382 "sql_yacc.yy" { add_left_join_on(yyvsp[-9].table_list,yyvsp[-5].table_list,yyvsp[-1].item); yyval.table_list=yyvsp[-5].table_list; ; break;} case 452: #line 1384 "sql_yacc.yy" { add_left_join_natural(yyvsp[-5].table_list,yyvsp[0].table_list); yyval.table_list=yyvsp[0].table_list; ; break;} case 453: #line 1388 "sql_yacc.yy" { if (!(yyval.table_list=add_table_to_list(yyvsp[-1].table,yyvsp[0].lex_str_ptr))) YYABORT; ; break;} case 454: #line 1390 "sql_yacc.yy" { add_left_join_on(yyvsp[-7].table_list,yyvsp[-3].table_list,yyvsp[-1].item); yyval.table_list=yyvsp[-3].table_list; ; break;} case 455: #line 1393 "sql_yacc.yy" {; break;} case 456: #line 1394 "sql_yacc.yy" {; break;} case 457: #line 1398 "sql_yacc.yy" { if (!(yyval.item= new Item_func_eq(new Item_field(Lex->db1,Lex->table1, yyvsp[0].lex_str.str), new Item_field(Lex->db2,Lex->table2,yyvsp[0].lex_str.str)))) YYABORT; ; break;} case 458: #line 1402 "sql_yacc.yy" { if (!(yyval.item= new Item_cond_and(new Item_func_eq(new Item_field(Lex->db1,Lex->table1,yyvsp[0].lex_str.str), new Item_field(Lex->db1,Lex->table2,yyvsp[0].lex_str.str)), yyvsp[-2].item))) YYABORT; ; break;} case 459: #line 1408 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY_HOUR; ; break;} case 460: #line 1409 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY_MINUTE; ; break;} case 461: #line 1410 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY_SECOND; ; break;} case 462: #line 1411 "sql_yacc.yy" { yyval.interval=INTERVAL_DAY; ; break;} case 463: #line 1412 "sql_yacc.yy" { yyval.interval=INTERVAL_HOUR_MINUTE; ; break;} case 464: #line 1413 "sql_yacc.yy" { yyval.interval=INTERVAL_HOUR_SECOND; ; break;} case 465: #line 1414 "sql_yacc.yy" { yyval.interval=INTERVAL_HOUR; ; break;} case 466: #line 1415 "sql_yacc.yy" { yyval.interval=INTERVAL_MINUTE_SECOND; ; break;} case 467: #line 1416 "sql_yacc.yy" { yyval.interval=INTERVAL_MINUTE; ; break;} case 468: #line 1417 "sql_yacc.yy" { yyval.interval=INTERVAL_MONTH; ; break;} case 469: #line 1418 "sql_yacc.yy" { yyval.interval=INTERVAL_SECOND; ; break;} case 470: #line 1419 "sql_yacc.yy" { yyval.interval=INTERVAL_YEAR_MONTH; ; break;} case 471: #line 1420 "sql_yacc.yy" { yyval.interval=INTERVAL_YEAR; ; break;} case 475: #line 1428 "sql_yacc.yy" { yyval.lex_str_ptr=0; ; break;} case 476: #line 1430 "sql_yacc.yy" { yyval.lex_str_ptr= (LEX_STRING*) sql_memdup(&yyvsp[0].lex_str,sizeof(LEX_STRING)); ; break;} case 477: #line 1434 "sql_yacc.yy" { Lex->where= 0; ; break;} case 478: #line 1435 "sql_yacc.yy" { Lex->where= yyvsp[0].item; ; break;} case 480: #line 1439 "sql_yacc.yy" { Lex->create_refs=1; ; break;} case 481: #line 1440 "sql_yacc.yy" { Lex->having= yyvsp[0].item; Lex->create_refs=0; ; break;} case 482: #line 1443 "sql_yacc.yy" { yyval.simple_string= yyvsp[0].lex_str.str; ; break;} case 483: #line 1444 "sql_yacc.yy" { yyval.simple_string= "\\"; ; break;} case 486: #line 1457 "sql_yacc.yy" { if (add_group_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; ; break;} case 487: #line 1459 "sql_yacc.yy" { if (add_group_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; ; break;} case 490: #line 1471 "sql_yacc.yy" { if (add_order_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; ; break;} case 491: #line 1473 "sql_yacc.yy" { if (add_order_to_list(yyvsp[-1].item,(bool) yyvsp[0].num)) YYABORT; ; break;} case 492: #line 1476 "sql_yacc.yy" { yyval.num = 1; ; break;} case 493: #line 1477 "sql_yacc.yy" { yyval.num = 1; ; break;} case 494: #line 1478 "sql_yacc.yy" { yyval.num = 0; ; break;} case 495: #line 1483 "sql_yacc.yy" { Lex->select_limit= current_thd->default_select_limit; Lex->offset_limit= 0L; ; break;} case 496: #line 1488 "sql_yacc.yy" { Lex->select_limit= yyvsp[0].ulong_num; Lex->offset_limit=0L; ; break;} case 497: #line 1490 "sql_yacc.yy" { Lex->select_limit= yyvsp[0].ulong_num; Lex->offset_limit=yyvsp[-2].ulong_num; ; break;} case 498: #line 1494 "sql_yacc.yy" { Lex->select_limit= HA_POS_ERROR; ; break;} case 499: #line 1498 "sql_yacc.yy" { Lex->select_limit= (ha_rows) yyvsp[0].ulonglong_num; ; break;} case 500: #line 1501 "sql_yacc.yy" { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); ; break;} case 501: #line 1502 "sql_yacc.yy" { yyval.ulong_num= strtoul(yyvsp[0].lex_str.str,NULL,10); ; break;} case 502: #line 1505 "sql_yacc.yy" { yyval.ulonglong_num= (ulonglong) strtoul(yyvsp[0].lex_str.str,NULL,10); ; break;} case 503: #line 1506 "sql_yacc.yy" { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); ; break;} case 504: #line 1507 "sql_yacc.yy" { yyval.ulonglong_num= strtoull(yyvsp[0].lex_str.str,NULL,10); ; break;} case 506: #line 1512 "sql_yacc.yy" { THD *thd=current_thd; thd->proc_list.elements=0; thd->proc_list.first=0; thd->proc_list.next= (byte**) &thd->proc_list.first; if (add_proc_to_list(new Item_field(NULL,NULL,yyvsp[0].lex_str.str))) YYABORT; ; break;} case 510: #line 1529 "sql_yacc.yy" { if (add_proc_to_list(yyvsp[0].item)) YYABORT; if (!yyvsp[0].item->name) yyvsp[0].item->set_name(yyvsp[-1].simple_string,(uint) ((char*) Lex->tok_end - yyvsp[-1].simple_string)); ; break;} case 511: #line 1538 "sql_yacc.yy" { if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str))) YYABORT; ; break;} case 513: #line 1550 "sql_yacc.yy" { Lex->sql_command = SQLCOM_DROP_TABLE; Lex->drop_if_exists = yyvsp[-1].num; ; break;} case 514: #line 1554 "sql_yacc.yy" {; break;} case 515: #line 1555 "sql_yacc.yy" { Lex->sql_command= SQLCOM_DROP_INDEX; Lex->drop_list.empty(); Lex->drop_list.push_back(new Alter_drop(Alter_drop::KEY, yyvsp[-3].lex_str.str)); if (!add_table_to_list(yyvsp[-1].table,NULL)) YYABORT; ; break;} case 516: #line 1564 "sql_yacc.yy" { Lex->sql_command= SQLCOM_DROP_DB; Lex->drop_if_exists=yyvsp[-1].num; Lex->name=yyvsp[0].lex_str.str; ; break;} case 517: #line 1570 "sql_yacc.yy" { Lex->sql_command = SQLCOM_DROP_FUNCTION; Lex->udf.name=yyvsp[0].lex_str.str; ; break;} case 520: #line 1582 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[0].table,NULL)) YYABORT; ; break;} case 521: #line 1585 "sql_yacc.yy" { yyval.num=0; ; break;} case 522: #line 1586 "sql_yacc.yy" { yyval.num= 1; ; break;} case 523: #line 1593 "sql_yacc.yy" { Lex->sql_command = SQLCOM_INSERT; ; break;} case 525: #line 1596 "sql_yacc.yy" { Lex->sql_command = SQLCOM_REPLACE; ; break;} case 527: #line 1600 "sql_yacc.yy" { Lex->low_priority=0; ; break;} case 528: #line 1601 "sql_yacc.yy" { Lex->low_priority=1; ; break;} case 529: #line 1604 "sql_yacc.yy" {; break;} case 530: #line 1605 "sql_yacc.yy" {; break;} case 531: #line 1609 "sql_yacc.yy" { current_thd->field_list.empty(); Lex->many_values.empty(); Lex->insert_list=0; ; break;} case 532: #line 1616 "sql_yacc.yy" {; break;} case 533: #line 1618 "sql_yacc.yy" { if (!(Lex->insert_list = new List_item) || Lex->many_values.push_back(Lex->insert_list)) YYABORT; ; break;} case 535: #line 1626 "sql_yacc.yy" { ; break;} case 536: #line 1627 "sql_yacc.yy" { ; break;} case 537: #line 1630 "sql_yacc.yy" { current_thd->field_list.push_back(yyvsp[0].item); ; break;} case 538: #line 1631 "sql_yacc.yy" { current_thd->field_list.push_back(yyvsp[0].item); ; break;} case 539: #line 1634 "sql_yacc.yy" {; break;} case 540: #line 1636 "sql_yacc.yy" { LEX *lex=Lex; lex->where=lex->having=0; lex->select_limit=current_thd->default_select_limit; lex->offset_limit=0L; lex->options=0; lex->sql_command = (lex->sql_command == SQLCOM_INSERT ? SQLCOM_INSERT_SELECT : SQLCOM_REPLACE_SELECT); ; break;} case 541: #line 1645 "sql_yacc.yy" {; break;} case 546: #line 1658 "sql_yacc.yy" { if (current_thd->field_list.push_back(yyvsp[-2].item) || Lex->insert_list->push_back(yyvsp[0].item)) YYABORT; ; break;} case 547: #line 1666 "sql_yacc.yy" { if (!(Lex->insert_list = new List_item)) YYABORT; ; break;} case 548: #line 1671 "sql_yacc.yy" { if (Lex->many_values.push_back(Lex->insert_list)) YYABORT; ; break;} case 549: #line 1678 "sql_yacc.yy" { if (Lex->insert_list->push_back(yyvsp[0].item)) YYABORT; ; break;} case 550: #line 1683 "sql_yacc.yy" { if (Lex->insert_list->push_back(yyvsp[0].item)) YYABORT; ; break;} case 551: #line 1692 "sql_yacc.yy" { Lex->sql_command = SQLCOM_UPDATE; ; break;} case 552: #line 1696 "sql_yacc.yy" { if (add_item_to_list(yyvsp[-2].item) || add_value_to_list(yyvsp[0].item)) YYABORT; ; break;} case 553: #line 1701 "sql_yacc.yy" { if (add_item_to_list(yyvsp[-2].item) || add_value_to_list(yyvsp[0].item)) YYABORT; ; break;} case 554: #line 1711 "sql_yacc.yy" { Lex->sql_command= SQLCOM_DELETE; ; break;} case 555: #line 1716 "sql_yacc.yy" { Lex->wild=0;; break;} case 557: #line 1720 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_DATABASES; ; break;} case 558: #line 1722 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_TABLES; Lex->db= yyvsp[-1].simple_string; ; break;} case 559: #line 1724 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_FIELDS; if (yyvsp[-1].simple_string) yyvsp[-2].table->change_db(yyvsp[-1].simple_string); if (!add_table_to_list(yyvsp[-2].table,NULL)) YYABORT; ; break;} case 560: #line 1732 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_KEYS; if (yyvsp[0].simple_string) yyvsp[-1].table->change_db(yyvsp[0].simple_string); if (!add_table_to_list(yyvsp[-1].table,NULL)) YYABORT; ; break;} case 561: #line 1740 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_STATUS; ; break;} case 562: #line 1742 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST; ; break;} case 563: #line 1744 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_VARIABLES; ; break;} case 564: #line 1747 "sql_yacc.yy" { yyval.simple_string= 0; ; break;} case 565: #line 1748 "sql_yacc.yy" { yyval.simple_string= yyvsp[0].lex_str.str; ; break;} case 567: #line 1752 "sql_yacc.yy" { Lex->wild= yyvsp[0].string; ; break;} case 568: #line 1757 "sql_yacc.yy" { Lex->wild=0; Lex->sql_command=SQLCOM_SHOW_FIELDS; if (!add_table_to_list(yyvsp[0].table, NULL)) YYABORT; ; break;} case 570: #line 1764 "sql_yacc.yy" { Lex->options|= SELECT_DESCRIBE ; break;} case 573: #line 1772 "sql_yacc.yy" {; break;} case 574: #line 1773 "sql_yacc.yy" { Lex->wild= yyvsp[0].string; ; break;} case 575: #line 1774 "sql_yacc.yy" { Lex->wild= new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ; break;} case 576: #line 1780 "sql_yacc.yy" {Lex->sql_command= SQLCOM_FLUSH; Lex->type=0; ; break;} case 580: #line 1787 "sql_yacc.yy" { Lex->type|= REFRESH_TABLES; ; break;} case 581: #line 1788 "sql_yacc.yy" { Lex->type|= REFRESH_HOSTS; ; break;} case 582: #line 1789 "sql_yacc.yy" { Lex->type|= REFRESH_GRANT; ; break;} case 583: #line 1790 "sql_yacc.yy" { Lex->type|= REFRESH_LOG; ; break;} case 584: #line 1791 "sql_yacc.yy" { Lex->type|= REFRESH_STATUS; ; break;} case 585: #line 1798 "sql_yacc.yy" { Lex->sql_command=SQLCOM_KILL; Lex->thread_id= (ulong) strtoul(yyvsp[0].lex_str.str,NULL,10); ; break;} case 586: #line 1806 "sql_yacc.yy" { Lex->sql_command=SQLCOM_CHANGE_DB; Lex->db= yyvsp[0].lex_str.str; ; break;} case 587: #line 1811 "sql_yacc.yy" { Lex->sql_command= SQLCOM_LOAD; Lex->local_file= yyvsp[-2].num; if (!(Lex->exchange= new sql_exchange(yyvsp[0].lex_str.str))) YYABORT; current_thd->field_list.empty(); ; break;} case 588: #line 1820 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[-4].table,NULL)) YYABORT; ; break;} case 589: #line 1826 "sql_yacc.yy" { yyval.num=0;; break;} case 590: #line 1827 "sql_yacc.yy" { yyval.num=1;; break;} case 591: #line 1830 "sql_yacc.yy" { Lex->duplicates=DUP_ERROR; ; break;} case 592: #line 1831 "sql_yacc.yy" { Lex->duplicates=DUP_REPLACE; ; break;} case 593: #line 1832 "sql_yacc.yy" { Lex->duplicates=DUP_IGNORE; ; break;} case 598: #line 1843 "sql_yacc.yy" { Lex->exchange->field_term= yyvsp[0].string;; break;} case 599: #line 1845 "sql_yacc.yy" { Lex->exchange->enclosed= yyvsp[0].string; Lex->exchange->opt_enclosed=1;; break;} case 600: #line 1846 "sql_yacc.yy" { Lex->exchange->enclosed= yyvsp[0].string;; break;} case 601: #line 1847 "sql_yacc.yy" { Lex->exchange->escaped= yyvsp[0].string;; break;} case 606: #line 1858 "sql_yacc.yy" { Lex->exchange->line_term= yyvsp[0].string;; break;} case 607: #line 1859 "sql_yacc.yy" { Lex->exchange->line_start= yyvsp[0].string;; break;} case 609: #line 1864 "sql_yacc.yy" { Lex->exchange->skip_lines=atol(yyvsp[-1].lex_str.str); ; break;} case 610: #line 1869 "sql_yacc.yy" { yyval.item = new Item_string(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ; break;} case 611: #line 1871 "sql_yacc.yy" { ((Item_string*) yyvsp[-1].item)->append(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ; break;} case 612: #line 1874 "sql_yacc.yy" { yyval.string= new String(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); ; break;} case 613: #line 1876 "sql_yacc.yy" { Item *tmp = new Item_varbinary(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); yyval.string= tmp ? tmp->str((String*) 0) : (String*) 0; ; break;} case 614: #line 1882 "sql_yacc.yy" { yyval.item = yyvsp[0].item; ; break;} case 615: #line 1883 "sql_yacc.yy" { yyval.item = new Item_int((int32) atol(yyvsp[0].lex_str.str),yyvsp[0].lex_str.length); ; break;} case 616: #line 1884 "sql_yacc.yy" { yyval.item = new Item_int(yyvsp[0].lex_str.str); ; break;} case 617: #line 1885 "sql_yacc.yy" { yyval.item = new Item_real(yyvsp[0].lex_str.str); ; break;} case 618: #line 1886 "sql_yacc.yy" { yyval.item = new Item_null(); Lex->next_state=STATE_OPERATOR_OR_IDENT;; break;} case 619: #line 1888 "sql_yacc.yy" { yyval.item = new Item_varbinary(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); break;} case 620: #line 1889 "sql_yacc.yy" { yyval.item = yyvsp[0].item; ; break;} case 621: #line 1890 "sql_yacc.yy" { yyval.item = yyvsp[0].item; ; break;} case 622: #line 1891 "sql_yacc.yy" { yyval.item = yyvsp[0].item; ; break;} case 623: #line 1898 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 624: #line 1899 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 625: #line 1902 "sql_yacc.yy" { yyval.item = new Item_field(NullS,yyvsp[-2].lex_str.str,"*"); ; break;} case 626: #line 1904 "sql_yacc.yy" { yyval.item = new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,"*"); ; break;} case 627: #line 1907 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 628: #line 1908 "sql_yacc.yy" { yyval.item = new Item_int(yyvsp[0].lex_str.str); ; break;} case 629: #line 1909 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 630: #line 1912 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 631: #line 1913 "sql_yacc.yy" { yyval.item = new Item_int(yyvsp[0].lex_str.str); ; break;} case 632: #line 1914 "sql_yacc.yy" { yyval.item=yyvsp[0].item; ; break;} case 633: #line 1918 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,NullS,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,NullS,yyvsp[0].lex_str.str); ; break;} case 634: #line 1920 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); ; break;} case 635: #line 1922 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref(NullS,yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); ; break;} case 636: #line 1924 "sql_yacc.yy" { yyval.item = !Lex->create_refs || Lex->in_sum_expr > 0 ? (Item*) new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str) : (Item*) new Item_ref((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :yyvsp[-4].lex_str.str),yyvsp[-2].lex_str.str,yyvsp[0].lex_str.str); ; break;} case 637: #line 1928 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;; break;} case 638: #line 1929 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;; break;} case 639: #line 1930 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;; break;} case 640: #line 1933 "sql_yacc.yy" { yyval.table=new Table_ident(yyvsp[0].lex_str); ; break;} case 641: #line 1934 "sql_yacc.yy" { yyval.table=new Table_ident(yyvsp[-2].lex_str,yyvsp[0].lex_str,0);; break;} case 642: #line 1935 "sql_yacc.yy" { yyval.table=new Table_ident(yyvsp[0].lex_str);; break;} case 643: #line 1938 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str; ; break;} case 644: #line 1940 "sql_yacc.yy" { yyval.lex_str.str=sql_strmake(yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); yyval.lex_str.length=yyvsp[0].lex_str.length; if (Lex->next_state != STATE_END) Lex->next_state=STATE_OPERATOR_OR_IDENT; ; break;} case 645: #line 1948 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;; break;} case 646: #line 1949 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;; break;} case 647: #line 1950 "sql_yacc.yy" { yyval.lex_str=yyvsp[0].lex_str;; break;} case 648: #line 1954 "sql_yacc.yy" { if (!(yyval.lex_user=(LEX_USER*) sql_alloc(sizeof(st_lex_user)))) YYABORT; yyval.lex_user->user = yyvsp[0].lex_str; yyval.lex_user->host.str=NullS; ; break;} case 649: #line 1960 "sql_yacc.yy" { if (!(yyval.lex_user=(LEX_USER*) sql_alloc(sizeof(st_lex_user)))) YYABORT; yyval.lex_user->user = yyvsp[-2].lex_str; yyval.lex_user->host=yyvsp[0].lex_str; ; break;} case 650: #line 1969 "sql_yacc.yy" {; break;} case 651: #line 1970 "sql_yacc.yy" {; break;} case 652: #line 1971 "sql_yacc.yy" {; break;} case 653: #line 1972 "sql_yacc.yy" {; break;} case 654: #line 1973 "sql_yacc.yy" {; break;} case 655: #line 1974 "sql_yacc.yy" {; break;} case 656: #line 1975 "sql_yacc.yy" {; break;} case 657: #line 1976 "sql_yacc.yy" {; break;} case 658: #line 1977 "sql_yacc.yy" {; break;} case 659: #line 1978 "sql_yacc.yy" {; break;} case 660: #line 1979 "sql_yacc.yy" {; break;} case 661: #line 1980 "sql_yacc.yy" {; break;} case 662: #line 1981 "sql_yacc.yy" {; break;} case 663: #line 1982 "sql_yacc.yy" {; break;} case 664: #line 1983 "sql_yacc.yy" {; break;} case 665: #line 1984 "sql_yacc.yy" {; break;} case 666: #line 1985 "sql_yacc.yy" {; break;} case 667: #line 1986 "sql_yacc.yy" {; break;} case 668: #line 1987 "sql_yacc.yy" {; break;} case 669: #line 1988 "sql_yacc.yy" {; break;} case 670: #line 1989 "sql_yacc.yy" {; break;} case 671: #line 1990 "sql_yacc.yy" {; break;} case 672: #line 1991 "sql_yacc.yy" {; break;} case 673: #line 1992 "sql_yacc.yy" {; break;} case 674: #line 1993 "sql_yacc.yy" {; break;} case 675: #line 1994 "sql_yacc.yy" {; break;} case 676: #line 1995 "sql_yacc.yy" {; break;} case 677: #line 1996 "sql_yacc.yy" {; break;} case 678: #line 1997 "sql_yacc.yy" {; break;} case 679: #line 1998 "sql_yacc.yy" {; break;} case 680: #line 1999 "sql_yacc.yy" {; break;} case 681: #line 2000 "sql_yacc.yy" {; break;} case 682: #line 2001 "sql_yacc.yy" {; break;} case 683: #line 2002 "sql_yacc.yy" {; break;} case 684: #line 2003 "sql_yacc.yy" {; break;} case 685: #line 2004 "sql_yacc.yy" {; break;} case 686: #line 2005 "sql_yacc.yy" {; break;} case 687: #line 2006 "sql_yacc.yy" {; break;} case 688: #line 2007 "sql_yacc.yy" {; break;} case 689: #line 2008 "sql_yacc.yy" {; break;} case 690: #line 2009 "sql_yacc.yy" {; break;} case 691: #line 2010 "sql_yacc.yy" {; break;} case 692: #line 2011 "sql_yacc.yy" {; break;} case 693: #line 2017 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SET_OPTION; Lex->options=current_thd->options; Lex->select_limit=current_thd->default_select_limit; ; break;} case 695: #line 2025 "sql_yacc.yy" {; break;} case 696: #line 2026 "sql_yacc.yy" {; break;} case 699: #line 2034 "sql_yacc.yy" { if (atoi(yyvsp[0].lex_str.str) == 0) Lex->options&= ~yyvsp[-2].num; else Lex->options|= yyvsp[-2].num; ; break;} case 700: #line 2041 "sql_yacc.yy" { Lex->select_limit= yyvsp[0].ulong_num; ; break;} case 701: #line 2045 "sql_yacc.yy" { Lex->select_limit= HA_POS_ERROR; ; break;} case 702: #line 2049 "sql_yacc.yy" { current_thd->set_time((time_t) yyvsp[0].ulong_num); ; break;} case 703: #line 2053 "sql_yacc.yy" { current_thd->user_time=0; ; break;} case 704: #line 2057 "sql_yacc.yy" { current_thd->insert_id(yyvsp[0].ulonglong_num); ; break;} case 705: #line 2061 "sql_yacc.yy" { current_thd->next_insert_id=yyvsp[0].ulonglong_num; ; break;} case 706: #line 2065 "sql_yacc.yy" { CONVERT *tmp; if (!(tmp=get_convert_set(yyvsp[0].lex_str.str))) { net_printf(¤t_thd->net,ER_UNKNOWN_CHARACTER_SET,yyvsp[0].lex_str); YYABORT; } current_thd->convert_set=tmp; ; break;} case 707: #line 2075 "sql_yacc.yy" { current_thd->convert_set=0; ; break;} case 708: #line 2079 "sql_yacc.yy" { if (change_password(current_thd,current_thd->host, current_thd->priv_user,yyvsp[0].simple_string)) YYABORT; ; break;} case 709: #line 2085 "sql_yacc.yy" { if (change_password(current_thd, yyvsp[-2].lex_user->host.str ? yyvsp[-2].lex_user->host.str : current_thd->host, yyvsp[-2].lex_user->user.str,yyvsp[0].simple_string)) YYABORT; ; break;} case 710: #line 2093 "sql_yacc.yy" { yyval.simple_string=yyvsp[0].lex_str.str;; break;} case 711: #line 2095 "sql_yacc.yy" { if (!yyvsp[-1].lex_str.length) yyval.simple_string=yyvsp[-1].lex_str.str; else { char *buff=sql_alloc(17); make_scrambled_password(buff,yyvsp[-1].lex_str.str); yyval.simple_string=buff; } ; break;} case 712: #line 2107 "sql_yacc.yy" { yyval.num= OPTION_BIG_TABLES; ; break;} case 713: #line 2108 "sql_yacc.yy" { yyval.num= OPTION_BIG_SELECTS; ; break;} case 714: #line 2109 "sql_yacc.yy" { yyval.num= OPTION_LOG_OFF; ; break;} case 715: #line 2110 "sql_yacc.yy" { yyval.num= OPTION_UPDATE_LOG; ; break;} case 716: #line 2111 "sql_yacc.yy" { yyval.num= OPTION_WARNINGS; ; break;} case 717: #line 2112 "sql_yacc.yy" { yyval.num= OPTION_LOW_PRIORITY_UPDATES; ; break;} case 718: #line 2118 "sql_yacc.yy" { Lex->sql_command=SQLCOM_LOCK_TABLES; ; break;} case 724: #line 2133 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[-2].table,yyvsp[-1].lex_str_ptr,(thr_lock_type) yyvsp[0].num)) YYABORT; ; break;} case 725: #line 2136 "sql_yacc.yy" { yyval.num=TL_READ; ; break;} case 726: #line 2137 "sql_yacc.yy" { yyval.num=TL_WRITE; ; break;} case 727: #line 2138 "sql_yacc.yy" { yyval.num=TL_WRITE_DELAYED; ; break;} case 728: #line 2141 "sql_yacc.yy" { Lex->sql_command=SQLCOM_UNLOCK_TABLES; ; break;} case 729: #line 2148 "sql_yacc.yy" { Lex->sql_command = SQLCOM_REVOKE; Lex->users_list.empty(); Lex->columns.empty(); Lex->global_grant = Lex->grant= Lex->grant_tot_col=0; Lex->db=0; ; break;} case 731: #line 2159 "sql_yacc.yy" { Lex->sql_command = SQLCOM_GRANT; Lex->users_list.empty(); Lex->columns.empty(); Lex->global_grant = Lex->grant= Lex->grant_tot_col=0; Lex->db=0; ; break;} case 733: #line 2170 "sql_yacc.yy" {Lex->global_grant = 0;; break;} case 734: #line 2171 "sql_yacc.yy" {Lex->global_grant = 1;; break;} case 735: #line 2174 "sql_yacc.yy" {; break;} case 736: #line 2175 "sql_yacc.yy" { Lex->grant = UINT_MAX;; break;} case 737: #line 2176 "sql_yacc.yy" { Lex->grant = UINT_MAX;; break;} case 740: #line 2184 "sql_yacc.yy" { Lex->which_columns = SELECT_ACL;; break;} case 742: #line 2187 "sql_yacc.yy" { Lex->which_columns = INSERT_ACL; ; break;} case 744: #line 2190 "sql_yacc.yy" { Lex->which_columns = UPDATE_ACL; ; break;} case 746: #line 2192 "sql_yacc.yy" { Lex->grant |= DELETE_ACL;; break;} case 747: #line 2193 "sql_yacc.yy" { Lex->which_columns = REFERENCES_ACL;; break;} case 749: #line 2194 "sql_yacc.yy" {; break;} case 750: #line 2195 "sql_yacc.yy" { Lex->grant |= INDEX_ACL;; break;} case 751: #line 2196 "sql_yacc.yy" { Lex->grant |= ALTER_ACL;; break;} case 752: #line 2197 "sql_yacc.yy" { Lex->grant |= CREATE_ACL;; break;} case 753: #line 2198 "sql_yacc.yy" { Lex->grant |= DROP_ACL;; break;} case 754: #line 2199 "sql_yacc.yy" { Lex->grant |= RELOAD_ACL;; break;} case 755: #line 2200 "sql_yacc.yy" { Lex->grant |= SHUTDOWN_ACL;; break;} case 756: #line 2201 "sql_yacc.yy" { Lex->grant |= PROCESS_ACL;; break;} case 757: #line 2202 "sql_yacc.yy" { Lex->grant |= FILE_ACL;; break;} case 758: #line 2203 "sql_yacc.yy" { Lex->grant |= GRANT_ACL;; break;} case 759: #line 2207 "sql_yacc.yy" { Lex->db=current_thd->db; if (Lex->grant == UINT_MAX) Lex->grant = DB_ACLS & ~GRANT_ACL; else if (Lex->columns.elements) { net_printf(¤t_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE); YYABORT; } ; break;} case 760: #line 2218 "sql_yacc.yy" { Lex->db = yyvsp[-2].lex_str.str; if (Lex->grant == UINT_MAX) Lex->grant = DB_ACLS & ~GRANT_ACL; else if (Lex->columns.elements) { net_printf(¤t_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE); YYABORT; } ; break;} case 761: #line 2229 "sql_yacc.yy" { Lex->db = NULL; if (Lex->grant == UINT_MAX) Lex->grant = GLOBAL_ACLS & ~GRANT_ACL; else if (Lex->columns.elements) { net_printf(¤t_thd->net,ER_ILLEGAL_GRANT_FOR_TABLE); YYABORT; } ; break;} case 762: #line 2240 "sql_yacc.yy" { if (!add_table_to_list(yyvsp[0].table,NULL)) YYABORT; if (Lex->grant == UINT_MAX) Lex->grant = TABLE_ACLS; ; break;} case 763: #line 2249 "sql_yacc.yy" { if (Lex->users_list.push_back(yyvsp[0].lex_user)) YYABORT;; break;} case 764: #line 2250 "sql_yacc.yy" { if (Lex->users_list.push_back(yyvsp[0].lex_user)) YYABORT;; break;} case 765: #line 2254 "sql_yacc.yy" { yyval.lex_user=yyvsp[-3].lex_user; yyvsp[-3].lex_user->password=yyvsp[0].lex_str ; ; break;} case 766: #line 2255 "sql_yacc.yy" { yyval.lex_user=yyvsp[0].lex_user; yyvsp[0].lex_user->password.str=NullS; ; break;} case 767: #line 2259 "sql_yacc.yy" { Lex->grant |= Lex->which_columns; ; break;} case 771: #line 2268 "sql_yacc.yy" { String *new_str = new String((const char*) yyvsp[0].lex_str.str,yyvsp[0].lex_str.length); List_iterator iter(Lex->columns); class LEX_COLUMN *point; while ((point=iter++)) { if (!my_strcasecmp(point->column.ptr(),new_str->ptr())) break; } Lex->grant_tot_col|= Lex->which_columns; if (point) point->rights |= Lex->which_columns; else Lex->columns.push_back(new LEX_COLUMN (*new_str,Lex->which_columns)); ; break;} case 772: #line 2285 "sql_yacc.yy" {; break;} case 773: #line 2286 "sql_yacc.yy" { Lex->grant |= GRANT_ACL;; break;} } /* the action file gets copied in in place of this dollarsign */ #line 498 "/my/gnu/lib/bison/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } #line 2287 "sql_yacc.yy"